From 962f78c8383e7c884ddb08c951c15e5ba6eb4cb8 Mon Sep 17 00:00:00 2001
From: liu <2021943741@qq.com>
Date: 星期五, 23 十月 2026 15:43:33 +0800
Subject: [PATCH] fix: 完善审批流程与业务状态校验

---
 yudao-module-mes/src/main/java/cn/iocoder/yudao/module/mes/service/pd/processparamtemplate/MesPdProcessParamTemplateServiceImpl.java |   27 ++++++++++++++++++++++-----
 1 files changed, 22 insertions(+), 5 deletions(-)

diff --git a/yudao-module-mes/src/main/java/cn/iocoder/yudao/module/mes/service/pd/processparamtemplate/MesPdProcessParamTemplateServiceImpl.java b/yudao-module-mes/src/main/java/cn/iocoder/yudao/module/mes/service/pd/processparamtemplate/MesPdProcessParamTemplateServiceImpl.java
index d12b356..c3e4fb7 100644
--- a/yudao-module-mes/src/main/java/cn/iocoder/yudao/module/mes/service/pd/processparamtemplate/MesPdProcessParamTemplateServiceImpl.java
+++ b/yudao-module-mes/src/main/java/cn/iocoder/yudao/module/mes/service/pd/processparamtemplate/MesPdProcessParamTemplateServiceImpl.java
@@ -56,9 +56,16 @@
     @Override
     @Transactional(rollbackFor = Exception.class)
     public Long createProcessParamTemplate(MesPdProcessParamTemplateSaveReqVO createReqVO) {
-        // 1. 鐢熸垚妯℃澘缂栫爜
-        String templateCode = autoCodeRecordService.generateAutoCode(
-                MesMdAutoCodeRuleCodeEnum.PD_PROCESS_PARAM_TEMPLATE_CODE.getCode());
+        // 1. 浣跨敤鎵嬪~缂栫爜锛屾垨鑷姩鐢熸垚缂栫爜
+        String templateCode = createReqVO.getTemplateCode();
+        if (StrUtil.isNotBlank(templateCode)) {
+            if (templateMapper.selectByTemplateCode(templateCode) != null) {
+                throw exception(PD_PROCESS_PARAM_TEMPLATE_CODE_DUPLICATE);
+            }
+        } else {
+            templateCode = autoCodeRecordService.generateAutoCode(
+                    MesMdAutoCodeRuleCodeEnum.PD_PROCESS_PARAM_TEMPLATE_CODE.getCode());
+        }
         // 2. 鎻掑叆妯℃澘涓昏〃
         MesPdProcessParamTemplateDO template = BeanUtils.toBean(createReqVO, MesPdProcessParamTemplateDO.class);
         template.setTemplateCode(templateCode);
@@ -72,9 +79,19 @@
     @Transactional(rollbackFor = Exception.class)
     public void updateProcessParamTemplate(MesPdProcessParamTemplateSaveReqVO updateReqVO) {
         // 1. 鏍¢獙瀛樺湪
-        validateProcessParamTemplateExists(updateReqVO.getId());
-        // 2. 鏇存柊妯℃澘涓昏〃
+        MesPdProcessParamTemplateDO existing = validateProcessParamTemplateExists(updateReqVO.getId());
+        // 2. 鏇存柊妯℃澘涓昏〃锛氱紪鐮佺暀绌烘垨鏈彉鍖栧垯涓嶄慨鏀癸紱濉啓浜嗘柊缂栫爜鍒欐牎楠屽敮涓�
         MesPdProcessParamTemplateDO updateObj = BeanUtils.toBean(updateReqVO, MesPdProcessParamTemplateDO.class);
+        String templateCode = updateReqVO.getTemplateCode();
+        if (StrUtil.isNotBlank(templateCode) && !StrUtil.equals(templateCode, existing.getTemplateCode())) {
+            if (templateMapper.selectByTemplateCode(templateCode) != null) {
+                throw exception(PD_PROCESS_PARAM_TEMPLATE_CODE_DUPLICATE);
+            }
+            updateObj.setTemplateCode(templateCode);
+        } else {
+            // 缃┖锛岄伩鍏� MyBatis-Plus 鏇存柊鏃惰鐩栧師缂栫爜
+            updateObj.setTemplateCode(null);
+        }
         templateMapper.updateById(updateObj);
         // 3. 鍒犻櫎鏃ф槑缁嗗苟閲嶆柊鎻掑叆锛堝揩鐓фā寮忥細鍏堝垹鍚庢彃锛�
         detailMapper.deleteByTemplateId(updateReqVO.getId());

--
Gitblit v1.9.3