diff --git a/jero-boot/jero-boot-modules/src/main/java/com/jero/modules/ota/service/impl/OtaBaCxAqcsServiceImpl.java b/jero-boot/jero-boot-modules/src/main/java/com/jero/modules/ota/service/impl/OtaBaCxAqcsServiceImpl.java index 7c17ee75a..832a0a33a 100644 --- a/jero-boot/jero-boot-modules/src/main/java/com/jero/modules/ota/service/impl/OtaBaCxAqcsServiceImpl.java +++ b/jero-boot/jero-boot-modules/src/main/java/com/jero/modules/ota/service/impl/OtaBaCxAqcsServiceImpl.java @@ -3,6 +3,8 @@ package com.jero.modules.ota.service.impl; import com.alibaba.fastjson.JSONArray; import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; import com.jero.common.exception.JeroBootException; +import com.jero.modules.oss.entity.OSSFile; +import com.jero.modules.oss.service.IOSSFileService; import com.jero.modules.ota.entity.*; import com.jero.modules.ota.enums.OtaModuleEnum; import com.jero.modules.ota.mapper.OtaBaCxAqcsMapper; @@ -51,6 +53,9 @@ public class OtaBaCxAqcsServiceImpl extends ServiceImpl list = ImportFileUtil.uploadFiles1(attFile, strs, ossFileService); + JSONArray obj = new JSONArray(); + for (OSSFile f : list) { + AttachmentEO aeo = new AttachmentEO(); + aeo.setId(f.getId()); + aeo.setFileName(f.getFileName()); + obj.add(aeo); + } + aqcs.setZmcl(obj.toString()); return aqcs; } } diff --git a/jero-boot/jero-boot-modules/src/main/java/com/jero/modules/ota/service/impl/OtaBaCxKsjxtmccsServiceImpl.java b/jero-boot/jero-boot-modules/src/main/java/com/jero/modules/ota/service/impl/OtaBaCxKsjxtmccsServiceImpl.java index 3c2d88456..518cca7f6 100644 --- a/jero-boot/jero-boot-modules/src/main/java/com/jero/modules/ota/service/impl/OtaBaCxKsjxtmccsServiceImpl.java +++ b/jero-boot/jero-boot-modules/src/main/java/com/jero/modules/ota/service/impl/OtaBaCxKsjxtmccsServiceImpl.java @@ -5,6 +5,8 @@ import com.alibaba.fastjson.JSONArray; import com.alibaba.fastjson.JSONObject; import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; import com.jero.common.exception.JeroBootException; +import com.jero.modules.oss.entity.OSSFile; +import com.jero.modules.oss.service.IOSSFileService; import com.jero.modules.ota.entity.*; import com.jero.modules.ota.enums.OtaModuleEnum; import com.jero.modules.ota.enums.OtaTitleEnum; @@ -58,6 +60,10 @@ public class OtaBaCxKsjxtmccsServiceImpl extends ServiceImpl oldList = getByOtaId(otaId); - List mccsList = parseFile(upFile, otaId, cut); + List mccsList = parseFile(upFile, attFile, otaId, cut); ComparisonUtil cu = new ComparisonUtil(); List reList = cu.comparisonListRecord(otaId, OtaModuleEnum.CX_KSJDXTMCYCS, OtaTitleEnum.XTLB.getName(), oldList, mccsList, sysDictService); deleteByOtaId(otaId); @@ -233,7 +239,7 @@ public class OtaBaCxKsjxtmccsServiceImpl extends ServiceImpl parseFile(File upFile, String otaId, String cut) throws Exception { + private List parseFile(File upFile, File attFile, String otaId, String cut) throws Exception { Date now = new Date(); List mccsList = new ArrayList<>(); Workbook wb = ImportFileUtil.readExcel(upFile); @@ -248,7 +254,8 @@ public class OtaBaCxKsjxtmccsServiceImpl extends ServiceImpl list = ImportFileUtil.uploadFiles1(attFile, strs, ossFileService); + JSONArray obj = new JSONArray(); + for (OSSFile f : list) { + AttachmentEO aeo = new AttachmentEO(); + aeo.setId(f.getId()); + aeo.setFileName(f.getFileName()); + obj.add(aeo); + } + otaBaCxZxsjyq.setZmcl(obj.toString()); return otaBaCxZxsjyq; } } diff --git a/jero-boot/jero-boot-modules/src/main/java/com/jero/modules/ota/utils/ImportFileUtil.java b/jero-boot/jero-boot-modules/src/main/java/com/jero/modules/ota/utils/ImportFileUtil.java index 46e896532..20d21a7bb 100644 --- a/jero-boot/jero-boot-modules/src/main/java/com/jero/modules/ota/utils/ImportFileUtil.java +++ b/jero-boot/jero-boot-modules/src/main/java/com/jero/modules/ota/utils/ImportFileUtil.java @@ -3,14 +3,18 @@ package com.jero.modules.ota.utils; import com.aliyuncs.utils.IOUtils; import com.jero.common.constant.enums.CutEnum; import com.jero.common.exception.JeroBootException; +import com.jero.modules.oss.entity.OSSFile; +import com.jero.modules.oss.service.IOSSFileService; import com.jero.modules.split.common.FileUnZip; import com.jero.modules.system.service.ISysDictService; import org.apache.commons.io.FileUtils; import org.apache.commons.lang3.ObjectUtils; import org.apache.commons.lang3.StringUtils; +import org.apache.http.entity.ContentType; import org.apache.poi.hssf.usermodel.HSSFWorkbook; import org.apache.poi.ss.usermodel.*; import org.apache.poi.xssf.usermodel.XSSFWorkbook; +import org.springframework.mock.web.MockMultipartFile; import org.springframework.web.multipart.MultipartFile; import javax.servlet.http.HttpServletResponse; @@ -174,4 +178,66 @@ public class ImportFileUtil { return res; } + public static File findFile(File file, String fileName) throws Exception { + // 获取此地址中的所有文件以及文件夹(File[] list) + File[] listFiles = file.listFiles();// 获取此地址中的所有文件以及文件夹(File[] list) + for (File file1 : listFiles) {// 遍历数组 + // 判断当前的File对象是否为文件夹 + if (!file1.isDirectory()) { + String name = file1.getName(); + if (name.equals(fileName)) { + return file1; + } + } + } + return null; + } + + public static MultipartFile createMfileByFile(File file) { + MultipartFile mFile = null; + try { + FileInputStream fileInputStream = new FileInputStream(file); + String fileName = file.getName(); + fileName = fileName.substring((fileName.lastIndexOf(File.separator) + 1)); + mFile = new MockMultipartFile(fileName, fileName, ContentType.APPLICATION_OCTET_STREAM.toString(), fileInputStream); + } catch (Exception e) { + e.printStackTrace(); + } + return mFile; + } + + public static List uploadFiles1(File attFile, String[] strs, IOSSFileService ossFileService) throws Exception { + List res = new ArrayList<>(); + for (int i = 0; i < strs.length; i++) { + File file = ImportFileUtil.findFile(attFile, strs[i]); + if (null == file) { + throw new JeroBootException("找不到文件:" + strs[i]); + } + OSSFile ossFile = ossFileService.uploadLocalOfCos(ImportFileUtil.createMfileByFile(file), "", null, null); + if (ObjectUtils.isNotEmpty(ossFile)) { + res.add(ossFile); + } + } + return res; + } + + public static String uploadFiles(File attFile, String[] strs, IOSSFileService ossFileService) throws Exception { + String res = ""; + for (int i = 0; i < strs.length; i++) { + File file = ImportFileUtil.findFile(attFile, strs[i]); + if (null == file) { + throw new JeroBootException("找不到文件:" + strs[i]); + } + OSSFile ossFile = ossFileService.uploadLocalOfCos(ImportFileUtil.createMfileByFile(file), "", null, null); + if (ObjectUtils.isNotEmpty(ossFile)) { + if (i >= strs.length - 1) { + res += ossFile.getId(); + } else { + res += ossFile.getId() + ","; + } + } + } + return res; + } + }