blade-service/blade-mdm/src/main/java/org/springblade/mdm/flow/controller/FlowMgrController.java
@@ -107,16 +107,24 @@ @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) { public R<IPage<FlowVO>> searchList(@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); } @GetMapping("finished-list") @ApiOperationSupport(order = 3) @Operation(summary = "历史流程查询", description = "查询已完结的所有流程") public R<IPage<FlowVO>> finishedList(@Parameter(description = "流程类型")String processDefinitionKey,@Parameter(description = "任务到达时间开始") LocalDate createTimeBegin, @Parameter(description = "任务到达时间截止")LocalDate createTimeEnd, @Parameter(description = "关键字") String keyword, Query query) { IPage<FlowVO> pages = businessService.selectFinishedPage(Condition.getPage(query), processDefinitionKey,createTimeBegin,createTimeEnd,keyword); return R.data(pages); } @PostMapping("delete-instance") @Operation(summary = "流程删除", description = "删除id指定的流程实例") public R<Void> deleteInstance(@Parameter(description = "任务到达时间开始") String processInstancesId) { public R<Void> deleteInstance(@Parameter(description = "任务到达时间开始") String processInstanceId) { try { businessService.deleteProcessInstance(processInstancesId); businessService.deleteProcessInstance(processInstanceId); } catch (Exception e) { log.error("删除流程失败",e); @@ -137,7 +145,7 @@ response.setContentType("application/octet-stream"); approveTableService.exportApproveTable(processInstanceId,response.getOutputStream()); } catch (Exception e) { log.error("导出DNC异常", e); log.error("导出审批表异常", e); throw new RuntimeException(e); } blade-service/blade-mdm/src/main/java/org/springblade/mdm/flow/service/ApproveTableService.java
@@ -69,6 +69,9 @@ List<ApproveRecord> records = approveRecordService.lambdaQuery().eq(ApproveRecord::getProcessInstanceId, processInstanceId).orderByAsc(ApproveRecord::getCreateTime).list(); for(int i=0;i<records.size();i++){ ApproveRecord record = records.get(i); if(record.getNcProgramId() ==null){ continue; } printStep(document,bfChinese,record); if(i<records.size()-1){ document.newPage(); blade-service/blade-mdm/src/main/java/org/springblade/mdm/flow/service/FlowBusinessService.java
@@ -7,6 +7,7 @@ import org.flowable.engine.RuntimeService; import org.flowable.engine.TaskService; import org.flowable.engine.history.HistoricProcessInstance; import org.flowable.engine.history.HistoricProcessInstanceQuery; import org.flowable.engine.task.Comment; import org.flowable.task.api.Task; import org.flowable.task.api.TaskQuery; @@ -80,7 +81,7 @@ // 构建列表数据 FlowVO bladeFlow = new FlowVO(); buildFlowTaskList(bladeFlow, flowList, todoQuery);//FlowEngineConstant.STATUS_TODO , "todo" buildFlowTaskList(bladeFlow, flowList, todoQuery); flowList.forEach(flowVO -> { if(flowVO.getVariables().containsKey("machineCode")){ //Machine machinemachineService.getByCode((String)flowVO.getVariables().get("machineCode")) @@ -89,7 +90,7 @@ // 计算总数 long count = todoQuery.count(); // 设置页数 page.setSize(count); //page.setSize(count); // 设置总数 page.setTotal(count); // 设置数据 @@ -376,7 +377,7 @@ // 计算总数 long count = todoQuery.count(); // 设置页数 page.setSize(count); //page.setSize(count); // 设置总数 page.setTotal(count); // 设置数据 @@ -468,4 +469,51 @@ runtimeService.deleteProcessInstance(processInstancesId, "流程查询-删除"); //TODO 删除出关联字段 } /** * 已完结的流程分页列表 * @param page * @param createTimeBegin * @param createTimeEnd * @param keyword * @return */ public IPage<FlowVO> selectFinishedPage(IPage<FlowVO> page, String processDefinitionKey,LocalDate createTimeBegin, LocalDate createTimeEnd, String keyword) { HistoricProcessInstanceQuery query = this.historyService.createHistoricProcessInstanceQuery().includeProcessVariables(); //.finished() // 只查询已完成的流程.unfinished() // 查询未完成的流程 if(Func.isNotEmpty(processDefinitionKey)) { query.processDefinitionKey(processDefinitionKey); } if(createTimeBegin!=null) { query.startedAfter(DateUtil.toDate(createTimeBegin)); } if(createTimeEnd!=null) { query.startedBefore(DateUtil.toDate(createTimeEnd)); } query.orderByProcessInstanceEndTime().desc(); // 按结束时间降序排列 page.setTotal(query.count()); long firstResult = (page.getCurrent()-1) * page.getSize() + 1; List<HistoricProcessInstance> processes = query .listPage((int)firstResult, (int)page.getSize()); List<FlowVO> records = new LinkedList<>(); for(HistoricProcessInstance processInstance : processes) { FlowVO vo = new FlowVO(); vo.setProcessDefinitionKey(processInstance.getProcessDefinitionKey()); vo.setProcessInstanceId(processInstance.getId()); vo.setProcessDefinitionName(processInstance.getProcessDefinitionName()); vo.setVariables(processInstance.getProcessVariables()); vo.setProcessCreateTime(processInstance.getStartTime()); vo.setHistoryTaskEndTime(processInstance.getEndTime()); records.add(vo); } page.setRecords(records); return page; } } blade-service/blade-mdm/src/main/java/org/springblade/mdm/program/controller/MdmSystemController.java
@@ -9,8 +9,10 @@ import lombok.extern.slf4j.Slf4j; import org.springblade.core.tenant.annotation.NonDS; import org.springblade.core.tool.api.R; import org.springblade.system.feign.IDictClient; import org.springblade.system.feign.ISysClient; import org.springblade.system.pojo.entity.Dept; import org.springblade.system.pojo.entity.Dict; import org.springframework.web.bind.annotation.GetMapping; import org.springframework.web.bind.annotation.RequestMapping; import org.springframework.web.bind.annotation.RequestParam; @@ -31,7 +33,7 @@ @Slf4j public class MdmSystemController { private final ISysClient sysClient; private final IDictClient dictClient; @GetMapping("/dept/lazy-list") @ApiOperationSupport(order = 2) @Operation(summary = "懒加载部门列表") @@ -46,4 +48,10 @@ } } @Operation(summary = "字典列表") @GetMapping("/dict/dictionary") public R<List<Dict>> dictionary(@Parameter(description = "字典编码") String code) { return dictClient.getList(code); } }