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 29  
30 30 @Schema(description = "检测项类型", requiredMode = Schema.RequiredMode.REQUIRED, example = "APPEARANCE")
31 31 @ExcelProperty(value = "检测项类型", converter = DictConvert.class)
32   - @DictFormat(DictTypeConstants.MES_INDICATOR_TYPE)
  32 + @DictFormat(DictTypeConstants.MES_DEFECT_TYPE)
33 33 private String type;
34 34  
35 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 37 @InEnum(MesQcDefectLevelEnum.class)
38 38 private Integer level;
39 39  
40   - @Schema(description = "缺陷数量", example = "1")
  40 + @Schema(description = "缺陷数量", requiredMode = Schema.RequiredMode.REQUIRED, example = "1")
  41 + @NotNull(message = "缺陷数量不能为空")
41 42 private Integer quantity;
42 43  
43 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 34 * 缺陷描述
35 35 */
36 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 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 21 String MES_DV_SUBJECT_TYPE = "mes_dv_subject_type"; // MES 点检保养项目类型
22 22 String MES_INDICATOR_TYPE = "mes_indicator_type"; // MES 检测项类型
23 23 String MES_QC_RESULT_TYPE = "mes_qc_result_type"; // MES 质检结果值类型
  24 + String MES_DEFECT_TYPE = "mes_defect_type"; // MES 缺陷检测项类型
24 25 String MES_DEFECT_LEVEL = "mes_defect_level"; // MES 缺陷等级
25 26 String MES_PRO_WORK_ORDER_STATUS = "mes_pro_work_order_status"; // MES 生产工单状态
26 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 246 // ========== MES 生产管理-生产任务(1-040-503-000) ==========
247 247 ErrorCode PRO_TASK_NOT_EXISTS = new ErrorCode(1_040_503_000, "生产任务不存在");
248 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 252 // ========== MES 生产管理-安灯呼叫配置(1-040-504-000) ==========
251 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 47 WM_MISC_ISSUE_CODE("WM_MISC_ISSUE_CODE", "杂项出库单编码"),
48 48 PRO_ROUTE_CODE("PRO_ROUTE_CODE", "工艺路线编码"),
49 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 42  
43 43 @Override
44 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 48 // 2. 插入工序
52 49 MesProProcessDO process = BeanUtils.toBean(createReqVO, MesProProcessDO.class);
... ... @@ -58,11 +55,8 @@ public class MesProProcessServiceImpl implements MesProProcessService {
58 55 public void updateProcess(MesProProcessSaveReqVO updateReqVO) {
59 56 // 1.1 校验存在
60 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 61 // 2. 更新工序
68 62 MesProProcessDO updateObj = BeanUtils.toBean(updateReqVO, MesProProcessDO.class);
... ... @@ -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 122 @Override
122 123 public MesProProcessDO getProcess(Long id) {
123 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 64 public void deleteTaskIssue(Long id) {
65 65 // 1. 校验存在
66 66 validateTaskIssueExists(id);
  67 +
67 68 // 2. 删除
68 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 33  
34 34 @Override
35 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 40 MesQcDefectDO defect = BeanUtils.toBean(createReqVO, MesQcDefectDO.class);
... ... @@ -48,10 +46,8 @@ public class MesQcDefectServiceImpl implements MesQcDefectService {
48 46 public void updateDefect(MesQcDefectSaveReqVO updateReqVO) {
49 47 // 校验存在
50 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 53 MesQcDefectDO updateObj = BeanUtils.toBean(updateReqVO, MesQcDefectDO.class);
... ... @@ -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 76 private void validateDefectCodeUnique(Long id, String code) {
76 77 MesQcDefectDO defect = defectMapper.selectByCode(code);
77 78 if (defect == null) {
... ...