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,6 +305,7 @@ public interface ErrorCodeConstants { | ||
| 305 | ErrorCode PRO_CARD_CODE_DUPLICATE = new ErrorCode(1_040_507_001, "流转卡编码已存在"); | 305 | ErrorCode PRO_CARD_CODE_DUPLICATE = new ErrorCode(1_040_507_001, "流转卡编码已存在"); |
| 306 | ErrorCode PRO_CARD_STATUS_ERROR = new ErrorCode(1_040_507_002, "流转卡状态不正确"); | 306 | ErrorCode PRO_CARD_STATUS_ERROR = new ErrorCode(1_040_507_002, "流转卡状态不正确"); |
| 307 | ErrorCode PRO_CARD_CANCEL_NOT_ALLOWED = new ErrorCode(1_040_507_003, "已完成或已取消的流转卡不允许取消"); | 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 | // ========== MES 生产管理-流转卡工序(1-040-507-100) ========== | 309 | // ========== MES 生产管理-流转卡工序(1-040-507-100) ========== |
| 309 | ErrorCode PRO_CARD_PROCESS_NOT_EXISTS = new ErrorCode(1_040_507_100, "流转卡工序记录不存在"); | 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,7 +35,7 @@ public class MesProCardProcessServiceImpl implements MesProCardProcessService { | ||
| 35 | 35 | ||
| 36 | @Override | 36 | @Override |
| 37 | public Long createCardProcess(MesProCardProcessSaveReqVO createReqVO) { | 37 | public Long createCardProcess(MesProCardProcessSaveReqVO createReqVO) { |
| 38 | - // 1. 校验关联数据 | 38 | + // 1. 校验关联数据(含流转卡草稿状态校验) |
| 39 | validateCardProcessSaveData(createReqVO); | 39 | validateCardProcessSaveData(createReqVO); |
| 40 | 40 | ||
| 41 | // 2. 插入 | 41 | // 2. 插入 |
| @@ -48,7 +48,7 @@ public class MesProCardProcessServiceImpl implements MesProCardProcessService { | @@ -48,7 +48,7 @@ public class MesProCardProcessServiceImpl implements MesProCardProcessService { | ||
| 48 | public void updateCardProcess(MesProCardProcessSaveReqVO updateReqVO) { | 48 | public void updateCardProcess(MesProCardProcessSaveReqVO updateReqVO) { |
| 49 | // 1.1 校验存在 | 49 | // 1.1 校验存在 |
| 50 | validateCardProcessExists(updateReqVO.getId()); | 50 | validateCardProcessExists(updateReqVO.getId()); |
| 51 | - // 1.2 校验关联数据 | 51 | + // 1.2 校验关联数据(含流转卡草稿状态校验) |
| 52 | validateCardProcessSaveData(updateReqVO); | 52 | validateCardProcessSaveData(updateReqVO); |
| 53 | 53 | ||
| 54 | // 2. 更新 | 54 | // 2. 更新 |
| @@ -59,9 +59,14 @@ public class MesProCardProcessServiceImpl implements MesProCardProcessService { | @@ -59,9 +59,14 @@ public class MesProCardProcessServiceImpl implements MesProCardProcessService { | ||
| 59 | @Override | 59 | @Override |
| 60 | public void deleteCardProcess(Long id) { | 60 | public void deleteCardProcess(Long id) { |
| 61 | // 1. 校验存在 | 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 | cardProcessMapper.deleteById(id); | 70 | cardProcessMapper.deleteById(id); |
| 66 | } | 71 | } |
| 67 | 72 | ||
| @@ -84,8 +89,8 @@ public class MesProCardProcessServiceImpl implements MesProCardProcessService { | @@ -84,8 +89,8 @@ public class MesProCardProcessServiceImpl implements MesProCardProcessService { | ||
| 84 | } | 89 | } |
| 85 | 90 | ||
| 86 | private void validateCardProcessSaveData(MesProCardProcessSaveReqVO reqVO) { | 91 | private void validateCardProcessSaveData(MesProCardProcessSaveReqVO reqVO) { |
| 87 | - // 校验流转卡存在 | ||
| 88 | - cardService.validateCardExists(reqVO.getCardId()); | 92 | + // 校验流转卡存在 + 草稿状态 |
| 93 | + cardService.validateCardExistsAndPrepare(reqVO.getCardId()); | ||
| 89 | // 校验工序存在 | 94 | // 校验工序存在 |
| 90 | if (reqVO.getProcessId() != null) { | 95 | if (reqVO.getProcessId() != null) { |
| 91 | processService.validateProcessExistsAndEnable(reqVO.getProcessId()); | 96 | processService.validateProcessExistsAndEnable(reqVO.getProcessId()); |
yudao-module-mes/src/main/java/cn/iocoder/yudao/module/mes/service/pro/card/MesProCardService.java
| @@ -43,6 +43,13 @@ public interface MesProCardService { | @@ -43,6 +43,13 @@ public interface MesProCardService { | ||
| 43 | void validateCardExists(Long id); | 43 | void validateCardExists(Long id); |
| 44 | 44 | ||
| 45 | /** | 45 | /** |
| 46 | + * 校验生产流转卡存在,且为草稿状态 | ||
| 47 | + * | ||
| 48 | + * @param id 编号 | ||
| 49 | + */ | ||
| 50 | + void validateCardExistsAndPrepare(Long id); | ||
| 51 | + | ||
| 52 | + /** | ||
| 46 | * 获得生产流转卡 | 53 | * 获得生产流转卡 |
| 47 | * | 54 | * |
| 48 | * @param id 编号 | 55 | * @param id 编号 |
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,8 +63,8 @@ public class MesProCardServiceImpl implements MesProCardService { | ||
| 63 | 63 | ||
| 64 | @Override | 64 | @Override |
| 65 | public void updateCard(MesProCardSaveReqVO updateReqVO) { | 65 | public void updateCard(MesProCardSaveReqVO updateReqVO) { |
| 66 | - // 1.1 校验存在 | ||
| 67 | - validateCardExists(updateReqVO.getId()); | 66 | + // 1.1 校验存在 + 草稿状态 |
| 67 | + validateCardExistsAndPrepare(updateReqVO.getId()); | ||
| 68 | // 1.2 校验关联数据 | 68 | // 1.2 校验关联数据 |
| 69 | validateCardSaveData(updateReqVO); | 69 | validateCardSaveData(updateReqVO); |
| 70 | 70 | ||
| @@ -76,8 +76,8 @@ public class MesProCardServiceImpl implements MesProCardService { | @@ -76,8 +76,8 @@ public class MesProCardServiceImpl implements MesProCardService { | ||
| 76 | @Override | 76 | @Override |
| 77 | @Transactional(rollbackFor = Exception.class) | 77 | @Transactional(rollbackFor = Exception.class) |
| 78 | public void deleteCard(Long id) { | 78 | public void deleteCard(Long id) { |
| 79 | - // 1. 校验存在 | ||
| 80 | - validateCardExists(id); | 79 | + // 1. 校验存在 + 草稿状态 |
| 80 | + validateCardExistsAndPrepare(id); | ||
| 81 | 81 | ||
| 82 | // 2. 删除流转卡 + 级联删除工序记录 | 82 | // 2. 删除流转卡 + 级联删除工序记录 |
| 83 | cardMapper.deleteById(id); | 83 | cardMapper.deleteById(id); |
| @@ -137,6 +137,14 @@ public class MesProCardServiceImpl implements MesProCardService { | @@ -137,6 +137,14 @@ public class MesProCardServiceImpl implements MesProCardService { | ||
| 137 | validateCardExistsInternal(id); | 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 | private MesProCardDO validateCardExistsInternal(Long id) { | 148 | private MesProCardDO validateCardExistsInternal(Long id) { |
| 141 | MesProCardDO card = cardMapper.selectById(id); | 149 | MesProCardDO card = cardMapper.selectById(id); |
| 142 | if (card == null) { | 150 | if (card == null) { |