From b1920b7b476925ba8c3e5689f9ff6fb23582f76f Mon Sep 17 00:00:00 2001
From: qianshijiang <1965297290@qq.com>
Date: Wed, 26 Nov 2025 08:58:10 +0800
Subject: [PATCH 1/5] =?UTF-8?q?nacos=E9=85=8D=E7=BD=AE?=
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
---
pom.xml | 7 +++++++
1 file changed, 7 insertions(+)
diff --git a/pom.xml b/pom.xml
index 18b5f7e..4a045c7 100644
--- a/pom.xml
+++ b/pom.xml
@@ -269,7 +269,14 @@
qsj
+ dev
+
+ 172.16.46.63:30848
qsj
+ DEFAULT_GROUP
+ nacos
+ P@ssword25
+ 1.0.0
From 3e88f2a647ee329e573fe36dcf76c7c0247afcf6 Mon Sep 17 00:00:00 2001
From: qianshijiang <1965297290@qq.com>
Date: Wed, 26 Nov 2025 10:36:46 +0800
Subject: [PATCH 2/5] =?UTF-8?q?=E6=97=A5=E5=BF=97=E9=85=8D=E7=BD=AE?=
=?UTF-8?q?=E4=BF=AE=E6=94=B9?=
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
---
.../src/main/resources/logback-spring.xml | 5 +++--
1 file changed, 3 insertions(+), 2 deletions(-)
diff --git a/zt-module-bpm/zt-module-bpm-server/src/main/resources/logback-spring.xml b/zt-module-bpm/zt-module-bpm-server/src/main/resources/logback-spring.xml
index 0e55141..04edf95 100644
--- a/zt-module-bpm/zt-module-bpm-server/src/main/resources/logback-spring.xml
+++ b/zt-module-bpm/zt-module-bpm-server/src/main/resources/logback-spring.xml
@@ -56,9 +56,10 @@
+
-
-
+
+
From c327678aa44e9ca2a216362cce69b2c0d05b7263 Mon Sep 17 00:00:00 2001
From: qianshijiang <1965297290@qq.com>
Date: Wed, 26 Nov 2025 15:35:26 +0800
Subject: [PATCH 3/5] =?UTF-8?q?=E9=94=99=E8=AF=AF=E4=BF=A1=E6=81=AF?=
=?UTF-8?q?=E6=9C=AA=E8=AE=B0=E5=BD=95=E6=97=A5=E5=BF=97=E6=96=87=E4=BB=B6?=
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
---
.../src/main/resources/logback-spring.xml | 28 +++++++++++++++++++
1 file changed, 28 insertions(+)
diff --git a/zt-module-bpm/zt-module-bpm-server/src/main/resources/logback-spring.xml b/zt-module-bpm/zt-module-bpm-server/src/main/resources/logback-spring.xml
index 04edf95..59742b8 100644
--- a/zt-module-bpm/zt-module-bpm-server/src/main/resources/logback-spring.xml
+++ b/zt-module-bpm/zt-module-bpm-server/src/main/resources/logback-spring.xml
@@ -5,6 +5,10 @@
+
+
+
+
@@ -56,19 +60,43 @@
+
+
+ ${LOG_FILE}-error.log
+
+ ERROR
+ ACCEPT
+ DENY
+
+
+ ${LOG_FILE}-error.%d{yyyy-MM-dd}.log
+ 30
+
+
+ %d{yyyy-MM-dd HH:mm:ss} [%thread] %-5level %logger{36} - %msg%n
+
+
+
+
+
+
+
+
+
+
From b3b324e0d9cc3cd965b79186899624e5696eba70 Mon Sep 17 00:00:00 2001
From: qianshijiang <1965297290@qq.com>
Date: Wed, 26 Nov 2025 15:45:14 +0800
Subject: [PATCH 4/5] =?UTF-8?q?=E9=94=99=E8=AF=AF=E4=BF=A1=E6=81=AF?=
=?UTF-8?q?=E6=9C=AA=E8=AE=B0=E5=BD=95=E6=97=A5=E5=BF=97=E6=96=87=E4=BB=B6?=
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
---
.../src/main/resources/logback-spring.xml | 6 +++---
1 file changed, 3 insertions(+), 3 deletions(-)
diff --git a/zt-module-bpm/zt-module-bpm-server/src/main/resources/logback-spring.xml b/zt-module-bpm/zt-module-bpm-server/src/main/resources/logback-spring.xml
index 59742b8..590fafc 100644
--- a/zt-module-bpm/zt-module-bpm-server/src/main/resources/logback-spring.xml
+++ b/zt-module-bpm/zt-module-bpm-server/src/main/resources/logback-spring.xml
@@ -8,7 +8,7 @@
-
+
@@ -62,14 +62,14 @@
- ${LOG_FILE}-error.log
+ ${LOG_DIR}-error.log
ERROR
ACCEPT
DENY
- ${LOG_FILE}-error.%d{yyyy-MM-dd}.log
+ ${LOG_DIR}-error.%d{yyyy-MM-dd}.log
30
From f16243441e20d30834e6a14ac0f66f84798f581a Mon Sep 17 00:00:00 2001
From: FCL
Date: Tue, 23 Dec 2025 09:34:58 +0800
Subject: [PATCH 5/5] =?UTF-8?q?fix:qms=E6=A8=A1=E5=9D=97=E7=9B=91=E5=90=AC?=
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
---
.../qms/listener/QmsExecutionListener.java | 22 +++++++--
.../service/qms/listener/QmsTaskListener.java | 47 +++++++++++++++++--
2 files changed, 61 insertions(+), 8 deletions(-)
diff --git a/zt-module-bpm/zt-module-bpm-server/src/main/java/com/zt/plat/module/bpm/service/qms/listener/QmsExecutionListener.java b/zt-module-bpm/zt-module-bpm-server/src/main/java/com/zt/plat/module/bpm/service/qms/listener/QmsExecutionListener.java
index 3b9ea74..748a941 100644
--- a/zt-module-bpm/zt-module-bpm-server/src/main/java/com/zt/plat/module/bpm/service/qms/listener/QmsExecutionListener.java
+++ b/zt-module-bpm/zt-module-bpm-server/src/main/java/com/zt/plat/module/bpm/service/qms/listener/QmsExecutionListener.java
@@ -10,9 +10,11 @@ import jakarta.annotation.Resource;
import lombok.extern.slf4j.Slf4j;
import org.flowable.bpmn.model.FieldExtension;
import org.flowable.bpmn.model.FlowableListener;
+import org.flowable.engine.HistoryService;
import org.flowable.engine.RuntimeService;
import org.flowable.engine.delegate.DelegateExecution;
import org.flowable.engine.delegate.JavaDelegate;
+import org.flowable.engine.history.HistoricActivityInstance;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Component;
import org.springframework.transaction.annotation.Transactional;
@@ -33,14 +35,28 @@ public class QmsExecutionListener implements JavaDelegate {
@Autowired
private QmsApi qmsApi;
@Resource private RuntimeService runtimeService;
+ @Resource private HistoryService historyService;
@Override
@Transactional(rollbackFor = Exception.class)
public void execute(DelegateExecution execution) {
- log.info("[QmsExecutionListener][execution({}) 被调用!变量有:{}]", execution.getId(), execution.getCurrentFlowableListener().getFieldExtensions());
- Map variables = execution.getVariables();
- JSONObject jsonObject = new JSONObject(variables);
+// log.info("[QmsExecutionListener][execution({}) 被调用!变量有:{}]", execution.getId(), execution.getCurrentFlowableListener().getFieldExtensions());
String insId = execution.getProcessInstanceId();
+ Map variables = execution.getVariables();
+ String activityId = execution.getCurrentActivityId();
+
+ List instances = historyService.createHistoricActivityInstanceQuery()
+ .processInstanceId(insId)
+ .activityId(activityId)
+ .orderByHistoricActivityInstanceStartTime().desc()
+ .list();
+ String currentActivityInsId = "";
+ if(instances != null && !instances.isEmpty())
+ currentActivityInsId = instances.get(0).getId();
+ variables.put("currentActivityInsId", currentActivityInsId);
+ variables.put("processInstanceId", insId);
+ JSONObject jsonObject = new JSONObject(variables);
+// log.error("============[QmsExecutionListener][execution({})] 参数有:{}", execution.getId(), JSONObject.toJSONString(variables));
String businessKey = execution.getProcessInstanceBusinessKey();
FlowableListener listener = execution.getCurrentFlowableListener();
List fieldExtensions = listener.getFieldExtensions(); //节点执行监听里配置的扩展字段
diff --git a/zt-module-bpm/zt-module-bpm-server/src/main/java/com/zt/plat/module/bpm/service/qms/listener/QmsTaskListener.java b/zt-module-bpm/zt-module-bpm-server/src/main/java/com/zt/plat/module/bpm/service/qms/listener/QmsTaskListener.java
index d9e072c..c9d609d 100644
--- a/zt-module-bpm/zt-module-bpm-server/src/main/java/com/zt/plat/module/bpm/service/qms/listener/QmsTaskListener.java
+++ b/zt-module-bpm/zt-module-bpm-server/src/main/java/com/zt/plat/module/bpm/service/qms/listener/QmsTaskListener.java
@@ -5,13 +5,18 @@ import com.zt.plat.framework.common.pojo.CommonResult;
import com.zt.plat.module.qms.api.task.QmsApi;
import com.zt.plat.module.qms.api.task.dto.QmsBpmDTO;
import com.zt.plat.module.qms.enums.ErrorCodeConstants;
+import jakarta.annotation.Resource;
import lombok.extern.slf4j.Slf4j;
+import org.flowable.engine.HistoryService;
+import org.flowable.engine.RuntimeService;
import org.flowable.engine.delegate.TaskListener;
+import org.flowable.engine.history.HistoricActivityInstance;
import org.flowable.task.service.delegate.DelegateTask;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Component;
import org.springframework.transaction.annotation.Transactional;
+import java.util.List;
import java.util.Map;
import static com.zt.plat.framework.common.exception.util.ServiceExceptionUtil.exception0;
@@ -23,21 +28,53 @@ import static com.zt.plat.framework.common.exception.util.ServiceExceptionUtil.e
@Component
@Slf4j
public class QmsTaskListener implements TaskListener {
- @Autowired
- private QmsApi qmsApi;
+ @Autowired private QmsApi qmsApi;
+ @Resource private RuntimeService runtimeService;
+ @Resource private HistoryService historyService;
+
+
@Override
@Transactional(rollbackFor = Exception.class)
public void notify(DelegateTask delegateTask) {
- log.info("[QmsTaskListener][delegateTask({})]", delegateTask);
+// log.info("[QmsTaskListener][delegateTask({})]", delegateTask);
String state = delegateTask.getState();
Map variables = delegateTask.getVariables();
+ String processInsId = delegateTask.getProcessInstanceId();
+ String activityId = delegateTask.getTaskDefinitionKey();
+ String currentActivityInsId = "";
+ List instances = historyService.createHistoricActivityInstanceQuery()
+ .processInstanceId(processInsId)
+ .activityId(activityId)
+ .orderByHistoricActivityInstanceStartTime().desc()
+ .list();
+ if(instances != null && !instances.isEmpty())
+ currentActivityInsId = instances.get(0).getId();
+ variables.put("currentActivityInsId", currentActivityInsId);
+ variables.put("processInstanceId", processInsId);
+
+ String rejectToFirstActivity = checkFirstActivityReject(activityId, instances);
+
+ //todo 判断退回
+ Map execVariables = runtimeService.getVariables(delegateTask.getExecutionId());
+ variables.put("rejectToFirstActivity", rejectToFirstActivity);
+// log.error("================[QmsTaskListener][delegateTask({})] 参数有:{}", delegateTask.getId(), JSONObject.toJSONString(variables));
JSONObject jsonObject = new JSONObject(variables);
- String insId = delegateTask.getProcessInstanceId();
- QmsBpmDTO qmsBpmDTO = new QmsBpmDTO(insId, "", jsonObject, state);
+ QmsBpmDTO qmsBpmDTO = new QmsBpmDTO(processInsId, "", jsonObject, state);
CommonResult result = qmsApi.bpmCallback(qmsBpmDTO);
if (!result.isSuccess()) {
log.error("[QmsExecutionListener][execution({}) 回调失败!错误码:{},错误信息:{}]", delegateTask.getId(), result.getCode(), result.getMsg());
throw exception0(ErrorCodeConstants.ERROR_CODE_MODULE_QMS_BPM, result.getMsg());
}
}
+
+ /*
+ * 判断是否退回发起节点
+ * */
+ private String checkFirstActivityReject(String activityId, List instances){
+ if(!activityId.contains("001"))
+ return "0";
+ if(instances == null || instances.isEmpty())
+ return "0";
+ return "1";
+ }
}