| | |
| | | import org.springblade.mdm.program.mapper.NcNodeMapper; |
| | | import org.springblade.mdm.program.vo.NcNodeProgramQueryVO; |
| | | import org.springblade.mdm.program.vo.NcNodeProgramVO; |
| | | import org.springblade.mdm.program.vo.NcNodeQueryVO; |
| | | import org.springblade.mdm.program.vo.NcNodeVO; |
| | | import org.springframework.beans.BeanUtils; |
| | | import org.springframework.stereotype.Service; |
| | | |
| | | import java.util.ArrayList; |
| | | import java.util.List; |
| | | import java.util.Objects; |
| | | |
| | | /** |
| | | * 程序节点 |
| | |
| | | ncNode.setDescription(vo.getDescription()); |
| | | ncNode.setRemark(vo.getRemark()); |
| | | ncNode.setMachineCode(vo.getMachineCode()); |
| | | ncNode.setParentIds(buildParentIds(vo.getParentId())); |
| | | |
| | | this.updateById(ncNode); |
| | | } |
| | | |
| | |
| | | return baseMapper.lazyList(parentId); |
| | | } |
| | | |
| | | /** |
| | | * 程序节点 |
| | | * @param query |
| | | * @return |
| | | */ |
| | | public IPage<NcNodeProgramVO> programPageQuery(NcNodeProgramQueryVO query) { |
| | | return this.getBaseMapper().programPageQuery(Condition.getPage(query),query); |
| | | } |
| | | |
| | | /** |
| | | * 查询现有固化的程序,暂定条件:零组件号相同,且是同一机床组 |
| | |
| | | public NcNode getLastProgramNode(String name) { |
| | | return this.getBaseMapper().getLastProgramNode(name); |
| | | } |
| | | |
| | | |
| | | /** |
| | | * 首页树查询 |
| | | * @param queryVO |
| | | * @return |
| | | */ |
| | | public List<NcNodeVO> searchList(NcNodeQueryVO queryVO) { |
| | | //1.根据关进字和节点类型查询初始列表,查询的原始列表,需要hasChild字段,所以使用mapper.xml |
| | | List<NcNodeVO> oriList = this.getBaseMapper().searchList(queryVO); |
| | | //List<NcNode> list = this.lambdaQuery().eq(NcNode::getNodeType, queryVO.getNodeType()).like(NcNode::getName, queryVO.getName()).list(); |
| | | if ("10".equals(queryVO.getNodeType())) { |
| | | //搜索的根级别,直接返回 |
| | | return oriList; |
| | | } |
| | | |
| | | List<NcNodeVO> allVos = new ArrayList<NcNodeVO>();//已经加入过的节点,用于去重 |
| | | List<NcNodeVO> rootVos = new ArrayList<NcNodeVO>(); |
| | | |
| | | //List<NcNode> rootNodes = new ArrayList<>(); |
| | | |
| | | for(NcNodeVO vo : oriList){ |
| | | allVos.add(vo); |
| | | //上级各级的节点 |
| | | List<NcNodeVO> parents = this.getBaseMapper().searchListInIds(Func.toLongList(vo.getParentIds())); |
| | | |
| | | for(NcNodeVO pvo : parents){ |
| | | if(pvo.getParentId() == 0L){ |
| | | rootVos.add(pvo); |
| | | } |
| | | allVos.add(pvo); |
| | | } |
| | | } |
| | | for(NcNodeVO root : rootVos){ |
| | | addNodeChildren(root, allVos); |
| | | |
| | | } |
| | | return rootVos; |
| | | } |
| | | |
| | | void addNodeChildren(NcNodeVO node, List<NcNodeVO> allNodes) { |
| | | for(NcNodeVO vo : allNodes){ |
| | | if(Objects.equals(vo.getParentId(), node.getId())){ |
| | | node.addChildren(vo); |
| | | } |
| | | } |
| | | |
| | | if(node.getChildren()!=null && !node.getChildren().isEmpty()){ |
| | | for(NcNodeVO child : node.getChildren()){ |
| | | addNodeChildren(child, allNodes); |
| | | } |
| | | } |
| | | } |
| | | |
| | | NcNodeVO toNodeVO(NcNode node){ |
| | | NcNodeVO vo = new NcNodeVO(); |
| | | |
| | | BeanUtils.copyProperties(node, vo); |
| | | |
| | | return vo; |
| | | } |
| | | |
| | | } |