| | |
| | | import com.vci.ubcs.flow.engine.constant.FlowEngineConstant; |
| | | import com.vci.ubcs.flow.engine.entity.FlowProcess; |
| | | import com.vci.ubcs.flow.engine.utils.FlowCache; |
| | | import com.vci.ubcs.starter.web.util.VciDateUtil; |
| | | import com.vci.ubcs.system.user.cache.UserCache; |
| | | import com.vci.ubcs.system.user.entity.User; |
| | | import lombok.AllArgsConstructor; |
| | |
| | | .includeProcessVariables().active().orderByTaskCreateTime().desc(); |
| | | |
| | | // 构建列表数据 |
| | | buildFlowTaskList(bladeFlow, flowList, claimUserQuery, FlowEngineConstant.STATUS_CLAIM); |
| | | buildFlowTaskList(bladeFlow, flowList, claimRoleWithTenantIdQuery, FlowEngineConstant.STATUS_CLAIM); |
| | | buildFlowTaskList(bladeFlow, flowList, claimRoleWithoutTenantIdQuery, FlowEngineConstant.STATUS_CLAIM); |
| | | buildFlowTaskList(bladeFlow, flowList, claimUserQuery, FlowEngineConstant.STATUS_CLAIM, page); |
| | | buildFlowTaskList(bladeFlow, flowList, claimRoleWithTenantIdQuery, FlowEngineConstant.STATUS_CLAIM, page); |
| | | buildFlowTaskList(bladeFlow, flowList, claimRoleWithoutTenantIdQuery, FlowEngineConstant.STATUS_CLAIM, page); |
| | | |
| | | // 计算总数 |
| | | long count = claimUserQuery.count() + claimRoleWithTenantIdQuery.count() + claimRoleWithoutTenantIdQuery.count(); |
| | |
| | | .includeProcessVariables().orderByTaskCreateTime().desc(); |
| | | |
| | | // 构建列表数据 |
| | | buildFlowTaskList(bladeFlow, flowList, todoQuery, FlowEngineConstant.STATUS_TODO); |
| | | buildFlowTaskList(bladeFlow, flowList, todoQuery, FlowEngineConstant.STATUS_TODO,page); |
| | | |
| | | // 计算总数 |
| | | long count = todoQuery.count(); |
| | |
| | | * @param flowList 流程列表 |
| | | * @param taskQuery 任务查询类 |
| | | * @param status 状态 |
| | | * @param page |
| | | */ |
| | | private void buildFlowTaskList(BladeFlow bladeFlow, List<BladeFlow> flowList, TaskQuery taskQuery, String status) { |
| | | private void buildFlowTaskList(BladeFlow bladeFlow, List<BladeFlow> flowList, TaskQuery taskQuery, String status, IPage<BladeFlow> page) { |
| | | // if (bladeFlow.getCategory() != null) { |
| | | if (StringUtils.isNotEmpty(bladeFlow.getCategory())) { |
| | | taskQuery.processCategoryIn(Func.toStrList(bladeFlow.getCategory())); |
| | |
| | | if (bladeFlow.getEndDate() != null) { |
| | | taskQuery.taskCreatedBefore(bladeFlow.getEndDate()); |
| | | } |
| | | taskQuery.list().forEach(task -> { |
| | | int firstResult = (int) ((page.getCurrent()-1)* page.getSize()); |
| | | int maxResult = (int) page.getSize(); |
| | | taskQuery.listPage(firstResult,maxResult).forEach(task -> { |
| | | BladeFlow flow = new BladeFlow(); |
| | | flow.setTaskId(task.getId()); |
| | | flow.setTaskDefinitionKey(task.getTaskDefinitionKey()); |
| | |
| | | flow.setHistoryActivityIdea(commentList.get(0).getFullMessage()); |
| | | } |
| | | } |
| | | List<HistoricProcessInstance> processInstanceList = historyService.createHistoricProcessInstanceQuery() |
| | | .processInstanceId(task.getProcessInstanceId()).orderByProcessInstanceStartTime().asc().list(); |
| | | flow.setProcessDefinitionStartTime(VciDateUtil.date2Str(processInstanceList.get(0).getStartTime(),VciDateUtil.DateTimeFormat)); |
| | | // 获取流程发起人名称 |
| | | if (FlowEngineConstant.START_EVENT.equals(historicActivityInstance.getActivityType())) { |
| | | List<HistoricProcessInstance> processInstanceList = historyService.createHistoricProcessInstanceQuery() |
| | | .processInstanceId(task.getProcessInstanceId()).orderByProcessInstanceStartTime().asc().list(); |
| | | if (processInstanceList.size() > 0) { |
| | | if (StringUtil.isNotBlank(processInstanceList.get(0).getStartUserId())) { |
| | | String taskUser = processInstanceList.get(0).getStartUserId(); |
| | |
| | | } |
| | | |
| | | if (Func.isNotEmpty(historicProcessInstance)) { |
| | | String[] businessKey = Func.toStrArray(StringPool.COLON, historicProcessInstance.getBusinessKey()); |
| | | String[] businessKey = new String[2]; |
| | | if(historicProcessInstance.getBusinessKey().contains(StringPool.COLON)){ |
| | | businessKey = Func.toStrArray(StringPool.COLON, historicProcessInstance.getBusinessKey()); |
| | | }else{ |
| | | businessKey[0] = historicProcessInstance.getBusinessKey(); |
| | | } |
| | | flow.setBusinessTable(businessKey[0]); |
| | | flow.setBusinessId(businessKey.length>1?businessKey[1]:"1"); |
| | | flow.setBusinessId(businessKey.length>1 && StringUtils.isNotEmpty(businessKey[1])?businessKey[1]:"1"); |
| | | } |
| | | |
| | | FlowProcess processDefinition = FlowCache.getProcessDefinition(task.getProcessDefinitionId()); |