From 808cc77ed4a90e25631c00cedfdd3e3a82da608f Mon Sep 17 00:00:00 2001 From: buaixuexideshitongxue <2936013465@qq.com> Date: Tue, 26 May 2026 12:25:55 +0800 Subject: [PATCH] =?UTF-8?q?fix:=E5=AE=A1=E6=89=B9=E6=97=B6=E9=95=BFbug?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../action/ConfirmationCompletionAction.java | 27 +++++++++---------- .../flow/action/FirstApproveReturnAction.java | 15 +++++++---- .../flow/action/SecondApproveAction.java | 15 +++++------ .../action/SecondApproveReturnAction.java | 15 +++++++---- 4 files changed, 38 insertions(+), 34 deletions(-) diff --git a/src/main/java/com/biutag/supervision/flow/action/ConfirmationCompletionAction.java b/src/main/java/com/biutag/supervision/flow/action/ConfirmationCompletionAction.java index 781daed..39cf7aa 100644 --- a/src/main/java/com/biutag/supervision/flow/action/ConfirmationCompletionAction.java +++ b/src/main/java/com/biutag/supervision/flow/action/ConfirmationCompletionAction.java @@ -107,15 +107,6 @@ public class ConfirmationCompletionAction implements Action { public void updateNegative(String negativeId, ConfirmationCompletionData completionData) { Negative negative = negativeService.getById(negativeId); LocalDateTime now = LocalDateTime.now(); - Long firstApproveTime = negative.getFirstApproveTime(); - // 覆盖制:每次重新计算,超时锁定则不更新 - if (TimeUtil.canUpdateApproveTime(firstApproveTime) && negative.getLatestProcessTime() != null) { - firstApproveTime = TimeUtil.calculateWorkdayDuration(negative.getLatestProcessTime(), now); - } - Long secondApprovalTime = negative.getSecondApprovalTime(); - if (TimeUtil.canUpdateApproveTime(secondApprovalTime) && negative.getLatestProcessTime() != null) { - secondApprovalTime = TimeUtil.calculateWorkdayDuration(negative.getLatestProcessTime(), now); - } LambdaUpdateWrapper updateWrapper = new LambdaUpdateWrapper() .eq(Negative::getId, negativeId) .set(Negative::getProcessingStatus, ProcessingStatusEnum.completed.name()) @@ -127,15 +118,21 @@ public class ConfirmationCompletionAction implements Action { .set(Negative::getFlowKey, FlowNodeEnum.COMPLETED.getKey()) .set(Negative::getUpdTime, LocalDateTime.now()); if ("2".equals(negative.getApprovalFlow())){ - // 超时锁定时,不更新审批时长字段 - if (TimeUtil.canUpdateApproveTime(secondApprovalTime)) { - updateWrapper.set(Negative::getSecondApprovalTime, secondApprovalTime); + // 只有超过24小时工作日才记录 + if (negative.getLatestProcessTime() != null) { + long newDuration = TimeUtil.calculateWorkdayDuration(negative.getLatestProcessTime(), now); + if (newDuration >= TimeUtil.SECONDS_OF_A_DAY) { + updateWrapper.set(Negative::getSecondApprovalTime, newDuration); + } } } if ("3".equals(negative.getApprovalFlow())){ - // 超时锁定时,不更新审批时长字段 - if (TimeUtil.canUpdateApproveTime(firstApproveTime)) { - updateWrapper.set(Negative::getFirstApproveTime, firstApproveTime); + // 只有超过24小时工作日才记录 + if (negative.getLatestProcessTime() != null) { + long newDuration = TimeUtil.calculateWorkdayDuration(negative.getLatestProcessTime(), now); + if (newDuration >= TimeUtil.SECONDS_OF_A_DAY) { + updateWrapper.set(Negative::getFirstApproveTime, newDuration); + } } } negativeService.update(updateWrapper); diff --git a/src/main/java/com/biutag/supervision/flow/action/FirstApproveReturnAction.java b/src/main/java/com/biutag/supervision/flow/action/FirstApproveReturnAction.java index ae54e5c..ce7c116 100644 --- a/src/main/java/com/biutag/supervision/flow/action/FirstApproveReturnAction.java +++ b/src/main/java/com/biutag/supervision/flow/action/FirstApproveReturnAction.java @@ -46,18 +46,23 @@ public class FirstApproveReturnAction implements Action { public void updateNegative(String negativeId, String nextFlowKey) { Negative negative = negativeService.getById(negativeId); LocalDateTime now = LocalDateTime.now(); - Long firstApproveTime = negative.getFirstApproveTime(); - // 覆盖制:每次重新计算,超时锁定则不更新 - if (TimeUtil.canUpdateApproveTime(firstApproveTime) && negative.getLatestProcessTime() != null) { - firstApproveTime = TimeUtil.calculateWorkdayDuration(negative.getLatestProcessTime(), now); + + Long newFirstApproveTime = null; + // 只有超过24小时工作日才记录 + if (negative.getLatestProcessTime() != null) { + long newDuration = TimeUtil.calculateWorkdayDuration(negative.getLatestProcessTime(), now); + if (newDuration >= TimeUtil.SECONDS_OF_A_DAY) { + newFirstApproveTime = newDuration; + } } + negativeService.update(new LambdaUpdateWrapper() .set(Negative::getFlowKey, negative.getIsSecondHandle() ? FlowNodeEnum.VERIFY.getKey() : nextFlowKey) .set(Negative::getUpdTime, LocalDateTime.now()) // 当前处理对象 .set(Negative::getCurrentProcessingObject, String.format("%s专班", negative.getHandleSecondDepartName())) .eq(Negative::getId, negativeId) - .set(TimeUtil.canUpdateApproveTime(firstApproveTime), Negative::getFirstApproveTime, firstApproveTime) + .set(newFirstApproveTime != null, Negative::getFirstApproveTime, newFirstApproveTime) .set(Negative::getLatestProcessTime, now)); } diff --git a/src/main/java/com/biutag/supervision/flow/action/SecondApproveAction.java b/src/main/java/com/biutag/supervision/flow/action/SecondApproveAction.java index 3b80972..b608a4a 100644 --- a/src/main/java/com/biutag/supervision/flow/action/SecondApproveAction.java +++ b/src/main/java/com/biutag/supervision/flow/action/SecondApproveAction.java @@ -53,20 +53,17 @@ public class SecondApproveAction implements Action { public void updateNegative(String negativeId, String nextFlowKey) { Negative negative = negativeService.getById(negativeId); LocalDateTime now = LocalDateTime.now(); - Long secondApprovalTime = negative.getSecondApprovalTime(); - // 覆盖制:每次重新计算,超时锁定则不更新 - if (TimeUtil.canUpdateApproveTime(secondApprovalTime) && negative.getLatestProcessTime() != null) { - secondApprovalTime = TimeUtil.calculateWorkdayDuration(negative.getLatestProcessTime(), now); - } LambdaUpdateWrapper updateWrapper = new LambdaUpdateWrapper() .set(Negative::getFlowKey, nextFlowKey) .set(Negative::getUpdTime, LocalDateTime.now()) .eq(Negative::getId, negativeId); - // 超时锁定时,不更新审批时长字段 - if (TimeUtil.canUpdateApproveTime(secondApprovalTime)) { - updateWrapper.set(Negative::getSecondApprovalTime, secondApprovalTime); + // 只有超过24小时工作日才记录 + if (negative.getLatestProcessTime() != null) { + long newDuration = TimeUtil.calculateWorkdayDuration(negative.getLatestProcessTime(), now); + if (newDuration >= TimeUtil.SECONDS_OF_A_DAY) { + updateWrapper.set(Negative::getSecondApprovalTime, newDuration); + } } -// Negative negative = negativeService.getById(negativeId); if (ApprovalFlowEnum.SECOND_APPROVAL.getValue().equals(negative.getApprovalFlow())) { updateWrapper.set(Negative::getFlowKey, FlowNodeEnum.COMPLETED.getKey()) .set(Negative::getProcessingStatus, ProcessingStatusEnum.completed.name()) diff --git a/src/main/java/com/biutag/supervision/flow/action/SecondApproveReturnAction.java b/src/main/java/com/biutag/supervision/flow/action/SecondApproveReturnAction.java index 68f2d15..811aed0 100644 --- a/src/main/java/com/biutag/supervision/flow/action/SecondApproveReturnAction.java +++ b/src/main/java/com/biutag/supervision/flow/action/SecondApproveReturnAction.java @@ -47,18 +47,23 @@ public class SecondApproveReturnAction implements Action { public void updateNegative(String negativeId, String nextFlowKey) { Negative negative = negativeService.getById(negativeId); LocalDateTime now = LocalDateTime.now(); - Long secondApprovalTime = negative.getSecondApprovalTime(); - // 覆盖制:每次重新计算,超时锁定则不更新 - if (TimeUtil.canUpdateApproveTime(secondApprovalTime) && negative.getLatestProcessTime() != null) { - secondApprovalTime = TimeUtil.calculateWorkdayDuration(negative.getLatestProcessTime(), now); + + Long newSecondApprovalTime = null; + // 只有超过24小时工作日才记录 + if (negative.getLatestProcessTime() != null) { + long newDuration = TimeUtil.calculateWorkdayDuration(negative.getLatestProcessTime(), now); + if (newDuration >= TimeUtil.SECONDS_OF_A_DAY) { + newSecondApprovalTime = newDuration; + } } + negativeService.update(new LambdaUpdateWrapper() .set(Negative::getFlowKey, nextFlowKey) .set(Negative::getUpdTime, LocalDateTime.now()) .set(Negative::getProcessingStatus, ProcessingStatusEnum.processing.name()) // 当前处理对象 .set(Negative::getCurrentProcessingObject, String.format("%s专班", negative.getHandleThreeDepartName())) - .set(TimeUtil.canUpdateApproveTime(secondApprovalTime), Negative::getSecondApprovalTime, secondApprovalTime) + .set(newSecondApprovalTime != null, Negative::getSecondApprovalTime, newSecondApprovalTime) .eq(Negative::getId, negativeId)); }