mirror of
				https://github.com/dromara/RuoYi-Vue-Plus.git
				synced 2025-11-04 08:13:44 +08:00 
			
		
		
		
	add 添加撤销,终止,驳回,作废等状态校验
This commit is contained in:
		@@ -89,5 +89,64 @@ public enum BusinessStatusEnum {
 | 
			
		||||
            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.stream.Collectors;
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
/**
 | 
			
		||||
 * 流程实例 服务层实现
 | 
			
		||||
 *
 | 
			
		||||
@@ -465,9 +464,7 @@ public class ActProcessInstanceServiceImpl implements IActProcessInstanceService
 | 
			
		||||
                taskService.addComment(task.getId(), task.getProcessInstanceId(), TaskStatusEnum.INVALID.getStatus(), deleteReason);
 | 
			
		||||
            }
 | 
			
		||||
            HistoricProcessInstance historicProcessInstance = QueryUtils.hisInstanceQuery(processInvalidBo.getProcessInstanceId()).singleResult();
 | 
			
		||||
            if (ObjectUtil.isNotEmpty(historicProcessInstance) && BusinessStatusEnum.FINISH.getStatus().equals(historicProcessInstance.getBusinessStatus())) {
 | 
			
		||||
                throw new ServiceException("该单据已完成申请!");
 | 
			
		||||
            }
 | 
			
		||||
            BusinessStatusEnum.checkInvalidStatus(historicProcessInstance.getBusinessStatus());
 | 
			
		||||
            runtimeService.updateBusinessStatus(processInvalidBo.getProcessInstanceId(), BusinessStatusEnum.INVALID.getStatus());
 | 
			
		||||
            runtimeService.deleteProcessInstance(processInvalidBo.getProcessInstanceId(), deleteReason);
 | 
			
		||||
            FlowProcessEventHandler processHandler = flowEventStrategy.getProcessHandler(historicProcessInstance.getProcessDefinitionKey());
 | 
			
		||||
@@ -577,9 +574,7 @@ public class ActProcessInstanceServiceImpl implements IActProcessInstanceService
 | 
			
		||||
            if (processInstance.isSuspended()) {
 | 
			
		||||
                throw new ServiceException(FlowConstant.MESSAGE_SUSPENDED);
 | 
			
		||||
            }
 | 
			
		||||
            if (BusinessStatusEnum.CANCEL.getStatus().equals(processInstance.getBusinessStatus())) {
 | 
			
		||||
                throw new ServiceException("该单据已撤销!");
 | 
			
		||||
            }
 | 
			
		||||
            BusinessStatusEnum.checkCancelStatus(processInstance.getBusinessStatus());
 | 
			
		||||
            List<Task> taskList = QueryUtils.taskQuery(processInstanceId).list();
 | 
			
		||||
            for (Task task : taskList) {
 | 
			
		||||
                taskService.setAssignee(task.getId(), String.valueOf(LoginHelper.getUserId()));
 | 
			
		||||
 
 | 
			
		||||
@@ -474,9 +474,7 @@ public class ActTaskServiceImpl implements IActTaskService {
 | 
			
		||||
        }
 | 
			
		||||
        HistoricProcessInstance historicProcessInstance = QueryUtils.hisInstanceQuery()
 | 
			
		||||
            .processInstanceBusinessKey(task.getProcessInstanceId()).singleResult();
 | 
			
		||||
        if (ObjectUtil.isNotEmpty(historicProcessInstance) && BusinessStatusEnum.TERMINATION.getStatus().equals(historicProcessInstance.getBusinessStatus())) {
 | 
			
		||||
            throw new ServiceException("该单据已终止!");
 | 
			
		||||
        }
 | 
			
		||||
        BusinessStatusEnum.checkInvalidStatus(historicProcessInstance.getBusinessStatus());
 | 
			
		||||
        try {
 | 
			
		||||
            if (StringUtils.isBlank(terminationBo.getComment())) {
 | 
			
		||||
                terminationBo.setComment(LoginHelper.getLoginUser().getNickname() + "终止了申请");
 | 
			
		||||
@@ -654,6 +652,7 @@ public class ActTaskServiceImpl implements IActTaskService {
 | 
			
		||||
            if (BusinessStatusEnum.BACK.getStatus().equals(processInstance.getBusinessStatus())) {
 | 
			
		||||
                throw new ServiceException("该单据已退回!");
 | 
			
		||||
            }
 | 
			
		||||
            BusinessStatusEnum.checkBackStatus(processInstance.getBusinessStatus());
 | 
			
		||||
            //判断是否有多个任务
 | 
			
		||||
            List<Task> taskList = QueryUtils.taskQuery(processInstanceId).list();
 | 
			
		||||
            //申请人节点
 | 
			
		||||
 
 | 
			
		||||
		Reference in New Issue
	
	Block a user