xgb 4 недель назад
Родитель
Сommit
5a5e858d80
29 измененных файлов с 3170 добавлено и 585 удалено
  1. 0 2
      fs-admin/src/main/java/com/fs/his/task/WatchCourseTask.java
  2. 0 2
      fs-admin/src/main/java/com/fs/hisStore/controller/FsStoreHealthOrderScrmController.java
  3. 0 2
      fs-admin/src/main/java/com/fs/hisStore/controller/FsStoreOrderPromotionScrmController.java
  4. 36 38
      fs-admin/src/main/java/com/fs/hisStore/task/ErpTask.java
  5. 38 37
      fs-admin/src/main/java/com/fs/hisStore/task/MallStoreTask.java
  6. 81 3
      fs-company/src/main/java/com/fs/company/controller/common/CommonController.java
  7. 1 2
      fs-company/src/main/java/com/fs/company/controller/common/Test.java
  8. 0 2
      fs-company/src/main/java/com/fs/company/controller/store/FsStoreOrderController.java
  9. 1 1
      fs-quartz/src/main/java/com/fs/quartz/config/ScheduleConfig.java
  10. 3 0
      fs-service/src/main/java/com/fs/erp/domain/ErpOrderQuery.java
  11. 1 1
      fs-service/src/main/java/com/fs/erp/dto/sdk/wangdian/api/WdtClient.java
  12. 4 4
      fs-service/src/main/java/com/fs/erp/dto/sdk/wangdianTwo/api/WdtTradeAPI.java
  13. 29 0
      fs-service/src/main/java/com/fs/erp/dto/sdk/wangdianTwo/api/dto/ErrorInfo.java
  14. 32 0
      fs-service/src/main/java/com/fs/erp/dto/sdk/wangdianTwo/api/dto/PushSelf2Request.java
  15. 6 3
      fs-service/src/main/java/com/fs/erp/dto/sdk/wangdianTwo/api/dto/PushSelf2Response.java
  16. 1899 391
      fs-service/src/main/java/com/fs/erp/dto/sdk/wangdianTwo/api/dto/QuerySelfOrderDetailResponse.java
  17. 15 1
      fs-service/src/main/java/com/fs/erp/dto/sdk/wangdianTwo/api/dto/RawRefundUpload2Request.java
  18. 5 5
      fs-service/src/main/java/com/fs/erp/dto/sdk/wangdianTwo/api/dto/RawRefundUpload2Response.java
  19. 13 6
      fs-service/src/main/java/com/fs/erp/dto/sdk/wangdianTwo/impl/WdtTwoClient.java
  20. 108 47
      fs-service/src/main/java/com/fs/erp/service/impl/WdtTwoErpGoodsServiceImpl.java
  21. 848 0
      fs-service/src/main/java/com/fs/erp/service/impl/WdtTwoErpOrderServiceImpl.java
  22. 7 0
      fs-service/src/main/java/com/fs/his/service/impl/FsStoreAfterSalesServiceImpl.java
  23. 6 0
      fs-service/src/main/java/com/fs/hisStore/service/impl/FsStoreCartScrmServiceImpl.java
  24. 37 28
      fs-service/src/main/java/com/fs/hisStore/service/impl/FsStoreOrderScrmServiceImpl.java
  25. 0 2
      fs-store/src/main/java/com/fs/hisStore/controller/store/FsStoreOrderScrmController.java
  26. 0 2
      fs-store/src/main/java/com/fs/store/controller/store/FsStoreOrderController.java
  27. 0 2
      fs-user-app/src/main/java/com/fs/app/controller/store/PayScrmController.java
  28. 0 2
      fs-user-app/src/main/java/com/fs/app/controller/store/ProductScrmController.java
  29. 0 2
      fs-user-app/src/main/java/com/fs/app/controller/store/StoreOrderScrmController.java

+ 0 - 2
fs-admin/src/main/java/com/fs/his/task/WatchCourseTask.java

@@ -15,8 +15,6 @@ import org.springframework.stereotype.Component;
 @Component("storeTask")
 @Component("storeTask")
 public class WatchCourseTask
 public class WatchCourseTask
 {
 {
-    @Autowired
-    IErpOrderService erpOrderService;
 
 
     @Autowired
     @Autowired
     private IFsUserWatchCourseStatisticsService fsUserWatchCourseStatisticsService;
     private IFsUserWatchCourseStatisticsService fsUserWatchCourseStatisticsService;

+ 0 - 2
fs-admin/src/main/java/com/fs/hisStore/controller/FsStoreHealthOrderScrmController.java

@@ -44,8 +44,6 @@ public class FsStoreHealthOrderScrmController extends BaseController {
     @Autowired
     @Autowired
     private IFsStoreOrderStatusScrmService orderStatusService;
     private IFsStoreOrderStatusScrmService orderStatusService;
 
 
-    @Autowired
-    IErpOrderService erpOrderService;
     @Autowired
     @Autowired
     IFsStorePaymentScrmService paymentService;
     IFsStorePaymentScrmService paymentService;
 
 

+ 0 - 2
fs-admin/src/main/java/com/fs/hisStore/controller/FsStoreOrderPromotionScrmController.java

@@ -47,8 +47,6 @@ public class FsStoreOrderPromotionScrmController extends BaseController {
     @Autowired
     @Autowired
     private IFsStoreOrderStatusScrmService orderStatusService;
     private IFsStoreOrderStatusScrmService orderStatusService;
 
 
-    @Autowired
-    IErpOrderService erpOrderService;
     @Autowired
     @Autowired
     IFsStorePaymentScrmService paymentService;
     IFsStorePaymentScrmService paymentService;
 
 

+ 36 - 38
fs-admin/src/main/java/com/fs/hisStore/task/ErpTask.java

@@ -21,8 +21,6 @@ public class ErpTask {
 
 
     @Autowired
     @Autowired
     private FsErpFinishPushMapper fsErpFinishPushMapper;
     private FsErpFinishPushMapper fsErpFinishPushMapper;
-    @Autowired
-    private IErpOrderService erpOrderService;
 
 
     @Autowired
     @Autowired
     private IFsStoreOrderScrmService fsStoreOrderService;
     private IFsStoreOrderScrmService fsStoreOrderService;
@@ -31,41 +29,41 @@ public class ErpTask {
     /**
     /**
      * 推送完成订单到ERP
      * 推送完成订单到ERP
      */
      */
-    public void pushFinishOrderToErp(){
-        List<FsErpFinishPush> fsErpFinishPushes = fsErpFinishPushMapper.queryPenddingOrder();
-        for (FsErpFinishPush fsErpFinishPush : fsErpFinishPushes) {
-            FsStoreOrderScrm fsStoreOrder = fsStoreOrderService.selectFsStoreOrderById(fsErpFinishPush.getOrderId());
-
-            try {
-
-                ErpOrder erpOrder = fsStoreOrderService.getErpOrder(fsStoreOrder);
-
-                ErpOrderResponse erpOrderResponse = erpOrderService.finishOrder(erpOrder);
-
-                fsErpFinishPush.setParams(erpOrderResponse.getRequestRawData());
-                fsErpFinishPush.setResult(erpOrderResponse.getResponseRawData());
-                fsErpFinishPush.setUpdateTime(new Date());
-
-                if(erpOrderResponse.getSuccess()!= null && erpOrderResponse.getSuccess()){
-                    fsErpFinishPush.setTaskStatus(1);
-
-                    log.error("推送完成订单到ERP成功! 订单号: {}",fsErpFinishPush.getOrderId());
-                } else {
-                    fsErpFinishPush.setTaskStatus(2);
-                    fsErpFinishPush.setRetryCount(fsErpFinishPush.getRetryCount()+1);
-                    log.error("推送完成订单到ERP失败! 订单号: {}",fsErpFinishPush.getOrderId());
-                }
-            } catch (Throwable e) {
-                fsErpFinishPush.setRetryCount(fsErpFinishPush.getRetryCount()+1);
-                fsErpFinishPush.setErrorMessage(ExceptionUtils.getStackTrace(e));
-                fsErpFinishPush.setTaskStatus(2);
-                log.error("订单推送失败!原因: {}", ExceptionUtils.getStackTrace(e),e);
-            }
-
-
-            fsErpFinishPushMapper.updateById(fsErpFinishPush);
-        }
-
-    }
+//    public void pushFinishOrderToErp(){
+//        List<FsErpFinishPush> fsErpFinishPushes = fsErpFinishPushMapper.queryPenddingOrder();
+//        for (FsErpFinishPush fsErpFinishPush : fsErpFinishPushes) {
+//            FsStoreOrderScrm fsStoreOrder = fsStoreOrderService.selectFsStoreOrderById(fsErpFinishPush.getOrderId());
+//
+//            try {
+//
+//                ErpOrder erpOrder = fsStoreOrderService.getErpOrder(fsStoreOrder);
+//
+//                ErpOrderResponse erpOrderResponse = erpOrderService.finishOrder(erpOrder);
+//
+//                fsErpFinishPush.setParams(erpOrderResponse.getRequestRawData());
+//                fsErpFinishPush.setResult(erpOrderResponse.getResponseRawData());
+//                fsErpFinishPush.setUpdateTime(new Date());
+//
+//                if(erpOrderResponse.getSuccess()!= null && erpOrderResponse.getSuccess()){
+//                    fsErpFinishPush.setTaskStatus(1);
+//
+//                    log.error("推送完成订单到ERP成功! 订单号: {}",fsErpFinishPush.getOrderId());
+//                } else {
+//                    fsErpFinishPush.setTaskStatus(2);
+//                    fsErpFinishPush.setRetryCount(fsErpFinishPush.getRetryCount()+1);
+//                    log.error("推送完成订单到ERP失败! 订单号: {}",fsErpFinishPush.getOrderId());
+//                }
+//            } catch (Throwable e) {
+//                fsErpFinishPush.setRetryCount(fsErpFinishPush.getRetryCount()+1);
+//                fsErpFinishPush.setErrorMessage(ExceptionUtils.getStackTrace(e));
+//                fsErpFinishPush.setTaskStatus(2);
+//                log.error("订单推送失败!原因: {}", ExceptionUtils.getStackTrace(e),e);
+//            }
+//
+//
+//            fsErpFinishPushMapper.updateById(fsErpFinishPush);
+//        }
+//
+//    }
 
 
 }
 }

+ 38 - 37
fs-admin/src/main/java/com/fs/hisStore/task/MallStoreTask.java

@@ -87,9 +87,6 @@ public class MallStoreTask
     @Autowired
     @Autowired
     private FsStorePaymentScrmMapper fsStorePaymentMapper;
     private FsStorePaymentScrmMapper fsStorePaymentMapper;
 
 
-
-    @Autowired
-    private IErpGoodsService erpGoodsService;
     @Autowired
     @Autowired
     private ISysConfigService configService;
     private ISysConfigService configService;
     @Autowired
     @Autowired
@@ -119,6 +116,10 @@ public class MallStoreTask
     @Qualifier("wdtErpOrderServiceImpl")
     @Qualifier("wdtErpOrderServiceImpl")
     private IErpOrderService wdtOrderService;
     private IErpOrderService wdtOrderService;
 
 
+    @Autowired
+    @Qualifier("wdtTwoErpOrderServiceImpl")
+    private IErpOrderService wdtTwoOrderService;
+
     @Autowired
     @Autowired
     @Qualifier("hzOMSErpOrderServiceImpl")
     @Qualifier("hzOMSErpOrderServiceImpl")
     private IErpOrderService hzOMSOrderService;
     private IErpOrderService hzOMSOrderService;
@@ -142,8 +143,6 @@ public class MallStoreTask
     private FsCourseRedPacketLogMapper fsCourseRedPacketLogMapper;
     private FsCourseRedPacketLogMapper fsCourseRedPacketLogMapper;
 
 
 
 
-    @Autowired
-    IErpOrderService erpOrderService;
 
 
     //@Autowired
     //@Autowired
     //private IFsUserWatchCourseStatisticsService fsUserWatchCourseStatisticsService;
     //private IFsUserWatchCourseStatisticsService fsUserWatchCourseStatisticsService;
@@ -238,38 +237,38 @@ public class MallStoreTask
     }
     }
 
 
 
 
-    public void storeProdUpdateCostPrice()
-    {
-        String json=configService.selectConfigByKey("store.config");
-        StoreConfig config=JSONUtil.toBean(json,StoreConfig.class);
-
-        List<FsStoreProductAttrValueScrm> values = fsStoreProductAttrValueMapper.selectFsStoreProductAttrValueList(new FsStoreProductAttrValueScrm());
-        for (FsStoreProductAttrValueScrm value : values) {
-            ErpGoodsQueryRequert query = new ErpGoodsQueryRequert();
-            query.setCode(value.getBarCode());
-            ErpGoodsQueryResponse goods = erpGoodsService.getGoods(query);
-            List<ErpGoods> items = goods.getItems();
-
-            if (items!=null&&items.size()>0){
-                ErpGoods erpGoods = items.get(0);
-                BigDecimal salesPrice = erpGoods.getSales_price();
-                if (salesPrice!=null&&salesPrice.compareTo(BigDecimal.ZERO) != 0){
-                    BigDecimal divide = salesPrice.multiply(new BigDecimal(config.getSalesPriceRate())).divide(new BigDecimal("100"));
-                    System.out.println("代理价格"+divide);
-                    System.out.println("成本价"+salesPrice);
-                    FsStoreProductAttrValueScrm va = new FsStoreProductAttrValueScrm();
-                    va.setCost(salesPrice);
-                    va.setAgentPrice(divide);
-                    va.setId(value.getId());
-                    fsStoreProductAttrValueMapper.updateFsStoreProductAttrValue(va);
-                }
-            }
-            System.out.println(goods);
-        }
-
-
-
-    }
+//    public void storeProdUpdateCostPrice()
+//    {
+//        String json=configService.selectConfigByKey("store.config");
+//        StoreConfig config=JSONUtil.toBean(json,StoreConfig.class);
+//
+//        List<FsStoreProductAttrValueScrm> values = fsStoreProductAttrValueMapper.selectFsStoreProductAttrValueList(new FsStoreProductAttrValueScrm());
+//        for (FsStoreProductAttrValueScrm value : values) {
+//            ErpGoodsQueryRequert query = new ErpGoodsQueryRequert();
+//            query.setCode(value.getBarCode());
+//            ErpGoodsQueryResponse goods = erpGoodsService.getGoods(query);
+//            List<ErpGoods> items = goods.getItems();
+//
+//            if (items!=null&&items.size()>0){
+//                ErpGoods erpGoods = items.get(0);
+//                BigDecimal salesPrice = erpGoods.getSales_price();
+//                if (salesPrice!=null&&salesPrice.compareTo(BigDecimal.ZERO) != 0){
+//                    BigDecimal divide = salesPrice.multiply(new BigDecimal(config.getSalesPriceRate())).divide(new BigDecimal("100"));
+//                    System.out.println("代理价格"+divide);
+//                    System.out.println("成本价"+salesPrice);
+//                    FsStoreProductAttrValueScrm va = new FsStoreProductAttrValueScrm();
+//                    va.setCost(salesPrice);
+//                    va.setAgentPrice(divide);
+//                    va.setId(value.getId());
+//                    fsStoreProductAttrValueMapper.updateFsStoreProductAttrValue(va);
+//                }
+//            }
+//            System.out.println(goods);
+//        }
+//
+//
+//
+//    }
     public void couponOp()
     public void couponOp()
     {
     {
         couponUserService.updateFsCouponByExpire();
         couponUserService.updateFsCouponByExpire();
@@ -493,6 +492,8 @@ public class MallStoreTask
                     erpOrderService = jSTOrderService;
                     erpOrderService = jSTOrderService;
                 }else if (erpType == 6) {
                 }else if (erpType == 6) {
                     erpOrderService = k9OrderService;
                     erpOrderService = k9OrderService;
+                }else if (erpType == 7) {
+                    erpOrderService = wdtTwoOrderService;
                 }
                 }
             }
             }
         }
         }

+ 81 - 3
fs-company/src/main/java/com/fs/company/controller/common/CommonController.java

@@ -12,12 +12,25 @@ import com.fs.common.utils.file.FileUploadUtils;
 import com.fs.common.utils.file.FileUtils;
 import com.fs.common.utils.file.FileUtils;
 import com.fs.company.utils.AudioUtils;
 import com.fs.company.utils.AudioUtils;
 import com.fs.company.vo.WangUploadVO;
 import com.fs.company.vo.WangUploadVO;
+import com.fs.erp.domain.ErpDeliverys;
+import com.fs.erp.domain.ErpOrderQuery;
+import com.fs.erp.dto.ErpGoodsStockQueryRequert;
+import com.fs.erp.dto.ErpGoodsStockQueryResponse;
+import com.fs.erp.dto.ErpOrderQueryRequert;
+import com.fs.erp.dto.ErpOrderQueryResponse;
+import com.fs.erp.service.IErpOrderService;
+import com.fs.erp.service.impl.WdtTwoErpGoodsServiceImpl;
 import com.fs.framework.config.ServerConfig;
 import com.fs.framework.config.ServerConfig;
 import com.fs.framework.security.LoginUser;
 import com.fs.framework.security.LoginUser;
 import com.fs.framework.service.TokenService;
 import com.fs.framework.service.TokenService;
+import com.fs.his.config.FsSysConfig;
 import com.fs.his.domain.FsExportTask;
 import com.fs.his.domain.FsExportTask;
 import com.fs.his.dto.InquiryConfigDTO;
 import com.fs.his.dto.InquiryConfigDTO;
 import com.fs.his.service.IFsExportTaskService;
 import com.fs.his.service.IFsExportTaskService;
+import com.fs.his.utils.ConfigUtil;
+import com.fs.hisStore.domain.FsStoreOrderScrm;
+import com.fs.hisStore.mapper.FsStoreOrderScrmMapper;
+import com.fs.hisStore.service.IFsStoreOrderScrmService;
 import com.fs.im.dto.OpenImResponseDTO;
 import com.fs.im.dto.OpenImResponseDTO;
 import com.fs.im.service.OpenIMService;
 import com.fs.im.service.OpenIMService;
 import com.fs.qw.service.IQwWorkTaskService;
 import com.fs.qw.service.IQwWorkTaskService;
@@ -28,6 +41,7 @@ import com.fs.system.service.ISysConfigService;
 import org.slf4j.Logger;
 import org.slf4j.Logger;
 import org.slf4j.LoggerFactory;
 import org.slf4j.LoggerFactory;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.beans.factory.annotation.Qualifier;
 import org.springframework.http.MediaType;
 import org.springframework.http.MediaType;
 import org.springframework.web.bind.annotation.*;
 import org.springframework.web.bind.annotation.*;
 import org.springframework.web.multipart.MultipartFile;
 import org.springframework.web.multipart.MultipartFile;
@@ -42,6 +56,8 @@ import java.util.ArrayList;
 import java.util.List;
 import java.util.List;
 import java.util.Map;
 import java.util.Map;
 
 
