From b21ca070526ec10fbea98e29135751776dc31059 Mon Sep 17 00:00:00 2001
From: cl <1442464845@qq.com>
Date: 星期四, 30 四月 2026 10:09:47 +0800
Subject: [PATCH] 增加一种入库单类型

---
 rsf-server/src/main/java/com/vincent/rsf/server/manager/service/impl/OutStockServiceImpl.java |   30 +++++++++++++++++++-----------
 1 files changed, 19 insertions(+), 11 deletions(-)

diff --git a/rsf-server/src/main/java/com/vincent/rsf/server/manager/service/impl/OutStockServiceImpl.java b/rsf-server/src/main/java/com/vincent/rsf/server/manager/service/impl/OutStockServiceImpl.java
index deec95f..20d82fd 100644
--- a/rsf-server/src/main/java/com/vincent/rsf/server/manager/service/impl/OutStockServiceImpl.java
+++ b/rsf-server/src/main/java/com/vincent/rsf/server/manager/service/impl/OutStockServiceImpl.java
@@ -94,6 +94,8 @@
     @Autowired
     private LocService locService;
     @Autowired
+    private BasStationService basStationService;
+    @Autowired
     private WaveOrderRelaServiceImpl waveOrderRelaService;
     @Autowired
     private TaskItemService taskItemService;
@@ -265,7 +267,7 @@
         }
         WkOrder order = this.getById(id);
         if (Objects.isNull(order)) {
-            throw new CoolException("鍗曟嵁涓嶅瓨鍦紒锛�");
+            return R.ok("鍗曟嵁宸蹭笉瀛樺湪鎴栧凡鍙栨秷");
         }
         if (!order.getExceStatus().equals(AsnExceStatus.OUT_STOCK_STATUS_TASK_INIT.val)) {
             throw new CoolException("褰撳墠鍗曟嵁鐘舵�佷负" + AsnExceStatus.getExceStatus(order.getExceStatus()) + "锛� 涓嶅彲鎵ц鍙栨秷鎿嶄綔锛侊紒");
@@ -295,10 +297,10 @@
         }
 
         if (!this.remove(new LambdaQueryWrapper<WkOrder>().eq(WkOrder::getId, id))) {
-            throw new CoolException("涓诲崟鍒犻櫎澶辫触锛侊紒");
+            return R.ok("鍗曟嵁宸蹭笉瀛樺湪鎴栧凡鍙栨秷");
         }
         outStockItemService.remove(new LambdaQueryWrapper<WkOrderItem>().eq(WkOrderItem::getOrderId, id));
-        return R.ok("鎿嶄綔鎴愬姛");
+        return R.ok("鍙栨秷鎴愬姛");
     }
 
     /**
@@ -777,7 +779,7 @@
                         throw new CoolException("鍑哄簱鍗曟嵁涓嶅瓨鍦紒锛�");
                     }
                     boolean isStockRevise = locItem.getWkType() != null
-                            && locItem.getWkType().equals(Short.parseShort(OrderWorkType.ORDER_WORK_TYPE_STOCK_REVISE.type));
+                            && Objects.equals(locItem.getWkType(), OrderWorkType.ORDER_WORK_TYPE_STOCK_REVISE.type);
                     if (isStockRevise) {
                         log.info("搴撳瓨璋冩暣浜х敓鐨勫簱瀛橈紝鑷姩鍒涘缓WkOrderItem - 鍑哄簱鍗旾D锛歿}锛岀墿鏂橧D锛歿}锛屾壒娆★細{}",
                                 outId, locItem.getMatnrId(), locItem.getBatch());
@@ -878,7 +880,14 @@
                 TaskType.TASK_TYPE_PICK_AGAIN_OUT.type);
         // 鍏堟煡鍏ㄩ儴鍐嶆寜 site 鍘婚噸锛岄伩鍏� GROUP BY 涓� only_full_group_by 鍐茬獊
         List<DeviceSite> all = deviceSiteService.list(new LambdaQueryWrapper<DeviceSite>().in(DeviceSite::getType, list));
+        Set<String> outAbleSites = basStationService.list(new LambdaQueryWrapper<BasStation>()
+                        .eq(BasStation::getOutAble, 1))
+                .stream()
+                .map(BasStation::getStationName)
+                .filter(StringUtils::isNotBlank)
+                .collect(Collectors.toSet());
         List<DeviceSite> sites = all.stream()
+                .filter(d -> outAbleSites.contains(d.getSite()))
                 .collect(Collectors.toMap(DeviceSite::getSite, d -> d, (a, b) -> a))
                 .values().stream()
                 .collect(Collectors.toList());
@@ -889,11 +898,13 @@
     @Transactional(rollbackFor = Exception.class)
     public R cancelOutOrderByItems(List<WkOrderItem> orderItems) {
         Map<Long, List<WkOrderItem>> listMap = orderItems.stream().collect(Collectors.groupingBy(WkOrderItem::getOrderId));
+        boolean anyProcessed = false;
         for (Long key : listMap.keySet()) {
             WkOrder order = this.getById(key);
             if (Objects.isNull(order)) {
-                throw new CoolException("鍗曟嵁涓嶅瓨鍦紒锛�");
+                continue;
             }
+            anyProcessed = true;
             List<WkOrderItem> items = listMap.get(key);
             if (!items.isEmpty()) {
                 for (WkOrderItem orderItem : items) {
@@ -916,14 +927,11 @@
             }
 
             if (!this.remove(new LambdaQueryWrapper<WkOrder>().eq(WkOrder::getId, key))) {
-                throw new CoolException("涓诲崟鍒犻櫎澶辫触锛侊紒");
+                continue;
             }
-            if (!outStockItemService.remove(new LambdaQueryWrapper<WkOrderItem>()
-                    .eq(WkOrderItem::getOrderId, key))) {
-                throw new CoolException("鍗曟嵁鏄庣粏鍒犻櫎澶辫触锛侊紒");
-            }
+            outStockItemService.remove(new LambdaQueryWrapper<WkOrderItem>().eq(WkOrderItem::getOrderId, key));
         }
-        return R.ok("鎿嶄綔鎴愬姛");
+        return R.ok(anyProcessed ? "鍙栨秷鎴愬姛" : "鍗曟嵁宸蹭笉瀛樺湪鎴栧凡鍙栨秷");
     }
 
 

--
Gitblit v1.9.1