撤销流程的时候 会出现 多次撤销 修改API

master
Harry Yang 2023-01-04 20:07:45 +08:00
parent fdd57a27c2
commit 8299173d46
1 changed files with 12 additions and 3 deletions

View File

@ -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<ProjectTaskRecord> 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) {