add 添加撤销,终止,驳回,作废等状态校验
This commit is contained in:
parent
e7907a4664
commit
d4685e5f95
@ -89,5 +89,64 @@ public enum BusinessStatusEnum {
|
|||||||
throw new ServiceException("流程状态为空!");
|
throw new ServiceException("流程状态为空!");
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 撤销流程校验
|
||||||
|
*
|
||||||
|
* @param status 状态
|
||||||
|
*/
|
||||||
|
public static void checkCancelStatus(String status) {
|
||||||
|
if (CANCEL.getStatus().equals(status)) {
|
||||||
|
throw new ServiceException("该单据已撤销!");
|
||||||
|
} else if (FINISH.getStatus().equals(status)) {
|
||||||
|
throw new ServiceException("该单据已完成申请!");
|
||||||
|
} else if (INVALID.getStatus().equals(status)) {
|
||||||
|
throw new ServiceException("该单据已作废!");
|
||||||
|
} else if (TERMINATION.getStatus().equals(status)) {
|
||||||
|
throw new ServiceException("该单据已终止!");
|
||||||
|
} else if (BACK.getStatus().equals(status)) {
|
||||||
|
throw new ServiceException("该单据已退回!");
|
||||||
|
} else if (StringUtils.isBlank(status)) {
|
||||||
|
throw new ServiceException("流程状态为空!");
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 驳回流程校验
|
||||||
|
*
|
||||||
|
* @param status 状态
|
||||||
|
*/
|
||||||
|
public static void checkBackStatus(String status) {
|
||||||
|
if (BACK.getStatus().equals(status)) {
|
||||||
|
throw new ServiceException("该单据已退回!");
|
||||||
|
} else if (FINISH.getStatus().equals(status)) {
|
||||||
|
throw new ServiceException("该单据已完成申请!");
|
||||||
|
} else if (INVALID.getStatus().equals(status)) {
|
||||||
|
throw new ServiceException("该单据已作废!");
|
||||||
|
} else if (TERMINATION.getStatus().equals(status)) {
|
||||||
|
throw new ServiceException("该单据已终止!");
|
||||||
|
} else if (CANCEL.getStatus().equals(status)) {
|
||||||
|
throw new ServiceException("该单据已撤销!");
|
||||||
|
} else if (StringUtils.isBlank(status)) {
|
||||||
|
throw new ServiceException("流程状态为空!");
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 作废,终止流程校验
|
||||||
|
*
|
||||||
|
* @param status 状态
|
||||||
|
*/
|
||||||
|
public static void checkInvalidStatus(String status) {
|
||||||
|
if (FINISH.getStatus().equals(status)) {
|
||||||
|
throw new ServiceException("该单据已完成申请!");
|
||||||
|
} else if (INVALID.getStatus().equals(status)) {
|
||||||
|
throw new ServiceException("该单据已作废!");
|
||||||
|
} else if (TERMINATION.getStatus().equals(status)) {
|
||||||
|
throw new ServiceException("该单据已终止!");
|
||||||
|
} else if (StringUtils.isBlank(status)) {
|
||||||
|
throw new ServiceException("流程状态为空!");
|
||||||
|
}
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -60,7 +60,6 @@ import java.util.List;
|
|||||||
import java.util.*;
|
import java.util.*;
|
||||||
import java.util.stream.Collectors;
|
import java.util.stream.Collectors;
|
||||||
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* 流程实例 服务层实现
|
* 流程实例 服务层实现
|
||||||
*
|
*
|
||||||
@ -464,10 +463,8 @@ public class ActProcessInstanceServiceImpl implements IActProcessInstanceService
|
|||||||
for (Task task : StreamUtils.filter(list, e -> StringUtils.isBlank(e.getParentTaskId()))) {
|
for (Task task : StreamUtils.filter(list, e -> StringUtils.isBlank(e.getParentTaskId()))) {
|
||||||
taskService.addComment(task.getId(), task.getProcessInstanceId(), TaskStatusEnum.INVALID.getStatus(), deleteReason);
|
taskService.addComment(task.getId(), task.getProcessInstanceId(), TaskStatusEnum.INVALID.getStatus(), deleteReason);
|
||||||
}
|
}
|
||||||
HistoricProcessInstance historicProcessInstance = QueryUtils.hisInstanceQuery(processInvalidBo.getProcessInstanceId()).singleResult();
|
HistoricProcessInstance historicProcessInstance = QueryUtils.hisInstanceQuery(processInvalidBo.getProcessInstanceId()).singleResult();
|
||||||
if (ObjectUtil.isNotEmpty(historicProcessInstance) && BusinessStatusEnum.FINISH.getStatus().equals(historicProcessInstance.getBusinessStatus())) {
|
BusinessStatusEnum.checkInvalidStatus(historicProcessInstance.getBusinessStatus());
|
||||||
throw new ServiceException("该单据已完成申请!");
|
|
||||||
}
|
|
||||||
runtimeService.updateBusinessStatus(processInvalidBo.getProcessInstanceId(), BusinessStatusEnum.INVALID.getStatus());
|
runtimeService.updateBusinessStatus(processInvalidBo.getProcessInstanceId(), BusinessStatusEnum.INVALID.getStatus());
|
||||||
runtimeService.deleteProcessInstance(processInvalidBo.getProcessInstanceId(), deleteReason);
|
runtimeService.deleteProcessInstance(processInvalidBo.getProcessInstanceId(), deleteReason);
|
||||||
FlowProcessEventHandler processHandler = flowEventStrategy.getProcessHandler(historicProcessInstance.getProcessDefinitionKey());
|
FlowProcessEventHandler processHandler = flowEventStrategy.getProcessHandler(historicProcessInstance.getProcessDefinitionKey());
|
||||||
@ -577,9 +574,7 @@ public class ActProcessInstanceServiceImpl implements IActProcessInstanceService
|
|||||||
if (processInstance.isSuspended()) {
|
if (processInstance.isSuspended()) {
|
||||||
throw new ServiceException(FlowConstant.MESSAGE_SUSPENDED);
|
throw new ServiceException(FlowConstant.MESSAGE_SUSPENDED);
|
||||||
}
|
}
|
||||||
if (BusinessStatusEnum.CANCEL.getStatus().equals(processInstance.getBusinessStatus())) {
|
BusinessStatusEnum.checkCancelStatus(processInstance.getBusinessStatus());
|
||||||
throw new ServiceException("该单据已撤销!");
|
|
||||||
}
|
|
||||||
List<Task> taskList = QueryUtils.taskQuery(processInstanceId).list();
|
List<Task> taskList = QueryUtils.taskQuery(processInstanceId).list();
|
||||||
for (Task task : taskList) {
|
for (Task task : taskList) {
|
||||||
taskService.setAssignee(task.getId(), String.valueOf(LoginHelper.getUserId()));
|
taskService.setAssignee(task.getId(), String.valueOf(LoginHelper.getUserId()));
|
||||||
|
@ -474,9 +474,7 @@ public class ActTaskServiceImpl implements IActTaskService {
|
|||||||
}
|
}
|
||||||
HistoricProcessInstance historicProcessInstance = QueryUtils.hisInstanceQuery()
|
HistoricProcessInstance historicProcessInstance = QueryUtils.hisInstanceQuery()
|
||||||
.processInstanceBusinessKey(task.getProcessInstanceId()).singleResult();
|
.processInstanceBusinessKey(task.getProcessInstanceId()).singleResult();
|
||||||
if (ObjectUtil.isNotEmpty(historicProcessInstance) && BusinessStatusEnum.TERMINATION.getStatus().equals(historicProcessInstance.getBusinessStatus())) {
|
BusinessStatusEnum.checkInvalidStatus(historicProcessInstance.getBusinessStatus());
|
||||||
throw new ServiceException("该单据已终止!");
|
|
||||||
}
|
|
||||||
try {
|
try {
|
||||||
if (StringUtils.isBlank(terminationBo.getComment())) {
|
if (StringUtils.isBlank(terminationBo.getComment())) {
|
||||||
terminationBo.setComment(LoginHelper.getLoginUser().getNickname() + "终止了申请");
|
terminationBo.setComment(LoginHelper.getLoginUser().getNickname() + "终止了申请");
|
||||||
@ -654,6 +652,7 @@ public class ActTaskServiceImpl implements IActTaskService {
|
|||||||
if (BusinessStatusEnum.BACK.getStatus().equals(processInstance.getBusinessStatus())) {
|
if (BusinessStatusEnum.BACK.getStatus().equals(processInstance.getBusinessStatus())) {
|
||||||
throw new ServiceException("该单据已退回!");
|
throw new ServiceException("该单据已退回!");
|
||||||
}
|
}
|
||||||
|
BusinessStatusEnum.checkBackStatus(processInstance.getBusinessStatus());
|
||||||
//判断是否有多个任务
|
//判断是否有多个任务
|
||||||
List<Task> taskList = QueryUtils.taskQuery(processInstanceId).list();
|
List<Task> taskList = QueryUtils.taskQuery(processInstanceId).list();
|
||||||
//申请人节点
|
//申请人节点
|
||||||
|
Loading…
x
Reference in New Issue
Block a user