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 748a941..afb3e12 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 @@ -2,6 +2,7 @@ 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.bpm.service.task.BpmTaskService; 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; @@ -15,10 +16,12 @@ 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.flowable.task.api.history.HistoricTaskInstance; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Component; import org.springframework.transaction.annotation.Transactional; +import java.util.HashMap; import java.util.List; import java.util.Map; @@ -36,6 +39,7 @@ public class QmsExecutionListener implements JavaDelegate { private QmsApi qmsApi; @Resource private RuntimeService runtimeService; @Resource private HistoryService historyService; + @Resource private BpmTaskService taskService; @Override @Transactional(rollbackFor = Exception.class) @@ -50,9 +54,20 @@ public class QmsExecutionListener implements JavaDelegate { .activityId(activityId) .orderByHistoricActivityInstanceStartTime().desc() .list(); + List taskList = taskService.getTaskListByProcessInstanceId(insId, false); + //获取审批意见 + Map taskVariables = new HashMap<>(); + if(!taskList.isEmpty()){ + HistoricTaskInstance task = taskList.get(0); + taskVariables = task.getTaskLocalVariables(); + } + String currentActivityInsId = ""; - if(instances != null && !instances.isEmpty()) + String currentActivityName = ""; + if(instances != null && !instances.isEmpty()){ currentActivityInsId = instances.get(0).getId(); + currentActivityName = instances.get(0).getActivityName(); + } variables.put("currentActivityInsId", currentActivityInsId); variables.put("processInstanceId", insId); JSONObject jsonObject = new JSONObject(variables); @@ -62,7 +77,9 @@ public class QmsExecutionListener implements JavaDelegate { List fieldExtensions = listener.getFieldExtensions(); //节点执行监听里配置的扩展字段 String currentActivityId = execution.getCurrentActivityId(); jsonObject.put(QmsBpmConstant.BPM_CALLBACK_ACTIVITY_ID, currentActivityId); + jsonObject.put("bpmCallbackActivityName", currentActivityName); jsonObject.put(QmsBpmConstant.BPM_FIELD_EXTENSIONS, fieldExtensions); + jsonObject.put("taskVariables", taskVariables); QmsBpmDTO qmsBpmDTO = new QmsBpmDTO(insId, businessKey, jsonObject, ""); Map v = runtimeService.getVariables(execution.getProcessInstanceId()); // Object status = runtimeService.getVariable(execution.getProcessInstanceId(), WfProcessConstant.TASK_VARIABLE_PROCESS_TERMINATE);