diff options
| author | shizhendong <[email protected]> | 2023-07-07 10:59:22 +0800 |
|---|---|---|
| committer | shizhendong <[email protected]> | 2023-07-07 10:59:22 +0800 |
| commit | ad04d58d8a11dd4090e0f146b444a2148bcccd92 (patch) | |
| tree | 09c3afbb8ed4528dbdce2b299cc5321b09b11391 | |
| parent | cf220ece1fe624e005b3019ddf3018e938ac10f3 (diff) | |
fix: NEZ-2884 导入错误格式 json 文件,修改提示信息
6 files changed, 23 insertions, 12 deletions
diff --git a/nz-admin/src/main/java/com/nis/common/utils/CSVUtils.java b/nz-admin/src/main/java/com/nis/common/utils/CSVUtils.java index 95190bf2..afa374fa 100644 --- a/nz-admin/src/main/java/com/nis/common/utils/CSVUtils.java +++ b/nz-admin/src/main/java/com/nis/common/utils/CSVUtils.java @@ -7,19 +7,18 @@ import cn.hutool.core.text.csv.CsvData; import cn.hutool.core.text.csv.CsvReader; import cn.hutool.core.text.csv.CsvRow; import cn.hutool.core.text.csv.CsvUtil; -import cn.hutool.core.util.CharsetUtil; import cn.hutool.log.Log; +import com.nis.common.exception.NZException; import org.apache.commons.io.FileUtils; import org.springframework.web.multipart.MultipartFile; import java.io.File; -import java.io.IOException; import java.util.List; import java.util.UUID; public class CSVUtils { - private static Log logger = Log.get(); + private final static Log log = Log.get(); static final CsvReader reader = CsvUtil.getReader(); @@ -30,8 +29,9 @@ public class CSVUtils { FileUtils.copyInputStreamToFile(multipartFile.getInputStream(), tempCsvFile); //data = reader.read(tempCsvFile); data = reader.read(ResourceUtil.getReader(tempCsvFile.getPath(), CharsetDetector.detect(tempCsvFile))); - } catch (IOException e) { - logger.error(e); + } catch (Exception e) { + log.error(e, "[getCsvDataFromMultipartFile] [error] [file: {}]", multipartFile.getOriginalFilename()); + throw new NZException(RCode.IMPORT_FILE_PARSE_ERROR); } finally { if (tempCsvFile != null && tempCsvFile.exists()) tempCsvFile.delete(); } diff --git a/nz-admin/src/main/java/com/nis/common/utils/ExcelUtils.java b/nz-admin/src/main/java/com/nis/common/utils/ExcelUtils.java index d1e46a12..42678be1 100644 --- a/nz-admin/src/main/java/com/nis/common/utils/ExcelUtils.java +++ b/nz-admin/src/main/java/com/nis/common/utils/ExcelUtils.java @@ -2,6 +2,7 @@ package com.nis.common.utils; import cn.hutool.core.util.StrUtil; +import cn.hutool.log.Log; import com.nis.common.exception.NZException; import org.apache.commons.io.IOUtils; import org.apache.poi.hssf.usermodel.HSSFCellStyle; @@ -18,7 +19,6 @@ import java.io.IOException; import java.io.InputStream; import java.text.NumberFormat; import java.text.SimpleDateFormat; -import java.util.ArrayList; import java.util.List; import java.util.Map; @@ -27,6 +27,9 @@ import java.util.Map; * apache poi excel工具类 */ public class ExcelUtils { + + private final static Log log = Log.get(); + // 2003- 版本的excel private final static String excel2003L = ".xls"; // 2007+ 版本的excel @@ -269,7 +272,8 @@ public class ExcelUtils { Workbook work = null; try { work = ExcelUtils.getWork(excelFile.getOriginalFilename(), excelFile.getInputStream()); - } catch (IOException e) { + } catch (Exception e) { + log.error(e, "[getWorkBookFromMultipartFile] [error] [file: {}]", excelFile.getOriginalFilename()); throw new NZException(RCode.EXCELFILE_PARSE_ERROR); } finally { if (work != null) { diff --git a/nz-admin/src/main/java/com/nis/modules/dashboard/service/impl/VisualDashboardServiceImpl.java b/nz-admin/src/main/java/com/nis/modules/dashboard/service/impl/VisualDashboardServiceImpl.java index 4e29817a..076cada0 100644 --- a/nz-admin/src/main/java/com/nis/modules/dashboard/service/impl/VisualDashboardServiceImpl.java +++ b/nz-admin/src/main/java/com/nis/modules/dashboard/service/impl/VisualDashboardServiceImpl.java @@ -701,7 +701,7 @@ public class VisualDashboardServiceImpl extends ServiceImpl<VisualDashboardDao, importDataList = JSONObject.parseArray(str, LinkedHashMap.class); } catch (Exception e) { log.error(e, "[importChartData] [Import file parsing failed] [file: {}]", multipartFile.getOriginalFilename()); - throw new NZException(RCode.EXCELFILE_PARSE_ERROR); + throw new NZException(RCode.IMPORT_FILE_PARSE_ERROR); } // 表头信息 国际化之后的 diff --git a/nz-admin/src/main/java/com/nis/modules/sys/service/BasicImportAndExportServices.java b/nz-admin/src/main/java/com/nis/modules/sys/service/BasicImportAndExportServices.java index 17f323dc..58072b89 100644 --- a/nz-admin/src/main/java/com/nis/modules/sys/service/BasicImportAndExportServices.java +++ b/nz-admin/src/main/java/com/nis/modules/sys/service/BasicImportAndExportServices.java @@ -13,7 +13,7 @@ public interface BasicImportAndExportServices { void getTemplate(String sysHeaderJsonStr, String format, String fileName, HttpServletResponse response) throws IOException; - List<Map<Integer, String>> getImportDataFromMultipartFile(MultipartFile multipartFile, String sysHeaderJsonStr) throws IOException; + List<Map<Integer, String>> getImportDataFromMultipartFile(MultipartFile multipartFile, String sysHeaderJsonStr); void exportDataByFormat(HttpServletResponse response, List<List<String>> exportDataList, String sysHeaderJsonStr, String format, String fileName) throws IOException; diff --git a/nz-admin/src/main/java/com/nis/modules/sys/service/impl/BasicImportAndExportServicesImpl.java b/nz-admin/src/main/java/com/nis/modules/sys/service/impl/BasicImportAndExportServicesImpl.java index 88cd3d71..ba347f7b 100644 --- a/nz-admin/src/main/java/com/nis/modules/sys/service/impl/BasicImportAndExportServicesImpl.java +++ b/nz-admin/src/main/java/com/nis/modules/sys/service/impl/BasicImportAndExportServicesImpl.java @@ -124,7 +124,7 @@ public class BasicImportAndExportServicesImpl implements BasicImportAndExportSer } @Override - public List<Map<Integer, String>> getImportDataFromMultipartFile(MultipartFile multipartFile, String sysHeaderJsonStr) throws IOException { + public List<Map<Integer, String>> getImportDataFromMultipartFile(MultipartFile multipartFile, String sysHeaderJsonStr) { String fileType = FilenameUtils.getExtension(multipartFile.getOriginalFilename()); Map<String, String> exportHeaderMap = this.getI18nHeaderMap(sysHeaderJsonStr); @@ -176,8 +176,14 @@ public class BasicImportAndExportServicesImpl implements BasicImportAndExportSer break; } case JSON: { - String str = IoUtil.read(multipartFile.getInputStream(), CharsetUtil.charset("UTF-8")); - List<LinkedHashMap> mapList = JSONObject.parseArray(str, LinkedHashMap.class); + List<LinkedHashMap> mapList = ListUtil.list(true); + try { + String str = IoUtil.read(multipartFile.getInputStream(), CharsetUtil.charset("UTF-8")); + mapList = JSONObject.parseArray(str, LinkedHashMap.class); + } catch (Exception e) { + log.error(e, "[getJSONDataFromMultipartFile] [error] [file: {}]", multipartFile.getOriginalFilename()); + throw new NZException(RCode.IMPORT_FILE_PARSE_ERROR); + } LinkedHashMap map = mapList.get(0); // 表头校验 List<String> arrayList = new ArrayList<>(map.keySet()); diff --git a/nz-common/src/main/java/com/nis/common/utils/RCode.java b/nz-common/src/main/java/com/nis/common/utils/RCode.java index 2a12ca74..209c37f2 100644 --- a/nz-common/src/main/java/com/nis/common/utils/RCode.java +++ b/nz-common/src/main/java/com/nis/common/utils/RCode.java @@ -954,6 +954,7 @@ public enum RCode { IMPORT_FIELDS_DUPLICATE(817, "{0} Duplicate ,{1} Duplicate"), IMPORT_ERROR_STOP(818, "Error stop import"), IMPORT_SUBNET_VALUE_ERROR(819, "{0} Not in subnet value list"), + IMPORT_FILE_PARSE_ERROR(820, "Import file resolution failed"), /** |
