From 0b2093ed5234b45c1c4d4c11052d9cda0caeaea8 Mon Sep 17 00:00:00 2001
From: chen.lin <1442464845@qq.com>
Date: 星期四, 05 三月 2026 13:53:36 +0800
Subject: [PATCH] RCS对接优化-自动拣货

---
 rsf-server/src/main/java/com/vincent/rsf/server/manager/schedules/MaterialAutoSchedules.java |   31 +++++++++++++++++++++++++++++++
 1 files changed, 31 insertions(+), 0 deletions(-)

diff --git a/rsf-server/src/main/java/com/vincent/rsf/server/manager/schedules/MaterialAutoSchedules.java b/rsf-server/src/main/java/com/vincent/rsf/server/manager/schedules/MaterialAutoSchedules.java
index 22385da..14cdc65 100644
--- a/rsf-server/src/main/java/com/vincent/rsf/server/manager/schedules/MaterialAutoSchedules.java
+++ b/rsf-server/src/main/java/com/vincent/rsf/server/manager/schedules/MaterialAutoSchedules.java
@@ -11,6 +11,7 @@
 import com.vincent.rsf.server.manager.enums.OrderType;
 import com.vincent.rsf.server.manager.enums.OrderWorkType;
 import com.vincent.rsf.server.manager.enums.TaskStsType;
+import com.vincent.rsf.server.manager.enums.TaskType;
 import com.vincent.rsf.server.manager.service.*;
 import com.vincent.rsf.server.manager.utils.LocManageUtil;
 import com.vincent.rsf.server.system.constant.GlobalConfigCode;
@@ -227,6 +228,36 @@
     }
 
     /**
+     * 瀹氭椂浠诲姟锛氶厤缃墿鏂欏嚭搴撲换鍔″湪 RCS 鍥炶皟涓� 199锛堝緟纭锛夊悗鑷姩鎷h揣瀹屾垚锛屾棤闇� PDA 蹇�熸嫞璐х‘璁ゅ嵆鍙洿鏂板簱瀛樸��
+     * 閰嶇疆锛欰UTO_FULL_OUT_MATNR_CODE锛堢墿鏂欑紪鐮侊紝閰嶇疆浜嗗垯瀵硅鐗╂枡鐢熸晥锛�
+     */
+    @Scheduled(cron = "0 0/1 * * * ?")
+    public void autoConfirmPickOut() {
+        Config matnrConfig = configService.getOne(new LambdaQueryWrapper<Config>().eq(Config::getFlag, GlobalConfigCode.AUTO_FULL_OUT_MATNR_CODE));
+        if (matnrConfig == null || StringUtils.isBlank(matnrConfig.getVal())) {
+            return;
+        }
+        String matnrCode = matnrConfig.getVal().trim();
+        List<Task> tasks = taskService.list(new LambdaQueryWrapper<Task>()
+                .eq(Task::getTaskType, TaskType.TASK_TYPE_OUT.type)
+                .eq(Task::getTaskStatus, TaskStsType.WAVE_SEED.id));
+        for (Task task : tasks) {
+            long cnt = taskItemService.count(new LambdaQueryWrapper<TaskItem>()
+                    .eq(TaskItem::getTaskId, task.getId())
+                    .eq(TaskItem::getMatnrCode, matnrCode));
+            if (cnt == 0) {
+                continue;
+            }
+            try {
+                taskService.completeFullOutStock(task.getId(), SYSTEM_USER_ID);
+                log.info("[鑷姩鎷h揣瀹屾垚] 浠诲姟: {}, 鏂欑: {}, 鐗╂枡: {} 宸茶嚜鍔ㄧ‘璁ゅ嚭搴撳苟鏇存柊搴撳瓨", task.getTaskCode(), task.getBarcode(), matnrCode);
+            } catch (Exception e) {
+                log.warn("[鑷姩鎷h揣瀹屾垚] 浠诲姟: {} 澶勭悊澶辫触: {}", task.getTaskCode(), e.getMessage());
+            }
+        }
+    }
+
+    /**
      * 瀹氭椂浠诲姟3锛氭棤璁㈠崟缁勬墭 + 鑷姩鐢熸垚鍏ュ簱鍗曪紙浠呴拡瀵归厤缃墿鏂欙紝锛�
      * 鍏堟寜閰嶇疆鐗╂枡涓庢暟閲忓仛鏃犺鍗曠粍鎵橈紝鍐嶇敓鎴愬叆搴撳崟骞跺叧鑱旂粍鎵樻槑缁嗭紝渚夸簬 RCS 鍏ュ簱闂幆銆�
      * 閰嶇疆锛欰UTO_PAKIN_ON_ASN_ENABLED锛坱rue锛夈�丄UTO_FULL_OUT_MATNR_CODE銆丄UTO_PAKIN_QTY锛堟暟閲忥級

--
Gitblit v1.9.1