From 9f5e97c05c5d503dab0ecef9a8a2139e50087690 Mon Sep 17 00:00:00 2001
From: 1 <1@123>
Date: 星期五, 27 二月 2026 16:40:19 +0800
Subject: [PATCH] lsh#

---
 rsf-server/src/main/java/com/vincent/rsf/server/manager/schedules/TaskSchedules.java |  127 +++++++++++++++++++++++++++++++++++++++++
 1 files changed, 125 insertions(+), 2 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 1861750..d8e85b2 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
@@ -11,6 +11,7 @@
 import com.fasterxml.jackson.databind.cfg.CoercionInputShape;
 import com.vincent.rsf.framework.common.Cools;
 import com.vincent.rsf.framework.common.R;
+import com.vincent.rsf.framework.common.SpringUtils;
 import com.vincent.rsf.framework.exception.CoolException;
 import com.vincent.rsf.server.api.config.RemotesInfoProperties;
 import com.vincent.rsf.server.api.entity.CommonResponse;
@@ -109,6 +110,8 @@
     private SubsystemFlowTemplateServiceImpl subsystemFlowTemplateService;
     @Autowired
     private FlowStepTemplateServiceImpl flowStepTemplateService;
+    @Autowired
+    private WarehouseAreasService warehouseAreasService;
 
 
     /**
@@ -176,9 +179,129 @@
                     MissionTaskIssueParam missionTaskIssueParam = new MissionTaskIssueParam(flowStepInstance,subsystemFlowTemplate,flowStepTemplate);
 
                     missionTaskIssueParam.setType(RcsTaskType.getTypeDesc(task.getTaskType()));
+                    if (missionTaskIssueParam.getType().equals(RcsTaskType.RCS_TASK_TYPE_ENUM_IN.type)){
+                        boolean souSign = taskInstance.getSourceCode().matches("\\d+");
+                        if (souSign){
+                            WarehouseAreas warehouseAreas = warehouseAreasService.getById(Long.parseLong(taskInstance.getSourceCode()));
+                            if (Cools.isEmpty(warehouseAreas)){
+                                BasStation basStation = basStationService.getOne(new LambdaQueryWrapper<BasStation>().eq(BasStation::getStationName, taskInstance.getSourceCode()));
+                                if (Cools.isEmpty(basStation)){
+                                     basStation = basStationService.getOne(new LambdaQueryWrapper<BasStation>()
+                                             .apply("station_alias != '[]'")  // 涓嶆槸绌烘暟缁�
+                                             .apply("JSON_CONTAINS(station_alias, '\"{0}\"') = 1", taskInstance.getSourceCode())
+                                             .eq(BasStation::getDeleted, 0)  // 閫氬父闇�瑕佸姞涓婃湭鍒犻櫎鏉′欢
+                                             .last("LIMIT 1"));
+                                }
+                                if (Cools.isEmpty(basStation)){
+                                    flowStepInstance.setRetryTimes(flowStepInstance.getRetryTimes() + 1);
+                                    if (flowStepInstance.getRetryTimes()>5){
+                                        flowStepInstance.setStatus((short)4);
+                                        flowStepInstanceService.updateById(flowStepInstance);
+                                        log.error("浠诲姟涓嬪彂澶辫触,婧愮偣鏈煡璇㈠埌锛岄噸璇曟鏁板ぇ浜庣瓑浜庝簲娆★紝鏍囪涓哄け璐ワ紒锛侊紒");
+                                    } else {
+                                        flowStepInstanceService.updateById(flowStepInstance);
+                                        log.error("浠诲姟涓嬪彂澶辫触,婧愮偣鏈煡璇㈠埌鐩爣鐐规湭鏌ヨ鍒帮紝绛夊緟閲嶈瘯....");
+                                    }
+                                    return;
+                                } else {
+                                    missionTaskIssueParam.setSourceCode(basStation.getStationName());
+                                }
+                            } else {
+                                missionTaskIssueParam.setSourceCode(taskInstance.getSourceCode());
+                            }
+                        } else {
+                            BasStation basStation = basStationService.getOne(new LambdaQueryWrapper<BasStation>().eq(BasStation::getStationName, taskInstance.getSourceCode()));
+                            if (Cools.isEmpty(basStation)){
+                                basStation = basStationService.getOne(new LambdaQueryWrapper<BasStation>()
+                                        .apply("station_alias != '[]'")  // 涓嶆槸绌烘暟缁�
+                                        .apply("JSON_CONTAINS(station_alias, '\"{0}\"') = 1", taskInstance.getSourceCode())
+                                        .eq(BasStation::getDeleted, 0)  // 閫氬父闇�瑕佸姞涓婃湭鍒犻櫎鏉′欢
+                                        .last("LIMIT 1"));                            }
+                            if (Cools.isEmpty(basStation)){
+                                flowStepInstance.setRetryTimes(flowStepInstance.getRetryTimes() + 1);
+                                if (flowStepInstance.getRetryTimes()>5){
+                                    flowStepInstance.setStatus((short)4);
+                                    flowStepInstanceService.updateById(flowStepInstance);
+                                    log.error("浠诲姟涓嬪彂澶辫触,婧愮偣鏈煡璇㈠埌锛岄噸璇曟鏁板ぇ浜庣瓑浜庝簲娆★紝鏍囪涓哄け璐ワ紒锛侊紒");
+                                } else {
+                                    flowStepInstanceService.updateById(flowStepInstance);
+                                    log.error("浠诲姟涓嬪彂澶辫触,婧愮偣鏈煡璇㈠埌鐩爣鐐规湭鏌ヨ鍒帮紝绛夊緟閲嶈瘯....");
+                                }
+                                return;
+                            } else {
+                                missionTaskIssueParam.setSourceCode(basStation.getStationName());
+                            }
+                        }
+                        boolean endSign = taskInstance.getTargetCode().matches("\\d+");
+                        if (endSign){
+                            WarehouseAreas warehouseAreas = warehouseAreasService.getById(Long.parseLong(taskInstance.getTargetCode()));
+                            if (Cools.isEmpty(warehouseAreas)){
+                                BasStation basStation = basStationService.getOne(new LambdaQueryWrapper<BasStation>().eq(BasStation::getStationName, taskInstance.getTargetCode()));
+                                if (Cools.isEmpty(basStation)){
+                                    basStation = basStationService.getOne(new LambdaQueryWrapper<BasStation>()
+                                            .apply("station_alias != '[]'")  // 涓嶆槸绌烘暟缁�
+                                            .apply("JSON_CONTAINS(station_alias, '\"{0}\"') = 1", taskInstance.getTargetCode())
+                                            .eq(BasStation::getDeleted, 0)  // 閫氬父闇�瑕佸姞涓婃湭鍒犻櫎鏉′欢
+                                            .last("LIMIT 1"));                                }
+                                if (Cools.isEmpty(basStation)){
+                                    flowStepInstance.setRetryTimes(flowStepInstance.getRetryTimes() + 1);
+                                    if (flowStepInstance.getRetryTimes()>5){
+                                        flowStepInstance.setStatus((short)4);
+                                        flowStepInstanceService.updateById(flowStepInstance);
+                                        log.error("浠诲姟涓嬪彂澶辫触,鐩爣鐐规湭鏌ヨ鍒帮紝閲嶈瘯娆℃暟澶т簬绛変簬浜旀锛屾爣璁颁负澶辫触锛侊紒锛�");
+                                    } else {
+                                        flowStepInstanceService.updateById(flowStepInstance);
+                                        log.error("浠诲姟涓嬪彂澶辫触,鐩爣鐐规湭鏌ヨ鍒帮紝绛夊緟閲嶈瘯....");
+                                    }
+                                    return;
+                                } else {
+                                    missionTaskIssueParam.setTargetCode(basStation.getStationName());
+                                }
 
-                    missionTaskIssueParam.setSourceCode(taskInstance.getSourceCode());
-                    missionTaskIssueParam.setTargetCode(taskInstance.getTargetCode());
+                            } else {
+                                missionTaskIssueParam.setTargetCode(taskInstance.getTargetCode());
+                            }
+                        } else {
+                            BasStation basStation = basStationService.getOne(new LambdaQueryWrapper<BasStation>().eq(BasStation::getStationName, taskInstance.getTargetCode()));
+                            if (Cools.isEmpty(basStation)){
+                                basStation = basStationService.getOne(new LambdaQueryWrapper<BasStation>()
+                                        .apply("station_alias != '[]'")  // 涓嶆槸绌烘暟缁�
+                                        .apply("JSON_CONTAINS(station_alias, '\"{0}\"') = 1", taskInstance.getTargetCode())
+                                        .eq(BasStation::getDeleted, 0)  // 閫氬父闇�瑕佸姞涓婃湭鍒犻櫎鏉′欢
+                                        .last("LIMIT 1"));                                  }
+                            if (Cools.isEmpty(basStation)){
+                                flowStepInstance.setRetryTimes(flowStepInstance.getRetryTimes() + 1);
+                                if (flowStepInstance.getRetryTimes()>5){
+                                    flowStepInstance.setStatus((short)4);
+                                    flowStepInstanceService.updateById(flowStepInstance);
+                                    log.error("浠诲姟涓嬪彂澶辫触,鐩爣鐐规湭鏌ヨ鍒帮紝閲嶈瘯娆℃暟澶т簬绛変簬浜旀锛屾爣璁颁负澶辫触锛侊紒锛�");
+                                } else {
+                                    flowStepInstanceService.updateById(flowStepInstance);
+                                    log.error("浠诲姟涓嬪彂澶辫触,鐩爣鐐规湭鏌ヨ鍒帮紝绛夊緟閲嶈瘯....");
+                                }
+                                return;
+                            } else {
+                                missionTaskIssueParam.setTargetCode(basStation.getStationName());
+                            }
+                        }
+
+                        missionTaskIssueParam.setLocNo(task.getTargLoc());
+                        missionTaskIssueParam.setSourcelocNo(task.getOrgLoc());
+                        missionTaskIssueParam.setSourcestaNo(task.getOrgSite());
+                        missionTaskIssueParam.setStaNo(task.getTargSite());
+                        missionTaskIssueParam.setBarcode(task.getBarcode());
+                        missionTaskIssueParam.setTaskPri(task.getSort());
+                    } else if (missionTaskIssueParam.getType().equals(RcsTaskType.RCS_TASK_TYPE_ENUM_OUT.type)){
+                        missionTaskIssueParam.setSourceCode(taskInstance.getSourceCode());
+                        missionTaskIssueParam.setTargetCode(taskInstance.getTargetCode());
+                    } else if (missionTaskIssueParam.getType().equals(RcsTaskType.RCS_TASK_TYPE_ENUM_TRANSFER.type)){
+                        missionTaskIssueParam.setSourceCode(taskInstance.getSourceCode());
+                        missionTaskIssueParam.setTargetCode(taskInstance.getTargetCode());
+                    } else if (missionTaskIssueParam.getType().equals(RcsTaskType.RCS_TASK_TYPE_ENUM_STA.type)){
+                        missionTaskIssueParam.setSourceCode(taskInstance.getSourceCode());
+                        missionTaskIssueParam.setTargetCode(taskInstance.getTargetCode());
+                    }
+
                     /**浠诲姟涓嬪彂鎺ュ彛*/
                     String pubTakUrl = wmsOpenApi.getHost() + ":" + wmsOpenApi.getPort() + RcsConstant.MISSION_TRANSFER_STATION;
 

--
Gitblit v1.9.1