重新发起和取消功能实现,重新发起还有待办事项
This commit is contained in:
@@ -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);
|
||||
|
||||
|
||||
}
|
||||
|
||||
@@ -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);
|
||||
}
|
||||
|
||||
};
|
||||
}
|
||||
}
|
||||
|
||||
@@ -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重复"),
|
||||
|
||||
@@ -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;
|
||||
|
||||
}
|
||||
|
||||
@@ -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);
|
||||
}
|
||||
}
|
||||
|
||||
@@ -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);
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
@@ -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 方法
|
||||
|
||||
Reference in New Issue
Block a user