Commit 90a3c2a0659472b25664ea6f31425722afec73cc

Authored by YunaiV
1 parent 93ded9f0

✨ feat(MES): 添加流转卡草稿状态校验功能

新增流转卡草稿状态校验,确保只有在草稿状态下才能修改或删除流转卡。更新相关服务和方法以支持此功能,提升系统的健壮性和数据一致性。
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) {