Commit f882ef58d4180426806a60ce02aee9c2b159bd93

Authored by YunaiV
1 parent f258faea

✨ feat(mes): 更新缺陷类型字典和必填字段验证

修改缺陷相关的字典类型为 MES_DEFECT_TYPE,并在缺陷数量字段添加必填验证,确保数据完整性。
yudao-module-mes/src/main/java/cn/iocoder/yudao/module/mes/controller/admin/qc/defect/vo/MesQcDefectRespVO.java
@@ -29,7 +29,7 @@ public class MesQcDefectRespVO { @@ -29,7 +29,7 @@ public class MesQcDefectRespVO {
29 29
30 @Schema(description = "检测项类型", requiredMode = Schema.RequiredMode.REQUIRED, example = "APPEARANCE") 30 @Schema(description = "检测项类型", requiredMode = Schema.RequiredMode.REQUIRED, example = "APPEARANCE")
31 @ExcelProperty(value = "检测项类型", converter = DictConvert.class) 31 @ExcelProperty(value = "检测项类型", converter = DictConvert.class)
32 - @DictFormat(DictTypeConstants.MES_INDICATOR_TYPE) 32 + @DictFormat(DictTypeConstants.MES_DEFECT_TYPE)
33 private String type; 33 private String type;
34 34
35 @Schema(description = "缺陷等级", requiredMode = Schema.RequiredMode.REQUIRED, example = "1") 35 @Schema(description = "缺陷等级", requiredMode = Schema.RequiredMode.REQUIRED, example = "1")
yudao-module-mes/src/main/java/cn/iocoder/yudao/module/mes/controller/admin/qc/defectrecord/vo/MesQcDefectRecordSaveReqVO.java
@@ -37,7 +37,8 @@ public class MesQcDefectRecordSaveReqVO { @@ -37,7 +37,8 @@ public class MesQcDefectRecordSaveReqVO {
37 @InEnum(MesQcDefectLevelEnum.class) 37 @InEnum(MesQcDefectLevelEnum.class)
38 private Integer level; 38 private Integer level;
39 39
40 - @Schema(description = "缺陷数量", example = "1") 40 + @Schema(description = "缺陷数量", requiredMode = Schema.RequiredMode.REQUIRED, example = "1")
  41 + @NotNull(message = "缺陷数量不能为空")
41 private Integer quantity; 42 private Integer quantity;
42 43
43 @Schema(description = "备注", example = "备注") 44 @Schema(description = "备注", example = "备注")
yudao-module-mes/src/main/java/cn/iocoder/yudao/module/mes/dal/dataobject/qc/defect/MesQcDefectDO.java
@@ -34,12 +34,10 @@ public class MesQcDefectDO extends BaseDO { @@ -34,12 +34,10 @@ public class MesQcDefectDO extends BaseDO {
34 * 缺陷描述 34 * 缺陷描述
35 */ 35 */
36 private String name; 36 private String name;
37 - // TODO @AI:改成 mes_defect_type;字典 sql 变更;另外,dict constants 里也写下  
38 - // TODO @AI:枚举类;  
39 /** 37 /**
40 * 检测项类型 38 * 检测项类型
41 * 39 *
42 - * 字典类型 mes_index_type 40 + * 字典类型 {@link cn.iocoder.yudao.module.mes.enums.DictTypeConstants#MES_DEFECT_TYPE}
43 */ 41 */
44 private String type; 42 private String type;
45 /** 43 /**
yudao-module-mes/src/main/java/cn/iocoder/yudao/module/mes/enums/DictTypeConstants.java
@@ -21,6 +21,7 @@ public interface DictTypeConstants { @@ -21,6 +21,7 @@ public interface DictTypeConstants {
21 String MES_DV_SUBJECT_TYPE = "mes_dv_subject_type"; // MES 点检保养项目类型 21 String MES_DV_SUBJECT_TYPE = "mes_dv_subject_type"; // MES 点检保养项目类型
22 String MES_INDICATOR_TYPE = "mes_indicator_type"; // MES 检测项类型 22 String MES_INDICATOR_TYPE = "mes_indicator_type"; // MES 检测项类型
23 String MES_QC_RESULT_TYPE = "mes_qc_result_type"; // MES 质检结果值类型 23 String MES_QC_RESULT_TYPE = "mes_qc_result_type"; // MES 质检结果值类型
  24 + String MES_DEFECT_TYPE = "mes_defect_type"; // MES 缺陷检测项类型
24 String MES_DEFECT_LEVEL = "mes_defect_level"; // MES 缺陷等级 25 String MES_DEFECT_LEVEL = "mes_defect_level"; // MES 缺陷等级
25 String MES_PRO_WORK_ORDER_STATUS = "mes_pro_work_order_status"; // MES 生产工单状态 26 String MES_PRO_WORK_ORDER_STATUS = "mes_pro_work_order_status"; // MES 生产工单状态
26 String MES_PRO_WORK_ORDER_SOURCE_TYPE = "mes_pro_work_order_source_type"; // MES 工单来源类型 27 String MES_PRO_WORK_ORDER_SOURCE_TYPE = "mes_pro_work_order_source_type"; // MES 工单来源类型
yudao-module-mes/src/main/java/cn/iocoder/yudao/module/mes/enums/ErrorCodeConstants.java
@@ -246,6 +246,8 @@ public interface ErrorCodeConstants { @@ -246,6 +246,8 @@ public interface ErrorCodeConstants {
246 // ========== MES 生产管理-生产任务(1-040-503-000) ========== 246 // ========== MES 生产管理-生产任务(1-040-503-000) ==========
247 ErrorCode PRO_TASK_NOT_EXISTS = new ErrorCode(1_040_503_000, "生产任务不存在"); 247 ErrorCode PRO_TASK_NOT_EXISTS = new ErrorCode(1_040_503_000, "生产任务不存在");
248 ErrorCode PRO_TASK_ALREADY_FINISHED = new ErrorCode(1_040_503_001, "生产任务已完成或已取消,不能继续操作"); 248 ErrorCode PRO_TASK_ALREADY_FINISHED = new ErrorCode(1_040_503_001, "生产任务已完成或已取消,不能继续操作");
  249 + // ========== MES 生产管理-生产任务投料(1-040-503-100) ==========
  250 + ErrorCode PRO_TASK_ISSUE_NOT_EXISTS = new ErrorCode(1_040_503_100, "生产任务投料记录不存在");
249 251
250 // ========== MES 生产管理-安灯呼叫配置(1-040-504-000) ========== 252 // ========== MES 生产管理-安灯呼叫配置(1-040-504-000) ==========
251 ErrorCode PRO_ANDON_CONFIG_NOT_EXISTS = new ErrorCode(1_040_504_000, "安灯呼叫配置不存在"); 253 ErrorCode PRO_ANDON_CONFIG_NOT_EXISTS = new ErrorCode(1_040_504_000, "安灯呼叫配置不存在");
yudao-module-mes/src/main/java/cn/iocoder/yudao/module/mes/enums/md/autocode/MesMdAutoCodeRuleCodeEnum.java
@@ -47,7 +47,9 @@ public enum MesMdAutoCodeRuleCodeEnum { @@ -47,7 +47,9 @@ public enum MesMdAutoCodeRuleCodeEnum {
47 WM_MISC_ISSUE_CODE("WM_MISC_ISSUE_CODE", "杂项出库单编码"), 47 WM_MISC_ISSUE_CODE("WM_MISC_ISSUE_CODE", "杂项出库单编码"),
48 PRO_ROUTE_CODE("PRO_ROUTE_CODE", "工艺路线编码"), 48 PRO_ROUTE_CODE("PRO_ROUTE_CODE", "工艺路线编码"),
49 PRO_FEEDBACK_CODE("PRO_FEEDBACK_CODE", "生产报工单编码"), 49 PRO_FEEDBACK_CODE("PRO_FEEDBACK_CODE", "生产报工单编码"),
50 - PRO_WORK_ORDER_CODE("PRO_WORK_ORDER_CODE", "生产工单编码"); 50 + PRO_WORK_ORDER_CODE("PRO_WORK_ORDER_CODE", "生产工单编码"),
  51 + PRO_CARD_CODE("PRO_CARD_CODE", "流转卡编码"),
  52 + QC_DEFECT_CODE("QC_DEFECT_CODE", "缺陷类型编码");
51 53
52 /** 54 /**
53 * 规则代码 55 * 规则代码
yudao-module-mes/src/main/java/cn/iocoder/yudao/module/mes/service/pro/process/MesProProcessServiceImpl.java
@@ -42,11 +42,8 @@ public class MesProProcessServiceImpl implements MesProProcessService { @@ -42,11 +42,8 @@ public class MesProProcessServiceImpl implements MesProProcessService {
42 42
43 @Override 43 @Override
44 public Long createProcess(MesProProcessSaveReqVO createReqVO) { 44 public Long createProcess(MesProProcessSaveReqVO createReqVO) {
45 - // TODO @AI:validateXXXSaveData,传入 vo;  
46 - // 1.1 校验工序编码唯一性  
47 - validateProcessCodeUnique(null, createReqVO.getCode());  
48 - // 1.2 校验工序名称唯一性  
49 - validateProcessNameUnique(null, createReqVO.getName()); 45 + // 1. 校验编码、名称唯一
  46 + validateProcessSaveData(createReqVO);
50 47
51 // 2. 插入工序 48 // 2. 插入工序
52 MesProProcessDO process = BeanUtils.toBean(createReqVO, MesProProcessDO.class); 49 MesProProcessDO process = BeanUtils.toBean(createReqVO, MesProProcessDO.class);
@@ -58,11 +55,8 @@ public class MesProProcessServiceImpl implements MesProProcessService { @@ -58,11 +55,8 @@ public class MesProProcessServiceImpl implements MesProProcessService {
58 public void updateProcess(MesProProcessSaveReqVO updateReqVO) { 55 public void updateProcess(MesProProcessSaveReqVO updateReqVO) {
59 // 1.1 校验存在 56 // 1.1 校验存在
60 validateProcessExists(updateReqVO.getId()); 57 validateProcessExists(updateReqVO.getId());
61 - // TODO @AI:validateXXXSaveData,传入 vo;  
62 - // 1.2 校验工序编码唯一性  
63 - validateProcessCodeUnique(updateReqVO.getId(), updateReqVO.getCode());  
64 - // 1.3 校验工序名称唯一性  
65 - validateProcessNameUnique(updateReqVO.getId(), updateReqVO.getName()); 58 + // 1.2 校验编码、名称唯一
  59 + validateProcessSaveData(updateReqVO);
66 60
67 // 2. 更新工序 61 // 2. 更新工序
68 MesProProcessDO updateObj = BeanUtils.toBean(updateReqVO, MesProProcessDO.class); 62 MesProProcessDO updateObj = BeanUtils.toBean(updateReqVO, MesProProcessDO.class);
@@ -118,6 +112,13 @@ public class MesProProcessServiceImpl implements MesProProcessService { @@ -118,6 +112,13 @@ public class MesProProcessServiceImpl implements MesProProcessService {
118 } 112 }
119 } 113 }
120 114
  115 + private void validateProcessSaveData(MesProProcessSaveReqVO saveReqVO) {
  116 + // 1. 校验编码唯一
  117 + validateProcessCodeUnique(saveReqVO.getId(), saveReqVO.getCode());
  118 + // 2. 校验名称唯一
  119 + validateProcessNameUnique(saveReqVO.getId(), saveReqVO.getName());
  120 + }
  121 +
121 @Override 122 @Override
122 public MesProProcessDO getProcess(Long id) { 123 public MesProProcessDO getProcess(Long id) {
123 return processMapper.selectById(id); 124 return processMapper.selectById(id);
yudao-module-mes/src/main/java/cn/iocoder/yudao/module/mes/service/pro/task/MesProTaskIssueServiceImpl.java
@@ -64,6 +64,7 @@ public class MesProTaskIssueServiceImpl implements MesProTaskIssueService { @@ -64,6 +64,7 @@ public class MesProTaskIssueServiceImpl implements MesProTaskIssueService {
64 public void deleteTaskIssue(Long id) { 64 public void deleteTaskIssue(Long id) {
65 // 1. 校验存在 65 // 1. 校验存在
66 validateTaskIssueExists(id); 66 validateTaskIssueExists(id);
  67 +
67 // 2. 删除 68 // 2. 删除
68 taskIssueMapper.deleteById(id); 69 taskIssueMapper.deleteById(id);
69 } 70 }
yudao-module-mes/src/main/java/cn/iocoder/yudao/module/mes/service/qc/defect/MesQcDefectServiceImpl.java
@@ -33,10 +33,8 @@ public class MesQcDefectServiceImpl implements MesQcDefectService { @@ -33,10 +33,8 @@ public class MesQcDefectServiceImpl implements MesQcDefectService {
33 33
34 @Override 34 @Override
35 public Long createDefect(MesQcDefectSaveReqVO createReqVO) { 35 public Long createDefect(MesQcDefectSaveReqVO createReqVO) {
36 - // 校验编码唯一  
37 - validateDefectCodeUnique(null, createReqVO.getCode());  
38 - // 校验名称唯一  
39 - validateDefectNameUnique(null, createReqVO.getName()); 36 + // 校验编码、名称唯一
  37 + validateDefectSaveData(null, createReqVO);
40 38
41 // 插入 39 // 插入
42 MesQcDefectDO defect = BeanUtils.toBean(createReqVO, MesQcDefectDO.class); 40 MesQcDefectDO defect = BeanUtils.toBean(createReqVO, MesQcDefectDO.class);
@@ -48,10 +46,8 @@ public class MesQcDefectServiceImpl implements MesQcDefectService { @@ -48,10 +46,8 @@ public class MesQcDefectServiceImpl implements MesQcDefectService {
48 public void updateDefect(MesQcDefectSaveReqVO updateReqVO) { 46 public void updateDefect(MesQcDefectSaveReqVO updateReqVO) {
49 // 校验存在 47 // 校验存在
50 validateDefectExists(updateReqVO.getId()); 48 validateDefectExists(updateReqVO.getId());
51 - // 校验编码唯一  
52 - validateDefectCodeUnique(updateReqVO.getId(), updateReqVO.getCode());  
53 - // 校验名称唯一  
54 - validateDefectNameUnique(updateReqVO.getId(), updateReqVO.getName()); 49 + // 校验编码、名称唯一
  50 + validateDefectSaveData(updateReqVO.getId(), updateReqVO);
55 51
56 // 更新 52 // 更新
57 MesQcDefectDO updateObj = BeanUtils.toBean(updateReqVO, MesQcDefectDO.class); 53 MesQcDefectDO updateObj = BeanUtils.toBean(updateReqVO, MesQcDefectDO.class);
@@ -72,6 +68,11 @@ public class MesQcDefectServiceImpl implements MesQcDefectService { @@ -72,6 +68,11 @@ public class MesQcDefectServiceImpl implements MesQcDefectService {
72 } 68 }
73 } 69 }
74 70
  71 + private void validateDefectSaveData(Long id, MesQcDefectSaveReqVO reqVO) {
  72 + validateDefectCodeUnique(id, reqVO.getCode());
  73 + validateDefectNameUnique(id, reqVO.getName());
  74 + }
  75 +
75 private void validateDefectCodeUnique(Long id, String code) { 76 private void validateDefectCodeUnique(Long id, String code) {
76 MesQcDefectDO defect = defectMapper.selectByCode(code); 77 MesQcDefectDO defect = defectMapper.selectByCode(code);
77 if (defect == null) { 78 if (defect == null) {