From 0ecd5acd3b9f320a487c68df2ea6234b4dacb12c Mon Sep 17 00:00:00 2001 From: yangys <y_ys79@sina.com> Date: 星期日, 20 七月 2025 13:24:54 +0800 Subject: [PATCH] 增加流程查询接口 --- blade-service/blade-mdm/src/main/java/org/springblade/mdm/flow/controller/FlowMgrController.java | 92 +++++++++++++++++++++++++++++++++++++++------ 1 files changed, 79 insertions(+), 13 deletions(-) diff --git a/blade-service/blade-mdm/src/main/java/org/springblade/mdm/flow/controller/FlowMgrController.java b/blade-service/blade-mdm/src/main/java/org/springblade/mdm/flow/controller/FlowMgrController.java index 1375348..1dee81f 100644 --- a/blade-service/blade-mdm/src/main/java/org/springblade/mdm/flow/controller/FlowMgrController.java +++ b/blade-service/blade-mdm/src/main/java/org/springblade/mdm/flow/controller/FlowMgrController.java @@ -5,24 +5,32 @@ 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.time.LocalDate; +import java.util.ArrayList; import java.util.Collections; import java.util.List; -import java.util.Map; @Slf4j @RestController @@ -34,20 +42,78 @@ @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>> overtimeList(@Parameter(description = "浠诲姟鍒拌揪鏃堕棿寮�濮�") LocalDate createTimeBegin, @Parameter(description = "浠诲姟鍒拌揪鏃堕棿鎴")LocalDate createTimeEnd, @Parameter(description = "鎵ц浜哄憳") String assigneeName, @Parameter(description = "鍏抽敭瀛�") String keyword, Query query) { - IPage<BladeFlow> pages = businessService.selectOvertimePage(Condition.getPage(query), createTimeBegin,createTimeEnd,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); } - @GetMapping("process-trace") - public R<List<TaskTraceVO>> processTrace(long processInstanceId){ - return R.data(Collections.emptyList()); + @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(); } -- Gitblit v1.9.3