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,9 +24,9 @@
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;
@@ -154,9 +154,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 +197,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;
@@ -613,7 +611,7 @@
//               BusinessObject cbo = new BusinessObject();
//               cbo = bo;
               queryEnumText(bo,enumAttrName);
//               allCbos.add(cbo);
               allCbos.add(bo);
            }
            //因为修改了查询的方式,所以就不需要单独查询参照
         }
@@ -945,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();
@@ -968,7 +968,7 @@
                     }
                  }
               }
            });
            });*/
         }
      }catch(PLException e){
         logger.error(e.code,e);
@@ -981,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("可能配置有问题,在转换freemarker表达式的时候,没有找到对应的值,目前表达式为{}",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 查询条件