From ecd5b6b51b7ddc4efe63c49c3c68adb276a2a2cb Mon Sep 17 00:00:00 2001
From: chen.lin <1442464845@qq.com>
Date: 星期五, 06 三月 2026 15:08:03 +0800
Subject: [PATCH] Merge remote-tracking branch 'origin/devlop-phyz' into devlop-phyz

---
 rsf-server/src/main/java/com/vincent/rsf/server/manager/service/impl/LocItemServiceImpl.java    |    1 
 rsf-open-api/src/main/java/com/vincent/rsf/openApi/entity/params/MissionTaskIssueParam.java     |    1 
 rsf-server/src/main/java/com/vincent/rsf/server/manager/schedules/TaskSchedules.java            |    1 
 rsf-server/src/main/java/com/vincent/rsf/server/manager/service/impl/WaveServiceImpl.java       |    1 
 rsf-server/src/main/java/com/vincent/rsf/server/api/entity/params/MissionTaskIssueParam.java    |    1 
 rsf-server/src/main/java/com/vincent/rsf/server/manager/service/impl/DeviceSiteServiceImpl.java |    2 
 rsf-server/src/main/java/com/vincent/rsf/server/manager/utils/LocManageUtil.java                |   23 +++++++
 rsf-server/src/main/resources/mapper/manager/AsnOrderMapper.xml                                 |    2 
 rsf-server/src/main/java/com/vincent/rsf/server/manager/controller/dto/OrderOutItemDto.java     |    2 
 rsf-server/src/main/java/com/vincent/rsf/server/manager/entity/Task.java                        |    2 
 rsf-open-api/src/main/java/com/vincent/rsf/openApi/service/impl/WmsWcsServiceImpl.java          |    5 +
 rsf-server/src/main/java/com/vincent/rsf/server/manager/schedules/TaskMissionSchedules.java     |  112 +++++++++++++++++++++++++++++++++++--
 rsf-server/src/main/java/com/vincent/rsf/server/manager/controller/params/LocToTaskParams.java  |    5 +
 13 files changed, 146 insertions(+), 12 deletions(-)

diff --git a/rsf-open-api/src/main/java/com/vincent/rsf/openApi/entity/params/MissionTaskIssueParam.java b/rsf-open-api/src/main/java/com/vincent/rsf/openApi/entity/params/MissionTaskIssueParam.java
index 60d0b22..5f835df 100644
--- a/rsf-open-api/src/main/java/com/vincent/rsf/openApi/entity/params/MissionTaskIssueParam.java
+++ b/rsf-open-api/src/main/java/com/vincent/rsf/openApi/entity/params/MissionTaskIssueParam.java
@@ -17,6 +17,7 @@
     private String locNo;//鐩爣搴撲綅
     private String sourcelocNo;//婧愬簱浣�
     private String staNo;//鐩爣绔欑偣
