From 5cd0e50ccbc6e10dd4e488d8b4106e82fb676521 Mon Sep 17 00:00:00 2001
From: xiangpei <xiangpei@timesnew.cn>
Date: 星期二, 10 十二月 2024 14:22:36 +0800
Subject: [PATCH] 查询任务是否需要审核接口完善
---
flowable/src/main/java/com/ycl/common/constant/ProcessConstants.java | 8 ++++
business/src/main/java/com/ycl/service/impl/ProjectProcessServiceImpl.java | 36 +++++++++---------
flowable/src/main/java/com/ycl/service/common/TaskCommonService.java | 27 +++++++++++++
3 files changed, 53 insertions(+), 18 deletions(-)
diff --git a/business/src/main/java/com/ycl/service/impl/ProjectProcessServiceImpl.java b/business/src/main/java/com/ycl/service/impl/ProjectProcessServiceImpl.java
index cc5d7b9..984dd4e 100644
--- a/business/src/main/java/com/ycl/service/impl/ProjectProcessServiceImpl.java
+++ b/business/src/main/java/com/ycl/service/impl/ProjectProcessServiceImpl.java
@@ -29,6 +29,7 @@
import com.ycl.domain.form.ProjectProcessForm;
import com.ycl.domain.vo.ProjectProcessVO;
import com.ycl.domain.query.ProjectProcessQuery;
+import com.ycl.service.common.TaskCommonService;
import com.ycl.system.service.ISysDeptService;
import com.ycl.system.service.ISysRoleService;
import com.ycl.system.service.ISysUserService;
@@ -78,6 +79,7 @@
private final ISysUserService sysUserService;
private final ISysRoleService sysRoleService;
private final ISysDeptService sysDeptService;
+ private final TaskCommonService taskCommonService;
/**
* 鍒嗛〉鏌ヨ
@@ -113,14 +115,16 @@
if (Objects.nonNull(pp.getProcessInsId())) {
HistoricProcessInstance historicProcessInstance =
historyService.createHistoricProcessInstanceQuery().processInstanceId(pp.getProcessInsId()).singleResult();
- // 鍒犻櫎涔嬪墠娴佺▼鐨勬暟鎹�
- if (historicProcessInstance.getEndTime() != null) {
- historyService.deleteHistoricProcessInstance(historicProcessInstance.getId());
- } else {
- // 鍒犻櫎娴佺▼瀹炰緥
- runtimeService.deleteProcessInstance(pp.getProcessInsId(), "");
- // 鍒犻櫎鍘嗗彶娴佺▼瀹炰緥
- historyService.deleteHistoricProcessInstance(pp.getProcessInsId());
+ if (Objects.nonNull(historicProcessInstance)) {
+ // 鍒犻櫎涔嬪墠娴佺▼鐨勬暟鎹�
+ if (historicProcessInstance.getEndTime() != null) {
+ historyService.deleteHistoricProcessInstance(historicProcessInstance.getId());
+ } else {
+ // 鍒犻櫎娴佺▼瀹炰緥
+ runtimeService.deleteProcessInstance(pp.getProcessInsId(), "");
+ // 鍒犻櫎鍘嗗彶娴佺▼瀹炰緥
+ historyService.deleteHistoricProcessInstance(pp.getProcessInsId());
+ }
}
}
String processInsId = this.startPro(form.getProjectId(), form.getProcessDefId());
@@ -341,26 +345,22 @@
@Override
public Result taskIsAuditing(String processDefinitionId, String taskId) {
+ Task task = taskService.createTaskQuery().taskId(taskId).singleResult();
BpmnModel bpmnModel = repositoryService.getBpmnModel(processDefinitionId);
Collection<Process> processes = bpmnModel.getProcesses();
+ Boolean needAuditing = Boolean.FALSE;
for (Process process : processes) {
Collection<FlowElement> flowElements = process.getFlowElements();
for (FlowElement flowElement : flowElements) {
- if (flowElement instanceof UserTask) {
+ if (flowElement instanceof UserTask && flowElement.getId().equals(task.getTaskDefinitionKey())) {
UserTask userTask = (UserTask) flowElement;
- List<ExtensionElement> extensionElements = userTask.getExtensionElements().get("flowable:properties");
- if (! CollectionUtils.isEmpty(extensionElements)) {
- for (ExtensionElement extensionElement : extensionElements) {
- String fieldName = extensionElement.getAttributeValue(taskId,"name");
- String fieldValue = extensionElement.getAttributeValue(taskId,"value");
- System.out.println("Field Name: " + fieldName + ", Field Value: " + fieldValue);
- }
- }
+ needAuditing = taskCommonService.checkTaskNeedAuditing(userTask.getExtensionElements().get("properties"));
+ break;
}
}
}
- return null;
+ return Result.ok().data(needAuditing);
}
/**
diff --git a/flowable/src/main/java/com/ycl/common/constant/ProcessConstants.java b/flowable/src/main/java/com/ycl/common/constant/ProcessConstants.java
index 173a8d6..1a9fadb 100644
--- a/flowable/src/main/java/com/ycl/common/constant/ProcessConstants.java
+++ b/flowable/src/main/java/com/ycl/common/constant/ProcessConstants.java
@@ -90,4 +90,12 @@
public static final String WIDGET_LIST = "widgetList";
+ /**
+ * 鎵╁睍灞炴�т腑鐨勶細鑺傜偣鏄惁瀹℃壒
+ *
+ */
+ public static final String EXTENSION_PROPERTY_NEED_AUDITING_TEXT = "璇ヨ妭鐐规槸瀹℃壒鑺傜偣";
+ public static final String EXTENSION_PROPERTY_NEED_AUDITING_VALUE = "鏄�";
+
+
}
diff --git a/flowable/src/main/java/com/ycl/service/common/TaskCommonService.java b/flowable/src/main/java/com/ycl/service/common/TaskCommonService.java
index f95cdaf..c02b5f4 100644
--- a/flowable/src/main/java/com/ycl/service/common/TaskCommonService.java
+++ b/flowable/src/main/java/com/ycl/service/common/TaskCommonService.java
@@ -146,4 +146,31 @@
// }
}
+ /**
+ * 妫�鏌ヤ换鍔¤妭鐐规槸鍚﹂厤缃簡锛氶渶瑕佸鏍� 鐨勬墿灞曞睘鎬�
+ *
+ * @param extensionElements 鎵╁睍鍒楄〃
+ * @return
+ */
+ public Boolean checkTaskNeedAuditing(List<ExtensionElement> extensionElements) {
+ if (CollectionUtils.isEmpty(extensionElements)) {
+ return Boolean.FALSE;
+ }
+ for (ExtensionElement extensionElement : extensionElements) {
+ if (CollectionUtils.isEmpty(extensionElement.getAttributes())) { // 濡傛灉鏈韩娌℃湁灞炴�э紝鍒欓�掑綊child
+ return checkTaskNeedAuditing(extensionElement.getChildElements().get("property"));
+ } else {
+ // 鍚﹀垯鍏堟煡鏈韩鐨勫睘鎬ф湁涓嶆湁锛氶渶瑕佸鏍� 鐨勫睘鎬э紝娌℃湁涔熸槸閫掑綊child
+ if (extensionElement.getAttributes().get("name").stream().anyMatch(attribute -> ProcessConstants.EXTENSION_PROPERTY_NEED_AUDITING_TEXT.equals(attribute.getValue()))
+ && extensionElement.getAttributes().get("value").stream().anyMatch(attribute -> ProcessConstants.EXTENSION_PROPERTY_NEED_AUDITING_VALUE.equals(attribute.getValue()))
+ ) {
+ return Boolean.TRUE;
+ } else {
+ return checkTaskNeedAuditing(extensionElement.getChildElements().get("property"));
+ }
+ }
+ }
+ return Boolean.FALSE;
+ }
+
}
--
Gitblit v1.8.0