From cdba4febf23c6f55346a474579361923aacf0bc9 Mon Sep 17 00:00:00 2001 From: wangting <675591594@qq.com> Date: 星期一, 02 十二月 2024 14:54:11 +0800 Subject: [PATCH] Merge remote-tracking branch 'origin/master' --- Source/plt-web/plt-web-parent/plt-web/src/main/java/com/vci/web/service/impl/WebBoServiceImpl.java | 88 +++++++++++++++++++++++++++++++++----------- 1 files changed, 66 insertions(+), 22 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 f53eb5b..f9aff20 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 @@ -1,7 +1,6 @@ package com.vci.web.service.impl; import com.vci.client.common.oq.OQTool; -import com.vci.client.common.providers.ClientServiceProvider; import com.vci.common.qt.object.*; import com.vci.common.utility.ObjectUtility; import com.vci.corba.common.PLException; @@ -15,6 +14,7 @@ import com.vci.corba.query.data.KV; import com.vci.frameworkcore.compatibility.SmUserQueryServiceI; import com.vci.omd.utils.ObjectTool; +import com.vci.pagemodel.*; import com.vci.starter.web.annotation.Column; import com.vci.starter.web.constant.QueryOptionConstant; import com.vci.starter.web.enumpck.BooleanEnum; @@ -24,12 +24,13 @@ import com.vci.starter.web.util.BeanUtil; import com.vci.starter.web.util.VciBaseUtil; import com.vci.starter.web.wrapper.VciQueryWrapperForDO; -import com.vci.web.pageModel.*; 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; +import org.apache.commons.math3.distribution.TDistribution; import org.dom4j.DocumentException; import org.dom4j.DocumentHelper; import org.slf4j.Logger; @@ -154,9 +155,7 @@ if(btmName!=null){ btmName = btmName.trim().toLowerCase(); } - //todo 鐢变簬鐧诲綍闂鍚庣画闇�瑕佷慨鏀� -// String userid = WebUtil.getCurrentUserId(); - String userid = "1"; + String userid = WebUtil.getCurrentUserId(); if(!hasCreatedCbos.containsKey(btmName)){ if(StringUtils.isEmpty(userid)){ throw new VciBaseException(msgCodePrefix +"noHasUserid"); @@ -199,7 +198,7 @@ bo.versionRule = String.valueOf(btmTypeVO.getVersionRule()); if(StringUtils.isNotBlank(btmTypeVO.getRevisionRuleId())){ OsRevisionRuleVO revisionRuleVO = revisionRuleService.getRevisionRuleById(btmTypeVO.getRevisionRuleId()); - bo.revisionValue = revisionRuleVO.getStartCode(); + bo.revisionValue = revisionRuleVO.getInitialValue(); } bo.revisionSeq = (short) 1; @@ -895,7 +894,7 @@ */ @Override public List<BusinessObject> queryCBOByScheme(String queryScheme, - Map<String, String> conditionMap, Map<String, String> replaceMap) + Map<String, String> conditionMap, Map<String, Object> replaceMap) throws VciBaseException { PageHelper ph = new PageHelper(-1); return queryCBOByScheme(queryScheme,conditionMap,replaceMap,ph); @@ -913,7 +912,7 @@ */ @Override public List<BusinessObject> queryCBOByScheme(String queryScheme, - Map<String, String> conditionMap, Map<String, String> replaceMap, + Map<String, String> conditionMap, Map<String, Object> replaceMap, PageHelper ph) throws VciBaseException { List<String> clauseList = new ArrayList<String>(); clauseList.add("*"); @@ -928,7 +927,7 @@ * @throws VciBaseException 鏌ヨ鍑洪敊鐨勬椂鍊欎細鎶涘嚭寮傚父 */ @Override - public QueryTemplate getQtByName(String name, Map<String, String> replaceMap) throws VciBaseException{ + public QueryTemplate getQtByName(String name, Map<String, Object> replaceMap) throws VciBaseException{ QueryTemplate qt = null; try{ VciBaseUtil.alertNotNull(name,"鏌ヨ妯℃澘鐨勫悕绉�"); @@ -937,15 +936,18 @@ //鍥犱负涔嬪墠骞冲彴鐨凾ool.replaceQTValues 娌℃湁澶勭悊 ${xxx}銆傦紝 涓轰簡蹇界暐澶у皬鍐欙紝鎴戜滑杩欓噷鍗曠嫭澶勭悊 weidy@2021-3-10 //鎴戜滑杞崲涓哄皬鍐� Condition condition = qt.getCondition(); - Map<String,String> replaceLowMap = new HashMap<>(); + Map<String,Object> replaceLowMap = new HashMap<>(); if(condition !=null && condition.getCIMap()!=null){ // Map<String, String> systemVarValueMap = VciSystemVarConstants.getSystemVarValueMap(); + //杞皬鍐� if(!CollectionUtils.isEmpty(replaceMap)){ replaceMap.forEach((key,value)->{ 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(); @@ -968,7 +970,7 @@ } } } - }); + });*/ } }catch(PLException e){ logger.error(e.code,e); @@ -978,6 +980,44 @@ throw new VciBaseException(this.msgCodePrefix + "qtError", new Object[]{name}); } return qt; + } + + /** + * 閫掑綊澶勭悊ciMap涓�兼浛鎹㈤棶棰�,澶勭悊妯℃澘濂楁ā鏉跨殑闂 + * @param qt + * @param replaceLowMap + */ + private void recurReplaceCiMap(QueryTemplate qt, Map<String,Object> 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((String) replaceLowMap.get(value.toLowerCase())); + } + }else { + recurReplaceCiMap(lInfo.getValue().getQueryTemplate(),replaceLowMap); + } + } + }); } /** @@ -992,7 +1032,7 @@ */ @Override public List<BusinessObject> queryCBOByScheme(String queryScheme, - Map<String, String> conditionMap, Map<String, String> replaceMap, + Map<String, String> conditionMap, Map<String, Object> replaceMap, PageHelper ph, List<String> clauseList) throws VciBaseException { QueryTemplate qt = getQtByName(queryScheme,replaceMap); return baseQueryCBO(qt,conditionMap,ph,clauseList); @@ -1096,7 +1136,7 @@ */ @Override public int queryCountByScheme(String queryScheme, - Map<String, String> conditionMap, Map<String, String> replaceMap) + Map<String, String> conditionMap, Map<String, Object> replaceMap) throws VciBaseException { QueryTemplate qt = getQtByName(queryScheme,replaceMap); return baseQueryCount(qt,conditionMap); @@ -1444,7 +1484,7 @@ @Override public <T> List<T> queryObjectByScheme(String queryScheme, Class<T> c, Map<String, String> conditionMap, PageHelper ph, - Map<String, String> replaceMap) throws VciBaseException { + Map<String, Object> replaceMap) throws VciBaseException { WebUtil.alertNotNull(queryScheme,"鏌ヨ鏂规"); //鐩存帴浠庡璞¢噷鍘绘煡璇笟鍔$被鍨嬬殑鍚嶇О swapConditionMap(c,conditionMap); @@ -2070,7 +2110,7 @@ */ @Override public DataGrid queryGridByScheme(String queryScheme, - Map<String, String> conditionMap, Map<String, String> replaceMap) + Map<String, String> conditionMap, Map<String, Object> replaceMap) throws VciBaseException { return queryGridByScheme(queryScheme,conditionMap,replaceMap,new PageHelper(-1,true),null); } @@ -2086,7 +2126,7 @@ */ @Override public DataGrid queryGridByScheme(String queryScheme, - Map<String, String> conditionMap, Map<String, String> replaceMap, + Map<String, String> conditionMap, Map<String, Object> replaceMap, PageHelper ph) throws VciBaseException { return queryGridByScheme(queryScheme,conditionMap,replaceMap,ph,null); } @@ -2103,7 +2143,7 @@ */ @Override public DataGrid queryGridByScheme(String queryScheme, - Map<String, String> conditionMap, Map<String, String> replaceMap, + Map<String, String> conditionMap, Map<String, Object> replaceMap, PageHelper ph, List<String> clauseList) throws VciBaseException { if(ph == null){ ph = new PageHelper(-1,true); @@ -2174,7 +2214,7 @@ */ @Override public DataGrid queryGridClassByScheme(String queryScheme, Class c, - Map<String, String> conditionMap,Map<String,String> replaceMap) throws VciBaseException { + Map<String, String> conditionMap,Map<String,Object> replaceMap) throws VciBaseException { return queryGridClassByScheme(queryScheme,c,conditionMap,replaceMap,new PageHelper(-1,true)); } @@ -2189,7 +2229,7 @@ */ @Override public DataGrid queryGridClassByScheme(String queryScheme, Class c, - Map<String, String> conditionMap, Map<String,String> replaceMap,PageHelper ph) + Map<String, String> conditionMap, Map<String,Object> replaceMap,PageHelper ph) throws VciBaseException { if(ph == null){ ph = new PageHelper(-1,true); @@ -2234,9 +2274,13 @@ public Map cbo2Map(BusinessObject cbo) throws VciBaseException { Map<String,String> map = new HashMap<String, String>(); WebUtil.copyValueToMapFromCbos(cbo, map); - return map; + //TODO锛�20241128 杩囨护鎺夌┖key鍜岀┖value + Map<String, Object> filteredCbo2Map = map.entrySet() + .stream() + .filter(entry -> entry.getKey() != null && !entry.getKey().isEmpty() && entry.getValue() != null && !entry.getValue().toString().isEmpty()) + .collect(Collectors.toMap(Map.Entry::getKey, Map.Entry::getValue)); + return filteredCbo2Map; } - /** * map杞负BusinessObject -- Gitblit v1.9.3