|
@@ -2,13 +2,14 @@ package com.fs.his.controller;
|
|
|
|
|
|
|
|
import com.baidu.dev2.thirdparty.commons.codec.digest.DigestUtils;
|
|
import com.baidu.dev2.thirdparty.commons.codec.digest.DigestUtils;
|
|
|
import com.fs.erp.dto.tl.*;
|
|
import com.fs.erp.dto.tl.*;
|
|
|
-import com.fs.erp.http.JstErpHttpService;
|
|
|
|
|
|
|
+import com.fs.erp.service.TlErpOrderService;
|
|
|
import lombok.extern.slf4j.Slf4j;
|
|
import lombok.extern.slf4j.Slf4j;
|
|
|
import org.springframework.beans.factory.annotation.Autowired;
|
|
import org.springframework.beans.factory.annotation.Autowired;
|
|
|
import org.springframework.http.ResponseEntity;
|
|
import org.springframework.http.ResponseEntity;
|
|
|
import org.springframework.web.bind.annotation.*;
|
|
import org.springframework.web.bind.annotation.*;
|
|
|
|
|
|
|
|
import java.time.Instant;
|
|
import java.time.Instant;
|
|
|
|
|
+import java.util.Collections;
|
|
|
|
|
|
|
|
/**
|
|
/**
|
|
|
* 聚水潭订单同步接口
|
|
* 聚水潭订单同步接口
|
|
@@ -20,7 +21,7 @@ public class JstOrderSyncController {
|
|
|
|
|
|
|
|
|
|
|
|
|
@Autowired
|
|
@Autowired
|
|
|
- private JstErpHttpService jstErpHttpService;
|
|
|
|
|
|
|
+ private TlErpOrderService jstErpHttpService;
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
@@ -69,86 +70,87 @@ public class JstOrderSyncController {
|
|
|
}
|
|
}
|
|
|
|
|
|
|
|
// 模拟订单同步到兔灵erp接口
|
|
// 模拟订单同步到兔灵erp接口
|
|
|
-// @PostMapping("/create")
|
|
|
|
|
-// public Object syncOrderToJst(@RequestBody TlCreateOrderRequest requestDto) {
|
|
|
|
|
-// TlCreateOrderRequest request=fillRequest();
|
|
|
|
|
-// log.info("【聚水潭】收到同步订单请求,corp_id={}, so_id={}",
|
|
|
|
|
-// request.getCorpId(),
|
|
|
|
|
-// request.getData() != null && !request.getData().isEmpty()
|
|
|
|
|
-// ? request.getData().get(0).getSoId() : "N/A");
|
|
|
|
|
-// return jstErpHttpService.syncOrderToJst(request);
|
|
|
|
|
-// }
|
|
|
|
|
-//
|
|
|
|
|
-// /**
|
|
|
|
|
-// * 辅助方法 填充入参对象JstCreateOrderRequest
|
|
|
|
|
-// * */
|
|
|
|
|
-// private TlCreateOrderRequest fillRequest() {
|
|
|
|
|
-// // 1. 创建主请求对象
|
|
|
|
|
-// TlCreateOrderRequest request = new TlCreateOrderRequest();
|
|
|
|
|
|
|
+ @PostMapping("/create")
|
|
|
|
|
+ public Object syncOrderToJst() {
|
|
|
|
|
+ TlCreateOrderRequest request=fillRequest();
|
|
|
|
|
+ log.info("同步订单请求,corp_id={}, so_id={}",
|
|
|
|
|
+ request.getCorpId(),
|
|
|
|
|
+ request.getData() != null && !request.getData().isEmpty()
|
|
|
|
|
+ ? request.getData().get(0).getSoId() : "N/A");
|
|
|
|
|
+ return jstErpHttpService.syncOrderToJst(request);
|
|
|
|
|
+ }
|
|
|
|
|
+
|
|
|
|
|
+ /**
|
|
|
|
|
+ * 辅助方法 填充入参对象JstCreateOrderRequest
|
|
|
|
|
+ * */
|
|
|
|
|
+ private TlCreateOrderRequest fillRequest() {
|
|
|
|
|
+ // 1. 创建主请求对象
|
|
|
|
|
+ TlCreateOrderRequest request = new TlCreateOrderRequest();
|
|
|
// request.setCorpId("OGc3zcgK6H334BiPn8JNkVvh");
|
|
// request.setCorpId("OGc3zcgK6H334BiPn8JNkVvh");
|
|
|
-// //正式环境企业id
|
|
|
|
|
-// //request.setCorpId("LwMAMdlBIH7agxn2t9N4Zv40");
|
|
|
|
|
-//
|
|
|
|
|
-// // 2. 创建商品明细(items)
|
|
|
|
|
-// TlOrderItemDetail item = new TlOrderItemDetail();
|
|
|
|
|
-// item.setSkuId("SKU123");
|
|
|
|
|
-// item.setShopSkuId("SHOP_SKU_001");
|
|
|
|
|
-// item.setAmount(10000); // 实付金额(分)
|
|
|
|
|
-// item.setPrice(10000); // 单价(分)
|
|
|
|
|
-// item.setBasePrice(12000); // 原价(分)
|
|
|
|
|
-// item.setQty(1);
|
|
|
|
|
-// item.setName("测试商品");
|
|
|
|
|
-// item.setOuterOiId("OI_20251105_001");
|
|
|
|
|
-// // produced_date 也要带时间(测试类是 "2025-11-05T00:00:00Z")
|
|
|
|
|
-// item.setProducedDate("2025-11-05T00:00:00Z");
|
|
|
|
|
-//
|
|
|
|
|
-// // 3. 创建订单主体
|
|
|
|
|
-// TlOrderItem order = new TlOrderItem();
|
|
|
|
|
-// order.setShopId(18150182L);
|
|
|
|
|
-// order.setSoId("SO_20251105_001");
|
|
|
|
|
-// // 使用 ISO 8601 格式:yyyy-MM-dd'T'HH:mm:ss'Z'
|
|
|
|
|
-// order.setOrderDate("2025-11-05T10:30:00Z");
|
|
|
|
|
-// order.setShopStatus("paid"); // 必须是字符串,如 "paid"
|
|
|
|
|
-// order.setShopBuyerId("buyer_123");
|
|
|
|
|
-//
|
|
|
|
|
-// order.setReceiverAddress("广东省深圳市南山区___科技园A座101");
|
|
|
|
|
-// order.setReceiverName("张三");
|
|
|
|
|
-// order.setReceiverMobile("13800138000");
|
|
|
|
|
-//
|
|
|
|
|
-// order.setPayAmount(10000); // 应付金额(分)
|
|
|
|
|
-// order.setFreight(0); // 运费(分)
|
|
|
|
|
-//
|
|
|
|
|
-// order.setRemark("卖家备注");
|
|
|
|
|
-// order.setBuyerMessage("请发顺丰");
|
|
|
|
|
-// order.setLabels("测试,同步");
|
|
|
|
|
-//
|
|
|
|
|
-// order.setCreatorName("李四");
|
|
|
|
|
-// order.setShopModified("2025-11-05T10:30:00Z");
|
|
|
|
|
-// order.setSendDate("2025-11-05T10:30:00Z");
|
|
|
|
|
-//
|
|
|
|
|
-// // 关键:is_cod 不能为 null!聚水潭不接受 null 字段
|
|
|
|
|
-// order.setIsCod(false); // 显式设置为 false,避免 null
|
|
|
|
|
-//
|
|
|
|
|
-// // l_id 为空字符串(签名时会被过滤,但保留字段)
|
|
|
|
|
-// order.setLId("");
|
|
|
|
|
-//
|
|
|
|
|
-// // 设置商品明细
|
|
|
|
|
-// order.setItems(Collections.singletonList(item));
|
|
|
|
|
-//
|
|
|
|
|
-// // 设置支付明细(必须设置,不能为 null)
|
|
|
|
|
-// TlPayDetail pay = new TlPayDetail();
|
|
|
|
|
-// pay.setPayment("online");
|
|
|
|
|
-// pay.setAmount(10000);
|
|
|
|
|
-// order.setPay(pay);
|
|
|
|
|
-//
|
|
|
|
|
-// // 4. 设置 data 列表(仅支持1条)
|
|
|
|
|
-// request.setData(Collections.singletonList(order));
|
|
|
|
|
-//
|
|
|
|
|
-// // 5. 设置 options
|
|
|
|
|
-// TlOptions options = new TlOptions();
|
|
|
|
|
-// options.setJstServerId(1);
|
|
|
|
|
-// request.setOptions(options);
|
|
|
|
|
-//
|
|
|
|
|
-// return request;
|
|
|
|
|
-// }
|
|
|
|
|
|
|
+ //正式环境企业id
|
|
|
|
|
+ request.setCorpId("LwMAMdlBIH7agxn2t9N4Zv40");
|
|
|
|
|
+
|
|
|
|
|
+ // 2. 创建商品明细(items)
|
|
|
|
|
+ TlOrderItemDetail item = new TlOrderItemDetail();
|
|
|
|
|
+ item.setSkuId("SKU123");
|
|
|
|
|
+ item.setShopSkuId("SHOP_SKU_001");
|
|
|
|
|
+ item.setAmount(10000); // 实付金额(分)
|
|
|
|
|
+ item.setPrice(10000); // 单价(分)
|
|
|
|
|
+ item.setBasePrice(12000); // 原价(分)
|
|
|
|
|
+ item.setQty(1);
|
|
|
|
|
+ item.setName("测试商品");
|
|
|
|
|
+ item.setOuterOiId("OI_20251110_001");
|
|
|
|
|
+ // produced_date 也要带时间(测试类是 "2025-11-05T00:00:00Z")
|
|
|
|
|
+ item.setProducedDate("2025-11-10T00:00:00Z");
|
|
|
|
|
+
|
|
|
|
|
+ // 3. 创建订单主体
|
|
|
|
|
+ TlOrderItem order = new TlOrderItem();
|
|
|
|
|
+ //order.setShopId(18150182);
|
|
|
|
|
+ order.setShopId(19415819);
|
|
|
|
|
+ order.setSoId("SO_20251105_001");
|
|
|
|
|
+ // 使用 ISO 8601 格式:yyyy-MM-dd'T'HH:mm:ss'Z'
|
|
|
|
|
+ order.setOrderDate("2025-11-10T10:30:00Z");
|
|
|
|
|
+ order.setShopStatus("paid"); // 必须是字符串,如 "paid"
|
|
|
|
|
+ order.setShopBuyerId("buyer_123");
|
|
|
|
|
+
|
|
|
|
|
+ order.setReceiverAddress("广东省深圳市南山区___科技园A座101");
|
|
|
|
|
+ order.setReceiverName("张三");
|
|
|
|
|
+ order.setReceiverMobile("13800138000");
|
|
|
|
|
+
|
|
|
|
|
+ order.setPayAmount(10000); // 应付金额(分)
|
|
|
|
|
+ order.setFreight(0); // 运费(分)
|
|
|
|
|
+
|
|
|
|
|
+ order.setRemark("卖家备注");
|
|
|
|
|
+ order.setBuyerMessage("请发顺丰");
|
|
|
|
|
+ order.setLabels("测试,同步");
|
|
|
|
|
+
|
|
|
|
|
+ order.setCreatorName("李四");
|
|
|
|
|
+ order.setShopModified("2025-11-05T10:30:00Z");
|
|
|
|
|
+ order.setSendDate("2025-11-05T10:30:00Z");
|
|
|
|
|
+
|
|
|
|
|
+ // 关键:is_cod 不能为 null!聚水潭不接受 null 字段
|
|
|
|
|
+ order.setIsCod(false); // 显式设置为 false,避免 null
|
|
|
|
|
+
|
|
|
|
|
+ // l_id 为空字符串(签名时会被过滤,但保留字段)
|
|
|
|
|
+ order.setLId("");
|
|
|
|
|
+
|
|
|
|
|
+ // 设置商品明细
|
|
|
|
|
+ order.setItems(Collections.singletonList(item));
|
|
|
|
|
+
|
|
|
|
|
+ // 设置支付明细(必须设置,不能为 null)
|
|
|
|
|
+ TlPayDetail pay = new TlPayDetail();
|
|
|
|
|
+ pay.setPayment("online");
|
|
|
|
|
+ pay.setAmount(10000);
|
|
|
|
|
+ order.setPay(pay);
|
|
|
|
|
+
|
|
|
|
|
+ // 4. 设置 data 列表(仅支持1条)
|
|
|
|
|
+ request.setData(Collections.singletonList(order));
|
|
|
|
|
+
|
|
|
|
|
+ // 5. 设置 options
|
|
|
|
|
+ TlOptions options = new TlOptions();
|
|
|
|
|
+ options.setJstServerId(1);
|
|
|
|
|
+ request.setOptions(options);
|
|
|
|
|
+
|
|
|
|
|
+ return request;
|
|
|
|
|
+ }
|
|
|
}
|
|
}
|