1.修改工单历史和我的待办接口

2.开发工单历史导出接口
main
litao 3 years ago
parent 86fba72cfe
commit df6a9d61eb
  1. 22
      lab-plugin/lab-workflow/src/main/java/org/springblade/plugin/operation/task/controller/TaskInfoController.java
  2. 26
      lab-plugin/lab-workflow/src/main/java/org/springblade/plugin/operation/workorder/controller/WorkOrderController.java
  3. 9
      lab-plugin/lab-workflow/src/main/java/org/springblade/plugin/operation/workorder/entity/WorkOrder.java
  4. 62
      lab-plugin/lab-workflow/src/main/java/org/springblade/plugin/operation/workorder/excel/WorkOrderExcel.java
  5. 3
      lab-plugin/lab-workflow/src/main/java/org/springblade/plugin/operation/workorder/service/IWorkOrderService.java
  6. 344
      lab-plugin/lab-workflow/src/main/java/org/springblade/plugin/operation/workorder/service/impl/WorkOrderServiceImpl.java

@ -1,7 +1,6 @@
package org.springblade.plugin.operation.task.controller;
import com.alibaba.nacos.common.utils.CollectionUtils;
import com.alibaba.nacos.common.utils.StringUtils;
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
@ -24,9 +23,13 @@ import org.springblade.core.tool.utils.Func;
import org.springblade.plugin.operation.task.entity.TaskInfo;
import org.springblade.plugin.operation.task.service.ITaskInfoService;
import org.springblade.system.cache.DictBizCache;
import org.springblade.system.entity.DictBiz;
import org.springframework.web.bind.annotation.*;
import javax.validation.Valid;
import java.util.ArrayList;
import java.util.List;
/**
@ -132,5 +135,22 @@ public class TaskInfoController extends BladeController {
return R.data(taskInfoService.list(wrapper));
}
/**
* 任务等级
*/
@GetMapping("/taskLevel")
public R taskParent() {
List<DictBiz> taskParent = DictBizCache.getList("task_level");
if ("运维公司".equals(AuthUtil.getUser().getRoleName())) {
return R.data(taskParent);
}
List<DictBiz> taskParents = new ArrayList<>();
for (DictBiz dictBiz : taskParent) {
if (!"3".equals(dictBiz.getDictKey())) {
taskParents.add(dictBiz);
}
}
return R.data(taskParents);
}
}

@ -5,17 +5,23 @@ import com.baomidou.mybatisplus.core.toolkit.Wrappers;
import lombok.AllArgsConstructor;
import org.flowable.engine.history.HistoricProcessInstance;
import org.springblade.core.boot.ctrl.BladeController;
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.tenant.annotation.NonDS;
import org.springblade.core.tool.api.R;
import org.springblade.core.tool.utils.DateUtil;
import org.springblade.plugin.operation.database.excel.DatabaseExcel;
import org.springblade.plugin.operation.task.entity.TaskInfo;
import org.springblade.plugin.operation.task.service.ITaskInfoService;
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.process.model.WfProcess;
import org.springblade.system.cache.DictBizCache;
import org.springblade.system.entity.AuthClient;
import org.springblade.system.entity.Dept;
import org.springblade.system.entity.DictBiz;
import org.springblade.system.feign.ISysClient;
import org.springblade.system.user.entity.User;
import org.springblade.system.user.feign.IUserClient;
@ -23,6 +29,8 @@ import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;
import javax.servlet.http.HttpServletResponse;
import java.util.ArrayList;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
@ -70,6 +78,15 @@ public class WorkOrderController extends BladeController {
@GetMapping("/conditionalData")
public R<Map<String, Object>> conditionalData() {
Map<String, Object> map = new HashMap<>();
// 任务父类
List<DictBiz> taskParent = DictBizCache.getList("task_parent");
map.put("taskParent", taskParent);
// 任务等级
List<DictBiz> taskLevel = DictBizCache.getList("task_level");
map.put("taskLevel", taskLevel);
// 任务种类
List<TaskInfo> taskInfos = taskInfoService.list(Wrappers.<TaskInfo>lambdaQuery()
.select(TaskInfo::getTaskTypeName, TaskInfo::getId));
@ -84,9 +101,16 @@ public class WorkOrderController extends BladeController {
List<Dept> depts = sysClient.getDepts().getData();
map.put("depts", depts);
return R.data(map);
}
/**
* excel导出
*/
@GetMapping("/exportExcel")
public void exportExcel(WorkOrder workOrder, HttpServletResponse response) {
workOrderService.exportExcel(workOrder, response);
}
}

@ -22,6 +22,9 @@ public class WorkOrder {
// 分管部门
private String dept;
// 任务等级
private String level;
// 运维公司
private String company;
@ -42,8 +45,12 @@ public class WorkOrder {
private String taskId;
private String processInsId;
private String processInstanceId;
private Date startTime;
private Date startTime2;
private Date endTime2;
}

@ -0,0 +1,62 @@
package org.springblade.plugin.operation.workorder.excel;
import com.alibaba.excel.annotation.ExcelProperty;
import com.alibaba.excel.annotation.write.style.ColumnWidth;
import lombok.Data;
import java.io.Serializable;
@Data
public class WorkOrderExcel implements Serializable {
private static final long serialVersionUID = 1L;
@ColumnWidth(20)
@ExcelProperty("任务种类")
private String taskType;
@ColumnWidth(20)
@ExcelProperty("任务父类")
private String taskParent;
@ColumnWidth(20)
@ExcelProperty("操作模块")
private String operationModule;
@ColumnWidth(20)
@ExcelProperty("当前责任人")
private String currentResponsiblePerson;
@ColumnWidth(20)
@ExcelProperty("分管部门")
private String dept;
@ColumnWidth(20)
@ExcelProperty("任务等级")
private String level;
@ColumnWidth(20)
@ExcelProperty("运维公司")
private String company;
@ColumnWidth(20)
@ExcelProperty("发起人")
private String sponsor;
@ColumnWidth(20)
@ExcelProperty("审批状态")
private String approvalStatus;
@ColumnWidth(20)
@ExcelProperty("创建时间")
private String createTime;
@ColumnWidth(20)
@ExcelProperty("结束时间")
private String endTime;
@ColumnWidth(20)
@ExcelProperty("期望完成时间")
private String expectedCompletionTime;
}

@ -7,6 +7,7 @@ import org.springblade.core.tool.api.R;
import org.springblade.plugin.operation.workorder.entity.WorkOrder;
import org.springblade.plugin.workflow.process.model.WfProcess;
import javax.servlet.http.HttpServletResponse;
import java.util.Map;
/**
@ -19,4 +20,6 @@ public interface IWorkOrderService {
IPage<Map<String, Object>> historyWorkOrder(WorkOrder workOrder, Query query);
IPage<WorkOrder> myToDo(WorkOrder workOrder, Query query);
void exportExcel(WorkOrder workOrder, HttpServletResponse response);
}

@ -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;
}
}

Loading…
Cancel
Save