| | |
| | | import org.dromara.common.core.exception.ServiceException; |
| | | import org.dromara.common.core.utils.StreamUtils; |
| | | import org.dromara.common.core.utils.StringUtils; |
| | | import org.dromara.common.mybatis.core.page.PageQuery; |
| | | import org.dromara.common.mybatis.core.page.TableDataInfo; |
| | | import org.dromara.common.satoken.utils.LoginHelper; |
| | | import org.dromara.workflow.common.constant.FlowConstant; |
| | |
| | | /** |
| | | * 分页查询正在运行的流程实例 |
| | | * |
| | | * @param processInstanceBo 参数 |
| | | * @param bo 参数 |
| | | */ |
| | | @Override |
| | | public TableDataInfo<ProcessInstanceVo> getProcessInstanceRunningByPage(ProcessInstanceBo processInstanceBo) { |
| | | public TableDataInfo<ProcessInstanceVo> getPageByRunning(ProcessInstanceBo bo, PageQuery pageQuery) { |
| | | List<ProcessInstanceVo> list = new ArrayList<>(); |
| | | ProcessInstanceQuery query = QueryUtils.instanceQuery(); |
| | | if (StringUtils.isNotBlank(processInstanceBo.getName())) { |
| | | query.processInstanceNameLikeIgnoreCase("%" + processInstanceBo.getName() + "%"); |
| | | if (StringUtils.isNotBlank(bo.getName())) { |
| | | query.processInstanceNameLikeIgnoreCase("%" + bo.getName() + "%"); |
| | | } |
| | | if (StringUtils.isNotBlank(processInstanceBo.getKey())) { |
| | | query.processDefinitionKey(processInstanceBo.getKey()); |
| | | if (StringUtils.isNotBlank(bo.getKey())) { |
| | | query.processDefinitionKey(bo.getKey()); |
| | | } |
| | | if (StringUtils.isNotBlank(processInstanceBo.getStartUserId())) { |
| | | query.startedBy(processInstanceBo.getStartUserId()); |
| | | if (StringUtils.isNotBlank(bo.getStartUserId())) { |
| | | query.startedBy(bo.getStartUserId()); |
| | | } |
| | | if (StringUtils.isNotBlank(processInstanceBo.getBusinessKey())) { |
| | | query.processInstanceBusinessKey(processInstanceBo.getBusinessKey()); |
| | | if (StringUtils.isNotBlank(bo.getBusinessKey())) { |
| | | query.processInstanceBusinessKey(bo.getBusinessKey()); |
| | | } |
| | | if (StringUtils.isNotBlank(processInstanceBo.getCategoryCode())) { |
| | | query.processDefinitionCategory(processInstanceBo.getCategoryCode()); |
| | | if (StringUtils.isNotBlank(bo.getCategoryCode())) { |
| | | query.processDefinitionCategory(bo.getCategoryCode()); |
| | | } |
| | | query.orderByStartTime().desc(); |
| | | List<ProcessInstance> processInstances = query.listPage(processInstanceBo.getPageNum(), processInstanceBo.getPageSize()); |
| | | List<ProcessInstance> processInstances = query.listPage(pageQuery.getFirstNum(), pageQuery.getPageSize()); |
| | | for (ProcessInstance processInstance : processInstances) { |
| | | ProcessInstanceVo processInstanceVo = BeanUtil.toBean(processInstance, ProcessInstanceVo.class); |
| | | processInstanceVo.setIsSuspended(processInstance.isSuspended()); |
| | |
| | | /** |
| | | * 分页查询已结束的流程实例 |
| | | * |
| | | * @param processInstanceBo 参数 |
| | | * @param bo 参数 |
| | | */ |
| | | @Override |
| | | public TableDataInfo<ProcessInstanceVo> getProcessInstanceFinishByPage(ProcessInstanceBo processInstanceBo) { |
| | | public TableDataInfo<ProcessInstanceVo> getPageByFinish(ProcessInstanceBo bo, PageQuery pageQuery) { |
| | | List<ProcessInstanceVo> list = new ArrayList<>(); |
| | | HistoricProcessInstanceQuery query = QueryUtils.hisInstanceQuery() |
| | | .finished().orderByProcessInstanceEndTime().desc(); |
| | | if (StringUtils.isNotEmpty(processInstanceBo.getName())) { |
| | | query.processInstanceNameLikeIgnoreCase("%" + processInstanceBo.getName() + "%"); |
| | | if (StringUtils.isNotEmpty(bo.getName())) { |
| | | query.processInstanceNameLikeIgnoreCase("%" + bo.getName() + "%"); |
| | | } |
| | | if (StringUtils.isNotBlank(processInstanceBo.getKey())) { |
| | | query.processDefinitionKey(processInstanceBo.getKey()); |
| | | if (StringUtils.isNotBlank(bo.getKey())) { |
| | | query.processDefinitionKey(bo.getKey()); |
| | | } |
| | | if (StringUtils.isNotEmpty(processInstanceBo.getStartUserId())) { |
| | | query.startedBy(processInstanceBo.getStartUserId()); |
| | | if (StringUtils.isNotEmpty(bo.getStartUserId())) { |
| | | query.startedBy(bo.getStartUserId()); |
| | | } |
| | | if (StringUtils.isNotBlank(processInstanceBo.getBusinessKey())) { |
| | | query.processInstanceBusinessKey(processInstanceBo.getBusinessKey()); |
| | | if (StringUtils.isNotBlank(bo.getBusinessKey())) { |
| | | query.processInstanceBusinessKey(bo.getBusinessKey()); |
| | | } |
| | | if (StringUtils.isNotBlank(processInstanceBo.getCategoryCode())) { |
| | | query.processDefinitionCategory(processInstanceBo.getCategoryCode()); |
| | | if (StringUtils.isNotBlank(bo.getCategoryCode())) { |
| | | query.processDefinitionCategory(bo.getCategoryCode()); |
| | | } |
| | | List<HistoricProcessInstance> historicProcessInstances = query.listPage(processInstanceBo.getPageNum(), processInstanceBo.getPageSize()); |
| | | List<HistoricProcessInstance> historicProcessInstances = query.listPage(pageQuery.getFirstNum(), pageQuery.getPageSize()); |
| | | for (HistoricProcessInstance historicProcessInstance : historicProcessInstances) { |
| | | ProcessInstanceVo processInstanceVo = BeanUtil.toBean(historicProcessInstance, ProcessInstanceVo.class); |
| | | processInstanceVo.setBusinessStatusName(BusinessStatusEnum.findByStatus(historicProcessInstance.getBusinessStatus())); |
| | |
| | | */ |
| | | @SneakyThrows |
| | | @Override |
| | | public String getHistoryProcessImage(String processInstanceId) { |
| | | public String getHistoryImage(String processInstanceId) { |
| | | String processDefinitionId; |
| | | // 获取当前的流程实例 |
| | | ProcessInstance processInstance = QueryUtils.instanceQuery(processInstanceId).singleResult(); |
| | |
| | | * @param processInstanceId 流程实例id |
| | | */ |
| | | @Override |
| | | public Map<String, Object> getHistoryProcessList(String processInstanceId) { |
| | | public Map<String, Object> getHistoryList(String processInstanceId) { |
| | | Map<String, Object> map = new HashMap<>(); |
| | | List<Map<String, Object>> taskList = new ArrayList<>(); |
| | | HistoricProcessInstance historicProcessInstance = QueryUtils.hisInstanceQuery(processInstanceId).singleResult(); |
| | |
| | | */ |
| | | @Override |
| | | @Transactional(rollbackFor = Exception.class) |
| | | public boolean deleteRuntimeProcessInst(ProcessInvalidBo processInvalidBo) { |
| | | public boolean deleteRunInstance(ProcessInvalidBo processInvalidBo) { |
| | | try { |
| | | List<Task> list = QueryUtils.taskQuery(processInvalidBo.getProcessInstanceId()).list(); |
| | | List<Task> subTasks = StreamUtils.filter(list, e -> StringUtils.isNotBlank(e.getParentTaskId())); |
| | |
| | | */ |
| | | @Override |
| | | @Transactional(rollbackFor = Exception.class) |
| | | public boolean deleteRuntimeProcessAndHisInst(List<String> processInstanceIds) { |
| | | public boolean deleteRunAndHisInstance(List<String> processInstanceIds) { |
| | | try { |
| | | // 1.删除运行中流程实例 |
| | | List<Task> list = QueryUtils.taskQuery(processInstanceIds).list(); |
| | |
| | | */ |
| | | @Override |
| | | @Transactional(rollbackFor = Exception.class) |
| | | public boolean deleteRuntimeProcessAndHisInstByBusinessKeys(List<String> businessKeys) { |
| | | public boolean deleteRunAndHisInstanceByBusinessKeys(List<String> businessKeys) { |
| | | try { |
| | | // 1.删除运行中流程实例 |
| | | List<ActHiProcinst> actHiProcinsts = actHiProcinstService.selectByBusinessKeyIn(businessKeys); |
| | |
| | | */ |
| | | @Override |
| | | @Transactional(rollbackFor = Exception.class) |
| | | public boolean deleteFinishProcessAndHisInst(List<String> processInstanceIds) { |
| | | public boolean deleteFinishAndHisInstance(List<String> processInstanceIds) { |
| | | try { |
| | | historyService.bulkDeleteHistoricProcessInstances(processInstanceIds); |
| | | return true; |
| | |
| | | /** |
| | | * 分页查询当前登录人单据 |
| | | * |
| | | * @param processInstanceBo 参数 |
| | | * @param bo 参数 |
| | | */ |
| | | @Override |
| | | public TableDataInfo<ProcessInstanceVo> getCurrentSubmitByPage(ProcessInstanceBo processInstanceBo) { |
| | | public TableDataInfo<ProcessInstanceVo> getPageByCurrent(ProcessInstanceBo bo, PageQuery pageQuery) { |
| | | List<ProcessInstanceVo> list = new ArrayList<>(); |
| | | HistoricProcessInstanceQuery query = QueryUtils.hisInstanceQuery(); |
| | | query.startedBy(processInstanceBo.getStartUserId()); |
| | | if (StringUtils.isNotBlank(processInstanceBo.getName())) { |
| | | query.processInstanceNameLikeIgnoreCase("%" + processInstanceBo.getName() + "%"); |
| | | query.startedBy(bo.getStartUserId()); |
| | | if (StringUtils.isNotBlank(bo.getName())) { |
| | | query.processInstanceNameLikeIgnoreCase("%" + bo.getName() + "%"); |
| | | } |
| | | if (StringUtils.isNotBlank(processInstanceBo.getKey())) { |
| | | query.processDefinitionKey(processInstanceBo.getKey()); |
| | | if (StringUtils.isNotBlank(bo.getKey())) { |
| | | query.processDefinitionKey(bo.getKey()); |
| | | } |
| | | if (StringUtils.isNotBlank(processInstanceBo.getBusinessKey())) { |
| | | query.processInstanceBusinessKey(processInstanceBo.getBusinessKey()); |
| | | if (StringUtils.isNotBlank(bo.getBusinessKey())) { |
| | | query.processInstanceBusinessKey(bo.getBusinessKey()); |
| | | } |
| | | if (StringUtils.isNotBlank(processInstanceBo.getCategoryCode())) { |
| | | query.processDefinitionCategory(processInstanceBo.getCategoryCode()); |
| | | if (StringUtils.isNotBlank(bo.getCategoryCode())) { |
| | | query.processDefinitionCategory(bo.getCategoryCode()); |
| | | } |
| | | query.orderByProcessInstanceStartTime().desc(); |
| | | List<HistoricProcessInstance> historicProcessInstanceList = query.listPage(processInstanceBo.getPageNum(), processInstanceBo.getPageSize()); |
| | | List<HistoricProcessInstance> historicProcessInstanceList = query.listPage(pageQuery.getFirstNum(), pageQuery.getPageSize()); |
| | | List<TaskVo> taskVoList = new ArrayList<>(); |
| | | if (CollUtil.isNotEmpty(historicProcessInstanceList)) { |
| | | List<String> processInstanceIds = StreamUtils.toList(historicProcessInstanceList, HistoricProcessInstance::getId); |