Browse Source

导入核酸检测:更新了,或者是跳过了,都算是成功的,只有出现异常,或者信息确实校验不通过,才算是失败

dev
wangxianzhang 3 years ago
parent
commit
09d9b4d873
  1. 2
      epmet-user/epmet-user-server/src/main/java/com/epmet/excel/data/IcNatImportExcelData.java
  2. 10
      epmet-user/epmet-user-server/src/main/java/com/epmet/excel/handler/IcNatExcelImportListener.java
  3. 27
      epmet-user/epmet-user-server/src/main/java/com/epmet/service/impl/IcNatServiceImpl.java

2
epmet-user/epmet-user-server/src/main/java/com/epmet/excel/data/IcNatImportExcelData.java

@ -40,7 +40,7 @@ public class IcNatImportExcelData {
private String natResultZh; private String natResultZh;
@Data @Data
public static class ErrorRow { public static class RowRemarkMessage {
@ExcelProperty("姓名") @ExcelProperty("姓名")
@ColumnWidth(20) @ColumnWidth(20)

10
epmet-user/epmet-user-server/src/main/java/com/epmet/excel/handler/IcNatExcelImportListener.java

@ -44,7 +44,11 @@ public class IcNatExcelImportListener implements ReadListener<IcNatImportExcelDa
/** /**
* 错误项列表 * 错误项列表
*/ */
private List<IcNatImportExcelData.ErrorRow> errorRows = new ArrayList<>(); private List<IcNatImportExcelData.RowRemarkMessage> errorRows = new ArrayList<>();
/**
* 其他被标记出来的列表列表
*/
private List<IcNatImportExcelData.RowRemarkMessage> otherRows = new ArrayList<>();
private IcNatServiceImpl icNatService; private IcNatServiceImpl icNatService;
@ -91,7 +95,7 @@ public class IcNatExcelImportListener implements ReadListener<IcNatImportExcelDa
log.error("【核酸检测信息导入】出错:{}", ExceptionUtils.getErrorStackTrace(e)); log.error("【核酸检测信息导入】出错:{}", ExceptionUtils.getErrorStackTrace(e));
} }
IcNatImportExcelData.ErrorRow errorRow = new IcNatImportExcelData.ErrorRow(); IcNatImportExcelData.RowRemarkMessage errorRow = new IcNatImportExcelData.RowRemarkMessage();
errorRow.setName(data.getName()); errorRow.setName(data.getName());
errorRow.setMobile(data.getMobile()); errorRow.setMobile(data.getMobile());
errorRow.setIdCard(data.getIdCard()); errorRow.setIdCard(data.getIdCard());
@ -123,7 +127,7 @@ public class IcNatExcelImportListener implements ReadListener<IcNatImportExcelDa
* 获取错误行 * 获取错误行
* @return * @return
*/ */
public List<IcNatImportExcelData.ErrorRow> getErrorRows() { public List<IcNatImportExcelData.RowRemarkMessage> getErrorRows() {
return errorRows; return errorRows;
} }
} }

27
epmet-user/epmet-user-server/src/main/java/com/epmet/service/impl/IcNatServiceImpl.java

