blade-service/blade-mdm/src/main/java/org/springblade/mdm/commons/controller/OssFileController.java
¶Ô±ÈÐÂÎļþ @@ -0,0 +1,55 @@ package org.springblade.mdm.commons.controller; import com.baomidou.mybatisplus.core.metadata.IPage; import com.github.xiaoymin.knife4j.annotations.ApiOperationSupport; import io.swagger.v3.oas.annotations.Operation; import io.swagger.v3.oas.annotations.tags.Tag; import lombok.extern.slf4j.Slf4j; import org.apache.commons.lang3.StringUtils; import org.springblade.core.mp.support.Condition; import org.springblade.core.secure.utils.AuthUtil; import org.springblade.core.tool.api.R; import org.springblade.core.tool.utils.Func; import org.springblade.mdm.commons.service.OssFileCommonService; import org.springblade.mdm.commons.service.ParamService; import org.springblade.mdm.commons.vo.RemindVO; import org.springblade.mdm.flow.service.FlowBusinessService; import org.springblade.mdm.flow.vo.FlowVO; import org.springblade.mdm.flow.vo.TodoQueryVO; import org.springblade.mdm.program.service.NcProgramApprovedService; import org.springblade.mdm.program.vo.NcProgramExportDncPageVO; import org.springblade.mdm.program.vo.NcProgramExportDncQueryVO; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.web.bind.annotation.GetMapping; import org.springframework.web.bind.annotation.RequestMapping; import org.springframework.web.bind.annotation.RestController; import java.util.List; @Slf4j @RestController @RequestMapping("/ossfile") @Tag(name = "任塿é", description = "任塿é") public class OssFileController { @Autowired private NcProgramApprovedService ncProgramApprovedService; @Autowired private OssFileCommonService ossFileCommonService; @Autowired private ParamService paramService; /** * å¾ åä»»å¡å表页 */ @GetMapping("file-content") @ApiOperationSupport(order = 3) @Operation(summary = "å¾ å任塿°éæ¥è¯¢", description = "å¾ å任塿°éæ¥è¯¢") public R<String> fileContent(String ossFileName) { if(StringUtils.isBlank(ossFileName)){ throw new RuntimeException("æä»¶å为空"); } return R.data(ossFileCommonService.getOssFileContent(ossFileName)); } } blade-service/blade-mdm/src/main/java/org/springblade/mdm/commons/service/OssFileCommonService.java
¶Ô±ÈÐÂÎļþ @@ -0,0 +1,85 @@ package org.springblade.mdm.commons.service; import jakarta.servlet.http.HttpServletResponse; import lombok.extern.slf4j.Slf4j; import org.apache.commons.io.IOUtils; import org.apache.commons.lang3.StringUtils; import org.flowable.engine.RuntimeService; import org.springblade.core.log.exception.ServiceException; import org.springblade.core.mp.base.BizServiceImpl; import org.springblade.core.oss.OssTemplate; import org.springblade.core.oss.model.BladeFile; import org.springblade.core.tool.utils.UrlUtil; import org.springblade.mdm.flow.entity.FlowProgramFile; import org.springblade.mdm.flow.mapper.FlowProgramFileMapper; import org.springblade.mdm.flow.service.FlowCommonService; import org.springblade.mdm.flow.service.FlowProgramProperties; import org.springblade.mdm.flow.vo.ProgramUploadVO; import org.springblade.mdm.program.service.NcNodeService; import org.springblade.mdm.utils.FileContentUtil; import org.springblade.mdm.utils.ProgramFileNameCheckUtil; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Service; import org.springframework.web.multipart.MultipartFile; import java.io.ByteArrayInputStream; import java.io.IOException; import java.io.InputStream; import java.util.List; /** * OSSæä»¶éç¨æå¡ï¼å æ¬ä¸è½½ï¼è¿åæä»¶å 容ç * * @author yangys */ @Slf4j @Service public class OssFileCommonService{ @Autowired private OssTemplate ossTemplate; /** * è·åæä»¶å 容 * @param ossFileName æä»¶id * @return æä»¶å å®¹ææ¬ */ public String getOssFileContent(String ossFileName) { String result; try (InputStream inputStream = ossTemplate.statFileStream(ossFileName)) { ByteArrayInputStream bos = new ByteArrayInputStream(inputStream.readAllBytes()); boolean isText = StringUtils.endsWithIgnoreCase(ossFileName,".txt") || StringUtils.endsWithIgnoreCase(ossFileName,".nc")|| StringUtils.endsWithIgnoreCase(ossFileName,".xml"); if(!isText){ isText= FileContentUtil.isTextFile(bos); } if(isText){ bos.reset(); result = FileContentUtil.getContentFromStream(bos); }else{ result = "<éææ¬æä»¶>"; } } catch (IOException e) { throw new RuntimeException(e); } return result; } /** * ä»ossä¸è½½æä»¶ * @param ossFileName ossçæä»¶å * @param downloadFileName æå®ä¸è½½çæä»¶å * @param response httpç¸åº * @throws IOException æä½æä»¶IO å¼å¸¸ */ public void download(String ossFileName, String downloadFileName,HttpServletResponse response) throws IOException { response.setHeader("Content-Disposition", "attachment; filename="+ UrlUtil.encode(downloadFileName)); response.setContentType("application/octet-stream"); try(InputStream ins = ossTemplate.statFileStream(ossFileName);){ IOUtils.copy(ins,response.getOutputStream()); } } } blade-service/blade-mdm/src/main/java/org/springblade/mdm/machinefile/controller/FileSendRecordController.java
@@ -14,6 +14,8 @@ import org.springblade.mdm.basesetting.machine.service.MachineService; import org.springblade.mdm.basesetting.producedivision.entity.MdmDept; import org.springblade.mdm.basesetting.producedivision.service.MdmDeptService; import org.springblade.mdm.commons.service.OssFileCommonService; import org.springblade.mdm.machinefile.entity.FileSendRecord; import org.springblade.mdm.machinefile.entity.MachineFile; import org.springblade.mdm.machinefile.service.FileSendRecordService; import org.springblade.mdm.machinefile.service.MachineFileChangeHisService; @@ -43,7 +45,7 @@ @Slf4j public class FileSendRecordController { @Autowired private MdmDeptService mdmDeptService; private OssFileCommonService ossFileCommonService; @Autowired private FileSendRecordService fileSendRecordService; @@ -56,6 +58,13 @@ return R.data(fileSendRecordService.pageQuery(query)); } @GetMapping("/download-by-id") @Operation(summary = "ä¸åæä»¶è®°å½å表", description = "ä¸åæä»¶è®°å½å表") public void downloadByRecordId(Long id,HttpServletResponse response) throws IOException { FileSendRecord record = fileSendRecordService.getById(id); ossFileCommonService.download(record.getOssName(),record.getName(),response); } @GetMapping("/export-excel") @Operation(summary = "ä¸åæä»¶è®°å½è¡¨å¯¼åº", description = "ä¸åæä»¶è®°å½è¡¨å¯¼åº") blade-service/blade-mdm/src/main/java/org/springblade/mdm/machinefile/controller/MachineAcceptedFileHandleController.java
@@ -16,12 +16,16 @@ import org.springblade.core.tool.utils.DateUtil; import org.springblade.core.tool.utils.Func; import org.springblade.core.tool.utils.UrlUtil; import org.springblade.mdm.commons.service.OssFileCommonService; import org.springblade.mdm.machinefile.entity.FileSendRecord; import org.springblade.mdm.machinefile.entity.MachineAcceptedFile; import org.springblade.mdm.machinefile.service.MachineFileService; import org.springblade.mdm.machinefile.service.MachineAcceptedFileService; import org.springblade.mdm.machinefile.service.NcProgramExportInnerService; import org.springblade.mdm.machinefile.vo.MachineBackFileHandleExcelVO; import org.springblade.mdm.machinefile.vo.MachineAcceptedFileHandleQueryVO; import org.springblade.mdm.machinefile.vo.MachineAcceptedFileVO; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.web.bind.annotation.*; import java.io.IOException; @@ -34,7 +38,7 @@ @RequestMapping("/machinefile/filehandle") @Tag(name = "æºåºåä¼ ç¨åºå¤ç", description = "æºåºåä¼ ç¨åºå¤ç") public class MachineAcceptedFileHandleController { private final OssFileCommonService ossFileCommonService; private final MachineAcceptedFileService acceptedFileService; private final NcProgramExportInnerService ncProgramExportInnerService; /** @@ -45,6 +49,13 @@ public R<IPage<MachineAcceptedFileVO>> page(MachineAcceptedFileHandleQueryVO query) { IPage<MachineAcceptedFileVO> pages = acceptedFileService.handlePageQuery(query); return R.data(pages); } @GetMapping("/download-by-id") @Operation(summary = "ä¸åæä»¶è®°å½å表", description = "ä¸åæä»¶è®°å½å表") public void downloadByRecordId(Long id,HttpServletResponse response) throws IOException { MachineAcceptedFile acceptedFile = acceptedFileService.getById(id); ossFileCommonService.download(acceptedFile.getOssName(),acceptedFile.getName(),response); } @GetMapping("export-to-inner") @@ -102,7 +113,7 @@ txt = "åºå"; break; case 3: txt = "å离"; txt = "ä¸´æ¶æ´æ¹å"; break; default: txt = "æªç¥"; blade-service/blade-mdm/src/main/java/org/springblade/mdm/machinefile/entity/FileSendRecord.java
@@ -30,6 +30,11 @@ * æä»¶åèæ° */ private Long fileSize; /** * 对象å卿件åï¼å¤æ¥ */ private String ossName; /** * çææä»¶å¤§å°çæ¾ç¤ºææ¬ * @return æ¾ç¤ºææ¬ blade-service/blade-mdm/src/main/java/org/springblade/mdm/machinefile/mapper/FileSendRecordMapper.java
@@ -9,10 +9,10 @@ public interface FileSendRecordMapper extends BladeMapper<FileSendRecord> { /** * å页æçº¿å¢è®°å½ * @param page * @param query * @return * æä»¶ä¸åè®°å½å页æ¥è¯¢ * @param page åé¡µä¿¡æ¯ * @param query æ¥è¯¢åæ° * @return åé¡µæ°æ® */ IPage<FileSendRecordVO> pageQuery(IPage<FileSendRecordVO> page, @Param("query")FileSendRecordQueryVO query); blade-service/blade-mdm/src/main/java/org/springblade/mdm/machinefile/mapper/FileSendRecordMapper.xml
@@ -13,7 +13,7 @@ <!--æä»¶è®°å½æ¥è¯¢--> <select id="pageQuery" resultType="org.springblade.mdm.machinefile.vo.FileSendRecordVO"> select f.id,f.name,f.machine_code,f.file_size,f.create_time,f.update_time,u.name create_user_name select f.id,f.name,f.machine_code,f.file_size,f.oss_name,f.create_time,f.update_time,u.name create_user_name from mdm_file_send_record f left join blade_user u on f.create_user=u.id <where> f.is_deleted=0 blade-service/blade-mdm/src/main/java/org/springblade/mdm/machinefile/mapper/MachineAcceptedFileMapper.xml
@@ -22,7 +22,7 @@ --> <!--æºåºåä¼ ç¨åºå¤çå页--> <select id="handlePageQuery" resultType="org.springblade.mdm.machinefile.vo.MachineAcceptedFileVO"> select f.id,f.name,f.create_time,m.code machine_code, m.name machine_name,f.create_time,mf.program_status,mf.file_create_time,f.export_time,f.create_time select f.id,f.name,f.oss_name,f.create_time,m.code machine_code, m.name machine_name,f.create_time,mf.program_status,mf.file_create_time,f.export_time,f.create_time from mdm_machine_accepted_file f left join mdm_machine_file mf on f.machine_file_id=mf.id left join mdm_machine m on mf.machine_code=m.code blade-service/blade-mdm/src/main/java/org/springblade/mdm/machinefile/service/FileSendRecordService.java
@@ -26,4 +26,6 @@ public IPage<FileSendRecordVO> pageQuery(FileSendRecordQueryVO query) { return baseMapper.pageQuery(Condition.getPage(query),query); } } blade-service/blade-mdm/src/main/java/org/springblade/mdm/machinefile/vo/FileSendRecordVO.java
@@ -16,5 +16,6 @@ @Schema(description = "æºåºç¼å·/åä¼ æºåº") private String machineCode; @Schema(description = "ossæä»¶å") private String ossName; } blade-service/blade-mdm/src/main/java/org/springblade/mdm/machinefile/vo/MachineAcceptedFileVO.java
@@ -23,6 +23,7 @@ private Date fileCreateTime; @Schema(description = "å¯¼åºæ¶é´") private Date exportTime; @Schema(description = "ossæä»¶å") private String ossName; }