yangys
2025-09-25 31ecdb8c700529a59dd762f0c47f0ed9c66d5092
blade-service/blade-mdm/src/main/java/org/springblade/mdm/gkw/programnode/service/ProgramNodeService.java
@@ -4,21 +4,17 @@
import lombok.AllArgsConstructor;
import lombok.extern.slf4j.Slf4j;
import org.springblade.core.mp.base.BizServiceImpl;
import org.springblade.core.tool.api.R;
import org.springblade.core.tool.utils.Func;
import org.springblade.mdm.basesetting.machine.MachineService;
import org.springblade.mdm.basesetting.machine.service.MachineService;
import org.springblade.mdm.basesetting.machine.entity.Machine;
import org.springblade.mdm.commons.contants.ParamConstants;
import org.springblade.mdm.commons.service.ParamService;
import org.springblade.mdm.gkw.programnode.entity.MachineFile;
import org.springblade.mdm.machinefile.entity.MachineFile;
import org.springblade.mdm.gkw.programnode.entity.ProgramNode;
import org.springblade.mdm.gkw.programnode.entity.TreeDept;
import org.springblade.mdm.gkw.programnode.mapper.ProgramNodeMapper;
import org.springblade.mdm.gkw.programnode.vo.ProgramNodeVO;
import org.springblade.system.feign.ISysClient;
import org.springframework.beans.BeanUtils;
import org.springframework.stereotype.Service;
import org.springframework.transaction.annotation.Transactional;
import java.util.*;
@@ -55,20 +51,31 @@
    * 生成工控网树
    * @return 树根节点集合
    */
   public List<ProgramNodeVO> loadTree() {
      Integer workshoptDictVal = Func.toInt(paramService.getParamValue(ParamConstants.WORKSHOP_DICT_KEY,DEFAULT_WORKSHOP_VALUE));
   public List<ProgramNodeVO> loadTree(String includeSend) {
      Integer workshopDictVal = Func.toInt(paramService.getParamValue(ParamConstants.WORKSHOP_DICT_KEY,DEFAULT_WORKSHOP_VALUE));
      Long rootDeptId = Func.toLong(paramService.rootDeptId());
      TreeDept root =  treeDeptService.getById(rootDeptId);
      List<ProgramNodeVO> roots = new ArrayList<>();
      List<TreeDept> workshops = treeDeptService.lambdaQuery().eq(TreeDept::getDeptCategory,workshoptDictVal)
      ProgramNodeVO rootVO = new ProgramNodeVO();
      rootVO.setNodeType("factory");
      rootVO.setName(root.getDeptName());
      rootVO.setId(rootVO.getId());
      rootVO.setMachineCode("FAC_"+rootVO.getId());
      roots.add(rootVO);
      List<TreeDept> workshops = treeDeptService.lambdaQuery().eq(TreeDept::getDeptCategory,workshopDictVal)
         .orderByAsc(TreeDept::getSort).list();
      List<ProgramNodeVO> workshopsVOList = new ArrayList<>();
      for(TreeDept workshop : workshops) {
         ProgramNodeVO node = new ProgramNodeVO();
         node.setId(String.valueOf(workshop.getId()));
         node.setName(workshop.getDeptName());
         roots.add(node);
         node.setNodeType("workshop");
         node.setMachineCode("WS_"+node.getId());
      //   roots.add(node);
         workshopsVOList.add(node);
         //加入车间下的工段
         List<TreeDept> gongduanList = treeDeptService.lambdaQuery().eq(TreeDept::getParentId,workshop.getId())
            .orderByAsc(TreeDept::getSort).list();
@@ -77,7 +84,8 @@
            nodeGd.setId(String.valueOf(gd.getId()));
            nodeGd.setName(gd.getDeptName());
            nodeGd.setParentId(gd.getParentId());
            nodeGd.setNodeType("seg");
            nodeGd.setMachineCode("SEG_"+nodeGd.getId());
            node.addChildren(nodeGd);
            //加入工段下的机床
@@ -86,12 +94,15 @@
               nodeMachine.setName(machine.getCode());
               nodeMachine.setId(String.valueOf(machine.getId()));
               nodeMachine.setMachineCode(machine.getCode());
               addFolderNodes(nodeMachine);
               nodeMachine.setNodeType("machine");
               addFolderNodes(nodeMachine,includeSend);
               nodeGd.addChildren(nodeMachine);
            });
         }
      }
      rootVO.setChildren(workshopsVOList);
      return roots;
   }
@@ -100,28 +111,46 @@
    * 加入3个文件夹节点
    * @param nodeMachine 机床节点
    */
   void addFolderNodes(ProgramNodeVO nodeMachine){
   void addFolderNodes(ProgramNodeVO nodeMachine,String includeSend){
      ProgramNodeVO sendNode = new ProgramNodeVO();
      sendNode.setId(nodeMachine.getId()+"_"+MachineFile.DIR_TYPE_SEND);
      sendNode.setName("SEND");
      sendNode.setMachineCode(nodeMachine.getMachineCode());
      sendNode.setDirType(MachineFile.DIR_TYPE_SEND);
      //sendNode.setParentId(nodeMachine.getId());
      List<ProgramNodeVO> dirNodes = new ArrayList<>();
      if(!"0".equals(includeSend)){
         ProgramNodeVO sendNode = new ProgramNodeVO();
         sendNode.setId(nodeMachine.getId()+"_"+MachineFile.DIR_TYPE_SEND);
         sendNode.setName("SEND");
         sendNode.setMachineCode(nodeMachine.getMachineCode());
         sendNode.setDirType(MachineFile.DIR_TYPE_SEND);
         sendNode.setNodeType("dir");
         dirNodes.add(sendNode);
      }
      ProgramNodeVO recNode = new ProgramNodeVO();
      recNode.setId(nodeMachine.getId()+"_"+MachineFile.DIR_TYPE_REC);
      recNode.setName("REC");
      recNode.setName(MachineFile.DIR_TYPE_REC);
      recNode.setMachineCode(nodeMachine.getMachineCode());
      recNode.setDirType(MachineFile.DIR_TYPE_REC);
      recNode.setNodeType("dir");
      dirNodes.add(recNode);
      ProgramNodeVO progNode = new ProgramNodeVO();
      progNode.setId(nodeMachine.getId()+"_"+MachineFile.DIR_TYPE_PROGRAM);
      progNode.setName(MachineFile.DIR_TYPE_PROGRAM);
      progNode.setMachineCode(nodeMachine.getMachineCode());
      progNode.setDirType(MachineFile.DIR_TYPE_PROGRAM);
      progNode.setNodeType("dir");
      dirNodes.add(progNode);
      ProgramNodeVO tempNode = new ProgramNodeVO();
      tempNode.setId(nodeMachine.getId()+"_"+MachineFile.DIR_TYPE_TEMP);
      tempNode.setName("TEMP");
      tempNode.setName(MachineFile.DIR_TYPE_TEMP);
      tempNode.setMachineCode(nodeMachine.getMachineCode());
      tempNode.setDirType(MachineFile.DIR_TYPE_TEMP);
      tempNode.setNodeType("dir");
      dirNodes.add(tempNode);
      nodeMachine.setChildren(Arrays.asList(sendNode,recNode,tempNode));
      nodeMachine.setChildren(dirNodes);
   }
   /**