+    private String staNoArea;//鐩爣绔欑偣鍖哄煙
     private String sourcestaNo;//婧愮珯鐐�
 
     /*
diff --git a/rsf-open-api/src/main/java/com/vincent/rsf/openApi/service/impl/WmsWcsServiceImpl.java b/rsf-open-api/src/main/java/com/vincent/rsf/openApi/service/impl/WmsWcsServiceImpl.java
index 3b307d9..defcfca 100644
--- a/rsf-open-api/src/main/java/com/vincent/rsf/openApi/service/impl/WmsWcsServiceImpl.java
+++ b/rsf-open-api/src/main/java/com/vincent/rsf/openApi/service/impl/WmsWcsServiceImpl.java
@@ -6,6 +6,7 @@
 import com.fasterxml.jackson.databind.ObjectMapper;
 import com.fasterxml.jackson.databind.cfg.CoercionAction;
 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.openApi.config.PlatformProperties;
 import com.vincent.rsf.openApi.entity.Loc;
@@ -109,8 +110,8 @@
                 String souLoc = split[2]+"-"+split[3]+"-"+split[4];
                 missionWcsTaskIssueParam.setLocNo(souLoc);
                 missionWcsTaskIssueParam.setTaskPri(param.getTaskPri());
-                missionWcsTaskIssueParam.setStaNo(Integer.parseInt(param.getStaNo()));//鐩爣绔�
-                missionWcsTaskIssueParam.setOutArea("");//鐩爣鍖哄煙
+                missionWcsTaskIssueParam.setStaNo(Cools.isEmpty(param.getStaNoArea())? Integer.parseInt(param.getStaNo()):null);//鐩爣绔�
+                missionWcsTaskIssueParam.setOutArea(param.getStaNoArea());//鐩爣鍖哄煙
                 missionWcsTaskIssueParam.setBatch("");//鍑哄簱鎵规鍙�
                 missionWcsTaskIssueParam.setBatchSeq(1);//鍑哄簱椤哄簭鍙�
             } else if (param.getType().equals(TaskTypeEnum.TASK_TYPE_ENUM_TRANSFER.code)){
diff --git a/rsf-server/src/main/java/com/vincent/rsf/server/api/entity/params/MissionTaskIssueParam.java b/rsf-server/src/main/java/com/vincent/rsf/server/api/entity/params/MissionTaskIssueParam.java
index 79fc79e..431cac4 100644
--- a/rsf-server/src/main/java/com/vincent/rsf/server/api/entity/params/MissionTaskIssueParam.java
+++ b/rsf-server/src/main/java/com/vincent/rsf/server/api/entity/params/MissionTaskIssueParam.java
@@ -24,6 +24,7 @@
     private String locNo;//鐩爣搴撲綅
     private String sourcelocNo;//婧愬簱浣�
     private String staNo;//鐩爣绔欑偣
+    private String staNoArea;//鐩爣绔欑偣鍖哄煙
     private String sourcestaNo;//婧愮珯鐐�
 
     /*
diff --git a/rsf-server/src/main/java/com/vincent/rsf/server/manager/controller/dto/OrderOutItemDto.java b/rsf-server/src/main/java/com/vincent/rsf/server/manager/controller/dto/OrderOutItemDto.java
index 222212d..24be909 100644
--- a/rsf-server/src/main/java/com/vincent/rsf/server/manager/controller/dto/OrderOutItemDto.java
+++ b/rsf-server/src/main/java/com/vincent/rsf/server/manager/controller/dto/OrderOutItemDto.java
@@ -26,6 +26,8 @@
     private List<staListDto> staNos;
     private List<String> targSiteAreaList;
 
+    private String targSiteAreaNow;
+
     private String siteNo;
 
     private String sourceId;
diff --git a/rsf-server/src/main/java/com/vincent/rsf/server/manager/controller/params/LocToTaskParams.java b/rsf-server/src/main/java/com/vincent/rsf/server/manager/controller/params/LocToTaskParams.java
index 98f5652..d094655 100644
--- a/rsf-server/src/main/java/com/vincent/rsf/server/manager/controller/params/LocToTaskParams.java
+++ b/rsf-server/src/main/java/com/vincent/rsf/server/manager/controller/params/LocToTaskParams.java
@@ -35,6 +35,9 @@
     @ApiModelProperty("澶囨敞")
     private String memo;
 
-    @ApiModelProperty("鐩爣鍖哄煙闆嗗悎")
+    @ApiModelProperty("鐩爣鍖哄煙ID闆嗗悎")
     private List<String> targSiteAreaList;
+
+    @ApiModelProperty("褰撳墠鐩爣鍖哄煙")
+    private String targSiteAreaNow;
 }
diff --git a/rsf-server/src/main/java/com/vincent/rsf/server/manager/entity/Task.java b/rsf-server/src/main/java/com/vincent/rsf/server/manager/entity/Task.java
index 82061e7..f59751d 100644
--- a/rsf-server/src/main/java/com/vincent/rsf/server/manager/entity/Task.java
+++ b/rsf-server/src/main/java/com/vincent/rsf/server/manager/entity/Task.java
@@ -216,6 +216,8 @@
 
     private String targLocArea;
 
+    private String targSiteAreaNow;
+
     public Task() {}
 
     public Task(String taskCode,Integer taskStatus,Integer taskType,String orgLoc,String targLoc,String barcode,String robotCode,Short exceStatus,String expDesc,Integer sort,String expCode,Date startTime,Date endTime,Integer status,Integer deleted,Integer tenantId,Long createBy,Date createTime,Long updateBy,Date updateTime,String memo) {
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 a206dfa..e6f0307 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
@@ -3,12 +3,16 @@
 import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
 import com.vincent.rsf.framework.common.Cools;
 import com.vincent.rsf.framework.common.SnowflakeIdWorker;
-import com.vincent.rsf.server.manager.entity.Loc;
-import com.vincent.rsf.server.manager.entity.Task;
+import com.vincent.rsf.framework.exception.CoolException;
+import com.vincent.rsf.server.manager.entity.*;
+import com.vincent.rsf.server.manager.enums.LocStsType;
 import com.vincent.rsf.server.manager.enums.TaskStsType;
 import com.vincent.rsf.server.manager.enums.TaskType;
 import com.vincent.rsf.server.manager.service.LocService;
 import com.vincent.rsf.server.manager.service.TaskService;
+import com.vincent.rsf.server.manager.service.impl.BasStationAreaServiceImpl;
+import com.vincent.rsf.server.manager.service.impl.BasStationServiceImpl;
+import com.vincent.rsf.server.manager.service.impl.DeviceSiteServiceImpl;
 import com.vincent.rsf.server.system.constant.GlobalConfigCode;
 import com.vincent.rsf.server.system.entity.*;
 import com.vincent.rsf.server.system.service.ConfigService;
@@ -25,6 +29,7 @@
 import java.util.ArrayList;
 import java.util.List;
 import java.util.Objects;
+import java.util.concurrent.ConcurrentHashMap;
 
 /**
  * @author Munch D. Luffy
@@ -63,6 +68,12 @@
     private FlowInstanceServiceImpl flowInstanceService;
     @Autowired
     private FlowStepInstanceServiceImpl flowStepInstanceService;
+    @Autowired
+    private BasStationAreaServiceImpl basStationAreaService;
+    @Autowired
+    private DeviceSiteServiceImpl deviceSiteService;
+    @Autowired
+    private BasStationServiceImpl basStationService;
 
     /**
      * @author Munch D. Luffy
@@ -82,6 +93,8 @@
             return;
         }
         taskList.forEach(task -> {
+            boolean endSign = true;
+            boolean endSignUp = false;
             String sou = null;
             String end = null;
             if (task.getTaskType().equals(TaskType.TASK_TYPE_IN.type)
@@ -97,9 +110,18 @@
                     || task.getTaskType().equals(TaskType.TASK_TYPE_MERGE_OUT.type)
                     || task.getTaskType().equals(TaskType.TASK_TYPE_CHECK_OUT.type)
                     || task.getTaskType().equals(TaskType.TASK_TYPE_EMPTY_OUT.type)) {
+                endSignUp = true;
                 Loc loc = locService.getOne(new LambdaQueryWrapper<Loc>().eq(Loc::getCode, task.getOrgLoc()));
                 sou = loc.getAreaId().toString();
                 end = task.getTargSite();
+
+                BasStation basStation = basStationService.getOne(new LambdaQueryWrapper<BasStation>()
+                        .eq(BasStation::getStationName, end)
+                        .eq(BasStation::getUseStatus, LocStsType.LOC_STS_TYPE_O.type)
+                );
+                if (Cools.isEmpty(basStation)) {
+                    endSign = false;
+                }
             } 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();
@@ -111,7 +133,7 @@
                 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()) {
+            if (Objects.isNull(taskPathTemplateMergeList) || taskPathTemplateMergeList.isEmpty() || !endSign) {
                 List<TaskPathTemplateMerge> list = taskPathTemplateMergeService.list(new LambdaQueryWrapper<TaskPathTemplateMerge>().eq(TaskPathTemplateMerge::getStepSize,1));
                 if (!Cools.isEmpty(list)) {
                     List<String[]> stationList = new ArrayList<>();
@@ -119,7 +141,7 @@
                         stationList.add(taskPathTemplate.route());
                     });
                     List<Long> longs = RouteWmsStepFlow.routeGet(stationList, sou, end);
-                    if (longs != null && !longs.isEmpty()) {
+                    if (endSign && longs != null && !longs.isEmpty()) {
                         TaskPathTemplateMerge taskPathTemplateMerge = new TaskPathTemplateMerge();
                         taskPathTemplateMerge.setTemplateCode(sou+"===>"+end);
                         taskPathTemplateMerge.setTemplateName(sou+"===>"+end);
@@ -133,12 +155,76 @@
                         taskPathTemplateMerge.setConditionExpression(longList);
                         taskPathTemplateMerge.setStepSize(longList.size());
                         taskPathTemplateMergeService.save(taskPathTemplateMerge);
+                    } 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)
+                                || task.getTaskType().equals(TaskType.TASK_TYPE_CHECK_OUT.type)
+                                || task.getTaskType().equals(TaskType.TASK_TYPE_EMPTY_OUT.type)) {//鍑哄簱
+                            //娌℃湁璺緞 杩涘叆搴撳尯绛涢�夌珯鐐�
+                            List<String> targSiteArea = task.getTargSiteArea();
+                            //鎻愬彇鍑烘墍鏈夌珯鐐�
+//                            List<String> siteList = new ArrayList<>();
+                            ConcurrentHashMap<String,List<String>> siteList = new ConcurrentHashMap<>();
+                            //绛涢�夊嚭瀛樺湪璺緞鐨勭珯鐐�
+                            List<String[]> siteListRoute = new ArrayList<>();
+                            //绛涢�夊彲鏇挎崲閫夐」
+                            List<String> siteListUp = new ArrayList<>();
+                            if (targSiteArea != null && !targSiteArea.isEmpty()) {
+                                for (String areaId : targSiteArea) {
+                                    BasStationArea basStationArea = basStationAreaService.getById(Long.parseLong(areaId));
+                                    if (basStationArea == null || basStationArea.getStationAlias() == null || basStationArea.getStationAlias().isEmpty()) {
+                                        continue;
+                                    }
+                                    siteList.put(basStationArea.getStationAreaId(), basStationArea.getStationAlias());
+//                                    siteList.addAll(basStationArea.getStationAlias());
+                                }
+                                if (!siteList.isEmpty()) {
+                                    //鏌ヨ绔欑偣璺緞
+                                    for (ConcurrentHashMap.Entry<String, List<String>> entry : siteList.entrySet()) {
+                                        String stationAreaId = entry.getKey();          // 鑾峰彇String閿�
+                                        List<String> valueList = entry.getValue();  // 鑾峰彇瀵瑰簲鐨凩ist<String>
+                                        for (String value : valueList) {
+                                            List<Long> routeGet = RouteWmsStepFlow.routeGet(stationList, sou, value);
+                                            if (routeGet!=null && !routeGet.isEmpty()){
+                                                siteListRoute.add(new String[]{stationAreaId, value});
+                                            }
+                                        }
+                                    }
+                                    Loc loc = locService.getOne(new LambdaQueryWrapper<Loc>().eq(Loc::getCode, task.getOrgLoc()));
+                                    //鏌ヨ绔欑偣閰嶇疆
+                                    if (!siteListRoute.isEmpty()) {
+                                        for (String[] siteArray : siteListRoute) {
+                                            //鍑哄簱璺緞鎺掓煡
+                                            DeviceSite deviceSite = deviceSiteService.getOne(new LambdaQueryWrapper<DeviceSite>()
+                                                    .eq(DeviceSite::getSite, siteArray[1])
+                                                    .eq(!Objects.isNull(loc.getChannel()),DeviceSite::getChannel, loc.getChannel())
+                                                    .eq(DeviceSite::getType, task.getTaskType()).last("limit 1"),false);
+                                            if (!Objects.isNull(deviceSite)) {
+                                                BasStation basStation = basStationService.getOne(new LambdaQueryWrapper<BasStation>()
+                                                        .eq(BasStation::getStationName, siteArray[1])
+                                                        .eq(BasStation::getUseStatus, LocStsType.LOC_STS_TYPE_O.type)
+                                                );
+                                                if (Cools.isEmpty(basStation) || !basStation.getUseStatus().equals(LocStsType.LOC_STS_TYPE_O.type)) {
+                                                    continue;
+                                                }
+                                                task.setTargSiteAreaNow(siteArray[0]);
+                                                task.setTargSite(siteArray[1]);
+                                                taskService.updateById(task);
+                                                break;
+                                            }
+                                        }
+                                    }
+                                }
+                            }
+                        }
+
                     }
 //                    System.out.println("浠诲姟锛�"+task.getTaskCode()+"鏌ヨ姝ュ簭涓猴細"+longs);
                 }
             } else {
                 //鐢熸垚瀹為檯璺緞
-                boolean actualPath = generateActualPath(task, taskPathTemplateMergeList.get(0));
+                boolean actualPath = generateActualPath(task, taskPathTemplateMergeList.get(0),endSignUp);
                 if (!actualPath) {
                     log.error("鐢熸垚瀹為檯璺緞澶辫触");
                 }
@@ -147,7 +233,7 @@
     }
 
 
-    public boolean generateActualPath(Task task,TaskPathTemplateMerge taskPathTemplateMerge) {
+    public boolean generateActualPath(Task task,TaskPathTemplateMerge taskPathTemplateMerge,boolean endSignUp) {
         boolean actualPath = false;
         List<Integer> conditionExpression = taskPathTemplateMerge.getConditionExpression();
         Integer i = 0;//it椤哄簭
@@ -257,6 +343,20 @@
             }
         }
         task.setDeviceSiteId(taskInstance.getId());
+
+        if (endSignUp){
+            BasStation basStation = basStationService.getOne(new LambdaQueryWrapper<BasStation>().eq(BasStation::getStationName, task.getTargSite()));
+            if (basStation == null){
+                return false;
+            }
+            if (!basStation.getType().equals(0)){
+                basStation.setUseStatus(LocStsType.LOC_STS_TYPE_S.type);
+                basStationService.updateById(basStation);
+            }
+        }
+
+
+
         taskService.updateById(task);
         return actualPath;
     }
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 5ea60ab..817e4a4 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
@@ -286,6 +286,7 @@
                     missionTaskIssueParam.setTaskPri(task.getSort());
                     missionTaskIssueParam.setBarcode(task.getBarcode());
                     missionTaskIssueParam.setTaskNo(task.getTaskCode());
+                    missionTaskIssueParam.setStaNoArea(task.getTargSiteAreaNow());
                     if (missionTaskIssueParam.getType().equals(RcsTaskType.RCS_TASK_TYPE_ENUM_IN.type) && endSign){
                         missionTaskIssueParam.setLocNo(task.getTargLoc());
                         missionTaskIssueParam.setSourcestaNo(missionTaskIssueParam.getSourcestaNo());
diff --git a/rsf-server/src/main/java/com/vincent/rsf/server/manager/service/impl/DeviceSiteServiceImpl.java b/rsf-server/src/main/java/com/vincent/rsf/server/manager/service/impl/DeviceSiteServiceImpl.java
index 73aa5a7..765774a 100644
--- a/rsf-server/src/main/java/com/vincent/rsf/server/manager/service/impl/DeviceSiteServiceImpl.java
+++ b/rsf-server/src/main/java/com/vincent/rsf/server/manager/service/impl/DeviceSiteServiceImpl.java
@@ -12,6 +12,7 @@
 import org.apache.commons.lang3.StringUtils;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.stereotype.Service;
+import org.springframework.transaction.annotation.Transactional;
 
 import java.util.ArrayList;
 import java.util.Arrays;
@@ -31,6 +32,7 @@
      * @return
      */
     @Override
