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 | 41 ++++++++++++++++++++++++++++++++++++-----
1 files changed, 36 insertions(+), 5 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 4c56377..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;
@@ -65,10 +66,10 @@
private WaitPakinItemService waitPakinItemService;
/**
- * 瀹氭椂浠诲姟1锛氭寚瀹氱墿鏂欐湁搴撳瓨鏃惰嚜鍔ㄧ敓鎴愬叏鐗堝嚭搴撳崟锛堟瘡 2 鍒嗛挓锛�
+ * 瀹氭椂浠诲姟1锛氭寚瀹氱墿鏂欐湁搴撳瓨鏃惰嚜鍔ㄧ敓鎴愬叏鐗堝嚭搴撳崟
* 閰嶇疆锛欰UTO_FULL_OUT_MATNR_CODE锛堢墿鏂欑紪鐮侊級銆丄UTO_FULL_OUT_ENABLED锛坱rue 鍚敤锛�
*/
- @Scheduled(cron = "0 0/2 * * * ?")
+ @Scheduled(cron = "0/35 * * * * ?")
@Transactional(rollbackFor = Exception.class)
public void autoCreateFullOutOrder() {
Config enabledConfig = configService.getOne(new LambdaQueryWrapper<Config>().eq(Config::getFlag, GlobalConfigCode.AUTO_FULL_OUT_ENABLED));
@@ -227,11 +228,41 @@
}
/**
- * 瀹氭椂浠诲姟3锛氭棤璁㈠崟缁勬墭 + 鑷姩鐢熸垚鍏ュ簱鍗曪紙浠呴拡瀵归厤缃墿鏂欙紝姣� 2 鍒嗛挓锛�
+ * 瀹氭椂浠诲姟锛氶厤缃墿鏂欏嚭搴撲换鍔″湪 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锛堟暟閲忥級
*/
- @Scheduled(cron = "0 0/2 * * * ?")
+// @Scheduled(cron = "0/35 * * * * ?")
@Transactional(rollbackFor = Exception.class)
public void autoPakinOnInbound() {
Config enabledConfig = configService.getOne(new LambdaQueryWrapper<Config>().eq(Config::getFlag, GlobalConfigCode.AUTO_PAKIN_ON_ASN_ENABLED));
@@ -288,7 +319,7 @@
waitPakin = mobileService.mergeItems(param, SYSTEM_USER_ID);
} catch (Exception e) {
log.warn("[鏃犺鍗曡嚜鍔ㄧ粍鎵榏 缁勬墭澶辫触: {}", e.getMessage());
- return;
+ throw e; // 閲嶆柊鎶涘嚭锛岄伩鍏嶄簨鍔¤鏍囪 rollback-only 鍚庝粛灏濊瘯鎻愪氦瀵艰嚧 UnexpectedRollbackException
}
// 2锛夎嚜鍔ㄧ敓鎴愬叆搴撳崟锛堜竴鏉℃槑缁嗭紝閰嶇疆鐗╂枡 + 鏁伴噺锛�
String ruleCode = SerialRuleUtils.generateRuleCode(SerialRuleCode.SYS_ASN_ORDER, null);
--
Gitblit v1.9.1