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());
+ }
+ }
+}