| | |
| | | import org.springblade.core.mp.base.BizServiceImpl; |
| | | import org.springblade.core.mp.support.Condition; |
| | | import org.springblade.core.tool.utils.BeanUtil; |
| | | import org.springblade.core.tool.utils.Func; |
| | | import org.springblade.mdm.basesetting.machine.entity.Machine; |
| | | import org.springblade.mdm.basesetting.machine.entity.MachineSpec; |
| | | import org.springblade.mdm.basesetting.machine.mapper.MachineMapper; |
| | | import org.springblade.mdm.basesetting.machine.vo.MachineQueryVO; |
| | | import org.springblade.mdm.basesetting.machine.vo.MachineSaveVO; |
| | | import org.springblade.mdm.basesetting.machine.vo.MachineVO; |
| | | import org.springframework.stereotype.Service; |
| | | import org.springframework.transaction.annotation.Transactional; |
| | | |
| | | import java.io.IOException; |
| | | import java.nio.file.Files; |
| | | import java.nio.file.InvalidPathException; |
| | | import java.nio.file.Path; |
| | | import java.nio.file.Paths; |
| | | |
| | | @Service |
| | | public class MachineService extends BizServiceImpl<MachineMapper, Machine> { |
| | |
| | | Machine machine = this.getById(vo.getId()); |
| | | |
| | | machine.setMachineSpec(vo.getMachineSpec()); |
| | | machine.setCode(vo.getCode()); |
| | | machine.setName(vo.getName()); |
| | | machine.setMachineGroupId(vo.getMachineGroupId()); |
| | | machine.setMachineGroupCode(vo.getMachineGroupCode()); |
| | | machine.setManufacturer(vo.getManufacturer()); |
| | | machine.setOperator(vo.getOperator()); |
| | | machine.setControlSystem(vo.getControlSystem()); |
| | | machine.setOwnerDept(vo.getOwnerDept()); |
| | | machine.setPollingHours(vo.getPollingHours()); |
| | | machine.setProgSendDir(vo.getProgSendDir()); |
| | | machine.setProgReceiveDir(vo.getProgReceiveDir()); |
| | | machine.setStatus(vo.getStatus()); |
| | | machine.setRemark(vo.getRemark()); |
| | | |
| | | return this.updateById(machine); |
| | | } |
| | | |
| | |
| | | public IPage<MachineVO> pageQuery(MachineQueryVO query) { |
| | | |
| | | LambdaQueryWrapper<Machine> queryWrapper = new LambdaQueryWrapper<>(); |
| | | queryWrapper.eq(query.getMachineGroupId()!=null, Machine::getMachineGroupId, query.getMachineGroupId()); |
| | | IPage<MachineVO> page = this.getBaseMapper().pageQuery(Condition.getPage(query),queryWrapper); |
| | | //queryWrapper.eq(query.getMachineGroupCode()!=null, Machine::getMachineGroupCode, query.getMachineGroupCode()); |
| | | //String keys = query.getKeyword(); |
| | | |
| | | //MachineSpec.valueOf() |
| | | for (MachineVO record : page.getRecords()) { |
| | | if(record.getMachineSpec() != null){ |
| | | MachineSpec spec = MachineSpec.valueOf(record.getMachineSpec()); |
| | | record.setMachineSpecName(spec.getText()); |
| | | } |
| | | |
| | | } |
| | | //queryWrapper.and(StringUtils.isNotEmpty(keys), wrapper -> wrapper.like(Machine::getCode, keys).or().like(Machine::getName, keys)); |
| | | IPage<MachineVO> page = this.getBaseMapper().pageQuery(Condition.getPage(query),query); |
| | | return page; |
| | | } |
| | | |
| | | /** |
| | | * 查询详情 |
| | | * @param id 机床id |
| | | * @return |
| | | */ |
| | | public MachineVO detail(long id) { |
| | | Machine machine = this.getById(id); |
| | | |
| | | MachineVO vo = new MachineVO(); |
| | | BeanUtil.copyProperties(machine, vo); |
| | | |
| | | return vo; |
| | | } |
| | | |
| | | /** |
| | | * 产生机床回传结构数据 |
| | | * @param id |
| | | */ |
| | | public void genMachineFileBackDirs(Long id) throws IOException { |
| | | Machine machine = this.getById(id); |
| | | if(Func.isNotBlank(machine.getProgReceiveDir())){ |
| | | if(isLegalDirectoryPath(machine.getProgReceiveDir())) { |
| | | Path path = Paths.get(machine.getProgReceiveDir()); |
| | | Files.createDirectories(path); |
| | | }else{ |
| | | throw new RuntimeException("非法的目录格式"); |
| | | } |
| | | } |
| | | } |
| | | |
| | | /** |
| | | * 判断是否是合法的目录格式 |
| | | * @param path |
| | | * @return |
| | | */ |
| | | static boolean isLegalDirectoryPath(String path) { |
| | | // 基础检查 |
| | | if (path == null || path.trim().isEmpty()) { |
| | | return false; |
| | | } |
| | | |
| | | // 使用NIO检查路径格式 |
| | | Path nioPath; |
| | | try { |
| | | nioPath = Paths.get(path); |
| | | if (!nioPath.normalize().toString().equals(path)) { |
| | | return false; // 路径不规范 |
| | | } |
| | | } catch (InvalidPathException ex) { |
| | | return false; |
| | | } |
| | | |
| | | return true; |
| | | |
| | | } |
| | | |
| | | /** |
| | | * 根据机床编码获取机床 |
| | | * @param machineCode 机床编码 |
| | | * @return |
| | | */ |
| | | public Machine getByCode(String machineCode) { |
| | | return this.lambdaQuery().eq(Machine::getCode, machineCode).one(); |
| | | } |
| | | } |