+    @Transactional(rollbackFor = Exception.class)
     public boolean initSites(DeviceSiteParame param) {
         if (param.getFlagInit() == 1) {
             List<DeviceSite> list = this.list(new LambdaQueryWrapper<DeviceSite>().select(DeviceSite::getId).last("limit 1"));
diff --git a/rsf-server/src/main/java/com/vincent/rsf/server/manager/service/impl/LocItemServiceImpl.java b/rsf-server/src/main/java/com/vincent/rsf/server/manager/service/impl/LocItemServiceImpl.java
index 264c649..08e424b 100644
--- a/rsf-server/src/main/java/com/vincent/rsf/server/manager/service/impl/LocItemServiceImpl.java
+++ b/rsf-server/src/main/java/com/vincent/rsf/server/manager/service/impl/LocItemServiceImpl.java
@@ -195,6 +195,7 @@
                     .setTaskStatus(taskStatus)
                     .setBarcode(loc.getBarcode())
                     .setTargSiteArea(map.getTargSiteAreaList())
+                    .setTargSiteAreaNow(map.getTargSiteAreaNow())
                     .setMemo(map.getMemo());
 
             List<LocItem> locItems = this.list(new LambdaQueryWrapper<LocItem>().eq(LocItem::getLocId, key));
diff --git a/rsf-server/src/main/java/com/vincent/rsf/server/manager/service/impl/WaveServiceImpl.java b/rsf-server/src/main/java/com/vincent/rsf/server/manager/service/impl/WaveServiceImpl.java
index 11d03b4..8048e36 100644
--- a/rsf-server/src/main/java/com/vincent/rsf/server/manager/service/impl/WaveServiceImpl.java
+++ b/rsf-server/src/main/java/com/vincent/rsf/server/manager/service/impl/WaveServiceImpl.java
@@ -304,6 +304,7 @@
             taskParams.setItems(itemDto.getLocItemList())
                     .setSiteNo(itemDto.getSiteNo())
                     .setTargSiteAreaList(itemDto.getTargSiteAreaList())
+                    .setTargSiteAreaNow(itemDto.getTargSiteAreaNow())
                     .setType(Constants.TASK_TYPE_WAVE_OUT_STOCK)
                     .setSourceId(wave.getId())
                     .setTarLoc(loc.getCode());
diff --git a/rsf-server/src/main/java/com/vincent/rsf/server/manager/utils/LocManageUtil.java b/rsf-server/src/main/java/com/vincent/rsf/server/manager/utils/LocManageUtil.java
index 92b62c8..ee01b4f 100644
--- a/rsf-server/src/main/java/com/vincent/rsf/server/manager/utils/LocManageUtil.java
+++ b/rsf-server/src/main/java/com/vincent/rsf/server/manager/utils/LocManageUtil.java
@@ -201,7 +201,6 @@
                     locItems = LocManageUtil.getFirstInFirstOutItemList(item.getMatnrCode(), item.getBatch(), item.getAnfme());
                 }
             }