+import static com.fs.hisStore.constants.StoreConstants.DELIVERY;
+
 /**
 /**
  * 通用请求处理
  * 通用请求处理
  *
  *
@@ -61,6 +77,12 @@ public class CommonController
     @Autowired
     @Autowired
     private QwApiService qwApiService;
     private QwApiService qwApiService;
 
 
+    @Autowired
+    private FsStoreOrderScrmMapper fsStoreOrderMapper;
+
+    @Autowired
+    private IFsStoreOrderScrmService orderService;
+
 
 
     @Autowired
     @Autowired
     private ISysConfigService configService;
     private ISysConfigService configService;
@@ -68,6 +90,13 @@ public class CommonController
     @Autowired
     @Autowired
     private OpenIMService openIMService;
     private OpenIMService openIMService;
 
 
+    @Autowired
+    private ConfigUtil configUtil;
+
+    @Autowired
+    @Qualifier("wdtTwoErpOrderServiceImpl")
+    private IErpOrderService wdtTwoOrderService;
+
     @Autowired
     @Autowired
     private TokenService tokenService;
     private TokenService tokenService;
 //    @Autowired
 //    @Autowired
@@ -81,15 +110,64 @@ public class CommonController
     @Autowired
     @Autowired
     private IQwWorkTaskService qwWorkTaskService;
     private IQwWorkTaskService qwWorkTaskService;
 
 
-    @PostMapping("common/test")
-    public R test() throws Exception
+    @Autowired
+    private WdtTwoErpGoodsServiceImpl wdtTwoErpGoodsService;
+
+    @GetMapping("common/test")
+    public R test(String barcode) throws Exception
     {
     {
-        qwWorkTaskService.delQwWorkTaskByOver();
+//        qwWorkTaskService.delQwWorkTaskByOver();
       //  qwWorkTaskService.addQwWorkByFirstCourse();
       //  qwWorkTaskService.addQwWorkByFirstCourse();
 //        qwWorkTaskService.addQwWorkByCourse();
 //        qwWorkTaskService.addQwWorkByCourse();
 //        qwWorkTaskService.addQwWorkByConversionDay();
 //        qwWorkTaskService.addQwWorkByConversionDay();
+        List<FsStoreOrderScrm> list = fsStoreOrderMapper.selectUpdateExpress();
+        for (FsStoreOrderScrm order : list){
+            if(!"2016767346466619392".equals(order.getExtendOrderId())){
+                continue;
+            }
+
+            ErpOrderQueryRequert request = new ErpOrderQueryRequert();
+            request.setCode(order.getExtendOrderId());
+            IErpOrderService erpOrderService = getErpOrderService();
+            ErpOrderQueryResponse response = erpOrderService.getOrder(request);
+            if(response.getOrders()!=null&&response.getOrders().size()>0){
+                for(ErpOrderQuery orderQuery : response.getOrders()){
+                    if(orderQuery.getDeliverys()!=null&&orderQuery.getDeliverys().size()>0){
+                        for(ErpDeliverys delivery:orderQuery.getDeliverys()){
+                            if(delivery.getDelivery()&& org.apache.commons.lang3.StringUtils.isNotEmpty(delivery.getMail_no())){
+                                //更新商订单状态 删除REDIS
+                                orderService.deliveryOrder(order.getOrderCode(),order.getExtendOrderId(),delivery.getMail_no(),delivery.getExpress_code(),delivery.getExpress_name());
+//                                redisCache.deleteObject(DELIVERY+":"+order.getExtendOrderId());
+                            }
+                        }
+
+                    }
+                }
+
+            }
+
+        }
+
+
       return R.ok();
       return R.ok();
     }
     }
+
+    private IErpOrderService getErpOrderService(){
+        //判断是否开启erp
+        IErpOrderService erpOrderService = null;
+        FsSysConfig erpConfig = configUtil.getSysConfig();
+        Integer erpOpen = erpConfig.getErpOpen();
+        if (erpOpen != null && erpOpen == 1) {
+            //判断erp类型
+            Integer erpType = erpConfig.getErpType();
+            if (erpType != null) {
+                 if (erpType == 7) {
+                    erpOrderService = wdtTwoOrderService;
+                }
+            }
+        }
+        return erpOrderService;
+    }
     /**
     /**
      * 通用下载请求
      * 通用下载请求
      *
      *

+ 1 - 2
fs-company/src/main/java/com/fs/company/controller/common/Test.java

@@ -175,8 +175,7 @@ public class Test {
     @Autowired
     @Autowired
     @Qualifier("k9OrderScrmServiceImpl")
     @Qualifier("k9OrderScrmServiceImpl")
     private IErpOrderService k9OrderService;
     private IErpOrderService k9OrderService;
-    @Autowired
-    IErpOrderService erpOrderService;
+
     @GetMapping("test")
     @GetMapping("test")
     public void fileDownload() {
     public void fileDownload() {
         deliveryOpScrm();
         deliveryOpScrm();

+ 0 - 2
fs-company/src/main/java/com/fs/company/controller/store/FsStoreOrderController.java

@@ -469,8 +469,6 @@ public class FsStoreOrderController extends BaseController
         }
         }
         return R.ok().put("data",expressInfoDTO);
         return R.ok().put("data",expressInfoDTO);
     }
     }
-    @Autowired
-    IErpOrderService erpOrderService;
 
 
     @GetMapping("/getEroOrder/{extendOrderId}")
     @GetMapping("/getEroOrder/{extendOrderId}")
     public R getEroOrder(@PathVariable("extendOrderId") String extendOrderId) {
     public R getEroOrder(@PathVariable("extendOrderId") String extendOrderId) {

+ 1 - 1
fs-quartz/src/main/java/com/fs/quartz/config/ScheduleConfig.java

@@ -8,7 +8,7 @@ import java.util.Properties;
 
 
 /**
 /**
  * 定时任务配置
  * 定时任务配置
- * 
+ *
 
 
  */
  */
 @Configuration
 @Configuration

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

