From f99e3966686d3891b814ff28d200b001fcdc8e1e Mon Sep 17 00:00:00 2001
From: chen.lin <1442464845@qq.com>
Date: 星期四, 05 二月 2026 12:54:26 +0800
Subject: [PATCH] 组托优化
---
rsf-server/src/main/java/com/vincent/rsf/server/manager/schedules/TaskSchedules.java | 42 ++++++++++++++++++++++++++++++------------
1 files changed, 30 insertions(+), 12 deletions(-)
diff --git a/rsf-server/src/main/java/com/vincent/rsf/server/manager/schedules/TaskSchedules.java b/rsf-server/src/main/java/com/vincent/rsf/server/manager/schedules/TaskSchedules.java
index b0239c1..cdabff1 100644
--- a/rsf-server/src/main/java/com/vincent/rsf/server/manager/schedules/TaskSchedules.java
+++ b/rsf-server/src/main/java/com/vincent/rsf/server/manager/schedules/TaskSchedules.java
@@ -8,7 +8,6 @@
import com.fasterxml.jackson.databind.cfg.CoercionAction;
import com.fasterxml.jackson.databind.cfg.CoercionInputShape;
import com.vincent.rsf.framework.common.Cools;
-import com.vincent.rsf.framework.common.DateUtils;
import com.vincent.rsf.framework.common.R;
import com.vincent.rsf.framework.exception.CoolException;
import com.vincent.rsf.server.api.config.RemotesInfoProperties;
@@ -252,6 +251,7 @@
@Scheduled(cron = "0/55 * * * * ? ")
@Transactional(rollbackFor = Exception.class)
public void pubTaskToWcs() {
+ log.info("瀹氭椂浠诲姟寮�濮嬫墽琛岋細浠诲姟涓嬪彂鍒癛CS");
Long loginUserId = SystemAuthUtils.getLoginUserId();
List<Integer> list = Arrays.asList(TaskType.TASK_TYPE_IN.type, TaskType.TASK_TYPE_OUT.type, TaskType.TASK_TYPE_LOC_MOVE.type, TaskType.TASK_TYPE_EMPITY_IN.type
, TaskType.TASK_TYPE_CHECK_IN.type, TaskType.TASK_TYPE_MERGE_IN.type, TaskType.TASK_TYPE_EMPITY_OUT.type, TaskType.TASK_TYPE_PICK_IN.type,
@@ -261,13 +261,16 @@
.in(Task::getTaskType, list)
.in(Task::getTaskStatus, integers)
.orderByDesc(Task::getSort));
+ log.info("鏌ヨ鍒板緟涓嬪彂浠诲姟鏁伴噺锛歿}", tasks.size());
if (tasks.isEmpty()) {
+ log.debug("娌℃湁寰呬笅鍙戠殑浠诲姟锛屽畾鏃朵换鍔$粨鏉�");
return;
}
Config config = configService.getOne(new LambdaQueryWrapper<Config>().eq(Config::getFlag, GlobalConfigCode.AUTO_RUN_CHECK_ORDERS));
if (!Objects.isNull(config) && !Objects.isNull(config.getVal())) {
if (Boolean.parseBoolean(config.getVal())) {
- return;
+ log.info("閰嶇疆椤笰UTO_RUN_CHECK_ORDERS涓簍rue锛岃烦杩囦换鍔′笅鍙�");
+ return;
}
}
// for (Task task : tasks) {
@@ -282,7 +285,9 @@
// }
// }
/**涓嬪彂鏅�氱珯鐐逛换鍔★紝鎶ラ敊鍥炴粴锛屼笉鍐嶅線涓嬫墽琛�*/
+ log.info("寮�濮嬩笅鍙憑}涓换鍔″埌RCS", tasks.size());
taskService.pubTaskToWcs(tasks);
+ log.info("瀹氭椂浠诲姟鎵ц瀹屾垚锛氫换鍔′笅鍙戝埌RCS");
}
/**
@@ -564,6 +569,8 @@
} else {
queryWrapper.in(Task::getTaskStatus, TaskStsType.UPDATED_IN.id, TaskStsType.UPDATED_OUT.id);
}
+ queryWrapper.last("ORDER BY RAND() LIMIT 1");
+
List<Task> tasks = taskService.list(queryWrapper);
if (tasks.isEmpty()) {
return;
@@ -611,19 +618,30 @@
if (wkOrders.isEmpty()) {
throw new CoolException("鍗曟嵁涓嶅瓨鍦紒锛�");
}
+
+ Config allowChang = configService.getOne(new LambdaQueryWrapper<Config>().eq(Config::getFlag, GlobalConfigCode.ALLOW_OVER_CHANGE));
+
wkOrders.forEach(order -> {
- //妫�鏌ュ崟鎹槸鍚﹀畬鎴�
- if (order.getAnfme().compareTo(order.getQty()) == 0) {
- order.setExceStatus(AsnExceStatus.OUT_STOCK_STATUS_TASK_DONE.val);
-// if (order.getType().equals(OrderType.ORDER_IN)) {
-// order.setExceStatus(AsnExceStatus.ASN_EXCE_STATUS_TASK_DONE.val);
-// } else {
-// order.setExceStatus(AsnExceStatus.OUT_STOCK_STATUS_TASK_DONE.val);
-// }
- if (!asnOrderService.updateById(order)) {
- throw new CoolException("鍑哄簱鍗曟洿鏂扮姸鎬佸け璐�");
+ //鍒ゆ柇鏄惁鍏佽瓒呮敹锛屼笉鍏佽瓒呮敹娣诲姞鎷掓敹鍒ゆ柇
+ if (!Objects.isNull(allowChang)) {
+ if (!Boolean.parseBoolean(allowChang.getVal())) {
+ if (order.getAnfme().compareTo(order.getQty()) == 0) {
+ order.setExceStatus(AsnExceStatus.OUT_STOCK_STATUS_TASK_DONE.val);
+ if (!asnOrderService.updateById(order)) {
+ throw new CoolException("鍑哄簱鍗曟洿鏂扮姸鎬佸け璐�");
+ }
+ }
+ } else {
+ if (order.getAnfme().compareTo(order.getQty()) <= 0) {
+ order.setExceStatus(AsnExceStatus.OUT_STOCK_STATUS_TASK_DONE.val);
+ if (!asnOrderService.updateById(order)) {
+ throw new CoolException("鍑哄簱鍗曟洿鏂扮姸鎬佸け璐�");
+ }
+ }
}
}
+ //妫�鏌ュ崟鎹槸鍚﹀畬鎴�
+
});
//鍑哄簱鍗曚笂鎶CS淇敼搴撲綅鐘舵��
try {
--
Gitblit v1.9.1