Commit 4355a7a5f232a053d8a3e40ac01cfd1bc42c431e

Authored by YunaiV
1 parent 6ddbb294

review(mes):qc-template 的实现代码

yudao-module-mes/src/main/java/cn/iocoder/yudao/module/mes/controller/admin/qc/template/MesQcTemplateController.java
@@ -33,6 +33,7 @@ import java.util.List; @@ -33,6 +33,7 @@ import java.util.List;
33 import static cn.iocoder.yudao.framework.apilog.core.enums.OperateTypeEnum.EXPORT; 33 import static cn.iocoder.yudao.framework.apilog.core.enums.OperateTypeEnum.EXPORT;
34 import static cn.iocoder.yudao.framework.common.pojo.CommonResult.success; 34 import static cn.iocoder.yudao.framework.common.pojo.CommonResult.success;
35 35
  36 +// TODO @AI:拆分为多个 controller,和别的模块;
36 @Tag(name = "管理后台 - MES 质检方案") 37 @Tag(name = "管理后台 - MES 质检方案")
37 @RestController 38 @RestController
38 @RequestMapping("/mes/qc/template") 39 @RequestMapping("/mes/qc/template")
yudao-module-mes/src/main/java/cn/iocoder/yudao/module/mes/controller/admin/qc/template/vo/indicator/MesQcTemplateIndicatorRespVO.java
@@ -31,9 +31,8 @@ public class MesQcTemplateIndicatorRespVO { @@ -31,9 +31,8 @@ public class MesQcTemplateIndicatorRespVO {
31 @ExcelProperty("标准值") 31 @ExcelProperty("标准值")
32 private BigDecimal standardValue; 32 private BigDecimal standardValue;
33 33
34 - @Schema(description = "单位", example = "mm")  
35 - @ExcelProperty("单位")  
36 - private String unit; 34 + @Schema(description = "计量单位ID", example = "1")
  35 + private Long unitMeasureId;
37 36
38 @Schema(description = "误差上限", example = "10.5000") 37 @Schema(description = "误差上限", example = "10.5000")
39 @ExcelProperty("误差上限") 38 @ExcelProperty("误差上限")
@@ -72,4 +71,10 @@ public class MesQcTemplateIndicatorRespVO { @@ -72,4 +71,10 @@ public class MesQcTemplateIndicatorRespVO {
72 @ExcelProperty("检测工具") 71 @ExcelProperty("检测工具")
73 private String indicatorTool; 72 private String indicatorTool;
74 73
  74 + // ========== JOIN mes_md_unit_measure ==========
  75 +
  76 + @Schema(description = "计量单位名称", example = "mm")
  77 + @ExcelProperty("单位")
  78 + private String unitMeasureName;
  79 +
75 } 80 }
yudao-module-mes/src/main/java/cn/iocoder/yudao/module/mes/controller/admin/qc/template/vo/indicator/MesQcTemplateIndicatorSaveReqVO.java
@@ -17,21 +17,18 @@ public class MesQcTemplateIndicatorSaveReqVO { @@ -17,21 +17,18 @@ public class MesQcTemplateIndicatorSaveReqVO {
17 @NotNull(message = "质检方案ID不能为空") 17 @NotNull(message = "质检方案ID不能为空")
18 private Long templateId; 18 private Long templateId;
19 19
20 - /**  
21 - * TODO @芋艿:等 qc_indicator 完成后,改为选择器,此处改为 @NotNull 强校验  
22 - */  
23 - @Schema(description = "质检指标ID(关联 mes_qc_indicator)", requiredMode = Schema.RequiredMode.REQUIRED, example = "1")  
24 - @NotNull(message = "质检指标ID不能为空") 20 + @Schema(description = "质检指标ID", requiredMode = Schema.RequiredMode.REQUIRED, example = "1")
  21 + @NotNull(message = "质检指标不能为空")
25 private Long indicatorId; 22 private Long indicatorId;
26 23
27 - @Schema(description = "检测方法/检测要求", example = "目视检查外观") 24 + @Schema(description = "检测方法", example = "目视检查外观")
28 private String checkMethod; 25 private String checkMethod;
29 26
30 @Schema(description = "标准值", example = "10.0000") 27 @Schema(description = "标准值", example = "10.0000")
31 private BigDecimal standardValue; 28 private BigDecimal standardValue;
32 29
33 - @Schema(description = "单位", example = "mm")  
34 - private String unit; 30 + @Schema(description = "计量单位ID", example = "1")
  31 + private Long unitMeasureId;
35 32
36 @Schema(description = "误差上限", example = "10.5000") 33 @Schema(description = "误差上限", example = "10.5000")
37 private BigDecimal thresholdMax; 34 private BigDecimal thresholdMax;
yudao-module-mes/src/main/java/cn/iocoder/yudao/module/mes/dal/dataobject/qc/MesQcTemplateDO.java
1 package cn.iocoder.yudao.module.mes.dal.dataobject.qc; 1 package cn.iocoder.yudao.module.mes.dal.dataobject.qc;
2 2
3 import cn.iocoder.yudao.framework.mybatis.core.dataobject.BaseDO; 3 import cn.iocoder.yudao.framework.mybatis.core.dataobject.BaseDO;
  4 +import cn.iocoder.yudao.framework.mybatis.core.type.IntegerListTypeHandler;
  5 +import cn.iocoder.yudao.module.mes.enums.DictTypeConstants;
4 import com.baomidou.mybatisplus.annotation.KeySequence; 6 import com.baomidou.mybatisplus.annotation.KeySequence;
  7 +import com.baomidou.mybatisplus.annotation.TableField;
5 import com.baomidou.mybatisplus.annotation.TableId; 8 import com.baomidou.mybatisplus.annotation.TableId;
6 import com.baomidou.mybatisplus.annotation.TableName; 9 import com.baomidou.mybatisplus.annotation.TableName;
7 import lombok.*; 10 import lombok.*;
8 11
  12 +import java.util.List;
  13 +
9 /** 14 /**
10 * MES 质检方案 DO 15 * MES 质检方案 DO
11 * 16 *
12 * @author 芋道源码 17 * @author 芋道源码
13 */ 18 */
14 -@TableName("mes_qc_template") 19 +@TableName(value = "mes_qc_template", autoResultMap = true)
15 @KeySequence("mes_qc_template_seq") // 用于 Oracle、PostgreSQL、Kingbase、DB2、H2 数据库的主键自增。如果是 MySQL 等数据库,可不写。 20 @KeySequence("mes_qc_template_seq") // 用于 Oracle、PostgreSQL、Kingbase、DB2、H2 数据库的主键自增。如果是 MySQL 等数据库,可不写。
16 @Data 21 @Data
17 @EqualsAndHashCode(callSuper = true) 22 @EqualsAndHashCode(callSuper = true)
@@ -34,20 +39,17 @@ public class MesQcTemplateDO extends BaseDO { @@ -34,20 +39,17 @@ public class MesQcTemplateDO extends BaseDO {
34 * 方案名称 39 * 方案名称
35 */ 40 */
36 private String name; 41 private String name;
37 - // TODO @AI:List<Integer> types;以这个为主;然后 type int 1 - IQC、2 - IPQC、3 - OQC、4 - RQC;前端传过来逗号分隔的字符串,后端转换成 List<Integer> 存储到数据库中;查询时也是一样,数据库存储逗号分隔的字符串,后端转换成 List<Integer> 返回给前端。  
38 /** 42 /**
39 - * 检测种类(逗号分隔:IQC,IPQC,OQC,RQC) 43 + * 检测种类
40 * 44 *
41 - * 字典类型 mes_qc_type 45 + * 字典 {@link DictTypeConstants#MES_QC_TYPE}
42 */ 46 */
43 - private String types;  
44 - // TODO @AI:Boolean 47 + @TableField(typeHandler = IntegerListTypeHandler.class)
  48 + private List<Integer> types;
45 /** 49 /**
46 - * 是否启用(Y/N)  
47 - *  
48 - * 字典类型 sys_yes_no 50 + * 是否启用
49 */ 51 */
50 - private String enableFlag; 52 + private Boolean enableFlag;
51 /** 53 /**
52 * 备注 54 * 备注
53 */ 55 */
yudao-module-mes/src/main/java/cn/iocoder/yudao/module/mes/dal/dataobject/qc/MesQcTemplateIndicatorDO.java
1 package cn.iocoder.yudao.module.mes.dal.dataobject.qc; 1 package cn.iocoder.yudao.module.mes.dal.dataobject.qc;
2 2
3 import cn.iocoder.yudao.framework.mybatis.core.dataobject.BaseDO; 3 import cn.iocoder.yudao.framework.mybatis.core.dataobject.BaseDO;
  4 +import cn.iocoder.yudao.module.mes.dal.dataobject.md.unitmeasure.MesMdUnitMeasureDO;
4 import com.baomidou.mybatisplus.annotation.KeySequence; 5 import com.baomidou.mybatisplus.annotation.KeySequence;
5 import com.baomidou.mybatisplus.annotation.TableId; 6 import com.baomidou.mybatisplus.annotation.TableId;
6 import com.baomidou.mybatisplus.annotation.TableName; 7 import com.baomidou.mybatisplus.annotation.TableName;
@@ -28,31 +29,32 @@ public class MesQcTemplateIndicatorDO extends BaseDO { @@ -28,31 +29,32 @@ public class MesQcTemplateIndicatorDO extends BaseDO {
28 */ 29 */
29 @TableId 30 @TableId
30 private Long id; 31 private Long id;
31 - // TODO @AI:关联字段  
32 /** 32 /**
33 - * 质检方案ID 33 + * 质检方案编号
  34 + *
  35 + * 关联 {@link MesQcTemplateDO#getId()}
34 */ 36 */
35 private Long templateId; 37 private Long templateId;
36 - // TODO @AI:关联字段  
37 /** 38 /**
38 - * 质检指标ID(关联 mes_qc_indicator,通过 JOIN 查询指标信息) 39 + * 质检指标编号
39 * 40 *
40 - * TODO @芋艿:等 qc_indicator 完成后,完善关联查询和前端选择器 41 + * 关联 {@link MesQcIndicatorDO#getId()}
41 */ 42 */
42 private Long indicatorId; 43 private Long indicatorId;
43 /** 44 /**
44 - * 检测方法/检测要求 45 + * 检测方法
45 */ 46 */
46 private String checkMethod; 47 private String checkMethod;
47 /** 48 /**
48 * 标准值 49 * 标准值
49 */ 50 */
50 private BigDecimal standardValue; 51 private BigDecimal standardValue;
51 - // TODO @AI:应该关联单位那个表;  
52 /** 52 /**
53 - * 单位 53 + * 计量单位编号
  54 + *
  55 + * 关联 {@link MesMdUnitMeasureDO#getId()}
54 */ 56 */
55 - private String unit; 57 + private Long unitMeasureId;
56 /** 58 /**
57 * 误差上限 59 * 误差上限
58 */ 60 */
yudao-module-mes/src/main/java/cn/iocoder/yudao/module/mes/dal/dataobject/qc/MesQcTemplateItemDO.java
1 package cn.iocoder.yudao.module.mes.dal.dataobject.qc; 1 package cn.iocoder.yudao.module.mes.dal.dataobject.qc;
2 2
3 import cn.iocoder.yudao.framework.mybatis.core.dataobject.BaseDO; 3 import cn.iocoder.yudao.framework.mybatis.core.dataobject.BaseDO;
  4 +import cn.iocoder.yudao.module.mes.dal.dataobject.md.item.MesMdItemDO;
4 import com.baomidou.mybatisplus.annotation.KeySequence; 5 import com.baomidou.mybatisplus.annotation.KeySequence;
5 import com.baomidou.mybatisplus.annotation.TableId; 6 import com.baomidou.mybatisplus.annotation.TableId;
6 import com.baomidou.mybatisplus.annotation.TableName; 7 import com.baomidou.mybatisplus.annotation.TableName;
@@ -28,14 +29,16 @@ public class MesQcTemplateItemDO extends BaseDO { @@ -28,14 +29,16 @@ public class MesQcTemplateItemDO extends BaseDO {
28 */ 29 */
29 @TableId 30 @TableId
30 private Long id; 31 private Long id;
31 - // TODO @AI:关联字段  
32 /** 32 /**
33 - * 质检方案ID 33 + * 质检方案编号
  34 + *
  35 + * 关联 {@link MesQcTemplateDO#getId()}
34 */ 36 */
35 private Long templateId; 37 private Long templateId;
36 - // TODO @AI:关联字段  
37 /** 38 /**
38 - * 产品物料ID(关联 mes_md_item,通过 ID 查询物料信息) 39 + * 产品物料编号
  40 + *
  41 + * 关联 {@link MesMdItemDO#getId()}
39 */ 42 */
40 private Long itemId; 43 private Long itemId;
41 /** 44 /**
yudao-module-mes/src/main/java/cn/iocoder/yudao/module/mes/dal/mysql/qc/MesQcTemplateMapper.java
@@ -22,16 +22,12 @@ public interface MesQcTemplateMapper extends BaseMapperX&lt;MesQcTemplateDO&gt; { @@ -22,16 +22,12 @@ public interface MesQcTemplateMapper extends BaseMapperX&lt;MesQcTemplateDO&gt; {
22 .likeIfPresent(MesQcTemplateDO::getCode, reqVO.getCode()) 22 .likeIfPresent(MesQcTemplateDO::getCode, reqVO.getCode())
23 .likeIfPresent(MesQcTemplateDO::getName, reqVO.getName()) 23 .likeIfPresent(MesQcTemplateDO::getName, reqVO.getName())
24 .orderByDesc(MesQcTemplateDO::getId); 24 .orderByDesc(MesQcTemplateDO::getId);
25 - // types: 取第一个值做 LIKE 匹配(简单实现,支持单值过滤)  
26 - // TODO @AI:find in set;你看看 mybatisutils 有类似的; 25 + // types: 用 FIND_IN_SET 精确匹配逗号分隔字段(取第一个值过滤)
  26 + // TODO @AI:MyBatisUtils 的 findInSet
27 if (reqVO.getTypes() != null && !reqVO.getTypes().isEmpty()) { 27 if (reqVO.getTypes() != null && !reqVO.getTypes().isEmpty()) {
28 - query.like(MesQcTemplateDO::getTypes, String.valueOf(reqVO.getTypes().get(0)));  
29 - }  
30 - // TODO @AI:是不是里面就是 boolean  
31 - // enableFlag: 转为 Y/N 已经改成 boolean 了,数据库里也是 boolean  
32 - if (reqVO.getEnableFlag() != null) {  
33 - query.eq(MesQcTemplateDO::getEnableFlag, Boolean.TRUE.equals(reqVO.getEnableFlag()) ? "Y" : "N"); 28 + query.apply("FIND_IN_SET({0}, types) > 0", reqVO.getTypes().get(0));
34 } 29 }
  30 + query.eqIfPresent(MesQcTemplateDO::getEnableFlag, reqVO.getEnableFlag());
35 return selectPage(reqVO, query); 31 return selectPage(reqVO, query);
36 } 32 }
37 33
yudao-module-mes/src/main/java/cn/iocoder/yudao/module/mes/service/qc/MesQcTemplateServiceImpl.java
@@ -2,7 +2,6 @@ package cn.iocoder.yudao.module.mes.service.qc; @@ -2,7 +2,6 @@ package cn.iocoder.yudao.module.mes.service.qc;
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;  
6 import cn.iocoder.yudao.framework.common.pojo.PageResult; 5 import cn.iocoder.yudao.framework.common.pojo.PageResult;
7 import cn.iocoder.yudao.framework.common.util.object.BeanUtils; 6 import cn.iocoder.yudao.framework.common.util.object.BeanUtils;
8 import cn.iocoder.yudao.module.mes.controller.admin.qc.template.vo.MesQcTemplatePageReqVO; 7 import cn.iocoder.yudao.module.mes.controller.admin.qc.template.vo.MesQcTemplatePageReqVO;
@@ -31,7 +30,6 @@ import org.springframework.stereotype.Service; @@ -31,7 +30,6 @@ import org.springframework.stereotype.Service;
31 import org.springframework.transaction.annotation.Transactional; 30 import org.springframework.transaction.annotation.Transactional;
32 import org.springframework.validation.annotation.Validated; 31 import org.springframework.validation.annotation.Validated;
33 32
34 -import java.util.Arrays;  
35 import java.util.Collection; 33 import java.util.Collection;
36 import java.util.Collections; 34 import java.util.Collections;
37 import java.util.List; 35 import java.util.List;
@@ -68,11 +66,8 @@ public class MesQcTemplateServiceImpl implements MesQcTemplateService { @@ -68,11 +66,8 @@ public class MesQcTemplateServiceImpl implements MesQcTemplateService {
68 public Long createTemplate(MesQcTemplateSaveReqVO createReqVO) { 66 public Long createTemplate(MesQcTemplateSaveReqVO createReqVO) {
69 // 校验编码唯一 67 // 校验编码唯一
70 validateTemplateCodeUnique(null, createReqVO.getCode()); 68 validateTemplateCodeUnique(null, createReqVO.getCode());
71 -  
72 - // 插入 69 + // 插入(types 由 IntegerListTypeHandler 自动做 List↔逗号字符串转换,enableFlag Boolean↔bit 自动映射)
73 MesQcTemplateDO template = BeanUtils.toBean(createReqVO, MesQcTemplateDO.class); 70 MesQcTemplateDO template = BeanUtils.toBean(createReqVO, MesQcTemplateDO.class);
74 - template.setTypes(convertTypesToString(createReqVO.getTypes()));  
75 - template.setEnableFlag(Boolean.TRUE.equals(createReqVO.getEnableFlag()) ? "Y" : "N");  
76 templateMapper.insert(template); 71 templateMapper.insert(template);
77 return template.getId(); 72 return template.getId();
78 } 73 }
@@ -83,11 +78,8 @@ public class MesQcTemplateServiceImpl implements MesQcTemplateService { @@ -83,11 +78,8 @@ public class MesQcTemplateServiceImpl implements MesQcTemplateService {
83 validateTemplateExists(updateReqVO.getId()); 78 validateTemplateExists(updateReqVO.getId());
84 // 校验编码唯一 79 // 校验编码唯一
85 validateTemplateCodeUnique(updateReqVO.getId(), updateReqVO.getCode()); 80 validateTemplateCodeUnique(updateReqVO.getId(), updateReqVO.getCode());
86 -  
87 // 更新 81 // 更新
88 MesQcTemplateDO updateObj = BeanUtils.toBean(updateReqVO, MesQcTemplateDO.class); 82 MesQcTemplateDO updateObj = BeanUtils.toBean(updateReqVO, MesQcTemplateDO.class);
89 - updateObj.setTypes(convertTypesToString(updateReqVO.getTypes()));  
90 - updateObj.setEnableFlag(Boolean.TRUE.equals(updateReqVO.getEnableFlag()) ? "Y" : "N");  
91 templateMapper.updateById(updateObj); 83 templateMapper.updateById(updateObj);
92 } 84 }
93 85
@@ -96,7 +88,6 @@ public class MesQcTemplateServiceImpl implements MesQcTemplateService { @@ -96,7 +88,6 @@ public class MesQcTemplateServiceImpl implements MesQcTemplateService {
96 public void deleteTemplate(Long id) { 88 public void deleteTemplate(Long id) {
97 // 校验存在 89 // 校验存在
98 validateTemplateExists(id); 90 validateTemplateExists(id);
99 -  
100 // 删除主表 91 // 删除主表
101 templateMapper.deleteById(id); 92 templateMapper.deleteById(id);
102 // 级联删除检测指标项 93 // 级联删除检测指标项
@@ -121,20 +112,25 @@ public class MesQcTemplateServiceImpl implements MesQcTemplateService { @@ -121,20 +112,25 @@ public class MesQcTemplateServiceImpl implements MesQcTemplateService {
121 } 112 }
122 } 113 }
123 114
  115 + // TODO @AI:返回 DO;交给 controller 拼接
124 @Override 116 @Override
125 public MesQcTemplateRespVO getTemplate(Long id) { 117 public MesQcTemplateRespVO getTemplate(Long id) {
126 MesQcTemplateDO do0 = templateMapper.selectById(id); 118 MesQcTemplateDO do0 = templateMapper.selectById(id);
127 if (do0 == null) { 119 if (do0 == null) {
128 return null; 120 return null;
129 } 121 }
130 - return convertTemplateRespVO(do0); 122 + // types/enableFlag 由 TypeHandler/MyBatis-Plus 自动映射,直接 toBean 即可
  123 + return BeanUtils.toBean(do0, MesQcTemplateRespVO.class);
131 } 124 }
132 125
  126 + // TODO @AI:返回 DO;交给 controller 拼接
133 @Override 127 @Override
134 public PageResult<MesQcTemplateRespVO> getTemplatePage(MesQcTemplatePageReqVO pageReqVO) { 128 public PageResult<MesQcTemplateRespVO> getTemplatePage(MesQcTemplatePageReqVO pageReqVO) {
135 PageResult<MesQcTemplateDO> pageResult = templateMapper.selectPage(pageReqVO); 129 PageResult<MesQcTemplateDO> pageResult = templateMapper.selectPage(pageReqVO);
136 return new PageResult<>( 130 return new PageResult<>(
137 - pageResult.getList().stream().map(this::convertTemplateRespVO).collect(Collectors.toList()), 131 + pageResult.getList().stream()
  132 + .map(do0 -> BeanUtils.toBean(do0, MesQcTemplateRespVO.class))
  133 + .collect(Collectors.toList()),
138 pageResult.getTotal() 134 pageResult.getTotal()
139 ); 135 );
140 } 136 }
@@ -152,47 +148,12 @@ public class MesQcTemplateServiceImpl implements MesQcTemplateService { @@ -152,47 +148,12 @@ public class MesQcTemplateServiceImpl implements MesQcTemplateService {
152 return templateMapper.selectByIds(ids); 148 return templateMapper.selectByIds(ids);
153 } 149 }
154 150
155 - /**  
156 - * DO → RespVO:转换 types(String → List<Integer>)和 enableFlag(Y/N → Boolean)  
157 - */  
158 - private MesQcTemplateRespVO convertTemplateRespVO(MesQcTemplateDO do0) {  
159 - MesQcTemplateRespVO vo = BeanUtils.toBean(do0, MesQcTemplateRespVO.class);  
160 - vo.setTypes(convertTypesToList(do0.getTypes()));  
161 - vo.setEnableFlag("Y".equals(do0.getEnableFlag()));  
162 - return vo;  
163 - }  
164 -  
165 - /**  
166 - * List<Integer> → 逗号分隔字符串(如 [1,3] → "1,3")  
167 - */  
168 - private String convertTypesToString(List<Integer> types) {  
169 - if (CollUtil.isEmpty(types)) {  
170 - return null;  
171 - }  
172 - return types.stream().map(String::valueOf).collect(Collectors.joining(","));  
173 - }  
174 -  
175 - /**  
176 - * 逗号分隔字符串 → List<Integer>(如 "1,3" → [1,3])  
177 - */  
178 - private List<Integer> convertTypesToList(String types) {  
179 - if (StrUtil.isBlank(types)) {  
180 - return Collections.emptyList();  
181 - }  
182 - return Arrays.stream(types.split(","))  
183 - .map(String::trim)  
184 - .filter(StrUtil::isNotBlank)  
185 - .map(Integer::parseInt)  
186 - .collect(Collectors.toList());  
187 - }  
188 -  
189 // ========== 质检方案-检测指标项 ========== 151 // ========== 质检方案-检测指标项 ==========
190 152
191 @Override 153 @Override
192 public Long createTemplateIndicator(MesQcTemplateIndicatorSaveReqVO createReqVO) { 154 public Long createTemplateIndicator(MesQcTemplateIndicatorSaveReqVO createReqVO) {
193 // 校验方案存在 155 // 校验方案存在
194 validateTemplateExists(createReqVO.getTemplateId()); 156 validateTemplateExists(createReqVO.getTemplateId());
195 -  
196 // 插入 157 // 插入
197 MesQcTemplateIndicatorDO indicator = BeanUtils.toBean(createReqVO, MesQcTemplateIndicatorDO.class); 158 MesQcTemplateIndicatorDO indicator = BeanUtils.toBean(createReqVO, MesQcTemplateIndicatorDO.class);
198 templateIndicatorMapper.insert(indicator); 159 templateIndicatorMapper.insert(indicator);
@@ -203,7 +164,6 @@ public class MesQcTemplateServiceImpl implements MesQcTemplateService { @@ -203,7 +164,6 @@ public class MesQcTemplateServiceImpl implements MesQcTemplateService {
203 public void updateTemplateIndicator(MesQcTemplateIndicatorSaveReqVO updateReqVO) { 164 public void updateTemplateIndicator(MesQcTemplateIndicatorSaveReqVO updateReqVO) {
204 // 校验存在 165 // 校验存在
205 validateTemplateIndicatorExists(updateReqVO.getId()); 166 validateTemplateIndicatorExists(updateReqVO.getId());
206 -  
207 // 更新 167 // 更新
208 MesQcTemplateIndicatorDO updateObj = BeanUtils.toBean(updateReqVO, MesQcTemplateIndicatorDO.class); 168 MesQcTemplateIndicatorDO updateObj = BeanUtils.toBean(updateReqVO, MesQcTemplateIndicatorDO.class);
209 templateIndicatorMapper.updateById(updateObj); 169 templateIndicatorMapper.updateById(updateObj);
@@ -242,10 +202,11 @@ public class MesQcTemplateServiceImpl implements MesQcTemplateService { @@ -242,10 +202,11 @@ public class MesQcTemplateServiceImpl implements MesQcTemplateService {
242 } 202 }
243 203
244 /** 204 /**
245 - * DO → RespVO:JOIN mes_qc_indicator 补充检测项信息 205 + * DO → RespVO:JOIN mes_qc_indicator 补充检测项信息,JOIN mes_md_unit_measure 补充单位名称
246 */ 206 */
247 private MesQcTemplateIndicatorRespVO convertIndicatorRespVO(MesQcTemplateIndicatorDO do0) { 207 private MesQcTemplateIndicatorRespVO convertIndicatorRespVO(MesQcTemplateIndicatorDO do0) {
248 MesQcTemplateIndicatorRespVO vo = BeanUtils.toBean(do0, MesQcTemplateIndicatorRespVO.class); 208 MesQcTemplateIndicatorRespVO vo = BeanUtils.toBean(do0, MesQcTemplateIndicatorRespVO.class);
  209 + // JOIN 质检指标
249 if (do0.getIndicatorId() != null) { 210 if (do0.getIndicatorId() != null) {
250 MesQcIndicatorDO indicator = indicatorMapper.selectById(do0.getIndicatorId()); 211 MesQcIndicatorDO indicator = indicatorMapper.selectById(do0.getIndicatorId());
251 if (indicator != null) { 212 if (indicator != null) {
@@ -255,6 +216,13 @@ public class MesQcTemplateServiceImpl implements MesQcTemplateService { @@ -255,6 +216,13 @@ public class MesQcTemplateServiceImpl implements MesQcTemplateService {
255 vo.setIndicatorTool(indicator.getTool()); 216 vo.setIndicatorTool(indicator.getTool());
256 } 217 }
257 } 218 }
  219 + // JOIN 计量单位
  220 + if (do0.getUnitMeasureId() != null) {
  221 + MesMdUnitMeasureDO unit = unitMeasureMapper.selectById(do0.getUnitMeasureId());
  222 + if (unit != null) {
  223 + vo.setUnitMeasureName(unit.getName());
  224 + }
  225 + }
258 return vo; 226 return vo;
259 } 227 }
260 228
@@ -266,7 +234,6 @@ public class MesQcTemplateServiceImpl implements MesQcTemplateService { @@ -266,7 +234,6 @@ public class MesQcTemplateServiceImpl implements MesQcTemplateService {
266 validateTemplateExists(createReqVO.getTemplateId()); 234 validateTemplateExists(createReqVO.getTemplateId());
267 // 校验产品在此方案中唯一 235 // 校验产品在此方案中唯一
268 validateTemplateItemNotDuplicate(null, createReqVO.getTemplateId(), createReqVO.getItemId()); 236 validateTemplateItemNotDuplicate(null, createReqVO.getTemplateId(), createReqVO.getItemId());
269 -  
270 // 插入 237 // 插入
271 MesQcTemplateItemDO item = BeanUtils.toBean(createReqVO, MesQcTemplateItemDO.class); 238 MesQcTemplateItemDO item = BeanUtils.toBean(createReqVO, MesQcTemplateItemDO.class);
272 templateItemMapper.insert(item); 239 templateItemMapper.insert(item);
@@ -279,7 +246,6 @@ public class MesQcTemplateServiceImpl implements MesQcTemplateService { @@ -279,7 +246,6 @@ public class MesQcTemplateServiceImpl implements MesQcTemplateService {
279 validateTemplateItemExists(updateReqVO.getId()); 246 validateTemplateItemExists(updateReqVO.getId());
280 // 校验产品在此方案中唯一 247 // 校验产品在此方案中唯一
281 validateTemplateItemNotDuplicate(updateReqVO.getId(), updateReqVO.getTemplateId(), updateReqVO.getItemId()); 248 validateTemplateItemNotDuplicate(updateReqVO.getId(), updateReqVO.getTemplateId(), updateReqVO.getItemId());
282 -  
283 // 更新 249 // 更新
284 MesQcTemplateItemDO updateObj = BeanUtils.toBean(updateReqVO, MesQcTemplateItemDO.class); 250 MesQcTemplateItemDO updateObj = BeanUtils.toBean(updateReqVO, MesQcTemplateItemDO.class);
285 templateItemMapper.updateById(updateObj); 251 templateItemMapper.updateById(updateObj);