云
2 天以前 87733eb3623593da247c051593d64b8ff9e1d3a4
yudao-module-mes/src/main/java/cn/iocoder/yudao/module/mes/service/trace/MesProTracePublicServiceImpl.java
@@ -372,16 +372,22 @@
    }
    private MesProTracePublicRespVO.QualityVO buildQuality(MesProBatchDO batch) {
        List<MesQcSeedQualityDO> list = qcSeedQualityService.getQualityByBatchCode(batch.getCode());
        // 双线质检:同一袋存在加工部、销售部两条记录,全部放行才算合格,任一条报废即不合格
        List<MesQcSeedQualityDO> list = qcSeedQualityService.getQualityByBatchCode(batch.getCode()).stream()
                .filter(quality -> quality.getBizType() == null || Integer.valueOf(1).equals(quality.getBizType()))
                .toList();
        if (CollUtil.isEmpty(list)) {
            return null;
        }
        MesQcSeedQualityDO quality = list.get(0);
        boolean released = list.stream().allMatch(item -> Integer.valueOf(40).equals(item.getWorkflowStatus()));
        boolean scrapped = list.stream().anyMatch(item -> Integer.valueOf(70).equals(item.getWorkflowStatus()));
        MesProTracePublicRespVO.QualityVO vo = new MesProTracePublicRespVO.QualityVO();
        Integer finalResult = Integer.valueOf(40).equals(quality.getWorkflowStatus()) ? 1
                : Integer.valueOf(70).equals(quality.getWorkflowStatus()) ? 2 : 0;
        Integer finalResult = scrapped ? 2 : released ? 1 : 0;
        String reason = list.stream().map(MesQcSeedQualityDO::getReason)
                .filter(StrUtil::isNotBlank).findFirst().orElse(quality.getReason());
        vo.setResult(finalResult).setResultName(finalResult == 0 ? "复检或审批中" : qualityResultName(finalResult))
                .setReason(quality.getReason()).setInspectorName(userName(quality.getInspectorId()))
                .setReason(reason).setInspectorName(userName(quality.getInspectorId()))
                .setInspectedAt(quality.getInspectedAt());
        List<MesQcSeedQualityIndicatorDO> indicators = qcSeedQualityService.getIndicatorsByQualityId(quality.getId());
        vo.setIndicators(convertList(indicators, ind -> {