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"; + } }