| | |
| | | import io.swagger.v3.oas.annotations.Operation; |
| | | import io.swagger.v3.oas.annotations.Parameter; |
| | | import io.swagger.v3.oas.annotations.tags.Tag; |
| | | import jakarta.servlet.http.HttpServletResponse; |
| | | import lombok.extern.slf4j.Slf4j; |
| | | import org.flowable.engine.HistoryService; |
| | | import org.flowable.engine.RuntimeService; |
| | | import org.flowable.engine.TaskService; |
| | | import org.flowable.engine.task.Comment; |
| | | import org.flowable.task.api.history.HistoricTaskInstance; |
| | | import org.springblade.core.excel.util.ExcelUtil; |
| | | import org.springblade.core.mp.support.Condition; |
| | | import org.springblade.core.mp.support.Query; |
| | | import org.springblade.core.tool.api.R; |
| | | import org.springblade.core.tool.support.Kv; |
| | | import org.springblade.core.tool.utils.Func; |
| | | import org.springblade.core.tool.utils.StringUtil; |
| | | import org.springblade.flow.core.pojo.entity.BladeFlow; |
| | | import org.springblade.core.tool.utils.DateUtil; |
| | | import org.springblade.mdm.basesetting.machine.vo.MachineExcelVO; |
| | | import org.springblade.mdm.flow.service.ApproveRecordService; |
| | | import org.springblade.mdm.flow.service.FlowBusinessService; |
| | | import org.springblade.mdm.flow.vo.FlowVO; |
| | | import org.springblade.mdm.flow.vo.OvertimeTaskExcelVO; |
| | | import org.springblade.mdm.flow.vo.TaskTraceVO; |
| | | import org.springframework.beans.BeanUtils; |
| | | import org.springframework.beans.factory.annotation.Autowired; |
| | | import org.springframework.web.bind.annotation.*; |
| | | |
| | | import java.util.Map; |
| | | import java.time.LocalDate; |
| | | import java.util.ArrayList; |
| | | import java.util.Collections; |
| | | import java.util.List; |
| | | |
| | | @Slf4j |
| | | @RestController |
| | |
| | | @Autowired |
| | | private FlowBusinessService businessService; |
| | | |
| | | /** |
| | | * 待办任务列表页 |
| | | */ |
| | | @Autowired |
| | | private HistoryService historyService; |
| | | @Autowired |
| | | private RuntimeService runtimeService; |
| | | |
| | | @GetMapping("overtime-list") |
| | | @ApiOperationSupport(order = 3) |
| | | @Operation(summary = "超时查询", description = "查询所有超时任务") |
| | | public R<IPage<BladeFlow>> todoList(@Parameter(description = "执行人员") String assigneeName, @Parameter(description = "关键字") String keyword, Query query) { |
| | | IPage<BladeFlow> pages = businessService.selectOvertimePage(Condition.getPage(query), assigneeName,keyword); |
| | | public R<IPage<FlowVO>> overtimeList(@Parameter(description = "任务到达时间开始") LocalDate createTimeBegin, @Parameter(description = "任务到达时间截止")LocalDate createTimeEnd, @Parameter(description = "执行人员") String assigneeName, @Parameter(description = "关键字") String keyword, Query query) { |
| | | IPage<FlowVO> pages = businessService.selectOvertimePage(Condition.getPage(query), createTimeBegin,createTimeEnd,assigneeName,keyword); |
| | | return R.data(pages); |
| | | } |
| | | @GetMapping("overtime-export") |
| | | @ApiOperationSupport(order = 3) |
| | | @Operation(summary = "超时导出", description = "超时任务导出") |
| | | public void overtimeExport(@Parameter(description = "任务到达时间开始") LocalDate createTimeBegin, @Parameter(description = "任务到达时间截止")LocalDate createTimeEnd, @Parameter(description = "执行人员") String assigneeName, @Parameter(description = "关键字") String keyword, Query query, HttpServletResponse response) { |
| | | query.setCurrent(1); |
| | | query.setSize(Integer.MAX_VALUE); |
| | | IPage<FlowVO> pages = businessService.selectOvertimePage(Condition.getPage(query), createTimeBegin,createTimeEnd,assigneeName,keyword); |
| | | |
| | | List<OvertimeTaskExcelVO> list = new ArrayList<>(); |
| | | pages.getRecords().forEach(data ->{ |
| | | //data.get |
| | | OvertimeTaskExcelVO excelVO = new OvertimeTaskExcelVO(); |
| | | BeanUtils.copyProperties(data, excelVO); |
| | | |
| | | list.add(excelVO); |
| | | }); |
| | | |
| | | ExcelUtil.export(response, "超时任务" + DateUtil.time(), "超时任务表", list, OvertimeTaskExcelVO.class); |
| | | } |
| | | |
| | | |
| | | @Operation(summary = "流程执行轨迹", description = "流程执行轨迹") |
| | | @GetMapping("process-trace") |
| | | public R<List<TaskTraceVO>> processTrace(String processInstanceId){ |
| | | List<TaskTraceVO> result = new ArrayList<>(); |
| | | List<HistoricTaskInstance> hisTasks = historyService.createHistoricTaskInstanceQuery() |
| | | .processInstanceId(processInstanceId).orderByTaskCreateTime().desc().list(); |
| | | // 批注信息 |
| | | List<Comment> comments; |
| | | for (HistoricTaskInstance hisTask : hisTasks) { |
| | | TaskTraceVO vo = new TaskTraceVO(); |
| | | BeanUtils.copyProperties(hisTask, vo); |
| | | comments = taskService.getTaskComments(hisTask.getId()); |
| | | if(!comments.isEmpty()) { |
| | | vo.setComment(comments.get(0).getFullMessage()); |
| | | } |
| | | result.add(vo); |
| | | } |
| | | |
| | | return R.data(result); |
| | | } |
| | | |
| | | @GetMapping("search-list") |
| | | @ApiOperationSupport(order = 3) |
| | | @Operation(summary = "流程查询", description = "查询进行中的所有流程") |
| | | public R<IPage<FlowVO>> overtimeList(@Parameter(description = "任务到达时间开始") LocalDate createTimeBegin, @Parameter(description = "任务到达时间截止")LocalDate createTimeEnd, @Parameter(description = "关键字") String keyword, Query query) { |
| | | IPage<FlowVO> pages = businessService.selectSearchPage(Condition.getPage(query), createTimeBegin,createTimeEnd,keyword); |
| | | return R.data(pages); |
| | | } |
| | | |
| | | @PostMapping("delete-instance") |
| | | @Operation(summary = "流程删除", description = "删除id指定的流程实例") |
| | | public R<Void> deleteInstance(@Parameter(description = "任务到达时间开始") String processInstancesId) { |
| | | try { |
| | | runtimeService.deleteProcessInstance(processInstancesId, "流程查询-删除"); |
| | | } catch (Exception e) { |
| | | log.error("删除流程失败",e); |
| | | return R.fail(e.getMessage()); |
| | | } |
| | | return R.success(); |
| | | } |
| | | |
| | | |
| | | } |