fix: 流程详情状态筛选失效
This commit is contained in:
+4
@@ -67,11 +67,15 @@ public class ProcessApprovalRecordService extends ServiceImpl<ProcessApprovalRec
|
|||||||
if (StringUtils.isNotBlank(processApprovalRecord.getFinishFlagSearch())){
|
if (StringUtils.isNotBlank(processApprovalRecord.getFinishFlagSearch())){
|
||||||
wrapper.in("finish_flag", Arrays.asList(processApprovalRecord.getFinishFlagSearch().split(",")));
|
wrapper.in("finish_flag", Arrays.asList(processApprovalRecord.getFinishFlagSearch().split(",")));
|
||||||
}
|
}
|
||||||
|
wrapper.eq(processApprovalRecord.getFinishFlag() != null, "finish_flag", processApprovalRecord.getFinishFlag());
|
||||||
wrapper.eq("over_due", YesOrNoEnum.NO.getValue());
|
wrapper.eq("over_due", YesOrNoEnum.NO.getValue());
|
||||||
wrapper.eq("process_instance_id", processApprovalRecord.getProcessInstanceId());
|
wrapper.eq("process_instance_id", processApprovalRecord.getProcessInstanceId());
|
||||||
wrapper.last("ORDER BY IF(ISNULL(create_time), 1, 0) DESC ,create_time DESC, end_time DESC");
|
wrapper.last("ORDER BY IF(ISNULL(create_time), 1, 0) DESC ,create_time DESC, end_time DESC");
|
||||||
Page<ProcessApprovalRecord> pageList = this.page(page, wrapper);
|
Page<ProcessApprovalRecord> pageList = this.page(page, wrapper);
|
||||||
List<ProcessApprovalRecord> records = pageList.getRecords();
|
List<ProcessApprovalRecord> records = pageList.getRecords();
|
||||||
|
if (CollUtil.isEmpty(records)) {
|
||||||
|
return pageList;
|
||||||
|
}
|
||||||
List<String> taskIdList = records.stream().map(ProcessApprovalRecord::getTaskId).collect(Collectors.toList());
|
List<String> taskIdList = records.stream().map(ProcessApprovalRecord::getTaskId).collect(Collectors.toList());
|
||||||
LambdaQueryWrapper<ProcessSnapshot> processSnapshotWrapper = new LambdaQueryWrapper<>();
|
LambdaQueryWrapper<ProcessSnapshot> processSnapshotWrapper = new LambdaQueryWrapper<>();
|
||||||
processSnapshotWrapper.in(ProcessSnapshot::getTaskId, taskIdList);
|
processSnapshotWrapper.in(ProcessSnapshot::getTaskId, taskIdList);
|
||||||
|
|||||||
+37
-5
@@ -14,7 +14,10 @@ import com.jero.modules.activiti.mapper.ProcessModelNodeMapper;
|
|||||||
import com.jero.modules.activiti.mapper.ProcessNodeMapper;
|
import com.jero.modules.activiti.mapper.ProcessNodeMapper;
|
||||||
import com.jero.modules.activiti.process.common.enums.ProcessType;
|
import com.jero.modules.activiti.process.common.enums.ProcessType;
|
||||||
import lombok.extern.slf4j.Slf4j;
|
import lombok.extern.slf4j.Slf4j;
|
||||||
|
import org.activiti.engine.HistoryService;
|
||||||
import org.activiti.engine.RuntimeService;
|
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.collections4.CollectionUtils;
|
||||||
import org.apache.commons.lang3.StringUtils;
|
import org.apache.commons.lang3.StringUtils;
|
||||||
import org.springframework.beans.BeanUtils;
|
import org.springframework.beans.BeanUtils;
|
||||||
@@ -22,6 +25,7 @@ import org.springframework.stereotype.Service;
|
|||||||
|
|
||||||
import javax.annotation.Resource;
|
import javax.annotation.Resource;
|
||||||
import java.util.ArrayList;
|
import java.util.ArrayList;
|
||||||
|
import java.util.HashMap;
|
||||||
import java.util.List;
|
import java.util.List;
|
||||||
import java.util.Map;
|
import java.util.Map;
|
||||||
import java.util.stream.Collectors;
|
import java.util.stream.Collectors;
|
||||||
@@ -48,6 +52,9 @@ public class ProcessNodeService extends ServiceImpl<ProcessNodeMapper, ProcessNo
|
|||||||
@Resource
|
@Resource
|
||||||
private ProcessApprovalRecordService parService;
|
private ProcessApprovalRecordService parService;
|
||||||
|
|
||||||
|
@Resource
|
||||||
|
private HistoryService historyService;
|
||||||
|
|
||||||
public void copyNodeFromModel(String modelId, String processDefinitionId) {
|
public void copyNodeFromModel(String modelId, String processDefinitionId) {
|
||||||
LambdaQueryWrapper<ProcessModelNode> wrapper = new LambdaQueryWrapper<>();
|
LambdaQueryWrapper<ProcessModelNode> wrapper = new LambdaQueryWrapper<>();
|
||||||
wrapper.eq(ProcessModelNode::getNodeType, "userTask");
|
wrapper.eq(ProcessModelNode::getNodeType, "userTask");
|
||||||
@@ -139,12 +146,37 @@ public class ProcessNodeService extends ServiceImpl<ProcessNodeMapper, ProcessNo
|
|||||||
if (StrUtil.isBlank(processInstanceId)) {
|
if (StrUtil.isBlank(processInstanceId)) {
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
// 如果没分发 则不显示 主排查人单线审核 主排查人汇总节点
|
boolean finish = false;
|
||||||
String mainInstanceId = (String) runtimeService.getVariable(processInstanceId, ActivitiCommon.MAIN_INSTANCE_ID);
|
// 判断流程是否结束
|
||||||
Object variable = runtimeService.getVariable(mainInstanceId, DISTRIBUTE);
|
HistoricProcessInstance historicProcessInstance = historyService.createHistoricProcessInstanceQuery()
|
||||||
|
.processInstanceId(processInstanceId)
|
||||||
|
.singleResult();
|
||||||
|
if (historicProcessInstance != null) {
|
||||||
|
finish = historicProcessInstance.getEndTime() != null;
|
||||||
|
}
|
||||||
|
|
||||||
|
Object variable = null;
|
||||||
|
if (finish) {
|
||||||
|
// 查询流程变量
|
||||||
|
List<HistoricVariableInstance> variableInstances = historyService.createHistoricVariableInstanceQuery()
|
||||||
|
.processInstanceId(processInstanceId)
|
||||||
|
.list();
|
||||||
|
|
||||||
|
// 将变量转换为Map形式
|
||||||
|
Map<String, Object> 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());
|
boolean distribute = ObjectUtil.isNotNull(variable) && YesOrNoEnum.YES.getValue().equals(variable.toString());
|
||||||
if (!distribute) {
|
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));
|
|| v.getXmlNodeId().equals(MAIN_CHECK_USER_COLLECT));
|
||||||
}
|
}
|
||||||
// 判断有没有 主排查人重新分批下发 节点
|
// 判断有没有 主排查人重新分批下发 节点
|
||||||
@@ -153,7 +185,7 @@ public class ProcessNodeService extends ServiceImpl<ProcessNodeMapper, ProcessNo
|
|||||||
parWrapper.eq(ProcessApprovalRecord::getNodeId, MAIN_CHECK_USER_REDISTRIBUTE);
|
parWrapper.eq(ProcessApprovalRecord::getNodeId, MAIN_CHECK_USER_REDISTRIBUTE);
|
||||||
List<ProcessApprovalRecord> list = parService.list(parWrapper);
|
List<ProcessApprovalRecord> list = parService.list(parWrapper);
|
||||||
if (CollectionUtils.isEmpty(list)) {
|
if (CollectionUtils.isEmpty(list)) {
|
||||||
processNodeList.removeIf( v -> v.getXmlNodeId().equals(MAIN_CHECK_USER_REDISTRIBUTE));
|
processNodeList.removeIf(v -> v.getXmlNodeId().equals(MAIN_CHECK_USER_REDISTRIBUTE));
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
Reference in New Issue
Block a user