| | |
| | | } |
| | | |
| | | 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 -> { |