gaoluyang
5 天以前 6fa82a1ad7c3ae061ef499f0d0806a16846e122b
yudao-module-mes/src/main/java/cn/iocoder/yudao/module/mes/service/qc/iqc/MesQcIqcServiceImpl.java
@@ -112,7 +112,7 @@
        // 2. 插入主表
        MesQcIqcDO iqc = BeanUtils.toBean(createReqVO, MesQcIqcDO.class)
                .setTemplateId(null)
                .setCheckQuantity(createReqVO.getQualifiedQuantity().add(createReqVO.getUnqualifiedQuantity()))
                .setCheckQuantity(resolveCheckQuantity(createReqVO.getQualifiedQuantity(), createReqVO.getUnqualifiedQuantity()))
                .setSourceDocCode(sourceDocCode)
                .setStatus(MesQcStatusEnum.DRAFT.getStatus());
        iqcMapper.insert(iqc);
@@ -131,8 +131,18 @@
        updateObj.setSourceDocType(null).setSourceDocId(null).setSourceLineId(null); // 不允许修改来源单据
        updateObj.setTemplateId(null); // 不允许修改模板
        updateObj.setItemId(null); // 不允许修改物料
        updateObj.setCheckQuantity(updateReqVO.getQualifiedQuantity().add(updateReqVO.getUnqualifiedQuantity()));
        updateObj.setCheckQuantity(resolveCheckQuantity(updateReqVO.getQualifiedQuantity(), updateReqVO.getUnqualifiedQuantity()));
        iqcMapper.updateById(updateObj);
    }
    /**
     * 检验数量 = 合格数量 + 不合格数量;两者未填全时留空,等检验员录入后再计算
     */
    private BigDecimal resolveCheckQuantity(BigDecimal qualified, BigDecimal unqualified) {
        if (qualified == null || unqualified == null) {
            return null;
        }
        return qualified.add(unqualified);
    }
    private void validateIqcSaveData(MesQcIqcSaveReqVO reqVO) {
@@ -393,9 +403,10 @@
        }
        iqc.setItemId(line.getItemId());
        iqc.setReceivedQuantity(line.getArrivalQuantity());
        iqc.setCheckQuantity(BigDecimal.ZERO); // 待填写
        iqc.setQualifiedQuantity(BigDecimal.ZERO); // 待填写
        iqc.setUnqualifiedQuantity(BigDecimal.ZERO); // 待填写
        // 合格/不合格数量留空,由检验员填写时录入(不再默认 0,避免误判为「已检验合格 0」)
        iqc.setCheckQuantity(null);
        iqc.setQualifiedQuantity(null);
        iqc.setUnqualifiedQuantity(null);
        iqc.setReceiveDate(java.time.LocalDateTime.now());
        iqc.setStatus(MesQcStatusEnum.DRAFT.getStatus());
        iqcMapper.insert(iqc);