package org.springblade.mdm.machinefile.service; import com.baomidou.mybatisplus.core.metadata.IPage; import lombok.AllArgsConstructor; import org.springblade.core.mp.base.BizServiceImpl; import org.springblade.core.mp.support.Condition; import org.springblade.core.oss.OssTemplate; import org.springblade.core.oss.model.BladeFile; import org.springblade.core.tool.utils.Func; import org.springblade.mdm.machinefile.entity.MachineFile; import org.springblade.mdm.machinefile.entity.MachineAcceptedFile; import org.springblade.mdm.machinefile.mapper.MachineAcceptedFileMapper; import org.springblade.mdm.machinefile.vo.MachineAcceptedFileHandleQueryVO; import org.springblade.mdm.machinefile.vo.MachineBackFileQueryVO; import org.springblade.mdm.machinefile.vo.MachineAcceptedFileVO; import org.springframework.stereotype.Service; import org.springframework.transaction.annotation.Transactional; import java.io.IOException; import java.io.InputStream; import java.nio.file.Files; import java.nio.file.Paths; import java.util.List; @AllArgsConstructor @Service public class MachineAcceptedFileService extends BizServiceImpl { private final MachineFileService machineFileService; private final OssTemplate ossTemplate; /** * 接受 * @param ids */ @Transactional public void accept(String ids) throws IOException { List idList = Func.toLongList(ids); for(Long id : idList){ acceptFile(id); } } /** * 拒绝 * @param ids */ public void reject(String ids) { List idList = Func.toLongList(ids); MachineFile mf; for(Long id : idList){ mf = machineFileService.getById(id); mf.reject(); machineFileService.updateById(mf); } } @Transactional public void acceptAll() throws IOException { MachineBackFileQueryVO query = new MachineBackFileQueryVO(); query.setCurrent(1); query.setSize(Integer.MAX_VALUE); IPage aceptPage = machineFileService.filePageForAccept(query); for(MachineFile mf: aceptPage.getRecords()){ acceptFile(mf.getId()); } } /** * 接收文件 * @param machineFileId 机床文件id * @throws IOException */ void acceptFile(Long machineFileId) throws IOException { MachineFile machineFile = machineFileService.getById(machineFileId); machineFile.accept(); machineFileService.updateById(machineFile); //新建一个machineaceptedfile对象,存储接收后的数据 MachineAcceptedFile machineAcceptedFile = new MachineAcceptedFile(); machineAcceptedFile.setMachineFileId(machineFileId); machineAcceptedFile.setName(machineFile.getName()); String fullPath = machineFileService.getFilePath(machineFile); try(InputStream inputStream = Files.newInputStream(Paths.get(fullPath));){ BladeFile bfile = ossTemplate.putFile(machineFile.getName(),inputStream); machineAcceptedFile.setOssName(bfile.getName()); } save(machineAcceptedFile); } /** * 机床回传程序处理分页查询 * @param query 查询参数对象 * @return 分页数据 */ public IPage handlePageQuery(MachineAcceptedFileHandleQueryVO query) { IPage page = this.getBaseMapper().handlePageQuery(Condition.getPage(query),query); return page; } }