package org.springblade.mdm.program.service; import com.baomidou.mybatisplus.core.metadata.IPage; import lombok.AllArgsConstructor; import lombok.extern.slf4j.Slf4j; import org.springblade.core.mp.base.BizServiceImpl; import org.springblade.core.mp.support.Condition; import org.springblade.core.tool.utils.Func; import org.springblade.mdm.basesetting.machine.vo.MachineVO; import org.springblade.mdm.program.entity.NcNode; 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.NcNodeVO; import org.springframework.beans.BeanUtils; import org.springframework.stereotype.Service; import java.util.List; /** * 程序节点 * * @author yangys */ @Slf4j @Service @AllArgsConstructor public class NcNodeService extends BizServiceImpl { public void saveNcCode(NcNodeVO vo) { NcNode ncNode = new NcNode(); BeanUtils.copyProperties(vo, ncNode); ncNode.setId(null); ncNode.setParentIds(buildParentIds(vo.getParentId())); this.save(ncNode); } /** * 构建父id节点 * @param nodeId 节点id * @return */ String buildParentIds(long nodeId){ if(nodeId == 0L){ return "0"; } NcNode pNode = this.baseMapper.selectById(nodeId); return pNode.getParentIds()+","+pNode.getId(); } /** * 更新节点 * @param vo */ public void updateNcNode(NcNodeVO vo) { NcNode ncNode = this.getById(vo.getId()); ncNode.setName(vo.getName()); ncNode.setNodeType(vo.getNodeType()); ncNode.setDescription(vo.getDescription()); ncNode.setRemark(vo.getRemark()); ncNode.setMachineCode(vo.getMachineCode()); this.updateById(ncNode); } /** * 懒加载列表 * @param parentId 父节点ID * @return */ public List lazyList(Long parentId) { // 判断点击搜索但是没有查询条件的情况 if (Func.isEmpty(parentId)) { parentId = 0L; } return baseMapper.lazyList(parentId); } /** * 程序节点 * @param query * @return */ public IPage programPageQuery(NcNodeProgramQueryVO query) { return this.getBaseMapper().programPageQuery(Condition.getPage(query),query); } /** * 查询现有固化的程序,暂定条件:零组件号相同,且是同一机床组 * * @param name 程序名称 * @param name * @return */ public NcNode getLastProgramNode(String name) { return this.getBaseMapper().getLastProgramNode(name); } }