From e257273b13b3376799aa607a8d6b4751fd267232 Mon Sep 17 00:00:00 2001 From: FCL Date: Tue, 18 Nov 2025 14:59:28 +0800 Subject: [PATCH 1/4] =?UTF-8?q?feat:qms=E6=A8=A1=E5=9D=97=E7=9B=91?= =?UTF-8?q?=E5=90=AC?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- zt-module-bpm/zt-module-bpm-server/pom.xml | 6 ++ .../rpc/config/RpcConfiguration.java | 3 +- .../qms/listener/QmsExecutionListener.java | 60 +++++++++++++++++++ .../service/qms/listener/QmsTaskListener.java | 43 +++++++++++++ 4 files changed, 111 insertions(+), 1 deletion(-) create mode 100644 zt-module-bpm/zt-module-bpm-server/src/main/java/com/zt/plat/module/bpm/service/qms/listener/QmsExecutionListener.java create mode 100644 zt-module-bpm/zt-module-bpm-server/src/main/java/com/zt/plat/module/bpm/service/qms/listener/QmsTaskListener.java diff --git a/zt-module-bpm/zt-module-bpm-server/pom.xml b/zt-module-bpm/zt-module-bpm-server/pom.xml index 818c707..21b79b2 100644 --- a/zt-module-bpm/zt-module-bpm-server/pom.xml +++ b/zt-module-bpm/zt-module-bpm-server/pom.xml @@ -44,6 +44,12 @@ ${business.product.version} + + + com.zt.plat + zt-module-qms-api + ${business.qms.version} + com.zt.plat diff --git a/zt-module-bpm/zt-module-bpm-server/src/main/java/com/zt/plat/module/bpm/framework/rpc/config/RpcConfiguration.java b/zt-module-bpm/zt-module-bpm-server/src/main/java/com/zt/plat/module/bpm/framework/rpc/config/RpcConfiguration.java index 6334a1a..30b7068 100644 --- a/zt-module-bpm/zt-module-bpm-server/src/main/java/com/zt/plat/module/bpm/framework/rpc/config/RpcConfiguration.java +++ b/zt-module-bpm/zt-module-bpm-server/src/main/java/com/zt/plat/module/bpm/framework/rpc/config/RpcConfiguration.java @@ -5,6 +5,7 @@ import com.zt.plat.module.capital.api.splyAmtCrdtAppl.AmountCreditApplyApi; import com.zt.plat.module.product.api.MesProcessRoutApi; import com.zt.plat.module.product.api.plan.MesCompanyPlanApi; import com.zt.plat.module.product.api.plan.MesFactoryPlanApi; +import com.zt.plat.module.qms.api.task.QmsApi; import com.zt.plat.module.system.api.dept.DeptApi; import com.zt.plat.module.system.api.dept.PostApi; import com.zt.plat.module.system.api.dict.DictDataApi; @@ -17,6 +18,6 @@ import org.springframework.context.annotation.Configuration; @Configuration(value = "bpmRpcConfiguration", proxyBeanMethods = false) @EnableFeignClients(clients = {RoleApi.class, DeptApi.class, PostApi.class, AdminUserApi.class, SmsSendApi.class, DictDataApi.class, - PermissionApi.class, AmountCreditApplyApi.class, MesProcessRoutApi.class, MesFactoryPlanApi.class, MesCompanyPlanApi.class, AmountRequestApi.class}) + PermissionApi.class, AmountCreditApplyApi.class, MesProcessRoutApi.class, MesFactoryPlanApi.class, MesCompanyPlanApi.class, AmountRequestApi.class, QmsApi.class}) public class RpcConfiguration { } 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 new file mode 100644 index 0000000..3b9ea74 --- /dev/null +++ b/zt-module-bpm/zt-module-bpm-server/src/main/java/com/zt/plat/module/bpm/service/qms/listener/QmsExecutionListener.java @@ -0,0 +1,60 @@ +package com.zt.plat.module.bpm.service.qms.listener; + +import com.alibaba.fastjson.JSONObject; +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 com.zt.plat.module.qms.enums.QmsBpmConstant; +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.RuntimeService; +import org.flowable.engine.delegate.DelegateExecution; +import org.flowable.engine.delegate.JavaDelegate; +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; + + +/** + * QMS模块执行监听 + */ +@Component +@Slf4j +public class QmsExecutionListener implements JavaDelegate { + + @Autowired + private QmsApi qmsApi; + @Resource private RuntimeService runtimeService; + + @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); + String insId = execution.getProcessInstanceId(); + String businessKey = execution.getProcessInstanceBusinessKey(); + FlowableListener listener = execution.getCurrentFlowableListener(); + List fieldExtensions = listener.getFieldExtensions(); //节点执行监听里配置的扩展字段 + String currentActivityId = execution.getCurrentActivityId(); + jsonObject.put(QmsBpmConstant.BPM_CALLBACK_ACTIVITY_ID, currentActivityId); + jsonObject.put(QmsBpmConstant.BPM_FIELD_EXTENSIONS, fieldExtensions); + QmsBpmDTO qmsBpmDTO = new QmsBpmDTO(insId, businessKey, jsonObject, ""); + Map v = runtimeService.getVariables(execution.getProcessInstanceId()); +// Object status = runtimeService.getVariable(execution.getProcessInstanceId(), WfProcessConstant.TASK_VARIABLE_PROCESS_TERMINATE); + CommonResult result = qmsApi.bpmCallback(qmsBpmDTO); + if (!result.isSuccess()) { + log.error("[QmsExecutionListener][execution({}) 回调失败!错误码:{},错误信息:{}]", execution.getId(), result.getCode(), result.getMsg()); + throw exception0(ErrorCodeConstants.ERROR_CODE_MODULE_QMS_BPM, result.getMsg()); + } + } + +} \ No newline at end of file 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 new file mode 100644 index 0000000..d9e072c --- /dev/null +++ b/zt-module-bpm/zt-module-bpm-server/src/main/java/com/zt/plat/module/bpm/service/qms/listener/QmsTaskListener.java @@ -0,0 +1,43 @@ +package com.zt.plat.module.bpm.service.qms.listener; + +import com.alibaba.fastjson.JSONObject; +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 lombok.extern.slf4j.Slf4j; +import org.flowable.engine.delegate.TaskListener; +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.Map; + +import static com.zt.plat.framework.common.exception.util.ServiceExceptionUtil.exception0; + + +/** + * QMS模块任务监听 + */ +@Component +@Slf4j +public class QmsTaskListener implements TaskListener { + @Autowired + private QmsApi qmsApi; + @Override + @Transactional(rollbackFor = Exception.class) + public void notify(DelegateTask delegateTask) { + log.info("[QmsTaskListener][delegateTask({})]", delegateTask); + String state = delegateTask.getState(); + Map variables = delegateTask.getVariables(); + JSONObject jsonObject = new JSONObject(variables); + String insId = delegateTask.getProcessInstanceId(); + QmsBpmDTO qmsBpmDTO = new QmsBpmDTO(insId, "", 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()); + } + } +} From 13d3016a539a81274cc6cdfa866eb26913cf93f6 Mon Sep 17 00:00:00 2001 From: chenbowen Date: Wed, 19 Nov 2025 14:48:09 +0800 Subject: [PATCH 2/4] =?UTF-8?q?1.=20=E5=8D=87=E7=BA=A7=E7=A7=81=E6=9C=89?= =?UTF-8?q?=E5=8C=85=E7=89=88=E6=9C=AC?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- pom.xml | 18 +++++++++--------- 1 file changed, 9 insertions(+), 9 deletions(-) diff --git a/pom.xml b/pom.xml index 6a6ddab..4d4ab7e 100644 --- a/pom.xml +++ b/pom.xml @@ -16,15 +16,15 @@ https://github.com/YunaiV/ruoyi-vue-pro - 3.0.43 - 3.0.43 - 3.0.43 - 3.0.43 - 3.0.43 - 3.0.43 - 3.0.43 - 3.0.43 - 3.0.43 + 3.0.44 + 3.0.44 + 3.0.44 + 3.0.44 + 3.0.44 + 3.0.44 + 3.0.44 + 3.0.44 + 3.0.44 17 ${java.version} From 4029beca5b3b6a352c7536ae404c73842763d670 Mon Sep 17 00:00:00 2001 From: chenbowen Date: Tue, 25 Nov 2025 09:37:44 +0800 Subject: [PATCH 3/4] =?UTF-8?q?1.=20=E5=8D=87=E7=BA=A7=E7=A7=81=E6=9C=89?= =?UTF-8?q?=E5=8C=85=E7=89=88=E6=9C=AC?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- pom.xml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/pom.xml b/pom.xml index 4d4ab7e..09f4a81 100644 --- a/pom.xml +++ b/pom.xml @@ -16,7 +16,7 @@ https://github.com/YunaiV/ruoyi-vue-pro - 3.0.44 + 3.0.45 3.0.44 3.0.44 3.0.44 From aa688680d3dacbe81f789a7cf6e604f5256b40d5 Mon Sep 17 00:00:00 2001 From: chenbowen Date: Tue, 25 Nov 2025 09:54:36 +0800 Subject: [PATCH 4/4] =?UTF-8?q?1.=20=E4=BF=AE=E5=A4=8D=E5=8D=87=E7=BA=A7?= =?UTF-8?q?=E7=A7=81=E6=9C=89=E5=8C=85=E7=89=88=E6=9C=AC=E9=94=99=E8=AF=AF?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- pom.xml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/pom.xml b/pom.xml index 09f4a81..6553a84 100644 --- a/pom.xml +++ b/pom.xml @@ -16,7 +16,7 @@ https://github.com/YunaiV/ruoyi-vue-pro - 3.0.45 + 3.0.45 3.0.44 3.0.44 3.0.44