From cea8396d93b31fe6037a0558febcabb2169363a8 Mon Sep 17 00:00:00 2001
From: gaoluyang <2820782392@qq.com>
Date: 星期三, 14 十月 2026 14:02:25 +0800
Subject: [PATCH] feat(wm): 入库单和领料单支持手工填写关联信息
---
yudao-module-mes/src/main/java/cn/iocoder/yudao/module/mes/service/wm/itemreceipt/MesWmItemReceiptServiceImpl.java | 19 ++++++++++++++++---
1 files changed, 16 insertions(+), 3 deletions(-)
diff --git a/yudao-module-mes/src/main/java/cn/iocoder/yudao/module/mes/service/wm/itemreceipt/MesWmItemReceiptServiceImpl.java b/yudao-module-mes/src/main/java/cn/iocoder/yudao/module/mes/service/wm/itemreceipt/MesWmItemReceiptServiceImpl.java
index aa30333..c0026fc 100644
--- a/yudao-module-mes/src/main/java/cn/iocoder/yudao/module/mes/service/wm/itemreceipt/MesWmItemReceiptServiceImpl.java
+++ b/yudao-module-mes/src/main/java/cn/iocoder/yudao/module/mes/service/wm/itemreceipt/MesWmItemReceiptServiceImpl.java
@@ -113,12 +113,15 @@
private void validateItemReceiptSaveData(MesWmItemReceiptSaveReqVO reqVO) {
// 鏍¢獙缂栫爜鍞竴
validateCodeUnique(reqVO.getId(), reqVO.getCode());
- // 鏍¢獙渚涘簲鍟嗗瓨鍦紙閲囪喘鍏ュ簱浣跨敤 ERP 渚涘簲鍟嗭級
- srmSupplierApi.getSupplier(reqVO.getVendorId());
+ // 鏍¢獙渚涘簲鍟嗗瓨鍦紙閲囪喘鍏ュ簱浣跨敤 ERP 渚涘簲鍟嗭級锛涗緵搴斿晢宸叉敼涓哄彲閫夛紝鍏佽鎵嬪伐濉啓鍚嶇О锛屾鏃朵笉鏍¢獙涓绘暟鎹�
+ if (reqVO.getVendorId() != null) {
+ srmSupplierApi.getSupplier(reqVO.getVendorId());
+ }
// 鏍¢獙鍒拌揣閫氱煡鍗曞瓨鍦�
if (reqVO.getNoticeId() != null) {
MesWmArrivalNoticeDO notice = arrivalNoticeService.validateArrivalNoticeReadyForReceipt(reqVO.getNoticeId());
- if (ObjUtil.notEqual(notice.getVendorId(), reqVO.getVendorId())) {
+ // 浠呭湪閫夋嫨浜嗕緵搴斿晢涓绘暟鎹椂鎵嶆瘮瀵逛笌鍒拌揣閫氱煡鍗曠殑涓�鑷存�э紱鎵嬪~渚涘簲鍟嗗悕绉版椂璺宠繃
+ if (reqVO.getVendorId() != null && ObjUtil.notEqual(notice.getVendorId(), reqVO.getVendorId())) {
throw exception(WM_ARRIVAL_NOTICE_VENDOR_MISMATCH);
}
}
@@ -445,6 +448,16 @@
// 2. 鍒涘缓 BPM 娴佺▼瀹炰緥
Long userId = getCurrentUserId();
+ // 鍏ㄥ眬鍏嶅鎵癸細涓氬姟鏍¢獙閫氳繃鍚庣洿鎺ユ墽琛屽鎵归�氳繃閫昏緫锛屾棤闇�娴佺▼妯″瀷銆�
+ if (processInstanceApi.isGlobalAutoApprove()) {
+ itemReceiptMapper.updateById(new MesWmItemReceiptDO()
+ .setId(id)
+ .setStatus(MesWmItemReceiptStatusEnum.APPROVING.getStatus())
+ .setProcessInstanceId(""));
+ updateItemReceiptAuditStatus(id, cn.iocoder.yudao.module.bpm.enums.task.BpmProcessInstanceStatusEnum.APPROVE.getStatus());
+ return;
+ }
+
String processInstanceId = processInstanceApi.createProcessInstance(userId,
new BpmProcessInstanceCreateReqDTO()
.setProcessDefinitionKey(processDefinitionKey)
--
Gitblit v1.9.3