xdd 1 mesiac pred
rodič
commit
89e42f0746

+ 12 - 0
fs-admin/src/main/java/com/fs/task/StoreTask.java

@@ -12,6 +12,7 @@ import com.fs.erp.domain.ErpDeliverys;
 import com.fs.erp.domain.ErpGoods;
 import com.fs.erp.domain.ErpOrderQuery;
 import com.fs.erp.dto.*;
+import com.fs.erp.service.FsJstAftersalePushService;
 import com.fs.erp.service.IErpGoodsService;
 import com.fs.erp.service.IErpOrderService;
 import com.fs.erp.utils.ErpContextHolder;
@@ -121,6 +122,17 @@ public class StoreTask {
     @Autowired
     private FsWarehousesMapper fsWarehousesMapper;
 
+
+    @Autowired
+    public FsJstAftersalePushService fsJstAftersalePushService;
+
+    /**
+     * 推送聚水潭售后单
+     */
+    @QuartzRunnable(name = "推送聚水潭售后单")
+    public void pushJst(){
+        fsJstAftersalePushService.pushJst();
+    }
     /**
      * 发货任务
      */

+ 54 - 32
fs-service-system/src/main/java/com/fs/store/service/impl/FsStoreAfterSalesServiceImpl.java

@@ -33,6 +33,7 @@ import com.fs.huifuPay.domain.HuiFuRefundResult;
 import com.fs.huifuPay.dto.*;
 import com.fs.huifuPay.sdk.opps.core.request.V2TradePaymentScanpayRefundRequest;
 import com.fs.huifuPay.service.HuiFuService;
+import com.fs.store.mapper.FsStoreDeliversMapper;
 import com.fs.store.mapper.FsWarehousesMapper;
 import com.fs.tzBank.TzBankService;
 import com.fs.pay.pay.domain.RefundResult;
@@ -121,7 +122,8 @@ public class FsStoreAfterSalesServiceImpl implements IFsStoreAfterSalesService
     private FsWarehousesMapper fsWarehousesMapper;
     @Autowired
     private FsJstAftersalePushMapper fsJstAftersalePushMapper;
-
+    @Autowired
+    private FsStoreAfterSalesMapper afterSalesMapper;
 
     /**
      * 查询售后记录
@@ -326,6 +328,8 @@ public class FsStoreAfterSalesServiceImpl implements IFsStoreAfterSalesService
         request.setTid(order.getOrderCode());
         request.setOid(order.getOrderCode());
         request.setRefund_state(1);
+        FsStoreAfterSales fsStoreAfterSales = afterSalesMapper.selectFsStoreAfterSalesByOrderCode(storeAfterSales.getOrderCode());
+
         // 根据仓库code找erp
         if(StringUtils.isNotBlank(order.getStoreHouseCode())){
             String erp = fsWarehousesMapper.selectErpByCode(order.getStoreHouseCode());
@@ -336,7 +340,7 @@ public class FsStoreAfterSalesServiceImpl implements IFsStoreAfterSalesService
                 fsJstAftersalePush.setType(String.valueOf(AfterSalesOrderStatusEnum.WAIT_SELLER_AGREE.getIndex()));
                 fsJstAftersalePush.setTaskStatus(TaskStatusEnum.PENDING.getCode());
                 fsJstAftersalePush.setRetryCount(0);
-                fsJstAftersalePush.setAfterSaleId(String.valueOf(storeAfterSalesStatus.getId()));
+                fsJstAftersalePush.setAfterSaleId(String.valueOf(fsStoreAfterSales.getId()));
                 fsJstAftersalePushMapper.insert(fsJstAftersalePush);
             }
             ErpContextHolder.setErpType(erp);
@@ -373,6 +377,8 @@ public class FsStoreAfterSalesServiceImpl implements IFsStoreAfterSalesService
             throw new CustomException("只有未发货的订单可以撤销售后");
         }
         FsStoreOrder order = orderService.selectFsStoreOrderByOrderCode(storeAfterSales.getOrderCode());
+        FsStoreAfterSales fsStoreAfterSales = afterSalesMapper.selectFsStoreAfterSalesByOrderCode(storeAfterSales.getOrderCode());
+
 
         // erp撤销售后单
         // 如果当前订单是属于jst erp
@@ -384,7 +390,7 @@ public class FsStoreAfterSalesServiceImpl implements IFsStoreAfterSalesService
                 fsJstAftersalePush.setTaskStatus(TaskStatusEnum.PENDING.getCode());
                 fsJstAftersalePush.setType(String.valueOf(AfterSalesOrderStatusEnum.CLOSED.getIndex()));
                 fsJstAftersalePush.setRetryCount(0);
-                fsJstAftersalePush.setAfterSaleId(String.valueOf(id));
+                fsJstAftersalePush.setAfterSaleId(String.valueOf(fsStoreAfterSales.getId()));
                 fsJstAftersalePushMapper.insert(fsJstAftersalePush);
             }
         }
@@ -462,6 +468,7 @@ public class FsStoreAfterSalesServiceImpl implements IFsStoreAfterSalesService
         afterSalesStatusService.insertFsStoreAfterSalesStatus(storeAfterSalesStatus);
         fsStoreAfterSalesMapper.updateFsStoreAfterSales(storeAfterSales);
         FsStoreOrder order = fsStoreOrderService.selectFsStoreOrderByOrderCode(storeAfterSales.getOrderCode());
+        FsStoreAfterSales fsStoreAfterSales = afterSalesMapper.selectFsStoreAfterSalesByOrderCode(storeAfterSales.getOrderCode());
 
         // 如果当前订单是属于jst erp
         if(order != null && StringUtils.isNotBlank(order.getStoreHouseCode())){
@@ -471,7 +478,7 @@ public class FsStoreAfterSalesServiceImpl implements IFsStoreAfterSalesService
                 fsJstAftersalePush.setOrderId(order.getOrderCode());
                 fsJstAftersalePush.setTaskStatus(TaskStatusEnum.PENDING.getCode());
                 fsJstAftersalePush.setType(String.valueOf(AfterSalesOrderStatusEnum.WAIT_SELLER_CONFIRM_GOODS.getIndex()));
-                fsJstAftersalePush.setAfterSaleId(String.valueOf(param.getSalesId()));
+                fsJstAftersalePush.setAfterSaleId(String.valueOf(fsStoreAfterSales.getId()));
                 fsJstAftersalePush.setRetryCount(0);
                 fsJstAftersalePushMapper.insert(fsJstAftersalePush);
             }
@@ -608,6 +615,7 @@ public class FsStoreAfterSalesServiceImpl implements IFsStoreAfterSalesService
             throw new CustomException("非法操作");
         }
         FsStoreOrder order = orderService.selectFsStoreOrderByOrderCode(storeAfterSales.getOrderCode());
+        FsStoreAfterSales fsStoreAfterSales = afterSalesMapper.selectFsStoreAfterSalesByOrderCode(storeAfterSales.getOrderCode());
 
         // 财务审核通过,同步到jst erp
         if(StringUtils.isNotBlank(order.getStoreHouseCode())){
@@ -618,7 +626,7 @@ public class FsStoreAfterSalesServiceImpl implements IFsStoreAfterSalesService
                 fsJstAftersalePush.setTaskStatus(TaskStatusEnum.PENDING.getCode());
                 fsJstAftersalePush.setType(String.valueOf(AfterSalesOrderStatusEnum.SUCCESS.getIndex()));
                 fsJstAftersalePush.setRetryCount(0);
-                fsJstAftersalePush.setAfterSaleId(String.valueOf(param.getSalesId()));
+                fsJstAftersalePush.setAfterSaleId(String.valueOf(fsStoreAfterSales.getId()));
                 fsJstAftersalePushMapper.insert(fsJstAftersalePush);
 
                 // 售后单改成已确认
@@ -627,7 +635,7 @@ public class FsStoreAfterSalesServiceImpl implements IFsStoreAfterSalesService
                 aftersaleConfirm.setTaskStatus(TaskStatusEnum.PENDING.getCode());
                 aftersaleConfirm.setType(String.valueOf(AfterSalesOrderStatusEnum.CONFIRM.getIndex()));
                 aftersaleConfirm.setRetryCount(0);
-                fsJstAftersalePush.setAfterSaleId(String.valueOf(param.getSalesId()));
+                aftersaleConfirm.setAfterSaleId(String.valueOf(fsStoreAfterSales.getId()));
                 fsJstAftersalePushMapper.insert(aftersaleConfirm);
             }
         }
@@ -755,6 +763,9 @@ public class FsStoreAfterSalesServiceImpl implements IFsStoreAfterSalesService
         return R.ok();
     }
 
+
+    @Autowired
+    private FsStoreDeliversMapper fsStoreDeliversMapper;
     //平台撤销
     @Override
     @Transactional
@@ -779,37 +790,48 @@ public class FsStoreAfterSalesServiceImpl implements IFsStoreAfterSalesService
         storeAfterSalesStatus.setChangeTime(Timestamp.valueOf(LocalDateTime.now()));
         storeAfterSalesStatus.setOperator(param.getOperator());
         afterSalesStatusService.insertFsStoreAfterSalesStatus(storeAfterSalesStatus);
-
-        if(StringUtils.isNotBlank(order.getStoreHouseCode())) {
-            String erp = fsWarehousesMapper.selectErpByCode(order.getStoreHouseCode());
-            if (StringUtils.equals(erp, ErpTypeConstant.JST_ERP)) {
-                FsJstAftersalePush fsJstAftersalePush = new FsJstAftersalePush();
-                fsJstAftersalePush.setOrderId(order.getOrderCode());
-                fsJstAftersalePush.setTaskStatus(TaskStatusEnum.PENDING.getCode());
-                fsJstAftersalePush.setType(String.valueOf(AfterSalesOrderStatusEnum.CLOSED.getIndex()));
-                fsJstAftersalePush.setRetryCount(0);
-                fsJstAftersalePush.setAfterSaleId(String.valueOf(param.getSalesId()));
-                fsJstAftersalePushMapper.insert(fsJstAftersalePush);
-            } else {
-                //创建新的OMS订单
-                if (storeAfterSales.getOrderStatus().equals(OrderInfoEnum.STATUS_1.getValue()) ) {
-                    if(StringUtils.isNotEmpty(order.getExtendOrderId())){
-                        //更新订单code
-                        String orderSn = IdUtil.getSnowflake(0, 0).nextIdStr();
-                        FsStoreOrder orderMap=new FsStoreOrder();
-                        orderMap.setId(order.getId());
-                        orderMap.setOrderCode(orderSn);
-                        orderService.updateFsStoreOrder(orderMap);
-                        storeAfterSales.setOrderCode(orderSn);
-                        orderItemService.updateFsStoreOrderCode(order.getId(),orderSn);
-                        //生成新的订单
-                        orderService.createOmsOrder(order.getId());
-                    }
+        FsStoreAfterSales fsStoreAfterSales = afterSalesMapper.selectFsStoreAfterSalesByOrderCode(storeAfterSales.getOrderCode());
+
+        // 查询是否已经发货
+        FsStoreDelivers byOrderCode = fsStoreDeliversMapper.findByOrderCode(order.getOrderCode());
+        // 如果已发货走发货售后逻辑,否则直接取消
+        if(byOrderCode!=null){
+            if(StringUtils.isNotBlank(order.getStoreHouseCode())) {
+                String erp = fsWarehousesMapper.selectErpByCode(order.getStoreHouseCode());
+                if (StringUtils.equals(erp, ErpTypeConstant.JST_ERP)) {
+
+                    FsJstAftersalePush fsJstAftersalePush = new FsJstAftersalePush();
+                    fsJstAftersalePush.setOrderId(order.getOrderCode());
+                    fsJstAftersalePush.setTaskStatus(TaskStatusEnum.PENDING.getCode());
+                    fsJstAftersalePush.setType(String.valueOf(AfterSalesOrderStatusEnum.CLOSED.getIndex()));
+                    fsJstAftersalePush.setRetryCount(0);
+                    fsJstAftersalePush.setAfterSaleId(String.valueOf(fsStoreAfterSales.getId()));
+                    fsJstAftersalePushMapper.insert(fsJstAftersalePush);
                 }
             }
         }
+        // 如果未发货,重新推送
+        else {
+            //创建新的OMS订单
+            if (storeAfterSales.getOrderStatus().equals(OrderInfoEnum.STATUS_1.getValue()) ) {
+                if(StringUtils.isNotEmpty(order.getExtendOrderId())){
+                    //更新订单code
+                    String orderSn = IdUtil.getSnowflake(0, 0).nextIdStr();
+                    FsStoreOrder orderMap=new FsStoreOrder();
+                    orderMap.setId(order.getId());
+                    orderMap.setOrderCode(orderSn);
+                    orderService.updateFsStoreOrder(orderMap);
+                    storeAfterSales.setOrderCode(orderSn);
+                    orderItemService.updateFsStoreOrderCode(order.getId(),orderSn);
+                    //生成新的订单
+                    orderService.createOmsOrder(order.getId());
+                }
+            }
 
+        }
         fsStoreAfterSalesMapper.updateFsStoreAfterSales(storeAfterSales);
+
+
         return R.ok();
     }