From b8359b134e6618b154c79f4e24e700bc4affe424 Mon Sep 17 00:00:00 2001
From: cl <1442464845@qq.com>
Date: 星期五, 17 四月 2026 15:18:20 +0800
Subject: [PATCH] 视图兼容

---
 rsf-server/src/main/java/com/vincent/rsf/server/manager/service/impl/TaskServiceImpl.java |   44 ++++++++++++++++++++++++++++++++++++--------
 1 files changed, 36 insertions(+), 8 deletions(-)

diff --git a/rsf-server/src/main/java/com/vincent/rsf/server/manager/service/impl/TaskServiceImpl.java b/rsf-server/src/main/java/com/vincent/rsf/server/manager/service/impl/TaskServiceImpl.java
index 581c448..2090724 100644
--- a/rsf-server/src/main/java/com/vincent/rsf/server/manager/service/impl/TaskServiceImpl.java
+++ b/rsf-server/src/main/java/com/vincent/rsf/server/manager/service/impl/TaskServiceImpl.java
@@ -1169,6 +1169,14 @@
                         .set(Loc::getUseStatus, LocStsType.LOC_STS_TYPE_F.type))) {
                     throw new CoolException("婧愬簱浣嶇姸鎬佷慨鏀瑰け璐ワ紒锛�");
                 }
+            } else if (task.getTaskType().equals(TaskType.TASK_TYPE_EMPITY_OUT.type)) {
+                // 绌烘澘鍑哄簱锛氬缓鍗曟椂 D鈫扲锛屽彇娑堟仮澶嶄负绌烘澘 D
+                if (!locService.update(new LambdaUpdateWrapper<Loc>()
+                        .eq(Loc::getCode, task.getOrgLoc())
+                        .eq(Loc::getUseStatus, LocStsType.LOC_STS_TYPE_R.type)
+                        .set(Loc::getUseStatus, LocStsType.LOC_STS_TYPE_D.type))) {
+                    throw new CoolException("绌烘澘鍑哄簱婧愬簱浣嶆仮澶嶇┖鏉垮け璐ワ紒锛�");
+                }
             }
 
             if (!Objects.isNull(task.getWarehType()) && task.getWarehType().equals(WarehType.WAREHOUSE_TYPE_AGV.val)) {
@@ -1212,7 +1220,7 @@
                             throw new CoolException("搴撲綅淇℃伅淇敼澶辫触锛侊紒");
                         }
                         //鍑哄簱
-                        if (item.getWkType().equals(Short.parseShort(OrderWorkType.ORDER_WORK_TYPE_STOCK_OUT.type))) {
+                        if (Objects.equals(item.getWkType(), OrderWorkType.ORDER_WORK_TYPE_STOCK_OUT.type)) {
                             //搴撳瓨鍑哄簱
                         } else if (task.getResource().equals(TaskResouceType.TASK_RESOUCE_WAVE_TYPE.val)) {
                             WaveItem waveItem = waveItemService.getById(item.getSource());
@@ -1234,7 +1242,7 @@
                                 throw new CoolException("娉㈡鏇存柊澶辫触锛侊紒");
                             }
 
-                        } else if (item.getWkType().equals(Short.parseShort(OrderWorkType.ORDER_WORK_TYPE_OTHER.type))) {
+                        } else if (Objects.equals(item.getWkType(), OrderWorkType.ORDER_WORK_TYPE_OTHER.type)) {
                             //鍏跺畠鍑哄簱
 
                         } else {
@@ -1772,12 +1780,12 @@
         }
 
         //娣诲姞鍑哄叆搴撹褰曚俊鎭�
-        Map<Short, List<TaskItem>> listMap = taskItems.stream().collect(Collectors.groupingBy(TaskItem::getWkType));
+        Map<String, List<TaskItem>> listMap = taskItems.stream().collect(Collectors.groupingBy(TaskItem::getWkType));
         /***鑾峰彇搴撳瓨鍑哄簱鍊硷紝濡傛灉涓虹┖琛ㄧず姝e父鍗曟嵁鍑哄簱锛岄潪绌鸿〃鏄庢槸搴撳瓨鍑哄簱
          * 1. 搴撳瓨鍑哄簱娌℃湁鍗曟嵁淇℃伅锛屽崟鎹俊鎭粯璁や负绌�
          * 2. 鍗曟嵁搴撳瓨闇�閫氳繃娉㈡鏌ヨ鍘熷鍗曟嵁淇℃伅锛屽皢鍗曟嵁淇℃伅濉叆stock涓�
          * */