@ -322,7 +322,14 @@ public class IcNatServiceImpl extends BaseServiceImpl<IcNatDao, IcNatEntity> imp
Path errorDescFile = null; Path errorDescFile = null;
String errorDesFileUrl = null; String errorDesFileUrl = null;
List<IcNatImportExcelData.ErrorRow> errorRows = listener.getErrorRows();
List<IcNatImportExcelData.RowRemarkMessage> errorRows = listener.getErrorRows();
List<IcNatImportExcelData.RowRemarkMessage> otherRows = listener.getOtherRows();
boolean failed = errorRows.size() > 0;
// 合并到一起写入
errorRows.addAll(otherRows);
// 生成并上传错误文件 // 生成并上传错误文件
try { try {
@ -335,7 +342,7 @@ public class IcNatServiceImpl extends BaseServiceImpl<IcNatDao, IcNatEntity> imp
FileItem fileItem = factory.createItem("file", ContentType.APPLICATION_OCTET_STREAM.toString(), true, fileName); FileItem fileItem = factory.createItem("file", ContentType.APPLICATION_OCTET_STREAM.toString(), true, fileName);
OutputStream os = fileItem.getOutputStream(); OutputStream os = fileItem.getOutputStream();
EasyExcel.write(os, IcNatImportExcelData.ErrorRow.class).sheet("导入失败列表").doWrite(errorRows); EasyExcel.write(os, IcNatImportExcelData.RowRemarkMessage.class).sheet("信息列表").doWrite(errorRows);
// 文件上传oss // 文件上传oss
Result<UploadImgResultDTO> errorDesFileUploadResult = ossFeignClient.uploadImportTaskDescFile(new CommonsMultipartFile(fileItem)); Result<UploadImgResultDTO> errorDesFileUploadResult = ossFeignClient.uploadImportTaskDescFile(new CommonsMultipartFile(fileItem));
@ -350,7 +357,7 @@ public class IcNatServiceImpl extends BaseServiceImpl<IcNatDao, IcNatEntity> imp
ImportTaskCommonFormDTO importFinishTaskForm = new ImportTaskCommonFormDTO(); ImportTaskCommonFormDTO importFinishTaskForm = new ImportTaskCommonFormDTO();
importFinishTaskForm.setTaskId(importTaskId); 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.setOperatorId(userId);
importFinishTaskForm.setResultDesc(""); importFinishTaskForm.setResultDesc("");
importFinishTaskForm.setResultDescFilePath(errorDesFileUrl); importFinishTaskForm.setResultDescFilePath(errorDesFileUrl);
@ -439,11 +446,11 @@ public class IcNatServiceImpl extends BaseServiceImpl<IcNatDao, IcNatEntity> imp
String errorMsg = ExceptionUtils.getErrorStackTrace(exception); String errorMsg = ExceptionUtils.getErrorStackTrace(exception);
log.error(errorMsg); log.error(errorMsg);
IcNatImportExcelData.ErrorRow errorRow = new IcNatImportExcelData.ErrorRow(); IcNatImportExcelData.RowRemarkMessage errorRow = new IcNatImportExcelData.RowRemarkMessage();
errorRow.setName(e.getName()); errorRow.setName(e.getName());
errorRow.setMobile(e.getMobile()); errorRow.setMobile(e.getMobile());
errorRow.setIdCard(e.getIdCard()); errorRow.setIdCard(e.getIdCard());
errorRow.setErrorInfo("未知系统错误c "); errorRow.setErrorInfo("未知系统错误");
listener.getErrorRows().add(errorRow); listener.getErrorRows().add(errorRow);
} }
}); });
@ -458,7 +465,7 @@ public class IcNatServiceImpl extends BaseServiceImpl<IcNatDao, IcNatEntity> imp
*/ */
@Transactional(rollbackFor = Exception.class) @Transactional(rollbackFor = Exception.class)
public void persisNat(IcNatEntity e, String customerId, String currentUserId, IcNatExcelImportListener listener) { public void persisNat(IcNatEntity e, String customerId, String currentUserId, IcNatExcelImportListener listener) {
List<IcNatImportExcelData.ErrorRow> errorRows = listener.getErrorRows(); List<IcNatImportExcelData.RowRemarkMessage> otherRows = listener.getOtherRows();
Date natTime = e.getNatTime(); Date natTime = e.getNatTime();
String idCard = e.getIdCard(); String idCard = e.getIdCard();
@ -473,12 +480,12 @@ public class IcNatServiceImpl extends BaseServiceImpl<IcNatDao, IcNatEntity> imp
// 有这个人,并且不是导入的 // 有这个人,并且不是导入的
String message = "已存在该次核酸检测录入记录,请到系统中修改"; String message = "已存在该次核酸检测录入记录,请到系统中修改";
IcNatImportExcelData.ErrorRow errorRow = new IcNatImportExcelData.ErrorRow(); IcNatImportExcelData.RowRemarkMessage errorRow = new IcNatImportExcelData.RowRemarkMessage();
errorRow.setName(name); errorRow.setName(name);
errorRow.setMobile(mobile); errorRow.setMobile(mobile);
errorRow.setIdCard(idCard); errorRow.setIdCard(idCard);
errorRow.setErrorInfo(message); errorRow.setErrorInfo(message);
errorRows.add(errorRow); otherRows.add(errorRow);
return; return;
} }
@ -514,12 +521,12 @@ public class IcNatServiceImpl extends BaseServiceImpl<IcNatDao, IcNatEntity> imp
if (changedFieldNames.size() > 0) { if (changedFieldNames.size() > 0) {
String fieldsStr = String.join(",", changedFieldNames); String fieldsStr = String.join(",", changedFieldNames);
String message = "该次核酸检测记录已存在,执行更新动作," + fieldsStr + "已成功更新"; String message = "该次核酸检测记录已存在,执行更新动作," + fieldsStr + "已成功更新";
IcNatImportExcelData.ErrorRow errorRow = new IcNatImportExcelData.ErrorRow(); IcNatImportExcelData.RowRemarkMessage errorRow = new IcNatImportExcelData.RowRemarkMessage();
errorRow.setName(name); errorRow.setName(name);
errorRow.setMobile(mobile); errorRow.setMobile(mobile);
errorRow.setIdCard(idCard); errorRow.setIdCard(idCard);
errorRow.setErrorInfo(message); errorRow.setErrorInfo(message);
errorRows.add(errorRow); otherRows.add(errorRow);
} }
if (needUpdate) { if (needUpdate) {

Loading…
Cancel
Save