|
@@ -2,20 +2,25 @@ package com.fs.erp.service.impl;
|
|
|
|
|
|
|
|
import cn.hutool.core.date.DateUtil;
|
|
import cn.hutool.core.date.DateUtil;
|
|
|
import cn.hutool.core.util.ObjectUtil;
|
|
import cn.hutool.core.util.ObjectUtil;
|
|
|
|
|
+import cn.hutool.http.HttpResponse;
|
|
|
import com.alibaba.fastjson.JSON;
|
|
import com.alibaba.fastjson.JSON;
|
|
|
import com.alibaba.fastjson.JSONObject;
|
|
import com.alibaba.fastjson.JSONObject;
|
|
|
|
|
+import com.alibaba.fastjson.TypeReference;
|
|
|
import com.fs.erp.constant.AfterSalesOrderStatusEnum;
|
|
import com.fs.erp.constant.AfterSalesOrderStatusEnum;
|
|
|
import com.fs.erp.constant.ErpQueryOrderStatusEnum;
|
|
import com.fs.erp.constant.ErpQueryOrderStatusEnum;
|
|
|
import com.fs.erp.constant.OrderStatusEnum;
|
|
import com.fs.erp.constant.OrderStatusEnum;
|
|
|
import com.fs.erp.constant.TaskStatusEnum;
|
|
import com.fs.erp.constant.TaskStatusEnum;
|
|
|
import com.fs.erp.domain.*;
|
|
import com.fs.erp.domain.*;
|
|
|
import com.fs.erp.dto.*;
|
|
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.http.JstErpHttpService;
|
|
|
import com.fs.erp.mapper.FsJstAftersalePushMapper;
|
|
import com.fs.erp.mapper.FsJstAftersalePushMapper;
|
|
|
import com.fs.erp.mapper.FsJstAftersalePushScrmMapper;
|
|
import com.fs.erp.mapper.FsJstAftersalePushScrmMapper;
|
|
|
import com.fs.erp.mapper.FsJstCodPushMapper;
|
|
import com.fs.erp.mapper.FsJstCodPushMapper;
|
|
|
import com.fs.erp.mapper.FsJstCodPushScrmMapper;
|
|
import com.fs.erp.mapper.FsJstCodPushScrmMapper;
|
|
|
import com.fs.erp.service.IErpOrderService;
|
|
import com.fs.erp.service.IErpOrderService;
|
|
|
|
|
+import com.fs.erp.service.TlErpOrderService;
|
|
|
import com.fs.his.domain.FsStoreOrder;
|
|
import com.fs.his.domain.FsStoreOrder;
|
|
|
import com.fs.his.domain.FsStoreOrderItem;
|
|
import com.fs.his.domain.FsStoreOrderItem;
|
|
|
import com.fs.his.domain.FsStoreProduct;
|
|
import com.fs.his.domain.FsStoreProduct;
|
|
@@ -40,10 +45,7 @@ import org.springframework.util.CollectionUtils;
|
|
|
|
|
|
|
|
import java.math.BigDecimal;
|
|
import java.math.BigDecimal;
|
|
|
import java.text.SimpleDateFormat;
|
|
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;
|
|
import java.util.stream.Collectors;
|
|
|
|
|
|
|
|
@Slf4j
|
|
@Slf4j
|
|
@@ -76,6 +78,9 @@ public class JSTErpOrderServiceImpl implements IErpOrderService {
|
|
|
@Autowired
|
|
@Autowired
|
|
|
private IFsStoreProductScrmService fsStoreProductScrmService;
|
|
private IFsStoreProductScrmService fsStoreProductScrmService;
|
|
|
|
|
|
|
|
|
|
+ @Autowired
|
|
|
|
|
+ private TlErpOrderService tlErpOrderService;
|
|
|
|
|
+
|
|
|
@Override
|
|
@Override
|
|
|
public ErpOrderResponse addOrder(ErpOrder order) {
|
|
public ErpOrderResponse addOrder(ErpOrder order) {
|
|
|
FsStoreOrder fsStoreOrder = fsStoreOrderService.selectFsStoreOrderByOrderCode(order.getPlatform_code());
|
|
FsStoreOrder fsStoreOrder = fsStoreOrderService.selectFsStoreOrderByOrderCode(order.getPlatform_code());
|
|
@@ -186,8 +191,16 @@ public class JSTErpOrderServiceImpl implements IErpOrderService {
|
|
|
|
|
|
|
|
}
|
|
}
|
|
|
log.info("推送ERP参数: {}",JSON.toJSONString(shopOrderDTO));
|
|
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())) {
|
|
if(CollectionUtils.isEmpty(upload.getDatas())) {
|
|
|
log.info("推送ERP返回结果: {}",upload);
|
|
log.info("推送ERP返回结果: {}",upload);
|
|
@@ -654,5 +667,23 @@ public class JSTErpOrderServiceImpl implements IErpOrderService {
|
|
|
public void getOrderDeliveryStatus(FsStoreOrder order) {
|
|
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;
|
|
|
|
|
+ }
|
|
|
}
|
|
}
|
|
|
|
|
|