@@ -28,6 +28,9 @@ public class ErpOrderQuery {
     String receiver_address;
     String receiver_address;
     Integer delivery_state;
     Integer delivery_state;
 
 
+    // 发货时间
+    Date consignTime;
+
 
 
 
 
     List<ErpDeliverys> deliverys;
     List<ErpDeliverys> deliverys;

+ 1 - 1
fs-service/src/main/java/com/fs/erp/dto/sdk/wangdian/api/WdtClient.java

@@ -47,7 +47,7 @@ public class WdtClient {
 	private int readTimeout = 15000;//15秒
 	private int readTimeout = 15000;//15秒
 
 
 
 
-	private WdtClient(){}
+	public WdtClient(){}
 
 
 
 
 	private static String getStringFromException(Throwable e) {
 	private static String getStringFromException(Throwable e) {

+ 4 - 4
fs-service/src/main/java/com/fs/erp/dto/sdk/wangdianTwo/api/WdtTradeAPI.java

@@ -11,8 +11,8 @@ public interface WdtTradeAPI
 	// blyjkcy3
 	// blyjkcy3
 	// 原接口 trade_push.php  ??? ??
 	// 原接口 trade_push.php  ??? ??
 	@Api(value = "sales.RawTrade.pushSelf2", paged = false)
 	@Api(value = "sales.RawTrade.pushSelf2", paged = false)
-	PushSelfResponse pushSelf(String shopNo, List<PushSelfRequest.RawTrade> rawTradeList,
-							  List<PushSelfRequest.RawTradeOrder> rawTradeOrderList, List<PushSelfRequest.RawTradeDiscount> rawTradeDiscountList);
+	PushSelf2Response pushSelf2(String shopNo, List<PushSelf2Request.RawTrade> rawTradeList,
+							  List<PushSelf2Request.RawTradeOrder> rawTradeOrderList, List<PushSelf2Request.DiscountInfo> rawTradeDiscountList);
 
 
 
 
 	// stock_query.php
 	// stock_query.php
@@ -24,8 +24,8 @@ public interface WdtTradeAPI
 	QuerySelfOrderDetailResponse querySelfOrderWithDetail(QuerySelfOrderDetailRequest request, Pager pager);
 	QuerySelfOrderDetailResponse querySelfOrderWithDetail(QuerySelfOrderDetailRequest request, Pager pager);
 
 
     // sales_refund_push.php
     // sales_refund_push.php
-	@Api(value = "aftersales.refund.RawRefund.upload2", paged = true)
-	StockSearch2Response rawRefundUpload(StockSearch2Request request, Pager pager);
+	@Api(value = "aftersales.refund.RawRefund.upload2", paged = false)
+	RawRefundUpload2Response rawRefundUpload(String shopNo,List<RawRefundUpload2Request.RefundOrder> orderList);
 
 
 
 
 
 

+ 29 - 0
fs-service/src/main/java/com/fs/erp/dto/sdk/wangdianTwo/api/dto/ErrorInfo.java

@@ -0,0 +1,29 @@
+package com.fs.erp.dto.sdk.wangdianTwo.api.dto;
+
+/**
+ * @description: xgb
+ * @author: Xgb
+ * @createDate: 2026/1/28
+ * @version: 1.0
+ */
+public class ErrorInfo {
+    private String no;
+
+    private String error;
+
+    public String getNo() {
+        return no;
+    }
+
+    public void setNo(String no) {
+        this.no = no;
+    }
+
+    public String getError() {
+        return error;
+    }
+
+    public void setError(String error) {
+        this.error = error;
+    }
+}

+ 32 - 0
fs-service/src/main/java/com/fs/erp/dto/sdk/wangdianTwo/api/dto/PushSelf2Request.java

@@ -2,6 +2,7 @@ package com.fs.erp.dto.sdk.wangdianTwo.api.dto;
 
 
 import com.google.gson.annotations.SerializedName;
 import com.google.gson.annotations.SerializedName;
 import java.math.BigDecimal;
 import java.math.BigDecimal;
+import java.util.List;
 
 
 /**
 /**
  * 订单同步接口请求参数实体类
  * 订单同步接口请求参数实体类
@@ -14,7 +15,15 @@ public class PushSelf2Request {
     @SerializedName("shop_no")
     @SerializedName("shop_no")
     private String shopNo;
     private String shopNo;
 
 
+    /**
+     * 原始单信息
+     */
+    private List<RawTrade> rawTrades;
+
+
+    private List<RawTradeOrder> RawTradeOrders;
 
 
+    private List<DiscountInfo> DiscountInfos;
 
 
     // Getters and Setters
     // Getters and Setters
     public String getShopNo() {
     public String getShopNo() {
@@ -25,6 +34,29 @@ public class PushSelf2Request {
         this.shopNo = shopNo;
         this.shopNo = shopNo;
     }
     }
 
 
+    public List<RawTrade> getRawTrades() {
+        return rawTrades;
+    }
+
+    public void setRawTrades(List<RawTrade> rawTrades) {
+        this.rawTrades = rawTrades;
+    }
+
+    public List<RawTradeOrder> getRawTradeOrders() {
+        return RawTradeOrders;
+    }
+
+    public void setRawTradeOrders(List<RawTradeOrder> rawTradeOrders) {
+        RawTradeOrders = rawTradeOrders;
+    }
+
+    public List<DiscountInfo> getDiscountInfos() {
+        return DiscountInfos;
+    }
+
+    public void setDiscountInfos(List<DiscountInfo> discountInfos) {
+        DiscountInfos = discountInfos;
+    }
 
 
     /**
     /**
      * 原始单信息实体类
      * 原始单信息实体类

+ 6 - 3
fs-service/src/main/java/com/fs/erp/dto/sdk/wangdianTwo/api/dto/PushSelf2Response.java

@@ -20,7 +20,7 @@ public class PushSelf2Response
 	// 单号 no	String
 	// 单号 no	String
 	// 错误信息	error	String
 	// 错误信息	error	String
 	@SerializedName("error_list")
 	@SerializedName("error_list")
-	private List<Map<String,Object>> errorList;
+	private List<ErrorInfo> errorList;
 
 
 	public Integer getChgCount()
 	public Integer getChgCount()
 	{
 	{
@@ -42,13 +42,16 @@ public class PushSelf2Response
 		this.newCount = newCount;
 		this.newCount = newCount;
 	}
 	}
 
 
-	public List<Map<String,Object>> getErrorList()
+
+	public List<ErrorInfo> getErrorList()
 	{
 	{
 		return errorList;
 		return errorList;
 	}
 	}
 
 
-	public void setErrorList(List<Map<String,Object>> errorList)
+	public void setErrorList(List<ErrorInfo> errorList)
 	{
 	{
 		this.errorList = errorList;
 		this.errorList = errorList;
 	}
 	}
+
+
 }
 }

+ 1899 - 391
fs-service/src/main/java/com/fs/erp/dto/sdk/wangdianTwo/api/dto/QuerySelfOrderDetailResponse.java

@@ -20,7 +20,7 @@ public class QuerySelfOrderDetailResponse {
      * 单据数据(订单相关数据)
      * 单据数据(订单相关数据)
      */
      */
     @SerializedName("order")
     @SerializedName("order")
-    private List<Map<String, Object>> order;
+    private List<OrderInfo> order;
 
 
     // Getters and Setters
     // Getters and Setters
     public Integer getTotalCount() {
     public Integer getTotalCount() {
@@ -31,11 +31,11 @@ public class QuerySelfOrderDetailResponse {
         this.totalCount = totalCount;
         this.totalCount = totalCount;
     }
     }
 
 
-    public List<Map<String, Object>> getOrder() {
+    public List<OrderInfo> getOrder() {
         return order;
         return order;
     }
     }
 
 
-    public void setOrder(List<Map<String, Object>> order) {
+    public void setOrder(List<OrderInfo> order) {
         this.order = order;
         this.order = order;
     }
     }
 
 
@@ -751,471 +751,1979 @@ public class QuerySelfOrderDetailResponse {
         @SerializedName("detail_list")
         @SerializedName("detail_list")
         private List<OrderDetail> detailList;
         private List<OrderDetail> detailList;
 
 
-        // Getters and Setters 省略,请根据需要添加...
+        public Long getTradeId() {
+            return tradeId;
+        }
+
+        public void setTradeId(Long tradeId) {
+            this.tradeId = tradeId;
+        }
+
+        public String getTradeNo() {
+            return tradeNo;
+        }
+
+        public void setTradeNo(String tradeNo) {
+            this.tradeNo = tradeNo;
+        }
+
+        public Integer getPlatformId() {
+            return platformId;
+        }
+
+        public void setPlatformId(Integer platformId) {
+            this.platformId = platformId;
+        }
+
+        public Integer getWarehouseType() {
+            return warehouseType;
+        }
+
+        public void setWarehouseType(Integer warehouseType) {
+            this.warehouseType = warehouseType;
+        }
+
+        public String getSrcTids() {
+            return srcTids;
+        }
+
+        public void setSrcTids(String srcTids) {
+            this.srcTids = srcTids;
+        }
+
+        public String getPayAccount() {
+            return payAccount;
+        }
+
+        public void setPayAccount(String payAccount) {
+            this.payAccount = payAccount;
+        }
+
+        public Integer getTradeStatus() {
+            return tradeStatus;
+        }
+
+        public void setTradeStatus(Integer tradeStatus) {
+            this.tradeStatus = tradeStatus;
+        }
+
+        public Integer getTradeType() {
+            return tradeType;
+        }
+
+        public void setTradeType(Integer tradeType) {
+            this.tradeType = tradeType;
+        }
+
+        public Integer getDeliveryTerm() {
+            return deliveryTerm;
+        }
+
+        public void setDeliveryTerm(Integer deliveryTerm) {
+            this.deliveryTerm = deliveryTerm;
+        }
+
+        public String getReceiverRing() {
+            return receiverRing;
+        }
+
+        public void setReceiverRing(String receiverRing) {
+            this.receiverRing = receiverRing;
+        }
+
+        public String getFreezeReason() {
+            return freezeReason;
+        }
+
+        public void setFreezeReason(String freezeReason) {
+            this.freezeReason = freezeReason;
+        }
+
+        public Integer getRefundStatus() {
+            return refundStatus;
+        }
+
+        public void setRefundStatus(Integer refundStatus) {
+            this.refundStatus = refundStatus;
+        }
+
+        public Integer getFenxiaoType() {
+            return fenxiaoType;
+        }
+
+        public void setFenxiaoType(Integer fenxiaoType) {
+            this.fenxiaoType = fenxiaoType;
+        }
+
+        public String getFenxiaoNick() {
+            return fenxiaoNick;
+        }
+
+        public void setFenxiaoNick(String fenxiaoNick) {
+            this.fenxiaoNick = fenxiaoNick;
+        }
+
+        public String getTradeTime() {
+            return tradeTime;
+        }
+
+        public void setTradeTime(String tradeTime) {
+            this.tradeTime = tradeTime;
+        }
+
+        public String getPayTime() {
+            return payTime;
+        }
+
+        public void setPayTime(String payTime) {
+            this.payTime = payTime;
+        }
+
+        public String getConsignTime() {
+            return consignTime;
+        }
+
+        public void setConsignTime(String consignTime) {
+            this.consignTime = consignTime;
+        }
+
+        public String getBuyerNick() {
+            return buyerNick;
+        }
+
+        public void setBuyerNick(String buyerNick) {
+            this.buyerNick = buyerNick;
+        }
+
+        public String getReceiverName() {
+            return receiverName;
+        }
+
+        public void setReceiverName(String receiverName) {
+            this.receiverName = receiverName;
+        }
+
+        public Integer getReceiverProvince() {
+            return receiverProvince;
+        }
+
+        public void setReceiverProvince(Integer receiverProvince) {
+            this.receiverProvince = receiverProvince;
+        }
+
+        public Integer getReceiverCity() {
+            return receiverCity;
+        }
+
+        public void setReceiverCity(Integer receiverCity) {
+            this.receiverCity = receiverCity;
+        }
+
+        public Integer getReceiverDistrict() {
+            return receiverDistrict;
+        }
+
+        public void setReceiverDistrict(Integer receiverDistrict) {
+            this.receiverDistrict = receiverDistrict;
+        }
+
+        public String getReceiverAddress() {
+            return receiverAddress;
+        }
+
+        public void setReceiverAddress(String receiverAddress) {
+            this.receiverAddress = receiverAddress;
+        }
+
+        public String getReceiverMobile() {
+            return receiverMobile;
+        }
+
+        public void setReceiverMobile(String receiverMobile) {
+            this.receiverMobile = receiverMobile;
+        }
+
+        public String getReceiverTelno() {
+            return receiverTelno;
+        }
+
+        public void setReceiverTelno(String receiverTelno) {
+            this.receiverTelno = receiverTelno;
+        }
+
+        public String getReceiverZip() {
+            return receiverZip;
+        }
+
+        public void setReceiverZip(String receiverZip) {
+            this.receiverZip = receiverZip;
+        }
+
+        public String getReceiverArea() {
+            return receiverArea;
+        }
+
+        public void setReceiverArea(String receiverArea) {
+            this.receiverArea = receiverArea;
+        }
+
+        public String getReceiverDtb() {
+            return receiverDtb;
+        }
+
+        public void setReceiverDtb(String receiverDtb) {
+            this.receiverDtb = receiverDtb;
+        }
+
+        public Integer getBadReason() {
+            return badReason;
+        }
+
+        public void setBadReason(Integer badReason) {
+            this.badReason = badReason;
+        }
+
+        public String getLogisticsNo() {
+            return logisticsNo;
+        }
+
+        public void setLogisticsNo(String logisticsNo) {
+            this.logisticsNo = logisticsNo;
+        }
+
+        public String getBuyerMessage() {
+            return buyerMessage;
+        }
+
+        public void setBuyerMessage(String buyerMessage) {
+            this.buyerMessage = buyerMessage;
+        }
+
+        public String getCsRemark() {
+            return csRemark;
+        }
+
+        public void setCsRemark(String csRemark) {
+            this.csRemark = csRemark;
+        }
+
+        public Integer getRemarkFlag() {
+            return remarkFlag;
+        }
+
+        public void setRemarkFlag(Integer remarkFlag) {
+            this.remarkFlag = remarkFlag;
+        }
+
+        public String getPrintRemark() {
+            return printRemark;
+        }
+
+        public void setPrintRemark(String printRemark) {
+            this.printRemark = printRemark;
+        }
+
+        public BigDecimal getGoodsTypeCount() {
+            return goodsTypeCount;
+        }
+
+        public void setGoodsTypeCount(BigDecimal goodsTypeCount) {
+            this.goodsTypeCount = goodsTypeCount;
+        }
+
+        public BigDecimal getGoodsCount() {
+            return goodsCount;
+        }
+
+        public void setGoodsCount(BigDecimal goodsCount) {
+            this.goodsCount = goodsCount;
+        }
+
+        public BigDecimal getGoodsAmount() {
+            return goodsAmount;
+        }
+
+        public void setGoodsAmount(BigDecimal goodsAmount) {
+            this.goodsAmount = goodsAmount;
+        }
+
+        public BigDecimal getPostAmount() {
+            return postAmount;
+        }
+
+        public void setPostAmount(BigDecimal postAmount) {
+            this.postAmount = postAmount;
+        }
+
+        public BigDecimal getOtherAmount() {
+            return otherAmount;
+        }
+
+        public void setOtherAmount(BigDecimal otherAmount) {
+            this.otherAmount = otherAmount;
+        }
+
+        public BigDecimal getDiscount() {
+            return discount;
+        }
+
+        public void setDiscount(BigDecimal discount) {
+            this.discount = discount;
+        }
+
+        public BigDecimal getReceivable() {
+            return receivable;
+        }
+
+        public void setReceivable(BigDecimal receivable) {
+            this.receivable = receivable;
+        }
+
+        public BigDecimal getCodAmount() {
+            return codAmount;
+        }
+
+        public void setCodAmount(BigDecimal codAmount) {
+            this.codAmount = codAmount;
+        }
+
+        public BigDecimal getExtCodFee() {
+            return extCodFee;
+        }
+
+        public void setExtCodFee(BigDecimal extCodFee) {
+            this.extCodFee = extCodFee;
+        }
+
+        public BigDecimal getGoodsCost() {
+            return goodsCost;
+        }
+
+        public void setGoodsCost(BigDecimal goodsCost) {
+            this.goodsCost = goodsCost;
+        }
+
+        public BigDecimal getPostCost() {
+            return postCost;
+        }
+
+        public void setPostCost(BigDecimal postCost) {
+            this.postCost = postCost;
+        }
+
+        public BigDecimal getWeight() {
+            return weight;
+        }
+
+        public void setWeight(BigDecimal weight) {
+            this.weight = weight;
+        }
+
+        public BigDecimal getProfit() {
+            return profit;
+        }
+
+        public void setProfit(BigDecimal profit) {
+            this.profit = profit;
+        }
+
+        public BigDecimal getTax() {
+            return tax;
+        }
+
+        public void setTax(BigDecimal tax) {
+            this.tax = tax;
+        }
+
+        public BigDecimal getTaxRate() {
+            return taxRate;
+        }
+
+        public void setTaxRate(BigDecimal taxRate) {
+            this.taxRate = taxRate;
+        }
+
+        public BigDecimal getCommission() {
+            return commission;
+        }
+
+        public void setCommission(BigDecimal commission) {
+            this.commission = commission;
+        }
+
+        public Integer getInvoiceType() {
+            return invoiceType;
+        }
+
+        public void setInvoiceType(Integer invoiceType) {
+            this.invoiceType = invoiceType;
+        }
+
+        public String getInvoiceTitle() {
+            return invoiceTitle;
+        }
+
+        public void setInvoiceTitle(String invoiceTitle) {
+            this.invoiceTitle = invoiceTitle;
+        }
+
+        public String getInvoiceContent() {
+            return invoiceContent;
+        }
+
+        public void setInvoiceContent(String invoiceContent) {
+            this.invoiceContent = invoiceContent;
+        }
+
+        public String getSalesmanName() {
+            return salesmanName;
+        }
+
+        public void setSalesmanName(String salesmanName) {
+            this.salesmanName = salesmanName;
+        }
+
+        public String getCheckerName() {
+            return checkerName;
+        }
+
+        public void setCheckerName(String checkerName) {
+            this.checkerName = checkerName;
+        }
+
+        public String getFcheckerName() {
+            return fcheckerName;
+        }
+
+        public void setFcheckerName(String fcheckerName) {
+            this.fcheckerName = fcheckerName;
+        }
+
+        public String getCheckouterName() {
+            return checkouterName;
+        }
+
+        public void setCheckouterName(String checkouterName) {
+            this.checkouterName = checkouterName;
+        }
+
+        public String getStockoutNo() {
+            return stockoutNo;
+        }
+
+        public void setStockoutNo(String stockoutNo) {
+            this.stockoutNo = stockoutNo;
+        }
+
+        public String getFlagName() {
+            return flagName;
+        }
+
+        public void setFlagName(String flagName) {
+            this.flagName = flagName;
+        }
+
+        public Integer getTradeFrom() {
+            return tradeFrom;
+        }
+
+        public void setTradeFrom(Integer tradeFrom) {
+            this.tradeFrom = tradeFrom;
+        }
+
+        public String getSingleSpecNo() {
+            return singleSpecNo;
+        }
+
+        public void setSingleSpecNo(String singleSpecNo) {
+            this.singleSpecNo = singleSpecNo;
+        }
+
+        public BigDecimal getRawGoodsCount() {
+            return rawGoodsCount;
+        }
+
+        public void setRawGoodsCount(BigDecimal rawGoodsCount) {
+            this.rawGoodsCount = rawGoodsCount;
+        }
+
+        public Integer getRawGoodsTypeCount() {
+            return rawGoodsTypeCount;
+        }
+
+        public void setRawGoodsTypeCount(Integer rawGoodsTypeCount) {
+            this.rawGoodsTypeCount = rawGoodsTypeCount;
+        }
+
+        public String getCurrency() {
+            return currency;
+        }
+
+        public void setCurrency(String currency) {
+            this.currency = currency;
+        }
+
+        public Integer getInvoiceId() {
+            return invoiceId;
+        }
+
+        public void setInvoiceId(Integer invoiceId) {
+            this.invoiceId = invoiceId;
+        }
+
+        public Integer getVersionId() {
+            return versionId;
+        }
+
+        public void setVersionId(Integer versionId) {
+            this.versionId = versionId;
+        }
+
+        public String getModified() {
+            return modified;
+        }
+
+        public void setModified(String modified) {
+            this.modified = modified;
+        }
+
+        public String getCreated() {
+            return created;
+        }
+
+        public void setCreated(String created) {
+            this.created = created;
+        }
+
+        public String getCheckTime() {
+            return checkTime;
+        }
+
+        public void setCheckTime(String checkTime) {
+            this.checkTime = checkTime;
+        }
+
+        public Integer getIdCardType() {
+            return idCardType;
+        }
+
+        public void setIdCardType(Integer idCardType) {
+            this.idCardType = idCardType;
+        }
+
+        public String getShopNo() {
+            return shopNo;
+        }
+
+        public void setShopNo(String shopNo) {
+            this.shopNo = shopNo;
+        }
+
+        public String getShopName() {
+            return shopName;
+        }
+
+        public void setShopName(String shopName) {
+            this.shopName = shopName;
+        }
+
+        public String getShopRemark() {
+            return shopRemark;
+        }
+
+        public void setShopRemark(String shopRemark) {
+            this.shopRemark = shopRemark;
+        }
+
+        public String getWarehouseNo() {
+            return warehouseNo;
+        }
+
+        public void setWarehouseNo(String warehouseNo) {
+            this.warehouseNo = warehouseNo;
+        }
+
+        public String getCustomerName() {
+            return customerName;
+        }
+
+        public void setCustomerName(String customerName) {
+            this.customerName = customerName;
+        }
+
+        public String getCustomerNo() {
+            return customerNo;
+        }
+
+        public void setCustomerNo(String customerNo) {
+            this.customerNo = customerNo;
+        }
+
+        public String getLogisticsName() {
+            return logisticsName;
+        }
+
+        public void setLogisticsName(String logisticsName) {
+            this.logisticsName = logisticsName;
+        }
+
+        public String getLogisticsCode() {
+            return logisticsCode;
+        }
+
+        public void setLogisticsCode(String logisticsCode) {
+            this.logisticsCode = logisticsCode;
+        }
+
+        public String getLogisticsTypeName() {
+            return logisticsTypeName;
+        }
+
+        public void setLogisticsTypeName(String logisticsTypeName) {
+            this.logisticsTypeName = logisticsTypeName;
+        }
+
+        public String getToDeliverTime() {
+            return toDeliverTime;
+        }
+
+        public void setToDeliverTime(String toDeliverTime) {
+            this.toDeliverTime = toDeliverTime;
+        }
+
+        public String getDelayToTime() {
+            return delayToTime;
+        }
+
+        public void setDelayToTime(String delayToTime) {
+            this.delayToTime = delayToTime;
+        }
+
+        public String getEstimateConsignTime() {
+            return estimateConsignTime;
+        }
+
+        public void setEstimateConsignTime(String estimateConsignTime) {
+            this.estimateConsignTime = estimateConsignTime;
+        }
+
+        public Integer getShopId() {
+            return shopId;
+        }
+
+        public void setShopId(Integer shopId) {
+            this.shopId = shopId;
+        }
+
+        public Integer getWarehouseId() {
+            return warehouseId;
+        }
+
+        public void setWarehouseId(Integer warehouseId) {
+            this.warehouseId = warehouseId;
+        }
+
+        public BigDecimal getVolume() {
+            return volume;
+        }
+
+        public void setVolume(BigDecimal volume) {
+            this.volume = volume;
+        }
+
+        public String getTradeLabel() {
+            return tradeLabel;
+        }
+
+        public void setTradeLabel(String tradeLabel) {
+            this.tradeLabel = tradeLabel;
+        }
+
+        public Integer getTradeMask() {
+            return tradeMask;
+        }
+
+        public void setTradeMask(Integer tradeMask) {
+            this.tradeMask = tradeMask;
+        }
+
+        public Integer getShopPlatformId() {
+            return shopPlatformId;
+        }
+
+        public void setShopPlatformId(Integer shopPlatformId) {
+            this.shopPlatformId = shopPlatformId;
+        }
+
+        public Integer getSubPlatformId() {
+            return subPlatformId;
+        }
+
+        public void setSubPlatformId(Integer subPlatformId) {
+            this.subPlatformId = subPlatformId;
+        }
+
+        public String getPackageName() {
+            return packageName;
+        }
+
+        public void setPackageName(String packageName) {
+            this.packageName = packageName;
+        }
+
+        public Integer getPackageId() {
+            return packageId;
+        }
+
+        public void setPackageId(Integer packageId) {
+            this.packageId = packageId;
+        }
+
+        public BigDecimal getPackageCost() {
+            return packageCost;
+        }
+
+        public void setPackageCost(BigDecimal packageCost) {
+            this.packageCost = packageCost;
+        }
+
+        public BigDecimal getPaid() {
+            return paid;
+        }
+
+        public void setPaid(BigDecimal paid) {
+            this.paid = paid;
+        }
+
+        public Integer getLargeType() {
+            return largeType;
+        }
+
+        public void setLargeType(Integer largeType) {
+            this.largeType = largeType;
+        }
+
+        public Integer getGiftMask() {
+            return giftMask;
+        }
+
+        public void setGiftMask(Integer giftMask) {
+            this.giftMask = giftMask;
+        }
+
+        public Integer getCustomerId() {
+            return customerId;
+        }
+
+        public void setCustomerId(Integer customerId) {
+            this.customerId = customerId;
+        }
+
+        public BigDecimal getOtherCost() {
+            return otherCost;
+        }
+
+        public void setOtherCost(BigDecimal otherCost) {
+            this.otherCost = otherCost;
+        }
+
+        public Boolean getSealed() {
+            return isSealed;
+        }
+
+        public void setSealed(Boolean sealed) {
+            isSealed = sealed;
+        }
+
+        public Integer getCustomerType() {
+            return customerType;
+        }
+
+        public void setCustomerType(Integer customerType) {
+            this.customerType = customerType;
+        }
+
+        public Integer getLogisticsId() {
+            return logisticsId;
+        }
+
+        public void setLogisticsId(Integer logisticsId) {
+            this.logisticsId = logisticsId;
+        }
+
+        public String getCancelReason() {
+            return cancelReason;
+        }
+
+        public void setCancelReason(String cancelReason) {
+            this.cancelReason = cancelReason;
+        }
+
+        public String getRevertReason() {
+            return revertReason;
+        }
+
+        public void setRevertReason(String revertReason) {
+            this.revertReason = revertReason;
+        }
+
+        public String getNewTradeLabel() {
+            return newTradeLabel;
+        }
+
+        public void setNewTradeLabel(String newTradeLabel) {
+            this.newTradeLabel = newTradeLabel;
+        }
+
+        public String getFenxiaoTid() {
+            return fenxiaoTid;
+        }
+
+        public void setFenxiaoTid(String fenxiaoTid) {
+            this.fenxiaoTid = fenxiaoTid;
+        }
+
+        public String getCustomerUniqueId() {
+            return customerUniqueId;
+        }
+
+        public void setCustomerUniqueId(String customerUniqueId) {
+            this.customerUniqueId = customerUniqueId;
+        }
+
+        public String getPlatformLabel() {
+            return platformLabel;
+        }
+
+        public void setPlatformLabel(String platformLabel) {
+            this.platformLabel = platformLabel;
+        }
+
+        public String getFenxiaoNickNo() {
+            return fenxiaoNickNo;
+        }
+
+        public void setFenxiaoNickNo(String fenxiaoNickNo) {
+            this.fenxiaoNickNo = fenxiaoNickNo;
+        }
+
+        public String getPreSyncLogisticsNo() {
+            return preSyncLogisticsNo;
+        }
+
+        public void setPreSyncLogisticsNo(String preSyncLogisticsNo) {
+            this.preSyncLogisticsNo = preSyncLogisticsNo;
+        }
+
+        public String getPreSyncTime() {
+            return preSyncTime;
+        }
+
+        public void setPreSyncTime(String preSyncTime) {
+            this.preSyncTime = preSyncTime;
+        }
+
+        public String getEndTime() {
+            return endTime;
+        }
+
+        public void setEndTime(String endTime) {
+            this.endTime = endTime;
+        }
+
+        public String getSettleTime() {
+            return settleTime;
+        }
+
+        public void setSettleTime(String settleTime) {
+            this.settleTime = settleTime;
+        }
+
+        public String getTasks() {
+            return tasks;
+        }
+
+        public void setTasks(String tasks) {
+            this.tasks = tasks;
+        }
+
+        public Integer getFreezeReasonId() {
+            return freezeReasonId;
+        }
+
+        public void setFreezeReasonId(Integer freezeReasonId) {
+            this.freezeReasonId = freezeReasonId;
+        }
+
+        public Integer getFlagId() {
+            return flagId;
+        }
+
+        public void setFlagId(Integer flagId) {
+            this.flagId = flagId;
+        }
+
+        public List<OrderDetail> getDetailList() {
+            return detailList;
+        }
+
+        public void setDetailList(List<OrderDetail> detailList) {
+            this.detailList = detailList;
+        }
     }
     }
 
 
-    /**
-     * 订单明细实体类
-     */
-    public static class OrderDetail {
+    /**
+     * 订单明细实体类
+     */
+    public static class OrderDetail {
+
+        /**
+         * 订单唯一键
+         */
+        @SerializedName("trade_id")
+        private Long tradeId;
+
+        /**
+         * 订单明细唯一键
+         */
+        @SerializedName("rec_id")
+        private Long recId;
+
+        /**
+         * 平台ID
+         */
+        @SerializedName("platform_id")
+        private Integer platformId;
+
+        /**
+         * 原始子单号
+         */
+        @SerializedName("src_oid")
+        private String srcOid;
+
+        /**
+         * 原始单号
+         */
+        @SerializedName("src_tid")
+        private String srcTid;
+
+        /**
+         * 赠品方式
+         * 0非赠品 1自动赠送 2手工赠送 4周期购赠送 8平台赠送 32阶梯满赠 64CRM追加赠送 65 主品
+         */
+        @SerializedName("gift_type")
+        private Integer giftType;
+
+        /**
+         * 支付状态(0:未付款 1:部分付款 2:已付款)
+         */
+        @SerializedName("pay_status")
+        private Integer payStatus;
+
+        /**
+         * 退款状态
+         * 0、无退款 1、取消退款 2、申请退款 3、待退款 4、待还原 5、退款成功 6、已退(未付款关闭)
+         */
+        @SerializedName("refund_status")
+        private Integer refundStatus;
+
+        /**
+         * 退款模式(1、担保 2、非担保 3、在线非担保)
+         */
+        @SerializedName("guarantee_mode")
+        private Integer guaranteeMode;
+
+        /**
+         * 子单平台状态
+         * 10、未确认 20、待尾款 30、待发货 40、部分发货 50、已发货 60、已签收 70、已完成 80、已退款 90、已关闭
+         */
+        @SerializedName("platform_status")
+        private Integer platformStatus;
+
+        /**
+         * 发货条件(1、款到发货 2、货到付款(包含部分货到付款) 3、分期付款)
+         */
+        @SerializedName("delivery_term")
+        private Integer deliveryTerm;
+
+        /**
+         * 数量
+         */
+        @SerializedName("num")
+        private BigDecimal num;
+
+        /**
+         * 标价,手工新建时使用货品属性中的"零售价"
+         */
+        @SerializedName("price")
+        private BigDecimal price;
+
+        /**
+         * 售后退款数量
+         */
+        @SerializedName("refund_num")
+        private BigDecimal refundNum;
+
+        /**
+         * 成交价,原始单折扣及分摊之后的价格
+         */
+        @SerializedName("order_price")
+        private BigDecimal orderPrice;
+
+        /**
+         * 分摊后价格,进入ERP后再次调整的价格,默认值与order_price一致
+         */
+        @SerializedName("share_price")
+        private BigDecimal sharePrice;
+
+        /**
+         * 手工调整价,正数为加价,负数为减价,暂未处理
+         */
+        @SerializedName("adjust")
+        private BigDecimal adjust;
+
+        /**
+         * 优惠
+         */
+        @SerializedName("discount")
+        private BigDecimal discount;
+
+        /**
+         * 分摊后总价
+         */
+        @SerializedName("share_amount")
+        private BigDecimal shareAmount;
+
+        /**
+         * 税率
+         */
+        @SerializedName("tax_rate")
+        private BigDecimal taxRate;
+
+        /**
+         * 货品名称
+         */
+        @SerializedName("goods_name")
+        private String goodsName;
+
+        /**
+         * 货品编号
+         */
+        @SerializedName("goods_no")
+        private String goodsNo;
+
+        /**
+         * 规格名称
+         */
+        @SerializedName("spec_name")
+        private String specName;
+
+        /**
+         * 商家编码
+         */
+        @SerializedName("spec_no")
+        private String specNo;
+
+        /**
+         * 规格码
+         */
+        @SerializedName("spec_code")
+        private String specCode;
+
+        /**
+         * 组合装编码
+         */
+        @SerializedName("suite_no")
+        private String suiteNo;
+
+        /**
+         * 如果是组合装拆分的,此为组合装名称
+         */
+        @SerializedName("suite_name")
+        private String suiteName;
+
+        /**
+         * 组合装数量,不受拆分合并影响
+         */
+        @SerializedName("suite_num")
+        private BigDecimal suiteNum;
+
+        /**
+         * 组合装分摊后总价
+         */
+        @SerializedName("suite_amount")
+        private BigDecimal suiteAmount;
+
+        /**
+         * 组合装优惠
+         */
+        @SerializedName("suite_discount")
+        private BigDecimal suiteDiscount;
+
+        /**
+         * 平台货品名称
+         */
+        @SerializedName("api_goods_name")
+        private String apiGoodsName;
+
+        /**
+         * 平台规格名称
+         */
+        @SerializedName("api_spec_name")
+        private String apiSpecName;
+
+        /**
+         * 平台货品id
+         */
+        @SerializedName("api_goods_id")
+        private String apiGoodsId;
+
+        /**
+         * 平台规格id
+         */
+        @SerializedName("api_spec_id")
+        private String apiSpecId;
+
+        /**
+         * 货品id(系统货品主键)
+         */
+        @SerializedName("goods_id")
+        private Integer goodsId;
+
+        /**
+         * 单品id(系统单品主键)
+         */
+        @SerializedName("spec_id")
+        private Integer specId;
+
+        /**
+         * 佣金
+         */
+        @SerializedName("commission")
+        private BigDecimal commission;
+
+        /**
+         * 货品类型
+         * 0:其它 1:销售货品 2:原材料 3:包装物 4:周转材料 5:虚拟商品 6:固定资产 8:分装箱
+         */
+        @SerializedName("goods_type")
+        private Integer goodsType;
+
+        /**
+         * 订单内部来源
+         * 0:无来源 1:手机 2:聚划算 32:开具电子发票 2048:当日达 4096:次日达 8192:承诺时效
+         * 2097152:区域零售 4194304:拼多多厂家代打 8388608:周期购 1048576:预售单
+         * 33554432:前N有礼 524288:天猫物流升级 64:按需配送 256:承诺结构化/QIC 16384:商仓鸟配
+         */
+        @SerializedName("from_mask")
+        private Integer fromMask;
+
+        /**
+         * 订单内部来源扩展
+         * 2:小时达订单 4:自选物流 16:国补订单
+         */
+        @SerializedName("from_mask_ext")
+        private Integer fromMaskExt;
+
+        /**
+         * 子单备注
+         */
+        @SerializedName("remark")
+        private String remark;
+
+        /**
+         * 修改时间(毫秒级时间戳,例如:1631861379000)
+         */
+        @SerializedName("modified")
+        private String modified;
+
+        /**
+         * 创建时间(毫秒级时间戳,例如:1631861379000)
+         */
+        @SerializedName("created")
+        private String created;
+
+        /**
+         * 单品自定义属性1
+         */
+        @SerializedName("prop1")
+        private String prop1;
+
+        /**
+         * 单品自定义属性2
+         */
+        @SerializedName("prop2")
+        private String prop2;
+
+        /**
+         * 单品自定义属性3
+         */
+        @SerializedName("prop3")
+        private String prop3;
+
+        /**
+         * 单品自定义属性4
+         */
+        @SerializedName("prop4")
+        private String prop4;
+
+        /**
+         * 单品自定义属性5
+         */
+        @SerializedName("prop5")
+        private String prop5;
+
+        /**
+         * 单品自定义属性6
+         */
+        @SerializedName("prop6")
+        private String prop6;
+
+        /**
+         * 货品重量(子单预估货品总重量)
+         */
+        @SerializedName("weight")
+        private BigDecimal weight;
+
+        /**
+         * 图片路径
+         */
+        @SerializedName("img_url")
+        private String imgUrl;
+
+        /**
+         * 实发数量(此数量为发货数量,删除操作等于将此值设置为0)
+         */
+        @SerializedName("actual_num")
+        private BigDecimal actualNum;
+
+        /**
+         * 条码
+         */
+        @SerializedName("barcode")
+        private String barcode;
+
+        /**
+         * 已付
+         */
+        @SerializedName("paid")
+        private BigDecimal paid;
+
+        /**
+         * 组合装id
+         */
+        @SerializedName("suite_id")
+        private Integer suiteId;
+
+        /**
+         * bind_oid
+         */
+        @SerializedName("bind_oid")
+        private String bindOid;
+
+        /**
+         * 打印组合装(0:组合装明细 1:组合装及明细 2:组合装)
+         */
+        @SerializedName("print_suite_mode")
+        private Integer printSuiteMode;
+
+        /**
+         * 天猫物流升级信息(mask类型值,在判断的时候使用&运算)
+         * 1:天猫物流升级-顺丰配送 2:需要回传 4:天猫物流升级-按需配送 8:天猫物流升级-承诺发货时效
+         * 16:天猫物流升级-承诺达时效 32:天猫物流升级-预售下沉 64:天猫物流升级-预计到货时效
+         * 128:天猫物流升级-配送线路异常 1024:定金链接 2048:补款链接 4096:确认收货
+         */
+        @SerializedName("flag")
+        private Integer flag;
+
+        /**
+         * 库存保留情况
+         * 0:未保留(取消的订单或完成) 1:无库存记录 2:未付款 3:已保留待审核 4:待发货 5:预订单库存
+         */
+        @SerializedName("stock_state")
+        private Integer stockState;
+
+        /**
+         * 平台已发货
+         */
+        @SerializedName("is_consigned")
+        private Boolean isConsigned;
+
+        /**
+         * 是否付款
+         */
+        @SerializedName("is_received")
+        private Integer isReceived;
+
+        /**
+         * 平台类目主键
+         */
+        @SerializedName("cid")
+        private Integer cid;
+
+        /**
+         * 最后更新时间,DateTime格式
+         */
+        @SerializedName("modified_date")
+        private String modifiedDate;
+
+        /**
+         * 创建时间,DateTime格式
+         */
+        @SerializedName("created_date")
+        private String createdDate;
+
+        /**
+         * 分摊邮费
+         */
+        @SerializedName("share_post_price")
+        private BigDecimal sharePostPrice;
+
+        /**
+         * 发票内容
+         */
+        @SerializedName("invoice_content")
+        private String invoiceContent;
+
+        /**
+         * 支付时间,DateTime格式,取自原始订单支付时间
+         */
+        @SerializedName("pay_time")
+        private String payTime;
+
+        /**
+         * 货品简称
+         */
+        @SerializedName("short_name")
+        private String shortName;
+
+        /**
+         * 赠品关联关系
+         */
+        @SerializedName("goods_gift_relation")
+        private String goodsGiftRelation;
+
+        /**
+         * 成本价
+         */
+        @SerializedName("avg_cost")
+        private BigDecimal avgCost;
+
+        /**
+         * 分类名称
+         */
+        @SerializedName("class_name")
+        private String className;
+
+        /**
+         * 基本单位id
+         */
+        @SerializedName("base_unit_id")
+        private Integer baseUnitId;
+
+        /**
+         * 基本单位名称
+         */
+        @SerializedName("base_unit_name")
+        private String baseUnitName;
+
+        /**
+         * 分销商id
+         */
+        @SerializedName("fenxiao_rec_id")
+        private Integer fenxiaoRecId;
+
+        public Long getTradeId() {
+            return tradeId;
+        }
+
+        public void setTradeId(Long tradeId) {
+            this.tradeId = tradeId;
+        }
+
+        public Long getRecId() {
+            return recId;
+        }
+
+        public void setRecId(Long recId) {
+            this.recId = recId;
+        }
+
+        public Integer getPlatformId() {
+            return platformId;
+        }
+
+        public void setPlatformId(Integer platformId) {
+            this.platformId = platformId;
+        }
+
+        public String getSrcOid() {
+            return srcOid;
+        }
+
+        public void setSrcOid(String srcOid) {
+            this.srcOid = srcOid;
+        }
+
+        public String getSrcTid() {
+            return srcTid;
+        }
+
+        public void setSrcTid(String srcTid) {
+            this.srcTid = srcTid;
+        }
+
+        public Integer getGiftType() {
+            return giftType;
+        }
+
+        public void setGiftType(Integer giftType) {
+            this.giftType = giftType;
+        }
+
+        public Integer getPayStatus() {
+            return payStatus;
+        }
+
+        public void setPayStatus(Integer payStatus) {
+            this.payStatus = payStatus;
+        }
+
+        public Integer getRefundStatus() {
+            return refundStatus;
+        }
+
+        public void setRefundStatus(Integer refundStatus) {
+            this.refundStatus = refundStatus;
+        }
+
+        public Integer getGuaranteeMode() {
+            return guaranteeMode;
+        }
+
+        public void setGuaranteeMode(Integer guaranteeMode) {
+            this.guaranteeMode = guaranteeMode;
+        }
+
+        public Integer getPlatformStatus() {
+            return platformStatus;
+        }
+
+        public void setPlatformStatus(Integer platformStatus) {
+            this.platformStatus = platformStatus;
+        }
+
+        public Integer getDeliveryTerm() {
+            return deliveryTerm;
+        }
+
+        public void setDeliveryTerm(Integer deliveryTerm) {
+            this.deliveryTerm = deliveryTerm;
+        }
+
+        public BigDecimal getNum() {
+            return num;
+        }
+
+        public void setNum(BigDecimal num) {
+            this.num = num;
+        }
+
+        public BigDecimal getPrice() {
+            return price;
+        }
+
+        public void setPrice(BigDecimal price) {
+            this.price = price;
+        }
+
+        public BigDecimal getRefundNum() {
+            return refundNum;
+        }
+
+        public void setRefundNum(BigDecimal refundNum) {
+            this.refundNum = refundNum;
+        }
+
+        public BigDecimal getOrderPrice() {
+            return orderPrice;
+        }
+
+        public void setOrderPrice(BigDecimal orderPrice) {
+            this.orderPrice = orderPrice;
+        }
+
+        public BigDecimal getSharePrice() {
+            return sharePrice;
+        }
+
+        public void setSharePrice(BigDecimal sharePrice) {
+            this.sharePrice = sharePrice;
+        }
+
+        public BigDecimal getAdjust() {
+            return adjust;
+        }
+
+        public void setAdjust(BigDecimal adjust) {
+            this.adjust = adjust;
+        }
+
+        public BigDecimal getDiscount() {
+            return discount;
+        }
+
+        public void setDiscount(BigDecimal discount) {
+            this.discount = discount;
+        }
+
+        public BigDecimal getShareAmount() {
+            return shareAmount;
+        }
+
+        public void setShareAmount(BigDecimal shareAmount) {
+            this.shareAmount = shareAmount;
+        }
+
+        public BigDecimal getTaxRate() {
+            return taxRate;
+        }
+
+        public void setTaxRate(BigDecimal taxRate) {
+            this.taxRate = taxRate;
+        }
+
+        public String getGoodsName() {
+            return goodsName;
+        }
+
+        public void setGoodsName(String goodsName) {
+            this.goodsName = goodsName;
+        }
+
+        public String getGoodsNo() {
+            return goodsNo;
+        }
+
+        public void setGoodsNo(String goodsNo) {
+            this.goodsNo = goodsNo;
+        }
+
+        public String getSpecName() {
+            return specName;
+        }
+
+        public void setSpecName(String specName) {
+            this.specName = specName;
+        }
+
+        public String getSpecNo() {
+            return specNo;
+        }
+
+        public void setSpecNo(String specNo) {
+            this.specNo = specNo;
+        }
 
 
-        /**
-         * 订单唯一键
-         */
-        @SerializedName("trade_id")
-        private Long tradeId;
+        public String getSpecCode() {
+            return specCode;
+        }
 
 
-        /**
-         * 订单明细唯一键
-         */
-        @SerializedName("rec_id")
-        private Long recId;
+        public void setSpecCode(String specCode) {
+            this.specCode = specCode;
+        }
 
 
-        /**
-         * 平台ID
-         */
-        @SerializedName("platform_id")
-        private Integer platformId;
+        public String getSuiteNo() {
+            return suiteNo;
+        }
 
 
-        /**
-         * 原始子单号
-         */
-        @SerializedName("src_oid")
-        private String srcOid;
+        public void setSuiteNo(String suiteNo) {
+            this.suiteNo = suiteNo;
+        }
 
 
-        /**
-         * 原始单号
-         */
-        @SerializedName("src_tid")
-        private String srcTid;
+        public String getSuiteName() {
+            return suiteName;
+        }
 
 
-        /**
-         * 赠品方式
-         * 0非赠品 1自动赠送 2手工赠送 4周期购赠送 8平台赠送 32阶梯满赠 64CRM追加赠送 65 主品
-         */
-        @SerializedName("gift_type")
-        private Integer giftType;
+        public void setSuiteName(String suiteName) {
+            this.suiteName = suiteName;
+        }
 
 
-        /**
-         * 支付状态(0:未付款 1:部分付款 2:已付款)
-         */
-        @SerializedName("pay_status")
-        private Integer payStatus;
+        public BigDecimal getSuiteNum() {
+            return suiteNum;
+        }
 
 
-        /**
-         * 退款状态
-         * 0、无退款 1、取消退款 2、申请退款 3、待退款 4、待还原 5、退款成功 6、已退(未付款关闭)
-         */
-        @SerializedName("refund_status")
-        private Integer refundStatus;
+        public void setSuiteNum(BigDecimal suiteNum) {
+            this.suiteNum = suiteNum;
+        }
 
 
-        /**
-         * 退款模式(1、担保 2、非担保 3、在线非担保)
-         */
-        @SerializedName("guarantee_mode")
-        private Integer guaranteeMode;
+        public BigDecimal getSuiteAmount() {
+            return suiteAmount;
+        }
 
 
-        /**
-         * 子单平台状态
-         * 10、未确认 20、待尾款 30、待发货 40、部分发货 50、已发货 60、已签收 70、已完成 80、已退款 90、已关闭
-         */
-        @SerializedName("platform_status")
-        private Integer platformStatus;
+        public void setSuiteAmount(BigDecimal suiteAmount) {
+            this.suiteAmount = suiteAmount;
+        }
 
 
-        /**
-         * 发货条件(1、款到发货 2、货到付款(包含部分货到付款) 3、分期付款)
-         */
-        @SerializedName("delivery_term")
-        private Integer deliveryTerm;
+        public BigDecimal getSuiteDiscount() {
+            return suiteDiscount;
+        }
 
 
-        /**
-         * 数量
-         */
-        @SerializedName("num")
-        private BigDecimal num;
+        public void setSuiteDiscount(BigDecimal suiteDiscount) {
+            this.suiteDiscount = suiteDiscount;
+        }
 
 
-        /**
-         * 标价,手工新建时使用货品属性中的"零售价"
-         */
-        @SerializedName("price")
-        private BigDecimal price;
+        public String getApiGoodsName() {
+            return apiGoodsName;
+        }
 
 
-        /**
-         * 售后退款数量
-         */
-        @SerializedName("refund_num")
-        private BigDecimal refundNum;
+        public void setApiGoodsName(String apiGoodsName) {
+            this.apiGoodsName = apiGoodsName;
+        }
 
 
-        /**
-         * 成交价,原始单折扣及分摊之后的价格
-         */
-        @SerializedName("order_price")
-        private BigDecimal orderPrice;
+        public String getApiSpecName() {
+            return apiSpecName;
+        }
 
 
-        /**
-         * 分摊后价格,进入ERP后再次调整的价格,默认值与order_price一致
-         */
-        @SerializedName("share_price")
-        private BigDecimal sharePrice;
+        public void setApiSpecName(String apiSpecName) {
+            this.apiSpecName = apiSpecName;
+        }
 
 
-        /**
-         * 手工调整价,正数为加价,负数为减价,暂未处理
-         */
-        @SerializedName("adjust")
-        private BigDecimal adjust;
+        public String getApiGoodsId() {
+            return apiGoodsId;
+        }
 
 
-        /**
-         * 优惠
-         */
-        @SerializedName("discount")
-        private BigDecimal discount;
+        public void setApiGoodsId(String apiGoodsId) {
+            this.apiGoodsId = apiGoodsId;
+        }
 
 
-        /**
-         * 分摊后总价
-         */
-        @SerializedName("share_amount")
-        private BigDecimal shareAmount;
+        public String getApiSpecId() {
+            return apiSpecId;
+        }
 
 
-        /**
-         * 税率
-         */
-        @SerializedName("tax_rate")
-        private BigDecimal taxRate;
+        public void setApiSpecId(String apiSpecId) {
+            this.apiSpecId = apiSpecId;
+        }
 
 
-        /**
-         * 货品名称
-         */
-        @SerializedName("goods_name")
-        private String goodsName;
+        public Integer getGoodsId() {
+            return goodsId;
+        }
 
 
-        /**
-         * 货品编号
-         */
-        @SerializedName("goods_no")
-        private String goodsNo;
+        public void setGoodsId(Integer goodsId) {
+            this.goodsId = goodsId;
+        }
 
 
-        /**
-         * 规格名称
-         */
-        @SerializedName("spec_name")
-        private String specName;
+        public Integer getSpecId() {
+            return specId;
+        }
 
 
-        /**
-         * 商家编码
-         */
-        @SerializedName("spec_no")
-        private String specNo;
+        public void setSpecId(Integer specId) {
+            this.specId = specId;
+        }
 
 
-        /**
-         * 规格码
-         */
-        @SerializedName("spec_code")
-        private String specCode;
+        public BigDecimal getCommission() {
+            return commission;
+        }
 
 
-        /**
-         * 组合装编码
-         */
-        @SerializedName("suite_no")
-        private String suiteNo;
+        public void setCommission(BigDecimal commission) {
+            this.commission = commission;
+        }
 
 
-        /**
-         * 如果是组合装拆分的,此为组合装名称
-         */
-        @SerializedName("suite_name")
-        private String suiteName;
+        public Integer getGoodsType() {
+            return goodsType;
+        }
 
 
-        /**
-         * 组合装数量,不受拆分合并影响
-         */
-        @SerializedName("suite_num")
-        private BigDecimal suiteNum;
+        public void setGoodsType(Integer goodsType) {
+            this.goodsType = goodsType;
+        }
 
 
-        /**
-         * 组合装分摊后总价
-         */
-        @SerializedName("suite_amount")
-        private BigDecimal suiteAmount;
+        public Integer getFromMask() {
+            return fromMask;
+        }
 
 
-        /**
-         * 组合装优惠
-         */
-        @SerializedName("suite_discount")
-        private BigDecimal suiteDiscount;
+        public void setFromMask(Integer fromMask) {
+            this.fromMask = fromMask;
+        }
 
 
-        /**
-         * 平台货品名称
-         */
-        @SerializedName("api_goods_name")
-        private String apiGoodsName;
+        public Integer getFromMaskExt() {
+            return fromMaskExt;
+        }
 
 
-        /**
-         * 平台规格名称
-         */
-        @SerializedName("api_spec_name")
-        private String apiSpecName;
+        public void setFromMaskExt(Integer fromMaskExt) {
+            this.fromMaskExt = fromMaskExt;
+        }
 
 
-        /**
-         * 平台货品id
-         */
-        @SerializedName("api_goods_id")
-        private String apiGoodsId;
+        public String getRemark() {
+            return remark;
+        }
+
+        public void setRemark(String remark) {
+            this.remark = remark;
+        }
+
+        public String getModified() {
+            return modified;
+        }
+
+        public void setModified(String modified) {
+            this.modified = modified;
+        }
+
+        public String getCreated() {
+            return created;
+        }
+
+        public void setCreated(String created) {
+            this.created = created;
+        }
+
+        public String getProp1() {
+            return prop1;
+        }
+
+        public void setProp1(String prop1) {
+            this.prop1 = prop1;
+        }
+
+        public String getProp2() {
+            return prop2;
+        }
+
+        public void setProp2(String prop2) {
+            this.prop2 = prop2;
+        }
+
+        public String getProp3() {
+            return prop3;
+        }
+
+        public void setProp3(String prop3) {
+            this.prop3 = prop3;
+        }
+
+        public String getProp4() {
+            return prop4;
+        }
+
+        public void setProp4(String prop4) {
+            this.prop4 = prop4;
+        }
+
+        public String getProp5() {
+            return prop5;
+        }
+
+        public void setProp5(String prop5) {
+            this.prop5 = prop5;
+        }
+
+        public String getProp6() {
+            return prop6;
+        }
+
+        public void setProp6(String prop6) {
+            this.prop6 = prop6;
+        }
+
+        public BigDecimal getWeight() {
+            return weight;
+        }
+
+        public void setWeight(BigDecimal weight) {
+            this.weight = weight;
+        }
+
+        public String getImgUrl() {
+            return imgUrl;
+        }
+
+        public void setImgUrl(String imgUrl) {
+            this.imgUrl = imgUrl;
+        }
+
+        public BigDecimal getActualNum() {
+            return actualNum;
+        }
+
+        public void setActualNum(BigDecimal actualNum) {
+            this.actualNum = actualNum;
+        }
+
+        public String getBarcode() {
+            return barcode;
+        }
+
+        public void setBarcode(String barcode) {
+            this.barcode = barcode;
+        }
 
 
-        /**
-         * 平台规格id
-         */
-        @SerializedName("api_spec_id")
-        private String apiSpecId;
+        public BigDecimal getPaid() {
+            return paid;
+        }
 
 
-        /**
-         * 货品id(系统货品主键)
-         */
-        @SerializedName("goods_id")
-        private Integer goodsId;
+        public void setPaid(BigDecimal paid) {
+            this.paid = paid;
+        }
 
 
-        /**
-         * 单品id(系统单品主键)
-         */
-        @SerializedName("spec_id")
-        private Integer specId;
+        public Integer getSuiteId() {
+            return suiteId;
+        }
 
 
-        /**
-         * 佣金
-         */
-        @SerializedName("commission")
-        private BigDecimal commission;
+        public void setSuiteId(Integer suiteId) {
+            this.suiteId = suiteId;
+        }
 
 
-        /**
-         * 货品类型
-         * 0:其它 1:销售货品 2:原材料 3:包装物 4:周转材料 5:虚拟商品 6:固定资产 8:分装箱
-         */
-        @SerializedName("goods_type")
-        private Integer goodsType;
+        public String getBindOid() {
+            return bindOid;
+        }
 
 
-        /**
-         * 订单内部来源
-         * 0:无来源 1:手机 2:聚划算 32:开具电子发票 2048:当日达 4096:次日达 8192:承诺时效
-         * 2097152:区域零售 4194304:拼多多厂家代打 8388608:周期购 1048576:预售单
-         * 33554432:前N有礼 524288:天猫物流升级 64:按需配送 256:承诺结构化/QIC 16384:商仓鸟配
-         */
-        @SerializedName("from_mask")
-        private Integer fromMask;
+        public void setBindOid(String bindOid) {
+            this.bindOid = bindOid;
+        }
 
 
-        /**
-         * 订单内部来源扩展
-         * 2:小时达订单 4:自选物流 16:国补订单
-         */
-        @SerializedName("from_mask_ext")
-        private Integer fromMaskExt;
+        public Integer getPrintSuiteMode() {
+            return printSuiteMode;
+        }
 
 
-        /**
-         * 子单备注
-         */
-        @SerializedName("remark")
-        private String remark;
+        public void setPrintSuiteMode(Integer printSuiteMode) {
+            this.printSuiteMode = printSuiteMode;
+        }
 
 
-        /**
-         * 修改时间(毫秒级时间戳,例如:1631861379000)
-         */
-        @SerializedName("modified")
-        private String modified;
+        public Integer getFlag() {
+            return flag;
+        }
 
 
-        /**
-         * 创建时间(毫秒级时间戳,例如:1631861379000)
-         */
-        @SerializedName("created")
-        private String created;
+        public void setFlag(Integer flag) {
+            this.flag = flag;
+        }
 
 
-        /**
-         * 单品自定义属性1
-         */
-        @SerializedName("prop1")
-        private String prop1;
+        public Integer getStockState() {
+            return stockState;
+        }
 
 
-        /**
-         * 单品自定义属性2
-         */
-        @SerializedName("prop2")
-        private String prop2;
+        public void setStockState(Integer stockState) {
+            this.stockState = stockState;
+        }
 
 
-        /**
-         * 单品自定义属性3
-         */
-        @SerializedName("prop3")
-        private String prop3;
+        public Boolean getConsigned() {
+            return isConsigned;
+        }
 
 
-        /**
-         * 单品自定义属性4
-         */
-        @SerializedName("prop4")
-        private String prop4;
+        public void setConsigned(Boolean consigned) {
+            isConsigned = consigned;
+        }
 
 
-        /**
-         * 单品自定义属性5
-         */
-        @SerializedName("prop5")
-        private String prop5;
+        public Integer getIsReceived() {
+            return isReceived;
+        }
 
 
-        /**
-         * 单品自定义属性6
-         */
-        @SerializedName("prop6")
-        private String prop6;
+        public void setIsReceived(Integer isReceived) {
+            this.isReceived = isReceived;
+        }
 
 
-        /**
-         * 货品重量(子单预估货品总重量)
-         */
-        @SerializedName("weight")
-        private BigDecimal weight;
+        public Integer getCid() {
+            return cid;
+        }
 
 
-        /**
-         * 图片路径
-         */
-        @SerializedName("img_url")
-        private String imgUrl;
+        public void setCid(Integer cid) {
+            this.cid = cid;
+        }
 
 
-        /**
-         * 实发数量(此数量为发货数量,删除操作等于将此值设置为0)
-         */
-        @SerializedName("actual_num")
-        private BigDecimal actualNum;
+        public String getModifiedDate() {
+            return modifiedDate;
+        }
 
 
-        /**
-         * 条码
-         */
-        @SerializedName("barcode")
-        private String barcode;
+        public void setModifiedDate(String modifiedDate) {
+            this.modifiedDate = modifiedDate;
+        }
 
 
-        /**
-         * 已付
-         */
-        @SerializedName("paid")
-        private BigDecimal paid;
+        public String getCreatedDate() {
+            return createdDate;
+        }
 
 
-        /**
-         * 组合装id
-         */
-        @SerializedName("suite_id")
-        private Integer suiteId;
+        public void setCreatedDate(String createdDate) {
+            this.createdDate = createdDate;
+        }
 
 
-        /**
-         * bind_oid
-         */
-        @SerializedName("bind_oid")
-        private String bindOid;
+        public BigDecimal getSharePostPrice() {
+            return sharePostPrice;
+        }
 
 
-        /**
-         * 打印组合装(0:组合装明细 1:组合装及明细 2:组合装)
-         */
-        @SerializedName("print_suite_mode")
-        private Integer printSuiteMode;
+        public void setSharePostPrice(BigDecimal sharePostPrice) {
+            this.sharePostPrice = sharePostPrice;
+        }
 
 
-        /**
-         * 天猫物流升级信息(mask类型值,在判断的时候使用&运算)
-         * 1:天猫物流升级-顺丰配送 2:需要回传 4:天猫物流升级-按需配送 8:天猫物流升级-承诺发货时效
-         * 16:天猫物流升级-承诺达时效 32:天猫物流升级-预售下沉 64:天猫物流升级-预计到货时效
-         * 128:天猫物流升级-配送线路异常 1024:定金链接 2048:补款链接 4096:确认收货
-         */
-        @SerializedName("flag")
-        private Integer flag;
+        public String getInvoiceContent() {
+            return invoiceContent;
+        }
 
 
-        /**
-         * 库存保留情况
-         * 0:未保留(取消的订单或完成) 1:无库存记录 2:未付款 3:已保留待审核 4:待发货 5:预订单库存
-         */
-        @SerializedName("stock_state")
-        private Integer stockState;
+        public void setInvoiceContent(String invoiceContent) {
+            this.invoiceContent = invoiceContent;
+        }
 
 
-        /**
-         * 平台已发货
-         */
-        @SerializedName("is_consigned")
-        private Boolean isConsigned;
+        public String getPayTime() {
+            return payTime;
+        }
 
 
-        /**
-         * 是否付款
-         */
-        @SerializedName("is_received")
-        private Integer isReceived;
+        public void setPayTime(String payTime) {
+            this.payTime = payTime;
+        }
 
 
-        /**
-         * 平台类目主键
-         */
-        @SerializedName("cid")
-        private Integer cid;
+        public String getShortName() {
+            return shortName;
+        }
 
 
-        /**
-         * 最后更新时间,DateTime格式
-         */
-        @SerializedName("modified_date")
-        private String modifiedDate;
+        public void setShortName(String shortName) {
+            this.shortName = shortName;
+        }
 
 
-        /**
-         * 创建时间,DateTime格式
-         */
-        @SerializedName("created_date")
-        private String createdDate;
+        public String getGoodsGiftRelation() {
+            return goodsGiftRelation;
+        }
 
 
-        /**
-         * 分摊邮费
-         */
-        @SerializedName("share_post_price")
-        private BigDecimal sharePostPrice;
+        public void setGoodsGiftRelation(String goodsGiftRelation) {
+            this.goodsGiftRelation = goodsGiftRelation;
+        }
 
 
-        /**
-         * 发票内容
-         */
-        @SerializedName("invoice_content")
-        private String invoiceContent;
+        public BigDecimal getAvgCost() {
+            return avgCost;
+        }
 
 
-        /**
-         * 支付时间,DateTime格式,取自原始订单支付时间
-         */
-        @SerializedName("pay_time")
-        private String payTime;
+        public void setAvgCost(BigDecimal avgCost) {
+            this.avgCost = avgCost;
+        }
 
 
-        /**
-         * 货品简称
-         */
-        @SerializedName("short_name")
-        private String shortName;
+        public String getClassName() {
+            return className;
+        }
 
 
-        /**
-         * 赠品关联关系
-         */
-        @SerializedName("goods_gift_relation")
-        private String goodsGiftRelation;
+        public void setClassName(String className) {
+            this.className = className;
+        }
 
 
-        /**
-         * 成本价
-         */
-        @SerializedName("avg_cost")
-        private BigDecimal avgCost;
+        public Integer getBaseUnitId() {
+            return baseUnitId;
+        }
 
 
-        /**
-         * 分类名称
-         */
-        @SerializedName("class_name")
-        private String className;
+        public void setBaseUnitId(Integer baseUnitId) {
+            this.baseUnitId = baseUnitId;
+        }
 
 
-        /**
-         * 基本单位id
-         */
-        @SerializedName("base_unit_id")
-        private Integer baseUnitId;
+        public String getBaseUnitName() {
+            return baseUnitName;
+        }
 
 
-        /**
-         * 基本单位名称
-         */
-        @SerializedName("base_unit_name")
-        private String baseUnitName;
+        public void setBaseUnitName(String baseUnitName) {
+            this.baseUnitName = baseUnitName;
+        }
 
 
-        /**
-         * 分销商id
-         */
-        @SerializedName("fenxiao_rec_id")
-        private Integer fenxiaoRecId;
+        public Integer getFenxiaoRecId() {
+            return fenxiaoRecId;
+        }
 
 
-        // Getters and Setters 省略,请根据需要添加...
+        public void setFenxiaoRecId(Integer fenxiaoRecId) {
+            this.fenxiaoRecId = fenxiaoRecId;
+        }
     }
     }
 
 
     /**
     /**

+ 15 - 1
fs-service/src/main/java/com/fs/erp/dto/sdk/wangdianTwo/api/dto/RawRefundUploadRequest.java → fs-service/src/main/java/com/fs/erp/dto/sdk/wangdianTwo/api/dto/RawRefundUpload2Request.java

@@ -2,12 +2,13 @@ package com.fs.erp.dto.sdk.wangdianTwo.api.dto;
 
 
 import com.google.gson.annotations.SerializedName;
 import com.google.gson.annotations.SerializedName;
 import java.math.BigDecimal;
 import java.math.BigDecimal;
+import java.util.List;
 
 
 
 
 /**
 /**
  * 退款单同步接口请求参数实体类
  * 退款单同步接口请求参数实体类
  */
  */
-public class RawRefundUploadRequest {
+public class RawRefundUpload2Request {
 
 
     /**
     /**
      * 店铺编号
      * 店铺编号
@@ -15,6 +16,11 @@ public class RawRefundUploadRequest {
     @SerializedName("shop_no")
     @SerializedName("shop_no")
     private String shopNo;
     private String shopNo;
 
 
+    /**
+     * 原始退款单实体类
+     */
+    private List<RefundOrder> orderList;
+
 
 
     // Getters and Setters
     // Getters and Setters
     public String getShopNo() {
     public String getShopNo() {
@@ -25,6 +31,14 @@ public class RawRefundUploadRequest {
         this.shopNo = shopNo;
         this.shopNo = shopNo;
     }
     }
 
 
+    public List<RefundOrder> getOrderList() {
+        return orderList;
+    }
+
+    public void setOrderList(List<RefundOrder> refundOrder) {
+        this.orderList = refundOrder;
+    }
+
     /**
     /**
      * 原始退款单实体类
      * 原始退款单实体类
      */
      */

+ 5 - 5
fs-service/src/main/java/com/fs/erp/dto/sdk/wangdianTwo/api/dto/RawRefundUploadResponse.java → fs-service/src/main/java/com/fs/erp/dto/sdk/wangdianTwo/api/dto/RawRefundUpload2Response.java

@@ -3,14 +3,13 @@ package com.fs.erp.dto.sdk.wangdianTwo.api.dto;
 
 
 import com.google.gson.annotations.SerializedName;
 import com.google.gson.annotations.SerializedName;
 
 
-import java.math.BigDecimal;
 import java.util.List;
 import java.util.List;
 import java.util.Map;
 import java.util.Map;
 
 
 /**
 /**
  * 退款单同步接口响应参数实体类
  * 退款单同步接口响应参数实体类
  */
  */
-public class RawRefundUploadResponse {
+public class RawRefundUpload2Response {
 
 
     /**
     /**
      * {"status":0,"data":{"chg_count":0,"new_count":1}}
      * {"status":0,"data":{"chg_count":0,"new_count":1}}
@@ -26,7 +25,7 @@ public class RawRefundUploadResponse {
     // 单号 no	String
     // 单号 no	String
     // 错误信息	error	String
     // 错误信息	error	String
     @SerializedName("error_list")
     @SerializedName("error_list")
-    private List<Map<String,Object>> errorList;
+    private List<ErrorInfo> errorList;
 
 
     public Integer getChgCount()
     public Integer getChgCount()
     {
     {
@@ -48,13 +47,14 @@ public class RawRefundUploadResponse {
         this.newCount = newCount;
         this.newCount = newCount;
     }
     }
 
 
-    public List<Map<String,Object>> getErrorList()
+    public List<ErrorInfo> getErrorList()
     {
     {
         return errorList;
         return errorList;
     }
     }
 
 
-    public void setErrorList(List<Map<String,Object>> errorList)
+    public void setErrorList(List<ErrorInfo> errorList)
     {
     {
         this.errorList = errorList;
         this.errorList = errorList;
     }
     }
+
 }
 }

+ 13 - 6
fs-service/src/main/java/com/fs/erp/dto/sdk/wangdianTwo/impl/DefaultClient.java → fs-service/src/main/java/com/fs/erp/dto/sdk/wangdianTwo/impl/WdtTwoClient.java

@@ -5,6 +5,8 @@ import com.fs.erp.dto.sdk.wangdianTwo.Client;
 import com.fs.erp.dto.sdk.wangdianTwo.Pager;
 import com.fs.erp.dto.sdk.wangdianTwo.Pager;
 import com.fs.erp.dto.sdk.wangdianTwo.WdtErpException;
 import com.fs.erp.dto.sdk.wangdianTwo.WdtErpException;
 import com.google.gson.*;
 import com.google.gson.*;
+import lombok.extern.slf4j.Slf4j;
+import org.springframework.stereotype.Component;
 
 
 import java.io.*;
 import java.io.*;
 import java.lang.reflect.InvocationTargetException;
 import java.lang.reflect.InvocationTargetException;
@@ -19,7 +21,8 @@ import java.security.NoSuchAlgorithmException;
 import java.util.Map;
 import java.util.Map;
 import java.util.TreeMap;
 import java.util.TreeMap;
 
 
-public class DefaultClient implements Client
+@Slf4j
+public class WdtTwoClient implements Client
 {
 {
 	private static final String WDT_SERVICE_URL = "http://wdt.wangdian.cn/";
 	private static final String WDT_SERVICE_URL = "http://wdt.wangdian.cn/";
 	// 协议版本号
 	// 协议版本号
@@ -68,7 +71,7 @@ public class DefaultClient implements Client
 
 
 	private static JsonParser parser = new JsonParser();
 	private static JsonParser parser = new JsonParser();
 
 
-	private DefaultClient(String sid, String url, String key, String secret, boolean isMultiTenantMode)
+	private WdtTwoClient(String sid, String url, String key, String secret, boolean isMultiTenantMode)
 	{
 	{
 		if (url.endsWith("/"))
 		if (url.endsWith("/"))
 			url += "openapi";
 			url += "openapi";
@@ -207,7 +210,7 @@ public class DefaultClient implements Client
 		// 请求参数
 		// 请求参数
 		String body = gson.toJson(args);
 		String body = gson.toJson(args);
 		requestParams.put("body", body);
 		requestParams.put("body", body);
-
+		log.info("requestParams: {}", requestParams);
 		// 计算签名
 		// 计算签名
 		String sign = this.sign(requestParams, this.secret);
 		String sign = this.sign(requestParams, this.secret);
 		requestParams.remove("body");
 		requestParams.remove("body");
@@ -215,6 +218,8 @@ public class DefaultClient implements Client
 
 
 		String requestUrl = this.url + "?" + this.ToQueryString(requestParams);
 		String requestUrl = this.url + "?" + this.ToQueryString(requestParams);
 
 
+
+
 		PrintWriter outWriter = null;
 		PrintWriter outWriter = null;
 		BufferedReader inReader = null;
 		BufferedReader inReader = null;
 		String responseBody;
 		String responseBody;
@@ -262,6 +267,8 @@ public class DefaultClient implements Client
 
 
 		JsonObject jsonResponse = parser.parse(responseBody).getAsJsonObject();
 		JsonObject jsonResponse = parser.parse(responseBody).getAsJsonObject();
 
 
+		log.info("responseBody: {}", responseBody);
+
 		int status = jsonResponse.get("status").getAsInt();
 		int status = jsonResponse.get("status").getAsInt();
 		if (status > 0)
 		if (status > 0)
 		{
 		{
@@ -327,16 +334,16 @@ public class DefaultClient implements Client
 
 
 	public static Client get(String sid, String url, String key, String secret, boolean isMultiTenantMode)
 	public static Client get(String sid, String url, String key, String secret, boolean isMultiTenantMode)
 	{
 	{
-		return new DefaultClient(sid, url, key, secret, isMultiTenantMode);
+		return new WdtTwoClient(sid, url, key, secret, isMultiTenantMode);
 	}
 	}
 
 
 	public static Client get(String sid, String url, String key, String secret)
 	public static Client get(String sid, String url, String key, String secret)
 	{
 	{
-		return new DefaultClient(sid, url, key, secret, false);
+		return new WdtTwoClient(sid, url, key, secret, false);
 	}
 	}
 
 
 	public static Client get(String sid, String key, String secret)
 	public static Client get(String sid, String key, String secret)
 	{
 	{
-		return new DefaultClient(sid, WDT_SERVICE_URL, key, secret, false);
+		return new WdtTwoClient(sid, WDT_SERVICE_URL, key, secret, false);
 	}
 	}
 }
 }

+ 108 - 47
fs-service/src/main/java/com/fs/erp/service/impl/WdtTwoErpGoodsServiceImpl.java

@@ -1,27 +1,43 @@
 package com.fs.erp.service.impl;
 package com.fs.erp.service.impl;
 
 
 import com.alibaba.fastjson.JSON;
 import com.alibaba.fastjson.JSON;
-import com.alibaba.fastjson.PropertyNamingStrategy;
-import com.alibaba.fastjson.parser.ParserConfig;
-import com.fs.erp.domain.ErpGoods;
-import com.fs.erp.domain.ErpGoodsStock;
+import com.alibaba.fastjson.JSONObject;
+import com.baomidou.mybatisplus.core.toolkit.ObjectUtils;
+import com.fs.erp.domain.*;
 import com.fs.erp.dto.*;
 import com.fs.erp.dto.*;
-import com.fs.erp.dto.sdk.wangdian.api.WdtClient;
-import com.fs.erp.dto.wdt.*;
+import com.fs.erp.dto.sdk.wangdian.enums.DeliveryTerm;
+import com.fs.erp.dto.sdk.wangdian.enums.PaymentStatus;
+import com.fs.erp.dto.sdk.wangdian.enums.RefundStatus;
+import com.fs.erp.dto.sdk.wangdian.enums.TradeStatus;
+import com.fs.erp.dto.sdk.wangdianTwo.Pager;
+import com.fs.erp.dto.sdk.wangdianTwo.api.WdtTradeAPI;
+import com.fs.erp.dto.sdk.wangdianTwo.api.dto.*;
+import com.fs.erp.dto.sdk.wangdianTwo.impl.ApiFactory;
+import com.fs.erp.dto.sdk.wangdianTwo.impl.WdtTwoClient;
 import com.fs.erp.service.IErpGoodsService;
 import com.fs.erp.service.IErpGoodsService;
-import com.hc.openapi.tool.util.ObjectUtils;
+import com.fs.his.domain.FsUser;
+import com.fs.his.mapper.FsUserMapper;
+import com.fs.his.utils.ConfigUtil;
+import com.fs.hisStore.config.FsErpConfig;
+import com.fs.hisStore.domain.FsStoreOrderScrm;
+import com.fs.hisStore.domain.FsStoreProductScrm;
+import com.fs.hisStore.service.IFsStoreOrderItemScrmService;
+import com.fs.hisStore.service.IFsStoreOrderScrmService;
+import com.fs.hisStore.service.IFsStoreProductScrmService;
+import com.fs.hisStore.vo.FsStoreOrderItemVO;
+import com.hc.openapi.tool.util.StringUtils;
 import lombok.extern.slf4j.Slf4j;
 import lombok.extern.slf4j.Slf4j;
-import org.apache.commons.lang3.exception.ExceptionUtils;
+import org.apache.commons.collections4.CollectionUtils;
+import org.apache.http.client.utils.DateUtils;
 import org.apache.http.util.Asserts;
 import org.apache.http.util.Asserts;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.context.annotation.Primary;
 import org.springframework.context.annotation.Primary;
 import org.springframework.stereotype.Service;
 import org.springframework.stereotype.Service;
 
 
-import java.io.IOException;
-import java.util.ArrayList;
-import java.util.HashMap;
-import java.util.List;
-import java.util.Map;
+import javax.annotation.PostConstruct;
+import java.math.BigDecimal;
+import java.math.RoundingMode;
+import java.util.*;
 
 
 /**
 /**
  * @Description: 旗舰版 erp
  * @Description: 旗舰版 erp
@@ -34,8 +50,40 @@ import java.util.Map;
 @Service
 @Service
 @Primary
 @Primary
 public class WdtTwoErpGoodsServiceImpl implements IErpGoodsService {
 public class WdtTwoErpGoodsServiceImpl implements IErpGoodsService {
+
+    @Autowired
+    ConfigUtil configUtil;
+
+    @Autowired
+    private IFsStoreOrderScrmService fsStoreOrderScrmService;
+
     @Autowired
     @Autowired
-    private WdtClient client;
+    private IFsStoreOrderItemScrmService fsStoreOrderItemScrmService;
+
+    @Autowired
+    private IFsStoreProductScrmService fsStoreProductScrmService;
+
+    @Autowired
+    private FsUserMapper fsUserMapper;
+
+
+
+    // 延迟初始化这些字段
+    private WdtTwoClient client;
+    private WdtTradeAPI api;
+
+    @PostConstruct
+    private void init() {
+        // 在 Spring 容器完成依赖注入后初始化
+        this.client = (WdtTwoClient)WdtTwoClient.get(
+                configUtil.getErpConfig().getErpWdSid(),
+                configUtil.getSysConfig().getErpWdBaseUrl(),
+                configUtil.getErpConfig().getErpWdAppKey(),
+                configUtil.getErpConfig().getErpWdAppsecret()
+        );
+        this.api = ApiFactory.get(client, WdtTradeAPI.class);
+    }
+
 
 
     @Override
     @Override
     public BaseResponse addGoods(ErpGoods goods) {
     public BaseResponse addGoods(ErpGoods goods) {
@@ -47,54 +95,67 @@ public class WdtTwoErpGoodsServiceImpl implements IErpGoodsService {
         return null;
         return null;
     }
     }
 
 
+
     @Override
     @Override
     public ErpGoodsQueryResponse getGoods(ErpGoodsQueryRequert param) {
     public ErpGoodsQueryResponse getGoods(ErpGoodsQueryRequert param) {
         return null;
         return null;
     }
     }
 
 
+
     @Override
     @Override
     public ErpGoodsQueryResponse getGoodsScrm(ErpGoodsQueryRequert param) {
     public ErpGoodsQueryResponse getGoodsScrm(ErpGoodsQueryRequert param) {
         return null;
         return null;
     }
     }
 
 
+    @Override
+    public ErpGoodsStockQueryResponse getGoodsStockScrm(ErpGoodsStockQueryRequert param) {
+        return null;
+    }
+
+
+    /**
+     * @Description: 库存查询
+     * @Param:
+     * @Return:
+     * @Author xgb
+     * @Date 2026/1/27 16:24
+     */
     @Override
     @Override
     public ErpGoodsStockQueryResponse getGoodsStock(ErpGoodsStockQueryRequert param) {
     public ErpGoodsStockQueryResponse getGoodsStock(ErpGoodsStockQueryRequert param) {
         String barcode = param.getBarcode();
         String barcode = param.getBarcode();
-        Asserts.notNull(barcode,"barcode不能为空!");
-
-        Map<String,String> map = new HashMap<>();
-        map.put("spec_no",barcode);
-        try {
-            String response = client.execute("stock_query.php", map);
-            ParserConfig config = new ParserConfig();
-            config.propertyNamingStrategy = PropertyNamingStrategy.CamelCase;
-            ErpWdtStockRespDTO erpWdtStockRespDTO = JSON.parseObject(response, ErpWdtStockRespDTO.class,config);
-            List<ErpGoodsStock> list = new ArrayList<>();
-            if(ObjectUtils.equals(0,erpWdtStockRespDTO.getCode())){
-                List<ErpWdtStockDTO> stocks = erpWdtStockRespDTO.getStocks();
-                for (ErpWdtStockDTO stock : stocks) {
-                    ErpGoodsStock erpGoodsStock = new ErpGoodsStock();
-                    erpGoodsStock.setBarcode(barcode);
-                    erpGoodsStock.setQty(stock.getStock_num().split("\\.")[0]); //999979.0000
-                    erpGoodsStock.setSalable_qty(stock.getAvaliable_num().split("\\.")[0]); //999976.0000
-                    list.add(erpGoodsStock);
-                }
-            } else {
-                log.info("获取erp库存失败! 错误原因: {}", JSON.toJSONString(erpWdtStockRespDTO));
-                throw new RuntimeException(erpWdtStockRespDTO.getMessage());
-            }
-            ErpGoodsStockQueryResponse erpGoodsStockQueryResponse = new ErpGoodsStockQueryResponse();
-            erpGoodsStockQueryResponse.setStocks(list);
-            return erpGoodsStockQueryResponse;
-        } catch (IOException e) {
-            log.info("获取erp库存失败! 错误原因: {}", ExceptionUtils.getStackTrace(e));
-            throw new RuntimeException(e);
+        Asserts.notNull(barcode, "barcode不能为空!");
+
+        StockSearch2Request request = new StockSearch2Request();
+        request.setSpecNos(Collections.singletonList(barcode));
+
+
+        StockSearch2Response response = api.search2(request, new Pager(1, 0, true));
+        if (response.getTotal() <= 0) {
+            log.info("获取erp库存失败! 商品编码{}", barcode);
+            throw new RuntimeException("该商品erp系统不存在");
+        }
+        List<StockSearch2Response.Detail> detailList = response.getDetailList();
+        List<ErpGoodsStock> list = new ArrayList<>();
+        for (StockSearch2Response.Detail stock : detailList) {
+            ErpGoodsStock erpGoodsStock = new ErpGoodsStock();
+            erpGoodsStock.setBarcode(barcode);
+            erpGoodsStock.setQty(String.valueOf(stock.getStockNum()).split("\\.")[0]); //999979.0000
+            erpGoodsStock.setSalable_qty(String.valueOf(stock.getAvailableSendStock()).split("\\.")[0]); //999976.0000
+            list.add(erpGoodsStock);
         }
         }
-    }
 
 
-    @Override
-    public ErpGoodsStockQueryResponse getGoodsStockScrm(ErpGoodsStockQueryRequert param) {
-        return null;
+        ErpGoodsStockQueryResponse erpGoodsStockQueryResponse = new ErpGoodsStockQueryResponse();
+        erpGoodsStockQueryResponse.setStocks(list);
+        return erpGoodsStockQueryResponse;
+
+
     }
     }
+
+
+
 }
 }
 
 
+
+
+
+

+ 848 - 0
fs-service/src/main/java/com/fs/erp/service/impl/WdtTwoErpOrderServiceImpl.java

@@ -0,0 +1,848 @@
+package com.fs.erp.service.impl;
+
+import cn.hutool.core.util.ObjectUtil;
+import com.alibaba.fastjson.JSON;
+import com.alibaba.fastjson.JSONObject;
+import com.alibaba.fastjson.PropertyNamingStrategy;
+import com.alibaba.fastjson.parser.ParserConfig;
+import com.alibaba.fastjson.serializer.SerializeConfig;
+import com.baomidou.mybatisplus.core.toolkit.ObjectUtils;
+import com.fs.common.exception.ServiceException;
+import com.fs.erp.converter.ErpWdtToErpOrderMapper;
+import com.fs.erp.domain.*;
+import com.fs.erp.dto.*;
+import com.fs.erp.dto.sdk.wangdian.api.WdtClient;
+import com.fs.erp.dto.sdk.wangdian.enums.*;
+import com.fs.erp.dto.sdk.wangdianTwo.Pager;
+import com.fs.erp.dto.sdk.wangdianTwo.api.WdtTradeAPI;
+import com.fs.erp.dto.sdk.wangdianTwo.api.dto.*;
+import com.fs.erp.dto.sdk.wangdianTwo.impl.ApiFactory;
+import com.fs.erp.dto.sdk.wangdianTwo.impl.WdtTwoClient;
+import com.fs.erp.dto.wdt.*;
+import com.fs.erp.service.IErpOrderService;
+import com.fs.his.config.FsSysConfig;
+import com.fs.his.domain.FsStoreOrder;
+import com.fs.his.domain.FsStoreOrderItem;
+import com.fs.his.domain.FsStoreProduct;
+import com.fs.his.domain.FsUser;
+import com.fs.his.mapper.FsStoreOrderMapper;
+import com.fs.his.mapper.FsUserMapper;
+import com.fs.his.service.IFsStoreOrderItemService;
+import com.fs.his.service.IFsStoreOrderService;
+import com.fs.his.service.IFsStoreProductService;
+import com.fs.his.utils.ConfigUtil;
+import com.fs.hisStore.config.FsErpConfig;
+import com.fs.hisStore.domain.FsStoreOrderScrm;
+import com.fs.hisStore.domain.FsStoreProductScrm;
+import com.fs.hisStore.service.IFsStoreOrderItemScrmService;
+import com.fs.hisStore.service.IFsStoreOrderScrmService;
+import com.fs.hisStore.service.IFsStoreProductScrmService;
+import com.fs.hisStore.vo.FsStoreOrderItemVO;
+import com.hc.openapi.tool.util.StringUtils;
+import lombok.extern.slf4j.Slf4j;
+import org.apache.commons.collections4.CollectionUtils;
+import org.apache.http.client.utils.DateUtils;
+import org.apache.http.util.Asserts;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.context.annotation.Primary;
+import org.springframework.stereotype.Service;
+
+import javax.annotation.PostConstruct;
+import java.io.IOException;
+import java.math.BigDecimal;
+import java.math.RoundingMode;
+import java.time.Instant;
+import java.time.LocalDateTime;
+import java.time.format.DateTimeFormatter;
+import java.util.*;
+
+@Slf4j
+@Service
+@Primary
+public class WdtTwoErpOrderServiceImpl implements IErpOrderService {
+
+    @Autowired
+    ConfigUtil configUtil;
+
+    @Autowired
+    private IFsStoreOrderScrmService fsStoreOrderScrmService;
+
+    @Autowired
+    private IFsStoreOrderItemScrmService fsStoreOrderItemScrmService;
+
+    @Autowired
+    private IFsStoreProductScrmService fsStoreProductScrmService;
+
+    @Autowired
+    private FsUserMapper fsUserMapper;
+
+
+
+    // 延迟初始化这些字段
+    private WdtTwoClient client;
+    private WdtTradeAPI api;
+
+    @PostConstruct
+    private void init() {
+        // 在 Spring 容器完成依赖注入后初始化
+        this.client = (WdtTwoClient)WdtTwoClient.get(
+                configUtil.getErpConfig().getErpWdSid(),
+                configUtil.getSysConfig().getErpWdBaseUrl(),
+                configUtil.getErpConfig().getErpWdAppKey(),
+                configUtil.getErpConfig().getErpWdAppsecret()
+        );
+        this.api = ApiFactory.get(client, WdtTradeAPI.class);
+    }
+
+
+    @Override
+    public ErpOrderResponse addOrder(ErpOrder order) {
+        return null;
+    }
+
+
+    /**
+     * @Description: 物流推送
+     * @Param:
+     * @Return:
+     * @Author xgb
+     * @Date 2026/1/27 11:35
+     */
+    @Override
+    public ErpOrderResponse addOrderScrm(ErpOrder order) {
+        PushSelf2Request request = new PushSelf2Request();
+        if (StringUtils.isNotEmpty(order.getShopNo())) {
+            request.setShopNo(order.getShopNo());
+        }
+
+        PushSelf2Request.RawTrade rawTrade = new PushSelf2Request.RawTrade();
+
+        FsStoreOrderScrm fsStoreOrder = fsStoreOrderScrmService.selectFsStoreOrderByOrderCode(order.getPlatform_code());
+        BigDecimal couponPrice = fsStoreOrder.getCouponPrice();
+
+        // 订单id
+        rawTrade.setTid(order.getPlatform_code());
+        // 平台状态
+        rawTrade.setTradeStatus(TradeStatus.PAID_WAITING_FOR_SHIPMENT.getValue());
+        // 是否执行自动递交以系统配置为准 10: 待递交, 20: 已递交,30: 部分发货,40: 已发货,60: 已完成,70: 已取消
+        rawTrade.setProcessStatus(10);
+        // 0无退款 1申请退款 2部分退款 3全部退款
+        rawTrade.setRefundStatus(0);
+
+        // 1在线转帐 2现金,3银行转账,4邮局汇款 5预付款 6刷卡 7支付宝 8微信支付
+        rawTrade.setPayMethod(1);
+        // 下单时间
+        rawTrade.setTradeTime(order.getDeal_datetime());
+        // 支付时间
+        rawTrade.setPayTime(order.getDeal_datetime());
+        // 交易结束时间
+        rawTrade.setEndTime(null);
+        // 买家昵称/客户网名
+        rawTrade.setBuyerNick(order.getReceiver_name());
+        // 买家备注
+        rawTrade.setBuyerMessage(order.getBuyer_memo());
+        // 买家邮箱
+        rawTrade.setBuyerEmail("");
+        // 买家地区
+        rawTrade.setBuyerArea("");
+        // 收件人姓名
+        rawTrade.setReceiverName(order.getReceiver_name());
+        // 省市区空格分隔,示例【北京 北京市 朝阳区】,省市区推送旺店通地址库
+        rawTrade.setReceiverArea(order.getReceiver_province() + " " + order.getReceiver_city() + " " + order.getReceiver_district());
+        // 收件人详细地址,不包含省市区
+        rawTrade.setReceiverAddress(order.getReceiver_address());
+        // 收件人邮编
+        rawTrade.setReceiverZip("");
+        // 收件人手机
+        rawTrade.setReceiverMobile(order.getReceiver_mobile());
+        // 收件人电话
+        rawTrade.setReceiverTelno("");
+        // 邮费
+        rawTrade.setPostAmount(fsStoreOrder.getFreightPrice());
+        // 其他费用
+        rawTrade.setOtherAmount(BigDecimal.ZERO);
+        // 优惠金额
+        rawTrade.setDiscount(BigDecimal.ZERO);
+        // 应收金额
+        rawTrade.setReceivable(fsStoreOrder.getPayPrice());
+        // 平台费用
+        rawTrade.setPlatformCost(BigDecimal.ZERO);
+        // 发票类别 0:不需要,1:普通发票,2:增值税普通发票电子,3:增值税普通发票纸质,4:增值税专用发票
+//        rawTrade.setInvoiceType();
+        // 发票内容
+//        rawTrade.setInvoiceContent("");
+        // 物流类别
+//        rawTrade.setLogisticsType();
+        // 物流编号
+//        rawTrade.setCustData();
+
+
+        // 如果是货到付款
+        if ("2".equals(fsStoreOrder.getPayType())) {
+            // 支付状态
+            rawTrade.setPayStatus(PaymentStatus.PARTIALLY_PAID.getValue());
+            // 发货条件
+            rawTrade.setDeliveryTerm(DeliveryTerm.CASH_ON_DELIVERY.getValue());
+            // 货到付款金额 = 物流代收金额-优惠金额
+            rawTrade.setCodAmount(fsStoreOrder.getPayDelivery().subtract(couponPrice));
+
+        } else if ("3".equals(fsStoreOrder.getPayType())) {
+            // 支付状态
+            rawTrade.setPayStatus(PaymentStatus.UNPAID.getValue());
+            // 发货条件
+            rawTrade.setDeliveryTerm(DeliveryTerm.CASH_ON_DELIVERY.getValue());
+            // 货到付款金额 = 物流代收金额-优惠金额
+            rawTrade.setCodAmount(fsStoreOrder.getPayDelivery().subtract(couponPrice));
+        } else { // 如果是线上付款
+            // 支付状态
+            rawTrade.setPayStatus(PaymentStatus.FULLY_PAID.getValue());
+            // 发货条件
+            rawTrade.setDeliveryTerm(DeliveryTerm.PAYMENT_BEFORE_DELIVERY.getValue());
+        }
+        // 平台支付订单ID
+        rawTrade.setPayId(String.valueOf(fsStoreOrder.getOrderCode()));
+        // 客服备注
+        rawTrade.setRemark(order.getSeller_memo());
+        // 客服备注标记 标旗(1 红、2 黄、3 绿、4 蓝、5 紫 无则填0)
+        rawTrade.setRemarkFlag(0);
+        // 是否是自流转 true自流转,false 非自流转
+        rawTrade.setIsAutoWms(false);
+        // 仓库编号
+        rawTrade.setWarehouseNo("");
+        if (fsStoreOrder.getPayMoney() != null) {
+            // 已付
+            rawTrade.setPaid(fsStoreOrder.getPayMoney());
+        }
+
+        // 还有的字段看接口文档 ....
+        request.setRawTrades(Collections.singletonList(rawTrade));
+
+        // 商品总价
+        BigDecimal totalPrice = fsStoreOrder.getTotalPrice();
+        // 总折扣金额 = 优惠券金额 + 折扣金额
+        BigDecimal totalDiscountPrice = BigDecimal.ZERO;
+        // 折扣金额
+        BigDecimal discountPrice = totalPrice.subtract(fsStoreOrder.getPayPrice());
+        totalDiscountPrice = couponPrice.add(discountPrice);
+
+        // 防止除零错误
+        if (totalPrice.compareTo(BigDecimal.ZERO) == 0) {
+            totalPrice = BigDecimal.ONE;
+        }
+
+        List<FsStoreOrderItemVO> fsStoreOrderItemVOS = fsStoreOrderItemScrmService.selectFsStoreOrderItemListByOrderId(fsStoreOrder.getId());
+        List<PushSelf2Request.RawTradeOrder> rawTradeOrders = new ArrayList<>();
+        BigDecimal nummber = BigDecimal.ZERO;
+        for (FsStoreOrderItemVO fsStoreOrderItem : fsStoreOrderItemVOS) {
+            PushSelf2Request.RawTradeOrder rawTradeOrder = new PushSelf2Request.RawTradeOrder();
+            // 原始订单号
+            rawTradeOrder.setTid(order.getPlatform_code());
+
+            // 原始子单号
+            rawTradeOrder.setOid(String.format("%s%s", fsStoreOrderItem.getOrderCode(), fsStoreOrderItem.getItemId()));
+            // 状态
+            rawTradeOrder.setStatus(TradeStatus.PAID_WAITING_FOR_SHIPMENT.getValue());
+            // 退款状态
+            rawTradeOrder.setRefundStatus(RefundStatus.NO_REFUND.getValue());
+
+            FsStoreProductScrm fsStoreProduct = fsStoreProductScrmService.selectFsStoreProductById(fsStoreOrderItem.getProductId());
+            if (fsStoreProduct == null) {
+                log.error("该商品不存在! 商品id[{}] ", fsStoreOrderItem.getProductId());
+                throw new RuntimeException("该商品不存在!");
+            }
+
+            // 平台货品ID
+            rawTradeOrder.setGoodsId(String.valueOf(fsStoreProduct.getProductId()));
+            JSONObject jsonObject = JSON.parseObject(fsStoreOrderItem.getJsonInfo());
+            rawTradeOrder.setSpecId(jsonObject.getString("sku"));
+            rawTradeOrder.setGoodsNo(jsonObject.getString("barCode"));
+            rawTradeOrder.setSpecNo(jsonObject.getString("sku"));
+            // 货品名称
+            rawTradeOrder.setGoodsName(fsStoreProduct.getProductName());
+            // 子单类型 0正常货品 1虚拟货品 2服务
+            rawTradeOrder.setOrderType(0);
+            // 平台类目
+//            rawTradeOrder.setCid();
+            // 数量
+            rawTradeOrder.setNum(BigDecimal.valueOf(fsStoreOrderItem.getNum()));
+            nummber = nummber.add(rawTradeOrder.getNum());
+            // 单价
+            //由于商品改价 用item里面的单价
+            rawTradeOrder.setPrice(jsonObject.getBigDecimal("price"));
+            // 调整
+            rawTradeOrder.setAdjustAmount(BigDecimal.ZERO);
+            // 优惠
+            rawTradeOrder.setDiscount(BigDecimal.ZERO);
+
+            // 分摊优惠
+            // 分摊比例
+            BigDecimal price = fsStoreProduct.getPrice().multiply(BigDecimal.valueOf(fsStoreOrderItem.getNum()));
+            BigDecimal divide = price.divide(totalPrice, RoundingMode.HALF_UP);
+            rawTradeOrder.setShareDiscount(divide.multiply(totalDiscountPrice));
+
+            // 总价格
+            rawTradeOrder.setTotalAmount(rawTradeOrder.getPrice().multiply(rawTradeOrder.getNum()));
+            // 退款金额
+            rawTradeOrder.setRefundAmount(BigDecimal.ZERO);
+            // 备注
+            rawTradeOrder.setRemark("");
+            // json串
+            rawTradeOrder.setJson("");
+            // 赠品方式 赠品方式 0非赠品1自动赠送2手工赠送4周期购赠送8平台赠送32阶梯满赠64CRM追加赠送65 主品
+            rawTradeOrder.setGiftType(0);
+
+            rawTradeOrders.add(rawTradeOrder);
+        }
+
+        // 最后一个商品的分摊优惠等于总优惠减去前面分摊优惠之和
+        Asserts.check(CollectionUtils.isNotEmpty(rawTradeOrders), "订单 {} 商品不能为空!", order.getPlatform_code());
+        long size = rawTradeOrders.size();
+        if (size > 1) {
+            PushSelf2Request.RawTradeOrder rawTradeOrder = rawTradeOrders.get(rawTradeOrders.size() - 1);
+            rawTradeOrder.setShareDiscount(totalDiscountPrice.subtract(rawTradeOrders.stream()
+                    .limit(size - 1L)
+                    .map(item -> Optional.ofNullable(item.getShareDiscount()).orElse(BigDecimal.ZERO))
+                    .reduce(BigDecimal.ZERO, BigDecimal::add)));
+        }
+
+
+        request.setRawTradeOrders(rawTradeOrders);
+
+        // 原始单包含的子订单数,rawTradeOrderList节点下所有子单数之和
+        rawTrade.setOrderCount(fsStoreOrderItemVOS.size());
+        // 货品总数量,rawTradeOrderList节点下所有“num”数量之和
+        rawTrade.setGoodsCount(nummber);
+
+        // 优惠券 目前不添加
+        PushSelf2Response response = api.pushSelf2(request.getShopNo(), request.getRawTrades(), request.getRawTradeOrders(), request.getDiscountInfos());
+        if (response.getChgCount() <= 0 && response.getNewCount()<=0) {
+            log.info("订单推送失败: [{}]", response.getErrorList().get(0).getError());
+            throw new RuntimeException(String.format("订单推送失败, 原因: %s", response.getErrorList().get(0).getError()));
+        } else {
+            log.info("订单推送成功!");
+            ErpOrderResponse erpOrderResponse = new ErpOrderResponse();
+            erpOrderResponse.setCode(order.getPlatform_code());
+            erpOrderResponse.setSuccess(true);
+            erpOrderResponse.setRequestRawData(JSON.toJSONString(request));
+            erpOrderResponse.setResponseRawData(JSON.toJSONString(response));
+            return erpOrderResponse;
+        }
+    }
+
+
+
+
+    @Override
+    public ErpOrderResponse refundOrder(ErpRefundOrder order) {
+        return null;
+    }
+
+    @Override
+    public ErpOrderResponse refundOrderScrm(ErpRefundOrder order) {
+        return null;
+    }
+
+    @Override
+    public ErpDeliverysResponse getDeliver(ErpDeliverysRequest param) {
+        return null;
+    }
+
+
+    @Override
+    public ErpOrderQueryResponse getScrmOrder(ErpOrderQueryRequert param) {
+        return null;
+    }
+
+    @Override
+    public ErpOrderQueryResponse getOrder(ErpOrderQueryRequert param){
+        QuerySelfOrderDetailRequest request = new QuerySelfOrderDetailRequest();
+        request.setSrcTid(param.getCode());
+        QuerySelfOrderDetailResponse response = api.querySelfOrderWithDetail(request, new Pager(1, 0, true));
+        if (response.getTotalCount() <= 0) {
+            log.info("订单信息不存在 订单号{}", param.getCode());
+            throw new RuntimeException("订单信息不存在");
+        }
+        return toErpOrderQueryResponse(response);
+    }
+
+    /**
+     * @Description: 订单查询
+     * @Param:
+     * @Return:
+     * @Author xgb
+     * @Date 2026/1/27 16:53
+     */
+    public ErpOrderQueryResponse getOrderScrm(ErpOrderQueryRequert param) {
+
+        QuerySelfOrderDetailRequest request = new QuerySelfOrderDetailRequest();
+        request.setSrcTid(param.getCode());
+        QuerySelfOrderDetailResponse response = api.querySelfOrderWithDetail(request, new Pager(1, 0, true));
+        if (response.getTotalCount() <= 0) {
+            log.info("订单信息不存在 订单号{}", param.getCode());
+            throw new RuntimeException("订单信息不存在");
+        }
+        return toErpOrderQueryResponse(response);
+
+    }
+
+    /**
+     * @Description: 只用于单个订单查询的返回结果转换
+     * @Param:
+     * @Return:
+     * @Author xgb
+     * @Date 2026/1/28 9:20
+     */
+    private ErpOrderQueryResponse toErpOrderQueryResponse(QuerySelfOrderDetailResponse source) {
+        ErpOrderQueryResponse response = new ErpOrderQueryResponse();
+        QuerySelfOrderDetailResponse.OrderInfo order = source.getOrder().get(0);
+
+        // 订单信息
+        ErpOrderQuery erpOrderQuery = new ErpOrderQuery();
+        // 快递编号
+        if (order.getLogisticsCode() != null) {
+            erpOrderQuery.setExpress_code(order.getLogisticsCode());
+        }
+        // 快递名称
+        if (order.getLogisticsName() != null) {
+            erpOrderQuery.setExpress_name(order.getLogisticsName());
+        }
+
+        // 收货人
+        if (order.getReceiverName() != null) {
+            erpOrderQuery.setReceiver_name(order.getReceiverName());
+        }
+
+        // 电话
+        if (order.getReceiverMobile() != null) {
+            erpOrderQuery.setReceiver_mobile(order.getReceiverMobile());
+        }
+
+        //地址
+        if (order.getReceiverAddress() != null) {
+            erpOrderQuery.setReceiver_address(order.getReceiverAddress());
+        }
+
+        // 运单号
+        if (order.getLogisticsNo() != null) {
+            erpOrderQuery.setExpress_code(order.getLogisticsNo());
+        }
+
+        // 订单状态
+        if (order.getTradeStatus() != null) {
+            erpOrderQuery.setDelivery_state(order.getTradeStatus());
+        }
+
+        // 订单号
+        if (order.getSrcTids() != null) {
+            erpOrderQuery.setCode(order.getSrcTids());
+        }
+        // 商品数量
+        if (order.getGoodsCount() != null) {
+            erpOrderQuery.setQty(order.getGoodsCount().intValue());
+        }
+        // 商品金额
+        if (order.getReceivable() != null) {
+            erpOrderQuery.setAmount(order.getReceivable().doubleValue());
+        }
+        // 支付金额
+        if (order.getPaid() != null) {
+            erpOrderQuery.setPayment(order.getPaid().doubleValue());
+        }
+
+        if(order.getConsignTime() != null){
+            // todo
+        }
+
+        // 物流信息
+        ErpDeliverys erpDeliverys = new ErpDeliverys();
+        erpDeliverys.setExpress_code(order.getLogisticsCode());
+        erpDeliverys.setExpress_name(order.getLogisticsName());
+        erpDeliverys.setMail_no(order.getLogisticsNo());
+        erpDeliverys.setDelivery(true);
+        erpOrderQuery.setDeliverys(Collections.singletonList(erpDeliverys));
+
+        response.setOrders(Collections.singletonList(erpOrderQuery));
+        return response;
+    }
+
+    //   // sales_refund_push.php
+    //	@Api(value = "aftersales.refund.RawRefund.upload2", paged = true)
+    //	StockSearch2Response rawRefundUpload(StockSearch2Request request, Pager pager);
+
+    /**
+     * @Description: 退款
+     * @Param:
+     * @Return:
+     * @Author xgb
+     * @Date 2026/1/28 9:23
+     */
+    @Override
+    public BaseResponse refundUpdateScrm(ErpRefundUpdateRequest param) {
+
+
+        FsErpConfig erpconfig = configUtil.getErpConfig();
+        log.info("退款单更新: {}", param);
+        FsStoreOrderScrm fsStoreOrder = fsStoreOrderScrmService.selectFsStoreOrderByOrderCode(param.getTid());
+
+        ErpOrderQueryRequert queryRequert = new ErpOrderQueryRequert();
+        queryRequert.setCode(fsStoreOrder.getExtendOrderId());
+
+        // 95已发货
+        //
+        //96 成本确认(待录入计划成本,订单结算时有货品无计划成本)
+        //
+        //101 已过账
+        //
+        //110已完成
+        Set<Integer> status = new HashSet<>();
+        status.add(95);
+        status.add(96);
+        status.add(101);
+        status.add(105);
+        status.add(110);
+
+        ErpOrderQueryResponse orderScrm = getOrderScrm(queryRequert);
+        ErpOrderQuery erpOrderQuery = orderScrm.getOrders().get(0);
+        Integer deliveryState = erpOrderQuery.getDelivery_state();
+        // 如果是未发货
+        if (!status.contains(deliveryState)) {
+            log.info("售前退款 参数: {}", param);
+            try {
+                ErpOrder order = fsStoreOrderScrmService.getErpOrder(fsStoreOrder);
+
+                Asserts.check(ObjectUtils.isNotNull(order), "该订单不存在!");
+
+                return getErpOrderRefundScrmResponse(order);
+            } catch (Exception e) {
+                throw new RuntimeException(e);
+            }
+        }
+
+        //--------------售后退款------------
+        log.info("售后退款 参数: {}", param);
+        Map<String, String> map = new HashMap<>();
+
+
+        Asserts.check(ObjectUtils.isNotNull(fsStoreOrder), "该订单不存在! 订单id: {} ", param.getTid());
+
+        List<FsStoreOrderItemVO> fsStoreOrderItemVOS = fsStoreOrderItemScrmService.selectFsStoreOrderItemListByOrderId(fsStoreOrder.getId());
+
+        // 查询用户名称
+        FsUser fsUser = fsUserMapper.selectFsUserById(fsStoreOrder.getUserId());
+
+        RawRefundUpload2Request request = new RawRefundUpload2Request();
+        request.setShopNo(erpconfig.getErpWdShopCode());
+        List<RawRefundUpload2Request.RefundOrder> orders = new ArrayList<>();
+        for (FsStoreOrderItemVO item : fsStoreOrderItemVOS) {
+
+
+            RawRefundUpload2Request.RefundOrder order = new RawRefundUpload2Request.RefundOrder();
+            // 原始退款单号
+            order.setRefundNo(String.format("%s%s", item.getOrderCode(), item.getItemId()));
+            // 货品数量
+            order.setNum(BigDecimal.valueOf(item.getNum()));
+            // 原始单号
+            order.setTid(param.getTid());
+            // 原始子单号
+            order.setOid(String.format("%s%s", item.getOrderCode(), item.getItemId()));
+            // 退款单类型 0取消订单1退款(未发货,退款申请)2退货3换货4退款不退货
+            order.setType(2);
+            // 1取消退款,2已申请退款,3等待退货,4等待收货,5退款成功
+            order.setStatus(5);
+            // 退款版本
+            order.setRefundVersion("1");
+            JSONObject jsonObject = JSON.parseObject(item.getJsonInfo());
+            BigDecimal onePrice = jsonObject.getBigDecimal("price");
+            // 申请退款金额
+            order.setRefundAmount(onePrice.multiply(order.getNum()));
+            // 实际退款金额
+            order.setActualRefundAmount(order.getRefundAmount());
+            // 标题,对应原始退款单页面主单货品字段,若无传空字符串
+            order.setTitle("");
+            // 客户网名
+            order.setBuyerNick(fsUser != null ? fsUser.getNickName() : "");
+            // 是否售后退款单 0:否 1:是
+            order.setIsAftersale(1);
+            //
+            order.setReason("自研平台退款");
+            // 单价
+            order.setPrice(onePrice);
+            // 退款创建时间
+            order.setRefundTime(DateUtils.formatDate(new Date(), "yyyy-MM-dd HH:mm:ss"));
+            // 退款完成时间
+            order.setCurrentPhaseTimeout(order.getRefundTime());
+            // 物流
+            order.setLogisticsNo("");
+            order.setLogisticsName("");
+
+            orders.add(order);
+        }
+
+        request.setOrderList(orders);
+
+
+        RawRefundUpload2Response response = api.rawRefundUpload(request.getShopNo(),request.getOrderList());
+        if (response.getChgCount() <= 0 && response.getNewCount()<=0) {
+            log.info("退款单更新失败: {}", response);
+            throw new RuntimeException(String.format("退款单更新失败, 原因: %s", response.getErrorList().get(0).getError()));
+
+        } else {
+            log.info("退款单更新成功");
+            return new BaseResponse();
+        }
+    }
+
+
+    @Override
+    public BaseResponse refundUpdate(ErpRefundUpdateRequest param){
+        return null;
+    }
+
+    @Override
+    public ErpOrderResponse finishOrder(ErpOrder order){
+        return null;
+    }
+
+    @Override
+    public void getOrderDeliveryStatus(FsStoreOrder order) {
+
+    }
+
+    @Override
+    public void getOrderScrmDeliveryStatus(FsStoreOrderScrm order) {
+
+    }
+
+    /**
+     * scrm 如果未发货 修改订单为退款
+     *
+     * @param order 订单参数
+     * @return
+     */
+    private BaseResponse getErpOrderRefundScrmResponse(ErpOrder order) {
+
+        PushSelf2Request request = new PushSelf2Request();
+        if (StringUtils.isNotEmpty(order.getShopNo())) {
+            request.setShopNo(order.getShopNo());
+        }
+
+        PushSelf2Request.RawTrade rawTrade = new PushSelf2Request.RawTrade();
+
+        FsStoreOrderScrm fsStoreOrder = fsStoreOrderScrmService.selectFsStoreOrderByOrderCode(order.getPlatform_code());
+        BigDecimal couponPrice = fsStoreOrder.getCouponPrice();
+
+        // 订单id
+        rawTrade.setTid(order.getPlatform_code());
+        // 平台状态
+        rawTrade.setTradeStatus(TradeStatus.REFUNDED.getValue());
+        // 是否执行自动递交以系统配置为准 10: 待递交, 20: 已递交,30: 部分发货,40: 已发货,60: 已完成,70: 已取消
+        rawTrade.setProcessStatus(70);
+        // 0无退款 1申请退款 2部分退款 3全部退款
+        rawTrade.setRefundStatus(3);
+
+        // 1在线转帐 2现金,3银行转账,4邮局汇款 5预付款 6刷卡 7支付宝 8微信支付
+        rawTrade.setPayMethod(1);
+        // 下单时间
+        rawTrade.setTradeTime(order.getDeal_datetime());
+        // 支付时间
+        rawTrade.setPayTime(order.getDeal_datetime());
+        // 交易结束时间
+        rawTrade.setEndTime(null);
+        // 买家昵称/客户网名
+        rawTrade.setBuyerNick(order.getReceiver_name());
+        // 买家备注
+        rawTrade.setBuyerMessage(order.getBuyer_memo());
+        // 买家邮箱
+        rawTrade.setBuyerEmail("");
+        // 买家地区
+        rawTrade.setBuyerArea("");
+        // 收件人姓名
+        rawTrade.setReceiverName(order.getReceiver_name());
+        // 省市区空格分隔,示例【北京 北京市 朝阳区】,省市区推送旺店通地址库
+        rawTrade.setReceiverArea(order.getReceiver_province() + " " + order.getReceiver_city() + " " + order.getReceiver_district());
+        // 收件人详细地址,不包含省市区
+        rawTrade.setReceiverAddress(order.getReceiver_address());
+        // 收件人邮编
+        rawTrade.setReceiverZip("");
+        // 收件人手机
+        rawTrade.setReceiverMobile(order.getReceiver_mobile());
+        // 收件人电话
+        rawTrade.setReceiverTelno("");
+        // 邮费
+        rawTrade.setPostAmount(fsStoreOrder.getFreightPrice());
+        // 其他费用
+        rawTrade.setOtherAmount(BigDecimal.ZERO);
+        // 优惠金额
+        rawTrade.setDiscount(BigDecimal.ZERO);
+        // 应收金额
+        rawTrade.setReceivable(fsStoreOrder.getPayPrice());
+        // 平台费用
+        rawTrade.setPlatformCost(BigDecimal.ZERO);
+        // 发票类别 0:不需要,1:普通发票,2:增值税普通发票电子,3:增值税普通发票纸质,4:增值税专用发票
+//        rawTrade.setInvoiceType();
+        // 发票内容
+//        rawTrade.setInvoiceContent("");
+        // 物流类别
+//        rawTrade.setLogisticsType();
+        // 物流编号
+//        rawTrade.setCustData();
+
+
+        // 如果是货到付款
+        if ("2".equals(fsStoreOrder.getPayType())) {
+            // 支付状态
+            rawTrade.setPayStatus(PaymentStatus.PARTIALLY_PAID.getValue());
+            // 发货条件
+            rawTrade.setDeliveryTerm(DeliveryTerm.CASH_ON_DELIVERY.getValue());
+            // 货到付款金额 = 物流代收金额-优惠金额
+            rawTrade.setCodAmount(fsStoreOrder.getPayDelivery().subtract(couponPrice));
+
+        } else if ("3".equals(fsStoreOrder.getPayType())) {
+            // 支付状态
+            rawTrade.setPayStatus(PaymentStatus.UNPAID.getValue());
+            // 发货条件
+            rawTrade.setDeliveryTerm(DeliveryTerm.CASH_ON_DELIVERY.getValue());
+            // 货到付款金额 = 物流代收金额-优惠金额
+            rawTrade.setCodAmount(fsStoreOrder.getPayDelivery().subtract(couponPrice));
+        } else { // 如果是线上付款
+            // 支付状态
+            rawTrade.setPayStatus(PaymentStatus.FULLY_PAID.getValue());
+            // 发货条件
+            rawTrade.setDeliveryTerm(DeliveryTerm.PAYMENT_BEFORE_DELIVERY.getValue());
+        }
+        // 平台支付订单ID
+        rawTrade.setPayId(String.valueOf(fsStoreOrder.getOrderCode()));
+        // 客服备注
+        rawTrade.setRemark(order.getSeller_memo());
+        // 客服备注标记 标旗(1 红、2 黄、3 绿、4 蓝、5 紫 无则填0)
+        rawTrade.setRemarkFlag(0);
+        // 是否是自流转 true自流转,false 非自流转
+        rawTrade.setIsAutoWms(false);
+        // 仓库编号
+        rawTrade.setWarehouseNo("");
+        if (fsStoreOrder.getPayMoney() != null) {
+            // 已付
+            rawTrade.setPaid(fsStoreOrder.getPayMoney());
+        }
+
+        // 还有的字段看接口文档 ....
+        request.setRawTrades(Collections.singletonList(rawTrade));
+
+        // 商品总价
+        BigDecimal totalPrice = fsStoreOrder.getTotalPrice();
+        // 总折扣金额 = 优惠券金额 + 折扣金额
+        BigDecimal totalDiscountPrice = BigDecimal.ZERO;
+        // 折扣金额
+        BigDecimal discountPrice = totalPrice.subtract(fsStoreOrder.getPayPrice());
+        totalDiscountPrice = couponPrice.add(discountPrice);
+
+        // 防止除零错误
+        if (totalPrice.compareTo(BigDecimal.ZERO) == 0) {
+            totalPrice = BigDecimal.ONE;
+        }
+
+        List<FsStoreOrderItemVO> fsStoreOrderItemVOS = fsStoreOrderItemScrmService.selectFsStoreOrderItemListByOrderId(fsStoreOrder.getId());
+        List<PushSelf2Request.RawTradeOrder> rawTradeOrders = new ArrayList<>();
+        BigDecimal nummber = BigDecimal.ZERO;
+        for (FsStoreOrderItemVO fsStoreOrderItem : fsStoreOrderItemVOS) {
+            PushSelf2Request.RawTradeOrder rawTradeOrder = new PushSelf2Request.RawTradeOrder();
+            // 原始订单号
+            rawTradeOrder.setTid(order.getPlatform_code());
+
+            // 原始子单号
+            rawTradeOrder.setOid(String.format("%s%s", fsStoreOrderItem.getOrderCode(), fsStoreOrderItem.getItemId()));
+            // 状态
+            rawTradeOrder.setStatus(TradeStatus.PAID_WAITING_FOR_SHIPMENT.getValue());
+            // 退款状态
+            rawTradeOrder.setRefundStatus(RefundStatus.NO_REFUND.getValue());
+
+            FsStoreProductScrm fsStoreProduct = fsStoreProductScrmService.selectFsStoreProductById(fsStoreOrderItem.getProductId());
+            if (fsStoreProduct == null) {
+                log.error("该商品不存在! 商品id[{}] ", fsStoreOrderItem.getProductId());
+                throw new RuntimeException("该商品不存在!");
+            }
+
+            // 平台货品ID
+            rawTradeOrder.setGoodsId(String.valueOf(fsStoreProduct.getProductId()));
+            JSONObject jsonObject = JSON.parseObject(fsStoreOrderItem.getJsonInfo());
+            rawTradeOrder.setSpecId(jsonObject.getString("sku"));
+            rawTradeOrder.setGoodsNo(jsonObject.getString("barCode"));
+            rawTradeOrder.setSpecNo(jsonObject.getString("sku"));
+            // 货品名称
+            rawTradeOrder.setGoodsName(fsStoreProduct.getProductName());
+            // 子单类型 0正常货品 1虚拟货品 2服务
+            rawTradeOrder.setOrderType(0);
+            // 平台类目
+//            rawTradeOrder.setCid();
+            // 数量
+            rawTradeOrder.setNum(BigDecimal.valueOf(fsStoreOrderItem.getNum()));
+            nummber = nummber.add(rawTradeOrder.getNum());
+            // 单价
+            //由于商品改价 用item里面的单价
+            rawTradeOrder.setPrice(jsonObject.getBigDecimal("price"));
+            // 调整
+            rawTradeOrder.setAdjustAmount(BigDecimal.ZERO);
+            // 优惠
+            rawTradeOrder.setDiscount(BigDecimal.ZERO);
+
+            // 分摊优惠
+            // 分摊比例
+            BigDecimal price = fsStoreProduct.getPrice().multiply(BigDecimal.valueOf(fsStoreOrderItem.getNum()));
+            BigDecimal divide = price.divide(totalPrice, RoundingMode.HALF_UP);
+            rawTradeOrder.setShareDiscount(divide.multiply(totalDiscountPrice));
+
+            // 总价格
+            rawTradeOrder.setTotalAmount(rawTradeOrder.getPrice().multiply(rawTradeOrder.getNum()));
+            // 退款金额
+            rawTradeOrder.setRefundAmount(BigDecimal.ZERO);
+            // 备注
+            rawTradeOrder.setRemark("");
+            // json串
+            rawTradeOrder.setJson("");
+            // 赠品方式 赠品方式 0非赠品1自动赠送2手工赠送4周期购赠送8平台赠送32阶梯满赠64CRM追加赠送65 主品
+            rawTradeOrder.setGiftType(0);
+
+            rawTradeOrders.add(rawTradeOrder);
+        }
+
+        // 最后一个商品的分摊优惠等于总优惠减去前面分摊优惠之和
+        Asserts.check(CollectionUtils.isNotEmpty(rawTradeOrders), "订单 {} 商品不能为空!", order.getPlatform_code());
+        long size = rawTradeOrders.size();
+        if (size > 1) {
+            PushSelf2Request.RawTradeOrder rawTradeOrder = rawTradeOrders.get(rawTradeOrders.size() - 1);
+            rawTradeOrder.setShareDiscount(totalDiscountPrice.subtract(rawTradeOrders.stream()
+                    .limit(size - 1L)
+                    .map(item -> Optional.ofNullable(item.getShareDiscount()).orElse(BigDecimal.ZERO))
+                    .reduce(BigDecimal.ZERO, BigDecimal::add)));
+        }
+
+
+        request.setRawTradeOrders(rawTradeOrders);
+
+        // 原始单包含的子订单数,rawTradeOrderList节点下所有子单数之和
+        rawTrade.setOrderCount(fsStoreOrderItemVOS.size());
+        // 货品总数量,rawTradeOrderList节点下所有“num”数量之和
+        rawTrade.setGoodsCount(nummber);
+
+        // 优惠券 目前不添加
+        PushSelf2Response response = api.pushSelf2(request.getShopNo(), request.getRawTrades(), request.getRawTradeOrders(), request.getDiscountInfos());
+        if (response.getChgCount() <= 0 && response.getNewCount()<=0) {
+            log.info("未发货退款单更新失败: {}", response);
+            throw new RuntimeException(String.format("退款单更新失败, 原因: %s", response.getErrorList().get(0).getError()));
+        } else {
+            log.info("未发货退款单更新成功");
+            ErpOrderResponse erpOrderResponse = new ErpOrderResponse();
+            erpOrderResponse.setCode(order.getPlatform_code());
+            erpOrderResponse.setSuccess(true);
+            erpOrderResponse.setRequestRawData(JSON.toJSONString(request));
+            erpOrderResponse.setResponseRawData(JSON.toJSONString(response));
+            return erpOrderResponse;
+        }
+    }
+
+    @Override
+    public Map<String,Object>  stockOutOrderQueryTrade(ErpOrderQueryRequert param){
+        return null;
+    }
+
+}

+ 7 - 0
fs-service/src/main/java/com/fs/his/service/impl/FsStoreAfterSalesServiceImpl.java

@@ -106,6 +106,7 @@ public class FsStoreAfterSalesServiceImpl implements IFsStoreAfterSalesService {
     @Autowired
     @Autowired
     private TzBankService tzBankService;
     private TzBankService tzBankService;
     @Autowired
     @Autowired
+    @Qualifier("erpOrderServiceImpl")
     private IErpOrderService erpOrderService;
     private IErpOrderService erpOrderService;
     @Autowired
     @Autowired
     @Qualifier("hzOMSErpOrderServiceImpl")
     @Qualifier("hzOMSErpOrderServiceImpl")
@@ -126,6 +127,10 @@ public class FsStoreAfterSalesServiceImpl implements IFsStoreAfterSalesService {
     @Qualifier("k9OrderScrmServiceImpl")
     @Qualifier("k9OrderScrmServiceImpl")
     private IErpOrderService k9OrderService;
     private IErpOrderService k9OrderService;
 
 
+    @Autowired
+    @Qualifier("wdtTwoErpOrderServiceImpl")
+    private IErpOrderService wdtTwoOrderService;
+
     @Autowired
     @Autowired
     private FsStorePaymentMapper fsStorePaymentMapper;
     private FsStorePaymentMapper fsStorePaymentMapper;
     @Autowired
     @Autowired
@@ -617,6 +622,8 @@ public class FsStoreAfterSalesServiceImpl implements IFsStoreAfterSalesService {
                         jSTOrderService.refundUpdate(request);
                         jSTOrderService.refundUpdate(request);
                     } else if (erpType == 6) {
                     } else if (erpType == 6) {
                         k9OrderService.refundUpdate(request);
                         k9OrderService.refundUpdate(request);
+                    }else if (erpType == 7) {
+                        wdtTwoOrderService.refundUpdate(request);
                     }
                     }
                 }
                 }
             }
             }

+ 6 - 0
fs-service/src/main/java/com/fs/hisStore/service/impl/FsStoreCartScrmServiceImpl.java

@@ -58,6 +58,10 @@ public class FsStoreCartScrmServiceImpl implements IFsStoreCartScrmService
     @Qualifier("wdtErpGoodsServiceImpl")
     @Qualifier("wdtErpGoodsServiceImpl")
     private IErpGoodsService wdtErpGoodsService;
     private IErpGoodsService wdtErpGoodsService;
 
 
+    @Autowired
+    @Qualifier("wdtTwoErpGoodsServiceImpl")
+    private IErpGoodsService wdtTwoErpGoodsService;
+
     @Autowired
     @Autowired
     @Qualifier("k9StockScrmServiceImpl")
     @Qualifier("k9StockScrmServiceImpl")
     private IErpGoodsService k9StockService;
     private IErpGoodsService k9StockService;
@@ -340,6 +344,8 @@ public class FsStoreCartScrmServiceImpl implements IFsStoreCartScrmService
                 } else if (erpType == 3) {
                 } else if (erpType == 3) {
                     //旺店通
                     //旺店通
                     goodsService = k9StockService;
                     goodsService = k9StockService;
+                }else if(erpType == 7){ // 旺店通旗舰版
+                    goodsService = wdtTwoErpGoodsService;
                 }
                 }
             }
             }
         }
         }

