From a471b20fe8075a663f32b3a2ee0cd70c1c63baf7 Mon Sep 17 00:00:00 2001 From: ludc Date: 星期四, 21 十一月 2024 21:59:42 +0800 Subject: [PATCH] 业务类型查询:树查询修改,数据列表查询接口修改(处理模板套模板情况下freemarker表达式的替换处理)。 --- Source/plt-web/plt-web-parent/plt-web/src/main/java/com/vci/web/service/impl/WebBoServiceImpl.java | 45 +++++++++++++++++++++++++++++++++++++++++++-- 1 files changed, 43 insertions(+), 2 deletions(-) diff --git a/Source/plt-web/plt-web-parent/plt-web/src/main/java/com/vci/web/service/impl/WebBoServiceImpl.java b/Source/plt-web/plt-web-parent/plt-web/src/main/java/com/vci/web/service/impl/WebBoServiceImpl.java index 12701d1..4fab207 100644 --- a/Source/plt-web/plt-web-parent/plt-web/src/main/java/com/vci/web/service/impl/WebBoServiceImpl.java +++ b/Source/plt-web/plt-web-parent/plt-web/src/main/java/com/vci/web/service/impl/WebBoServiceImpl.java @@ -26,6 +26,7 @@ import com.vci.starter.web.wrapper.VciQueryWrapperForDO; import com.vci.web.properties.WebProperties; import com.vci.web.service.*; +import com.vci.web.util.Func; import com.vci.web.util.PlatformClientUtil; import com.vci.web.util.WebUtil; import org.apache.commons.lang3.StringUtils; @@ -942,7 +943,9 @@ replaceLowMap.put(key.toLowerCase(),value); }); } - Map<String, ConditionItem> ciMap = condition.getCIMap(); + //鏀逛负閫掑綊锛屽鐞嗘ā鏉垮妯℃澘鐨勯棶棰� + this.recurReplaceCiMap(qt,replaceLowMap); + /*Map<String, ConditionItem> ciMap = condition.getCIMap(); ciMap.forEach((ciId,ci)->{ if(ci.isLeaf()) { LeafInfo lInfo = ci.getLeafInfo(); @@ -965,7 +968,7 @@ } } } - }); + });*/ } }catch(PLException e){ logger.error(e.code,e); @@ -978,6 +981,44 @@ } /** + * 閫掑綊澶勭悊ciMap涓�兼浛鎹㈤棶棰�,澶勭悊妯℃澘濂楁ā鏉跨殑闂 + * @param qt + * @param replaceLowMap + */ + private void recurReplaceCiMap(QueryTemplate qt, Map<String,String> replaceLowMap){ + //璺冲嚭閫掑綊 + if(Func.isEmpty(qt)){ + return; + } + Map<String, ConditionItem> ciMap = qt.getCondition().getCIMap(); + ciMap.forEach((ciId,ci)->{ + if(ci.isLeaf()) { + LeafInfo lInfo = ci.getLeafInfo(); + String value = lInfo.getValue().getOrdinaryValue(); + if(StringUtils.isNotBlank(value)){ + if(value.contains("#")){ + //绯荤粺鍙橀噺.鏀寔涓�涓� + //lInfo.getValue().setOrdinaryValue(systemVarValueMap.getOrDefault(value.toUpperCase(),"")); + }else if(value.contains("${")){ + //鏈�${xxxx}鐨勬柟寮� + if(!CollectionUtils.isEmpty(replaceLowMap)) { + try { + lInfo.getValue().setOrdinaryValue(VciBaseUtil.replaceByFreeMarker(value, replaceLowMap)); + }catch (Throwable e){ + logger.error("鍙兘閰嶇疆鏈夐棶棰橈紝鍦ㄨ浆鎹reemarker琛ㄨ揪寮忕殑鏃跺�欙紝娌℃湁鎵惧埌瀵瑰簲鐨勫�硷紝鐩墠琛ㄨ揪寮忎负{}",new String[]{value},e); + } + } + }else if(replaceLowMap.containsKey(value.toLowerCase())){ + lInfo.getValue().setOrdinaryValue(replaceLowMap.get(value.toLowerCase())); + } + }else { + recurReplaceCiMap(lInfo.getValue().getQueryTemplate(),replaceLowMap); + } + } + }); + } + + /** * 鏍规嵁鏌ヨ妯℃澘鏉ユ煡璇㈡暟鎹� * @param queryScheme 鏌ヨ鏂规 * @param conditionMap 鏌ヨ鏉′欢 -- Gitblit v1.9.3