| | |
| | | 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; |
| | |
| | | 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; |
| | |
| | | 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; |
| | |
| | | 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"); |
| | |
| | | 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; |
| | |
| | | // BusinessObject cbo = new BusinessObject(); |
| | | // cbo = bo; |
| | | queryEnumText(bo,enumAttrName); |
| | | // allCbos.add(cbo); |
| | | allCbos.add(bo); |
| | | } |
| | | //因为修改了查询的方式,所以就不需要单独查询参照 |
| | | } |
| | |
| | | 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); |
| | |
| | | } |
| | | |
| | | /** |
| | | * 递归处理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 查询条件 |