Commit 1f53c39c04986f8c981fe5e8b9210737bf8de747
1 parent
528166e4
review(mes): 各种 qc 单的校验逻辑。
Showing
10 changed files
with
18 additions
and
7 deletions
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
yudao-module-mes/src/main/java/cn/iocoder/yudao/module/mes/dal/dataobject/qc/ipqc/MesQcIpqcDO.java
yudao-module-mes/src/main/java/cn/iocoder/yudao/module/mes/dal/dataobject/qc/iqc/MesQcIqcDO.java
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); | ... | ... |