|
|
|
|
@ -12,6 +12,7 @@ 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.HistoricTaskInstance; |
|
|
|
|
import org.flowable.task.api.history.HistoricTaskInstanceQuery; |
|
|
|
|
import org.flowable.variable.api.history.HistoricVariableInstance; |
|
|
|
|
import org.springblade.core.excel.util.ExcelUtil; |
|
|
|
|
@ -59,6 +60,8 @@ public class WorkOrderServiceImpl implements IWorkOrderService { |
|
|
|
|
|
|
|
|
|
List<Map<String, Object>> workOrders = getList(workOrder); |
|
|
|
|
|
|
|
|
|
page.setTotal(workOrders.size()); |
|
|
|
|
|
|
|
|
|
// 分页
|
|
|
|
|
workOrders = workOrders.stream().skip((query.getCurrent() - 1) * query.getSize()).limit(query.getSize()).collect(Collectors.toList()); |
|
|
|
|
|
|
|
|
|
@ -68,9 +71,9 @@ public class WorkOrderServiceImpl implements IWorkOrderService { |
|
|
|
|
// 数据
|
|
|
|
|
page.setRecords(workOrders); |
|
|
|
|
// 总条数
|
|
|
|
|
page.setTotal(historyService.createHistoricProcessInstanceQuery() |
|
|
|
|
.processInstanceTenantId(WfTaskUtil.getTenantId()) |
|
|
|
|
.orderByProcessInstanceDuration().desc().list().size()); |
|
|
|
|
// page.setTotal(historyService.createHistoricProcessInstanceQuery()
|
|
|
|
|
// .processInstanceTenantId(WfTaskUtil.getTenantId())
|
|
|
|
|
// .orderByProcessInstanceDuration().desc().list().size());
|
|
|
|
|
// 当前页数
|
|
|
|
|
page.setCurrent(query.getCurrent()); |
|
|
|
|
// 当前条数
|
|
|
|
|
@ -137,7 +140,10 @@ public class WorkOrderServiceImpl implements IWorkOrderService { |
|
|
|
|
} |
|
|
|
|
order.setCreateTime(historicProcessInstance.getStartTime()); |
|
|
|
|
order.setEndTime(historicProcessInstance.getEndTime()); |
|
|
|
|
|
|
|
|
|
if (variables.get("qiwangwanchengshijian") != null) { |
|
|
|
|
order.setExpectedCompletionTime(variables.get("qiwangwanchengshijian").toString()); |
|
|
|
|
} |
|
|
|
|
order.setTaskId(task.getId()); |
|
|
|
|
order.setProcessInstanceId(task.getProcessInstanceId()); |
|
|
|
|
workOrders.add(order); |
|
|
|
|
@ -183,6 +189,8 @@ public class WorkOrderServiceImpl implements IWorkOrderService { |
|
|
|
|
workOrders = workOrders.stream().filter(s -> (s.getCreateTime().after(workOrder.getStartTime())) && (s.getCreateTime().before(workOrder.getEndTime()))).collect(Collectors.toList()); |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
page.setTotal(workOrders.size()); |
|
|
|
|
|
|
|
|
|
// 分页
|
|
|
|
|
workOrders = workOrders.stream().skip((query.getCurrent() - 1) * query.getSize()).limit(query.getSize()).collect(Collectors.toList()); |
|
|
|
|
|
|
|
|
|
@ -193,11 +201,11 @@ public class WorkOrderServiceImpl implements IWorkOrderService { |
|
|
|
|
page.setRecords(workOrders); |
|
|
|
|
|
|
|
|
|
// 总条数
|
|
|
|
|
page.setTotal(taskService.createTaskQuery() |
|
|
|
|
.orderByTaskCreateTime() |
|
|
|
|
.desc() |
|
|
|
|
.taskTenantId(WfTaskUtil.getTenantId()) |
|
|
|
|
.active().taskCandidateOrAssigned(taskUser).count()); |
|
|
|
|
// page.setTotal(taskService.createTaskQuery()
|
|
|
|
|
// .orderByTaskCreateTime()
|
|
|
|
|
// .desc()
|
|
|
|
|
// .taskTenantId(WfTaskUtil.getTenantId())
|
|
|
|
|
// .active().taskCandidateOrAssigned(taskUser).count());
|
|
|
|
|
|
|
|
|
|
// 当前页数
|
|
|
|
|
page.setCurrent(query.getCurrent()); |
|
|
|
|
@ -208,10 +216,11 @@ public class WorkOrderServiceImpl implements IWorkOrderService { |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
@Override |
|
|
|
|
public void exportExcel(WorkOrder workOrder, HttpServletResponse response) { |
|
|
|
|
public void exportExcel(WorkOrder workOrder, HttpServletResponse response) throws ParseException { |
|
|
|
|
List<WorkOrderExcel> excels = new ArrayList<>(); |
|
|
|
|
List<Map<String, Object>> workOrders = new ArrayList<>(); |
|
|
|
|
|
|
|
|
|
SimpleDateFormat format = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss"); |
|
|
|
|
if (StringUtils.isNotBlank(workOrder.getTaskType()) || |
|
|
|
|
StringUtils.isNotBlank(workOrder.getTaskParent()) || |
|
|
|
|
StringUtils.isNotBlank(workOrder.getCurrentResponsiblePerson()) || |
|
|
|
|
@ -224,7 +233,7 @@ public class WorkOrderServiceImpl implements IWorkOrderService { |
|
|
|
|
workOrders = getList(workOrder); |
|
|
|
|
|
|
|
|
|
} else { |
|
|
|
|
SimpleDateFormat format = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss"); |
|
|
|
|
|
|
|
|
|
Calendar c = Calendar.getInstance(); |
|
|
|
|
//过去三个月
|
|
|
|
|
c.setTime(new Date()); |
|
|
|
|
@ -306,10 +315,10 @@ public class WorkOrderServiceImpl implements IWorkOrderService { |
|
|
|
|
excel.setCompany(order.get("yunweigongsi").toString()); |
|
|
|
|
excel.setSponsor(order.get("startUserId").toString()); |
|
|
|
|
excel.setApprovalStatus(order.get("status").toString()); |
|
|
|
|
excel.setCreateTime(order.get("startTime").toString()); |
|
|
|
|
excel.setCreateTime(format.format(order.get("startTime"))); |
|
|
|
|
|
|
|
|
|
if (order.get("endTime") != null) { |
|
|
|
|
excel.setEndTime(order.get("endTime").toString()); |
|
|
|
|
excel.setEndTime(format.format(order.get("endTime"))); |
|
|
|
|
} else { |
|
|
|
|
excel.setEndTime("未结束"); |
|
|
|
|
} |
|
|
|
|
@ -359,7 +368,6 @@ public class WorkOrderServiceImpl implements IWorkOrderService { |
|
|
|
|
} else { |
|
|
|
|
varMap.put("currentResponsiblePerson", "--"); |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
// 审批状态
|
|
|
|
|
if (task.getName().contains("审批")) { |
|
|
|
|
varMap.put("status", "审批中"); |
|
|
|
|
@ -373,12 +381,31 @@ public class WorkOrderServiceImpl implements IWorkOrderService { |
|
|
|
|
varMap.put("startTime", historicProcessInstance.getStartTime()); |
|
|
|
|
varMap.put("endTime", historicProcessInstance.getEndTime()); |
|
|
|
|
varMap.put("startUserId", userClient.userInfoById(Long.parseLong(historicProcessInstance.getStartUserId())).getData().getRealName()); |
|
|
|
|
varMap.put("startDeptId", userClient.userInfoById(Long.parseLong(historicProcessInstance.getStartUserId())).getData().getDeptId()); |
|
|
|
|
varMap.put("processInstanceId", historicProcessInstance.getId()); |
|
|
|
|
varMap.put("taskId", ""); |
|
|
|
|
|
|
|
|
|
List<HistoricTaskInstance> taskInstanceList = historyService.createHistoricTaskInstanceQuery().processInstanceId(historicProcessInstance.getId()).orderByTaskCreateTime().desc().list(); |
|
|
|
|
|
|
|
|
|
varMap.put("taskId", taskInstanceList.get(0).getId()); |
|
|
|
|
workOrders.add(varMap); |
|
|
|
|
} |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
// 只看本部门数据权限
|
|
|
|
|
List<Map<String, Object>> workOrderList = new ArrayList<>(); |
|
|
|
|
List<String> deptIds = Func.toStrList(AuthUtil.getDeptId()); |
|
|
|
|
workOrders.forEach(order -> { |
|
|
|
|
List<String> deptId = Func.toStrList(order.get("startDeptId").toString()); |
|
|
|
|
for (String s : deptId) { |
|
|
|
|
if (deptIds.contains(s)) { |
|
|
|
|
workOrderList.add(order); |
|
|
|
|
} |
|
|
|
|
} |
|
|
|
|
}); |
|
|
|
|
workOrders = workOrderList; |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
// 任务父类
|
|
|
|
|
if (StringUtils.isNotBlank(workOrder.getTaskParent())) { |
|
|
|
|
workOrders = workOrders.stream().filter(s -> s.get("renwufulei").equals(workOrder.getTaskParent())).collect(Collectors.toList()); |
|
|
|
|
|