From e56f93d86b5d5d26eec29495749b65e8d45bec61 Mon Sep 17 00:00:00 2001 From: buaixuexideshitongxue <2936013465@qq.com> Date: Tue, 14 Apr 2026 10:55:26 +0800 Subject: [PATCH 1/9] =?UTF-8?q?fix--=E4=B8=B4=E6=97=B6=E4=BF=9D=E5=AD=98?= =?UTF-8?q?=E5=88=87=E6=8D=A2?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../ModelClueController.java | 10 +++++++ .../supervision/pojo/entity/ModelClue.java | 2 +- .../modelClue/ModelCheckUntrueRequest.java | 28 +++++++++++++++++++ 3 files changed, 39 insertions(+), 1 deletion(-) create mode 100644 src/main/java/com/biutag/supervision/pojo/request/modelClue/ModelCheckUntrueRequest.java diff --git a/src/main/java/com/biutag/supervision/controller/sensitiveperception/ModelClueController.java b/src/main/java/com/biutag/supervision/controller/sensitiveperception/ModelClueController.java index 82c8435..89f4f11 100644 --- a/src/main/java/com/biutag/supervision/controller/sensitiveperception/ModelClueController.java +++ b/src/main/java/com/biutag/supervision/controller/sensitiveperception/ModelClueController.java @@ -8,7 +8,9 @@ import com.biutag.supervision.pojo.dto.ModelClueTaskDistribute; import com.biutag.supervision.pojo.entity.ModelClue; import com.biutag.supervision.pojo.model.ModelClueModel; import com.biutag.supervision.pojo.param.ModelClueQueryParam; +import com.biutag.supervision.pojo.request.modelClue.ModelCheckUntrueRequest; import com.biutag.supervision.service.ModelClueService; +import io.swagger.v3.oas.annotations.Operation; import lombok.RequiredArgsConstructor; import org.springframework.beans.BeanUtils; import org.springframework.web.bind.annotation.*; @@ -55,4 +57,12 @@ public class ModelClueController { return Result.success(modelClueService.update(updateWrapper)); } + @Operation(description = "查否|恢复接口") + @PostMapping("/checkUntrue") + public Result checkUntrue(@RequestBody ModelCheckUntrueRequest request) { + LambdaUpdateWrapper updateWrapper = new LambdaUpdateWrapper() + .eq(ModelClue::getId, request.getId()) + .set(ModelClue::getDistributionState, request.getDistributionState()); + return Result.success(modelClueService.update(updateWrapper)); + } } diff --git a/src/main/java/com/biutag/supervision/pojo/entity/ModelClue.java b/src/main/java/com/biutag/supervision/pojo/entity/ModelClue.java index 667febc..0d387cb 100644 --- a/src/main/java/com/biutag/supervision/pojo/entity/ModelClue.java +++ b/src/main/java/com/biutag/supervision/pojo/entity/ModelClue.java @@ -41,7 +41,7 @@ public class ModelClue { @TableField("thing_desc") private String thingDesc; - // 状态 默认 0-未分发 1-已分发 2-已处理 + // 状态 默认 0-未分发 1-已分发 2-已处理 3-查否 @TableField("distribution_state") private String distributionState; diff --git a/src/main/java/com/biutag/supervision/pojo/request/modelClue/ModelCheckUntrueRequest.java b/src/main/java/com/biutag/supervision/pojo/request/modelClue/ModelCheckUntrueRequest.java new file mode 100644 index 0000000..5449586 --- /dev/null +++ b/src/main/java/com/biutag/supervision/pojo/request/modelClue/ModelCheckUntrueRequest.java @@ -0,0 +1,28 @@ +package com.biutag.supervision.pojo.request.modelClue; + +import com.biutag.supervision.aop.ParamChecked; +import io.swagger.v3.oas.annotations.media.Schema; +import lombok.Getter; +import lombok.Setter; + +@Schema(description = "查否请求") +@Getter +@Setter +public class ModelCheckUntrueRequest implements ParamChecked { + + @Schema(description = "线索id") + private String id; + + @Schema(description = "变更的状态") + private String distributionState; + + @Override + public void check() { + if (distributionState == null) { + throw new IllegalArgumentException("请检查要变更的状态"); + } + if (id == null) { + throw new IllegalArgumentException("线索id为空"); + } + } +} From 0252d261089e9bdd59446ce22207b67926d0113e Mon Sep 17 00:00:00 2001 From: buaixuexideshitongxue <2936013465@qq.com> Date: Tue, 14 Apr 2026 17:37:51 +0800 Subject: [PATCH 2/9] =?UTF-8?q?fix:=E9=A2=84=E8=AD=A6=E6=A8=A1=E5=9E=8B?= =?UTF-8?q?=E5=A2=9E=E5=8A=A0=E5=B7=B2=E6=A0=B8=E3=80=81=E6=9F=A5=E5=90=A6?= =?UTF-8?q?=E5=8A=9F=E8=83=BD?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../controller/sensitiveperception/ModelClueController.java | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/main/java/com/biutag/supervision/controller/sensitiveperception/ModelClueController.java b/src/main/java/com/biutag/supervision/controller/sensitiveperception/ModelClueController.java index 89f4f11..65807ba 100644 --- a/src/main/java/com/biutag/supervision/controller/sensitiveperception/ModelClueController.java +++ b/src/main/java/com/biutag/supervision/controller/sensitiveperception/ModelClueController.java @@ -59,7 +59,7 @@ public class ModelClueController { @Operation(description = "查否|恢复接口") @PostMapping("/checkUntrue") - public Result checkUntrue(@RequestBody ModelCheckUntrueRequest request) { + public Result checkUntrue(@RequestBody ModelCheckUntrueRequest request ) { LambdaUpdateWrapper updateWrapper = new LambdaUpdateWrapper() .eq(ModelClue::getId, request.getId()) .set(ModelClue::getDistributionState, request.getDistributionState()); From 4f0af0b5515faaaedc255b16aed569bf7f49f2ba Mon Sep 17 00:00:00 2001 From: buaixuexideshitongxue <2936013465@qq.com> Date: Wed, 15 Apr 2026 10:10:58 +0800 Subject: [PATCH 3/9] =?UTF-8?q?fix:=E8=87=AA=E5=8A=9E=E4=BB=B6=E5=8F=AA?= =?UTF-8?q?=E6=9C=89=E8=B6=85=E7=BA=A7=E7=AE=A1=E7=90=86=E5=91=98=E5=8F=AF?= =?UTF-8?q?=E4=BB=A5=E7=9C=8B=E5=88=B0?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../complaintCollection/ComplaintCollectionServiceImpl.java | 1 + 1 file changed, 1 insertion(+) diff --git a/src/main/java/com/biutag/supervision/service/complaintCollection/ComplaintCollectionServiceImpl.java b/src/main/java/com/biutag/supervision/service/complaintCollection/ComplaintCollectionServiceImpl.java index ed5d5db..8e8bff2 100644 --- a/src/main/java/com/biutag/supervision/service/complaintCollection/ComplaintCollectionServiceImpl.java +++ b/src/main/java/com/biutag/supervision/service/complaintCollection/ComplaintCollectionServiceImpl.java @@ -250,6 +250,7 @@ public class ComplaintCollectionServiceImpl implements ComplaintCollectionServic List reqAllIds = departService.getAllNodeIds(List.of(request.getSecondDepartId())); if (CollectionUtil.isNotEmpty(reqAllIds)) { param.setSecondDepartIds(new HashSet<>(reqAllIds)); + param.setHandleMethod(ComplaintCollectionHandleMethodEnum.XF.getCode()); } else { return Result.success(ComplaintCollectionPageVo.noAuthVo()); } From 45ac761f9a25d0e2174267cd70b50588fd27c5bf Mon Sep 17 00:00:00 2001 From: buaixuexideshitongxue <2936013465@qq.com> Date: Wed, 15 Apr 2026 10:54:23 +0800 Subject: [PATCH 4/9] =?UTF-8?q?fix:=E8=87=AA=E5=8A=9E=E4=BB=B6=E5=8F=AA?= =?UTF-8?q?=E6=9C=89=E8=B6=85=E7=BA=A7=E7=AE=A1=E7=90=86=E5=91=98=E5=8F=AF?= =?UTF-8?q?=E4=BB=A5=E7=9C=8B=E5=88=B0?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../ComplaintCollectionServiceImpl.java | 7 ++++++- 1 file changed, 6 insertions(+), 1 deletion(-) diff --git a/src/main/java/com/biutag/supervision/service/complaintCollection/ComplaintCollectionServiceImpl.java b/src/main/java/com/biutag/supervision/service/complaintCollection/ComplaintCollectionServiceImpl.java index 8e8bff2..cdc5952 100644 --- a/src/main/java/com/biutag/supervision/service/complaintCollection/ComplaintCollectionServiceImpl.java +++ b/src/main/java/com/biutag/supervision/service/complaintCollection/ComplaintCollectionServiceImpl.java @@ -250,12 +250,17 @@ public class ComplaintCollectionServiceImpl implements ComplaintCollectionServic List reqAllIds = departService.getAllNodeIds(List.of(request.getSecondDepartId())); if (CollectionUtil.isNotEmpty(reqAllIds)) { param.setSecondDepartIds(new HashSet<>(reqAllIds)); - param.setHandleMethod(ComplaintCollectionHandleMethodEnum.XF.getCode()); } else { return Result.success(ComplaintCollectionPageVo.noAuthVo()); } } } + // 如果不是超级管理员,也不是12337市局管理员,也不是市局管理员 + if (!AppConstants.USER_TYPE_SUPER.equals(user.getUserType()) && + !user.getRoleCodes().contains(RoleCodeEnum.FIRST_ADMIN.getCode()) && + !user.getRoleCodes().contains(RoleCodeEnum.ADMIN_1_12337.getCode())){ + param.setHandleMethod(ComplaintCollectionHandleMethodEnum.XF.getCode()); + } IPage page = complaintCollectionResourceService.pageQuery(param); List records = page.getRecords(); List complaintCollectionPageDTOS = ComplaintCollectionTransfer.INSTANCE.entityToPageDTOList(records); From 252909e07b30ef98d00d578b7eea1a14f959962b Mon Sep 17 00:00:00 2001 From: buaixuexideshitongxue <2936013465@qq.com> Date: Wed, 15 Apr 2026 16:11:54 +0800 Subject: [PATCH 5/9] =?UTF-8?q?feat:=E7=BB=BC=E5=90=88=E6=9F=A5=E8=AF=A2?= =?UTF-8?q?=E4=B8=AD=E7=9A=84=E4=BA=8B=E6=83=85=E7=AE=80=E8=A6=81=E6=8F=8F?= =?UTF-8?q?=E8=BF=B0=EF=BC=8C=E5=BA=94=E5=AF=B9=E9=97=AE=E9=A2=98=E6=A0=B8?= =?UTF-8?q?=E6=9F=A5=E6=83=85=E5=86=B5=E4=B8=80=E8=A7=88=E4=B8=80=E5=B9=B6?= =?UTF-8?q?=E6=A3=80=E7=B4=A2?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../com/biutag/supervision/service/NegativeQueryService.java | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/src/main/java/com/biutag/supervision/service/NegativeQueryService.java b/src/main/java/com/biutag/supervision/service/NegativeQueryService.java index e42a42a..b7b3b84 100644 --- a/src/main/java/com/biutag/supervision/service/NegativeQueryService.java +++ b/src/main/java/com/biutag/supervision/service/NegativeQueryService.java @@ -70,7 +70,10 @@ public class NegativeQueryService { // 案件编号 .like(StrUtil.isNotBlank(param.getCaseNumber()), Negative::getCaseNumber, param.getCaseNumber()) // 内容 - .like(StrUtil.isNotBlank(param.getThingDesc()), Negative::getThingDesc, param.getThingDesc()) +// .like(StrUtil.isNotBlank(param.getThingDesc()), Negative::getThingDesc, param.getThingDesc()) + .and(StrUtil.isNotBlank(param.getThingDesc()), (qw) -> { + qw.like(Negative::getThingDesc, param.getThingDesc()).or().like(Negative::getCheckStatusDesc, param.getThingDesc()); + }) // 问题来源 .in(CollectionUtil.isNotEmpty(param.getProblemSourcesCode()), Negative::getProblemSourcesCode, param.getProblemSourcesCode()) // 业务类型 From c4009c0924a47fa386cbcef03feadff770b876e1 Mon Sep 17 00:00:00 2001 From: buaixuexideshitongxue <2936013465@qq.com> Date: Wed, 15 Apr 2026 16:34:06 +0800 Subject: [PATCH 6/9] =?UTF-8?q?feat:=E8=BF=94=E5=9B=9E=E6=B5=81=E7=A8=8B?= =?UTF-8?q?=E8=8A=82=E7=82=B9=E9=99=A4=E5=8E=BB=E8=8A=82=E5=81=87=E6=97=A5?= =?UTF-8?q?=E7=9A=84=E7=94=A8=E6=97=B6?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../com/biutag/supervision/pojo/entity/NegativeHistory.java | 4 ++++ .../com/biutag/supervision/service/NegativeService.java | 6 ++++++ 2 files changed, 10 insertions(+) diff --git a/src/main/java/com/biutag/supervision/pojo/entity/NegativeHistory.java b/src/main/java/com/biutag/supervision/pojo/entity/NegativeHistory.java index 7d98895..a4b7fcc 100644 --- a/src/main/java/com/biutag/supervision/pojo/entity/NegativeHistory.java +++ b/src/main/java/com/biutag/supervision/pojo/entity/NegativeHistory.java @@ -47,4 +47,8 @@ public class NegativeHistory { private String departName; + @TableField(exist = false) + // 节点耗时(剔除节假日的秒数) + private Long duration; + } \ No newline at end of file diff --git a/src/main/java/com/biutag/supervision/service/NegativeService.java b/src/main/java/com/biutag/supervision/service/NegativeService.java index a3e7024..28b6e3a 100644 --- a/src/main/java/com/biutag/supervision/service/NegativeService.java +++ b/src/main/java/com/biutag/supervision/service/NegativeService.java @@ -126,6 +126,12 @@ public class NegativeService extends ServiceImpl { if (StrUtil.isNotBlank(vo.getProblemSourcesCode())) { vo.setFileClasses(fileClassService.list(vo.getProblemSourcesCode())); } + // 计算每个节点的用时(剔除节假日) + for (int i = 0; i < flows.size(); i++) { + LocalDateTime currentTime = flows.get(i).getCrtTime(); + LocalDateTime previousTime = i == 0 ? negative.getCrtTime() : flows.get(i - 1).getCrtTime(); + flows.get(i).setDuration(TimeUtil.calculateWorkdayDuration(previousTime, currentTime)); + } NegativeDetail detail = new NegativeDetail() .setNegative(vo) .setActionHistory(flows) From 0b8d01a17384153234564410ded3e1785c747a8e Mon Sep 17 00:00:00 2001 From: buaixuexideshitongxue <2936013465@qq.com> Date: Wed, 15 Apr 2026 16:54:12 +0800 Subject: [PATCH 7/9] =?UTF-8?q?feat:=E5=AE=A1=E6=89=B9=E4=B8=8D=E7=B4=AF?= =?UTF-8?q?=E8=AE=A1=E8=AE=A1=E7=AE=97=EF=BC=8C=E5=AF=BC=E5=87=BA=E4=B9=9F?= =?UTF-8?q?=E6=B2=A1=E5=BF=85=E8=A6=81=E6=98=BE=E7=A4=BA=E5=AE=A1=E6=89=B9?= =?UTF-8?q?=E7=94=A8=E6=97=B6?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../action/ConfirmationCompletionAction.java | 23 ++++++++++++------- .../flow/action/FirstApproveReturnAction.java | 9 ++++---- .../flow/action/SecondApproveAction.java | 12 ++++++---- .../action/SecondApproveReturnAction.java | 9 ++++---- .../com/biutag/supervision/util/TimeUtil.java | 16 +++++++++++-- 5 files changed, 47 insertions(+), 22 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 0d33468..cbfc839 100644 --- a/src/main/java/com/biutag/supervision/flow/action/ConfirmationCompletionAction.java +++ b/src/main/java/com/biutag/supervision/flow/action/ConfirmationCompletionAction.java @@ -101,13 +101,14 @@ 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() == null ? 0L : negative.getFirstApproveTime(); - if (negative.getLatestProcessTime() != null) { - firstApproveTime = firstApproveTime + TimeUtil.calculateWorkdayDuration(negative.getLatestProcessTime(), now); + Long firstApproveTime = negative.getFirstApproveTime(); + // 覆盖制:每次重新计算,超时锁定则不更新 + if (TimeUtil.canUpdateApproveTime(firstApproveTime) && negative.getLatestProcessTime() != null) { + firstApproveTime = TimeUtil.calculateWorkdayDuration(negative.getLatestProcessTime(), now); } - Long secondApprovalTime = negative.getSecondApprovalTime() == null ? 0L : negative.getSecondApprovalTime(); - if (negative.getLatestProcessTime() != null) { - secondApprovalTime = secondApprovalTime + 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) @@ -120,10 +121,16 @@ public class ConfirmationCompletionAction implements Action { .set(Negative::getFlowKey, FlowNodeEnum.COMPLETED.getKey()) .set(Negative::getUpdTime, LocalDateTime.now()); if ("2".equals(negative.getApprovalFlow())){ - updateWrapper.set(Negative::getSecondApprovalTime, secondApprovalTime); + // 超时锁定时,不更新审批时长字段 + if (TimeUtil.canUpdateApproveTime(secondApprovalTime)) { + updateWrapper.set(Negative::getSecondApprovalTime, secondApprovalTime); + } } if ("3".equals(negative.getApprovalFlow())){ - updateWrapper.set(Negative::getFirstApproveTime, firstApproveTime); + // 超时锁定时,不更新审批时长字段 + if (TimeUtil.canUpdateApproveTime(firstApproveTime)) { + updateWrapper.set(Negative::getFirstApproveTime, firstApproveTime); + } } 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 85d220b..ae54e5c 100644 --- a/src/main/java/com/biutag/supervision/flow/action/FirstApproveReturnAction.java +++ b/src/main/java/com/biutag/supervision/flow/action/FirstApproveReturnAction.java @@ -46,9 +46,10 @@ 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() == null ? 0L : negative.getFirstApproveTime(); - if (negative.getLatestProcessTime() != null) { - firstApproveTime = firstApproveTime + TimeUtil.calculateWorkdayDuration(negative.getLatestProcessTime(), now); + Long firstApproveTime = negative.getFirstApproveTime(); + // 覆盖制:每次重新计算,超时锁定则不更新 + if (TimeUtil.canUpdateApproveTime(firstApproveTime) && negative.getLatestProcessTime() != null) { + firstApproveTime = TimeUtil.calculateWorkdayDuration(negative.getLatestProcessTime(), now); } negativeService.update(new LambdaUpdateWrapper() .set(Negative::getFlowKey, negative.getIsSecondHandle() ? FlowNodeEnum.VERIFY.getKey() : nextFlowKey) @@ -56,7 +57,7 @@ public class FirstApproveReturnAction implements Action { // 当前处理对象 .set(Negative::getCurrentProcessingObject, String.format("%s专班", negative.getHandleSecondDepartName())) .eq(Negative::getId, negativeId) - .set(Negative::getFirstApproveTime, firstApproveTime) + .set(TimeUtil.canUpdateApproveTime(firstApproveTime), Negative::getFirstApproveTime, firstApproveTime) .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 64e8da7..3b80972 100644 --- a/src/main/java/com/biutag/supervision/flow/action/SecondApproveAction.java +++ b/src/main/java/com/biutag/supervision/flow/action/SecondApproveAction.java @@ -53,15 +53,19 @@ 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() == null ? 0L : negative.getSecondApprovalTime(); - if (negative.getLatestProcessTime() != null) { - secondApprovalTime = secondApprovalTime + 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() .set(Negative::getFlowKey, nextFlowKey) .set(Negative::getUpdTime, LocalDateTime.now()) - .set(Negative::getSecondApprovalTime, secondApprovalTime) .eq(Negative::getId, negativeId); + // 超时锁定时,不更新审批时长字段 + if (TimeUtil.canUpdateApproveTime(secondApprovalTime)) { + updateWrapper.set(Negative::getSecondApprovalTime, secondApprovalTime); + } // Negative negative = negativeService.getById(negativeId); if (ApprovalFlowEnum.SECOND_APPROVAL.getValue().equals(negative.getApprovalFlow())) { updateWrapper.set(Negative::getFlowKey, FlowNodeEnum.COMPLETED.getKey()) 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 5ac468d..68f2d15 100644 --- a/src/main/java/com/biutag/supervision/flow/action/SecondApproveReturnAction.java +++ b/src/main/java/com/biutag/supervision/flow/action/SecondApproveReturnAction.java @@ -47,9 +47,10 @@ 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() == null ? 0L : negative.getSecondApprovalTime(); - if (negative.getLatestProcessTime() != null) { - secondApprovalTime = secondApprovalTime + TimeUtil.calculateWorkdayDuration(negative.getLatestProcessTime(), now); + Long secondApprovalTime = negative.getSecondApprovalTime(); + // 覆盖制:每次重新计算,超时锁定则不更新 + if (TimeUtil.canUpdateApproveTime(secondApprovalTime) && negative.getLatestProcessTime() != null) { + secondApprovalTime = TimeUtil.calculateWorkdayDuration(negative.getLatestProcessTime(), now); } negativeService.update(new LambdaUpdateWrapper() .set(Negative::getFlowKey, nextFlowKey) @@ -57,7 +58,7 @@ public class SecondApproveReturnAction implements Action { .set(Negative::getProcessingStatus, ProcessingStatusEnum.processing.name()) // 当前处理对象 .set(Negative::getCurrentProcessingObject, String.format("%s专班", negative.getHandleThreeDepartName())) - .set(Negative::getSecondApprovalTime, secondApprovalTime) + .set(TimeUtil.canUpdateApproveTime(secondApprovalTime), Negative::getSecondApprovalTime, secondApprovalTime) .eq(Negative::getId, negativeId)); } diff --git a/src/main/java/com/biutag/supervision/util/TimeUtil.java b/src/main/java/com/biutag/supervision/util/TimeUtil.java index 77145eb..fe91c2c 100644 --- a/src/main/java/com/biutag/supervision/util/TimeUtil.java +++ b/src/main/java/com/biutag/supervision/util/TimeUtil.java @@ -18,6 +18,18 @@ public class TimeUtil { // 一天86400秒 public static final Long SECONDS_OF_A_DAY = 86400L; + // 超时锁定阈值(秒),超过此值则不再更新审批时长 + public static final Long APPROVAL_LOCK_THRESHOLD = SECONDS_OF_A_DAY; + + /** + * 判断审批时长是否可以更新 + * @param currentDuration 当前审批时长(秒),null表示尚未开始计时 + * @return true=可以更新,false=已锁定不可更新(>=86400秒) + */ + public static boolean canUpdateApproveTime(Long currentDuration) { + return currentDuration == null || currentDuration < APPROVAL_LOCK_THRESHOLD; + } + /** * * @param beginTime @@ -176,9 +188,9 @@ public class TimeUtil { long limit = SECONDS_OF_A_DAY; // 86400秒 = 1天 long diff = limit - usedSeconds; // diff > 0 表示剩余时间,diff < 0 表示超出时间 if (diff >= 0) { - return "未超时/用时:" + formatDuration(usedSeconds); + return "未超时"; } else { - return "已超时/用时:" + formatDuration(usedSeconds); + return "已超时"; } } From 00f1622e1279e85871faa62d75d2d85f28819a2f Mon Sep 17 00:00:00 2001 From: buaixuexideshitongxue <2936013465@qq.com> Date: Wed, 15 Apr 2026 17:14:49 +0800 Subject: [PATCH 8/9] =?UTF-8?q?feat:=E5=AF=BC=E5=87=BA=E8=A1=A8=E6=A0=BC?= =?UTF-8?q?=E6=B7=BB=E5=8A=A0=E7=9D=A3=E5=AF=9F=E6=8E=AA=E6=96=BD=E4=BF=A1?= =?UTF-8?q?=E6=81=AF?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../supervision/pojo/vo/ExportNegativeBlameVo.java | 9 +++++++++ .../biutag/supervision/service/NegativeTaskService.java | 6 +++++- 2 files changed, 14 insertions(+), 1 deletion(-) diff --git a/src/main/java/com/biutag/supervision/pojo/vo/ExportNegativeBlameVo.java b/src/main/java/com/biutag/supervision/pojo/vo/ExportNegativeBlameVo.java index a7d554f..8618bc7 100644 --- a/src/main/java/com/biutag/supervision/pojo/vo/ExportNegativeBlameVo.java +++ b/src/main/java/com/biutag/supervision/pojo/vo/ExportNegativeBlameVo.java @@ -104,4 +104,13 @@ public class ExportNegativeBlameVo { // 问题类型 @ExcelProperty({"问题类型"}) private String problemType; + + + @ExcelProperty("督察措施") + private String superviseMeasuresName; + + + @ExcelProperty({"禁闭时长"}) + private String confinementTime; + } diff --git a/src/main/java/com/biutag/supervision/service/NegativeTaskService.java b/src/main/java/com/biutag/supervision/service/NegativeTaskService.java index b1c5c66..4457755 100644 --- a/src/main/java/com/biutag/supervision/service/NegativeTaskService.java +++ b/src/main/java/com/biutag/supervision/service/NegativeTaskService.java @@ -63,6 +63,8 @@ public class NegativeTaskService extends ServiceImpl page(NegativeTaskQueryParam param) { LambdaQueryWrapper queryWrapper = new LambdaQueryWrapper() @@ -203,7 +205,9 @@ public class NegativeTaskService extends ServiceImpl Date: Wed, 15 Apr 2026 17:34:46 +0800 Subject: [PATCH 9/9] =?UTF-8?q?fix:npe=E5=BC=82=E5=B8=B8?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../com/biutag/supervision/service/NegativeTaskService.java | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/src/main/java/com/biutag/supervision/service/NegativeTaskService.java b/src/main/java/com/biutag/supervision/service/NegativeTaskService.java index 4457755..9685c51 100644 --- a/src/main/java/com/biutag/supervision/service/NegativeTaskService.java +++ b/src/main/java/com/biutag/supervision/service/NegativeTaskService.java @@ -207,7 +207,9 @@ public class NegativeTaskService extends ServiceImpl