diff --git a/src/main/java/com/xujie/sys/modules/erf/service/impl/ErfExpApplyServiceImpl.java b/src/main/java/com/xujie/sys/modules/erf/service/impl/ErfExpApplyServiceImpl.java index d7f337b4..e89dec96 100644 --- a/src/main/java/com/xujie/sys/modules/erf/service/impl/ErfExpApplyServiceImpl.java +++ b/src/main/java/com/xujie/sys/modules/erf/service/impl/ErfExpApplyServiceImpl.java @@ -1011,33 +1011,53 @@ public class ErfExpApplyServiceImpl extends ServiceImpl "待审核".equals(inst.getStatus())) + .mapToInt(ErfFlowNodeInstance::getAttemptNo) + .min() + .orElse(prodMaxAttemptNo); + + int qualityMinAttemptNo = qualityInstances.stream() + .filter(inst -> "待审核".equals(inst.getStatus())) + .mapToInt(ErfFlowNodeInstance::getAttemptNo) + .min() + .orElse(qualityMaxAttemptNo); + + log.info("当前批次范围 - 生产经理: attempt_no [{}-{}], 质量经理: attempt_no [{}-{}]", + prodMinAttemptNo, prodMaxAttemptNo, qualityMinAttemptNo, qualityMaxAttemptNo); + + // 统计生产经理审批状态(当前批次的所有节点:attempt_no在[min, max]范围内) long prodTotal = prodInstances.stream() - .filter(inst -> inst.getAttemptNo() == prodMaxAttemptNo) + .filter(inst -> inst.getAttemptNo() >= prodMinAttemptNo && inst.getAttemptNo() <= prodMaxAttemptNo) .count(); long prodApproved = prodInstances.stream() - .filter(inst -> inst.getAttemptNo() == prodMaxAttemptNo) + .filter(inst -> inst.getAttemptNo() >= prodMinAttemptNo && inst.getAttemptNo() <= prodMaxAttemptNo) .filter(inst -> "已批准".equals(inst.getStatus())) .count(); long prodRejected = prodInstances.stream() - .filter(inst -> inst.getAttemptNo() == prodMaxAttemptNo) + .filter(inst -> inst.getAttemptNo() >= prodMinAttemptNo && inst.getAttemptNo() <= prodMaxAttemptNo) .filter(inst -> "已驳回".equals(inst.getStatus())) .count(); - // 统计质量经理审批状态 + // 统计质量经理审批状态(当前批次的所有节点:attempt_no在[min, max]范围内) long qualityTotal = qualityInstances.stream() - .filter(inst -> inst.getAttemptNo() == qualityMaxAttemptNo) + .filter(inst -> inst.getAttemptNo() >= qualityMinAttemptNo && inst.getAttemptNo() <= qualityMaxAttemptNo) .count(); long qualityApproved = qualityInstances.stream() - .filter(inst -> inst.getAttemptNo() == qualityMaxAttemptNo) + .filter(inst -> inst.getAttemptNo() >= qualityMinAttemptNo && inst.getAttemptNo() <= qualityMaxAttemptNo) .filter(inst -> "已批准".equals(inst.getStatus())) .count(); long qualityRejected = qualityInstances.stream() - .filter(inst -> inst.getAttemptNo() == qualityMaxAttemptNo) + .filter(inst -> inst.getAttemptNo() >= qualityMinAttemptNo && inst.getAttemptNo() <= qualityMaxAttemptNo) .filter(inst -> "已驳回".equals(inst.getStatus())) .count();