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

---
 rsf-server/src/main/java/com/vincent/rsf/server/manager/service/impl/WaveServiceImpl.java |    4 ++--
 rsf-server/src/main/java/com/vincent/rsf/server/manager/utils/LocManageUtil.java          |   38 ++++++++++++++++++++++++++++++++++++--
 2 files changed, 38 insertions(+), 4 deletions(-)

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 8048e36..1f991ca 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
@@ -94,7 +94,7 @@
                         .setWaveId(item.getWaveId());
                 params.add(locParams);
             }
-            List<OrderOutItemDto> results = LocManageUtil.getOutOrderList(params, null);
+            List<OrderOutItemDto> results = LocManageUtil.getOutOrderList(params, null,waves.getStationId());
             generateOutTask(results, loginUserId, waves);
         } catch (Exception e) {
             log.error(e.getMessage());
@@ -161,7 +161,7 @@
                         .setWaveId(item.getWaveId());
                 params.add(locParams);
             }
-            List<OrderOutItemDto> results = LocManageUtil.getOutOrderList(params, waveRule);
+            List<OrderOutItemDto> results = LocManageUtil.getOutOrderList(params, waveRule,wave.getStationId());
             if (results.isEmpty()) {
                 wave.setUpdateBy(loginUserId).setUpdateTime(new Date());
                 if (wave.getAnfme().compareTo(wave.getWorkQty()) == 0) {
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 c96cda2..fcbc269 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
@@ -172,7 +172,7 @@
      * @param waveRule
      * @return
      */
-    public static List<OrderOutItemDto> getOutOrderList(List<WaveToLocParams> params, WaveRule waveRule) {
+    public static List<OrderOutItemDto> getOutOrderList(List<WaveToLocParams> params, WaveRule waveRule,String stationId) {
         LocService locService = SpringUtils.getBean(LocService.class);
         LocItemService locItemService = SpringUtils.getBean(LocItemService.class);
         DeviceSiteService deviceSiteService = SpringUtils.getBean(DeviceSiteService.class);
@@ -243,7 +243,7 @@
                                 .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()){
+                        if (!basStationAreas.isEmpty() && Cools.isEmpty(stationId)){
                             List<String> targSiteAreaList = new ArrayList<>();
                             for (BasStationArea basStationArea : basStationAreas) {
                                 if (basStationArea.getStationAliasStaNo().isEmpty()){
@@ -317,6 +317,40 @@
                                 issued = issued.subtract(new BigDecimal(locItem.getAnfme().toString()));
                                 break;
                             }
+                        } else if (!Cools.isEmpty(stationId)){
+                            BasStationService basStationService = SpringUtils.getBean(BasStationService.class);
+                            BasStation basStation = basStationService.getOne(new LambdaQueryWrapper<BasStation>().eq(BasStation::getStationName, stationId));
+                            if (Objects.isNull(basStation)) {
+                                throw new CoolException("缁戝畾绔欓粸涓嶅瓨鍦紒锛�");
+                            }
+                            List<DeviceSite> deviceSites = deviceSiteService.list(new LambdaQueryWrapper<DeviceSite>()
+                                    .eq(!Objects.isNull(loc.getChannel()), DeviceSite::getChannel, loc.getChannel())
+                                    .eq(!Objects.isNull(loc.getAreaId()), DeviceSite::getAreaIdStart, loc.getAreaId())
+                                    .eq( DeviceSite::getSite, stationId)
+                                    .eq(DeviceSite::getType, issued.doubleValue() >= locItem.getAnfme() && itemList.size() == 1 ? TaskType.TASK_TYPE_OUT.type : TaskType.TASK_TYPE_PICK_AGAIN_OUT.type)
+                            );
+                            if (!deviceSites.isEmpty()) {
+                                List<OrderOutItemDto.staListDto> maps = new ArrayList<>();
+                                for (DeviceSite sta : deviceSites) {
+                                    OrderOutItemDto.staListDto staListDto = new OrderOutItemDto.staListDto();
+                                    staListDto.setStaNo(sta.getSite());
+                                    staListDto.setStaName(sta.getSite());
+                                    maps.add(staListDto);
+                                }
+                                orderOutItemDto.setStaNos(maps);
+                                orderOutItemDto.setSiteNo(basStation.getStationName());
+                            } else {
+                                throw new CoolException("鏈壘鍒扮鍚堟潯浠剁珯鐐硅矾寰勶紒锛侊紒璇锋鏌ヨ矾寰勭鐞嗭紒锛侊紒");
+                            }
+
+                            orderOutItemDto.setSource(item.getItemId().toString())
+                                    .setTargSiteAreaList(new ArrayList<>())
+                                    .setSourceId(item.getWaveId().toString());
+                            list.add(orderOutItemDto);
+
+                            locList.add(loc);
+                            issued = issued.subtract(new BigDecimal(locItem.getAnfme().toString()));
+
                         } else {
                             List<DeviceSite> deviceSites = deviceSiteService.list(new LambdaQueryWrapper<DeviceSite>()
                                     .eq(!Objects.isNull(loc.getChannel()), DeviceSite::getChannel, loc.getChannel())

--
Gitblit v1.9.1