| | |
| | | |
| | | package org.springblade.mdm.gkw.programnode.service; |
| | | |
| | | import com.baomidou.mybatisplus.core.metadata.IPage; |
| | | import lombok.AllArgsConstructor; |
| | | import lombok.extern.slf4j.Slf4j; |
| | | import org.apache.commons.codec.digest.DigestUtils; |
| | | import org.apache.commons.io.FileUtils; |
| | | import org.apache.commons.lang3.StringUtils; |
| | | import org.springblade.core.log.exception.ServiceException; |
| | | import org.springblade.core.mp.base.BizServiceImpl; |
| | | import org.springblade.core.tool.utils.Charsets; |
| | | import org.springblade.core.tool.utils.Func; |
| | | import org.springblade.core.mp.support.Condition; |
| | | import org.springblade.mdm.basesetting.machine.MachineService; |
| | | import org.springblade.mdm.basesetting.machine.entity.Machine; |
| | | import org.springblade.mdm.gkw.programnode.entity.MachineFile; |
| | | import org.springblade.mdm.gkw.programnode.mapper.MachineFileMapper; |
| | | import org.springblade.mdm.machineback.vo.MachineBackFileHandleQueryVO; |
| | | import org.springblade.mdm.machineback.vo.MachineBackFileQueryVO; |
| | | import org.springblade.mdm.machineback.vo.MachineBackFileVO; |
| | | import org.springblade.mdm.utils.FileContentUtil; |
| | | import org.springframework.stereotype.Service; |
| | | import org.springframework.transaction.annotation.Transactional; |
| | |
| | | import java.io.File; |
| | | import java.io.IOException; |
| | | import java.io.InputStream; |
| | | import java.nio.charset.Charset; |
| | | import java.nio.file.Files; |
| | | import java.nio.file.Path; |
| | | import java.nio.file.Paths; |
| | | import java.util.List; |
| | | |
| | | /** |
| | | * 机床文件 |
| | |
| | | /** |
| | | * 检测文件是否存在 |
| | | * @param name 文件名 |
| | | * @param md5 文件md5 |
| | | * @param dirType 文件夹类型 |
| | | * @param machineCode 所属机床 |
| | | * @return 是否存在于库内 |
| | | */ |
| | | public boolean fileExists(String name, String md5,String machineCode) { |
| | | return this.lambdaQuery().eq(MachineFile::getName, name).eq(MachineFile::getMd5, md5).eq(MachineFile::getMachineCode, machineCode).count()>0; |
| | | public boolean fileExists(String name, String dirType,String machineCode) { |
| | | return this.lambdaQuery().eq(MachineFile::getName, name) |
| | | .eq(MachineFile::getDirType, dirType) |
| | | .eq(MachineFile::getMachineCode, machineCode).count()>0; |
| | | } |
| | | |
| | | @Transactional(readOnly = true) |
| | |
| | | } |
| | | |
| | | @Transactional |
| | | public void saveFileConent(Long id, String content) throws IOException { |
| | | public void saveFileContent(Long id, String content) throws IOException { |
| | | MachineFile machineFile = getById(id); |
| | | Machine machine = machineService.getByCode(machineFile.getMachineCode()); |
| | | |
| | |
| | | log.error("读取文件编码失败",e); |
| | | throw new ServiceException("获取文件编码失败"); |
| | | } |
| | | |
| | | FileUtils.writeStringToFile(filePath.toFile(),content,charsetName); |
| | | } |
| | | |
| | | /** |
| | | * 获取文件的输入流 |
| | | * @param machineFile |
| | | * @return |
| | | * @throws IOException |
| | | */ |
| | | public InputStream getInputStream(MachineFile machineFile) throws IOException { |
| | | |
| | | Machine machine = machineService.getByCode(machineFile.getMachineCode()); |
| | | |
| | | String filePathStr = getBasePath(machine,machineFile.getDirType())+ File.separator+machineFile.getName(); |
| | | Path filePath = Paths.get(filePathStr); |
| | | return Files.newInputStream(filePath); |
| | | |
| | | } |
| | | |
| | | @Transactional(readOnly = true) |
| | | public IPage<MachineBackFileVO> machineBackFilePageQuery(MachineBackFileQueryVO query) { |
| | | return this.baseMapper.machineBackFilePageQuery(Condition.getPage(query),query); |
| | | } |
| | | |
| | | public MachineFile getExistsFile(String name, String dirType, String machineCode) { |
| | | return this.lambdaQuery().eq(MachineFile::getName, name) |
| | | .eq(MachineFile::getDirType, dirType) |
| | | .eq(MachineFile::getMachineCode, machineCode).list().stream().findFirst().orElse(null); |
| | | } |
| | | |
| | | /** |
| | | * 回传程序处理 分页查询 |
| | | * @param query |
| | | * @return |
| | | */ |
| | | public IPage<MachineBackFileVO> handlePageQuery(MachineBackFileHandleQueryVO query) { |
| | | IPage<MachineBackFileVO> page = this.getBaseMapper().handlePageQuery(Condition.getPage(query),query); |
| | | return page; |
| | | } |
| | | } |