From 90a3c2a0659472b25664ea6f31425722afec73cc Mon Sep 17 00:00:00 2001 From: YunaiV Date: Mon, 13 Apr 2026 22:52:48 +0800 Subject: [PATCH] ✨ feat(MES): 添加流转卡草稿状态校验功能 --- yudao-module-mes/src/main/java/cn/iocoder/yudao/module/mes/enums/ErrorCodeConstants.java | 1 + yudao-module-mes/src/main/java/cn/iocoder/yudao/module/mes/service/pro/card/MesProCardProcessServiceImpl.java | 17 +++++++++++------ yudao-module-mes/src/main/java/cn/iocoder/yudao/module/mes/service/pro/card/MesProCardService.java | 7 +++++++ yudao-module-mes/src/main/java/cn/iocoder/yudao/module/mes/service/pro/card/MesProCardServiceImpl.java | 16 ++++++++++++---- 4 files changed, 31 insertions(+), 10 deletions(-) diff --git a/yudao-module-mes/src/main/java/cn/iocoder/yudao/module/mes/enums/ErrorCodeConstants.java b/yudao-module-mes/src/main/java/cn/iocoder/yudao/module/mes/enums/ErrorCodeConstants.java index 4b4e697..14c22c2 100644 --- a/yudao-module-mes/src/main/java/cn/iocoder/yudao/module/mes/enums/ErrorCodeConstants.java +++ b/yudao-module-mes/src/main/java/cn/iocoder/yudao/module/mes/enums/ErrorCodeConstants.java @@ -305,6 +305,7 @@ public interface ErrorCodeConstants { ErrorCode PRO_CARD_CODE_DUPLICATE = new ErrorCode(1_040_507_001, "流转卡编码已存在"); ErrorCode PRO_CARD_STATUS_ERROR = new ErrorCode(1_040_507_002, "流转卡状态不正确"); ErrorCode PRO_CARD_CANCEL_NOT_ALLOWED = new ErrorCode(1_040_507_003, "已完成或已取消的流转卡不允许取消"); + ErrorCode PRO_CARD_NOT_PREPARE = new ErrorCode(1_040_507_004, "流转卡不是草稿状态,不允许修改或删除"); // ========== MES 生产管理-流转卡工序(1-040-507-100) ========== ErrorCode PRO_CARD_PROCESS_NOT_EXISTS = new ErrorCode(1_040_507_100, "流转卡工序记录不存在"); diff --git a/yudao-module-mes/src/main/java/cn/iocoder/yudao/module/mes/service/pro/card/MesProCardProcessServiceImpl.java b/yudao-module-mes/src/main/java/cn/iocoder/yudao/module/mes/service/pro/card/MesProCardProcessServiceImpl.java index 7153f2e..de34fb2 100644 --- a/yudao-module-mes/src/main/java/cn/iocoder/yudao/module/mes/service/pro/card/MesProCardProcessServiceImpl.java +++ b/yudao-module-mes/src/main/java/cn/iocoder/yudao/module/mes/service/pro/card/MesProCardProcessServiceImpl.java @@ -35,7 +35,7 @@ public class MesProCardProcessServiceImpl implements MesProCardProcessService { @Override public Long createCardProcess(MesProCardProcessSaveReqVO createReqVO) { - // 1. 校验关联数据 + // 1. 校验关联数据(含流转卡草稿状态校验) validateCardProcessSaveData(createReqVO); // 2. 插入 @@ -48,7 +48,7 @@ public class MesProCardProcessServiceImpl implements MesProCardProcessService { public void updateCardProcess(MesProCardProcessSaveReqVO updateReqVO) { // 1.1 校验存在 validateCardProcessExists(updateReqVO.getId()); - // 1.2 校验关联数据 + // 1.2 校验关联数据(含流转卡草稿状态校验) validateCardProcessSaveData(updateReqVO); // 2. 更新 @@ -59,9 +59,14 @@ public class MesProCardProcessServiceImpl implements MesProCardProcessService { @Override public void deleteCardProcess(Long id) { // 1. 校验存在 - validateCardProcessExists(id); + MesProCardProcessDO cardProcess = cardProcessMapper.selectById(id); + if (cardProcess == null) { + throw exception(PRO_CARD_PROCESS_NOT_EXISTS); + } + // 2. 校验流转卡为草稿状态 + cardService.validateCardExistsAndPrepare(cardProcess.getCardId()); - // 2. 删除 + // 3. 删除 cardProcessMapper.deleteById(id); } @@ -84,8 +89,8 @@ public class MesProCardProcessServiceImpl implements MesProCardProcessService { } private void validateCardProcessSaveData(MesProCardProcessSaveReqVO reqVO) { - // 校验流转卡存在 - cardService.validateCardExists(reqVO.getCardId()); + // 校验流转卡存在 + 草稿状态 + cardService.validateCardExistsAndPrepare(reqVO.getCardId()); // 校验工序存在 if (reqVO.getProcessId() != null) { processService.validateProcessExistsAndEnable(reqVO.getProcessId()); diff --git a/yudao-module-mes/src/main/java/cn/iocoder/yudao/module/mes/service/pro/card/MesProCardService.java b/yudao-module-mes/src/main/java/cn/iocoder/yudao/module/mes/service/pro/card/MesProCardService.java index 0ff43b6..b43e742 100644 --- a/yudao-module-mes/src/main/java/cn/iocoder/yudao/module/mes/service/pro/card/MesProCardService.java +++ b/yudao-module-mes/src/main/java/cn/iocoder/yudao/module/mes/service/pro/card/MesProCardService.java @@ -43,6 +43,13 @@ public interface MesProCardService { void validateCardExists(Long id); /** + * 校验生产流转卡存在,且为草稿状态 + * + * @param id 编号 + */ + void validateCardExistsAndPrepare(Long id); + + /** * 获得生产流转卡 * * @param id 编号 diff --git a/yudao-module-mes/src/main/java/cn/iocoder/yudao/module/mes/service/pro/card/MesProCardServiceImpl.java b/yudao-module-mes/src/main/java/cn/iocoder/yudao/module/mes/service/pro/card/MesProCardServiceImpl.java index 0022edf..86eb479 100644 --- a/yudao-module-mes/src/main/java/cn/iocoder/yudao/module/mes/service/pro/card/MesProCardServiceImpl.java +++ b/yudao-module-mes/src/main/java/cn/iocoder/yudao/module/mes/service/pro/card/MesProCardServiceImpl.java @@ -63,8 +63,8 @@ public class MesProCardServiceImpl implements MesProCardService { @Override public void updateCard(MesProCardSaveReqVO updateReqVO) { - // 1.1 校验存在 - validateCardExists(updateReqVO.getId()); + // 1.1 校验存在 + 草稿状态 + validateCardExistsAndPrepare(updateReqVO.getId()); // 1.2 校验关联数据 validateCardSaveData(updateReqVO); @@ -76,8 +76,8 @@ public class MesProCardServiceImpl implements MesProCardService { @Override @Transactional(rollbackFor = Exception.class) public void deleteCard(Long id) { - // 1. 校验存在 - validateCardExists(id); + // 1. 校验存在 + 草稿状态 + validateCardExistsAndPrepare(id); // 2. 删除流转卡 + 级联删除工序记录 cardMapper.deleteById(id); @@ -137,6 +137,14 @@ public class MesProCardServiceImpl implements MesProCardService { validateCardExistsInternal(id); } + @Override + public void validateCardExistsAndPrepare(Long id) { + MesProCardDO card = validateCardExistsInternal(id); + if (ObjUtil.notEqual(MesProWorkOrderStatusEnum.PREPARE.getStatus(), card.getStatus())) { + throw exception(PRO_CARD_NOT_PREPARE); + } + } + private MesProCardDO validateCardExistsInternal(Long id) { MesProCardDO card = cardMapper.selectById(id); if (card == null) { -- libgit2 0.21.4