diff --git a/jeecg-boot-platform/jeecg-boot-module-bpm-flowable/src/main/java/org/jeecg/modules/extbpm/process/controller/ExtActProcessNodeController.java b/jeecg-boot-platform/jeecg-boot-module-bpm-flowable/src/main/java/org/jeecg/modules/extbpm/process/controller/ExtActProcessNodeController.java index 9dbddda..966df5b 100644 --- a/jeecg-boot-platform/jeecg-boot-module-bpm-flowable/src/main/java/org/jeecg/modules/extbpm/process/controller/ExtActProcessNodeController.java +++ b/jeecg-boot-platform/jeecg-boot-module-bpm-flowable/src/main/java/org/jeecg/modules/extbpm/process/controller/ExtActProcessNodeController.java @@ -46,6 +46,11 @@ import java.util.stream.Stream; @RequestMapping("/act/process/extActProcessNode") @Slf4j public class ExtActProcessNodeController { + private static final String BUSINESS_ID = "business_id"; + private static final String BUSINESS_TABLE_NAME = "business_tablename"; + private static final String BUSINESS_ID_CAMEL = "businessId"; + private static final String BUSINESS_TABLE_NAME_CAMEL = "businessTablename"; + @Autowired private IExtActProcessNodeService extActProcessNodeService; @Autowired @@ -359,9 +364,20 @@ public class ExtActProcessNodeController { String formUrlMobile = activitiService.getHisVarinst(WorkFlowGlobals.BPM_FORM_CONTENT_URL_MOBILE,procInstId); String dataId = activitiService.getHisVarinst(WorkFlowGlobals.BPM_DATA_ID,procInstId); String tableName = activitiService.getHisVarinst(WorkFlowGlobals.BPM_FORM_KEY,procInstId); + // 历史/抄送查看需要真实业务表数据,补齐发起流程时写入的业务ID和业务表名变量。 + String businessId = getHisVarinstByNames(procInstId, BUSINESS_ID, BUSINESS_ID_CAMEL); + String businessTableName = getHisVarinstByNames(procInstId, BUSINESS_TABLE_NAME, BUSINESS_TABLE_NAME_CAMEL); Map variablesMap = new HashMap(); variablesMap.put(WorkFlowGlobals.BPM_DATA_ID, dataId); variablesMap.put(WorkFlowGlobals.BPM_FORM_KEY, tableName); + if (oConvertUtils.isNotEmpty(businessId)) { + variablesMap.put(BUSINESS_ID, businessId); + variablesMap.put(BUSINESS_ID_CAMEL, businessId); + } + if (oConvertUtils.isNotEmpty(businessTableName)) { + variablesMap.put(BUSINESS_TABLE_NAME, businessTableName); + variablesMap.put(BUSINESS_TABLE_NAME_CAMEL, businessTableName); + } Map map = new HashMap(); map.put("formUrl", formUrl); map.put("formUrlMobile", formUrlMobile); @@ -375,6 +391,16 @@ public class ExtActProcessNodeController { result.setSuccess(true); return result; } + + private String getHisVarinstByNames(String procInstId, String... varNames) { + for (String varName : varNames) { + String value = activitiService.getHisVarinst(varName, procInstId); + if (oConvertUtils.isNotEmpty(value)) { + return value; + } + } + return null; + } /**