重新发起和取消功能实现,重新发起还有待办事项

This commit is contained in:
2024-05-14 19:54:55 +08:00
parent 1f3f27632d
commit b496452fd2
12 changed files with 153 additions and 46 deletions

View File

@@ -2,6 +2,7 @@ package com.njcn.bpm.api;
import com.njcn.bpm.api.fallback.BpmProcessFeignClientFallbackFactory;
import com.njcn.bpm.pojo.dto.BpmProcessInstanceCreateReqDTO;
import com.njcn.bpm.pojo.param.instance.BpmProcessInstanceCancelParam;
import com.njcn.common.pojo.constant.ServerInfo;
import com.njcn.common.pojo.response.HttpResult;
import org.springframework.cloud.openfeign.FeignClient;
@@ -15,7 +16,7 @@ import org.springframework.web.bind.annotation.RequestParam;
*
* @author hongawen
*/
@FeignClient(value = ServerInfo.BPM,path = "/bpm/processDefinition",fallbackFactory = BpmProcessFeignClientFallbackFactory.class)
@FeignClient(value = ServerInfo.BPM,path = "/bpm/processInstance",fallbackFactory = BpmProcessFeignClientFallbackFactory.class)
public interface BpmProcessFeignClient {
/**
@@ -27,4 +28,9 @@ public interface BpmProcessFeignClient {
@PostMapping("/createProcessInstance")
HttpResult<String> createProcessInstance(@RequestParam("userId") String userId, @RequestBody BpmProcessInstanceCreateReqDTO reqDTO);
@PostMapping("/cancelByStartUser")
HttpResult<Boolean> cancelProcessInstanceByStartUser(@RequestBody BpmProcessInstanceCancelParam cancelReqVO);
}

View File

@@ -2,6 +2,7 @@ package com.njcn.bpm.api.fallback;
import com.njcn.bpm.api.BpmProcessFeignClient;
import com.njcn.bpm.pojo.dto.BpmProcessInstanceCreateReqDTO;
import com.njcn.bpm.pojo.param.instance.BpmProcessInstanceCancelParam;
import com.njcn.bpm.utils.BpmEnumUtil;
import com.njcn.common.pojo.enums.response.CommonResponseEnum;
import com.njcn.common.pojo.exception.BusinessException;
@@ -34,6 +35,12 @@ public class BpmProcessFeignClientFallbackFactory implements FallbackFactory<Bpm
throw new BusinessException(finalExceptionEnum);
}
@Override
public HttpResult<Boolean> cancelProcessInstanceByStartUser(BpmProcessInstanceCancelParam cancelReqVO) {
log.error("{}异常,降级处理,异常为:{}", "取消流程实例", throwable.toString());
throw new BusinessException(finalExceptionEnum);
}
};
}
}

View File

@@ -46,6 +46,8 @@ public enum BpmResponseEnum {
REPEAT_CATEGORY_CODE_FORM("A00568", "流程类型编码重复"),
QUIT_RUNNING_REPEAT("A00568", "该设备已在审批中"),
REPEAT_SIGN_NAME_FORM("A00568", "流程标识名称重复"),
REPEAT_SIGN_KEY_FORM("A00568", "流程标识key重复"),

View File

@@ -10,12 +10,16 @@ import javax.validation.constraints.NotEmpty;
@Data
public class BpmProcessInstanceCancelParam {
@ApiModelProperty("流程实例的编号")
@NotEmpty(message = "流程实例的编号不能为空")
@ApiModelProperty("流程业务的编号")
@NotEmpty(message = "流程业务的编号不能为空")
private String id;
@ApiModelProperty("取消原因")
@NotEmpty(message = "取消原因不能为空")
private String reason;
@ApiModelProperty("流程实例的编号")
@NotEmpty(message = "流程实例的编号不能为空")
private String processInstanceId;
}

View File

@@ -57,8 +57,6 @@ public class BpmProcessDefinitionController extends BaseController {
private final IBpmCategoryService categoryService;
private final IBpmProcessInstanceService processInstanceService;
@OperateInfo(info = LogEnum.BUSINESS_COMMON)
@PostMapping("/page")
@ApiOperation("获得流程定义分页")
@@ -125,13 +123,4 @@ public class BpmProcessDefinitionController extends BaseController {
processDefinition, null, null, null, null, bpmnModel, userTaskList), methodDescribe);
}
@OperateInfo(info = LogEnum.BUSINESS_COMMON, operateType = OperateType.ADD)
@ApiOperation("创建流程实例")
@PostMapping("/createProcessInstance")
HttpResult<String> createProcessInstance(@RequestParam("userId") String userId, @RequestBody BpmProcessInstanceCreateReqDTO reqDTO){
String methodDescribe = getMethodDescribe("createProcessInstance");
String instanceId = processInstanceService.createProcessInstance(userId, reqDTO);
return HttpResultUtil.assembleCommonResponseResult(CommonResponseEnum.SUCCESS, instanceId, methodDescribe);
}
}

View File

@@ -19,6 +19,7 @@ import com.njcn.bpm.utils.BpmProcessInstanceConvert;
import com.njcn.bpm.utils.BpmnModelUtils;
import com.njcn.bpm.utils.CollectionUtils;
import com.njcn.common.pojo.annotation.OperateInfo;
import com.njcn.common.pojo.constant.OperateType;
import com.njcn.common.pojo.enums.common.LogEnum;
import com.njcn.common.pojo.enums.response.CommonResponseEnum;
import com.njcn.common.pojo.response.HttpResult;
@@ -192,4 +193,13 @@ public class BpmProcessInstanceController extends BaseController {
return HttpResultUtil.assembleCommonResponseResult(CommonResponseEnum.SUCCESS, true, methodDescribe);
}
@OperateInfo(info = LogEnum.BUSINESS_COMMON, operateType = OperateType.ADD)
@ApiOperation("创建流程实例")
@PostMapping("/createProcessInstance")
HttpResult<String> createProcessInstance(@RequestParam("userId") String userId, @RequestBody BpmProcessInstanceCreateReqDTO reqDTO){
String methodDescribe = getMethodDescribe("createProcessInstance");
String instanceId = processInstanceService.createProcessInstance(userId, reqDTO);
return HttpResultUtil.assembleCommonResponseResult(CommonResponseEnum.SUCCESS, instanceId, methodDescribe);
}
}

View File

@@ -227,7 +227,7 @@ public class BpmProcessInstanceServiceImpl implements IBpmProcessInstanceService
@Override
public void cancelProcessInstanceByStartUser(String userId, BpmProcessInstanceCancelParam cancelReqVO) {
// 1.1 校验流程实例存在
ProcessInstance instance = getProcessInstance(cancelReqVO.getId());
ProcessInstance instance = getProcessInstance(cancelReqVO.getProcessInstanceId());
if (instance == null) {
throw new BusinessException(BpmResponseEnum.PROCESS_INSTANCE_CANCEL_FAIL_NOT_EXISTS);
}
@@ -238,7 +238,7 @@ public class BpmProcessInstanceServiceImpl implements IBpmProcessInstanceService
// 2. 通过删除流程实例,实现流程实例的取消,
// 删除流程实例,正则执行任务 ACT_RU_TASK. 任务会被删除。
deleteProcessInstance(cancelReqVO.getId(),
deleteProcessInstance(cancelReqVO.getProcessInstanceId(),
BpmDeleteReasonEnum.CANCEL_PROCESS_INSTANCE_BY_START_USER.format(cancelReqVO.getReason()));
// 3. 进一步的处理,交给 updateProcessInstanceCancel 方法