From bea321c2e9c6a8d0c2d8363e4846c3936f4b1c2b Mon Sep 17 00:00:00 2001 From: ye1023 <12588209+ye1023@user.noreply.gitee.com> Date: Thu, 23 Apr 2026 10:56:29 +0800 Subject: [PATCH] =?UTF-8?q?yxk-20260423-=E5=A2=9E=E5=8A=A0getJsondatastrin?= =?UTF-8?q?g=E6=96=B9=E6=B3=95=EF=BC=8C=E5=9C=A8=E6=B5=81=E7=A8=8B?= =?UTF-8?q?=E4=B8=AD=E8=8E=B7=E5=8F=96jsondata=E7=9A=84=E6=95=B0=E6=8D=AE?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../common/expression/FlowNodeExpression.java | 33 ++++++++++++++++++- 1 file changed, 32 insertions(+), 1 deletion(-) diff --git a/jeecg-boot-platform/jeecg-boot-module-bpm-flowable/src/main/java/org/jeecg/modules/extbpm/process/common/expression/FlowNodeExpression.java b/jeecg-boot-platform/jeecg-boot-module-bpm-flowable/src/main/java/org/jeecg/modules/extbpm/process/common/expression/FlowNodeExpression.java index 301572a..492f442 100644 --- a/jeecg-boot-platform/jeecg-boot-module-bpm-flowable/src/main/java/org/jeecg/modules/extbpm/process/common/expression/FlowNodeExpression.java +++ b/jeecg-boot-platform/jeecg-boot-module-bpm-flowable/src/main/java/org/jeecg/modules/extbpm/process/common/expression/FlowNodeExpression.java @@ -1,5 +1,6 @@ package org.jeecg.modules.extbpm.process.common.expression; +import com.alibaba.fastjson.JSONObject; import lombok.extern.slf4j.Slf4j; import org.apache.commons.lang.StringUtils; import org.jeecg.common.constant.SymbolConstant; @@ -9,7 +10,6 @@ import org.springframework.context.annotation.Lazy; import org.springframework.stereotype.Service; import org.springframework.util.CollectionUtils; -import java.util.ArrayList; import java.util.List; import java.util.Set; @@ -35,6 +35,37 @@ public class FlowNodeExpression { return users; } + /** + * 根据字段名称取json_data查询对应业务表单的数据 + * ${flowNodeExpression.getJsondatastring(jsonData,'supDeptleaderid')} + * @param jsonData + * @param codeName + * @return + */ + public String getJsondatastring(Object jsonData, String codeName){ + if (jsonData == null || StringUtils.isBlank(codeName)) { + return null; + } + + try { + JSONObject data; + if (jsonData instanceof JSONObject) { + data = (JSONObject) jsonData; + } else if (jsonData instanceof String) { + if (StringUtils.isBlank((String) jsonData)) { + return null; + } + data = JSONObject.parseObject((String) jsonData); + } else { + data = JSONObject.parseObject(JSONObject.toJSONString(jsonData)); + } + return data == null ? null : data.getString(codeName); + } catch (Exception e) { + log.warn("getJsondata parse failed, codeName={}, jsonData={}", codeName, jsonData, e); + return null; + } + } + /** * 查找上一级部门负责人 * ${flowNodeExpression.getLevel1DepartLeaders(applyUserId)}