From 222c109727ed1da438f3371a2b0934d6cef85ee5 Mon Sep 17 00:00:00 2001 From: 田源 <lastanimals@163.com> Date: 星期六, 05 八月 2023 21:26:45 +0800 Subject: [PATCH] Merge remote-tracking branch 'origin/master' --- Source/UBCS/ubcs-ops/ubcs-flow/src/main/java/com/vci/ubcs/flow/business/service/impl/FlowBusinessServiceImpl.java | 30 ++++++++++++++++++++---------- 1 files changed, 20 insertions(+), 10 deletions(-) diff --git a/Source/UBCS/ubcs-ops/ubcs-flow/src/main/java/com/vci/ubcs/flow/business/service/impl/FlowBusinessServiceImpl.java b/Source/UBCS/ubcs-ops/ubcs-flow/src/main/java/com/vci/ubcs/flow/business/service/impl/FlowBusinessServiceImpl.java index 502f332..e39c37e 100644 --- a/Source/UBCS/ubcs-ops/ubcs-flow/src/main/java/com/vci/ubcs/flow/business/service/impl/FlowBusinessServiceImpl.java +++ b/Source/UBCS/ubcs-ops/ubcs-flow/src/main/java/com/vci/ubcs/flow/business/service/impl/FlowBusinessServiceImpl.java @@ -24,6 +24,7 @@ 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; @@ -81,9 +82,9 @@ .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(); @@ -106,7 +107,7 @@ .includeProcessVariables().orderByTaskCreateTime().desc(); // 鏋勫缓鍒楄〃鏁版嵁 - buildFlowTaskList(bladeFlow, flowList, todoQuery, FlowEngineConstant.STATUS_TODO); + buildFlowTaskList(bladeFlow, flowList, todoQuery, FlowEngineConstant.STATUS_TODO,page); // 璁$畻鎬绘暟 long count = todoQuery.count(); @@ -298,8 +299,9 @@ * @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())); @@ -313,7 +315,9 @@ 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()); @@ -340,10 +344,11 @@ 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(); @@ -357,9 +362,14 @@ } 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()); -- Gitblit v1.9.3