parent
11a1a4aaf3
commit
23ed93a59c
14 changed files with 292 additions and 30 deletions
@ -0,0 +1,40 @@ |
||||
package org.springblade.plugin.operation.workorder.controller; |
||||
|
||||
import com.baomidou.mybatisplus.core.metadata.IPage; |
||||
import lombok.AllArgsConstructor; |
||||
import org.flowable.engine.history.HistoricProcessInstance; |
||||
import org.springblade.core.boot.ctrl.BladeController; |
||||
import org.springblade.core.mp.support.Query; |
||||
import org.springblade.core.tenant.annotation.NonDS; |
||||
import org.springblade.core.tool.api.R; |
||||
import org.springblade.plugin.operation.workorder.entity.WorkOrder; |
||||
import org.springblade.plugin.operation.workorder.service.IWorkOrderService; |
||||
import org.springblade.plugin.workflow.process.model.WfProcess; |
||||
import org.springframework.web.bind.annotation.GetMapping; |
||||
import org.springframework.web.bind.annotation.RequestMapping; |
||||
import org.springframework.web.bind.annotation.RestController; |
||||
|
||||
/** |
||||
* 工单 |
||||
* @Description |
||||
* @Author lt |
||||
* @Date 2023年2月17日09:46:45 |
||||
*/ |
||||
|
||||
@NonDS |
||||
@RestController |
||||
@AllArgsConstructor |
||||
@RequestMapping("/workOrder") |
||||
public class WorkOrderController extends BladeController { |
||||
|
||||
private final IWorkOrderService workOrderService; |
||||
|
||||
/** |
||||
* 历史工单 |
||||
*/ |
||||
@GetMapping("/historyWorkOrder") |
||||
public R<IPage<WorkOrder>> historyWorkOrder(WorkOrder workOrder, Query query) { |
||||
return R.data(workOrderService.historyWorkOrder(workOrder, query)); |
||||
} |
||||
|
||||
} |
||||
@ -0,0 +1,42 @@ |
||||
package org.springblade.plugin.operation.workorder.entity; |
||||
|
||||
import lombok.Data; |
||||
|
||||
import java.util.Date; |
||||
|
||||
@Data |
||||
public class WorkOrder { |
||||
|
||||
// 任务种类
|
||||
private String taskType; |
||||
|
||||
// 任务父类
|
||||
private String taskParent; |
||||
|
||||
// 操作模块
|
||||
private String operationModule; |
||||
|
||||
// 当前责任人
|
||||
private String currentResponsiblePerson; |
||||
|
||||
// 分管部门
|
||||
private String dept; |
||||
|
||||
// 运维公司
|
||||
private String company; |
||||
|
||||
// 发起人
|
||||
private String sponsor; |
||||
|
||||
// 审批状态
|
||||
private String approvalStatus; |
||||
|
||||
// 创建时间
|
||||
private Date createTime; |
||||
|
||||
// 结束时间
|
||||
private Date endTime; |
||||
|
||||
// 期望完成时间
|
||||
private String expectedCompletionTime; |
||||
} |
||||
@ -0,0 +1,18 @@ |
||||
package org.springblade.plugin.operation.workorder.service; |
||||
|
||||
import com.baomidou.mybatisplus.core.metadata.IPage; |
||||
import org.flowable.engine.history.HistoricProcessInstance; |
||||
import org.springblade.core.mp.support.Query; |
||||
import org.springblade.core.tool.api.R; |
||||
import org.springblade.plugin.operation.workorder.entity.WorkOrder; |
||||
import org.springblade.plugin.workflow.process.model.WfProcess; |
||||
|
||||
/** |
||||
* @Description |
||||
* @Author lt |
||||
* @Date 2023-2-17 09:49:24 |
||||
*/ |
||||
public interface IWorkOrderService { |
||||
|
||||
IPage<WorkOrder> historyWorkOrder(WorkOrder workOrder, Query query); |
||||
} |
||||
@ -0,0 +1,76 @@ |
||||
package org.springblade.plugin.operation.workorder.service.impl; |
||||
|
||||
import com.alibaba.nacos.common.utils.CollectionUtils; |
||||
import com.baomidou.mybatisplus.core.metadata.IPage; |
||||
import com.baomidou.mybatisplus.extension.plugins.pagination.Page; |
||||
import lombok.AllArgsConstructor; |
||||
import org.flowable.engine.HistoryService; |
||||
import org.flowable.engine.RuntimeService; |
||||
import org.flowable.engine.TaskService; |
||||
import org.flowable.engine.history.HistoricProcessInstance; |
||||
import org.springblade.core.mp.support.Query; |
||||
import org.springblade.plugin.operation.workorder.entity.WorkOrder; |
||||
import org.springblade.plugin.operation.workorder.service.IWorkOrderService; |
||||
import org.springblade.plugin.workflow.core.utils.WfTaskUtil; |
||||
import org.springblade.plugin.workflow.process.model.WfProcess; |
||||
import org.springframework.stereotype.Service; |
||||
|
||||
import java.util.ArrayList; |
||||
import java.util.List; |
||||
import java.util.Map; |
||||
|
||||
/** |
||||
* @Description |
||||
* @Author lt |
||||
* @Date 2023-2-17 09:49:42 |
||||
*/ |
||||
@Service |
||||
@AllArgsConstructor |
||||
public class WorkOrderServiceImpl implements IWorkOrderService { |
||||
private final TaskService taskService; |
||||
private final HistoryService historyService; |
||||
private final RuntimeService runtimeService; |
||||
|
||||
|
||||
@Override |
||||
public IPage<WorkOrder> historyWorkOrder(WorkOrder workOrder, Query query) { |
||||
IPage<WorkOrder> page = new Page<>(); |
||||
List<HistoricProcessInstance> list = historyService.createHistoricProcessInstanceQuery() |
||||
.orderByProcessInstanceDuration() |
||||
.desc() |
||||
// .processInstanceTenantId(WfTaskUtil.getTenantId())
|
||||
.listPage((query.getCurrent() - 1) * query.getSize(), (query.getCurrent() - 1) * query.getSize() + query.getSize()); |
||||
|
||||
List<WorkOrder> workOrders = new ArrayList<>(); |
||||
if (CollectionUtils.isNotEmpty(list)) { |
||||
for (HistoricProcessInstance historicProcessInstance : list) { |
||||
Map<String, Object> variables = historicProcessInstance.getProcessVariables(); |
||||
WorkOrder order = new WorkOrder(); |
||||
order.setTaskType(variables.get("$renwuzhonglei").toString()); |
||||
order.setTaskParent(variables.get("renwufulei").toString()); |
||||
order.setOperationModule(variables.get("xitongmokuaishujubiao").toString()); |
||||
order.setCurrentResponsiblePerson(""); |
||||
order.setDept(variables.get("$quanlibumen").toString()); |
||||
order.setCompany(variables.get("yunweigongsi").toString()); |
||||
order.setSponsor(variables.get("applyUser").toString()); |
||||
order.setApprovalStatus(variables.get("").toString()); |
||||
order.setCreateTime(historicProcessInstance.getStartTime()); |
||||
order.setEndTime(historicProcessInstance.getEndTime()); |
||||
order.setExpectedCompletionTime(variables.get("qiwangwanchengshijian").toString()); |
||||
workOrders.add(order); |
||||
} |
||||
} |
||||
|
||||
// 数据
|
||||
page.setRecords(workOrders); |
||||
// 总条数
|
||||
page.setTotal(historyService.createHistoricProcessInstanceQuery() |
||||
// .processInstanceTenantId(WfTaskUtil.getTenantId())
|
||||
.orderByProcessInstanceDuration().desc().list().size()); |
||||
// 当前页数
|
||||
page.setCurrent(query.getCurrent()); |
||||
// 当前条数
|
||||
page.setSize(query.getSize()); |
||||
return page; |
||||
} |
||||
} |
||||
Loading…
Reference in new issue