lxzn-module-dnc/src/main/java/org/jeecg/modules/dnc/service/support/ProductTreeWrapper.java
@@ -1,7 +1,7 @@
package org.jeecg.modules.dnc.service.support;
import org.jeecg.modules.dnc.entity.PartsInfo;
import org.jeecg.modules.dnc.entity.ProductInfo;
import cn.hutool.core.util.StrUtil;
import org.jeecg.modules.dnc.entity.*;
import org.jeecg.modules.dnc.response.CommonGenericTree;
import org.jeecg.modules.dnc.entity.ComponentInfo;
import org.jeecg.modules.dnc.dto.ComponentExt;
@@ -13,13 +13,18 @@
public class ProductTreeWrapper {
    public static List<CommonGenericTree> loadTree(List<ProductInfo> productInfoList, List<ComponentExt> componentInfoList, List<PartsInfo> partsInfoList) {
    public static List<CommonGenericTree> loadTree(List<ProductInfo> productInfoList, List<ComponentExt> componentInfoList,
                                                   List<PartsInfo> partsInfoList,List<ProcessStream> processStreams, List<WorkStep> workStepList) {
        List<CommonGenericTree> tree = new ArrayList<CommonGenericTree>();// TreeNode集合,存放所有树对象。
        Map<String, CommonGenericTree> productMap = new HashMap<>();
        Map<String, CommonGenericTree> componentMap = new HashMap<>();
        Map<String, CommonGenericTree> partsMap = new HashMap<>();
        Map<String, CommonGenericTree> processMap = new HashMap<>();
        CommonGenericTree<ProductInfo> node;
        CommonGenericTree<ComponentInfo> componentNode;
        CommonGenericTree<PartsInfo> partsNode;
        CommonGenericTree<ProcessStream> processNode;
        CommonGenericTree<WorkStep> workStepNode;
        for(ProductInfo productInfo : productInfoList) {
            node = new CommonGenericTree();
            node.setId(productInfo.getProductId());
@@ -56,7 +61,56 @@
                partsNode.setParentId(componentNode.getId());
                componentNode.addChildren(partsNode);
            }
            partsMap.put(parts.getPartsId(), partsNode);
        }
        //工序存在部件或者零件下
        for(ProcessStream processStream : processStreams) {
            processNode = new CommonGenericTree();
            processNode.setId(processStream.getProcessId());
            processNode.setLabel("[" + processStream.getProcessCode()+ "]" + processStream.getProcessName());
            processNode.setParentId(null);
            processNode.setIconClass("");
            processNode.setType(4);
            if (StrUtil.isEmpty(processStream.getPartsId())) {
                //没有partsId,部件下的工序
                processNode.setRField(processStream.getComponentId());
                processNode.setEntity(processStream);
                if(componentMap.containsKey(processNode.getRField())) {
                    componentNode = componentMap.get(processNode.getRField());
                    processNode.setParentId(componentNode.getId());
                    componentNode.addChildren(processNode);
                }
            }else {
                //有partsId,零件下的工序
                processNode.setRField(processStream.getPartsId());
                processNode.setEntity(processStream);
                if(partsMap.containsKey(processNode.getRField())) {
                    partsNode = partsMap.get(processNode.getRField());
                    processNode.setParentId(partsNode.getId());
                    partsNode.addChildren(processNode);
                }
            }
            processMap.put(processStream.getProcessId(),processNode);
        }
        //工步存在工序下
        for (WorkStep workStep : workStepList) {
            workStepNode = new CommonGenericTree();
            workStepNode.setId(workStep.getStepId());
            workStepNode.setLabel("[" + workStep.getStepCode() + "]" + workStep.getStepName());
            workStepNode.setParentId(null);
            workStepNode.setIconClass("");
            workStepNode.setType(5);
            workStepNode.setRField(workStep.getProcessId());
            workStepNode.setEntity(workStep);
            if (processMap.containsKey(workStepNode.getRField())) {
                processNode = processMap.get(workStepNode.getRField());
                workStepNode.setParentId(processNode.getId());
                processNode.addChildren(workStepNode);
            }
        }
        return tree;
    }