|
|
|
|
@ -29,6 +29,7 @@ import org.springblade.plugin.operation.system.service.IModuleInfoService; |
|
|
|
|
import org.springblade.plugin.operation.system.service.IProjectInfoService; |
|
|
|
|
import org.springblade.plugin.operation.task.service.ITaskInfoService; |
|
|
|
|
import org.springblade.plugin.operation.workorder.entity.WorkOrder; |
|
|
|
|
import org.springblade.plugin.operation.workorder.excel.OrderExcel; |
|
|
|
|
import org.springblade.plugin.operation.workorder.excel.WorkOrderExcel; |
|
|
|
|
import org.springblade.plugin.operation.workorder.mapper.WorkOrderMapper; |
|
|
|
|
import org.springblade.plugin.operation.workorder.service.IWorkOrderService; |
|
|
|
|
@ -147,7 +148,7 @@ public class WorkOrderServiceImpl extends BaseServiceImpl<WorkOrderMapper, WorkO |
|
|
|
|
if (task.getName().contains("审批")) { |
|
|
|
|
order.setApprovalStatus("审批中"); |
|
|
|
|
} else { |
|
|
|
|
order.setApprovalStatus("待实施"); |
|
|
|
|
order.setApprovalStatus("已驳回"); |
|
|
|
|
} |
|
|
|
|
order.setCreateTime(historicProcessInstance.getStartTime()); |
|
|
|
|
order.setEndTime(historicProcessInstance.getEndTime()); |
|
|
|
|
@ -167,24 +168,24 @@ public class WorkOrderServiceImpl extends BaseServiceImpl<WorkOrderMapper, WorkO |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
// 工单记录
|
|
|
|
|
// Page<WorkOrder> objectPage = new Page<>(query.getCurrent() - (count / query.getSize()), query.getSize());
|
|
|
|
|
// Page<WorkOrder> objectPage = new Page<>(query.getCurrent() - (workOrders.size() / query.getSize()), query.getSize());
|
|
|
|
|
LambdaQueryWrapper<WorkOrder> wrapper = new LambdaQueryWrapper<>(); |
|
|
|
|
wrapper.eq(WorkOrder::getMaintenanceCompany, AuthUtil.getUserId()); |
|
|
|
|
wrapper.eq(WorkOrder::getIsFinish, 0); |
|
|
|
|
wrapper.orderByDesc(WorkOrder::getCreateTime); |
|
|
|
|
if (workOrder.getIsBecomeDue() == 1) { |
|
|
|
|
wrapper.le(WorkOrder::getExpectedCompletionTime, new Date()); |
|
|
|
|
} |
|
|
|
|
// IPage<WorkOrder> iPage = page(objectPage, wrapper);
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
wrapper.orderByDesc(WorkOrder::getCreateTime); |
|
|
|
|
List<WorkOrder> records = list(wrapper); |
|
|
|
|
|
|
|
|
|
// IPage<WorkOrder> iPage = page(objectPage, wrapper);
|
|
|
|
|
// List<WorkOrder> orders = iPage.getRecords();
|
|
|
|
|
|
|
|
|
|
setAllName(records); |
|
|
|
|
|
|
|
|
|
workOrders.addAll(records); |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
if (workOrder.getIsBecomeDue() == 1) { |
|
|
|
|
workOrders = workOrders.stream().filter(s -> new Date().after(s.getExpectedCompletionTime())).collect(Collectors.toList()); |
|
|
|
|
} |
|
|
|
|
@ -224,15 +225,168 @@ public class WorkOrderServiceImpl extends BaseServiceImpl<WorkOrderMapper, WorkO |
|
|
|
|
workOrders = workOrders.stream().filter(s -> (s.getCreateTime().after(workOrder.getStartTime())) && (s.getCreateTime().before(workOrder.getEndTime()))).collect(Collectors.toList()); |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
// 排序
|
|
|
|
|
workOrders = workOrders.stream().sorted(Comparator.comparing(WorkOrder::getCreateTime).reversed()).collect(Collectors.toList()); |
|
|
|
|
|
|
|
|
|
// 总条数
|
|
|
|
|
page.setTotal(workOrders.size()); |
|
|
|
|
|
|
|
|
|
// 分页
|
|
|
|
|
workOrders = workOrders.stream().skip((query.getCurrent() - 1) * query.getSize()).limit(query.getSize()).collect(Collectors.toList()); |
|
|
|
|
// workOrders = workOrders.stream().skip(0).limit(query.getSize()).collect(Collectors.toList());
|
|
|
|
|
|
|
|
|
|
// 数据
|
|
|
|
|
page.setRecords(workOrders); |
|
|
|
|
|
|
|
|
|
// 当前页数
|
|
|
|
|
page.setCurrent(query.getCurrent()); |
|
|
|
|
|
|
|
|
|
// 当前条数
|
|
|
|
|
page.setSize(query.getSize()); |
|
|
|
|
return page; |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
public IPage<WorkOrder> myToDo2(WorkOrder workOrder, Query query) { |
|
|
|
|
IPage<WorkOrder> page = new Page<>(); |
|
|
|
|
|
|
|
|
|
String taskUser = WfTaskUtil.getTaskUser(); |
|
|
|
|
// String taskGroup = WfTaskUtil.getCandidateGroup();
|
|
|
|
|
//当前获取登录人deptid
|
|
|
|
|
// String deptId = AuthUtil.getDeptId();
|
|
|
|
|
// List<Long> nowUserDepts = Func.toLongList(deptId);
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
TaskQuery taskQuery = taskService.createTaskQuery() |
|
|
|
|
.orderByTaskCreateTime() |
|
|
|
|
.desc() |
|
|
|
|
.taskTenantId(WfTaskUtil.getTenantId()) |
|
|
|
|
.active(); |
|
|
|
|
taskQuery.taskCandidateOrAssigned(taskUser); |
|
|
|
|
// long count = taskQuery.count();
|
|
|
|
|
|
|
|
|
|
// List<Task> listNeedDo = taskQuery.listPage((query.getCurrent() - 1) * query.getSize(), query.getSize());
|
|
|
|
|
List<Task> listNeedDo = taskQuery.list(); |
|
|
|
|
|
|
|
|
|
List<WorkOrder> workOrders = new ArrayList<>(); |
|
|
|
|
|
|
|
|
|
for (Task task : listNeedDo) { |
|
|
|
|
HistoricProcessInstance historicProcessInstance = historyService.createHistoricProcessInstanceQuery().processInstanceId(task.getProcessInstanceId()).singleResult(); |
|
|
|
|
WorkOrder order = new WorkOrder(); |
|
|
|
|
String executionId = task.getExecutionId(); |
|
|
|
|
System.out.println("executionid--" + executionId); |
|
|
|
|
Map<String, Object> variables = runtimeService.getVariables(task.getExecutionId()); |
|
|
|
|
|
|
|
|
|
// 任务种类
|
|
|
|
|
order.setTaskTypeName(variables.get("$renwuzhonglei").toString()); |
|
|
|
|
|
|
|
|
|
// 任务父类
|
|
|
|
|
order.setTaskParentName(DictBizCache.getById(Long.parseLong(variables.get("renwufulei").toString())).getDictValue()); |
|
|
|
|
|
|
|
|
|
// 操作模块
|
|
|
|
|
ProjectInfo projectInfo = projectInfoService.getById(variables.get("xitongmingchengshujuku").toString()); |
|
|
|
|
if (projectInfo != null) { |
|
|
|
|
order.setOperateSysName(projectInfo.getProjectName()); |
|
|
|
|
} else { |
|
|
|
|
order.setOperateSysName(dataBaseService.getById(variables.get("xitongmingchengshujuku").toString()).getDataBaseName()); |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
// 当前责任人
|
|
|
|
|
order.setCurrentResponsiblePerson(userClient.userInfoById(Long.parseLong(task.getAssignee())).getData().getRealName()); |
|
|
|
|
order.setManagementName(variables.get("$guanlibumen").toString()); |
|
|
|
|
|
|
|
|
|
// 运维公司
|
|
|
|
|
order.setMaintenanceCompanyName(userClient.userInfoById(Long.parseLong(variables.get("yunweigongsi").toString())).getData().getRealName()); |
|
|
|
|
order.setApplyUserName(userClient.userInfoById(Long.parseLong(historicProcessInstance.getStartUserId())).getData().getRealName()); |
|
|
|
|
|
|
|
|
|
if (task.getName().contains("审批")) { |
|
|
|
|
order.setApprovalStatus("审批中"); |
|
|
|
|
} else { |
|
|
|
|
order.setApprovalStatus("已驳回"); |
|
|
|
|
} |
|
|
|
|
order.setCreateTime(historicProcessInstance.getStartTime()); |
|
|
|
|
order.setEndTime(historicProcessInstance.getEndTime()); |
|
|
|
|
|
|
|
|
|
if (variables.get("qiwangwanchengshijian") != null) { |
|
|
|
|
SimpleDateFormat dateFormat = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss"); |
|
|
|
|
try { |
|
|
|
|
order.setExpectedCompletionTime(dateFormat.parse(variables.get("qiwangwanchengshijian").toString())); |
|
|
|
|
} catch (ParseException e) { |
|
|
|
|
e.printStackTrace(); |
|
|
|
|
} |
|
|
|
|
} |
|
|
|
|
order.setTaskId(task.getId()); |
|
|
|
|
order.setProcessInstanceId(task.getProcessInstanceId()); |
|
|
|
|
order.setStatus(0); |
|
|
|
|
workOrders.add(order); |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
if (workOrder.getIsBecomeDue() == 1) { |
|
|
|
|
workOrders = workOrders.stream().filter(s -> new Date().after(s.getExpectedCompletionTime())).collect(Collectors.toList()); |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
// 任务父类
|
|
|
|
|
if (StringUtils.isNotBlank(workOrder.getTaskParentName())) { |
|
|
|
|
workOrders = workOrders.stream().filter(s -> s.getTaskParentName().equals(workOrder.getTaskParentName())).collect(Collectors.toList()); |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
// 任务种类
|
|
|
|
|
if (StringUtils.isNotBlank(workOrder.getTaskTypeName())) { |
|
|
|
|
workOrders = workOrders.stream().filter(s -> s.getTaskTypeName().equals(workOrder.getTaskTypeName())).collect(Collectors.toList()); |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
// 当前责任人
|
|
|
|
|
if (StringUtils.isNotBlank(workOrder.getCurrentResponsiblePerson())) { |
|
|
|
|
workOrders = workOrders.stream().filter(s -> s.getCurrentResponsiblePerson().equals(workOrder.getCurrentResponsiblePerson())).collect(Collectors.toList()); |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
// 管理部门
|
|
|
|
|
if (StringUtils.isNotBlank(workOrder.getManagementName())) { |
|
|
|
|
workOrders = workOrders.stream().filter(s -> s.getManagementName().equals(workOrder.getManagementName())).collect(Collectors.toList()); |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
// 审批状态
|
|
|
|
|
if (StringUtils.isNotBlank(workOrder.getApprovalStatus())) { |
|
|
|
|
workOrders = workOrders.stream().filter(s -> s.getApprovalStatus().equals(workOrder.getApprovalStatus())).collect(Collectors.toList()); |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
// 发起人
|
|
|
|
|
if (StringUtils.isNotBlank(workOrder.getApplyUserName())) { |
|
|
|
|
workOrders = workOrders.stream().filter(s -> s.getApplyUserName().equals(workOrder.getApplyUserName())).collect(Collectors.toList()); |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
// 创建时间范围
|
|
|
|
|
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()); |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
// 排序
|
|
|
|
|
workOrders = workOrders.stream().sorted(Comparator.comparing(WorkOrder::getCreateTime).reversed()).collect(Collectors.toList()); |
|
|
|
|
|
|
|
|
|
// 工单记录
|
|
|
|
|
Page<WorkOrder> objectPage = new Page<>(query.getCurrent() - (workOrders.size() / query.getSize()), query.getSize()); |
|
|
|
|
LambdaQueryWrapper<WorkOrder> wrapper = new LambdaQueryWrapper<>(); |
|
|
|
|
wrapper.eq(WorkOrder::getMaintenanceCompany, AuthUtil.getUserId()); |
|
|
|
|
wrapper.eq(WorkOrder::getIsFinish, 0); |
|
|
|
|
if (workOrder.getIsBecomeDue() == 1) { |
|
|
|
|
wrapper.le(WorkOrder::getExpectedCompletionTime, new Date()); |
|
|
|
|
} |
|
|
|
|
wrapper.orderByDesc(WorkOrder::getCreateTime); |
|
|
|
|
List<WorkOrder> records = list(wrapper); |
|
|
|
|
|
|
|
|
|
IPage<WorkOrder> iPage = page(objectPage, wrapper); |
|
|
|
|
List<WorkOrder> orders = iPage.getRecords(); |
|
|
|
|
|
|
|
|
|
setAllName(orders); |
|
|
|
|
|
|
|
|
|
// 总条数
|
|
|
|
|
page.setTotal(workOrders.size() + iPage.getTotal()); |
|
|
|
|
|
|
|
|
|
workOrders.addAll(orders); |
|
|
|
|
|
|
|
|
|
// 分页
|
|
|
|
|
workOrders = workOrders.stream().skip((query.getCurrent() - 1) * query.getSize()).limit(query.getSize()).collect(Collectors.toList()); |
|
|
|
|
// workOrders = workOrders.stream().skip(0).limit(query.getSize()).collect(Collectors.toList());
|
|
|
|
|
// workOrders = workOrders.stream().skip((query.getCurrent() - 1) * query.getSize()).limit(query.getSize()).collect(Collectors.toList());
|
|
|
|
|
workOrders = workOrders.stream().skip(0).limit(query.getSize()).collect(Collectors.toList()); |
|
|
|
|
|
|
|
|
|
// 数据
|
|
|
|
|
page.setRecords(workOrders); |
|
|
|
|
@ -317,7 +471,7 @@ public class WorkOrderServiceImpl extends BaseServiceImpl<WorkOrderMapper, WorkO |
|
|
|
|
if (task.getName().contains("审批")) { |
|
|
|
|
varMap.put("status", "审批中"); |
|
|
|
|
} else { |
|
|
|
|
varMap.put("status", "进行中"); |
|
|
|
|
varMap.put("status", "已驳回"); |
|
|
|
|
} |
|
|
|
|
} else { |
|
|
|
|
varMap.put("currentResponsiblePerson", "--"); |
|
|
|
|
@ -364,12 +518,11 @@ public class WorkOrderServiceImpl extends BaseServiceImpl<WorkOrderMapper, WorkO |
|
|
|
|
@Override |
|
|
|
|
public IPage<WorkOrder> myPage(WorkOrder workOrder, Query query) { |
|
|
|
|
LambdaQueryWrapper<WorkOrder> wrapper = new LambdaQueryWrapper<>(workOrder); |
|
|
|
|
wrapper.eq(WorkOrder::getManagement, AuthUtil.getDeptId()); |
|
|
|
|
wrapper.in(WorkOrder::getManagement, Func.toStrList(AuthUtil.getDeptId())); |
|
|
|
|
if (workOrder.getStartTime() != null && workOrder.getEndTime() != null) { |
|
|
|
|
wrapper.between(WorkOrder::getCreateTime, workOrder.getStartTime(), workOrder.getEndTime()); |
|
|
|
|
} |
|
|
|
|
if (workOrder.getStartTime2() != null && workOrder.getEndTime2() != null) { |
|
|
|
|
wrapper.between(WorkOrder::getFinishTime, workOrder.getStartTime2(), workOrder.getEndTime2()); |
|
|
|
|
wrapper.ge(WorkOrder::getCreateTime, workOrder.getStartTime()); |
|
|
|
|
wrapper.le(WorkOrder::getFinishTime, workOrder.getEndTime()); |
|
|
|
|
} |
|
|
|
|
wrapper.orderByDesc(WorkOrder::getCreateTime); |
|
|
|
|
IPage<WorkOrder> page = page(Condition.getPage(query), wrapper); |
|
|
|
|
@ -380,11 +533,11 @@ public class WorkOrderServiceImpl extends BaseServiceImpl<WorkOrderMapper, WorkO |
|
|
|
|
|
|
|
|
|
@Override |
|
|
|
|
public void workOrderExcel(HttpServletResponse response, List<WorkOrder> workOrderList) { |
|
|
|
|
List<WorkOrderExcel> excels = new ArrayList<>(); |
|
|
|
|
List<OrderExcel> excels = new ArrayList<>(); |
|
|
|
|
SimpleDateFormat format = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss"); |
|
|
|
|
if (com.baomidou.mybatisplus.core.toolkit.CollectionUtils.isNotEmpty(workOrderList)) { |
|
|
|
|
if (CollectionUtils.isNotEmpty(workOrderList)) { |
|
|
|
|
for (WorkOrder record : workOrderList) { |
|
|
|
|
WorkOrderExcel excel = new WorkOrderExcel(); |
|
|
|
|
OrderExcel excel = new OrderExcel(); |
|
|
|
|
excel.setTaskType(taskInfoService.getById(record.getTaskType()).getTaskTypeName()); |
|
|
|
|
excel.setTaskParent(DictBizCache.getById(Long.parseLong(record.getTaskParent())).getDictValue()); |
|
|
|
|
if (record.getType() == 1) { |
|
|
|
|
@ -412,7 +565,7 @@ public class WorkOrderServiceImpl extends BaseServiceImpl<WorkOrderMapper, WorkO |
|
|
|
|
excels.add(excel); |
|
|
|
|
} |
|
|
|
|
} |
|
|
|
|
ExcelUtil.export(response, "工单记录" + DateUtil.time(), "工单记录", excels, WorkOrderExcel.class); |
|
|
|
|
ExcelUtil.export(response, "工单记录" + DateUtil.time(), "工单记录", excels, OrderExcel.class); |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
private void setAllName(List<WorkOrder> records) { |
|
|
|
|
@ -483,11 +636,11 @@ public class WorkOrderServiceImpl extends BaseServiceImpl<WorkOrderMapper, WorkO |
|
|
|
|
varMap.put("currentResponsiblePerson", "--"); |
|
|
|
|
} |
|
|
|
|
// 审批状态
|
|
|
|
|
// if (task.getName().contains("审批")) {
|
|
|
|
|
if (task.getName().contains("审批")) { |
|
|
|
|
varMap.put("status", "审批中"); |
|
|
|
|
// } else {
|
|
|
|
|
// varMap.put("status", "进行中");
|
|
|
|
|
// }
|
|
|
|
|
} else { |
|
|
|
|
varMap.put("status", "已驳回"); |
|
|
|
|
} |
|
|
|
|
} else { |
|
|
|
|
varMap.put("currentResponsiblePerson", "--"); |
|
|
|
|
varMap.put("status", "已完成"); |
|
|
|
|
@ -560,24 +713,10 @@ public class WorkOrderServiceImpl extends BaseServiceImpl<WorkOrderMapper, WorkO |
|
|
|
|
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())); |
|
|
|
|
return (format.parse(format.format(s.get("startTime"))).after(workOrder.getStartTime())) && |
|
|
|
|
(format.parse(format.format(s.get("endTime"))).before(workOrder.getEndTime())); |
|
|
|
|
} catch (ParseException e) { |
|
|
|
|
e.printStackTrace(); |
|
|
|
|
} |
|
|
|
|
@ -585,6 +724,21 @@ public class WorkOrderServiceImpl extends BaseServiceImpl<WorkOrderMapper, WorkO |
|
|
|
|
return false; |
|
|
|
|
}).collect(Collectors.toList()); |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
// 结束时间范围
|
|
|
|
|
// if (workOrder.getEndTime() != null) {
|
|
|
|
|
// workOrders = workOrders.stream().filter(s ->
|
|
|
|
|
// {
|
|
|
|
|
// if (s.get("endTime") != null) {
|
|
|
|
|
// try {
|
|
|
|
|
// return format.parse(format.format(s.get("endTime"))).before(workOrder.getEndTime());
|
|
|
|
|
// } catch (ParseException e) {
|
|
|
|
|
// e.printStackTrace();
|
|
|
|
|
// }
|
|
|
|
|
// }
|
|
|
|
|
// return false;
|
|
|
|
|
// }).collect(Collectors.toList());
|
|
|
|
|
// }
|
|
|
|
|
return workOrders; |
|
|
|
|
} |
|
|
|
|
} |
|
|
|
|
|