From 201d42b5596dd7df3455182d5c0b4f3447f2e5b5 Mon Sep 17 00:00:00 2001
From: 1 <1@123>
Date: 星期三, 04 二月 2026 14:18:17 +0800
Subject: [PATCH] lsh#

---
 rsf-server/src/main/java/com/vincent/rsf/server/manager/schedules/TaskMissionSchedules.java |   97 +++++++++++++++++++++++++++++++++++++++++-------
 1 files changed, 82 insertions(+), 15 deletions(-)

diff --git a/rsf-server/src/main/java/com/vincent/rsf/server/manager/schedules/TaskMissionSchedules.java b/rsf-server/src/main/java/com/vincent/rsf/server/manager/schedules/TaskMissionSchedules.java
index fb76e08..a206dfa 100644
--- a/rsf-server/src/main/java/com/vincent/rsf/server/manager/schedules/TaskMissionSchedules.java
+++ b/rsf-server/src/main/java/com/vincent/rsf/server/manager/schedules/TaskMissionSchedules.java
@@ -70,7 +70,7 @@
      * @description: 鍒濆浠诲姟瑙勫垝璺緞
      * @version 1.0
      */
-    @Scheduled(cron = "0/2 * * * * ?")
+    @Scheduled(cron = "0/1 * * * * ?")
     @Transactional(rollbackFor = Exception.class)
     public void missionTemplate() throws Exception {
         Config config = configService.getOne(new LambdaQueryWrapper<Config>().eq(Config::getFlag, GlobalConfigCode.AUTO_TEMPLATE_PLANNING_STEP_FLOW));
@@ -88,12 +88,10 @@
                     || task.getTaskType().equals(TaskType.TASK_TYPE_PICK_IN.type)
                     || task.getTaskType().equals(TaskType.TASK_TYPE_CHECK_IN.type)
                     || task.getTaskType().equals(TaskType.TASK_TYPE_EMPTY_IN.type)
-                    || task.getTaskType().equals(TaskType.TASK_TYPE_MERGE_IN.type)
-                    || task.getTaskType().equals(TaskType.TASK_TYPE_LOC_MOVE.type)) {
+                    || task.getTaskType().equals(TaskType.TASK_TYPE_MERGE_IN.type)) {
                 sou = task.getOrgSite();
                 Loc loc = locService.getOne(new LambdaQueryWrapper<Loc>().eq(Loc::getCode, task.getTargLoc()));
                 end = loc.getAreaId().toString();
-                task.setTaskStatus(TaskStsType.GENERATE_IN.id);
             } else if (task.getTaskType().equals(TaskType.TASK_TYPE_OUT.type)
                     || task.getTaskType().equals(TaskType.TASK_TYPE_PICK_AGAIN_OUT.type)
                     || task.getTaskType().equals(TaskType.TASK_TYPE_MERGE_OUT.type)
@@ -102,7 +100,15 @@
                 Loc loc = locService.getOne(new LambdaQueryWrapper<Loc>().eq(Loc::getCode, task.getOrgLoc()));
                 sou = loc.getAreaId().toString();
                 end = task.getTargSite();
-                task.setTaskStatus(TaskStsType.GENERATE_OUT.id);
+            } else if (task.getTaskType().equals(TaskType.TASK_TYPE_CROSS_DOCKING_OUT.type)){
+                Loc loc = locService.getOne(new LambdaQueryWrapper<Loc>().eq(Loc::getCode, task.getOrgLoc()));
+                sou = loc.getAreaId().toString();
+                end = loc.getAreaId().toString();
+            } else if (task.getTaskType().equals(TaskType.TASK_TYPE_LOC_MOVE.type)){
+                Loc loc1 = locService.getOne(new LambdaQueryWrapper<Loc>().eq(Loc::getCode, task.getTargLoc()));
+                end = loc1.getAreaId().toString();
+                Loc loc2 = locService.getOne(new LambdaQueryWrapper<Loc>().eq(Loc::getCode, task.getOrgLoc()));
+                sou = loc2.getAreaId().toString();
             }
             List<TaskPathTemplateMerge> taskPathTemplateMergeList = taskPathTemplateMergeService.list(new LambdaQueryWrapper<TaskPathTemplateMerge>().eq(TaskPathTemplateMerge::getSourceType, sou).eq(TaskPathTemplateMerge::getTargetType, end));
             if (Objects.isNull(taskPathTemplateMergeList) || taskPathTemplateMergeList.isEmpty()) {
@@ -128,7 +134,7 @@
                         taskPathTemplateMerge.setStepSize(longList.size());
                         taskPathTemplateMergeService.save(taskPathTemplateMerge);
                     }
