田源
2024-11-22 3e9b476525c1949577ac2454072e5d62c2a97e90
Source/plt-web/plt-web-parent/plt-web/src/main/java/com/vci/web/service/impl/UIDataServiceImpl.java
@@ -5,6 +5,7 @@
import com.vci.corba.omd.btm.BizType;
import com.vci.corba.omd.data.*;
import com.vci.corba.omd.lcm.LifeCycle;
import com.vci.corba.omd.ltm.LinkType;
import com.vci.dto.*;
import com.vci.frameworkcore.lcstatuspck.FrameworkDataLCStatus;
import com.vci.frameworkcore.lcstatuspck.ReleaseDataLCStatus;
@@ -30,6 +31,7 @@
import com.vci.web.query.UILinkTypeDataQuery;
import com.vci.web.query.UITreeQuery;
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;
@@ -185,7 +187,7 @@
        queryFieldList.add("creator_name");
        queryFieldList.add("lastmodifier_name");
        //我们在后台查询业务数据
        Map<String, String> replaceMap = wrapperReplaceMap( dataGridQuery.getSourceData());
        Map<String, String> replaceMap = wrapperReplaceMap(dataGridQuery.getSourceData());
        if(dataGridQuery.isLinkTypeFlag()){
            UILinkTypeDataQuery linkTypeDataQuery = new UILinkTypeDataQuery();
@@ -367,7 +369,7 @@
        if(treeQuery.getExtandParamsMap() != null){
            treeQuery.getConditionMap().putAll(treeQuery.getExtandParamsMap());
        }
        String parentFieldName = treeQuery.getParentFieldName();
       String parentFieldName = treeQuery.getParentFieldName();
        if(parentFieldName.contains(",")){
            parentFieldName = parentFieldName.split(",")[0];
        }
@@ -410,7 +412,7 @@
                    if(StringUtils.isBlank(parentFieldNameAndValue) || !parentFieldNameAndValue.contains(",")){
                        throw new VciBaseException("配置的信息有误。在没有在菜单或者来源数据设置根节点的查询模板时,请在树的【参照树】上设置上级字段的名称和根节点的查询的值。比如xxxx,yyy。其中xxxx是上级字段英文名称");
                    }
                    parentFieldName= parentFieldNameAndValue.split(",")[0];
                    parentFieldName = parentFieldNameAndValue.split(",")[0];
                    String rootQueryValue = parentFieldNameAndValue.split(",")[1];
                    treeQuery.getConditionMap().put(parentFieldName,rootQueryValue);
                    replaceMap.put(parentFieldName,rootQueryValue);
@@ -445,8 +447,10 @@
                return cbo2Trees(thisChildren, valueField, textField, parentFieldName, treeQuery.isShowCheckBox(), null);
            }
        }else{
            OsLinkTypeVO linkTypeVO = linkTypeService.getLinkTypeById(treeDefineVO.getLinkType());
            queryFieldList.addAll(linkTypeVO.getAttributes().stream().map(OsLinkTypeAttributeVO::getId).collect(Collectors.toList()));
            //OsLinkTypeVO linkTypeVO = linkTypeService.getLinkTypeById(treeDefineVO.getLinkType());
            LinkType linkType = platformClientUtil.getLinkTypeService().getLinkType(treeDefineVO.getLinkType());
            //queryFieldList.addAll(linkTypeVO.getAttributes().stream().map(OsLinkTypeAttributeVO::getId).collect(Collectors.toList()));
            queryFieldList.addAll(Arrays.asList(linkType.attributes));
            queryFieldList.addAll(WebLoServiceImpl.LO_BASE_FIELD_MAP.values());
            addQueryField(queryFieldList,valueField);
@@ -704,9 +708,28 @@
            clo = boAndLO.lo;
            Map<String,String> cloMap = loService.clo2Map(clo);
            Map<String,String> cbo2Map = boService.cbo2Map(cbo);
            //将链接类型的属性也放进进行返回
            String linkName = Func.isNotBlank(cloMap.get("linktypename")) ? cloMap.get("linktypename"):parentFieldName;
            Map<String, String> returnMap = new HashMap<>();
            cloMap.forEach((key,value)->{
                //过滤掉空值
                if(!returnMap.containsKey(linkName + key) && Func.isNotBlank(key) || Func.isNotBlank(value)){
                    returnMap.put(linkName + key,value);
                }
            });
            //过滤掉空值,用作返回的map
           cbo2Map.entrySet().stream().forEach(entry -> {
                String key = entry.getKey();
                String value = entry.getValue();
                if (!returnMap.containsKey(key) && Func.isNotBlank(key) && Func.isNotBlank(value)) {
                    returnMap.put(key,value);
                }
            });
            if(!CollectionUtils.isEmpty(cbo2Map)){
                cbo2Map.forEach((key,value)->{
                    cloMap.put(parentFieldName + "." + key,value);
                    //TODO: 这儿为啥要拼接上parentFieldName,导致后面freemarker表达式无法正确替换
                    cloMap.put(/*parentFieldName + "." +*/ key,value);
                });
            }
            tree.setOid(getValueByExpressForBOAndLO(cloMap,cbo2Map,valueField));
@@ -721,7 +744,7 @@
                }
            }
            tree.setAttributes(cbo2Map);
            tree.setAttributes(returnMap);
            tree.setIndex(i[0] + "");
            i[0]++;
            tree.setChecked(showCheckBox);