|
|
|
|
@ -12,17 +12,27 @@ import org.flowable.engine.history.HistoricProcessInstance; |
|
|
|
|
import org.flowable.engine.history.HistoricProcessInstanceQuery; |
|
|
|
|
import org.flowable.task.api.Task; |
|
|
|
|
import org.flowable.task.api.TaskQuery; |
|
|
|
|
import org.flowable.task.api.history.HistoricTaskInstanceQuery; |
|
|
|
|
import org.flowable.variable.api.history.HistoricVariableInstance; |
|
|
|
|
import org.springblade.core.excel.util.ExcelUtil; |
|
|
|
|
import org.springblade.core.mp.support.Query; |
|
|
|
|
import org.springblade.core.secure.utils.AuthUtil; |
|
|
|
|
import org.springblade.core.tool.utils.DateUtil; |
|
|
|
|
import org.springblade.core.tool.utils.Func; |
|
|
|
|
import org.springblade.plugin.operation.database.service.IDataBaseService; |
|
|
|
|
import org.springblade.plugin.operation.system.entity.ProjectInfo; |
|
|
|
|
import org.springblade.plugin.operation.system.service.IProjectInfoService; |
|
|
|
|
import org.springblade.plugin.operation.workorder.entity.WorkOrder; |
|
|
|
|
import org.springblade.plugin.operation.workorder.excel.WorkOrderExcel; |
|
|
|
|
import org.springblade.plugin.operation.workorder.service.IWorkOrderService; |
|
|
|
|
import org.springblade.plugin.workflow.core.utils.WfTaskUtil; |
|
|
|
|
import org.springblade.system.cache.DictBizCache; |
|
|
|
|
import org.springblade.system.user.feign.IUserClient; |
|
|
|
|
import org.springframework.stereotype.Service; |
|
|
|
|
|
|
|
|
|
import javax.servlet.http.HttpServletResponse; |
|
|
|
|
import java.text.ParseException; |
|
|
|
|
import java.text.SimpleDateFormat; |
|
|
|
|
import java.time.Duration; |
|
|
|
|
import java.util.*; |
|
|
|
|
import java.util.stream.Collectors; |
|
|
|
|
@ -39,46 +49,21 @@ public class WorkOrderServiceImpl implements IWorkOrderService { |
|
|
|
|
private final HistoryService historyService; |
|
|
|
|
private final RuntimeService runtimeService; |
|
|
|
|
private final IUserClient userClient; |
|
|
|
|
private final IProjectInfoService projectInfoService; |
|
|
|
|
private final IDataBaseService dataBaseService; |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
@Override |
|
|
|
|
public IPage<Map<String, Object>> historyWorkOrder(WorkOrder workOrder, Query query) { |
|
|
|
|
IPage<Map<String, Object>> page = new Page<>(); |
|
|
|
|
|
|
|
|
|
List<HistoricProcessInstance> list = historyService.createHistoricProcessInstanceQuery() |
|
|
|
|
.orderByProcessInstanceStartTime() |
|
|
|
|
.desc() |
|
|
|
|
.processInstanceTenantId(WfTaskUtil.getTenantId()) |
|
|
|
|
.listPage((query.getCurrent() - 1) * query.getSize(), query.getSize()); |
|
|
|
|
|
|
|
|
|
List<Map<String, Object>> workOrders = getList(workOrder); |
|
|
|
|
|
|
|
|
|
List<Map<String, Object>> workOrders = new ArrayList<>(); |
|
|
|
|
if (CollectionUtils.isNotEmpty(list)) { |
|
|
|
|
for (HistoricProcessInstance historicProcessInstance : list) { |
|
|
|
|
Map<String, Object> varMap = new HashMap<>(); |
|
|
|
|
List<HistoricVariableInstance> historicVars = historyService.createHistoricVariableInstanceQuery() |
|
|
|
|
.processInstanceId(historicProcessInstance.getId()).list(); |
|
|
|
|
historicVars.forEach(var -> |
|
|
|
|
varMap.put(var.getVariableName(), var.getValue())); |
|
|
|
|
// 分页
|
|
|
|
|
workOrders = workOrders.stream().skip((query.getCurrent() - 1) * query.getSize()).limit(query.getSize()).collect(Collectors.toList()); |
|
|
|
|
|
|
|
|
|
Task task = taskService.createTaskQuery().processInstanceId(historicProcessInstance.getId()).singleResult(); |
|
|
|
|
if (task != null) { |
|
|
|
|
if (task.getAssignee() != null) { |
|
|
|
|
varMap.put("currentResponsiblePerson", userClient.userInfoById(Long.parseLong(task.getAssignee())).getData().getRealName()); |
|
|
|
|
} else { |
|
|
|
|
varMap.put("currentResponsiblePerson", "--"); |
|
|
|
|
} |
|
|
|
|
varMap.put("status", "进行中"); |
|
|
|
|
} else { |
|
|
|
|
varMap.put("currentResponsiblePerson", "--"); |
|
|
|
|
varMap.put("status", "已完成"); |
|
|
|
|
} |
|
|
|
|
varMap.put("startTime", historicProcessInstance.getStartTime()); |
|
|
|
|
varMap.put("endTime", historicProcessInstance.getEndTime()); |
|
|
|
|
varMap.put("startUserId", userClient.userInfoById(Long.parseLong(historicProcessInstance.getStartUserId())).getData().getRealName()); |
|
|
|
|
workOrders.add(varMap); |
|
|
|
|
} |
|
|
|
|
} |
|
|
|
|
// 排序
|
|
|
|
|
// workOrders = workOrders.stream().sorted(Comparator.comparing(WorkOrder::getCreateTime).reversed()).collect(Collectors.toList());
|
|
|
|
|
|
|
|
|
|
// 数据
|
|
|
|
|
page.setRecords(workOrders); |
|
|
|
|
@ -109,8 +94,7 @@ public class WorkOrderServiceImpl implements IWorkOrderService { |
|
|
|
|
.desc() |
|
|
|
|
.taskTenantId(WfTaskUtil.getTenantId()) |
|
|
|
|
.active(); |
|
|
|
|
// taskQuery.taskCandidateOrAssigned(taskUser)
|
|
|
|
|
// .taskCandidateGroupIn(Func.toStrList(taskGroup));
|
|
|
|
|
taskQuery.taskCandidateOrAssigned(taskUser); |
|
|
|
|
|
|
|
|
|
// List<Task> listNeedDo = taskQuery.listPage((query.getCurrent() - 1) * query.getSize(), query.getSize());
|
|
|
|
|
List<Task> listNeedDo = taskQuery.list(); |
|
|
|
|
@ -124,24 +108,43 @@ public class WorkOrderServiceImpl implements IWorkOrderService { |
|
|
|
|
System.out.println("executionid--" + executionId); |
|
|
|
|
Map<String, Object> variables = runtimeService.getVariables(task.getExecutionId()); |
|
|
|
|
|
|
|
|
|
order.setTaskType(variables.get("renwuzhonglei").toString()); |
|
|
|
|
order.setTaskParent(variables.get("renwufulei").toString()); |
|
|
|
|
order.setOperationModule(variables.get("xitongmingchengshujuku").toString()); |
|
|
|
|
order.setCurrentResponsiblePerson(task.getAssignee()); |
|
|
|
|
// 任务种类
|
|
|
|
|
order.setTaskType(variables.get("$renwuzhonglei").toString()); |
|
|
|
|
|
|
|
|
|
// 任务父类
|
|
|
|
|
order.setTaskParent(DictBizCache.getById(Long.parseLong(variables.get("renwufulei").toString())).getDictValue()); |
|
|
|
|
|
|
|
|
|
// 操作模块
|
|
|
|
|
ProjectInfo projectInfo = projectInfoService.getById(variables.get("xitongmingchengshujuku").toString()); |
|
|
|
|
if (projectInfo != null) { |
|
|
|
|
order.setOperationModule(projectInfo.getProjectName()); |
|
|
|
|
} else { |
|
|
|
|
order.setOperationModule(dataBaseService.getById(variables.get("xitongmingchengshujuku").toString()).getDataBaseName()); |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
// 当前责任人
|
|
|
|
|
order.setCurrentResponsiblePerson(userClient.userInfoById(Long.parseLong(task.getAssignee())).getData().getRealName()); |
|
|
|
|
order.setDept(variables.get("$guanlibumen").toString()); |
|
|
|
|
order.setCompany(variables.get("yunweigongsi").toString()); |
|
|
|
|
|
|
|
|
|
// 运维公司
|
|
|
|
|
order.setCompany(userClient.userInfoById(Long.parseLong(variables.get("yunweigongsi").toString())).getData().getRealName()); |
|
|
|
|
order.setSponsor(userClient.userInfoById(Long.parseLong(historicProcessInstance.getStartUserId())).getData().getRealName()); |
|
|
|
|
order.setApprovalStatus("未完成"); |
|
|
|
|
|
|
|
|
|
if (task.getName().contains("审批")) { |
|
|
|
|
order.setApprovalStatus("审批中"); |
|
|
|
|
} else { |
|
|
|
|
order.setApprovalStatus("进行中"); |
|
|
|
|
} |
|
|
|
|
order.setCreateTime(historicProcessInstance.getStartTime()); |
|
|
|
|
order.setEndTime(historicProcessInstance.getEndTime()); |
|
|
|
|
order.setExpectedCompletionTime(variables.get("qiwangwanchengshijian").toString()); |
|
|
|
|
order.setTaskId(task.getId()); |
|
|
|
|
order.setProcessInsId(task.getProcessInstanceId()); |
|
|
|
|
order.setProcessInstanceId(task.getProcessInstanceId()); |
|
|
|
|
workOrders.add(order); |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
// 任务父类
|
|
|
|
|
if (StringUtils.isNotBlank(workOrder.getTaskType())) { |
|
|
|
|
if (StringUtils.isNotBlank(workOrder.getTaskParent())) { |
|
|
|
|
workOrders = workOrders.stream().filter(s -> s.getTaskParent().equals(workOrder.getTaskParent())).collect(Collectors.toList()); |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
@ -151,32 +154,32 @@ public class WorkOrderServiceImpl implements IWorkOrderService { |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
// 当前责任人
|
|
|
|
|
if (StringUtils.isNotBlank(workOrder.getTaskType())) { |
|
|
|
|
if (StringUtils.isNotBlank(workOrder.getCurrentResponsiblePerson())) { |
|
|
|
|
workOrders = workOrders.stream().filter(s -> s.getCurrentResponsiblePerson().equals(workOrder.getCurrentResponsiblePerson())).collect(Collectors.toList()); |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
// 管理部门
|
|
|
|
|
if (StringUtils.isNotBlank(workOrder.getTaskType())) { |
|
|
|
|
if (StringUtils.isNotBlank(workOrder.getDept())) { |
|
|
|
|
workOrders = workOrders.stream().filter(s -> s.getDept().equals(workOrder.getDept())).collect(Collectors.toList()); |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
// 任务级别
|
|
|
|
|
if (StringUtils.isNotBlank(workOrder.getTaskType())) { |
|
|
|
|
workOrders = workOrders.stream().filter(s -> s.getTaskType().equals(workOrder.getTaskType())).collect(Collectors.toList()); |
|
|
|
|
} |
|
|
|
|
// if (StringUtils.isNotBlank(workOrder.getTaskType())) {
|
|
|
|
|
// workOrders = workOrders.stream().filter(s -> s.getTaskType().equals(workOrder.getTaskType())).collect(Collectors.toList());
|
|
|
|
|
// }
|
|
|
|
|
|
|
|
|
|
// 审批状态
|
|
|
|
|
if (StringUtils.isNotBlank(workOrder.getTaskType())) { |
|
|
|
|
if (StringUtils.isNotBlank(workOrder.getApprovalStatus())) { |
|
|
|
|
workOrders = workOrders.stream().filter(s -> s.getApprovalStatus().equals(workOrder.getApprovalStatus())).collect(Collectors.toList()); |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
// 发起人
|
|
|
|
|
if (StringUtils.isNotBlank(workOrder.getTaskType())) { |
|
|
|
|
if (StringUtils.isNotBlank(workOrder.getSponsor())) { |
|
|
|
|
workOrders = workOrders.stream().filter(s -> s.getSponsor().equals(workOrder.getSponsor())).collect(Collectors.toList()); |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
// 创建时间范围
|
|
|
|
|
if (StringUtils.isNotBlank(workOrder.getTaskType())) { |
|
|
|
|
if (workOrder.getStartTime() != null && workOrder.getEndTime() != null) { |
|
|
|
|
workOrders = workOrders.stream().filter(s -> (s.getCreateTime().after(workOrder.getStartTime())) && (s.getCreateTime().before(workOrder.getEndTime()))).collect(Collectors.toList()); |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
@ -194,7 +197,7 @@ public class WorkOrderServiceImpl implements IWorkOrderService { |
|
|
|
|
.orderByTaskCreateTime() |
|
|
|
|
.desc() |
|
|
|
|
.taskTenantId(WfTaskUtil.getTenantId()) |
|
|
|
|
.active().count()); |
|
|
|
|
.active().taskCandidateOrAssigned(taskUser).count()); |
|
|
|
|
|
|
|
|
|
// 当前页数
|
|
|
|
|
page.setCurrent(query.getCurrent()); |
|
|
|
|
@ -204,4 +207,243 @@ public class WorkOrderServiceImpl implements IWorkOrderService { |
|
|
|
|
return page; |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
@Override |
|
|
|
|
public void exportExcel(WorkOrder workOrder, HttpServletResponse response) { |
|
|
|
|
List<WorkOrderExcel> excels = new ArrayList<>(); |
|
|
|
|
List<Map<String, Object>> workOrders = new ArrayList<>(); |
|
|
|
|
|
|
|
|
|
if (StringUtils.isNotBlank(workOrder.getTaskType()) || |
|
|
|
|
StringUtils.isNotBlank(workOrder.getTaskParent()) || |
|
|
|
|
StringUtils.isNotBlank(workOrder.getCurrentResponsiblePerson()) || |
|
|
|
|
StringUtils.isNotBlank(workOrder.getDept()) || |
|
|
|
|
StringUtils.isNotBlank(workOrder.getLevel()) || |
|
|
|
|
StringUtils.isNotBlank(workOrder.getApprovalStatus()) || |
|
|
|
|
StringUtils.isNotBlank(workOrder.getSponsor()) || |
|
|
|
|
(workOrder.getStartTime() != null && workOrder.getEndTime() != null) || |
|
|
|
|
(workOrder.getStartTime2() != null && workOrder.getEndTime2() != null)) { |
|
|
|
|
workOrders = getList(workOrder); |
|
|
|
|
|
|
|
|
|
} else { |
|
|
|
|
SimpleDateFormat format = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss"); |
|
|
|
|
Calendar c = Calendar.getInstance(); |
|
|
|
|
//过去三个月
|
|
|
|
|
c.setTime(new Date()); |
|
|
|
|
c.add(Calendar.MONTH, -6); |
|
|
|
|
Date m3 = c.getTime(); |
|
|
|
|
|
|
|
|
|
List<HistoricProcessInstance> list = historyService.createHistoricProcessInstanceQuery() |
|
|
|
|
// 完成前
|
|
|
|
|
// .finishedBefore()
|
|
|
|
|
// 完成后
|
|
|
|
|
// .finishedAfter()
|
|
|
|
|
// 开始之前
|
|
|
|
|
// .startedBefore()
|
|
|
|
|
// 开始之后
|
|
|
|
|
.startedAfter(m3) |
|
|
|
|
.orderByProcessInstanceStartTime() |
|
|
|
|
.desc() |
|
|
|
|
.processInstanceTenantId(WfTaskUtil.getTenantId()).list(); |
|
|
|
|
|
|
|
|
|
if (CollectionUtils.isNotEmpty(list)) { |
|
|
|
|
for (HistoricProcessInstance historicProcessInstance : list) { |
|
|
|
|
Map<String, Object> varMap = new HashMap<>(); |
|
|
|
|
List<HistoricVariableInstance> historicVars = historyService.createHistoricVariableInstanceQuery() |
|
|
|
|
.processInstanceId(historicProcessInstance.getId()).list(); |
|
|
|
|
historicVars.forEach(var -> |
|
|
|
|
varMap.put(var.getVariableName(), var.getValue())); |
|
|
|
|
|
|
|
|
|
// 任务父类
|
|
|
|
|
varMap.put("renwufulei", DictBizCache.getById(Long.parseLong(varMap.get("renwufulei").toString())).getDictValue()); |
|
|
|
|
|
|
|
|
|
// 操作模块
|
|
|
|
|
ProjectInfo projectInfo = projectInfoService.getById(varMap.get("xitongmingchengshujuku").toString()); |
|
|
|
|
if (projectInfo != null) { |
|
|
|
|
varMap.put("xitongmingchengshujuku", projectInfo.getProjectName()); |
|
|
|
|
} else { |
|
|
|
|
varMap.put("xitongmingchengshujuku", dataBaseService.getById(varMap.get("xitongmingchengshujuku").toString()).getDataBaseName()); |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
// 运维公司
|
|
|
|
|
varMap.put("yunweigongsi", userClient.userInfoById(Long.parseLong(varMap.get("yunweigongsi").toString())).getData().getRealName()); |
|
|
|
|
|
|
|
|
|
Task task = taskService.createTaskQuery().processInstanceId(historicProcessInstance.getId()).singleResult(); |
|
|
|
|
if (task != null) { |
|
|
|
|
if (task.getAssignee() != null) { |
|
|
|
|
varMap.put("currentResponsiblePerson", userClient.userInfoById(Long.parseLong(task.getAssignee())).getData().getRealName()); |
|
|
|
|
} else { |
|
|
|
|
varMap.put("currentResponsiblePerson", "--"); |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
// 审批状态
|
|
|
|
|
if (task.getName().contains("审批")) { |
|
|
|
|
varMap.put("status", "审批中"); |
|
|
|
|
} else { |
|
|
|
|
varMap.put("status", "进行中"); |
|
|
|
|
} |
|
|
|
|
} else { |
|
|
|
|
varMap.put("currentResponsiblePerson", "--"); |
|
|
|
|
varMap.put("status", "已完成"); |
|
|
|
|
} |
|
|
|
|
varMap.put("startTime", historicProcessInstance.getStartTime()); |
|
|
|
|
varMap.put("endTime", historicProcessInstance.getEndTime()); |
|
|
|
|
varMap.put("startUserId", userClient.userInfoById(Long.parseLong(historicProcessInstance.getStartUserId())).getData().getRealName()); |
|
|
|
|
varMap.put("processInstanceId", historicProcessInstance.getId()); |
|
|
|
|
varMap.put("taskId", ""); |
|
|
|
|
workOrders.add(varMap); |
|
|
|
|
} |
|
|
|
|
} |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
if (CollectionUtils.isNotEmpty(workOrders)) { |
|
|
|
|
for (Map<String, Object> order : workOrders) { |
|
|
|
|
WorkOrderExcel excel = new WorkOrderExcel(); |
|
|
|
|
excel.setTaskType(order.get("$renwuzhonglei").toString()); |
|
|
|
|
excel.setTaskParent(order.get("renwufulei").toString()); |
|
|
|
|
excel.setOperationModule(order.get("xitongmingchengshujuku").toString()); |
|
|
|
|
excel.setCurrentResponsiblePerson(order.get("currentResponsiblePerson").toString()); |
|
|
|
|
excel.setDept(order.get("$guanlibumen").toString()); |
|
|
|
|
excel.setLevel(order.get("$renwudengji").toString()); |
|
|
|
|
excel.setCompany(order.get("yunweigongsi").toString()); |
|
|
|
|
excel.setSponsor(order.get("startUserId").toString()); |
|
|
|
|
excel.setApprovalStatus(order.get("status").toString()); |
|
|
|
|
excel.setCreateTime(order.get("startTime").toString()); |
|
|
|
|
|
|
|
|
|
if (order.get("endTime") != null) { |
|
|
|
|
excel.setEndTime(order.get("endTime").toString()); |
|
|
|
|
} else { |
|
|
|
|
excel.setEndTime("未结束"); |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
excel.setExpectedCompletionTime(order.get("qiwangwanchengshijian").toString()); |
|
|
|
|
excels.add(excel); |
|
|
|
|
} |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
ExcelUtil.export(response, "工单记录" + DateUtil.time(), "工单记录", excels, WorkOrderExcel.class); |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
private List<Map<String, Object>> getList(WorkOrder workOrder) { |
|
|
|
|
List<HistoricProcessInstance> list = historyService.createHistoricProcessInstanceQuery() |
|
|
|
|
.orderByProcessInstanceStartTime() |
|
|
|
|
.desc() |
|
|
|
|
.processInstanceTenantId(WfTaskUtil.getTenantId()).list(); |
|
|
|
|
|
|
|
|
|
List<Map<String, Object>> workOrders = new ArrayList<>(); |
|
|
|
|
|
|
|
|
|
if (CollectionUtils.isNotEmpty(list)) { |
|
|
|
|
for (HistoricProcessInstance historicProcessInstance : list) { |
|
|
|
|
Map<String, Object> varMap = new HashMap<>(); |
|
|
|
|
List<HistoricVariableInstance> historicVars = historyService.createHistoricVariableInstanceQuery() |
|
|
|
|
.processInstanceId(historicProcessInstance.getId()).list(); |
|
|
|
|
historicVars.forEach(var -> |
|
|
|
|
varMap.put(var.getVariableName(), var.getValue())); |
|
|
|
|
|
|
|
|
|
// 任务父类
|
|
|
|
|
varMap.put("renwufulei", DictBizCache.getById(Long.parseLong(varMap.get("renwufulei").toString())).getDictValue()); |
|
|
|
|
|
|
|
|
|
// 操作模块
|
|
|
|
|
ProjectInfo projectInfo = projectInfoService.getById(varMap.get("xitongmingchengshujuku").toString()); |
|
|
|
|
if (projectInfo != null) { |
|
|
|
|
varMap.put("xitongmingchengshujuku", projectInfo.getProjectName()); |
|
|
|
|
} else { |
|
|
|
|
varMap.put("xitongmingchengshujuku", dataBaseService.getById(varMap.get("xitongmingchengshujuku").toString()).getDataBaseName()); |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
// 运维公司
|
|
|
|
|
varMap.put("yunweigongsi", userClient.userInfoById(Long.parseLong(varMap.get("yunweigongsi").toString())).getData().getRealName()); |
|
|
|
|
|
|
|
|
|
Task task = taskService.createTaskQuery().processInstanceId(historicProcessInstance.getId()).singleResult(); |
|
|
|
|
if (task != null) { |
|
|
|
|
if (task.getAssignee() != null) { |
|
|
|
|
varMap.put("currentResponsiblePerson", userClient.userInfoById(Long.parseLong(task.getAssignee())).getData().getRealName()); |
|
|
|
|
} else { |
|
|
|
|
varMap.put("currentResponsiblePerson", "--"); |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
// 审批状态
|
|
|
|
|
if (task.getName().contains("审批")) { |
|
|
|
|
varMap.put("status", "审批中"); |
|
|
|
|
} else { |
|
|
|
|
varMap.put("status", "进行中"); |
|
|
|
|
} |
|
|
|
|
} else { |
|
|
|
|
varMap.put("currentResponsiblePerson", "--"); |
|
|
|
|
varMap.put("status", "已完成"); |
|
|
|
|
} |
|
|
|
|
varMap.put("startTime", historicProcessInstance.getStartTime()); |
|
|
|
|
varMap.put("endTime", historicProcessInstance.getEndTime()); |
|
|
|
|
varMap.put("startUserId", userClient.userInfoById(Long.parseLong(historicProcessInstance.getStartUserId())).getData().getRealName()); |
|
|
|
|
varMap.put("processInstanceId", historicProcessInstance.getId()); |
|
|
|
|
varMap.put("taskId", ""); |
|
|
|
|
workOrders.add(varMap); |
|
|
|
|
} |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
// 任务父类
|
|
|
|
|
if (StringUtils.isNotBlank(workOrder.getTaskParent())) { |
|
|
|
|
workOrders = workOrders.stream().filter(s -> s.get("renwufulei").equals(workOrder.getTaskParent())).collect(Collectors.toList()); |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
// 任务等级
|
|
|
|
|
if (StringUtils.isNotBlank(workOrder.getLevel())) { |
|
|
|
|
workOrders = workOrders.stream().filter(s -> s.get("$renwudengji").equals(workOrder.getLevel())).collect(Collectors.toList()); |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
// 任务种类
|
|
|
|
|
if (StringUtils.isNotBlank(workOrder.getTaskType())) { |
|
|
|
|
workOrders = workOrders.stream().filter(s -> s.get("$renwuzhonglei").equals(workOrder.getTaskType())).collect(Collectors.toList()); |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
// 当前责任人
|
|
|
|
|
if (StringUtils.isNotBlank(workOrder.getCurrentResponsiblePerson())) { |
|
|
|
|
workOrders = workOrders.stream().filter(s -> s.get("currentResponsiblePerson").equals(workOrder.getCurrentResponsiblePerson())).collect(Collectors.toList()); |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
// 管理部门
|
|
|
|
|
if (StringUtils.isNotBlank(workOrder.getDept())) { |
|
|
|
|
workOrders = workOrders.stream().filter(s -> s.get("$guanlibumen").equals(workOrder.getDept())).collect(Collectors.toList()); |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
// 审批状态
|
|
|
|
|
if (StringUtils.isNotBlank(workOrder.getApprovalStatus())) { |
|
|
|
|
workOrders = workOrders.stream().filter(s -> s.get("status").equals(workOrder.getApprovalStatus())).collect(Collectors.toList()); |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
// 发起人
|
|
|
|
|
if (StringUtils.isNotBlank(workOrder.getSponsor())) { |
|
|
|
|
workOrders = workOrders.stream().filter(s -> s.get("startUserId").equals(workOrder.getSponsor())).collect(Collectors.toList()); |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
// 创建时间范围
|
|
|
|
|
SimpleDateFormat format = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss"); |
|
|
|
|
if (workOrder.getStartTime() != null && workOrder.getEndTime() != null) { |
|
|
|
|
workOrders = workOrders.stream().filter(s -> |
|
|
|
|
{ |
|
|
|
|
format.format(s.get("startTime")); |
|
|
|
|
try { |
|
|
|
|
return (format.parse(format.format(s.get("startTime"))).after(workOrder.getStartTime())) && |
|
|
|
|
(format.parse(format.format(s.get("startTime"))).before(workOrder.getEndTime())); |
|
|
|
|
} catch (ParseException e) { |
|
|
|
|
e.printStackTrace(); |
|
|
|
|
} |
|
|
|
|
return false; |
|
|
|
|
}).collect(Collectors.toList()); |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
// 结束时间范围
|
|
|
|
|
if (workOrder.getStartTime2() != null && workOrder.getEndTime2() != null) { |
|
|
|
|
workOrders = workOrders.stream().filter(s -> { |
|
|
|
|
if (s.get("endTime") != null) { |
|
|
|
|
try { |
|
|
|
|
return (format.parse(format.format(s.get("endTime"))).after(workOrder.getStartTime2())) && |
|
|
|
|
(format.parse(format.format(s.get("endTime"))).before(workOrder.getEndTime2())); |
|
|
|
|
} catch (ParseException e) { |
|
|
|
|
e.printStackTrace(); |
|
|
|
|
} |
|
|
|
|
} |
|
|
|
|
return false; |
|
|
|
|
}).collect(Collectors.toList()); |
|
|
|
|
} |
|
|
|
|
return workOrders; |
|
|
|
|
} |
|
|
|
|
} |
|
|
|
|
|