From 5a995556b3b319f6276ec019b714e0f4288ba5b9 Mon Sep 17 00:00:00 2001
From: guoshilong <123456>
Date: Mon, 02 Jan 2023 10:15:52 +0800
Subject: [PATCH] 添加申请撤销逻辑,删除撤销申请包
---
src/main/java/org/springblade/flow/business/controller/WorkController.java | 46 ++++++++++++++++++++++++++++++++++++++++++----
1 files changed, 42 insertions(+), 4 deletions(-)
diff --git a/src/main/java/org/springblade/flow/business/controller/WorkController.java b/src/main/java/org/springblade/flow/business/controller/WorkController.java
index 5020192..441b727 100644
--- a/src/main/java/org/springblade/flow/business/controller/WorkController.java
+++ b/src/main/java/org/springblade/flow/business/controller/WorkController.java
@@ -16,17 +16,22 @@
*/
package org.springblade.flow.business.controller;
+import com.aliyun.oss.ServiceException;
import com.baomidou.mybatisplus.core.metadata.IPage;
import com.github.xiaoymin.knife4j.annotations.ApiOperationSupport;
import io.swagger.annotations.Api;
import io.swagger.annotations.ApiOperation;
import io.swagger.annotations.ApiParam;
import lombok.AllArgsConstructor;
+import org.flowable.engine.RuntimeService;
import org.flowable.engine.TaskService;
+import org.flowable.engine.impl.RuntimeServiceImpl;
+import org.springblade.common.constant.AuditStatusConstant;
import org.springblade.core.launch.constant.AppConstant;
import org.springblade.core.mp.support.Condition;
import org.springblade.core.mp.support.Query;
import org.springblade.core.redis.cache.BladeRedis;
+import org.springblade.core.secure.utils.AuthUtil;
import org.springblade.core.tool.api.R;
import org.springblade.core.tool.utils.Func;
import org.springblade.flow.business.service.FlowBusinessService;
@@ -34,6 +39,12 @@
import org.springblade.flow.core.utils.TaskUtil;
import org.springblade.flow.engine.entity.FlowProcess;
import org.springblade.flow.engine.service.FlowEngineService;
+import org.springblade.modules.application.entity.ApplicationEntity;
+import org.springblade.modules.application.service.IApplicationService;
+import org.springblade.modules.applicationCarChange.entity.ApplicationCarChangeEntity;
+import org.springblade.modules.applicationCarChange.service.IApplicationCarChangeService;
+import org.springblade.modules.applicationDelay.entity.ApplicationDelayEntity;
+import org.springblade.modules.applicationDelay.service.IApplicationDelayService;
import org.springframework.web.bind.annotation.*;
import java.time.Duration;
@@ -50,10 +61,15 @@
public class WorkController {
private final TaskService taskService;
+ private final RuntimeService runtimeService;
private final FlowEngineService flowEngineService;
private final FlowBusinessService flowBusinessService;
private final BladeRedis bladeRedis;
+
+ private final IApplicationService applicationService;
+ private final IApplicationDelayService applicationDelayService;
+ private final IApplicationCarChangeService applicationCarChangeService;
/**
* 发起事务列表页
@@ -156,15 +172,37 @@
@PostMapping("withdraw-task")
@ApiOperationSupport(order = 9)
@ApiOperation(value = "撤销任务", notes = "传入流程信息")
- public R withdraw(String userId){
- int times = Func.toInt(bladeRedis.get("AUDIT-CANCEL" + userId), 1);
+ public R withdraw(@RequestBody BladeFlow bladeFlow){
+ int times = Func.toInt(bladeRedis.get("AUDIT-CANCEL" + AuthUtil.getUser().getUserId()), 1);
if (times>3){
- return R.success("撤销任务失败");
+ return R.fail("撤销任务失败");
}
- bladeRedis.setEx("AUDIT-CANCEL"+userId,times+1, Duration.ofDays(1));
+ bladeRedis.setEx("AUDIT-CANCEL"+AuthUtil.getUser().getUserId(),times+1, Duration.ofDays(1));
//撤销任务操作
+ runtimeService.deleteProcessInstance(bladeFlow.getProcessInstanceId(),"自己撤销");
+ switch (bladeFlow.getProcessDefinitionKey()){
+ case "Leave":
+ break;
+ case "Audit":
+ ApplicationEntity applicationEntity = applicationService.getById(bladeFlow.getBusinessId());
+ applicationEntity.setStatus(AuditStatusConstant.SELF_CANCEL);
+ applicationService.updateById(applicationEntity);
+ break;
+ case "delayAudit":
+ ApplicationDelayEntity applicationDelayEntity = applicationDelayService.getById(bladeFlow.getBusinessId());
+ applicationDelayEntity.setStatus(AuditStatusConstant.SELF_CANCEL);
+ applicationDelayService.updateById(applicationDelayEntity);
+ break;
+ case "carChangeAudit":
+ ApplicationCarChangeEntity applicationCarChangeEntity = applicationCarChangeService.getById(bladeFlow.getBusinessId());
+ applicationCarChangeEntity.setStatus(AuditStatusConstant.SELF_CANCEL);
+ applicationCarChangeService.updateById(applicationCarChangeEntity);
+ break;
+ default:
+ break;
+ }
return R.success("撤销任务成功");
}
--
Gitblit v1.9.3