From 09d9b4d873c13aee3bd814ab7162d3ec56284035 Mon Sep 17 00:00:00 2001 From: wangxianzhang Date: Fri, 1 Apr 2022 17:12:30 +0800 Subject: [PATCH] =?UTF-8?q?=E5=AF=BC=E5=85=A5=E6=A0=B8=E9=85=B8=E6=A3=80?= =?UTF-8?q?=E6=B5=8B=EF=BC=9A=E6=9B=B4=E6=96=B0=E4=BA=86=EF=BC=8C=E6=88=96?= =?UTF-8?q?=E8=80=85=E6=98=AF=E8=B7=B3=E8=BF=87=E4=BA=86=EF=BC=8C=E9=83=BD?= =?UTF-8?q?=E7=AE=97=E6=98=AF=E6=88=90=E5=8A=9F=E7=9A=84=EF=BC=8C=E5=8F=AA?= =?UTF-8?q?=E6=9C=89=E5=87=BA=E7=8E=B0=E5=BC=82=E5=B8=B8=EF=BC=8C=E6=88=96?= =?UTF-8?q?=E8=80=85=E4=BF=A1=E6=81=AF=E7=A1=AE=E5=AE=9E=E6=A0=A1=E9=AA=8C?= =?UTF-8?q?=E4=B8=8D=E9=80=9A=E8=BF=87=EF=BC=8C=E6=89=8D=E7=AE=97=E6=98=AF?= =?UTF-8?q?=E5=A4=B1=E8=B4=A5?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../excel/data/IcNatImportExcelData.java | 2 +- .../handler/IcNatExcelImportListener.java | 10 ++++--- .../epmet/service/impl/IcNatServiceImpl.java | 27 ++++++++++++------- 3 files changed, 25 insertions(+), 14 deletions(-) diff --git a/epmet-user/epmet-user-server/src/main/java/com/epmet/excel/data/IcNatImportExcelData.java b/epmet-user/epmet-user-server/src/main/java/com/epmet/excel/data/IcNatImportExcelData.java index 6e8d252c1f..b29a1928ff 100644 --- a/epmet-user/epmet-user-server/src/main/java/com/epmet/excel/data/IcNatImportExcelData.java +++ b/epmet-user/epmet-user-server/src/main/java/com/epmet/excel/data/IcNatImportExcelData.java @@ -40,7 +40,7 @@ public class IcNatImportExcelData { private String natResultZh; @Data - public static class ErrorRow { + public static class RowRemarkMessage { @ExcelProperty("姓名") @ColumnWidth(20) diff --git a/epmet-user/epmet-user-server/src/main/java/com/epmet/excel/handler/IcNatExcelImportListener.java b/epmet-user/epmet-user-server/src/main/java/com/epmet/excel/handler/IcNatExcelImportListener.java index 32bb100b3b..854507d471 100644 --- a/epmet-user/epmet-user-server/src/main/java/com/epmet/excel/handler/IcNatExcelImportListener.java +++ b/epmet-user/epmet-user-server/src/main/java/com/epmet/excel/handler/IcNatExcelImportListener.java @@ -44,7 +44,11 @@ public class IcNatExcelImportListener implements ReadListener errorRows = new ArrayList<>(); + private List errorRows = new ArrayList<>(); + /** + * 其他被标记出来的列表列表 + */ + private List otherRows = new ArrayList<>(); private IcNatServiceImpl icNatService; @@ -91,7 +95,7 @@ public class IcNatExcelImportListener implements ReadListener getErrorRows() { + public List getErrorRows() { return errorRows; } } diff --git a/epmet-user/epmet-user-server/src/main/java/com/epmet/service/impl/IcNatServiceImpl.java b/epmet-user/epmet-user-server/src/main/java/com/epmet/service/impl/IcNatServiceImpl.java index 51e22193de..1a0caf24e5 100644 --- a/epmet-user/epmet-user-server/src/main/java/com/epmet/service/impl/IcNatServiceImpl.java +++ b/epmet-user/epmet-user-server/src/main/java/com/epmet/service/impl/IcNatServiceImpl.java @@ -322,7 +322,14 @@ public class IcNatServiceImpl extends BaseServiceImpl imp Path errorDescFile = null; String errorDesFileUrl = null; - List errorRows = listener.getErrorRows(); + + List errorRows = listener.getErrorRows(); + List otherRows = listener.getOtherRows(); + + boolean failed = errorRows.size() > 0; + + // 合并到一起写入 + errorRows.addAll(otherRows); // 生成并上传错误文件 try { @@ -335,7 +342,7 @@ public class IcNatServiceImpl extends BaseServiceImpl imp FileItem fileItem = factory.createItem("file", ContentType.APPLICATION_OCTET_STREAM.toString(), true, fileName); OutputStream os = fileItem.getOutputStream(); - EasyExcel.write(os, IcNatImportExcelData.ErrorRow.class).sheet("导入失败列表").doWrite(errorRows); + EasyExcel.write(os, IcNatImportExcelData.RowRemarkMessage.class).sheet("信息列表").doWrite(errorRows); // 文件上传oss Result errorDesFileUploadResult = ossFeignClient.uploadImportTaskDescFile(new CommonsMultipartFile(fileItem)); @@ -350,7 +357,7 @@ public class IcNatServiceImpl extends BaseServiceImpl imp ImportTaskCommonFormDTO importFinishTaskForm = new ImportTaskCommonFormDTO(); importFinishTaskForm.setTaskId(importTaskId); - importFinishTaskForm.setProcessStatus(errorRows.size() <= 0 ? ImportTaskConstants.PROCESS_STATUS_FINISHED_SUCCESS : ImportTaskConstants.PROCESS_STATUS_FINISHED_FAIL); + importFinishTaskForm.setProcessStatus(failed ? ImportTaskConstants.PROCESS_STATUS_FINISHED_FAIL : ImportTaskConstants.PROCESS_STATUS_FINISHED_SUCCESS); importFinishTaskForm.setOperatorId(userId); importFinishTaskForm.setResultDesc(""); importFinishTaskForm.setResultDescFilePath(errorDesFileUrl); @@ -439,11 +446,11 @@ public class IcNatServiceImpl extends BaseServiceImpl imp String errorMsg = ExceptionUtils.getErrorStackTrace(exception); log.error(errorMsg); - IcNatImportExcelData.ErrorRow errorRow = new IcNatImportExcelData.ErrorRow(); + IcNatImportExcelData.RowRemarkMessage errorRow = new IcNatImportExcelData.RowRemarkMessage(); errorRow.setName(e.getName()); errorRow.setMobile(e.getMobile()); errorRow.setIdCard(e.getIdCard()); - errorRow.setErrorInfo("未知系统错误c "); + errorRow.setErrorInfo("未知系统错误"); listener.getErrorRows().add(errorRow); } }); @@ -458,7 +465,7 @@ public class IcNatServiceImpl extends BaseServiceImpl imp */ @Transactional(rollbackFor = Exception.class) public void persisNat(IcNatEntity e, String customerId, String currentUserId, IcNatExcelImportListener listener) { - List errorRows = listener.getErrorRows(); + List otherRows = listener.getOtherRows(); Date natTime = e.getNatTime(); String idCard = e.getIdCard(); @@ -473,12 +480,12 @@ public class IcNatServiceImpl extends BaseServiceImpl imp // 有这个人,并且不是导入的 String message = "已存在该次核酸检测录入记录,请到系统中修改"; - IcNatImportExcelData.ErrorRow errorRow = new IcNatImportExcelData.ErrorRow(); + IcNatImportExcelData.RowRemarkMessage errorRow = new IcNatImportExcelData.RowRemarkMessage(); errorRow.setName(name); errorRow.setMobile(mobile); errorRow.setIdCard(idCard); errorRow.setErrorInfo(message); - errorRows.add(errorRow); + otherRows.add(errorRow); return; } @@ -514,12 +521,12 @@ public class IcNatServiceImpl extends BaseServiceImpl imp if (changedFieldNames.size() > 0) { String fieldsStr = String.join(",", changedFieldNames); String message = "该次核酸检测记录已存在,执行更新动作," + fieldsStr + "已成功更新"; - IcNatImportExcelData.ErrorRow errorRow = new IcNatImportExcelData.ErrorRow(); + IcNatImportExcelData.RowRemarkMessage errorRow = new IcNatImportExcelData.RowRemarkMessage(); errorRow.setName(name); errorRow.setMobile(mobile); errorRow.setIdCard(idCard); errorRow.setErrorInfo(message); - errorRows.add(errorRow); + otherRows.add(errorRow); } if (needUpdate) {