-
             for (LocItem locItem : locItems) {
                 Loc loc = locService.getById(locItem.getLocId());
                 List<LocItem> itemList = locItemService.list(new LambdaQueryWrapper<LocItem>().eq(LocItem::getLocId, loc.getId()));
@@ -244,9 +243,18 @@
                                 .apply("JSON_CONTAINS(container_type, {0}) = 1", containerType.getContainerType().toString())//瀹瑰櫒绫诲瀷
                                 .eq(BasStationArea::getDeleted, 0));
 //                                .apply("JSON_CONTAINS(station_alias, '\"{0}\"') = 1", null)//鍖哄煙鍖呭惈绔欑偣闆�
+                        if (basStationAreas.isEmpty()){
+                            throw new CoolException("鏈壘鍒扮鍚堟潯浠剁珯鐐癸紒锛侊紒璇锋鏌ュ簱鍖洪厤缃紒锛侊紒");
+                        }
                         List<String> targSiteAreaList = new ArrayList<>();
                         for (BasStationArea basStationArea : basStationAreas) {
-                            targSiteAreaList.add(basStationArea.getStationAreaId());
+                            if (basStationArea.getStationAlias().isEmpty()){
+                                continue;
+                            }
+                            targSiteAreaList.add(basStationArea.getId().toString());
+                        }
+                        if (targSiteAreaList.isEmpty()){
+                            throw new CoolException("鏈壘鍒扮鍚堟潯浠剁珯鐐癸紒锛侊紒璇锋鏌ュ簱鍖洪厤缃紒锛侊紒");
                         }
                         int count = 0;
                         for (BasStationArea basStationArea : basStationAreas) {
@@ -266,6 +274,10 @@
 //                                Set<String> stationSet = deviceSites.stream().map(DeviceSite::getSite).collect(Collectors.toSet());
                                 //宸蹭娇鐢ㄧ珯鐐�
                                 Set<String> stas = stations.stream().map(BasStation::getStationName).collect(Collectors.toSet());
+                                if (stas.size() == maps.size()) {
+                                    stations = new ArrayList<>();
+                                    stas = stations.stream().map(BasStation::getStationName).collect(Collectors.toSet());
+                                }
                                 BasStationService basStationService = SpringUtils.getBean(BasStationService.class);
                                 BasStation basStation = basStationService.getOne(new LambdaQueryWrapper<BasStation>()
                                         .eq(BasStation::getUseStatus, LocStsType.LOC_STS_TYPE_O.type)
@@ -278,14 +290,21 @@
 
                                 if (count == basStationAreas.size()) {
                                     if (!Objects.isNull(basStation)) {
+                                        orderOutItemDto.setTargSiteAreaNow(basStationArea.getStationAreaId());
                                         orderOutItemDto.setSiteNo(basStation.getStationName());
 //                                        throw new CoolException("绔欓粸涓嶅瓨鍦紒锛�");
+                                    } else if (!stas.isEmpty()) {
+                                        orderOutItemDto.setTargSiteAreaNow(basStationArea.getStationAreaId());
+                                        orderOutItemDto.setSiteNo(basStationArea.getStationAlias().get(0));
+                                    } else {
+                                        throw new CoolException("鏈壘鍒扮鍚堟潯浠剁珯鐐癸紒锛侊紒璇锋鏌ュ簱鍖烘垨鑰呰矾寰勯厤缃紒锛侊紒");
                                     }
                                 } else {
                                     if (Objects.isNull(basStation)) {
                                         continue;
 //                                        throw new CoolException("绔欓粸涓嶅瓨鍦紒锛�");
                                     }
+                                    orderOutItemDto.setTargSiteAreaNow(basStationArea.getStationAreaId());
                                     orderOutItemDto.setSiteNo(basStation.getStationName());
                                 }
 
diff --git a/rsf-server/src/main/resources/mapper/manager/AsnOrderMapper.xml b/rsf-server/src/main/resources/mapper/manager/AsnOrderMapper.xml
index d839a40..01399ca 100644
--- a/rsf-server/src/main/resources/mapper/manager/AsnOrderMapper.xml
+++ b/rsf-server/src/main/resources/mapper/manager/AsnOrderMapper.xml
@@ -29,7 +29,7 @@
                     `day_time` BETWEEN ( CURDATE() - INTERVAL 1 MONTH )
                         AND CURDATE()
                 GROUP BY
-                    `day_time`, task_type
+                    `day_time`, task_type,id
             ) t
         ${ew.customSqlSegment}
     </select>

--
Gitblit v1.9.1