From defe1e1c3ade87de0a7990f565f08f93aeb2decc Mon Sep 17 00:00:00 2001
From: gaoluyang <2820782392@qq.com>
Date: 星期日, 08 十一月 2026 19:31:46 +0800
Subject: [PATCH] fix(bpm): 统一审批标题单号并收紧各模块提交校验
---
yudao-module-mes/src/main/java/cn/iocoder/yudao/module/mes/service/wm/salesnotice/MesWmSalesNoticeServiceImpl.java | 13 ++++++++++---
1 files changed, 10 insertions(+), 3 deletions(-)
diff --git a/yudao-module-mes/src/main/java/cn/iocoder/yudao/module/mes/service/wm/salesnotice/MesWmSalesNoticeServiceImpl.java b/yudao-module-mes/src/main/java/cn/iocoder/yudao/module/mes/service/wm/salesnotice/MesWmSalesNoticeServiceImpl.java
index 7745b64..786327d 100644
--- a/yudao-module-mes/src/main/java/cn/iocoder/yudao/module/mes/service/wm/salesnotice/MesWmSalesNoticeServiceImpl.java
+++ b/yudao-module-mes/src/main/java/cn/iocoder/yudao/module/mes/service/wm/salesnotice/MesWmSalesNoticeServiceImpl.java
@@ -44,6 +44,7 @@
import java.util.HashMap;
import java.util.List;
import java.util.Map;
+import java.util.Objects;
import java.util.Set;
import static cn.iocoder.yudao.framework.common.exception.util.ServiceExceptionUtil.exception;
@@ -142,7 +143,10 @@
@Transactional(rollbackFor = Exception.class)
public void submitSalesNotice(Long id, String processDefinitionKey, Long userId) {
// 1.1 鏍¢獙瀛樺湪 + 鑽夌鐘舵��
- MesWmSalesNoticeDO notice = validateSalesNoticeExistsAndDraft(id);
+ MesWmSalesNoticeDO notice = validateSalesNoticeExists(id);
+ if (ObjUtil.notEqual(PREPARE.getStatus(), notice.getStatus())) {
+ throw exception(WM_SALES_NOTICE_STATUS_NOT_ALLOW_SUBMIT);
+ }
// 1.2 妫�鏌ユ槸鍚︽湁琛岄」鐩�
List<MesWmSalesNoticeLineDO> lines = salesNoticeLineService.getSalesNoticeLineListByNoticeId(id);
if (CollUtil.isEmpty(lines)) {
@@ -163,13 +167,16 @@
}
validateSalesNoticeApproveCategoryAndProcessDefinition();
ProcessDefinition processDefinition = bpmProcessDefinitionService.getActiveProcessDefinition(processDefinitionKey);
- if (processDefinition == null) {
+ if (processDefinition == null || bpmProcessDefinitionService
+ .getProcessDefinitionInfoListByCategory(SALES_DELIVERY_APPROVE_CATEGORY_CODE).stream()
+ .noneMatch(info -> Objects.equals(info.getProcessDefinitionId(), processDefinition.getId()))) {
throw exception(WM_SALES_NOTICE_BPM_PROCESS_DEFINITION_NOT_EXISTS);
}
// 4. 鍒涘缓瀹℃壒娴佺▼瀹炰緥锛岃繘鍏ュ鎵逛腑
String processInstanceId = bpmProcessInstanceApi.createProcessInstance(userId, new BpmProcessInstanceCreateReqDTO()
- .setProcessDefinitionKey(processDefinitionKey).setBusinessKey(String.valueOf(id)));
+ .setProcessDefinitionKey(processDefinitionKey).setBusinessKey(String.valueOf(id))
+ .setVariables(Map.of("businessNo", notice.getCode())));
salesNoticeMapper.updateById(new MesWmSalesNoticeDO()
.setId(id).setProcessInstanceId(processInstanceId).setStatus(APPROVING.getStatus()));
}
--
Gitblit v1.9.3