From 61763cc1a182effa7e5535ac72d54a6a56f029eb Mon Sep 17 00:00:00 2001
From: yangys <y_ys79@sina.com>
Date: 星期六, 06 九月 2025 09:52:41 +0800
Subject: [PATCH] word版审批表,确认表
---
blade-service/blade-mdm/src/main/java/org/springblade/mdm/flow/controller/FlowMgrController.java | 100 ++++++++++++++++++++++++++++++++++++-------------
1 files changed, 73 insertions(+), 27 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 3c014ac..89f11f7 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,37 +5,35 @@
import io.swagger.v3.oas.annotations.Operation;
import io.swagger.v3.oas.annotations.Parameter;
import io.swagger.v3.oas.annotations.tags.Tag;
+import jakarta.mail.MessagingException;
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.log.exception.ServiceException;
import org.springblade.core.mp.support.Condition;
import org.springblade.core.mp.support.Query;
+import org.springblade.core.secure.utils.AuthUtil;
import org.springblade.core.tool.api.R;
import org.springblade.core.tool.utils.DateUtil;
-import org.springblade.mdm.basesetting.machine.vo.MachineExcelVO;
-import org.springblade.mdm.commons.vo.IdsVO;
-import org.springblade.mdm.flow.service.ApproveRecordService;
-import org.springblade.mdm.flow.service.ApproveTableService;
-import org.springblade.mdm.flow.service.FlowBusinessService;
+import org.springblade.core.tool.utils.Func;
+import org.springblade.core.tool.utils.UrlUtil;
+import org.springblade.mdm.flow.service.*;
import org.springblade.mdm.flow.vo.FlowVO;
import org.springblade.mdm.flow.vo.OvertimeTaskExcelVO;
import org.springblade.mdm.flow.vo.TaskTraceVO;
+import org.springblade.system.feign.IUserClient;
+import org.springblade.system.pojo.entity.User;
import org.springframework.beans.BeanUtils;
import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.format.annotation.DateTimeFormat;
import org.springframework.web.bind.annotation.*;
-import java.io.IOException;
-import java.net.URLEncoder;
-import java.nio.charset.StandardCharsets;
import java.time.LocalDate;
+import java.time.LocalDateTime;
import java.util.ArrayList;
-import java.util.Collections;
import java.util.List;
@Slf4j
@@ -47,13 +45,18 @@
private TaskService taskService;
@Autowired
private FlowBusinessService businessService;
-
+ @Autowired
+ private FlowCommonService flowCommonService;
@Autowired
private HistoryService historyService;
+
@Autowired
- private RuntimeService runtimeService;
+ private ProgramConfirmTableService programConfirmTableService;
@Autowired
- private ApproveTableService approveTableService;
+ private IUserClient userClient;
+ @Autowired
+ private WIthdrawService withdrawService;
+
@GetMapping("overtime-list")
@ApiOperationSupport(order = 3)
@@ -83,9 +86,22 @@
}
- @Operation(summary = "娴佺▼鎵ц杞ㄨ抗", description = "娴佺▼鎵ц杞ㄨ抗")
+ @Operation(summary = "娴佺▼鎵ц杞ㄨ抗", description = "娴佺▼鎵ц杞ㄨ抗/瀹℃壒璁板綍")
@GetMapping("process-trace")
public R<List<TaskTraceVO>> processTrace(String processInstanceId){
+ /*
+ List<ApproveRecord> records = approveRecordService.lambdaQuery().eq(ApproveRecord::getProcessInstanceId,processInstanceId).orderByAsc(ApproveRecord::getCreateTime).list();
+ List<TaskTraceVO> result = new ArrayList<>();
+
+ for (ApproveRecord record : records) {
+ TaskTraceVO vo = new TaskTraceVO();
+ vo.setComment(record.getComment());
+ vo.setCreateTime(record.getCreateTime());
+ vo.setAssigneeName(record.getUserNickname());
+
+ //vo.setEndTime();
+ }*/
+
List<TaskTraceVO> result = new ArrayList<>();
List<HistoricTaskInstance> hisTasks = historyService.createHistoricTaskInstanceQuery()
.processInstanceId(processInstanceId).orderByTaskCreateTime().desc().list();
@@ -98,6 +114,14 @@
if(!comments.isEmpty()) {
vo.setComment(comments.get(0).getFullMessage());
}
+
+ vo.setTaskName(hisTask.getName());
+
+ R<User> assigneeObj = userClient.userInfoById(Func.toLong(hisTask.getAssignee()));
+ if(assigneeObj.isSuccess()) {
+ vo.setAssigneeName(assigneeObj.getData().getName());
+ }
+
result.add(vo);
}
@@ -107,16 +131,24 @@
@GetMapping("search-list")
@ApiOperationSupport(order = 3)
@Operation(summary = "娴佺▼鏌ヨ", description = "鏌ヨ杩涜涓殑鎵�鏈夋祦绋�")
- 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);
+ public R<IPage<FlowVO>> searchList(@Parameter(description = "娴佺▼鍚嶇О")String myProcessName, @Parameter(description = "娴佺▼鏃堕棿寮�濮�") @DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss")LocalDate createTimeBegin, @Parameter(description = "娴佺▼鍒涘缓鏃堕棿鎴")@DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss")LocalDate createTimeEnd, @Parameter(description = "鍏抽敭瀛�") String keyword, Query query) {
+ IPage<FlowVO> pages = businessService.selectSearchPage(Condition.getPage(query),myProcessName,keyword, createTimeBegin,createTimeEnd);
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);
+ public R<IPage<FlowVO>> finishedList(@Parameter(description = "娴佺▼鍚嶇О")String myProcessName, @Parameter(description = "娴佺▼鍒涘缓鏃堕棿寮�濮�") LocalDateTime createTimeBegin, @Parameter(description = "娴佺▼鍒涘缓鏃堕棿鎴") LocalDateTime createTimeEnd, @Parameter(description = "鍏抽敭瀛�") String keyword, Query query) {
+ IPage<FlowVO> pages = businessService.selectFinishedPage(Condition.getPage(query), myProcessName,keyword,createTimeBegin,createTimeEnd);
+ return R.data(pages);
+ }
+
+ @GetMapping("exception-list")
+ @ApiOperationSupport(order = 3)
+ @Operation(summary = "寮傚父娴佺▼鏌ヨ", description = "鏌ヨ宸插畬缁撶殑锛屽紓甯告祦绋�")
+ public R<IPage<FlowVO>> exceptionList(@Parameter(description = "娴佺▼鍚嶇О")String myProcessName, @Parameter(description = "娴佺▼鍒涘缓鏃堕棿寮�濮�") LocalDateTime createTimeBegin, @Parameter(description = "娴佺▼鍒涘缓鏃堕棿鎴") LocalDateTime createTimeEnd, @Parameter(description = "鍏抽敭瀛�") String keyword, Query query) {
+ IPage<FlowVO> pages = businessService.selectExceptionPage(Condition.getPage(query), myProcessName,keyword,createTimeBegin,createTimeEnd);
return R.data(pages);
}
@@ -133,21 +165,35 @@
return R.success();
}
- @PostMapping("/export-approve-table")
- @Operation(summary = "瀵煎嚭瀹℃壒琛�", description = "瀵煎嚭瀹℃壒琛╡xcel")
- public void exportApproveTable(String processInstanceId, HttpServletResponse response) {
+
+
+ @PostMapping("/export-confirm-table")
+ @Operation(summary = "瀵煎嚭纭琛�", description = "瀵煎嚭鏁版帶绋嬪簭纭琛╬df")
+ public void exportConfirmTable(String processInstanceId, HttpServletResponse response) {
try {
-
- String filename = URLEncoder.encode("鏁版帶绋嬪簭缂栧埗瀹℃壒鍗�", StandardCharsets.UTF_8)+ DateUtil.format(DateUtil.now(), "yyyyMMddHHmm")+".pdf";
-
+ FlowProgramProperties props = flowCommonService.getProgramPropertiesFromHis(processInstanceId);
+ String progName = props.getDrawingNo()+"-"+props.getProcessNo()+"-"+props.getProcessEdition();
+ String filename = UrlUtil.encode("鏁版帶绋嬪簭纭琛�"+progName)+".pdf";
response.setHeader("Content-Disposition", "attachment; filename="+filename);
response.setContentType("application/octet-stream");
- approveTableService.exportApproveTable(processInstanceId,response.getOutputStream());
+ programConfirmTableService.exportConfirmTable(props,response.getOutputStream());
} catch (Exception e) {
- log.error("瀵煎嚭瀹℃壒琛ㄥ紓甯�", e);
+ log.error("瀵煎嚭鏁版帶绋嬪簭纭琛╬df寮傚父", e);
throw new RuntimeException(e);
}
}
+
+ @GetMapping("/withdraw")
+ @Operation(summary = "鎾ゅ洖浠诲姟", description = "浠庡叾浠栦换鍔¤妭鐐圭洿鎺ユ挙鍥炵紪绋嬪憳鑺傜偣")
+ public R<Void> withdraw(String processInstanceId) {
+ try {
+ withdrawService.withdraw(processInstanceId);
+ return R.success();
+ }catch(Exception e) {
+ log.error("<UNK>", e);
+ return R.fail(e.getMessage());
+ }
+ }
}
--
Gitblit v1.9.3