Commit 1f53c39c04986f8c981fe5e8b9210737bf8de747

Authored by YunaiV
1 parent 528166e4

review(mes): 各种 qc 单的校验逻辑。

yudao-module-mes/src/main/java/cn/iocoder/yudao/module/mes/controller/admin/qc/ipqc/vo/MesQcIpqcSaveReqVO.java
... ... @@ -32,12 +32,13 @@ public class MesQcIpqcSaveReqVO {
32 32  
33 33 // ========== 来源单据 ==========
34 34  
35   - @Schema(description = "来源单据 ID", example = "200")
36   - private Long sourceDocId;
37   -
38 35 @Schema(description = "来源单据类型", example = "FEEDBACK")
39 36 private String sourceDocType;
40 37  
  38 + @Schema(description = "来源单据 ID", example = "200")
  39 + private Long sourceDocId;
  40 +
  41 + // TODO @AI:
41 42 @Schema(description = "来源单据编号", example = "FB20250101001")
42 43 private String sourceDocCode;
43 44  
... ...
yudao-module-mes/src/main/java/cn/iocoder/yudao/module/mes/controller/admin/qc/oqc/vo/MesQcOqcSaveReqVO.java
... ... @@ -58,6 +58,7 @@ public class MesQcOqcSaveReqVO {
58 58  
59 59 // ========== 数量 ==========
60 60  
  61 + // TODO @AI:这 2 个字段去掉,minCheckQuantity、maxUnqualifiedQuantity;前后端都是;
61 62 @Schema(description = "最低检测数", example = "5")
62 63 private Integer minCheckQuantity;
63 64  
... ... @@ -68,6 +69,8 @@ public class MesQcOqcSaveReqVO {
68 69 @NotNull(message = "本次出货数量不能为空")
69 70 private BigDecimal outQuantity;
70 71  
  72 + // TODO @AI:checkQuantity = qualifiedQuantity + unqualifiedQuantity;校验下相等;必须的;参考 iqc
  73 +
71 74 @Schema(description = "本次检测数量", example = "10")
72 75 private Integer checkQuantity;
73 76  
... ...
yudao-module-mes/src/main/java/cn/iocoder/yudao/module/mes/controller/admin/qc/rqc/vo/MesQcRqcSaveReqVO.java
... ... @@ -57,6 +57,8 @@ public class MesQcRqcSaveReqVO {
57 57  
58 58 // ========== 数量 ==========
59 59  
  60 + // TODO @AI:参考 iqc 的参数校验;
  61 +
60 62 @Schema(description = "检测数量", example = "100")
61 63 private BigDecimal checkQuantity;
62 64  
... ...
yudao-module-mes/src/main/java/cn/iocoder/yudao/module/mes/dal/dataobject/qc/ipqc/MesQcIpqcDO.java
... ... @@ -65,6 +65,7 @@ public class MesQcIpqcDO extends BaseDO {
65 65 * 来源单据类型
66 66 */
67 67 private String sourceDocType;
  68 + // TODO @AI:sourceDocCode 是不是不用存储?(晚点在处理,对应模块还没搞完)
68 69 /**
69 70 * 来源单据编号
70 71 */
... ...
yudao-module-mes/src/main/java/cn/iocoder/yudao/module/mes/dal/dataobject/qc/iqc/MesQcIqcDO.java
... ... @@ -159,9 +159,6 @@ public class MesQcIqcDO extends BaseDO {
159 159 */
160 160 private LocalDateTime inspectDate;
161 161 /**
162   - * 检测人员
163   - */
164   - /**
165 162 * 检测人员用户 ID
166 163 *
167 164 * 关联 AdminUserDO 的 id
... ...
yudao-module-mes/src/main/java/cn/iocoder/yudao/module/mes/service/qc/ipqc/MesQcIpqcServiceImpl.java
... ... @@ -67,11 +67,13 @@ public class MesQcIpqcServiceImpl implements MesQcIpqcService {
67 67 // 1.3 校验工位存在
68 68 workstationService.validateWorkstationExists(createReqVO.getWorkstationId());
69 69 // 1.4 根据产品 + 检验类型自动匹配模板
  70 + // TODO @AI:参考 iqc,应该通过 getRequiredTemplatesByItemIdAndType 方法;
70 71 MesQcTemplateDO template = templateDetailService.getTemplateByItemIdAndType(
71 72 workOrder.getProductId(), MesQcTypeEnum.IPQC.getType());
72 73 if (template == null) {
73 74 throw exception(QC_IPQC_NO_TEMPLATE);
74 75 }
  76 + // TODO @AI:processId 不应该是前端传递,而是通过 workstation + work order + route 表,联合查询出来的;
75 77  
76 78 // 2. 插入主表
77 79 MesQcIpqcDO ipqc = BeanUtils.toBean(createReqVO, MesQcIpqcDO.class);
... ...
yudao-module-mes/src/main/java/cn/iocoder/yudao/module/mes/service/qc/oqc/MesQcOqcLineServiceImpl.java
... ... @@ -57,6 +57,7 @@ public class MesQcOqcLineServiceImpl implements MesQcOqcLineService {
57 57  
58 58 @Override
59 59 public void createLinesFromTemplate(Long oqcId, Long templateId) {
  60 + // TODO @AI:tool 存储
60 61 List<MesQcTemplateIndicatorDO> indicators = templateIndicatorMapper.selectListByTemplateId(templateId);
61 62 List<MesQcOqcLineDO> lines = convertList(indicators, indicator -> new MesQcOqcLineDO()
62 63 .setOqcId(oqcId).setIndicatorId(indicator.getIndicatorId())
... ...
yudao-module-mes/src/main/java/cn/iocoder/yudao/module/mes/service/qc/oqc/MesQcOqcServiceImpl.java
... ... @@ -57,7 +57,9 @@ public class MesQcOqcServiceImpl implements MesQcOqcService {
57 57 public Long createOqc(MesQcOqcSaveReqVO createReqVO) {
58 58 // 1.1 校验编号唯一
59 59 validateOqcCodeUnique(null, createReqVO.getCode());
  60 + // TODO @AI:关联字段的校验!
60 61 // 1.2 校验模板存在且包含 OQC 类型
  62 + // TODO @AI:不用前端传递,而是类似 iqc 后端计算
61 63 Long templateId = createReqVO.getTemplateId();
62 64 MesQcTemplateDO template = templateService.validateTemplateExists(templateId);
63 65 if (!CollUtil.contains(template.getTypes(), MesQcTypeEnum.OQC.getType())) {
... ... @@ -66,6 +68,7 @@ public class MesQcOqcServiceImpl implements MesQcOqcService {
66 68  
67 69 // 1.3 从模板的产品关联中获取检测参数
68 70 // TODO @芋艿:【暂时不用删除】到底 miniCheckQuantity 和 maxUnqualifiedQuantity 是否有必要存储?
  71 + // TODO @AI:去掉这 2 个字段的设置,包括数据的存储,也去掉!
69 72 MesQcTemplateItemDO templateItem = templateDetailService.getTemplateItemByTemplateIdAndItemId(
70 73 templateId, createReqVO.getItemId());
71 74 if (templateItem != null) {
... ...
yudao-module-mes/src/main/java/cn/iocoder/yudao/module/mes/service/qc/rqc/MesQcRqcLineServiceImpl.java
... ... @@ -60,7 +60,7 @@ public class MesQcRqcLineServiceImpl implements MesQcRqcLineService {
60 60 List<MesQcTemplateIndicatorDO> indicators = templateIndicatorMapper.selectListByTemplateId(templateId);
61 61 List<MesQcRqcLineDO> lines = convertList(indicators, indicator -> new MesQcRqcLineDO()
62 62 .setRqcId(rqcId).setIndicatorId(indicator.getIndicatorId())
63   - .setToolId(null) // TODO @芋艿:模板指标暂无 toolId,后续可扩展
  63 + .setToolId(null) // TODO @芋艿:模板指标暂无 toolId,后续可扩展;todo @AI:改成 tool;参考 iqc
64 64 .setCheckMethod(indicator.getCheckMethod())
65 65 .setStandardValue(indicator.getStandardValue()).setUnitMeasureId(indicator.getUnitMeasureId())
66 66 .setMaxThreshold(indicator.getThresholdMax()).setMinThreshold(indicator.getThresholdMin())
... ...
yudao-module-mes/src/main/java/cn/iocoder/yudao/module/mes/service/qc/rqc/MesQcRqcServiceImpl.java
... ... @@ -53,6 +53,7 @@ public class MesQcRqcServiceImpl implements MesQcRqcService {
53 53 // TODO @AI:关联的物资等存在的校验;
54 54 // 1.2 校验检验模板存在且支持 RQC 类型
55 55 Long templateId = createReqVO.getTemplateId();
  56 + // TODO @AI:参考 iqc 获取 templateId;不在依赖前端传递;
56 57 MesQcTemplateDO template = templateService.validateTemplateExists(templateId);
57 58 if (!CollUtil.contains(template.getTypes(), MesQcTypeEnum.RQC.getType())) {
58 59 throw exception(QC_RQC_NO_TEMPLATE);
... ...