From fc634e5b62b85396196e2dd8f51bfe5ba7337522 Mon Sep 17 00:00:00 2001
From: cl <1442464845@qq.com>
Date: 星期二, 21 四月 2026 15:02:14 +0800
Subject: [PATCH] 站点优化

---
 rsf-server/src/main/java/com/vincent/rsf/server/manager/service/impl/TaskServiceImpl.java |   37 +++++++++++++++++++++++++++++++++++++
 1 files changed, 37 insertions(+), 0 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 1c5e211..c3f2963 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)) {
@@ -2082,6 +2090,15 @@
                     log.error("绔欑偣涓嶅瓨鍦紒锛佷换鍔$紪鐮侊細{}锛岀洰鏍囩珯鐐癸細{}", task.getTaskCode(), task.getTargSite());
                     continue;
                 }
+                // 鍑哄簱涓嬪彂鍓嶆牎楠岀珯鐐圭姸鎬佷笌鍑哄簱鑳藉姏
+                if (task.getTaskType() >= TaskType.TASK_TYPE_OUT.type) {
+                    if (!Integer.valueOf(1).equals(station.getStatus()) || !Integer.valueOf(1).equals(station.getOutAble())) {
+                        log.error("========== RCS浠诲姟涓嬪彂澶辫触 ==========");
+                        log.error("绔欑偣涓嶅彲鍑哄簱涓嬪彂锛侊紒浠诲姟缂栫爜锛歿}锛岀洰鏍囩珯鐐癸細{}锛岀珯鐐圭姸鎬�(status)锛歿}锛岃兘鍑�(outAble)锛歿}",
+                                task.getTaskCode(), task.getTargSite(), station.getStatus(), station.getOutAble());
+                        continue;
+                    }
+                }
             }
 
             /**鍒ゆ柇鏄惁鍏夌數绔欑偣锛岄潪鍏夊簵绔欑偣闇�绠℃帶绔欑偣鐘舵��*/
@@ -2800,9 +2817,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 +2870,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