Commit 90a3c2a0659472b25664ea6f31425722afec73cc
1 parent
93ded9f0
✨ feat(MES): 添加流转卡草稿状态校验功能
新增流转卡草稿状态校验,确保只有在草稿状态下才能修改或删除流转卡。更新相关服务和方法以支持此功能,提升系统的健壮性和数据一致性。
Showing
4 changed files
with
31 additions
and
10 deletions
yudao-module-mes/src/main/java/cn/iocoder/yudao/module/mes/enums/ErrorCodeConstants.java
| ... | ... | @@ -305,6 +305,7 @@ public interface ErrorCodeConstants { |
| 305 | 305 | ErrorCode PRO_CARD_CODE_DUPLICATE = new ErrorCode(1_040_507_001, "流转卡编码已存在"); |
| 306 | 306 | ErrorCode PRO_CARD_STATUS_ERROR = new ErrorCode(1_040_507_002, "流转卡状态不正确"); |
| 307 | 307 | ErrorCode PRO_CARD_CANCEL_NOT_ALLOWED = new ErrorCode(1_040_507_003, "已完成或已取消的流转卡不允许取消"); |
| 308 | + ErrorCode PRO_CARD_NOT_PREPARE = new ErrorCode(1_040_507_004, "流转卡不是草稿状态,不允许修改或删除"); | |
| 308 | 309 | // ========== MES 生产管理-流转卡工序(1-040-507-100) ========== |
| 309 | 310 | ErrorCode PRO_CARD_PROCESS_NOT_EXISTS = new ErrorCode(1_040_507_100, "流转卡工序记录不存在"); |
| 310 | 311 | ... | ... |
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 { |
| 35 | 35 | |
| 36 | 36 | @Override |
| 37 | 37 | public Long createCardProcess(MesProCardProcessSaveReqVO createReqVO) { |
| 38 | - // 1. 校验关联数据 | |
| 38 | + // 1. 校验关联数据(含流转卡草稿状态校验) | |
| 39 | 39 | validateCardProcessSaveData(createReqVO); |
| 40 | 40 | |
| 41 | 41 | // 2. 插入 |
| ... | ... | @@ -48,7 +48,7 @@ public class MesProCardProcessServiceImpl implements MesProCardProcessService { |
| 48 | 48 | public void updateCardProcess(MesProCardProcessSaveReqVO updateReqVO) { |
| 49 | 49 | // 1.1 校验存在 |
| 50 | 50 | validateCardProcessExists(updateReqVO.getId()); |
| 51 | - // 1.2 校验关联数据 | |
| 51 | + // 1.2 校验关联数据(含流转卡草稿状态校验) | |
| 52 | 52 | validateCardProcessSaveData(updateReqVO); |
| 53 | 53 | |
| 54 | 54 | // 2. 更新 |
| ... | ... | @@ -59,9 +59,14 @@ public class MesProCardProcessServiceImpl implements MesProCardProcessService { |
| 59 | 59 | @Override |
| 60 | 60 | public void deleteCardProcess(Long id) { |
| 61 | 61 | // 1. 校验存在 |
| 62 | - validateCardProcessExists(id); | |
| 62 | + MesProCardProcessDO cardProcess = cardProcessMapper.selectById(id); | |
| 63 | + if (cardProcess == null) { | |
| 64 | + throw exception(PRO_CARD_PROCESS_NOT_EXISTS); | |
| 65 | + } | |
| 66 | + // 2. 校验流转卡为草稿状态 | |
| 67 | + cardService.validateCardExistsAndPrepare(cardProcess.getCardId()); | |
| 63 | 68 | |
| 64 | - // 2. 删除 | |
| 69 | + // 3. 删除 | |
| 65 | 70 | cardProcessMapper.deleteById(id); |
| 66 | 71 | } |
| 67 | 72 | |
| ... | ... | @@ -84,8 +89,8 @@ public class MesProCardProcessServiceImpl implements MesProCardProcessService { |
| 84 | 89 | } |
| 85 | 90 | |
| 86 | 91 | private void validateCardProcessSaveData(MesProCardProcessSaveReqVO reqVO) { |
| 87 | - // 校验流转卡存在 | |
| 88 | - cardService.validateCardExists(reqVO.getCardId()); | |
| 92 | + // 校验流转卡存在 + 草稿状态 | |
| 93 | + cardService.validateCardExistsAndPrepare(reqVO.getCardId()); | |
| 89 | 94 | // 校验工序存在 |
| 90 | 95 | if (reqVO.getProcessId() != null) { |
| 91 | 96 | processService.validateProcessExistsAndEnable(reqVO.getProcessId()); | ... | ... |
yudao-module-mes/src/main/java/cn/iocoder/yudao/module/mes/service/pro/card/MesProCardService.java
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 { |
| 63 | 63 | |
| 64 | 64 | @Override |
| 65 | 65 | public void updateCard(MesProCardSaveReqVO updateReqVO) { |
| 66 | - // 1.1 校验存在 | |
| 67 | - validateCardExists(updateReqVO.getId()); | |
| 66 | + // 1.1 校验存在 + 草稿状态 | |
| 67 | + validateCardExistsAndPrepare(updateReqVO.getId()); | |
| 68 | 68 | // 1.2 校验关联数据 |
| 69 | 69 | validateCardSaveData(updateReqVO); |
| 70 | 70 | |
| ... | ... | @@ -76,8 +76,8 @@ public class MesProCardServiceImpl implements MesProCardService { |
| 76 | 76 | @Override |
| 77 | 77 | @Transactional(rollbackFor = Exception.class) |
| 78 | 78 | public void deleteCard(Long id) { |
| 79 | - // 1. 校验存在 | |
| 80 | - validateCardExists(id); | |
| 79 | + // 1. 校验存在 + 草稿状态 | |
| 80 | + validateCardExistsAndPrepare(id); | |
| 81 | 81 | |
| 82 | 82 | // 2. 删除流转卡 + 级联删除工序记录 |
| 83 | 83 | cardMapper.deleteById(id); |
| ... | ... | @@ -137,6 +137,14 @@ public class MesProCardServiceImpl implements MesProCardService { |
| 137 | 137 | validateCardExistsInternal(id); |
| 138 | 138 | } |
| 139 | 139 | |
| 140 | + @Override | |
| 141 | + public void validateCardExistsAndPrepare(Long id) { | |
| 142 | + MesProCardDO card = validateCardExistsInternal(id); | |
| 143 | + if (ObjUtil.notEqual(MesProWorkOrderStatusEnum.PREPARE.getStatus(), card.getStatus())) { | |
| 144 | + throw exception(PRO_CARD_NOT_PREPARE); | |
| 145 | + } | |
| 146 | + } | |
| 147 | + | |
| 140 | 148 | private MesProCardDO validateCardExistsInternal(Long id) { |
| 141 | 149 | MesProCardDO card = cardMapper.selectById(id); |
| 142 | 150 | if (card == null) { | ... | ... |