From 43d6ae86bc229a1a75637fae33be378e105016e3 Mon Sep 17 00:00:00 2001
From: cl <1442464845@qq.com>
Date: 星期日, 29 三月 2026 20:47:11 +0800
Subject: [PATCH] RCS通知
---
rsf-server/src/main/java/com/vincent/rsf/server/api/service/impl/ReceiveMsgServiceImpl.java | 30 ++++++++++++++++++++++++++++++
1 files changed, 30 insertions(+), 0 deletions(-)
diff --git a/rsf-server/src/main/java/com/vincent/rsf/server/api/service/impl/ReceiveMsgServiceImpl.java b/rsf-server/src/main/java/com/vincent/rsf/server/api/service/impl/ReceiveMsgServiceImpl.java
index a1b887c..90b7bdd 100644
--- a/rsf-server/src/main/java/com/vincent/rsf/server/api/service/impl/ReceiveMsgServiceImpl.java
+++ b/rsf-server/src/main/java/com/vincent/rsf/server/api/service/impl/ReceiveMsgServiceImpl.java
@@ -118,7 +118,34 @@
private WarehouseAreasItemService warehouseAreasItemService;
@Autowired
private ConfigService configService;
+ @Autowired
+ private TaskItemService taskItemService;
+ @Autowired
+ private TaskService taskService;
+ /**
+ * 浜戜粨鏀瑰崟/鍙栨秷鍓嶏細浠诲姟鏄庣粏宸插叧鑱旇鍗曟嵁涓斾富浠诲姟鏈�昏緫鍒犻櫎鍒欎笉鍏佽
+ */
+ private void assertWkOrderNoLinkedTask(Long wkOrderId) {
+ if (wkOrderId == null) {
+ return;
+ }
+ List<TaskItem> links = taskItemService.list(new LambdaQueryWrapper<TaskItem>()
+ .select(TaskItem::getTaskId)
+ .and(w -> w.eq(TaskItem::getOrderId, wkOrderId)
+ .or(o -> o.eq(TaskItem::getSourceId, wkOrderId)
+ .eq(TaskItem::getOrderType, OrderType.ORDER_OUT.type))));
+ if (links.isEmpty()) {
+ return;
+ }
+ Set<Long> taskIds = links.stream().map(TaskItem::getTaskId).filter(Objects::nonNull).collect(Collectors.toSet());
+ if (taskIds.isEmpty()) {
+ return;
+ }
+ if (taskService.count(new LambdaQueryWrapper<Task>().in(Task::getId, taskIds)) > 0) {
+ throw new CoolException("璇ュ崟鎹凡鐢熸垚浠诲姟锛屼笉鍙慨鏀广�佸彇娑堟垨鍒犻櫎锛侊紒");
+ }
+ }
/**
* @author Ryan
@@ -465,6 +492,7 @@
WkOrder order = asnOrderService.getOne(new LambdaQueryWrapper<WkOrder>()
.eq(WkOrder::getPoCode, syncOrder.getOrderInternalCode()));
if (!Objects.isNull(order)) {
+ assertWkOrderNoLinkedTask(order.getId());
// 浠呮湭鎵ц鐘舵�佸彲琚� order/add 淇敼锛堝叆搴撴湭鎵ц銆佸嚭搴撲换鍔″垵濮嬶級
List<Short> editableStatus = Arrays.asList(AsnExceStatus.ASN_EXCE_STATUS_UN_EXCE.val
,AsnExceStatus.ASN_EXCE_STATUS_UN_EXCE.val
@@ -943,6 +971,7 @@
if (Objects.isNull(wkOrder)) {
throw new CoolException("璇风‘璁ゅ崟鎹細" + order.getOrderNo() + "鏄惁宸茬粡鎵ц鎴栨槸鍚﹀悓姝ワ紒锛�");
}
+ assertWkOrderNoLinkedTask(wkOrder.getId());
order.getOrderItems().forEach(orderItem -> {
WkOrderItem wkOrderItem = asnOrderItemService.getOne(new LambdaUpdateWrapper<WkOrderItem>()
.eq(WkOrderItem::getMatnrCode, orderItem.getMatnr())
@@ -1006,6 +1035,7 @@
throw new CoolException("鍗曟嵁涓嶅瓨鍦紝鏃犳硶鍙栨秷锛侊紒璇锋彁渚涘崟鎹唴鐮�(orderInternalCode)鎴栧崟鍙�(orderNo)銆�");
}
final WkOrder finalWkOrder = wkOrder;
+ assertWkOrderNoLinkedTask(finalWkOrder.getId());
// 宸茬粍鎵樹笉鍙彇娑�
long pakinCount = waitPakinItemService.count(new LambdaQueryWrapper<WaitPakinItem>()
.eq(WaitPakinItem::getAsnId, finalWkOrder.getId()));
--
Gitblit v1.9.1