2021与蓝度共同重构项目,服务端
liuhaonan
2022-04-02 ab060213fe5b62ba8bf9b87c8a93ba7e9fea05db
单灯数据导出
已修改2个文件
69 ■■■■■ 文件已修改
sandu-common/src/main/java/com/sandu/common/file/impl/AliOssFileServiceImpl.java 53 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ximon-admin/src/main/java/com/sandu/ximon/admin/service/LightReportDataService.java 16 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
sandu-common/src/main/java/com/sandu/common/file/impl/AliOssFileServiceImpl.java
@@ -21,6 +21,7 @@
import javax.imageio.ImageIO;
import java.awt.image.BufferedImage;
import java.io.ByteArrayInputStream;
import java.io.File;
import java.io.IOException;
import java.time.LocalDateTime;
import java.time.format.DateTimeFormatter;
@@ -105,4 +106,56 @@
        return uploadDto;
    }
    public FileUploadDto uploadFile(File multipartFile) {
        String originalFilename = multipartFile.getName();
//        long size = multipartFile.get();
        String suffix = FileUtil.getSuffix(originalFilename);
        String dayStr = LocalDateTime.now().format(DateTimeFormatter.ofPattern("yyyyMMddHHmm"));
        String fileName = dayStr + UUID.fastUUID()+ "." + suffix;
        FileUploadDto uploadDto = new FileUploadDto();
        OSS ossClient = new OSSClientBuilder().build(endPoint, keyId, keySecret);
        try {
            //容器不存在,就创建
            if (!ossClient.doesBucketExist(bucketName)) {
                ossClient.createBucket(bucketName);
                CreateBucketRequest createBucketRequest = new CreateBucketRequest(bucketName);
                createBucketRequest.setCannedACL(CannedAccessControlList.PublicRead);
                ossClient.createBucket(createBucketRequest);
            }
            //上传文件
            PutObjectResult result = ossClient.putObject(new PutObjectRequest(bucketName, fileName, multipartFile));
            //设置权限 这里是公开读
//            ossClient.setBucketAcl(ossProperties.getBucketName(), CannedAccessControlList.PublicRead);
            if (result != null) {
                String url = "";
                // https://BucketName.Endpoint/ObjectName
                if (StrUtil.isBlank(host)) {
                    url = "https://" + bucketName + "." + endPoint + "/" + fileName;
                } else {
                    if (!host.endsWith("/")) {
                        url = host + "/" + fileName;
                    } else {
                        url = host + fileName;
                    }
                }
                uploadDto.setFileUrl(url);
            }
        } catch (Exception e) {
            log.error(e.getMessage(), e);
            throw new BusinessException(e.getMessage());
        } finally {
            //关闭
            ossClient.shutdown();
        }
        uploadDto.setOriginName(originalFilename);
        uploadDto.setFileName(fileName);
        uploadDto.setFileType(FileUtil.extName(originalFilename));
        uploadDto.setStorageType(FileStorageEnums.ALIBABA.getCode());
        return uploadDto;
    }
}
ximon-admin/src/main/java/com/sandu/ximon/admin/service/LightReportDataService.java
@@ -6,7 +6,9 @@
import com.alibaba.excel.ExcelWriter;
import com.alibaba.excel.write.metadata.WriteSheet;
import com.github.pagehelper.PageHelper;
import com.sandu.common.file.FileUploadDto;
import com.sandu.common.file.config.FileProperties;
import com.sandu.common.file.impl.AliOssFileServiceImpl;
import com.sandu.common.service.impl.BaseServiceImpl;
import com.sandu.common.util.ResUtils;
import com.sandu.ximon.admin.manager.iot.frame.inner.report.A5LightHeartbeatReportInnerFrame;
@@ -18,6 +20,7 @@
import org.springframework.beans.BeanUtils;
import org.springframework.core.io.ClassPathResource;
import org.springframework.stereotype.Service;
import org.springframework.web.multipart.MultipartFile;
import java.io.File;
import java.util.List;
@@ -32,6 +35,7 @@
public class LightReportDataService extends BaseServiceImpl<LightReportDataMapper, LightReportData> {
    private final FileProperties properties;
    private final AliOssFileServiceImpl fileService;
    /**
     * 保存上报的灯心跳数据
@@ -72,7 +76,7 @@
        PageHelper.startPage(pageNo, pageSize);
        List<LightReportDataBo> list = baseMapper.listReportData(keyword, deviceCode);
        File file = new File(properties.getUploadRootPath() + "export" + File.separator + RandomUtil.randomString(12) + ".xlsx");
        File file = new File("./" + RandomUtil.randomString(12) + ".xlsx");
//        File file = new File(properties.getUploadRootPath() + "export" + File.separator + RandomUtil.randomString(12) + ".xlsx");
//        ClassPathResource cpr = new ClassPathResource("public/exportOrder.xlsx");
//        FileUtil.mkParentDirs(file);
@@ -82,9 +86,13 @@
//        excelWriter.fill(list, writeSheet);
//        excelWriter.finish();
        EasyExcel.write(file, LightReportDataBo.class).sheet("单灯数据").doWrite(list);
        String url = file.getPath().replace(properties.getUploadRootPath(), "");
       return ResUtils.addPrefix(url);
        EasyExcel.write(file, LightReportDataBo.class).sheet("模版").doWrite(list);
        FileUploadDto fileUploadDto = fileService.uploadFile(file);
//        String url = file.getPath().replace(properties.getUploadRootPath(), "");
        String url = fileUploadDto.getFileUrl();
        file.delete();
       return url;
       // return list;
    }