From 53e3260cb45b0d3ac92f781d71c1f3537a09c7ca Mon Sep 17 00:00:00 2001 From: "han\\hanst" Date: Wed, 28 Jan 2026 16:03:04 +0800 Subject: [PATCH] =?UTF-8?q?=E7=BB=8F=E7=90=86=E5=AE=A1=E6=89=B9=E6=94=AF?= =?UTF-8?q?=E6=8C=81=E5=A4=9A=E4=BA=BA?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../service/impl/ErfExpApplyServiceImpl.java | 40 ++++++++++++++----- 1 file changed, 30 insertions(+), 10 deletions(-) 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();