From aecc30be4f72119829bf7f607aa6031e15fc3c0c Mon Sep 17 00:00:00 2001
From: skyouc
Date: 星期三, 30 七月 2025 08:01:28 +0800
Subject: [PATCH] 调拔单功能优化

---
 rsf-server/src/main/java/com/vincent/rsf/server/manager/schedules/TaskSchedules.java |  112 ++++++++++++++++++++++++++++++++++----------------------
 1 files changed, 68 insertions(+), 44 deletions(-)

diff --git a/rsf-server/src/main/java/com/vincent/rsf/server/manager/schedules/TaskSchedules.java b/rsf-server/src/main/java/com/vincent/rsf/server/manager/schedules/TaskSchedules.java
index d74fa92..cba0f0e 100644
--- a/rsf-server/src/main/java/com/vincent/rsf/server/manager/schedules/TaskSchedules.java
+++ b/rsf-server/src/main/java/com/vincent/rsf/server/manager/schedules/TaskSchedules.java
@@ -13,8 +13,10 @@
 import com.vincent.rsf.server.manager.service.impl.TransferOrderServiceImpl;
 import com.vincent.rsf.server.manager.utils.LocManageUtil;
 import com.vincent.rsf.server.system.constant.GlobalConfigCode;
+import com.vincent.rsf.server.system.constant.SerialRuleCode;
 import com.vincent.rsf.server.system.entity.Config;
 import com.vincent.rsf.server.system.service.ConfigService;
+import com.vincent.rsf.server.system.utils.SerialRuleUtils;
 import com.vincent.rsf.server.system.utils.SystemAuthUtils;
 import org.apache.commons.lang3.StringUtils;
 import org.slf4j.Logger;
@@ -92,6 +94,7 @@
      * @version 1.0
      */
     @Scheduled(cron = "0/5 * * * * ?  ")