+ 37 - 28
fs-service/src/main/java/com/fs/hisStore/service/impl/FsStoreOrderScrmServiceImpl.java

@@ -245,6 +245,10 @@ public class FsStoreOrderScrmServiceImpl implements IFsStoreOrderScrmService {
     @Qualifier("wdtErpOrderServiceImpl")
     @Qualifier("wdtErpOrderServiceImpl")
     private IErpOrderService wdtOrderService;
     private IErpOrderService wdtOrderService;
 
 
+    @Autowired
+    @Qualifier("wdtTwoErpOrderServiceImpl")
+    private IErpOrderService wdtTwoOrderService;
+
     @Autowired
     @Autowired
     @Qualifier("k9OrderScrmServiceImpl")
     @Qualifier("k9OrderScrmServiceImpl")
     private IErpOrderService k9OrderService;
     private IErpOrderService k9OrderService;
@@ -1145,17 +1149,17 @@ public class FsStoreOrderScrmServiceImpl implements IFsStoreOrderScrmService {
         FsStoreOrderScrm order = fsStoreOrderMapper.selectFsStoreOrderByOrderCode(orderCode);
         FsStoreOrderScrm order = fsStoreOrderMapper.selectFsStoreOrderByOrderCode(orderCode);
         if (order != null && order.getStatus() == OrderInfoEnum.STATUS_1.getValue()) {
         if (order != null && order.getStatus() == OrderInfoEnum.STATUS_1.getValue()) {
             // 查询订单出库时间
             // 查询订单出库时间
-            ErpOrderQueryRequert param=new ErpOrderQueryRequert();
-            param.setCode(extendOrderId);
-            Map<String, Object> result=wdtOrderService.stockOutOrderQueryTrade(param);
-            List<Map<String, Object>> stockoutList=(List<Map<String, Object>>) result.get("stockout_list");
-            String consignTime=null;
-            if(stockoutList!=null&& !stockoutList.isEmpty()){
-                if(stockoutList.get(0).get("consign_time")!=null){
-                    consignTime = stockoutList.get(0).get("consign_time").toString();
-                    log.info("发货时间:{}",consignTime);
-                }
-            }
+//            ErpOrderQueryRequert param=new ErpOrderQueryRequert();
+//            param.setCode(extendOrderId);
+//            Map<String, Object> result=wdtOrderService.stockOutOrderQueryTrade(param);
+//            List<Map<String, Object>> stockoutList=(List<Map<String, Object>>) result.get("stockout_list");
+//            String consignTime=null;
+//            if(stockoutList!=null&& !stockoutList.isEmpty()){
+//                if(stockoutList.get(0).get("consign_time")!=null){
+//                    consignTime = stockoutList.get(0).get("consign_time").toString();
+//                    log.info("发货时间:{}",consignTime);
+//                }
+//            }
 
 
             FsExpressScrm express = expressService.selectFsExpressByOmsCode(deliverCode);
             FsExpressScrm express = expressService.selectFsExpressByOmsCode(deliverCode);
             if (express != null) {
             if (express != null) {
@@ -1164,17 +1168,19 @@ public class FsStoreOrderScrmServiceImpl implements IFsStoreOrderScrmService {
             }
             }
             order.setStatus(OrderInfoEnum.STATUS_2.getValue());
             order.setStatus(OrderInfoEnum.STATUS_2.getValue());
             order.setDeliveryId(deliveryId);
             order.setDeliveryId(deliveryId);
-//            if(StringUtils.isEmpty(consignTime)){
+//            if(StringUtils.isEmptconsignTime)){
 //                // 后期优化
 //                // 后期优化
 //                logger.info("发货时间为空更新为当前时间,订单:{}",orderCode);
 //                logger.info("发货时间为空更新为当前时间,订单:{}",orderCode);
 //                order.setDeliverySendTime(new Date());
 //                order.setDeliverySendTime(new Date());
 //            }else {
 //            }else {
 //                order.setDeliverySendTime(DateUtils.parseDate(consignTime));
 //                order.setDeliverySendTime(DateUtils.parseDate(consignTime));
 //            }
 //            }
+            // todo 后面优化
+            order.setDeliverySendTime(new Date());
             // 定时每2小时同步物流信息
             // 定时每2小时同步物流信息
-            if(StringUtils.isNotBlank(consignTime) && !consignTime.startsWith("0000")){
-                order.setDeliverySendTime(DateUtils.parseDate(consignTime));
-            }
+//            if(StringUtils.isNotBlank(consignTime) && !consignTime.startsWith("0000")){
+//                order.setDeliverySendTime(DateUtils.parseDate(consignTime));
+//            }
 
 
 
 
             fsStoreOrderMapper.updateFsStoreOrder(order);
             fsStoreOrderMapper.updateFsStoreOrder(order);
@@ -1804,17 +1810,6 @@ public class FsStoreOrderScrmServiceImpl implements IFsStoreOrderScrmService {
             erpOrder.setShop_code(erpConfig.getErpJstShopCode());
             erpOrder.setShop_code(erpConfig.getErpJstShopCode());
         }
         }
 
 
-
-            //查询出这个订单是哪个公司得,并且拿到绑定店铺id
-        Company company =companyMapper.selectCompanyById(order.getCompanyId());
-
-        //判定公司是否绑定店铺,绑定则赋值,不绑定则跳过
-        if (ObjectUtil.isNotEmpty(company)&&ObjectUtil.isNotEmpty(company.getStoreId())){
-            FsStoreScrm fsStoreScrm = fsStoreMapper.selectFsStoreByStoreId(company.getStoreId());
-            if (ObjectUtil.isNotEmpty(fsStoreScrm)){
-                erpOrder.setShopNo(fsStoreScrm.getStoreNo());
-            }
-        }
         log.info("进入到erp传入参数erpOrder={}",erpOrder);
         log.info("进入到erp传入参数erpOrder={}",erpOrder);
         ErpOrderResponse response = erpOrderService.addOrderScrm(erpOrder);
         ErpOrderResponse response = erpOrderService.addOrderScrm(erpOrder);
 //        ErpOrderResponse response= k9OrderService.addOmsOrder(order.getId());
 //        ErpOrderResponse response= k9OrderService.addOmsOrder(order.getId());
@@ -1841,6 +1836,18 @@ public class FsStoreOrderScrmServiceImpl implements IFsStoreOrderScrmService {
         erpOrder.setPlatform_code(order.getOrderCode());
         erpOrder.setPlatform_code(order.getOrderCode());
         erpOrder.setWarehouse_code(erpConfig.getErpWarehouseCode());
         erpOrder.setWarehouse_code(erpConfig.getErpWarehouseCode());
         erpOrder.setShop_code(erpConfig.getErpShopCode());
         erpOrder.setShop_code(erpConfig.getErpShopCode());
+        erpOrder.setShopNo(erpConfig.getErpWdShopCode());
+        //查询出这个订单是哪个公司得,并且拿到绑定店铺id
+        Company company =companyMapper.selectCompanyById(order.getCompanyId());
+
+        //判定公司是否绑定店铺,绑定则赋值,不绑定则跳过
+        if (ObjectUtil.isNotEmpty(company)&&ObjectUtil.isNotEmpty(company.getStoreId())){
+            FsStoreScrm fsStoreScrm = fsStoreMapper.selectFsStoreByStoreId(company.getStoreId());
+            if (ObjectUtil.isNotEmpty(fsStoreScrm)){
+                erpOrder.setShopNo(fsStoreScrm.getStoreNo());
+            }
+        }
+
         erpOrder.setBuyer_account(order.getRealName());
         erpOrder.setBuyer_account(order.getRealName());
 
 
 //      erpOrder.setPost_fee(order.getTotalPostage().doubleValue());
 //      erpOrder.setPost_fee(order.getTotalPostage().doubleValue());
@@ -1886,7 +1893,7 @@ public class FsStoreOrderScrmServiceImpl implements IFsStoreOrderScrmService {
             CompanyUser companyUser = companyUserService.selectCompanyUserById(order.getCompanyUserId());
             CompanyUser companyUser = companyUserService.selectCompanyUserById(order.getCompanyUserId());
             if (companyUser != null) {
             if (companyUser != null) {
                 // 获取公司名称
                 // 获取公司名称
-                Company company = companyService.selectCompanyById(companyUser.getCompanyId());
+//                Company company = companyService.selectCompanyById(companyUser.getCompanyId());
                 if(company !=null){
                 if(company !=null){
                     erpOrder.setSeller_memo(company.getCompanyName());
                     erpOrder.setSeller_memo(company.getCompanyName());
                 }
                 }
@@ -3081,7 +3088,7 @@ public class FsStoreOrderScrmServiceImpl implements IFsStoreOrderScrmService {
                 //管易
                 //管易
                 erpOrderService = gyOrderService;
                 erpOrderService = gyOrderService;
             } else if (erpType == 2) {
             } else if (erpType == 2) {
-                //旺店通
+                //旺店通 企业版
                 erpOrderService = wdtOrderService;
                 erpOrderService = wdtOrderService;
             } else if (erpType == 3) {
             } else if (erpType == 3) {
                 //瀚智OMS
                 //瀚智OMS
@@ -3095,6 +3102,8 @@ public class FsStoreOrderScrmServiceImpl implements IFsStoreOrderScrmService {
             } else if (erpType == 6) {
             } else if (erpType == 6) {
                 //金博
                 //金博
                 erpOrderService = k9OrderService;
                 erpOrderService = k9OrderService;
+            }else if(erpType == 7){ // 旺店通旗舰版
+                erpOrderService = wdtTwoOrderService;
             }
             }
         }
         }
         return erpOrderService;
         return erpOrderService;

+ 0 - 2
fs-store/src/main/java/com/fs/hisStore/controller/store/FsStoreOrderScrmController.java

@@ -57,8 +57,6 @@ public class FsStoreOrderScrmController extends BaseController
     @Autowired
     @Autowired
     private IFsExpressService expressService;
     private IFsExpressService expressService;
 
 
-    @Autowired
-    IErpOrderService erpOrderService;
     @Autowired
     @Autowired
     FsStoreOrderItemScrmMapper fsStoreOrderItemMapper;
     FsStoreOrderItemScrmMapper fsStoreOrderItemMapper;
     @Autowired
     @Autowired

+ 0 - 2
fs-store/src/main/java/com/fs/store/controller/store/FsStoreOrderController.java

@@ -55,8 +55,6 @@ public class FsStoreOrderController extends BaseController
     @Autowired
     @Autowired
     private IFsExpressService expressService;
     private IFsExpressService expressService;
 
 
-    @Autowired
-    IErpOrderService erpOrderService;
     @Autowired
     @Autowired
     FsStoreOrderItemMapper fsStoreOrderItemMapper;
     FsStoreOrderItemMapper fsStoreOrderItemMapper;
     @Autowired
     @Autowired

+ 0 - 2
fs-user-app/src/main/java/com/fs/app/controller/store/PayScrmController.java

@@ -48,8 +48,6 @@ public class PayScrmController {
 
 
     @Autowired
     @Autowired
     private FSSysConfig sysConfig;
     private FSSysConfig sysConfig;
-    @Autowired
-    IErpOrderService erpOrderService;
 
 
     @Autowired
     @Autowired
     private IFsStoreOrderItemScrmService storeOrderItemService;
     private IFsStoreOrderItemScrmService storeOrderItemService;

+ 0 - 2
fs-user-app/src/main/java/com/fs/app/controller/store/ProductScrmController.java

@@ -49,8 +49,6 @@ public class ProductScrmController extends AppBaseController {
     private IFsStoreOrderScrmService orderService;
     private IFsStoreOrderScrmService orderService;
     @Autowired
     @Autowired
     private IFsStoreProductRelationScrmService productRelationService;
     private IFsStoreProductRelationScrmService productRelationService;
-    @Autowired
-    IErpGoodsService goodsService;
 
 
     @Autowired
     @Autowired
     private IFsStoreScrmService storeScrmService;
     private IFsStoreScrmService storeScrmService;

+ 0 - 2
fs-user-app/src/main/java/com/fs/app/controller/store/StoreOrderScrmController.java

@@ -99,8 +99,6 @@ public class StoreOrderScrmController extends AppBaseController {
     @Autowired
     @Autowired
     private FSSysConfig sysConfig;
     private FSSysConfig sysConfig;
     @Autowired
     @Autowired
-    private IErpOrderService erpOrderService;
-    @Autowired
     private ISysConfigService configService;
     private ISysConfigService configService;
     @Autowired
     @Autowired
     private IFsStoreAfterSalesScrmService afterSalesService;
     private IFsStoreAfterSalesScrmService afterSalesService;