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 | 64 ++++++++++++++++++++++++++++++++
1 files changed, 64 insertions(+), 0 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 21addaf..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,23 +16,38 @@
*/
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;
import org.springblade.flow.core.entity.BladeFlow;
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;
/**
* 流程事务通用接口
@@ -46,8 +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;
/**
* 发起事务列表页
@@ -143,4 +165,46 @@
return R.success("删除任务成功");
}
+ /**
+ * 撤销任务
+ *
+ */
+ @PostMapping("withdraw-task")
+ @ApiOperationSupport(order = 9)
+ @ApiOperation(value = "撤销任务", notes = "传入流程信息")
+ public R withdraw(@RequestBody BladeFlow bladeFlow){
+ int times = Func.toInt(bladeRedis.get("AUDIT-CANCEL" + AuthUtil.getUser().getUserId()), 1);
+ if (times>3){
+ return R.fail("撤销任务失败");
+ }
+
+ 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