yangys
2025-09-23 3baca21e0e6563f8379359ef2ba78c224eb4bc80
blade-service/blade-mdm/src/main/java/org/springblade/mdm/program/service/NcNodeService.java
@@ -180,17 +180,7 @@
      }
   }
   /**
    * 查询节点的历史列表(节点的上级节点”程序包名“因为存在多个版本,所以历史记录也需要根据不同版本程序包名进行查询)
    * @param id
    * @return
    */
   @Transactional(readOnly = true)
    public List<NcNodeVO> historyByNodeId(Long id) {
      NcNode node = this.getById(id);
      NcNode parentNode = this.getById(node.getParentId());
      return this.baseMapper.historyByParentIdAndName(node.getName(),parentNode);
    }
   /**
    * 获取“程序包名”试切的最新版本
@@ -263,18 +253,7 @@
      }
   }
   public int calculateVersionNumber(NcNode pkgNode) {
      NcNode node = this.lambdaQuery().eq(NcNode::getNodeType,NcNode.TYPE_PROGRAM_PACKAGE).eq(NcNode::getDrawingNo,pkgNode.getDrawingNo())
         .eq(NcNode::getProcessNo,pkgNode.getProcessNo()).eq(NcNode::getProcessEdition,pkgNode.getProcessEdition())
         .eq(NcNode::getMachineGroupCode,pkgNode.getMachineGroupCode()).last("limit 1").one();
      if(node != null && node.getVersionNumber()!=null){
         return node.getVersionNumber()+1;
      }else{
         //以往没有,生成一个新的
         return 1;
      }
   }
   /**
    * 生成程序包名/程序名称
    * @param drawingNo 零组件号
@@ -336,12 +315,13 @@
    */
   public NcNode getLastCuredProgramWithoutProcessEdition(String drawingNo, String processNo, String machineCode) {
      Machine machine = machineService.getByCode(machineCode);
      List<Machine> sameGroupMachines = machineService.lambdaQuery().eq(Machine::getMachineGroupCode,machine.getMachineGroupCode()).list();
      List<String> machineCodesInGroup = sameGroupMachines.stream().map(Machine::getCode).toList();
      //List<Machine> sameGroupMachines = machineService.lambdaQuery().eq(Machine::getMachineGroupCode,machine.getMachineGroupCode()).list();
      //List<String> machineCodesInGroup = sameGroupMachines.stream().map(Machine::getCode).toList();
      List<NcNode> nodes = lambdaQuery().eq(NcNode::getNodeType,NcNode.TYPE_PROGRAM_PACKAGE)
         .eq(NcNode::getDrawingNo, drawingNo).eq(NcNode::getProcessNo, processNo)
         .likeRight(NcNode::getParentIds,"0,2,").eq(NcNode::getIsCured,1)
         .in(!machineCodesInGroup.isEmpty(),NcNode::getMachineCode,machineCodesInGroup)
         .eq(NcNode::getMachineGroupCode,machine.getMachineGroupCode())
         //.in(!machineCodesInGroup.isEmpty(),NcNode::getMachineCode,machineCodesInGroup)
         .eq(NcNode::getIsLastEdition,1).orderByDesc(NcNode::getCreateTime).list();
      if(nodes.isEmpty()){
@@ -456,9 +436,10 @@
    * 根据上级节点id,移动下面的加工机床节点
    * @param parentId 上级节点id
    */
   public void deleteMachineNodeByParentId(Long parentId) {
      baseMapper.deleteMachineNodeByParentId(parentId);
   }
   /*
   public void deleteMachineGroupNodeByParentId(Long parentId) {
      baseMapper.deleteMachineGroupNodeByParentId(parentId);
   }*/
   /**
    * 删除所偶非最新版本的数据(hodeHIs里面已经保存过)
@@ -466,4 +447,20 @@
   public void deleteOldEditionNodeData() {
      baseMapper.deleteOldEditionNodeData();
   }
   /**
    * //更新已固化的,同名、不同机床组的程序为锁定状态
    * @param packageNode
    */
    public void lockSameNameOtherMachineGroupProgramPackage(NcNode packageNode) {
      lambdaUpdate().eq(NcNode::getDrawingNo,packageNode.getDrawingNo())
         .eq(NcNode::getProcessNo,packageNode.getProcessNo())
         .eq(NcNode::getName,packageNode.getName())
         .ne(NcNode::getMachineGroupCode,packageNode.getMachineGroupCode())
         .eq(NcNode::getIsCured,1)
         .eq(NcNode::getIsLastEdition,1)
         .set(NcNode::getIsLocked,NcNode.LOCKED)
         .set(NcNode::getRemark,"回传固化同名程序锁定")
         .update();
    }
}