feat:qms模块监听
This commit is contained in:
@@ -44,6 +44,12 @@
|
|||||||
<version>${business.product.version}</version>
|
<version>${business.product.version}</version>
|
||||||
</dependency>
|
</dependency>
|
||||||
|
|
||||||
|
<!-- qms模块api-->
|
||||||
|
<dependency>
|
||||||
|
<groupId>com.zt.plat</groupId>
|
||||||
|
<artifactId>zt-module-qms-api</artifactId>
|
||||||
|
<version>${business.qms.version}</version>
|
||||||
|
</dependency>
|
||||||
<!-- 业务组件 -->
|
<!-- 业务组件 -->
|
||||||
<dependency>
|
<dependency>
|
||||||
<groupId>com.zt.plat</groupId>
|
<groupId>com.zt.plat</groupId>
|
||||||
|
|||||||
@@ -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.MesProcessRoutApi;
|
||||||
import com.zt.plat.module.product.api.plan.MesCompanyPlanApi;
|
import com.zt.plat.module.product.api.plan.MesCompanyPlanApi;
|
||||||
import com.zt.plat.module.product.api.plan.MesFactoryPlanApi;
|
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.DeptApi;
|
||||||
import com.zt.plat.module.system.api.dept.PostApi;
|
import com.zt.plat.module.system.api.dept.PostApi;
|
||||||
import com.zt.plat.module.system.api.dict.DictDataApi;
|
import com.zt.plat.module.system.api.dict.DictDataApi;
|
||||||
@@ -17,6 +18,6 @@ import org.springframework.context.annotation.Configuration;
|
|||||||
|
|
||||||
@Configuration(value = "bpmRpcConfiguration", proxyBeanMethods = false)
|
@Configuration(value = "bpmRpcConfiguration", proxyBeanMethods = false)
|
||||||
@EnableFeignClients(clients = {RoleApi.class, DeptApi.class, PostApi.class, AdminUserApi.class, SmsSendApi.class, DictDataApi.class,
|
@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 {
|
public class RpcConfiguration {
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -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<String, Object> variables = execution.getVariables();
|
||||||
|
JSONObject jsonObject = new JSONObject(variables);
|
||||||
|
String insId = execution.getProcessInstanceId();
|
||||||
|
String businessKey = execution.getProcessInstanceBusinessKey();
|
||||||
|
FlowableListener listener = execution.getCurrentFlowableListener();
|
||||||
|
List<FieldExtension> 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<String, Object> v = runtimeService.getVariables(execution.getProcessInstanceId());
|
||||||
|
// Object status = runtimeService.getVariable(execution.getProcessInstanceId(), WfProcessConstant.TASK_VARIABLE_PROCESS_TERMINATE);
|
||||||
|
CommonResult<JSONObject> 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());
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
||||||
@@ -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<String, Object> variables = delegateTask.getVariables();
|
||||||
|
JSONObject jsonObject = new JSONObject(variables);
|
||||||
|
String insId = delegateTask.getProcessInstanceId();
|
||||||
|
QmsBpmDTO qmsBpmDTO = new QmsBpmDTO(insId, "", jsonObject, state);
|
||||||
|
CommonResult<JSONObject> 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());
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
Reference in New Issue
Block a user