소스 검색

订单同步优化

24282 1 년 전
부모
커밋
ee4f6f2a54

+ 0 - 12
sd-wln/src/main/java/com/sd/wln/scheduled/WlnSyncTask.java

@@ -1,7 +1,6 @@
 package com.sd.wln.scheduled;
 
 import com.sd.wln.service.WlnOrderService;
-import com.sd.wln.service.WlnOutboundOrderService;
 import com.sd.wln.service.WlnSkuService;
 import com.sd.wln.service.WlnStatementOfAccount;
 import org.springframework.beans.factory.annotation.Autowired;
@@ -23,9 +22,6 @@ public class WlnSyncTask {
     private WlnOrderService wlnOrderService;
 
     @Autowired
-    private WlnOutboundOrderService wlnOutboundOrderService;
-
-    @Autowired
     private WlnStatementOfAccount wlnStatementOfAccount;
 
     /**
@@ -46,14 +42,6 @@ public class WlnSyncTask {
     }
 
     /**
-     * 每10分钟同步一次出库单数据
-     */
-    @Scheduled(fixedDelay = 10 * 60 * 1000)
-    private void syncOutboundOrder() {
-        wlnOutboundOrderService.syncOutboundOrder();
-    }
-
-    /**
      * 生成对账单
      */
     @Scheduled(cron = "0 0 19-23 * * ?")

+ 2 - 4
sd-wln/src/main/java/com/sd/wln/service/impl/WlnOrderServiceImpl.java

@@ -10,7 +10,6 @@ import com.fjhx.tenant.service.dict.DictCommonDataService;
 import com.ruoyi.common.constant.StatusConstant;
 import com.ruoyi.common.core.domain.BaseIdPo;
 import com.ruoyi.common.exception.ServiceException;
-import com.ruoyi.framework.mybatis.holder.LogicHolder;
 import com.sd.business.entity.bom.bo.BomSpecBo;
 import com.sd.business.entity.department.po.Department;
 import com.sd.business.entity.order.enums.OrderClassifyEnum;
@@ -84,8 +83,6 @@ public class WlnOrderServiceImpl implements WlnOrderService {
     @Override
     public void syncOrder() {
 
-        LogicHolder.setLogicHolder(false);
-
         List<DictCommonData> warehouseCodeList = dictCommonDataService.list(q -> q.eq(DictCommonData::getDictCode, "warehouse_code"));
         if (warehouseCodeList.isEmpty()) {
             log.error("订单同步失败,仓库字典:warehouse_code 为空");
@@ -159,7 +156,6 @@ public class WlnOrderServiceImpl implements WlnOrderService {
 
         }
 
-        LogicHolder.clear();
     }
 
     /**
@@ -389,6 +385,7 @@ public class WlnOrderServiceImpl implements WlnOrderService {
 
         return orderSkuProductionCost;
     }
+
     /**
      * 创建订单包装
      */
@@ -644,6 +641,7 @@ public class WlnOrderServiceImpl implements WlnOrderService {
         }
         if (!saveStatementOrderList.isEmpty()) {
             saveStatementOrderList.forEach(item -> {
+
                 // 生成对账单
                 StatementOfAccountDto statement = new StatementOfAccountDto();
                 statement.setDepartmentId(item.getDepartmentId());

+ 10 - 2
sd-wln/src/main/java/com/sd/wln/service/impl/WlnStatementOfAccountImpl.java

@@ -14,6 +14,7 @@ import com.sd.business.service.order.OrderService;
 import com.sd.business.service.outbound.OutboundOrderService;
 import com.sd.business.service.production.ProductionTaskService;
 import com.sd.business.service.statement.StatementOfAccountService;
+import com.sd.wln.service.WlnOutboundOrderService;
 import com.sd.wln.service.WlnStatementOfAccount;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.stereotype.Service;
@@ -40,10 +41,16 @@ public class WlnStatementOfAccountImpl implements WlnStatementOfAccount {
     @Autowired
     private InventoryFinishedService inventoryFinishedService;
 
+    @Autowired
+    private WlnOutboundOrderService wlnOutboundOrderService;
+
     @Transactional(rollbackFor = Exception.class)
     @Override
     public synchronized void createStatementOfAccount() {
 
+        // 获取万里牛出库明细
+        wlnOutboundOrderService.syncOutboundOrder();
+
         List<StatementOfAccount> saveStatementOfAccountList = new ArrayList<>();
         List<OrderInfo> editOrderInfoList = new ArrayList<>();
         List<ProductionTaskDto> editProductionTaskList = new ArrayList<>();
@@ -113,6 +120,8 @@ public class WlnStatementOfAccountImpl implements WlnStatementOfAccount {
             OrderInfo editOrderInfo = new OrderInfo();
             editOrderInfo.setId(order.getId());
             editOrderInfo.setStatementOfAccountId(statementOfAccount.getId());
+
+            // 生产中的任务变为生产完成,生产成品入库,生成生产任务
             if (order.getStatus().equals(OrderStatusEnum.IN_PRODUCTION.getKey())) {
                 editOrderInfo.setStatus(OrderStatusEnum.COMPLETION_PRODUCTION.getKey());
                 editOrderInfo.setShippingTime(map.get(order.getWlnCode()));
@@ -122,7 +131,6 @@ public class WlnStatementOfAccountImpl implements WlnStatementOfAccount {
                 productionTaskDto.setCompleteTime(map.get(order.getWlnCode()));
                 editProductionTaskList.add(productionTaskDto);
                 productionWarehousingOrderIdList.add(order.getId());
-
             }
             editOrderInfoList.add(editOrderInfo);
         }
@@ -133,6 +141,7 @@ public class WlnStatementOfAccountImpl implements WlnStatementOfAccount {
         // 订单生产完成时,生产任务一键完成
         productionTaskService.completeTaskBatch(editProductionTaskList);
 
+        // 保存对账单
         if (!saveStatementOfAccountList.isEmpty()) {
             statementOfAccountService.saveBatch(saveStatementOfAccountList);
         }
@@ -143,7 +152,6 @@ public class WlnStatementOfAccountImpl implements WlnStatementOfAccount {
         // 库存销售出库
         List<Long> orderIdList = editOrderInfoList.stream().map(BaseIdPo::getId).collect(Collectors.toList());
         inventoryFinishedService.saleOutOfWarehouse(orderIdList);
-
     }
 
 }