From e1c5c27a41e2410c0689b70319488c16d2e4fd51 Mon Sep 17 00:00:00 2001
From: yangys <y_ys79@sina.com>
Date: 星期六, 06 九月 2025 21:13:08 +0800
Subject: [PATCH] 增加组长取回功能
---
blade-service/blade-mdm/src/main/java/org/springblade/mdm/flow/vo/FlowVO.java | 4 ++
blade-service/blade-mdm/src/main/java/org/springblade/mdm/statreport/utils/WordReplaceUtil.java | 28 +++++++++-----
blade-service/blade-mdm/src/main/java/org/springblade/mdm/flow/service/DoneQueryService.java | 26 +-----------
blade-service/blade-mdm/src/main/java/org/springblade/mdm/flow/service/WIthdrawService.java | 30 +++++++--------
blade-service/blade-mdm/src/main/java/org/springblade/mdm/flow/controller/FlowMgrController.java | 12 ++++++
5 files changed, 51 insertions(+), 49 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 89f11f7..ee7bdf9 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
@@ -196,4 +196,16 @@
return R.fail(e.getMessage());
}
}
+
+ @GetMapping("/takeback")
+ @Operation(summary = "缁勯暱鍙栧洖", description = "浠庡叾浠栦换鍔¤妭鐐圭洿鎺ユ挙鍥炲埌缁勯暱娲惧伐鑺傜偣")
+ public R<Void> takeback(String processInstanceId) {
+ try {
+ withdrawService.takeBackToDispatch(processInstanceId);
+ return R.success();
+ }catch(Exception e) {
+ log.error("<UNK>", e);
+ return R.fail(e.getMessage());
+ }
+ }
}
diff --git a/blade-service/blade-mdm/src/main/java/org/springblade/mdm/flow/service/DoneQueryService.java b/blade-service/blade-mdm/src/main/java/org/springblade/mdm/flow/service/DoneQueryService.java
index 389f3cb..c4a1760 100644
--- a/blade-service/blade-mdm/src/main/java/org/springblade/mdm/flow/service/DoneQueryService.java
+++ b/blade-service/blade-mdm/src/main/java/org/springblade/mdm/flow/service/DoneQueryService.java
@@ -4,35 +4,19 @@
import com.baomidou.mybatisplus.core.metadata.IPage;
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.flowable.engine.history.HistoricProcessInstanceQuery;
-import org.flowable.engine.task.Comment;
import org.flowable.task.api.Task;
import org.flowable.task.api.TaskInfo;
-import org.flowable.task.api.TaskInfoQuery;
-import org.flowable.task.api.TaskQuery;
-import org.flowable.task.api.history.HistoricTaskInstance;
-import org.flowable.task.api.history.HistoricTaskInstanceQuery;
import org.springblade.core.mp.support.Condition;
import org.springblade.core.secure.utils.AuthUtil;
-import org.springblade.core.tool.api.R;
-import org.springblade.core.tool.utils.DateUtil;
import org.springblade.core.tool.utils.Func;
-import org.springblade.mdm.flow.constants.FlowContants;
import org.springblade.mdm.flow.entity.FlowProgramFile;
-import org.springblade.mdm.flow.entity.MdmFlowProcess;
import org.springblade.mdm.flow.mapper.DoneMapper;
-import org.springblade.mdm.flow.util.MdmFlowCache;
import org.springblade.mdm.flow.vo.DoneQueryVO;
import org.springblade.mdm.flow.vo.FlowVO;
-import org.springblade.system.feign.IUserClient;
-import org.springblade.system.pojo.entity.User;
import org.springframework.stereotype.Service;
-import java.time.LocalDate;
-import java.time.LocalDateTime;
import java.util.*;
import java.util.stream.Collectors;
@@ -51,11 +35,7 @@
private final TaskService taskService;
/**
* 鏌ヨ鐢ㄦ埛宸插姙浠诲姟鍒嗛〉鍒楄〃
- * @param page
- * @param s
- * @param createTimeBegin
- * @param createTimeEnd
- * @param keyword
+ * @param queryVO 鏌ヨ鍙傛暟
* @return
*/
//public IPage<FlowVO> selectDonePage(IPage<FlowVO> page, LocalDateTime createTimeBegin, LocalDateTime createTimeEnd, String keyword) {
@@ -82,8 +62,8 @@
boolean active = flowCommonService.isProcessInstanceActive(flowVO.getProcessInstanceId());
flowVO.setProcessIsFinished((Func.toStr(!active)));
*/
- if(Func.toBoolean(flowVO.getProcessIsFinished())){
- flowVO.setFlag(getCurrentTaskDefKeys(flowVO.getProcessInstanceId()));
+ if(!Func.toBoolean(flowVO.getProcessIsFinished())){
+ flowVO.setCurrentTaskKeys(getCurrentTaskDefKeys(flowVO.getProcessInstanceId()));
}
});
}
diff --git a/blade-service/blade-mdm/src/main/java/org/springblade/mdm/flow/service/WIthdrawService.java b/blade-service/blade-mdm/src/main/java/org/springblade/mdm/flow/service/WIthdrawService.java
index 85526e3..177b64e 100644
--- a/blade-service/blade-mdm/src/main/java/org/springblade/mdm/flow/service/WIthdrawService.java
+++ b/blade-service/blade-mdm/src/main/java/org/springblade/mdm/flow/service/WIthdrawService.java
@@ -5,7 +5,9 @@
import org.flowable.engine.repository.ProcessDefinition;
import org.flowable.engine.runtime.ProcessInstance;
import org.flowable.task.api.Task;
+import org.springblade.core.launch.constant.FlowConstant;
import org.springblade.core.secure.utils.AuthUtil;
+import org.springblade.mdm.flow.constants.FlowContants;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import org.springframework.transaction.annotation.Transactional;
@@ -45,23 +47,7 @@
String taskId = getCurrentTaskIdByProcessInstanceId(processInstanceId);
backWithAssigneeService.backToTaskWithNewAssignee(taskId,targetActivityId,targetAssignee,"娴佺▼鎾ゅ洖",new HashMap<>());
}
-/*
- String getprocessDefinitionKey(String processInstanceId){
- Task task = taskService.createTaskQuery()
- .taskId(taskId)
- .singleResult();
- ProcessDefinition processDefinition = repositoryService.createProcessDefinitionQuery()
- .processDefinitionId(task.getProcessDefinitionId())
- .singleResult();
-
- String taskId = getCurrentTaskIdByProcessInstanceId(processInstanceId);
- if (processDefinition == null) {
- throw new RuntimeException("娴佺▼瀹氫箟涓嶅瓨鍦紝processDefinitionId: " + task.getProcessDefinitionId());
- }
-
- return processDefinition.getKey();
- }*/
public String getCurrentTaskIdByProcessInstanceId(String processInstanceId) {
Optional<String> optTaskId = taskService.createTaskQuery()
@@ -96,6 +82,18 @@
return processDefinition.getKey();
}
+
+ /**
+ * 鍙栧洖鍒扮粍闀挎淳宸�
+ * @param processInstanceId
+ */
+ public void takeBackToDispatch(String processInstanceId) {
+ String targetAssignee = ""+AuthUtil.getUserId();
+
+ final String targetActivityId = "teamLeaderTask";//缁勯暱娲惧伐
+ String taskId = getCurrentTaskIdByProcessInstanceId(processInstanceId);
+ backWithAssigneeService.backToTaskWithNewAssignee(taskId,targetActivityId,targetAssignee,"缁勯暱鍙栧洖",new HashMap<>());
+ }
}
diff --git a/blade-service/blade-mdm/src/main/java/org/springblade/mdm/flow/vo/FlowVO.java b/blade-service/blade-mdm/src/main/java/org/springblade/mdm/flow/vo/FlowVO.java
index ada241f..a03f7cd 100644
--- a/blade-service/blade-mdm/src/main/java/org/springblade/mdm/flow/vo/FlowVO.java
+++ b/blade-service/blade-mdm/src/main/java/org/springblade/mdm/flow/vo/FlowVO.java
@@ -167,6 +167,10 @@
*/
private String flag;
/**
+ * 鏄惁閫氳繃浠e彿
+ */
+ private String currentTaskKeys;
+ /**
* 寮�濮嬫煡璇㈡棩鏈�
*/
private Date beginDate;
diff --git a/blade-service/blade-mdm/src/main/java/org/springblade/mdm/statreport/utils/WordReplaceUtil.java b/blade-service/blade-mdm/src/main/java/org/springblade/mdm/statreport/utils/WordReplaceUtil.java
index 3711446..ef7ba66 100644
--- a/blade-service/blade-mdm/src/main/java/org/springblade/mdm/statreport/utils/WordReplaceUtil.java
+++ b/blade-service/blade-mdm/src/main/java/org/springblade/mdm/statreport/utils/WordReplaceUtil.java
@@ -50,6 +50,9 @@
for (Map.Entry<String, String> entry : data.entrySet()) {
String placeholder = entry.getKey();
String replacement = entry.getValue();
+ if(replacement==null) {
+ replacement = "";
+ }
if (text.contains(placeholder)) {
text = text.replace(placeholder, replacement);
run.setText(text, 0);
@@ -68,12 +71,14 @@
for (Map.Entry<String, String> entry : data.entrySet()) {
String placeholder = entry.getKey();
String replacement = entry.getValue();
- if(replacement!=null) {
- if (text.contains(placeholder)) {
- text = text.replace(placeholder, replacement);
- run.setText(text, 0);
- }
+ if(replacement==null) {
+ replacement = "";
}
+ if (text.contains(placeholder)) {
+ text = text.replace(placeholder, replacement);
+ run.setText(text, 0);
+ }
+
}
}
}
@@ -96,12 +101,15 @@
for (Map.Entry<String, String> entry : data.entrySet()) {
String placeholder = entry.getKey();
String replacement = entry.getValue();
- if(replacement!=null) {
- if (text.contains(placeholder)) {
- text = text.replace(placeholder, replacement);
- run.setText(text, 0);
- }
+ if(replacement==null) {
+ replacement = "";
}
+
+ if (text.contains(placeholder)) {
+ text = text.replace(placeholder, replacement);
+ run.setText(text, 0);
+ }
+
}
}
}
--
Gitblit v1.9.3