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;
@Data
public static class ErrorRow {
public static class RowRemarkMessage {
@ExcelProperty("姓名")
@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;
@ -91,7 +95,7 @@ public class IcNatExcelImportListener implements ReadListener<IcNatImportExcelDa
log.error("【核酸检测信息导入】出错:{}", ExceptionUtils.getErrorStackTrace(e));
}
IcNatImportExcelData.ErrorRow errorRow = new IcNatImportExcelData.ErrorRow();
IcNatImportExcelData.RowRemarkMessage errorRow = new IcNatImportExcelData.RowRemarkMessage();
errorRow.setName(data.getName());
errorRow.setMobile(data.getMobile());
errorRow.setIdCard(data.getIdCard());
@ -123,7 +127,7 @@ public class IcNatExcelImportListener implements ReadListener<IcNatImportExcelDa
* 获取错误行
* @return
*/
public List<IcNatImportExcelData.ErrorRow> getErrorRows() {
public List<IcNatImportExcelData.RowRemarkMessage> getErrorRows() {
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;
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 {
@ -335,7 +342,7 @@ public class IcNatServiceImpl extends BaseServiceImpl<IcNatDao, IcNatEntity> 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<UploadImgResultDTO> errorDesFileUploadResult = ossFeignClient.uploadImportTaskDescFile(new CommonsMultipartFile(fileItem));
@ -350,7 +357,7 @@ public class IcNatServiceImpl extends BaseServiceImpl<IcNatDao, IcNatEntity> 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<IcNatDao, IcNatEntity> 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<IcNatDao, IcNatEntity> imp
*/
@Transactional(rollbackFor = Exception.class)
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();
String idCard = e.getIdCard();
@ -473,12 +480,12 @@ public class IcNatServiceImpl extends BaseServiceImpl<IcNatDao, IcNatEntity> 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<IcNatDao, IcNatEntity> 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) {

Loading…
Cancel
Save