Browse Source

fix:审批时长bug

master
buaixuexideshitongxue 4 weeks ago
parent
commit
808cc77ed4
  1. 27
      src/main/java/com/biutag/supervision/flow/action/ConfirmationCompletionAction.java
  2. 15
      src/main/java/com/biutag/supervision/flow/action/FirstApproveReturnAction.java
  3. 15
      src/main/java/com/biutag/supervision/flow/action/SecondApproveAction.java
  4. 15
      src/main/java/com/biutag/supervision/flow/action/SecondApproveReturnAction.java

27
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<Negative> updateWrapper = new LambdaUpdateWrapper<Negative>()
.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);

15
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<Negative>()
.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));
}

15
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<Negative> updateWrapper = new LambdaUpdateWrapper<Negative>()
.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())

15
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<Negative>()
.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));
}

Loading…
Cancel
Save