diff --git a/laws-modules/src/main/java/com/jero/modules/activiti/service/ProcessApprovalRecordService.java b/laws-modules/src/main/java/com/jero/modules/activiti/service/ProcessApprovalRecordService.java index 1c39a040..63f0c844 100644 --- a/laws-modules/src/main/java/com/jero/modules/activiti/service/ProcessApprovalRecordService.java +++ b/laws-modules/src/main/java/com/jero/modules/activiti/service/ProcessApprovalRecordService.java @@ -67,11 +67,15 @@ public class ProcessApprovalRecordService extends ServiceImpl pageList = this.page(page, wrapper); List records = pageList.getRecords(); + if (CollUtil.isEmpty(records)) { + return pageList; + } List taskIdList = records.stream().map(ProcessApprovalRecord::getTaskId).collect(Collectors.toList()); LambdaQueryWrapper processSnapshotWrapper = new LambdaQueryWrapper<>(); processSnapshotWrapper.in(ProcessSnapshot::getTaskId, taskIdList); diff --git a/laws-modules/src/main/java/com/jero/modules/activiti/service/ProcessNodeService.java b/laws-modules/src/main/java/com/jero/modules/activiti/service/ProcessNodeService.java index 23e65950..62ac5b30 100644 --- a/laws-modules/src/main/java/com/jero/modules/activiti/service/ProcessNodeService.java +++ b/laws-modules/src/main/java/com/jero/modules/activiti/service/ProcessNodeService.java @@ -14,7 +14,10 @@ import com.jero.modules.activiti.mapper.ProcessModelNodeMapper; import com.jero.modules.activiti.mapper.ProcessNodeMapper; import com.jero.modules.activiti.process.common.enums.ProcessType; import lombok.extern.slf4j.Slf4j; +import org.activiti.engine.HistoryService; import org.activiti.engine.RuntimeService; +import org.activiti.engine.history.HistoricProcessInstance; +import org.activiti.engine.history.HistoricVariableInstance; import org.apache.commons.collections4.CollectionUtils; import org.apache.commons.lang3.StringUtils; import org.springframework.beans.BeanUtils; @@ -22,6 +25,7 @@ import org.springframework.stereotype.Service; import javax.annotation.Resource; import java.util.ArrayList; +import java.util.HashMap; import java.util.List; import java.util.Map; import java.util.stream.Collectors; @@ -48,6 +52,9 @@ public class ProcessNodeService extends ServiceImpl wrapper = new LambdaQueryWrapper<>(); wrapper.eq(ProcessModelNode::getNodeType, "userTask"); @@ -139,12 +146,37 @@ public class ProcessNodeService extends ServiceImpl variableInstances = historyService.createHistoricVariableInstanceQuery() + .processInstanceId(processInstanceId) + .list(); + + // 将变量转换为Map形式 + Map variableMap = new HashMap<>(); + for (HistoricVariableInstance variableInstance : variableInstances) { + variableMap.put(variableInstance.getVariableName(), variableInstance.getValue()); + } + variable = variableMap.get(DISTRIBUTE); + } else { + // 如果没分发 则不显示 主排查人单线审核 主排查人汇总节点 + String mainInstanceId = (String) runtimeService.getVariable(processInstanceId, ActivitiCommon.MAIN_INSTANCE_ID); + variable = runtimeService.getVariable(mainInstanceId, DISTRIBUTE); + } + boolean distribute = ObjectUtil.isNotNull(variable) && YesOrNoEnum.YES.getValue().equals(variable.toString()); if (!distribute) { - processNodeList.removeIf( v -> v.getXmlNodeId().equals(MAIN_CHECK_USER_APPROVAL) + processNodeList.removeIf(v -> v.getXmlNodeId().equals(MAIN_CHECK_USER_APPROVAL) || v.getXmlNodeId().equals(MAIN_CHECK_USER_COLLECT)); } // 判断有没有 主排查人重新分批下发 节点 @@ -153,7 +185,7 @@ public class ProcessNodeService extends ServiceImpl list = parService.list(parWrapper); if (CollectionUtils.isEmpty(list)) { - processNodeList.removeIf( v -> v.getXmlNodeId().equals(MAIN_CHECK_USER_REDISTRIBUTE)); + processNodeList.removeIf(v -> v.getXmlNodeId().equals(MAIN_CHECK_USER_REDISTRIBUTE)); } } }