From 291ee8ac048cba919628d60d5d6f2dcfc8e6bea0 Mon Sep 17 00:00:00 2001
From: chen.lin <1442464845@qq.com>
Date: 星期二, 10 二月 2026 16:15:31 +0800
Subject: [PATCH] 入库回复库位
---
rsf-server/src/main/java/com/vincent/rsf/server/api/service/impl/WcsServiceImpl.java | 342 ++++++++++++++++++++++++++++++++++++--------------------
1 files changed, 218 insertions(+), 124 deletions(-)
diff --git a/rsf-server/src/main/java/com/vincent/rsf/server/api/service/impl/WcsServiceImpl.java b/rsf-server/src/main/java/com/vincent/rsf/server/api/service/impl/WcsServiceImpl.java
index 266582d..f71d431 100644
--- a/rsf-server/src/main/java/com/vincent/rsf/server/api/service/impl/WcsServiceImpl.java
+++ b/rsf-server/src/main/java/com/vincent/rsf/server/api/service/impl/WcsServiceImpl.java
@@ -137,7 +137,7 @@
Task pickInTask = null;
// 妫�鏌ユ槸鍚︽湁鐩樼偣鍏ュ簱浠诲姟锛堥渶瑕佸悓鏃跺尮閰嶇鍙峰拰鎵瑰彿锛�
Task checkInTask = null;
-
+
if (!waitPakinItems.isEmpty()) {
// 鑾峰彇缁勬墭鏄庣粏涓殑鎵瑰彿鍒楄〃锛堝幓閲嶏級
List<String> batchList = waitPakinItems.stream()
@@ -146,69 +146,97 @@
.filter(batch -> !batch.trim().isEmpty())
.distinct()
.collect(Collectors.toList());
-
+
if (!batchList.isEmpty()) {
log.info("妫�鏌ョ粍鎵樻槑缁嗘壒鍙� - 鎵瑰彿鍒楄〃锛歿}", batchList);
-
- // 鏌ヨ鎷f枡鍏ュ簱浠诲姟锛氱鍙峰尮閰嶄笖鐘舵�佷负1鎴�2
+
+ // 鏌ヨ鎷f枡鍏ュ簱浠诲姟锛氱鍙峰尮閰嶄笖鐘舵�佷负1銆�2鎴�199锛圧CS鐢宠鍏ュ簱鏃讹紝鐘舵��199闇�瑕佸彉鎴�2锛�
List<Task> pickInTasks = taskService.list(new LambdaQueryWrapper<Task>()
.eq(Task::getBarcode, param.getBarcode())
.eq(Task::getTaskType, TaskType.TASK_TYPE_PICK_IN.type)
- .in(Task::getTaskStatus, TaskStsType.GENERATE_IN.id, TaskStsType.WCS_EXECUTE_IN.id)
+ .in(Task::getTaskStatus, TaskStsType.GENERATE_IN.id, TaskStsType.WAVE_SEED.id)
.orderByDesc(Task::getCreateTime));
-
+
// 閫氳繃TaskItem鐨刡atch瀛楁鍖归厤鎵瑰彿
for (Task task : pickInTasks) {
List<TaskItem> taskItems = taskItemService.list(new LambdaQueryWrapper<TaskItem>()
.eq(TaskItem::getTaskId, task.getId())
.in(TaskItem::getBatch, batchList));
-
+
if (!taskItems.isEmpty()) {
pickInTask = task;
- log.info("鎵惧埌鍖归厤鐨勬嫞鏂欏叆搴撲换鍔★紙绠卞彿鍜屾壒鍙烽兘鍖归厤锛� - 浠诲姟缂栫爜锛歿}锛屾壒鍙凤細{}",
+ log.info("鎵惧埌鍖归厤鐨勬嫞鏂欏叆搴撲换鍔★紙绠卞彿鍜屾壒鍙烽兘鍖归厤锛� - 浠诲姟缂栫爜锛歿}锛屾壒鍙凤細{}",
task.getTaskCode(), batchList);
break;
}
}
-
- // 鏌ヨ鐩樼偣鍏ュ簱浠诲姟锛氱鍙峰尮閰嶄笖鐘舵�佷负1鎴�2
+
+ // 鏌ヨ鐩樼偣鍏ュ簱浠诲姟锛氱鍙峰尮閰嶄笖鐘舵�佷负1銆�2鎴�199锛圧CS鐢宠鍏ュ簱鏃讹紝鐘舵��199闇�瑕佸彉鎴�2锛�
List<Task> checkInTasks = taskService.list(new LambdaQueryWrapper<Task>()
.eq(Task::getBarcode, param.getBarcode())
.eq(Task::getTaskType, TaskType.TASK_TYPE_CHECK_IN.type)
- .in(Task::getTaskStatus, TaskStsType.GENERATE_IN.id, TaskStsType.WCS_EXECUTE_IN.id)
+ .in(Task::getTaskStatus, TaskStsType.GENERATE_IN.id, TaskStsType.WCS_EXECUTE_IN.id, TaskStsType.WAVE_SEED.id)
.orderByDesc(Task::getCreateTime));
-
+
// 閫氳繃TaskItem鐨刡atch瀛楁鍖归厤鎵瑰彿
for (Task task : checkInTasks) {
List<TaskItem> taskItems = taskItemService.list(new LambdaQueryWrapper<TaskItem>()
.eq(TaskItem::getTaskId, task.getId())
.in(TaskItem::getBatch, batchList));
-
+
if (!taskItems.isEmpty()) {
checkInTask = task;
- log.info("鎵惧埌鍖归厤鐨勭洏鐐瑰叆搴撲换鍔★紙绠卞彿鍜屾壒鍙烽兘鍖归厤锛� - 浠诲姟缂栫爜锛歿}锛屾壒鍙凤細{}",
+ log.info("鎵惧埌鍖归厤鐨勭洏鐐瑰叆搴撲换鍔★紙绠卞彿鍜屾壒鍙烽兘鍖归厤锛� - 浠诲姟缂栫爜锛歿}锛屾壒鍙凤細{}",
task.getTaskCode(), batchList);
break;
}
}
}
}
-
+
// 濡傛灉鏄嫞鏂欏叆搴撲换鍔★紝鐩存帴杩斿洖锛屼笉鏍¢獙缁勬墭
if (Objects.nonNull(pickInTask)) {
- log.info("鎷f枡鍏ュ簱浠诲姟锛岀洿鎺ヨ繑鍥烇紝涓嶆牎楠岀粍鎵� - 浠诲姟缂栫爜锛歿}", pickInTask.getTaskCode());
-
+ log.info("鎷f枡鍏ュ簱浠诲姟锛岀洿鎺ヨ繑鍥烇紝涓嶆牎楠岀粍鎵� - 浠诲姟缂栫爜锛歿}锛屽綋鍓嶇姸鎬侊細{}",
+ pickInTask.getTaskCode(), pickInTask.getTaskStatus());
+
+ // 濡傛灉鐘舵�佹槸199锛孯CS鐢宠鍏ュ簱鏃跺簲璇ュ彉鎴愮姸鎬�2锛圧CS浠诲姟宸蹭笅鍙戯級
+ if (pickInTask.getTaskStatus().equals(TaskStsType.WAVE_SEED.id)) {
+ log.info("鎷f枡鍏ュ簱浠诲姟鐘舵�佷负199锛孯CS鐢宠鍏ュ簱鏃舵洿鏂颁负鐘舵��2 - 浠诲姟缂栫爜锛歿}", pickInTask.getTaskCode());
+ Long loginUserId = SystemAuthUtils.getLoginUserId();
+ if (loginUserId == null) {
+ log.warn("鏃犳硶鑾峰彇绯荤粺鐢ㄦ埛ID锛屼娇鐢ㄩ粯璁ゅ��1");
+ loginUserId = 1L;
+ }
+
+ // 鏇存柊鐘舵�佷负2锛圧CS浠诲姟宸蹭笅鍙戯級
+ boolean statusUpdated = taskService.update(new LambdaUpdateWrapper<Task>()
+ .eq(Task::getId, pickInTask.getId())
+ .eq(Task::getTaskStatus, TaskStsType.WAVE_SEED.id)
+ .set(Task::getTaskStatus, TaskStsType.WCS_EXECUTE_IN.id)
+ .set(Task::getUpdateBy, loginUserId)
+ .set(Task::getUpdateTime, new Date()));
+
+ if (statusUpdated) {
+ log.info("鎷f枡鍏ュ簱浠诲姟鐘舵�佸凡鏇存柊涓�2锛圧CS浠诲姟宸蹭笅鍙戯級 - 浠诲姟缂栫爜锛歿}", pickInTask.getTaskCode());
+ // 閲嶆柊鏌ヨ浠诲姟浠ヨ幏鍙栨渶鏂扮姸鎬�
+ pickInTask = taskService.getById(pickInTask.getId());
+ } else {
+ log.warn("鎷f枡鍏ュ簱浠诲姟鐘舵�佹洿鏂颁负2澶辫触锛屽彲鑳界姸鎬佸凡鍙樻洿 - 浠诲姟缂栫爜锛歿}锛屽綋鍓嶇姸鎬侊細{}",
+ pickInTask.getTaskCode(), pickInTask.getTaskStatus());
+ }
+ }
+
// 鏇存柊鍏ュ簱绔欑偣淇℃伅锛堝鏋滀笌褰撳墠鐢宠鐨勭珯鐐逛笉鍚岋級
- if (StringUtils.isNotBlank(param.getSourceStaNo()) &&
- !param.getSourceStaNo().equals(pickInTask.getOrgSite())) {
- log.info("鏇存柊鎷f枡鍏ュ簱浠诲姟鐨勫叆搴撶珯鐐� - 浠诲姟缂栫爜锛歿}锛屽師绔欑偣锛歿}锛屾柊绔欑偣锛歿}",
+ if (StringUtils.isNotBlank(param.getSourceStaNo()) &&
+ !param.getSourceStaNo().equals(pickInTask.getOrgSite())) {
+ log.info("鏇存柊鎷f枡鍏ュ簱浠诲姟鐨勫叆搴撶珯鐐� - 浠诲姟缂栫爜锛歿}锛屽師绔欑偣锛歿}锛屾柊绔欑偣锛歿}",
pickInTask.getTaskCode(), pickInTask.getOrgSite(), param.getSourceStaNo());
pickInTask.setOrgSite(param.getSourceStaNo());
if (!taskService.updateById(pickInTask)) {
log.warn("鏇存柊鎷f枡鍏ュ簱浠诲姟鐨勫叆搴撶珯鐐瑰け璐� - 浠诲姟缂栫爜锛歿}", pickInTask.getTaskCode());
}
}
-
+
// 杩斿洖鎷f枡鍏ュ簱浠诲姟鐨勪俊鎭�
InTaskMsgDto msgDto = new InTaskMsgDto();
msgDto.setWorkNo(pickInTask.getTaskCode());
@@ -218,22 +246,50 @@
msgDto.setStaNo(pickInTask.getTargSite());
return msgDto;
}
-
+
// 濡傛灉鏄洏鐐瑰叆搴撲换鍔★紝鐩存帴杩斿洖锛屼笉鏍¢獙缁勬墭
if (Objects.nonNull(checkInTask)) {
- log.info("鐩樼偣鍏ュ簱浠诲姟锛岀洿鎺ヨ繑鍥烇紝涓嶆牎楠岀粍鎵� - 浠诲姟缂栫爜锛歿}", checkInTask.getTaskCode());
-
+ log.info("鐩樼偣鍏ュ簱浠诲姟锛岀洿鎺ヨ繑鍥烇紝涓嶆牎楠岀粍鎵� - 浠诲姟缂栫爜锛歿}锛屽綋鍓嶇姸鎬侊細{}",
+ checkInTask.getTaskCode(), checkInTask.getTaskStatus());
+
+ // 濡傛灉鐘舵�佹槸199锛孯CS鐢宠鍏ュ簱鏃跺簲璇ュ彉鎴愮姸鎬�2锛圧CS浠诲姟宸蹭笅鍙戯級
+ if (checkInTask.getTaskStatus().equals(TaskStsType.WAVE_SEED.id)) {
+ log.info("鐩樼偣鍏ュ簱浠诲姟鐘舵�佷负199锛孯CS鐢宠鍏ュ簱鏃舵洿鏂颁负鐘舵��2 - 浠诲姟缂栫爜锛歿}", checkInTask.getTaskCode());
+ Long loginUserId = SystemAuthUtils.getLoginUserId();
+ if (loginUserId == null) {
+ log.warn("鏃犳硶鑾峰彇绯荤粺鐢ㄦ埛ID锛屼娇鐢ㄩ粯璁ゅ��1");
+ loginUserId = 1L;
+ }
+
+ // 鏇存柊鐘舵�佷负2锛圧CS浠诲姟宸蹭笅鍙戯級
+ boolean statusUpdated = taskService.update(new LambdaUpdateWrapper<Task>()
+ .eq(Task::getId, checkInTask.getId())
+ .eq(Task::getTaskStatus, TaskStsType.WAVE_SEED.id)
+ .set(Task::getTaskStatus, TaskStsType.WCS_EXECUTE_IN.id)
+ .set(Task::getUpdateBy, loginUserId)
+ .set(Task::getUpdateTime, new Date()));
+
+ if (statusUpdated) {
+ log.info("鐩樼偣鍏ュ簱浠诲姟鐘舵�佸凡鏇存柊涓�2锛圧CS浠诲姟宸蹭笅鍙戯級 - 浠诲姟缂栫爜锛歿}", checkInTask.getTaskCode());
+ // 閲嶆柊鏌ヨ浠诲姟浠ヨ幏鍙栨渶鏂扮姸鎬�
+ checkInTask = taskService.getById(checkInTask.getId());
+ } else {
+ log.warn("鐩樼偣鍏ュ簱浠诲姟鐘舵�佹洿鏂颁负2澶辫触锛屽彲鑳界姸鎬佸凡鍙樻洿 - 浠诲姟缂栫爜锛歿}锛屽綋鍓嶇姸鎬侊細{}",
+ checkInTask.getTaskCode(), checkInTask.getTaskStatus());
+ }
+ }
+
// 鏇存柊鍏ュ簱绔欑偣淇℃伅锛堝鏋滀笌褰撳墠鐢宠鐨勭珯鐐逛笉鍚岋級
- if (StringUtils.isNotBlank(param.getSourceStaNo()) &&
- !param.getSourceStaNo().equals(checkInTask.getOrgSite())) {
- log.info("鏇存柊鐩樼偣鍏ュ簱浠诲姟鐨勫叆搴撶珯鐐� - 浠诲姟缂栫爜锛歿}锛屽師绔欑偣锛歿}锛屾柊绔欑偣锛歿}",
+ if (StringUtils.isNotBlank(param.getSourceStaNo()) &&
+ !param.getSourceStaNo().equals(checkInTask.getOrgSite())) {
+ log.info("鏇存柊鐩樼偣鍏ュ簱浠诲姟鐨勫叆搴撶珯鐐� - 浠诲姟缂栫爜锛歿}锛屽師绔欑偣锛歿}锛屾柊绔欑偣锛歿}",
checkInTask.getTaskCode(), checkInTask.getOrgSite(), param.getSourceStaNo());
checkInTask.setOrgSite(param.getSourceStaNo());
if (!taskService.updateById(checkInTask)) {
log.warn("鏇存柊鐩樼偣鍏ュ簱浠诲姟鐨勫叆搴撶珯鐐瑰け璐� - 浠诲姟缂栫爜锛歿}", checkInTask.getTaskCode());
}
}
-
+
// 杩斿洖鐩樼偣鍏ュ簱浠诲姟鐨勪俊鎭�
InTaskMsgDto msgDto = new InTaskMsgDto();
msgDto.setWorkNo(checkInTask.getTaskCode());
@@ -243,7 +299,7 @@
msgDto.setStaNo(checkInTask.getTargSite());
return msgDto;
}
-
+
// 妫�鏌ュ叾浠栧叆搴撲换鍔$被鍨嬶紙鐢ㄧ鍙锋煡璇紝鐘舵�佷负1鎴�2锛�
// 娉ㄦ剰锛氱洏鐐瑰叆搴撳凡鍗曠嫭澶勭悊锛屼笉鍐嶅寘鍚湪姝ゅ垪琛ㄤ腑
List<Integer> otherInboundTaskTypes = Arrays.asList(
@@ -251,38 +307,38 @@
TaskType.TASK_TYPE_MERGE_IN.type,
TaskType.TASK_TYPE_EMPITY_IN.type
);
-
+
Task existingInTask = taskService.getOne(new LambdaQueryWrapper<Task>()
.eq(Task::getBarcode, param.getBarcode())
.in(Task::getTaskType, otherInboundTaskTypes)
.in(Task::getTaskStatus, TaskStsType.GENERATE_IN.id, TaskStsType.WCS_EXECUTE_IN.id)
.orderByDesc(Task::getCreateTime)
.last("LIMIT 1"));
-
+
if (Objects.nonNull(existingInTask)) {
- log.info("鎵惧埌鍖归厤鐨勫叾浠栧叆搴撲换鍔� - 浠诲姟缂栫爜锛歿}锛屼换鍔$被鍨嬶細{}锛岀鍙凤細{}",
+ log.info("鎵惧埌鍖归厤鐨勫叾浠栧叆搴撲换鍔� - 浠诲姟缂栫爜锛歿}锛屼换鍔$被鍨嬶細{}锛岀鍙凤細{}",
existingInTask.getTaskCode(), existingInTask.getTaskType(), param.getBarcode());
-
+
// 妫�鏌ョ粍鎵樻槑缁嗘槸鍚︽湁璁㈠崟缂栫爜锛堜换鍔$紪鍙凤級
List<WaitPakinItem> itemsWithAsnCode = waitPakinItems.stream()
.filter(item -> StringUtils.isNotBlank(item.getAsnCode()))
.collect(Collectors.toList());
-
+
if (!itemsWithAsnCode.isEmpty()) {
- log.info("缁勬墭妗f湁浠诲姟缂栧彿锛屼娇鐢ㄧ幇鏈夊叆搴撲换鍔″崟鍙� - 浠诲姟缂栫爜锛歿}锛岀鍙凤細{}锛屼换鍔$紪鍙锋暟閲忥細{}",
+ log.info("缁勬墭妗f湁浠诲姟缂栧彿锛屼娇鐢ㄧ幇鏈夊叆搴撲换鍔″崟鍙� - 浠诲姟缂栫爜锛歿}锛岀鍙凤細{}锛屼换鍔$紪鍙锋暟閲忥細{}",
existingInTask.getTaskCode(), param.getBarcode(), itemsWithAsnCode.size());
-
+
// 鏇存柊鍏ュ簱绔欑偣淇℃伅锛堝鏋滀笌褰撳墠鐢宠鐨勭珯鐐逛笉鍚岋級
- if (StringUtils.isNotBlank(param.getSourceStaNo()) &&
- !param.getSourceStaNo().equals(existingInTask.getOrgSite())) {
- log.info("鏇存柊鍏ュ簱浠诲姟鐨勫叆搴撶珯鐐� - 浠诲姟缂栫爜锛歿}锛屽師绔欑偣锛歿}锛屾柊绔欑偣锛歿}",
+ if (StringUtils.isNotBlank(param.getSourceStaNo()) &&
+ !param.getSourceStaNo().equals(existingInTask.getOrgSite())) {
+ log.info("鏇存柊鍏ュ簱浠诲姟鐨勫叆搴撶珯鐐� - 浠诲姟缂栫爜锛歿}锛屽師绔欑偣锛歿}锛屾柊绔欑偣锛歿}",
existingInTask.getTaskCode(), existingInTask.getOrgSite(), param.getSourceStaNo());
existingInTask.setOrgSite(param.getSourceStaNo());
if (!taskService.updateById(existingInTask)) {
log.warn("鏇存柊鍏ュ簱浠诲姟鐨勫叆搴撶珯鐐瑰け璐� - 浠诲姟缂栫爜锛歿}", existingInTask.getTaskCode());
}
}
-
+
// 杩斿洖鐜版湁鍏ュ簱浠诲姟鐨勪俊鎭�
InTaskMsgDto msgDto = new InTaskMsgDto();
msgDto.setWorkNo(existingInTask.getTaskCode());
@@ -414,11 +470,11 @@
private List<WaitPakinItem> getWaitPakinItems(Long pakinId) {
List<WaitPakinItem> waitPakinItems = waitPakinItemService.list(new LambdaQueryWrapper<WaitPakinItem>()
.eq(WaitPakinItem::getPakinId, pakinId));
-
+
if (waitPakinItems.isEmpty()) {
throw new CoolException("鏁版嵁閿欒锛氱粍鎷栨槑缁嗕笉瀛樺湪");
}
-
+
// 杩囨护鎺夊凡瀹屽叏浣跨敤鐨勬槑缁嗭紙workQty >= anfme锛�
List<WaitPakinItem> availableItems = waitPakinItems.stream()
.filter(item -> {
@@ -427,11 +483,11 @@
return workQty < anfme; // 鍙繑鍥炴湭瀹屽叏浣跨敤鐨勬槑缁�
})
.collect(Collectors.toList());
-
+
if (availableItems.isEmpty()) {
throw new CoolException("缁勬嫋鏄庣粏宸插叏閮ㄤ娇鐢紝鏃犳硶鍐嶆鍒涘缓浠诲姟");
}
-
+
return availableItems;
}
@@ -456,7 +512,7 @@
if (!taskItemService.saveBatch(taskItems)) {
throw new CoolException("浠诲姟鏄庣粏淇濆瓨澶辫触锛侊紒");
}
-
+
// 鏇存柊缁勬墭鏄庣粏鐨勬墽琛屾暟閲忥紝鏍囪鏄庣粏宸茶鎻愬彇浣跨敤
waitPakinItems.forEach(item -> {
if (!waitPakinItemService.update(new LambdaUpdateWrapper<WaitPakinItem>()
@@ -672,17 +728,17 @@
}
log.info("========== 鎺ユ敹RCS鍥炶皟 ==========");
log.info("浠诲姟缂栧彿锛歿}锛屾壒娆″彿锛歿}锛屼簨浠剁被鍨嬶細{}", params.getSeqNum(), params.getBatchNo(), params.getEventType());
-
+
// 浼樺厛浣跨敤鎵规鍙锋煡璇换鍔′富琛紙鎵规鍙� = 浠诲姟缂栫爜锛屾洿鍙潬锛�
String taskCode = params.getBatchNo();
String taskNo = params.getSeqNum();
String locCode = null; // 搴撲綅浠g爜锛堝搴撲綅浠诲姟鏃朵粠浠诲姟鍙蜂腑鎻愬彇锛�
-
+
// 濡傛灉鎵规鍙蜂负绌猴紝浣跨敤浠诲姟鍙锋煡璇�
if (StringUtils.isBlank(taskCode)) {
taskCode = taskNo;
}
-
+
// 澶勭悊鍑哄簱浠诲姟澶氬簱浣嶇殑鎯呭喌锛氫换鍔″彿鏍煎紡鍙兘鏄� "浠诲姟缂栫爜_搴撲綅浠g爜"
// 濡傛灉浠诲姟鍙峰寘鍚笅鍒掔嚎锛屾彁鍙栧簱浣嶄唬鐮�
if (StringUtils.isNotBlank(taskNo) && taskNo.contains("_")) {
@@ -693,22 +749,22 @@
}
log.info("妫�娴嬪埌澶氬簱浣嶄换鍔★紝鎻愬彇搴撲綅浠g爜锛歿}锛屽師濮嬩换鍔$紪鐮侊細{}", locCode, taskCode);
}
-
+
// 浣跨敤鎵规鍙凤紙浠诲姟缂栫爜锛夋煡璇换鍔′富琛�
Task task = taskService.getOne(new LambdaQueryWrapper<Task>().eq(Task::getTaskCode, taskCode));
-
+
if (Objects.isNull(task)) {
log.error("浠诲姟涓嶅瓨鍦ㄦ垨宸茬粨鏉燂紒浠诲姟缂栧彿锛歿}锛屾壒娆″彿锛歿}", taskNo, taskCode);
throw new CoolException("浠诲姟涓嶅瓨鍦ㄦ垨宸茬粨鏉燂紒锛佷换鍔$紪鍙凤細" + taskNo + "锛屾壒娆″彿锛�" + taskCode);
}
-
+
// 楠岃瘉鎵规鍙峰拰浠诲姟鍙风殑鍏宠仈鍏崇郴
if (StringUtils.isNotBlank(params.getBatchNo()) && !params.getBatchNo().equals(task.getTaskCode())) {
log.warn("鎵规鍙蜂笌浠诲姟缂栫爜涓嶅尮閰嶏紒鎵规鍙凤細{}锛屼换鍔$紪鐮侊細{}", params.getBatchNo(), task.getTaskCode());
}
- log.info("鏌ヨ鍒颁换鍔� - 浠诲姟缂栫爜锛歿}锛屼换鍔$被鍨嬶細{}锛屽綋鍓嶇姸鎬侊細{}",
+ log.info("鏌ヨ鍒颁换鍔� - 浠诲姟缂栫爜锛歿}锛屼换鍔$被鍨嬶細{}锛屽綋鍓嶇姸鎬侊細{}",
task.getTaskCode(), task.getTaskType(), task.getTaskStatus());
-
+
// 瀵逛簬澶氬簱浣嶅嚭搴撲换鍔★紝閫氳繃搴撲綅浠g爜绮剧‘鍏宠仈浠诲姟鏄庣粏
List<TaskItem> relatedTaskItems = null;
if (StringUtils.isNotBlank(locCode)) {
@@ -722,15 +778,15 @@
.eq(TaskItem::getTaskId, task.getId())
.eq(TaskItem::getSource, locItem.getId()));
if (relatedTaskItems.isEmpty()) {
- log.warn("鏈壘鍒板搴旂殑浠诲姟鏄庣粏锛佷换鍔$紪鐮侊細{}锛屽簱浣嶄唬鐮侊細{}锛孡ocItem.id锛歿}",
+ log.warn("鏈壘鍒板搴旂殑浠诲姟鏄庣粏锛佷换鍔$紪鐮侊細{}锛屽簱浣嶄唬鐮侊細{}锛孡ocItem.id锛歿}",
task.getTaskCode(), locCode, locItem.getId());
} else {
- log.info("閫氳繃搴撲綅浠g爜绮剧‘鍏宠仈鍒颁换鍔℃槑缁� - 浠诲姟缂栫爜锛歿}锛屽簱浣嶄唬鐮侊細{}锛屼换鍔℃槑缁嗘暟閲忥細{}",
+ log.info("閫氳繃搴撲綅浠g爜绮剧‘鍏宠仈鍒颁换鍔℃槑缁� - 浠诲姟缂栫爜锛歿}锛屽簱浣嶄唬鐮侊細{}锛屼换鍔℃槑缁嗘暟閲忥細{}",
task.getTaskCode(), locCode, relatedTaskItems.size());
}
}
}
-
+
// 楠岃瘉浠诲姟鐘舵�侊細鍙湁宸蹭笅鍙戝埌RCS鐨勪换鍔℃墠鑳借鍥炶皟澶勭悊
// 鍏ュ簱浠诲姟锛氱姸鎬� >= WCS_EXECUTE_IN(2) 琛ㄧず宸蹭笅鍙�
// 鍑哄簱浠诲姟锛氱姸鎬� >= WCS_EXECUTE_OUT(102) 琛ㄧず宸蹭笅鍙�
@@ -746,11 +802,11 @@
isValidStatus = true;
}
}
-
+
if (!isValidStatus) {
- log.error("浠诲姟鐘舵�佷笉姝g‘锛屾棤娉曞鐞嗗洖璋冿紒浠诲姟缂栫爜锛歿}锛屼换鍔$被鍨嬶細{}锛屽綋鍓嶇姸鎬侊細{}锛屾湡鏈涚姸鎬侊細宸蹭笅鍙戝埌RCS",
+ log.error("浠诲姟鐘舵�佷笉姝g‘锛屾棤娉曞鐞嗗洖璋冿紒浠诲姟缂栫爜锛歿}锛屼换鍔$被鍨嬶細{}锛屽綋鍓嶇姸鎬侊細{}锛屾湡鏈涚姸鎬侊細宸蹭笅鍙戝埌RCS",
task.getTaskCode(), task.getTaskType(), task.getTaskStatus());
- throw new CoolException("浠诲姟鐘舵�佷笉姝g‘锛屾棤娉曞鐞嗗洖璋冿紒浠诲姟缂栫爜锛�" + task.getTaskCode() +
+ throw new CoolException("浠诲姟鐘舵�佷笉姝g‘锛屾棤娉曞鐞嗗洖璋冿紒浠诲姟缂栫爜锛�" + task.getTaskCode() +
"锛屽綋鍓嶇姸鎬侊細" + task.getTaskStatus() + "锛屼换鍔″彲鑳芥湭涓嬪彂鍒癛CS鎴栧凡琚鐞�");
}
@@ -780,7 +836,7 @@
log.error("鍏ュ簱绔欑偣涓嶅瓨鍦� - 绔欑偣鍚嶇О锛歿}锛屼换鍔$紪鐮侊細{}", task.getOrgSite(), task.getTaskCode());
throw new CoolException("鏁版嵁閿欒锛岀珯鐐逛笉瀛樺湪锛侊紒");
}
- log.info("鏌ヨ鍒板叆搴撶珯鐐� - 绔欑偣鍚嶇О锛歿}锛岀珯鐐圭被鍨嬶細{}锛屽綋鍓嶇姸鎬侊細{}",
+ log.info("鏌ヨ鍒板叆搴撶珯鐐� - 绔欑偣鍚嶇О锛歿}锛岀珯鐐圭被鍨嬶細{}锛屽綋鍓嶇姸鎬侊細{}",
station.getStationName(), station.getType(), station.getUseStatus());
if (station.getType().equals(StationTypeEnum.STATION_TYPE_NORMAL.type)) {
log.info("鏇存柊鍏ュ簱绔欑偣鐘舵�� - 绔欑偣鍚嶇О锛歿}锛屾柊鐘舵�侊細{}", station.getStationName(), LocStsType.LOC_STS_TYPE_O.type);
@@ -793,12 +849,12 @@
}
}
- log.info("鍑嗗鏇存柊鍏ュ簱浠诲姟鐘舵�� - 浠诲姟缂栫爜锛歿}锛屽綋鍓嶇姸鎬侊細{}锛岀洰鏍囩姸鎬侊細{}",
+ log.info("鍑嗗鏇存柊鍏ュ簱浠诲姟鐘舵�� - 浠诲姟缂栫爜锛歿}锛屽綋鍓嶇姸鎬侊細{}锛岀洰鏍囩姸鎬侊細{}",
task.getTaskCode(), task.getTaskStatus(), TaskStsType.COMPLETE_IN.id);
-
+
// 濡傛灉浠诲姟鐘舵�佸凡缁忓ぇ浜庣瓑浜庣洰鏍囩姸鎬侊紝璺宠繃鏇存柊
if (task.getTaskStatus() >= TaskStsType.COMPLETE_IN.id) {
- log.warn("鍏ュ簱浠诲姟鐘舵�佸凡澶т簬绛変簬鐩爣鐘舵�侊紝璺宠繃鏇存柊 - 浠诲姟缂栫爜锛歿}锛屽綋鍓嶇姸鎬侊細{}锛岀洰鏍囩姸鎬侊細{}",
+ log.warn("鍏ュ簱浠诲姟鐘舵�佸凡澶т簬绛変簬鐩爣鐘舵�侊紝璺宠繃鏇存柊 - 浠诲姟缂栫爜锛歿}锛屽綋鍓嶇姸鎬侊細{}锛岀洰鏍囩姸鎬侊細{}",
task.getTaskCode(), task.getTaskStatus(), TaskStsType.COMPLETE_IN.id);
} else {
boolean updated = taskService.update(new LambdaUpdateWrapper<Task>()
@@ -806,7 +862,7 @@
.eq(Task::getTaskCode, task.getTaskCode())
.set(Task::getTaskStatus, TaskStsType.COMPLETE_IN.id));
if (!updated) {
- log.error("鍏ュ簱浠诲姟鐘舵�佷慨鏀瑰け璐� - 浠诲姟缂栫爜锛歿}锛屽綋鍓嶇姸鎬侊細{}锛岀洰鏍囩姸鎬侊細{}锛屽彲鑳戒换鍔$姸鎬佸凡澶т簬绛変簬鐩爣鐘舵��",
+ log.error("鍏ュ簱浠诲姟鐘舵�佷慨鏀瑰け璐� - 浠诲姟缂栫爜锛歿}锛屽綋鍓嶇姸鎬侊細{}锛岀洰鏍囩姸鎬侊細{}锛屽彲鑳戒换鍔$姸鎬佸凡澶т簬绛変簬鐩爣鐘舵��",
task.getTaskCode(), task.getTaskStatus(), TaskStsType.COMPLETE_IN.id);
throw new CoolException("浠诲姟鐘舵�佷慨鏀瑰け璐ワ紒锛佸綋鍓嶄换鍔$姸鎬侊細" + task.getTaskStatus() + "锛岀洰鏍囩姸鎬侊細" + TaskStsType.COMPLETE_IN.id);
}
@@ -825,7 +881,7 @@
log.error("鍑哄簱绔欑偣涓嶅瓨鍦� - 绔欑偣鍚嶇О锛歿}锛屼换鍔$紪鐮侊細{}", task.getTargSite(), task.getTaskCode());
throw new CoolException("鏁版嵁閿欒锛岀珯鐐逛笉瀛樺湪锛侊紒");
}
- log.info("鏌ヨ鍒板嚭搴撶珯鐐� - 绔欑偣鍚嶇О锛歿}锛岀珯鐐圭被鍨嬶細{}锛屽綋鍓嶇姸鎬侊細{}",
+ log.info("鏌ヨ鍒板嚭搴撶珯鐐� - 绔欑偣鍚嶇О锛歿}锛岀珯鐐圭被鍨嬶細{}锛屽綋鍓嶇姸鎬侊細{}",
station.getStationName(), station.getType(), station.getUseStatus());
if (station.getType().equals(StationTypeEnum.STATION_TYPE_NORMAL.type)) {
log.info("鏇存柊鍑哄簱绔欑偣鐘舵�� - 绔欑偣鍚嶇О锛歿}锛屾柊鐘舵�侊細{}", station.getStationName(), LocStsType.LOC_STS_TYPE_F.type);
@@ -836,67 +892,43 @@
}
log.info("鍑哄簱绔欑偣鐘舵�佹洿鏂版垚鍔� - 绔欑偣鍚嶇О锛歿}", station.getStationName());
}
- log.info("鍑嗗鏇存柊鍑哄簱浠诲姟鐘舵�� - 浠诲姟缂栫爜锛歿}锛屽綋鍓嶇姸鎬侊細{}锛岀洰鏍囩姸鎬侊細{}",
+ log.info("鍑嗗鏇存柊鍑哄簱浠诲姟鐘舵�� - 浠诲姟缂栫爜锛歿}锛屽綋鍓嶇姸鎬侊細{}锛岀洰鏍囩姸鎬侊細{}",
task.getTaskCode(), task.getTaskStatus(), TaskStsType.COMPLETE_OUT.id);
-
+
// 濡傛灉浠诲姟鐘舵�佸凡缁忓ぇ浜庣瓑浜庣洰鏍囩姸鎬侊紝璺宠繃鏇存柊
if (task.getTaskStatus() >= TaskStsType.COMPLETE_OUT.id) {
- log.warn("鍑哄簱浠诲姟鐘舵�佸凡澶т簬绛変簬鐩爣鐘舵�侊紝璺宠繃鏇存柊 - 浠诲姟缂栫爜锛歿}锛屽綋鍓嶇姸鎬侊細{}锛岀洰鏍囩姸鎬侊細{}",
+ log.warn("鍑哄簱浠诲姟鐘舵�佸凡澶т簬绛変簬鐩爣鐘舵�侊紝璺宠繃鏇存柊 - 浠诲姟缂栫爜锛歿}锛屽綋鍓嶇姸鎬侊細{}锛岀洰鏍囩姸鎬侊細{}",
task.getTaskCode(), task.getTaskStatus(), TaskStsType.COMPLETE_OUT.id);
} else {
boolean updated = taskService.update(new LambdaUpdateWrapper<Task>().eq(Task::getTaskCode, task.getTaskCode())
.lt(Task::getTaskStatus, TaskStsType.COMPLETE_OUT.id)
.set(Task::getTaskStatus, TaskStsType.COMPLETE_OUT.id));
if (!updated) {
- log.error("鍑哄簱浠诲姟鐘舵�佷慨鏀瑰け璐� - 浠诲姟缂栫爜锛歿}锛屽綋鍓嶇姸鎬侊細{}锛岀洰鏍囩姸鎬侊細{}锛屽彲鑳戒换鍔$姸鎬佸凡澶т簬绛変簬鐩爣鐘舵��",
+ log.error("鍑哄簱浠诲姟鐘舵�佷慨鏀瑰け璐� - 浠诲姟缂栫爜锛歿}锛屽綋鍓嶇姸鎬侊細{}锛岀洰鏍囩姸鎬侊細{}锛屽彲鑳戒换鍔$姸鎬佸凡澶т簬绛変簬鐩爣鐘舵��",
task.getTaskCode(), task.getTaskStatus(), TaskStsType.COMPLETE_OUT.id);
throw new CoolException("浠诲姟鐘舵�佷慨鏀瑰け璐ワ紒锛佸綋鍓嶄换鍔$姸鎬侊細" + task.getTaskStatus() + "锛岀洰鏍囩姸鎬侊細" + TaskStsType.COMPLETE_OUT.id);
}
log.info("鍑哄簱浠诲姟鐘舵�佹洿鏂版垚鍔� - 浠诲姟缂栫爜锛歿}", task.getTaskCode());
-
- // 鍏ㄧ増鍑哄簱鍦≧CS鍥炶皟鍚庣洿鎺ュ鐞嗗苟璁剧疆涓�200
+
+ // 鍏ㄧ増鍑哄簱鍦≧CS鍥炶皟鍚庡鐞嗗簱瀛樺苟璁剧疆涓�199锛岀瓑寰匬DA蹇�熸嫞璐х‘璁ゅ悗鏇存柊涓�200
if (task.getTaskType().equals(TaskType.TASK_TYPE_OUT.type)) {
- log.info("鍏ㄧ増鍑哄簱浠诲姟锛屽紑濮嬪鐞嗗簱瀛樺苟鏇存柊鐘舵�佷负200 - 浠诲姟缂栫爜锛歿}", task.getTaskCode());
+ log.info("鍏ㄧ増鍑哄簱浠诲姟锛屽紑濮嬪鐞嗗簱瀛樺苟鏇存柊鐘舵�佷负199 - 浠诲姟缂栫爜锛歿}", task.getTaskCode());
try {
// 閲嶆柊鏌ヨ浠诲姟浠ヨ幏鍙栨渶鏂扮姸鎬侊紙198锛�
task = taskService.getOne(new LambdaQueryWrapper<Task>().eq(Task::getTaskCode, task.getTaskCode()));
-
+
// 璋冪敤completeTask澶勭悊搴撳瓨锛堜細璁剧疆涓�199锛�
List<Task> taskList = new ArrayList<>();
taskList.add(task);
taskService.completeTask(taskList);
-
+
// 閲嶆柊鏌ヨ浠诲姟浠ヨ幏鍙栨渶鏂扮姸鎬侊紙199锛�
task = taskService.getOne(new LambdaQueryWrapper<Task>().eq(Task::getTaskCode, task.getTaskCode()));
-
- // 濡傛灉鐘舵�佸凡缁忔槸199锛岀户缁鐞嗗苟璁剧疆涓�200
+
if (task.getTaskStatus().equals(TaskStsType.WAVE_SEED.id)) {
- Long loginUserId = SystemAuthUtils.getLoginUserId();
- if (loginUserId == null) {
- log.warn("鏃犳硶鑾峰彇绯荤粺鐢ㄦ埛ID锛屼娇鐢ㄩ粯璁ゅ��1");
- loginUserId = 1L;
- }
-
- // 鍒犻櫎浣滀笟涓簱瀛樿褰曪紙LocItemWorking锛�
- locItemWorkingService.remove(new LambdaQueryWrapper<LocItemWorking>()
- .eq(LocItemWorking::getTaskId, task.getId()));
-
- // 鏇存柊浠诲姟鐘舵�佷负搴撳瓨鏇存柊瀹屾垚锛�200锛�
- boolean finalUpdated = taskService.update(new LambdaUpdateWrapper<Task>()
- .eq(Task::getTaskCode, task.getTaskCode())
- .eq(Task::getTaskStatus, TaskStsType.WAVE_SEED.id)
- .set(Task::getTaskStatus, TaskStsType.UPDATED_OUT.id)
- .set(Task::getUpdateBy, loginUserId)
- .set(Task::getUpdateTime, new Date()));
-
- if (!finalUpdated) {
- log.warn("鍏ㄧ増鍑哄簱浠诲姟鐘舵�佹洿鏂颁负200澶辫触锛屽彲鑳界姸鎬佸凡鍙樻洿 - 浠诲姟缂栫爜锛歿}锛屽綋鍓嶇姸鎬侊細{}",
- task.getTaskCode(), task.getTaskStatus());
- } else {
- log.info("鍏ㄧ増鍑哄簱浠诲姟鐘舵�佸凡鏇存柊涓�200锛堝簱瀛樻洿鏂板畬鎴愶級 - 浠诲姟缂栫爜锛歿}", task.getTaskCode());
- }
+ log.info("鍏ㄧ増鍑哄簱浠诲姟鐘舵�佸凡鏇存柊涓�199锛堢瓑寰匬DA蹇�熸嫞璐х‘璁ゅ悗鏇存柊涓�200锛� - 浠诲姟缂栫爜锛歿}", task.getTaskCode());
} else {
- log.warn("鍏ㄧ増鍑哄簱浠诲姟鐘舵�佷笉鏄�199锛屾棤娉曟洿鏂颁负200 - 浠诲姟缂栫爜锛歿}锛屽綋鍓嶇姸鎬侊細{}",
+ log.warn("鍏ㄧ増鍑哄簱浠诲姟鐘舵�佹洿鏂颁负199澶辫触 - 浠诲姟缂栫爜锛歿}锛屽綋鍓嶇姸鎬侊細{}",
task.getTaskCode(), task.getTaskStatus());
}
} catch (Exception e) {
@@ -907,7 +939,7 @@
}
}
} else {
- log.warn("鏈鐞嗙殑浜嬩欢绫诲瀷 - 浜嬩欢绫诲瀷锛歿}锛屼换鍔$紪鐮侊細{}锛屼换鍔$被鍨嬶細{}",
+ log.warn("鏈鐞嗙殑浜嬩欢绫诲瀷 - 浜嬩欢绫诲瀷锛歿}锛屼换鍔$紪鐮侊細{}锛屼换鍔$被鍨嬶細{}",
params.getEventType(), task.getTaskCode(), task.getTaskType());
}
log.info("========== 浠诲姟鎵ц閫氱煡涓婃姤澶勭悊瀹屾垚 ==========");
@@ -1025,7 +1057,7 @@
String shallowLocNo = LocUtils.getShallowLoc(loc1.getCode());
// 妫�娴嬬洰鏍囧簱浣嶆槸鍚︿负绌哄簱浣�
Loc shallowLoc = locService.getOne(new LambdaQueryWrapper<Loc>().eq(Loc::getCode, shallowLocNo));
- if (shallowLoc != null && shallowLoc.getUseStatus().equals(LocStsType.LOC_STS_TYPE_O.type)) {
+ if (shallowLoc != null && Objects.equals(shallowLoc.getUseStatus(), LocStsType.LOC_STS_TYPE_O.type)) {
if (LocUtils.locMoveCheckLocTypeComplete(shallowLoc, locTypeDto)) {
loc = shallowLoc;
channel = shallowLoc.getChannel();
@@ -1208,7 +1240,7 @@
loc = null;
}
// 閫掑綊鏌ヨ
- if (Cools.isEmpty(loc) || !loc.getUseStatus().equals(LocStsType.LOC_STS_TYPE_O.type)) {
+ if (Cools.isEmpty(loc) || !Objects.equals(loc.getUseStatus(), LocStsType.LOC_STS_TYPE_O.type)) {
// 褰撳墠宸烽亾鏃犵┖搴撲綅鏃讹紝閫掑綊璋冩暣鑷充笅涓�宸烽亾锛屾绱㈠叏閮ㄥ贩閬撴棤鏋滃悗锛岃烦鍑洪�掑綊
if (times < rowCount * 2) {
times = times + 1;
@@ -1244,16 +1276,26 @@
Loc loc = new Loc();
InTaskMsgDto inTaskMsgDto = new InTaskMsgDto();
locTypeDto.setLocType1(18);
- List<Loc> loc1 = locService.list(new LambdaQueryWrapper<Loc>()
+ LambdaQueryWrapper<Loc> locQw = new LambdaQueryWrapper<Loc>()
.eq(Loc::getAreaId, area)
.eq(Loc::getUseStatus, LocStsType.LOC_STS_TYPE_O.type)
- .eq(Loc::getType, locTypeDto.getLocType1())
- .ge(Loc::getRow, deviceBind.getStartRow())
- .le(Loc::getRow, deviceBind.getEndRow())
- .orderByAsc(Loc::getLev)
- .orderByAsc(Loc::getCol)
- .orderByAsc(Loc::getRow)
- );
+ .eq(Loc::getType, locTypeDto.getLocType1());
+ if (deviceBind.getStartRow() != null && deviceBind.getEndRow() != null) {
+ locQw.ge(Loc::getRow, deviceBind.getStartRow()).le(Loc::getRow, deviceBind.getEndRow());
+ }
+ locQw.orderByAsc(Loc::getLev).orderByAsc(Loc::getCol).orderByAsc(Loc::getRow);
+ List<Loc> loc1 = locService.list(locQw);
+ // 鑻ユ寜宸烽亾琛岃寖鍥存湭鏌ュ埌绌哄簱浣嶏紝鍒欐斁瀹芥潯浠讹細涓嶉檺鍒惰鑼冨洿锛屼粎鎸夊簱鍖�+绌哄簱+绫诲瀷鏌ヨ锛堜笌 loc/page 琛屼负涓�鑷达級
+ if (Cools.isEmpty(loc1) && times == 0) {
+ loc1 = locService.list(new LambdaQueryWrapper<Loc>()
+ .eq(Loc::getAreaId, area)
+ .eq(Loc::getUseStatus, LocStsType.LOC_STS_TYPE_O.type)
+ .eq(Loc::getType, locTypeDto.getLocType1())
+ .orderByAsc(Loc::getLev)
+ .orderByAsc(Loc::getCol)
+ .orderByAsc(Loc::getRow)
+ );
+ }
for (Loc loc2 : loc1) {
if (!LocUtils.locMoveCheckLocTypeComplete(loc2, locTypeDto)) {
continue;
@@ -1269,12 +1311,17 @@
);
if (Cools.isEmpty(deviceSite)) {
deviceNo = 0;
- loc = null;
+ // 鏈夊彲鐢ㄧ┖搴撲綅浣嗘湭閰嶇疆璺緞鏃讹紝鐢ㄦ簮绔欑偣浣滀负鐩爣绔欑偣锛屼粛杩斿洖璇ュ簱浣嶏紝閬垮厤璇姤鈥滄病鏈夌┖搴撲綅鈥�
+ if (loc != null && loc.getId() != null && Objects.equals(loc.getUseStatus(), LocStsType.LOC_STS_TYPE_O.type)) {
+ inTaskMsgDto.setStaNo(sourceStaNo);
+ } else {
+ loc = null;
+ }
} else {
inTaskMsgDto.setStaNo(deviceSite.getDeviceSite());
}
// 閫掑綊鏌ヨ
- if (Cools.isEmpty(loc) || !loc.getUseStatus().equals(LocStsType.LOC_STS_TYPE_O.type)) {
+ if (Cools.isEmpty(loc) || !Objects.equals(loc.getUseStatus(), LocStsType.LOC_STS_TYPE_O.type)) {
// 褰撳墠宸烽亾鏃犵┖搴撲綅鏃讹紝閫掑綊璋冩暣鑷充笅涓�宸烽亾锛屾绱㈠叏閮ㄥ贩閬撴棤鏋滃悗锛岃烦鍑洪�掑綊
if (times < 5) {
times = times + 1;
@@ -1324,18 +1371,65 @@
// 璇ユ柟娉曚細鎵ц浠ヤ笅娴佺▼锛�
// 1. 楠岃瘉璁惧绔欑偣
// 2. 楠岃瘉缁勬嫋鐘舵��
- // 3. 鐢熸垚浠诲姟缂栫爜
- // 4. 鑾峰彇搴撲綅鍙�
- // 5. 鍒涘缓骞朵繚瀛樹换鍔�
- // 6. 鏇存柊搴撲綅鐘舵��
- // 7. 鑾峰彇骞堕獙璇佺粍鎷栨槑缁�
- // 8. 鍒涘缓骞朵繚瀛樹换鍔℃槑缁�
- // 9. 鏇存柊缁勬墭鐘舵��
+ // 3. 妫�鏌ユ槸鍚︽湁鍖归厤鐨勫叆搴撲换鍔★紙鎷f枡/鐩樼偣鍏ュ簱浼氬尮閰嶇姸鎬�199骞舵洿鏂颁负2锛�
+ // 4. 鐢熸垚浠诲姟缂栫爜锛堝鏋滈渶瑕佸垱寤烘柊浠诲姟锛�
+ // 5. 鑾峰彇搴撲綅鍙�
+ // 6. 鍒涘缓骞朵繚瀛樹换鍔★紙濡傛灉闇�瑕佸垱寤烘柊浠诲姟锛�
+ // 7. 鏇存柊搴撲綅鐘舵��
+ // 8. 鑾峰彇骞堕獙璇佺粍鎷栨槑缁�
+ // 9. 鍒涘缓骞朵繚瀛樹换鍔℃槑缁�
+ // 10. 鏇存柊缁勬墭鐘舵��
InTaskMsgDto msgDto = createInTask(param);
- //RCS宸茬粡鍦ㄨ緭閫佺嚎涓婏紝鎵�浠ヤ笉闇�瑕佷笅鍙戜换鍔�
- taskService.updateById(new Task(){{setId(msgDto.getTaskId());setTaskStatus(2);}});
+
+ // 鏌ヨ浠诲姟褰撳墠鐘舵��
+ Task task = taskService.getById(msgDto.getTaskId());
+ if (Objects.isNull(task)) {
+ throw new CoolException("浠诲姟涓嶅瓨鍦紝浠诲姟ID锛�" + msgDto.getTaskId());
+ }
+
+ // RCS鐢宠鍏ュ簱鏃讹紝闇�瑕佸皢浠诲姟鐘舵�佹洿鏂颁负2锛圧CS浠诲姟宸蹭笅鍙戯級
+ // 鎯呭喌1锛氬鏋滄槸鎷f枡/鐩樼偣鍏ュ簱浠诲姟锛岀姸鎬�199宸茬粡鍦╟reateInTask涓洿鏂颁负2浜�
+ // 鎯呭喌2锛氬鏋滄槸鏂板垱寤虹殑浠诲姟锛堟棤璁㈠崟鍙风粍鎵橈級锛岀姸鎬佹槸1锛岄渶瑕佹洿鏂颁负2
+ // 鎯呭喌3锛氬鏋滅姸鎬佸凡缁忔槸2锛屼笉闇�瑕佹洿鏂�
+ Integer taskStatus = task.getTaskStatus();
+ if (taskStatus != null && taskStatus.equals(TaskStsType.GENERATE_IN.id)) {
+ log.info("鏂板垱寤虹殑鍏ュ簱浠诲姟锛堟棤璁㈠崟鍙风粍鎵橈級锛孯CS鐢宠鍏ュ簱鏃舵洿鏂颁负鐘舵��2 - 浠诲姟缂栫爜锛歿}", task.getTaskCode());
+ Long loginUserId = SystemAuthUtils.getLoginUserId();
+ if (loginUserId == null) {
+ log.warn("鏃犳硶鑾峰彇绯荤粺鐢ㄦ埛ID锛屼娇鐢ㄩ粯璁ゅ��1");
+ loginUserId = 1L;
+ }
+
+ boolean statusUpdated = taskService.update(new LambdaUpdateWrapper<Task>()
+ .eq(Task::getId, task.getId())
+ .eq(Task::getTaskStatus, TaskStsType.GENERATE_IN.id)
+ .set(Task::getTaskStatus, TaskStsType.WCS_EXECUTE_IN.id)
+ .set(Task::getUpdateBy, loginUserId)
+ .set(Task::getUpdateTime, new Date()));
+
+ if (statusUpdated) {
+ log.info("鏂板垱寤虹殑鍏ュ簱浠诲姟鐘舵�佸凡鏇存柊涓�2锛圧CS浠诲姟宸蹭笅鍙戯級 - 浠诲姟缂栫爜锛歿}", task.getTaskCode());
+ } else {
+ log.warn("鏂板垱寤虹殑鍏ュ簱浠诲姟鐘舵�佹洿鏂颁负2澶辫触锛屽彲鑳界姸鎬佸凡鍙樻洿 - 浠诲姟缂栫爜锛歿}锛屽綋鍓嶇姸鎬侊細{}",
+ task.getTaskCode(), task.getTaskStatus());
+ }
+ } else if (taskStatus != null && taskStatus.equals(TaskStsType.WCS_EXECUTE_IN.id)) {
+ log.info("鍏ュ簱浠诲姟鐘舵�佸凡缁忔槸2锛圧CS浠诲姟宸蹭笅鍙戯級锛屾棤闇�鏇存柊 - 浠诲姟缂栫爜锛歿}", task.getTaskCode());
+ } else {
+ log.info("鍏ュ簱浠诲姟褰撳墠鐘舵�侊細{}锛孯CS鐢宠鍏ュ簱鏃朵繚鎸佸綋鍓嶇姸鎬� - 浠诲姟缂栫爜锛歿}",
+ taskStatus, task.getTaskCode());
+ }
+ if (msgDto == null) {
+ msgDto=new InTaskMsgDto();
+ }
+ if (msgDto.getLocNo() == null) {
+ msgDto.setWorkNo(task.getTaskCode());
+ msgDto.setLocNo(task.getTargLoc());
+ msgDto.setTaskId(task.getId());
+ }
+
log.info("========== RCS-鐢宠鍏ュ簱浠诲姟鎴愬姛 ==========");
- log.info("RCS-杩斿洖 浠诲姟缂栫爜锛歿}锛屽簱浣嶅彿锛歿}", msgDto.getWorkNo(), msgDto.getLocNo());
+ log.info("RCS-杩斿洖 浠诲姟缂栫爜锛歿}锛屽簱浣嶅彿锛歿}锛屼换鍔$姸鎬侊細{}", msgDto.getWorkNo(), msgDto.getLocNo(), task.getTaskStatus());
// 杩斿洖缁撴灉锛屽彧杩斿洖搴撲綅鍙凤紙鏍规嵁鎺ュ彛鏂囨。瑕佹眰锛�
JSONObject result = new JSONObject();
--
Gitblit v1.9.1