-                    System.out.println("浠诲姟锛�"+task.getTaskCode()+"鏌ヨ姝ュ簭涓猴細"+longs);
+//                    System.out.println("浠诲姟锛�"+task.getTaskCode()+"鏌ヨ姝ュ簭涓猴細"+longs);
                 }
             } else {
                 //鐢熸垚瀹為檯璺緞
@@ -147,17 +153,53 @@
         Integer i = 0;//it椤哄簭
         Integer j = 0;//suT椤哄簭
 
-        TaskInstance taskInstance = new TaskInstance(taskPathTemplateMerge,task);
-        boolean save = taskInstanceService.save(taskInstance);
-        if (!save) {
-            return false;
-        }
+        // 鐢ㄤ簬瀛樺偍鎵�鏈塅lowStepTemplate
+        List<FlowStepTemplate> allFlowStepTemplates = new ArrayList<>();
+
+        // 绗竴閬嶉亶鍘嗭細鏀堕泦鎵�鏈夌殑FlowStepTemplate
         for (Integer id : conditionExpression) {
             TaskPathTemplate taskPathTemplate = taskPathTemplateService.getById(id);
             if (taskPathTemplate == null) {
                 return false;
             }
-            List<TaskPathTemplateNode> taskPathTemplateNodeList = taskPathTemplateNodeService.list(new LambdaQueryWrapper<TaskPathTemplateNode>().eq(TaskPathTemplateNode::getTemplateId, taskPathTemplate.getId()));
+            List<TaskPathTemplateNode> taskPathTemplateNodeList = taskPathTemplateNodeService.list(
+                    new LambdaQueryWrapper<TaskPathTemplateNode>()
+                            .eq(TaskPathTemplateNode::getTemplateId, taskPathTemplate.getId()).orderByAsc(TaskPathTemplateNode::getNodeOrder));
+
+            for (TaskPathTemplateNode taskPathTemplateNode : taskPathTemplateNodeList) {
+                List<SubsystemFlowTemplate> subsystemFlowTemplateList = subsystemFlowTemplateService.list(
+                        new LambdaQueryWrapper<SubsystemFlowTemplate>()
+                                .eq(SubsystemFlowTemplate::getFlowCode, taskPathTemplateNode.getNodeCode())
+                                .eq(SubsystemFlowTemplate::getSystemCode, taskPathTemplateNode.getSystemCode()));
+
+                for (SubsystemFlowTemplate subsystemFlowTemplate : subsystemFlowTemplateList) {
+                    List<FlowStepTemplate> flowStepTemplateList = flowStepTemplateService.list(
+                            new LambdaQueryWrapper<FlowStepTemplate>()
+                                    .eq(FlowStepTemplate::getFlowId, subsystemFlowTemplate.getId()).orderByAsc(FlowStepTemplate::getStepOrder));
+
+                    allFlowStepTemplates.addAll(flowStepTemplateList);
+                }
+            }
+        }
+
+        TaskInstance taskInstance = new TaskInstance(taskPathTemplateMerge,task);
+        boolean save = taskInstanceService.save(taskInstance);
+        if (!save) {
+            return false;
+        }
+
+        // 褰撳墠澶勭悊鐨凢lowStepTemplate鍦ㄥ叏灞�鍒楄〃涓殑绱㈠紩
+        int globalIndex = 0;
+
+        for (Integer id : conditionExpression) {
+            TaskPathTemplate taskPathTemplate = taskPathTemplateService.getById(id);
+            if (taskPathTemplate == null) {
+                return false;
+            }
+            List<TaskPathTemplateNode> taskPathTemplateNodeList = taskPathTemplateNodeService.list(
+                    new LambdaQueryWrapper<TaskPathTemplateNode>()
+                            .eq(TaskPathTemplateNode::getTemplateId, taskPathTemplate.getId()).orderByAsc(TaskPathTemplateNode::getNodeOrder));
+
             for (TaskPathTemplateNode taskPathTemplateNode : taskPathTemplateNodeList) {
                 TaskInstanceNode taskInstanceNode = new TaskInstanceNode(taskPathTemplateNode);
                 taskInstanceNode.setTaskId(taskInstance.getId());
@@ -166,8 +208,12 @@
                 taskInstanceNode.setNodeOrder(i);
                 taskInstanceNode.setNodeCode(String.valueOf(snowflakeIdWorker.nextId()));
                 taskInstanceNodeService.save(taskInstanceNode);
-                List<SubsystemFlowTemplate> subsystemFlowTemplateList = subsystemFlowTemplateService.list(new LambdaQueryWrapper<SubsystemFlowTemplate>().eq(SubsystemFlowTemplate::getFlowCode, taskPathTemplateNode.getNodeCode())
-                        .eq(SubsystemFlowTemplate::getSystemCode, taskPathTemplateNode.getSystemCode()));
+
+                List<SubsystemFlowTemplate> subsystemFlowTemplateList = subsystemFlowTemplateService.list(
+                        new LambdaQueryWrapper<SubsystemFlowTemplate>()
+                                .eq(SubsystemFlowTemplate::getFlowCode, taskPathTemplateNode.getNodeCode())
+                                .eq(SubsystemFlowTemplate::getSystemCode, taskPathTemplateNode.getSystemCode()));
+
                 for (SubsystemFlowTemplate subsystemFlowTemplate : subsystemFlowTemplateList) {
                     FlowInstance flowInstance = new FlowInstance(subsystemFlowTemplate);
                     flowInstance.setFlowInstanceNo(String.valueOf(snowflakeIdWorker.nextId()));
@@ -176,7 +222,11 @@
                     flowInstance.setNodeInstanceId(taskInstanceNode.getId());
                     flowInstance.setNodeCode(String.valueOf(snowflakeIdWorker.nextId()));
                     flowInstanceService.save(flowInstance);
-                    List<FlowStepTemplate> flowStepTemplateList = flowStepTemplateService.list(new LambdaQueryWrapper<FlowStepTemplate>().eq(FlowStepTemplate::getFlowId, subsystemFlowTemplate.getId()));
+
+                    List<FlowStepTemplate> flowStepTemplateList = flowStepTemplateService.list(
+                            new LambdaQueryWrapper<FlowStepTemplate>()
+                                    .eq(FlowStepTemplate::getFlowId, subsystemFlowTemplate.getId()).orderByAsc(FlowStepTemplate::getStepOrder));
+
                     for (FlowStepTemplate flowStepTemplate : flowStepTemplateList) {
                         j++;
                         FlowStepInstance flowStepInstance = new FlowStepInstance(flowStepTemplate);
@@ -184,7 +234,24 @@
                         flowStepInstance.setFlowInstanceNo(flowInstance.getFlowInstanceNo());
                         flowStepInstance.setStepOrder(j);
                         flowStepInstance.setStepCode(String.valueOf(snowflakeIdWorker.nextId()));
+                        flowStepInstance.setWmsNowTaskStatus(flowStepTemplate.getWmsNowTaskStatus());
+                        flowStepInstance.setTaskNo(task.getTaskCode());
+
+                        // 鍒ゆ柇鏄惁鏄渶鍚庝竴涓�
+                        if (globalIndex < allFlowStepTemplates.size() - 1) {
+                            // 涓嶆槸鏈�鍚庝竴涓紝鍙栦笅涓�涓殑WmsNowTaskStatus
+                            FlowStepTemplate nextFlowStep = allFlowStepTemplates.get(globalIndex + 1);
+                            flowStepInstance.setWmsNextTaskStatus(nextFlowStep.getWmsNowTaskStatus());
+                        } else {
+                            // 鏄渶鍚庝竴涓紝璁剧疆涓�9999
+                            flowStepInstance.setWmsNextTaskStatus(9999);
+                        }
+                        if (globalIndex == 0){
+                            task.setTaskStatus(flowStepTemplate.getWmsNowTaskStatus());
+                            flowStepInstance.setStatus((short)1);
+                        }
                         flowStepInstanceService.save(flowStepInstance);
+                        globalIndex++; // 鏇存柊鍏ㄥ眬绱㈠紩
                     }
                 }
             }

--
Gitblit v1.9.1