wjj 1 hafta önce
ebeveyn
işleme
49bed2a31c

+ 3 - 0
fs-service/src/main/java/com/fs/erp/domain/ErpOrder.java

@@ -34,4 +34,7 @@ public class ErpOrder {
     List<ErpOrderPayment> payments;
 
     String buyer_account;
+
+    // 1-聚水潭 2-兔零
+    Integer erpType;
 }

+ 2 - 1
fs-service/src/main/java/com/fs/erp/dto/tl/TlCreateOrderRequest.java

@@ -1,6 +1,7 @@
 package com.fs.erp.dto.tl;
 
 import com.fasterxml.jackson.annotation.JsonProperty;
+import com.fs.erp.dto.ShopOrderDTO;
 import lombok.Data;
 
 import java.util.List;
@@ -17,7 +18,7 @@ public class TlCreateOrderRequest {
 
     /** 订单数据列表 */
     @JsonProperty("data")
-    private List<TlOrderItem> data;
+    private List<ShopOrderDTO> data;
 
     /** 请求选项 */
     @JsonProperty("options")

+ 37 - 6
fs-service/src/main/java/com/fs/erp/service/impl/JSTErpOrderServiceImpl.java

@@ -2,20 +2,25 @@ package com.fs.erp.service.impl;
 
 import cn.hutool.core.date.DateUtil;
 import cn.hutool.core.util.ObjectUtil;
+import cn.hutool.http.HttpResponse;
 import com.alibaba.fastjson.JSON;
 import com.alibaba.fastjson.JSONObject;
+import com.alibaba.fastjson.TypeReference;
 import com.fs.erp.constant.AfterSalesOrderStatusEnum;
 import com.fs.erp.constant.ErpQueryOrderStatusEnum;
 import com.fs.erp.constant.OrderStatusEnum;
 import com.fs.erp.constant.TaskStatusEnum;
 import com.fs.erp.domain.*;
 import com.fs.erp.dto.*;
+import com.fs.erp.dto.tl.TlCreateOrderRequest;
+import com.fs.erp.dto.tl.TlCreateOrderResponse;
 import com.fs.erp.http.JstErpHttpService;
 import com.fs.erp.mapper.FsJstAftersalePushMapper;
 import com.fs.erp.mapper.FsJstAftersalePushScrmMapper;
 import com.fs.erp.mapper.FsJstCodPushMapper;
 import com.fs.erp.mapper.FsJstCodPushScrmMapper;
 import com.fs.erp.service.IErpOrderService;
+import com.fs.erp.service.TlErpOrderService;
 import com.fs.his.domain.FsStoreOrder;
 import com.fs.his.domain.FsStoreOrderItem;
 import com.fs.his.domain.FsStoreProduct;
@@ -40,10 +45,7 @@ import org.springframework.util.CollectionUtils;
 
 import java.math.BigDecimal;
 import java.text.SimpleDateFormat;
-import java.util.ArrayList;
-import java.util.Collections;
-import java.util.Date;
-import java.util.List;
+import java.util.*;
 import java.util.stream.Collectors;
 
 @Slf4j
@@ -76,6 +78,9 @@ public class JSTErpOrderServiceImpl implements IErpOrderService {
     @Autowired
     private IFsStoreProductScrmService fsStoreProductScrmService;
 
+    @Autowired
+    private TlErpOrderService tlErpOrderService;
+
     @Override
     public ErpOrderResponse addOrder(ErpOrder order) {
         FsStoreOrder fsStoreOrder = fsStoreOrderService.selectFsStoreOrderByOrderCode(order.getPlatform_code());
@@ -186,8 +191,16 @@ public class JSTErpOrderServiceImpl implements IErpOrderService {
 
         }
         log.info("推送ERP参数: {}",JSON.toJSONString(shopOrderDTO));
-
-        ErpOrderResponseDTO upload = jstErpHttpService.upload(shopOrderDTO);
+        ErpOrderResponseDTO upload = null;
+        if (order.getErpType() == null || order.getErpType() == 1) {
+            upload = jstErpHttpService.upload(shopOrderDTO);
+        } else if (order.getErpType() == 2) {
+            TlCreateOrderRequest request = new TlCreateOrderRequest();
+            request.setData(Arrays.asList(shopOrderDTO));
+            request.setCorpId("LwMAMdlBIH7agxn2t9N4Zv40");
+            HttpResponse response = tlErpOrderService.syncOrderToJst(request);
+            upload = parseResponse(response,  new TypeReference<CommonResponse<ErpOrderResponseDTO>>() {});
+        }
 
         if(CollectionUtils.isEmpty(upload.getDatas())) {
             log.info("推送ERP返回结果: {}",upload);
@@ -654,5 +667,23 @@ public class JSTErpOrderServiceImpl implements IErpOrderService {
     public void getOrderDeliveryStatus(FsStoreOrder order) {
 
     }
+
+
+    private <T> T parseResponse(HttpResponse response, TypeReference<CommonResponse<T>> typeReference) {
+        String body = response.body();
+        log.debug("解析响应体: {}", body);
+
+        CommonResponse<T> commonResponse = JSON.parseObject(body, typeReference);
+
+//        if (ObjectUtils.notEqual(commonResponse.getCode(), 0)) {
+        if (!Integer.valueOf(0).equals(commonResponse.getCode())) {
+            log.error("API请求失败 - 错误码: {}, 错误信息: {}", commonResponse.getCode(), commonResponse.getMsg());
+            throw new RuntimeException("请求接口失败!原因:" + commonResponse.getMsg());
+        }
+
+        T result = commonResponse.getData();
+        log.info("API请求成功 - 结果: {}", JSON.toJSONString(result));
+        return result;
+    }
 }
 

+ 1 - 0
fs-service/src/main/java/com/fs/his/service/impl/FsStoreOrderServiceImpl.java

@@ -2568,6 +2568,7 @@ public class FsStoreOrderServiceImpl implements IFsStoreOrderService {
             PrescribeImg = fsPrescribeService.PrescribeImgYsy(order.getPrescribeId());
         }
         erpOrder.setSeller_memo(erpOrder.getSeller_memo() + "||" + PrescribeImg + "||");
+        erpOrder.setErpType(2);
         ErpOrderResponse response = erpOrderService.addOrder(erpOrder);
         log.info("ErpCreate:" + order.getOrderCode() + ":" + JSONUtil.toJsonStr(response));
         if (Boolean.TRUE.equals(response.getSuccess())) {