package org.jeecg.modules.dnc.service.support; import org.jeecg.modules.dnc.entity.PartsInfo; import org.jeecg.modules.dnc.entity.ProductInfo; import org.jeecg.modules.dnc.response.CommonGenericTree; import org.jeecg.modules.dnc.entity.ComponentInfo; import org.jeecg.modules.dnc.dto.ComponentExt; import java.util.ArrayList; import java.util.HashMap; import java.util.List; import java.util.Map; public class ProductTreeWrapper { public static List loadTree(List productInfoList, List componentInfoList, List partsInfoList) { List tree = new ArrayList();// TreeNode集合,存放所有树对象。 Map productMap = new HashMap<>(); Map componentMap = new HashMap<>(); CommonGenericTree node; CommonGenericTree componentNode; CommonGenericTree partsNode; for(ProductInfo productInfo : productInfoList) { node = new CommonGenericTree(); node.setId(productInfo.getProductId()); node.setLabel("[" + productInfo.getProductNo()+ "]" + productInfo.getProductName()); node.setParentId(productInfo.getProductId()); node.setIconClass(""); node.setType(1); node.setEntity(productInfo); tree.add(node); productMap.put(productInfo.getProductId(), node); } List commonJsonTreeList = ComponentTreeWrapper.loadTree(componentInfoList); for(CommonGenericTree compNode : commonJsonTreeList) { componentMap = CommonGenericTree.getLeafNode(componentMap, compNode); if(productMap.containsKey(compNode.getRField())) { node = productMap.get(compNode.getRField()); compNode.setParentId(node.getId()); node.addChildren(compNode); } } for(PartsInfo parts : partsInfoList) { partsNode = new CommonGenericTree(); partsNode.setId(parts.getPartsId()); partsNode.setLabel("[" + parts.getPartsCode()+ "]" + parts.getPartsName()); partsNode.setParentId(null); partsNode.setIconClass(""); partsNode.setType(3); partsNode.setRField(parts.getComponentId()); partsNode.setEntity(parts); if(componentMap.containsKey(partsNode.getRField())) { componentNode = componentMap.get(partsNode.getRField()); partsNode.setParentId(componentNode.getId()); componentNode.addChildren(partsNode); } } return tree; } public static List loadTree(List productInfoList) { List tree = new ArrayList();// TreeNode集合,存放所有树对象。 CommonGenericTree node; for(ProductInfo productInfo : productInfoList) { node = new CommonGenericTree(); node.setId(productInfo.getProductId()); // node.setLabel("[" + productInfo.getProductNo()+ "]" + productInfo.getProductName()); node.setLabel(productInfo.getProductName()); //node.setParentId(null); node.setIconClass(""); node.setType(1); node.setEntity(productInfo); tree.add(node); } return tree; } }