+    @Transactional(rollbackFor = Exception.class)
     public void complateOutStock() throws Exception {
         List<Task> tasks = taskService.list(new LambdaQueryWrapper<Task>()
                 .eq(Task::getTaskStatus, TaskStsType.COMPLETE_OUT.id)
@@ -118,7 +121,7 @@
      * @version 1.0
      */
     @Transactional(rollbackFor = Exception.class)
-    public void genInStock(List<TaskItem> taskItems) {
+    public void genInStock(List<TaskItem> taskItems) throws Exception {
         Set<Long> orderIds = taskItems.stream().map(TaskItem::getSourceId).collect(Collectors.toSet());
         List<WkOrder> wkOrders = outStockService.list(new LambdaQueryWrapper<WkOrder>().in(WkOrder::getId, orderIds));
         wkOrders.forEach(wkOrder -> {
@@ -126,10 +129,21 @@
             if (!orderItems.isEmpty()) {
                 WkOrder order = new WkOrder();
                 BeanUtils.copyProperties(wkOrder, order);
+                String ruleCode = SerialRuleUtils.generateRuleCode(SerialRuleCode.SYS_ASN_ORDER, order);
+                if (StringUtils.isNotBlank(ruleCode)) {
+                    throw new CoolException("鍏ュ簱鍗曞彿鐢熸垚澶辫触锛侊紒");
+                }
                 order.setWkType(OrderWorkType.ORDER_WORK_TYPE_OTHER_TERANSFER.type)
                         .setId(null)
-                        .setType(OrderType.ORDER_IN.type)
-                        .setExceStatus(AsnExceStatus.ASN_EXCE_STATUS_RECEIPT_DONE.val);
+                        .setCode(ruleCode)
+                        .setExceStatus(AsnExceStatus.ASN_EXCE_STATUS_UN_EXCE.val)
+                        .setType(OrderType.ORDER_IN.type);
+//                Config config = configService.getOne(new LambdaQueryWrapper<Config>().eq(Config::getFlag, GlobalConfigCode.DIRECT_WAIT_PAKIN));
+//                if (!Boolean.parseBoolean(config.getVal())) {
+//                    order.setExceStatus(AsnExceStatus.ASN_EXCE_STATUS_UN_EXCE.val);
+//                } else {
+//                    order.setExceStatus(AsnExceStatus.ASN_EXCE_STATUS_UN_EXCE.val);
+//                }
                 if (!asnOrderService.save(order)) {
                     throw new CoolException("鍏ュ簱鍗曠敓鎴愬け璐ワ紒锛�");
                 }
@@ -140,50 +154,60 @@
                        throw new CoolException("鍏ュ簱鍗曟槑缁嗕繚瀛樺け璐ワ紒锛�");
                    }
                 });
+
+                Transfer transfer = transferService.getById(order.getPoId());
+
+                TransferOrder transferOrder = new TransferOrder();
+                transferOrder.setOrderId(order.getId())
+                        .setType(OrderType.ORDER_IN.type)
+                        .setTransferId(transfer.getId());
+                if (!transferOrderService.save(transferOrder)) {
+                    throw new CoolException("鍏宠仈鍗曚繚瀛樺け璐ワ紒锛�");
+                }
             }
         });
 
-        Set<Long> taskIds = taskItems.stream().map(TaskItem::getTaskId).collect(Collectors.toSet());
-        List<Task> tasks = taskService.listByIds(taskIds);
-        if (!tasks.isEmpty()) {
-            tasks.forEach(task -> {
-                TaskItem one = taskItemService.getOne(new LambdaQueryWrapper<TaskItem>().eq(TaskItem::getTaskId, task.getId()), false);
-                if (Objects.isNull(one)) {
-                    throw new CoolException("鏁版嵁閿欒锛氫换鍔℃槑缁嗕涪澶憋紒锛�");
-                }
-                TransferOrder order = transferOrderService.getOne(new LambdaQueryWrapper<TransferOrder>().eq(TransferOrder::getOrderId, one.getOrderId()));
-                if (Objects.isNull(order)) {
-                    throw new CoolException("鏁版嵁閿欒锛侊紒");
-                }
-                Transfer transfer = transferService.getById(order.getTransferId());
-                Task task1 = new Task();
-                BeanUtils.copyProperties(task, task1);
-                String targetLoc = LocManageUtil.getTargetLoc(transfer.getTarAreaId());
-                if (Objects.isNull(targetLoc)) {
-                    throw new CoolException("鏈兘鎵惧埌鏈夋晥搴撲綅");
-                }
-                task.setTaskType(TaskType.TASK_TYPE_IN.type)
-                        .setTargLoc(targetLoc)
-                        .setTargSite(null)
-                        .setId(null)
-                        .setTaskStatus(TaskStsType.GENERATE_IN.id);
-                if (!taskService.save(task1)) {
-                    throw new CoolException("浠诲姟鐢熸垚澶辫触锛侊紒");
-                }
-                List<TaskItem> items = taskItemService.list(new LambdaQueryWrapper<TaskItem>().eq(TaskItem::getTaskId, task.getId()));
-                if (items.isEmpty()) {
-                    throw new CoolException("鏁版嵁閿欒锛侊紒");
-                }
-                items.forEach(taskItem -> {
-                    TaskItem item = new TaskItem();
-                    BeanUtils.copyProperties(taskItem, item);
-                    item.setTaskId(task1.getId()).setId(null);
-                    if (!taskItemService.save(item)) {
-                        throw new CoolException("鍏ュ簱浠诲姟鏄庣粏淇濆瓨澶辫触锛侊紒");
-                    }
-                });
-            });
-        }
+//        Set<Long> taskIds = taskItems.stream().map(TaskItem::getTaskId).collect(Collectors.toSet());
+//        List<Task> tasks = taskService.listByIds(taskIds);
+//        if (!tasks.isEmpty()) {
+//            tasks.forEach(task -> {
+//                TaskItem one = taskItemService.getOne(new LambdaQueryWrapper<TaskItem>().eq(TaskItem::getTaskId, task.getId()), false);
+//                if (Objects.isNull(one)) {
+//                    throw new CoolException("鏁版嵁閿欒锛氫换鍔℃槑缁嗕涪澶憋紒锛�");
+//                }
+//                TransferOrder order = transferOrderService.getOne(new LambdaQueryWrapper<TransferOrder>().eq(TransferOrder::getOrderId, one.getOrderId()));
+//                if (Objects.isNull(order)) {
+//                    throw new CoolException("鏁版嵁閿欒锛侊紒");
+//                }
+//                Transfer transfer = transferService.getById(order.getTransferId());
+//                Task task1 = new Task();
+//                BeanUtils.copyProperties(task, task1);
+//                String targetLoc = LocManageUtil.getTargetLoc(transfer.getTarAreaId());
+//                if (Objects.isNull(targetLoc)) {
+//                    throw new CoolException("鏈兘鎵惧埌鏈夋晥搴撲綅");
+//                }
+//                task.setTaskType(TaskType.TASK_TYPE_IN.type)
+//                        .setTargLoc(targetLoc)
+//                        .setTargSite(null)
+//                        .setId(null)
+//                        .setTaskStatus(TaskStsType.GENERATE_IN.id);
+//                if (!taskService.save(task1)) {
+//                    throw new CoolException("浠诲姟鐢熸垚澶辫触锛侊紒");
+//                }
+//                List<TaskItem> items = taskItemService.list(new LambdaQueryWrapper<TaskItem>().eq(TaskItem::getTaskId, task.getId()));
+//                if (items.isEmpty()) {
+//                    throw new CoolException("鏁版嵁閿欒锛侊紒");
+//                }
+//                items.forEach(taskItem -> {
+//                    TaskItem item = new TaskItem();
+//                    BeanUtils.copyProperties(taskItem, item);
+//                    item.setTaskId(task1.getId()).setId(null);
+//                    if (!taskItemService.save(item)) {
+//                        throw new CoolException("鍏ュ簱浠诲姟鏄庣粏淇濆瓨澶辫触锛侊紒");
+//                    }
+//                });
+//            });
+//        }
     }
 
     /**

--
Gitblit v1.9.1