From 024504a3933e8f2f86e80383e61fa574524a0d28 Mon Sep 17 00:00:00 2001
From: chen.lin <1442464845@qq.com>
Date: 星期二, 10 三月 2026 16:39:52 +0800
Subject: [PATCH] logo修改 +入库完成校验
---
rsf-server/src/main/java/com/vincent/rsf/server/manager/service/impl/TaskServiceImpl.java | 82 ++++++++++++++++++++++++++++++++++++++++-
1 files changed, 80 insertions(+), 2 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 7ebc3ce..a7197d7 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
@@ -682,6 +682,11 @@
String curLoc;
if (task.getTaskType().equals(TaskType.TASK_TYPE_IN.type)) {
curLoc = task.getTargLoc();
+ } else if (task.getTaskType().equals(TaskType.TASK_TYPE_EMPITY_IN.type)) {
+ curLoc = task.getTargLoc();
+ if (StringUtils.isBlank(curLoc)) {
+ return task;
+ }
} else {
curLoc = task.getOrgLoc();
}
@@ -1984,9 +1989,30 @@
rcsApi != null ? rcsApi.getPort() : "null");
return;
}
-
+ // 鍚屾枡绠卞彿瑙勫垯锛�101 浠诲姟鎵�鍦ㄦ枡绠卞彿涓嬭嫢宸插瓨鍦� 196/198/199/200 浠诲姟锛屽垯涓嶅悜 RCS 鍙戦�佽 101 浠诲姟锛�/api/open/bus/submit锛�
+ List<Integer> higherStatuses = Arrays.asList(TaskStsType.AWAIT.id, TaskStsType.COMPLETE_OUT.id, TaskStsType.WAVE_SEED.id, TaskStsType.UPDATED_OUT.id);
+ List<Task> higherTasks = this.list(new LambdaQueryWrapper<Task>()
+ .in(Task::getTaskStatus, higherStatuses)
+ .isNotNull(Task::getBarcode)
+ .ne(Task::getBarcode, ""));
+ Set<String> barcodesWithHigher = higherTasks.stream().map(Task::getBarcode).filter(StringUtils::isNotBlank).collect(Collectors.toSet());
+ List<Task> toSend = tasks.stream()
+ .filter(t -> {
+ if (TaskStsType.GENERATE_OUT.id.equals(t.getTaskStatus()) && StringUtils.isNotBlank(t.getBarcode()) && barcodesWithHigher.contains(t.getBarcode())) {
+ log.debug("鍚屾枡绠卞彿{}涓嬪凡瀛樺湪196/198/199/200浠诲姟锛岃烦杩�101浠诲姟涓嬪彂锛歵askId={}", t.getBarcode(), t.getId());
+ return false;
+ }
+ return true;
+ })
+ .collect(Collectors.toList());
+ if (toSend.isEmpty()) {
+ log.debug("杩囨护鍚庢棤寰呬笅鍙戜换鍔�");
+ return;
+ }
+ tasks = toSend;
+
String pubTakUrl = rcsApi.getHost() + ":" + rcsApi.getPort() + RcsConstant.pubTask;
-
+
for (Task task : tasks) {
WcsTaskParams taskParams = new WcsTaskParams();
List<TaskItemParam> items = new ArrayList<>();
@@ -2400,6 +2426,20 @@
}
List<TaskItem> taskItems = taskItemService.list(new LambdaQueryWrapper<TaskItem>().eq(TaskItem::getTaskId, task.getId()));
+ // 绌烘澘鍏ュ簱鏃犱换鍔℃槑缁嗭紝浠呮洿鏂板簱浣嶄负绌烘澘(D)銆佷换鍔$姸鎬佷负搴撳瓨鏇存柊瀹屾垚
+ if (TaskType.TASK_TYPE_EMPITY_IN.type.equals(task.getTaskType())) {
+ if (!locService.update(new LambdaUpdateWrapper<Loc>().eq(Loc::getCode, task.getTargLoc())
+ .set(Loc::getUseStatus, LocStsType.LOC_STS_TYPE_D.type)
+ .set(Loc::getUpdateBy, loginUserId)
+ .set(Loc::getUpdateTime, new Date()))) {
+ throw new CoolException("绌烘澘鍏ュ簱搴撲綅鐘舵�佷慨鏀瑰け璐ワ紒锛�");
+ }
+ if (!this.update(new LambdaUpdateWrapper<Task>().eq(Task::getId, task.getId()).set(Task::getTaskStatus, TaskStsType.UPDATED_IN.id))) {
+ throw new CoolException("绌烘澘鍏ュ簱浠诲姟鐘舵�佷慨鏀瑰け璐ワ紒锛�");
+ }
+ reportInOutResultToCloud(task, loc, Collections.emptyList(), null, true);
+ return;
+ }
if (taskItems.isEmpty()) {
throw new CoolException("浠诲姟鏄庣粏涓嶅瓨鍦紒锛�");
}
@@ -2437,6 +2477,44 @@
throw new CoolException("缁勬嫋鐘舵�佷慨鏀瑰け璐ワ紒锛�");
}
+ // 缁勬墭鍏ュ簱瀹屾垚鍚庣疮鍔犺鍗曞強鏄庣粏鐨勫凡鏀舵暟閲忥紝鐢ㄤ簬鍚庣画鍒ゆ柇鏁村崟鏄惁鍙疆涓哄凡瀹屾垚
+ Map<Long, Double> orderIdToAdd = new HashMap<>();
+ Map<Long, Double> itemIdToAdd = new HashMap<>();
+ for (WaitPakinItem p : pakinItems) {
+ if (StringUtils.isBlank(p.getAsnCode())) {
+ continue;
+ }
+ WkOrder order = asnOrderService.getOne(new LambdaQueryWrapper<WkOrder>().eq(WkOrder::getCode, p.getAsnCode()));
+ if (order == null) {
+ continue;
+ }
+ double addQty = (p.getAnfme() != null ? p.getAnfme() : 0.0);
+ orderIdToAdd.merge(order.getId(), addQty, Double::sum);
+ if (p.getAsnItemId() != null) {
+ itemIdToAdd.merge(p.getAsnItemId(), addQty, Double::sum);
+ }
+ }
+ for (Map.Entry<Long, Double> e : orderIdToAdd.entrySet()) {
+ WkOrder o = asnOrderService.getById(e.getKey());
+ if (o != null) {
+ Double newQty = QuantityUtils.roundToScale(QuantityUtils.add(o.getQty() != null ? o.getQty() : 0.0, e.getValue()));
+ o.setQty(newQty);
+ if (!asnOrderService.updateById(o)) {
+ throw new CoolException("鍏ュ簱鍗曞畬鎴愭暟閲忔洿鏂板け璐ワ紒锛�");
+ }
+ }
+ }
+ for (Map.Entry<Long, Double> e : itemIdToAdd.entrySet()) {
+ WkOrderItem oi = asnOrderItemService.getById(e.getKey());
+ if (oi != null) {
+ Double newQty = QuantityUtils.roundToScale(QuantityUtils.add(oi.getQty() != null ? oi.getQty() : 0.0, e.getValue()));
+ oi.setQty(newQty);
+ if (!asnOrderItemService.updateById(oi)) {
+ throw new CoolException("鍏ュ簱鍗曟槑缁嗗畬鎴愭暟閲忔洿鏂板け璐ワ紒锛�");
+ }
+ }
+ }
+
/**淇敼搴撲綅鐘舵�佷负F.鍦ㄥ簱*/
if (!locService.update(new LambdaUpdateWrapper<Loc>().set(Loc::getUseStatus, LocStsType.LOC_STS_TYPE_F.type).eq(Loc::getCode, task.getTargLoc()))) {
throw new CoolException("搴撲綅鐘舵�佷慨鏀瑰け璐ワ紒锛�");
--
Gitblit v1.9.1