| | |
| | | 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; |
| | |
| | | */ |
| | | @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); |
| | |
| | | */ |
| | | @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("*"); |
| | |
| | | * @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,"查询模板的名称"); |
| | |
| | | //因为之前平台的Tool.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(); |
| | |
| | | } |
| | | } |
| | | } |
| | | }); |
| | | });*/ |
| | | } |
| | | }catch(PLException e){ |
| | | logger.error(e.code,e); |
| | |
| | | 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("可能配置有问题,在转换freemarker表达式的时候,没有找到对应的值,目前表达式为{}",new String[]{value},e); |
| | | } |
| | | } |
| | | }else if(replaceLowMap.containsKey(value.toLowerCase())){ |
| | | lInfo.getValue().setOrdinaryValue((String) replaceLowMap.get(value.toLowerCase())); |
| | | } |
| | | }else { |
| | | recurReplaceCiMap(lInfo.getValue().getQueryTemplate(),replaceLowMap); |
| | | } |
| | | } |
| | | }); |
| | | } |
| | | |
| | | /** |
| | |
| | | */ |
| | | @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); |
| | |
| | | */ |
| | | @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); |
| | |
| | | @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); |
| | |
| | | */ |
| | | @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); |
| | | } |
| | |
| | | */ |
| | | @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); |
| | | } |
| | |
| | | */ |
| | | @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); |
| | |
| | | */ |
| | | @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)); |
| | | } |
| | | |
| | |
| | | */ |
| | | @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); |