Commit d9722c13469ed08ae967a3fce2064913998d0114

Authored by YunaiV
1 parent f882ef58

✨ feat(mes): 新增质检指标结果值属性校验

yudao-module-mes/src/main/java/cn/iocoder/yudao/module/mes/enums/ErrorCodeConstants.java
@@ -294,6 +294,7 @@ public interface ErrorCodeConstants { @@ -294,6 +294,7 @@ public interface ErrorCodeConstants {
294 ErrorCode QC_INDICATOR_NOT_EXISTS = new ErrorCode(1_040_601_000, "质检指标不存在"); 294 ErrorCode QC_INDICATOR_NOT_EXISTS = new ErrorCode(1_040_601_000, "质检指标不存在");
295 ErrorCode QC_INDICATOR_CODE_DUPLICATE = new ErrorCode(1_040_601_001, "质检指标编码已存在"); 295 ErrorCode QC_INDICATOR_CODE_DUPLICATE = new ErrorCode(1_040_601_001, "质检指标编码已存在");
296 ErrorCode QC_INDICATOR_NAME_DUPLICATE = new ErrorCode(1_040_601_002, "质检指标名称已存在"); 296 ErrorCode QC_INDICATOR_NAME_DUPLICATE = new ErrorCode(1_040_601_002, "质检指标名称已存在");
  297 + ErrorCode QC_INDICATOR_RESULT_SPECIFICATION_REQUIRED = new ErrorCode(1_040_601_003, "结果值属性不能为空");
297 298
298 // ========== MES 质量管理-缺陷类型(1-040-602-000) ========== 299 // ========== MES 质量管理-缺陷类型(1-040-602-000) ==========
299 ErrorCode QC_DEFECT_NOT_EXISTS = new ErrorCode(1_040_602_000, "缺陷类型不存在"); 300 ErrorCode QC_DEFECT_NOT_EXISTS = new ErrorCode(1_040_602_000, "缺陷类型不存在");
yudao-module-mes/src/main/java/cn/iocoder/yudao/module/mes/service/qc/indicator/MesQcIndicatorServiceImpl.java
@@ -2,12 +2,15 @@ package cn.iocoder.yudao.module.mes.service.qc.indicator; @@ -2,12 +2,15 @@ package cn.iocoder.yudao.module.mes.service.qc.indicator;
2 2
3 import cn.hutool.core.collection.CollUtil; 3 import cn.hutool.core.collection.CollUtil;
4 import cn.hutool.core.util.ObjUtil; 4 import cn.hutool.core.util.ObjUtil;
  5 +import cn.hutool.core.util.StrUtil;
5 import cn.iocoder.yudao.framework.common.pojo.PageResult; 6 import cn.iocoder.yudao.framework.common.pojo.PageResult;
6 import cn.iocoder.yudao.framework.common.util.object.BeanUtils; 7 import cn.iocoder.yudao.framework.common.util.object.BeanUtils;
  8 +import cn.iocoder.yudao.framework.common.util.object.ObjectUtils;
7 import cn.iocoder.yudao.module.mes.controller.admin.qc.indicator.vo.MesQcIndicatorPageReqVO; 9 import cn.iocoder.yudao.module.mes.controller.admin.qc.indicator.vo.MesQcIndicatorPageReqVO;
8 import cn.iocoder.yudao.module.mes.controller.admin.qc.indicator.vo.MesQcIndicatorSaveReqVO; 10 import cn.iocoder.yudao.module.mes.controller.admin.qc.indicator.vo.MesQcIndicatorSaveReqVO;
9 import cn.iocoder.yudao.module.mes.dal.dataobject.qc.indicator.MesQcIndicatorDO; 11 import cn.iocoder.yudao.module.mes.dal.dataobject.qc.indicator.MesQcIndicatorDO;
10 import cn.iocoder.yudao.module.mes.dal.mysql.qc.indicator.MesQcIndicatorMapper; 12 import cn.iocoder.yudao.module.mes.dal.mysql.qc.indicator.MesQcIndicatorMapper;
  13 +import cn.iocoder.yudao.module.mes.enums.qc.MesQcResultValueTypeEnum;
11 import jakarta.annotation.Resource; 14 import jakarta.annotation.Resource;
12 import org.springframework.stereotype.Service; 15 import org.springframework.stereotype.Service;
13 import org.springframework.validation.annotation.Validated; 16 import org.springframework.validation.annotation.Validated;
@@ -33,10 +36,8 @@ public class MesQcIndicatorServiceImpl implements MesQcIndicatorService { @@ -33,10 +36,8 @@ public class MesQcIndicatorServiceImpl implements MesQcIndicatorService {
33 36
34 @Override 37 @Override
35 public Long createIndicator(MesQcIndicatorSaveReqVO createReqVO) { 38 public Long createIndicator(MesQcIndicatorSaveReqVO createReqVO) {
36 - // 校验编码唯一  
37 - validateIndicatorCodeUnique(null, createReqVO.getCode());  
38 - // 校验名称唯一  
39 - validateIndicatorNameUnique(null, createReqVO.getName()); 39 + // 校验相关参数
  40 + validateIndicatorSaveData(null, createReqVO);
40 41
41 // 插入 42 // 插入
42 MesQcIndicatorDO indicator = BeanUtils.toBean(createReqVO, MesQcIndicatorDO.class); 43 MesQcIndicatorDO indicator = BeanUtils.toBean(createReqVO, MesQcIndicatorDO.class);
@@ -48,10 +49,8 @@ public class MesQcIndicatorServiceImpl implements MesQcIndicatorService { @@ -48,10 +49,8 @@ public class MesQcIndicatorServiceImpl implements MesQcIndicatorService {
48 public void updateIndicator(MesQcIndicatorSaveReqVO updateReqVO) { 49 public void updateIndicator(MesQcIndicatorSaveReqVO updateReqVO) {
49 // 校验存在 50 // 校验存在
50 validateIndicatorExists(updateReqVO.getId()); 51 validateIndicatorExists(updateReqVO.getId());
51 - // 校验编码唯一  
52 - validateIndicatorCodeUnique(updateReqVO.getId(), updateReqVO.getCode());  
53 - // 校验名称唯一  
54 - validateIndicatorNameUnique(updateReqVO.getId(), updateReqVO.getName()); 52 + // 校验相关参数
  53 + validateIndicatorSaveData(updateReqVO.getId(), updateReqVO);
55 54
56 // 更新 55 // 更新
57 MesQcIndicatorDO updateObj = BeanUtils.toBean(updateReqVO, MesQcIndicatorDO.class); 56 MesQcIndicatorDO updateObj = BeanUtils.toBean(updateReqVO, MesQcIndicatorDO.class);
@@ -66,6 +65,15 @@ public class MesQcIndicatorServiceImpl implements MesQcIndicatorService { @@ -66,6 +65,15 @@ public class MesQcIndicatorServiceImpl implements MesQcIndicatorService {
66 indicatorMapper.deleteById(id); 65 indicatorMapper.deleteById(id);
67 } 66 }
68 67
  68 + private void validateIndicatorSaveData(Long id, MesQcIndicatorSaveReqVO saveReqVO) {
  69 + // 校验编码唯一
  70 + validateIndicatorCodeUnique(id, saveReqVO.getCode());
  71 + // 校验名称唯一
  72 + validateIndicatorNameUnique(id, saveReqVO.getName());
  73 + // 校验结果值属性
  74 + validateResultSpecification(saveReqVO.getResultType(), saveReqVO.getResultSpecification());
  75 + }
  76 +
69 private void validateIndicatorExists(Long id) { 77 private void validateIndicatorExists(Long id) {
70 if (indicatorMapper.selectById(id) == null) { 78 if (indicatorMapper.selectById(id) == null) {
71 throw exception(QC_INDICATOR_NOT_EXISTS); 79 throw exception(QC_INDICATOR_NOT_EXISTS);
@@ -92,6 +100,15 @@ public class MesQcIndicatorServiceImpl implements MesQcIndicatorService { @@ -92,6 +100,15 @@ public class MesQcIndicatorServiceImpl implements MesQcIndicatorService {
92 } 100 }
93 } 101 }
94 102
  103 + private void validateResultSpecification(Integer resultType, String resultSpecification) {
  104 + if (ObjectUtils.equalsAny(resultType, MesQcResultValueTypeEnum.FILE.getType(),
  105 + MesQcResultValueTypeEnum.DICT.getType())) {
  106 + if (StrUtil.isBlank(resultSpecification)) {
  107 + throw exception(QC_INDICATOR_RESULT_SPECIFICATION_REQUIRED);
  108 + }
  109 + }
  110 + }
  111 +
95 @Override 112 @Override
96 public MesQcIndicatorDO getIndicator(Long id) { 113 public MesQcIndicatorDO getIndicator(Long id) {
97 return indicatorMapper.selectById(id); 114 return indicatorMapper.selectById(id);