package org.jeecg.modules.base.service.impl; import com.baomidou.mybatisplus.core.toolkit.CollectionUtils; import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; import org.jeecg.common.api.vo.CommonGenericTree; import org.jeecg.modules.base.entity.SupplierCategory; import org.jeecg.modules.base.mapper.SupplierCategoryMapper; import org.jeecg.modules.base.service.ISupplierCategoryService; import org.springframework.stereotype.Service; import java.util.ArrayList; import java.util.HashMap; import java.util.List; import java.util.Map; /** * @Description: mom_base_supplier_category * @Author: jeecg-boot * @Date: 2023-03-10 * @Version: V1.0 */ @Service public class SupplierCategoryServiceImpl extends ServiceImpl implements ISupplierCategoryService { @Override public List loadTree() { List supplierCategoryList = this.lambdaQuery().eq(SupplierCategory::getDelFlag, "0").list(); List commonGenericTrees = buildTree(supplierCategoryList, "-1"); return commonGenericTrees; } private List buildTree(List supplierCategoryList, String parentId) { List treeNodes = new ArrayList<>(); for (SupplierCategory supplierCategory : supplierCategoryList) { if (supplierCategory.getParentId().equals(parentId)) { CommonGenericTree treeNode = new CommonGenericTree<>(); treeNode.setKey(supplierCategory.getId()); treeNode.setValue(supplierCategory.getId()); treeNode.setTitle(supplierCategory.getNum() + "/" + supplierCategory.getName()); treeNode.setRField1(supplierCategory.getNum()); treeNode.setRField2(supplierCategory.getName()); treeNode.setDisabled(false); treeNode.setEntity(supplierCategory); List children = buildTree(supplierCategoryList, supplierCategory.getId()); if (!children.isEmpty()) { treeNode.setChildren(children); } treeNodes.add(treeNode); } } return treeNodes; } // @Override // public List loadTree() { // List supplierCategoryList = this.lambdaQuery().eq(SupplierCategory::getDelFlag, "0").list(); // List commonGenericTrees = loadTree(supplierCategoryList); // return commonGenericTrees; // } // // @SuppressWarnings("unchecked") // public List loadTree(List supplierCategoryList) { // @SuppressWarnings("unused") // SupplierCategory supplierCategory = new SupplierCategory(); // List list = new ArrayList<>(); // Map map = new HashMap<>(); // Map map2 = new HashMap<>(); // Map map3 = new HashMap<>(); // Map map4 = new HashMap<>(); // Map map5 = new HashMap<>(); // Map map6 = new HashMap<>(); // Map map7 = new HashMap<>(); // CommonGenericTree node = new CommonGenericTree<>(); // node.setKey("-1"); // node.setValue("-1"); // node.setTitle("供应商分类"); // node.setRField1(""); // node.setRField2(""); // node.setDisabled(false); // node.setEntity(new SupplierCategory()); // list.add(node); // if (CollectionUtils.isNotEmpty(list)) { // CommonGenericTree pcNode; // for (SupplierCategory projectType : supplierCategoryList) { // if (projectType.getParentId().equals("-1")) { // pcNode = new CommonGenericTree<>(); // pcNode.setKey(projectType.getId()); // pcNode.setTitle(projectType.getNum() + "/" + projectType.getName()); // pcNode.setParentId(node.getKey()); // pcNode.setIcon(""); // pcNode.setType(0); // pcNode.setValue(projectType.getId()); // pcNode.setDisabled(false); // pcNode.setRField1(projectType.getNum()); // pcNode.setRField2(projectType.getName()); // pcNode.setEntity(projectType); // node.addChildren(pcNode); // map.put(projectType.getId(), pcNode); // } // } // CommonGenericTree childNode; // for (SupplierCategory projectType : supplierCategoryList) { // if (map.containsKey(projectType.getParentId())) { // pcNode = map.get(projectType.getParentId()); // childNode = new CommonGenericTree<>(); // childNode.setKey(projectType.getId()); // childNode.setTitle(projectType.getNum() + "/" + projectType.getName()); // childNode.setParentId(projectType.getParentId()); // childNode.setIcon(""); // childNode.setType(0); // childNode.setValue(projectType.getId()); // childNode.setDisabled(false); // childNode.setRField1(projectType.getNum()); // childNode.setRField2(projectType.getName()); // childNode.setEntity(projectType); // pcNode.addChildren(childNode); // map2.put(projectType.getId(), childNode); // } // } // if (map2.size() > 0) { // CommonGenericTree child2Node; // for (SupplierCategory projectType : supplierCategoryList) { // if (map2.containsKey(projectType.getParentId())) { // pcNode = map2.get(projectType.getParentId()); // child2Node = new CommonGenericTree<>(); // child2Node.setKey(projectType.getId()); // child2Node.setTitle(projectType.getNum() + "/" + projectType.getName()); // child2Node.setParentId(projectType.getParentId()); // child2Node.setIcon(""); // child2Node.setType(0); // child2Node.setValue(projectType.getId()); // child2Node.setDisabled(false); // child2Node.setRField1(projectType.getNum()); // child2Node.setRField2(projectType.getName()); // child2Node.setEntity(projectType); // pcNode.addChildren(child2Node); // map3.put(projectType.getId(), child2Node); // } // } // if (map3.size() > 0) { // CommonGenericTree child3Node; // for (SupplierCategory projectType : supplierCategoryList) { // if (map3.containsKey(projectType.getParentId())) { // pcNode = map3.get(projectType.getParentId()); // child3Node = new CommonGenericTree<>(); // child3Node.setKey(projectType.getId()); // child3Node.setTitle(projectType.getNum() + "/" + projectType.getName()); // child3Node.setParentId(projectType.getParentId()); // child3Node.setIcon(""); // child3Node.setType(0); // child3Node.setValue(projectType.getId()); // child3Node.setDisabled(false); // child3Node.setRField1(projectType.getNum()); // child3Node.setRField2(projectType.getName()); // child3Node.setEntity(projectType); // pcNode.addChildren(child3Node); // map4.put(projectType.getId(), child3Node); // } // } // if (map4.size() > 0) { // CommonGenericTree child4Node; // for (SupplierCategory projectType : supplierCategoryList) { // if (map4.containsKey(projectType.getParentId())) { // pcNode = map4.get(projectType.getParentId()); // child4Node = new CommonGenericTree<>(); // child4Node.setKey(projectType.getId()); // child4Node.setTitle(projectType.getNum() + "/" + projectType.getName()); // child4Node.setParentId(projectType.getParentId()); // child4Node.setIcon(""); // child4Node.setType(0); // child4Node.setValue(projectType.getId()); // child4Node.setDisabled(false); // child4Node.setRField1(projectType.getNum()); // child4Node.setRField2(projectType.getName()); // child4Node.setEntity(projectType); // pcNode.addChildren(child4Node); // map5.put(projectType.getId(), child4Node); // } // } // if (map5.size() > 0) { // CommonGenericTree child5Node; // for (SupplierCategory projectType : supplierCategoryList) { // if (map5.containsKey(projectType.getParentId())) { // pcNode = map5.get(projectType.getParentId()); // child5Node = new CommonGenericTree<>(); // child5Node.setKey(projectType.getId()); // child5Node.setTitle(projectType.getNum() + "/" + projectType.getName()); // child5Node.setParentId(projectType.getParentId()); // child5Node.setIcon(""); // child5Node.setType(0); // child5Node.setValue(projectType.getId()); // child5Node.setDisabled(false); // child5Node.setRField1(projectType.getNum()); // child5Node.setRField2(projectType.getName()); // child5Node.setEntity(projectType); // pcNode.addChildren(child5Node); // map6.put(projectType.getId(), child5Node); // } // } // if (map6.size() > 0) { // CommonGenericTree child6Node; // for (SupplierCategory projectType : supplierCategoryList) { // if (map6.containsKey(projectType.getParentId())) { // pcNode = map6.get(projectType.getParentId()); // child6Node = new CommonGenericTree<>(); // child6Node.setKey(projectType.getId()); // child6Node.setTitle(projectType.getNum() + "/" + projectType.getName()); // child6Node.setParentId(projectType.getParentId()); // child6Node.setIcon(""); // child6Node.setType(0); // child6Node.setValue(projectType.getId()); // child6Node.setDisabled(false); // child6Node.setRField1(projectType.getNum()); // child6Node.setRField2(projectType.getName()); // child6Node.setEntity(projectType); // pcNode.addChildren(child6Node); // map7.put(projectType.getId(), child6Node); // } // } // if (map7.size() > 0) { // CommonGenericTree child7Node; // for (SupplierCategory projectType : supplierCategoryList) { // if (map.containsKey(projectType.getParentId())) { // pcNode = map7.get(projectType.getParentId()); // child7Node = new CommonGenericTree<>(); // child7Node.setKey(projectType.getId()); // child7Node.setTitle(projectType.getNum() + "/" + projectType.getName()); // child7Node.setParentId(projectType.getParentId()); // child7Node.setIcon(""); // child7Node.setType(0); // child7Node.setValue(projectType.getId()); // child7Node.setDisabled(false); // child7Node.setRField1(projectType.getNum()); // child7Node.setRField2(projectType.getName()); // child7Node.setEntity(projectType); // // } // } // } // } // } // } // } // } // } // return list; // } }