From 8299173d46870a15ce6048258291d5bce4ae33b4 Mon Sep 17 00:00:00 2001 From: Harry Yang Date: Wed, 4 Jan 2023 20:07:45 +0800 Subject: [PATCH] =?UTF-8?q?=E6=92=A4=E9=94=80=E6=B5=81=E7=A8=8B=E7=9A=84?= =?UTF-8?q?=E6=97=B6=E5=80=99=20=E4=BC=9A=E5=87=BA=E7=8E=B0=20=E5=A4=9A?= =?UTF-8?q?=E6=AC=A1=E6=92=A4=E9=94=80=20=E4=BF=AE=E6=94=B9API?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../controller/backend/ProcessController.java | 15 ++++++++++++--- 1 file changed, 12 insertions(+), 3 deletions(-) diff --git a/src/main/java/cn/palmte/work/controller/backend/ProcessController.java b/src/main/java/cn/palmte/work/controller/backend/ProcessController.java index 45e5db8..957d2d9 100644 --- a/src/main/java/cn/palmte/work/controller/backend/ProcessController.java +++ b/src/main/java/cn/palmte/work/controller/backend/ProcessController.java @@ -686,7 +686,6 @@ public class ProcessController { @ResponseBody @PostMapping("/revoke/{id}") public void revoke(@PathVariable("id") int id) { - // TODO 发起申请的人,在第一个人还没审批的情况下可以撤回 Admin admin = getLoginUser(); if (isAdministrator(admin)) { processService.revoke(id); @@ -699,13 +698,23 @@ public class ProcessController { } List projectTaskRecords = getProjectTaskRecords(id, process.getProcessType()); if (projectTaskRecords.size() > 1) { - // 有多个人审核过 - throw ErrorMessageException.failed("流程已经在审核中,不能撤回"); + // 可能存在撤销情况 会出现 多次 -> 提交申请 提交销售合同流程 + // 第一个审核详情肯定是 提交申请 ,检查最后一个是不是 提交申请 是的话就可以撤回 + ProjectTaskRecord lastRecord = projectTaskRecords.get(projectTaskRecords.size() - 1); + if (!isStartAuditProgress(lastRecord)) { + // 有多个人审核过 + throw ErrorMessageException.failed("流程已经在审核中,不能撤回"); + } } processService.revoke(id); } } + private boolean isStartAuditProgress(ProjectTaskRecord record) { + return Objects.equals("提交申请", record.getTaskName()) + && Objects.equals("提交销售合同流程", record.getTaskComment()); + } + private ProjectProcess obtainProjectProcess(int id) { ProjectProcess projectProcess = processService.getById(id); if (projectProcess == null) {