fix(bpm):优化流程实例取消逻辑
- 当流程实例不存在时,通过历史表查询并更新状态 - 增加对已删除流程实例的处理,确保审批状态正确修改-保留原有权限校验逻辑,确保只能取消自己的流程实例- 引入 FlowableEventType 用于事件处理 - 移除冗余的事务注解,简化代码结构
This commit is contained in:
@@ -1,12 +1,9 @@
|
||||
package com.jeelowcode.service.bpm.controller;
|
||||
|
||||
import com.jeelowcode.core.framework.controller.BaseController;
|
||||
import com.jeelowcode.core.framework.enums.ApproveStatusEnum;
|
||||
import com.jeelowcode.framework.utils.model.ResultDataModel;
|
||||
import com.jeelowcode.framework.utils.tool.CollectionUtil;
|
||||
import com.jeelowcode.framework.utils.tool.NumberUtil;
|
||||
import com.jeelowcode.service.bpm.controller.vo.instance.*;
|
||||
import com.jeelowcode.service.bpm.controller.vo.process.BpmProcessDefinitionRespVO;
|
||||
import com.jeelowcode.service.bpm.service.IBpmProcessInstanceService;
|
||||
import com.jeelowcode.tool.framework.common.pojo.CommonResult;
|
||||
import com.jeelowcode.tool.framework.common.pojo.PageResult;
|
||||
@@ -19,9 +16,7 @@ import org.springframework.web.bind.annotation.*;
|
||||
|
||||
import javax.annotation.Resource;
|
||||
import javax.validation.Valid;
|
||||
|
||||
import java.util.HashMap;
|
||||
import java.util.List;
|
||||
import java.util.Objects;
|
||||
|
||||
import static com.jeelowcode.tool.framework.common.pojo.CommonResult.success;
|
||||
@@ -37,7 +32,7 @@ public class BpmProcessInstanceController extends BaseController {
|
||||
private IBpmProcessInstanceService processInstanceService;
|
||||
|
||||
@GetMapping("/my-page")
|
||||
@Operation(tags = "流程管理",summary = "获得我的实例分页列表", description = "在【我的流程】菜单中,进行调用")
|
||||
@Operation(tags = "流程管理", summary = "获得我的实例分页列表", description = "在【我的流程】菜单中,进行调用")
|
||||
@PreAuthorize("@ss.hasPermission('bpm:process-instance:query')")
|
||||
public CommonResult<PageResult<BpmProcessInstancePageItemRespVO>> getMyProcessInstancePage(
|
||||
@Valid BpmProcessInstanceMyPageReqVO pageReqVO) {
|
||||
@@ -45,19 +40,19 @@ public class BpmProcessInstanceController extends BaseController {
|
||||
}
|
||||
|
||||
@PostMapping("/create")
|
||||
@Operation(tags = "流程管理",summary = "新建流程实例")
|
||||
@Operation(tags = "流程管理", summary = "新建流程实例")
|
||||
@PreAuthorize("@ss.hasPermission('bpm:process-instance:query')")
|
||||
public CommonResult<String> createProcessInstance(@Valid @RequestBody BpmProcessInstanceCreateReqVO createReqVO) {
|
||||
return success(processInstanceService.createProcessInstance(getLoginUserId(), createReqVO));
|
||||
}
|
||||
|
||||
@PostMapping("/listCreate")
|
||||
@Operation(tags = "流程管理",summary = "新建流程实例")
|
||||
@Operation(tags = "流程管理", summary = "新建流程实例")
|
||||
@PreAuthorize("@ss.hasPermission('bpm:process-instance:query')")
|
||||
public CommonResult<String> createListProcessInstance(@Valid @RequestBody BpmProcessInstanceCreateReqVO createReqVO) {
|
||||
ResultDataModel dataDetail = super.getDataDetail(NumberUtil.toLong(createReqVO.getDbFormId()),NumberUtil.toLong(createReqVO.getDataId()),new HashMap<String,Object>());
|
||||
if(Objects.nonNull(dataDetail)){
|
||||
dataDetail.getRecords().get(0).put("approveStatusName","");
|
||||
ResultDataModel dataDetail = super.getDataDetail(NumberUtil.toLong(createReqVO.getDbFormId()), NumberUtil.toLong(createReqVO.getDataId()), new HashMap<String, Object>());
|
||||
if (Objects.nonNull(dataDetail)) {
|
||||
dataDetail.getRecords().get(0).put("approveStatusName", "");
|
||||
createReqVO.setVariables(dataDetail.getRecords().get(0));
|
||||
}
|
||||
|
||||
@@ -65,9 +60,8 @@ public class BpmProcessInstanceController extends BaseController {
|
||||
}
|
||||
|
||||
|
||||
|
||||
@PostMapping("/createV2")
|
||||
@Operation(tags = "流程管理",summary = "新建流程实例(自定义流程发起使用)")
|
||||
@Operation(tags = "流程管理", summary = "新建流程实例(自定义流程发起使用)")
|
||||
@PreAuthorize("@ss.hasPermission('bpm:process-instance:query')")
|
||||
public CommonResult<String> createProcessInstanceV2(@Valid @RequestBody BpmProcessInstanceCreateReqVO createReqVO) {
|
||||
return success(processInstanceService.createProcessInstanceV2(getLoginUserId(), createReqVO));
|
||||
@@ -75,7 +69,7 @@ public class BpmProcessInstanceController extends BaseController {
|
||||
|
||||
|
||||
@GetMapping("/get")
|
||||
@Operation(tags = "流程管理",summary = "获得指定流程实例", description = "在【流程详细】界面中,进行调用")
|
||||
@Operation(tags = "流程管理", summary = "获得指定流程实例", description = "在【流程详细】界面中,进行调用")
|
||||
@Parameter(name = "id", description = "流程实例的编号", required = true)
|
||||
@PreAuthorize("@ss.hasPermission('bpm:process-instance:query')")
|
||||
public CommonResult<BpmProcessInstanceRespVO> getProcessInstance(@RequestParam("id") String id) {
|
||||
@@ -83,7 +77,7 @@ public class BpmProcessInstanceController extends BaseController {
|
||||
}
|
||||
|
||||
@DeleteMapping("/cancel")
|
||||
@Operation(tags = "流程管理",summary = "取消流程实例", description = "撤回发起的流程")
|
||||
@Operation(tags = "流程管理", summary = "取消流程实例", description = "撤回发起的流程")
|
||||
@PreAuthorize("@ss.hasPermission('bpm:process-instance:cancel')")
|
||||
public CommonResult<Boolean> cancelProcessInstance(@Valid @RequestBody BpmProcessInstanceCancelReqVO cancelReqVO) {
|
||||
processInstanceService.cancelProcessInstance(getLoginUserId(), cancelReqVO);
|
||||
|
||||
File diff suppressed because one or more lines are too long
Reference in New Issue
Block a user