-        List<TaskItem> list = listMap.get(Short.parseShort(OrderWorkType.ORDER_WORK_TYPE_STOCK_OUT.type));
+        List<TaskItem> list = listMap.get(OrderWorkType.ORDER_WORK_TYPE_STOCK_OUT.type);
         if (Objects.isNull(list) || list.isEmpty()) {
             Map<Long, List<TaskItem>> maps = taskItems.stream().collect(Collectors.groupingBy(TaskItem::getSource));
             maps.keySet().forEach(key -> {
@@ -1949,13 +1957,13 @@
             if (!asnOrderService.updateById(wkOrder)) {
                 throw new CoolException("鍑哄簱鍗曟洿鏂板け璐ワ紒锛�");
             }
-            stock.setWkType(Short.parseShort(wkOrder.getWkType()))
+            stock.setWkType(wkOrder.getWkType())
                     .setType(OrderType.ORDER_OUT.type);
         } else if (!Objects.isNull(diffItem)) {
-            stock.setWkType(Short.parseShort(OrderWorkType.ORDER_WORK_TYPE_STOCK_CHECK.type))
+            stock.setWkType(OrderWorkType.ORDER_WORK_TYPE_STOCK_CHECK.type)
                     .setType(OrderType.ORDER_CHECK.type);
         } else {
-            stock.setWkType(Short.parseShort(OrderWorkType.ORDER_WORK_TYPE_STOCK_OUT.type))
+            stock.setWkType(OrderWorkType.ORDER_WORK_TYPE_STOCK_OUT.type)
                     .setMemo("搴撳瓨鍑哄簱锛屾棤鍗曟嵁淇℃伅锛侊紒")
                     .setType(OrderType.ORDER_OUT.type);
         }
@@ -2691,7 +2699,7 @@
      * @return
      */
     @Transactional(rollbackFor = Exception.class)
-    public synchronized void saveStockItems(List<TaskItem> items, Task task, Long id, String code, Short wkType, String type, Long loginUserId) {
+    public synchronized void saveStockItems(List<TaskItem> items, Task task, Long id, String code, String wkType, String type, Long loginUserId) {
         Stock stock = new Stock();
         String ruleCode = SerialRuleUtils.generateRuleCode(SerialRuleCode.SYS_STOCK_CODE, null);
         if (StringUtils.isBlank(ruleCode)) {
@@ -2800,9 +2808,21 @@
                     }
                 }
             }
+            // 鍑哄簱浠呬簯浠撴潵婧愬崟鎹弬涓庝笂鎶�
+            if (!isInbound) {
+                boolean hasCloudSource = taskItems.stream().anyMatch(this::hasCloudOrderRef);
+                if (!hasCloudSource) {
+//                    log.info("鍏�/鍑哄簱缁撴灉涓婃姤寰呭姙璺宠繃锛氭棤浜戜粨鏉ユ簮鍗曟嵁锛宼askId={}", task.getId());
+                    log.info("鍏�/鍑哄簱缁撴灉涓婃姤寰呭姙璺宠繃锛氭墜鍔ㄥ垱寤哄嚭搴撳崟鎹笉閫氱煡浜戜粨锛宼askId={}", task.getId());
+                    return;
+                }
+            }
             ObjectMapper om = new ObjectMapper();
             Date now = new Date();
             for (TaskItem item : taskItems) {
+                if (!isInbound && !hasCloudOrderRef(item)) {
+                    continue;
+                }
                 String orderNo = isInbound ? sourceToOrderNo.get(item.getSource()) : (item.getPlatOrderCode() != null ? item.getPlatOrderCode() : item.getPlatWorkCode());
                 if (orderNo == null && isInbound) {
                     orderNo = item.getPlatOrderCode() != null ? item.getPlatOrderCode() : item.getPlatWorkCode();
@@ -2841,4 +2861,12 @@
             log.warn("鍏�/鍑哄簱缁撴灉涓婃姤寰呭姙澶辫触锛宼askId={}锛宨sInbound={}锛歿}", task.getId(), isInbound, e.getMessage());
         }
     }
+
+    private boolean hasCloudOrderRef(TaskItem item) {
+        if (item == null) {
+            return false;
+        }
+        return StringUtils.isNotBlank(item.getPlatOrderCode())
+                || StringUtils.isNotBlank(item.getPlatWorkCode());
+    }
 }

--
Gitblit v1.9.1