Browse Source

Merge remote-tracking branch 'origin/master'

dev
jianjun 3 years ago
parent
commit
2db2dff72f
  1. 19
      epmet-user/epmet-user-server/src/main/java/com/epmet/excel/handler/IcResiVirtualSheetImportListener.java
  2. 63
      epmet-user/epmet-user-server/src/main/java/com/epmet/service/impl/IcResiUserImportServiceImpl.java

19
epmet-user/epmet-user-server/src/main/java/com/epmet/excel/handler/IcResiVirtualSheetImportListener.java

@ -4,11 +4,13 @@ import com.alibaba.excel.context.AnalysisContext;
import com.alibaba.excel.event.AnalysisEventListener;
import com.epmet.enums.IcResiUserTableEnum;
import com.epmet.service.impl.IcResiUserImportServiceImpl;
import lombok.extern.slf4j.Slf4j;
import java.util.ArrayList;
import java.util.List;
import java.util.Map;
@Slf4j
public class IcResiVirtualSheetImportListener extends AnalysisEventListener<Map<String, String>> {
private IcResiUserImportServiceImpl importService;
@ -18,7 +20,7 @@ public class IcResiVirtualSheetImportListener extends AnalysisEventListener<Map<
/**
* 身份证号列表
*/
private List<Map<String, String>> resiInfo = new ArrayList<>();
//private List<Map<String, String>> resiInfo = new ArrayList<>();
public IcResiVirtualSheetImportListener(IcResiUserImportServiceImpl importService, IcResiUserTableEnum sheetEnumObject) {
this.importService = importService;
@ -28,17 +30,18 @@ public class IcResiVirtualSheetImportListener extends AnalysisEventListener<Map<
@Override
public void invoke(Map<String, String> data, AnalysisContext context) {
if (data != null && data.size() > 0) {
resiInfo.add(data);
//resiInfo.add(data);
importService.singlePersistResiVirtualSheetExtraInfo(data, sheetEnumObject);
}
}
@Override
public void doAfterAllAnalysed(AnalysisContext context) {
try {
importService.persistIcResiVirtualSheetExtraInfo(resiInfo, sheetEnumObject);
} finally {
// 清空数据
resiInfo.clear();
}
//try {
// importService.batchPersistIcResiVirtualSheetExtraInfo(resiInfo, sheetEnumObject);
//} finally {
// // 清空数据
// resiInfo.clear();
//}
}
}

63
epmet-user/epmet-user-server/src/main/java/com/epmet/service/impl/IcResiUserImportServiceImpl.java

@ -736,38 +736,47 @@ public class IcResiUserImportServiceImpl implements IcResiUserImportService, Res
* 虚拟(不对应实际的数据库表)sheet的数据导入持久化
* @param sheetEnumObject
*/
public void persistIcResiVirtualSheetExtraInfo(List<Map<String, String>> resiInfo, IcResiUserTableEnum sheetEnumObject) {
for (Map<String, String> columnAndValues : resiInfo) {
String idCard = columnAndValues.get(ID_CARD_COLUMN_NO);
try {
Map<String, String> resiInfoMap = icResiUserDao.selectResiInfoMap(idCard, null);
public void batchPersistIcResiVirtualSheetExtraInfo(List<Map<String, String>> resiInfos, IcResiUserTableEnum sheetEnumObject) {
for (Map<String, String> columnAndValues : resiInfos) {
singlePersistResiVirtualSheetExtraInfo(columnAndValues, sheetEnumObject);
}
}
if (resiInfoMap == null || resiInfoMap.size() == 0) {
throw new RenException(EpmetErrorCode.RESI_NOT_FOUND.getCode(), String.format("身份证号为【%s】的居民信息未找到,请确认该居民信息存在", idCard));
}
String icResiId = resiInfoMap.get("ID");
/**
* 单条处理 虚拟(不对应实际的数据库表)sheet的数据导入持久化
* @param columnAndValues
* @param sheetEnumObject
*/
public void singlePersistResiVirtualSheetExtraInfo(Map<String, String> columnAndValues, IcResiUserTableEnum sheetEnumObject) {
String idCard = columnAndValues.get(ID_CARD_COLUMN_NO);
try {
Map<String, String> resiInfoMap = icResiUserDao.selectResiInfoMap(idCard, null);
// 更新主表中该居民类型字段为true
updateMainTableResiTypeFlag(sheetEnumObject, icResiId);
if (resiInfoMap == null || resiInfoMap.size() == 0) {
throw new RenException(EpmetErrorCode.RESI_NOT_FOUND.getCode(), String.format("身份证号为【%s】的居民信息未找到,请确认该居民信息存在", idCard));
}
String icResiId = resiInfoMap.get("ID");
// 保存类别变更信息
saveSubTableInfoToCategoryChangedResiCache(icResiId, sheetEnumObject.getMainTableFlagColumnName(), resiInfoMap);
} catch (Exception e) {
String errorMsg;
if (e instanceof RenException || e instanceof EpmetException) {
errorMsg = e.getMessage();
} else {
errorMsg = "未知系统错误";
log.error(ExceptionUtils.getErrorStackTrace(e));
}
// 更新主表中该居民类型字段为true
updateMainTableResiTypeFlag(sheetEnumObject, icResiId);
ErrorRow errorRow = new ErrorRow();
errorRow.setName(columnAndValues.get("NAME"));
errorRow.setIdCard(idCard);
errorRow.setErrorInfo(errorMsg);
errorRow.setTableName(sheetEnumObject.getTableName());
errorRows.get().get(sheetEnumObject.getTableName()).add(errorRow);
// 保存类别变更信息
saveSubTableInfoToCategoryChangedResiCache(icResiId, sheetEnumObject.getMainTableFlagColumnName(), resiInfoMap);
} catch (Exception e) {
String errorMsg;
if (e instanceof RenException || e instanceof EpmetException) {
errorMsg = e.getMessage();
} else {
errorMsg = "未知系统错误";
log.error(ExceptionUtils.getErrorStackTrace(e));
}
ErrorRow errorRow = new ErrorRow();
errorRow.setName(columnAndValues.get("NAME"));
errorRow.setIdCard(idCard);
errorRow.setErrorInfo(errorMsg);
errorRow.setTableName(sheetEnumObject.getTableName());
errorRows.get().get(sheetEnumObject.getTableName()).add(errorRow);
}
}

Loading…
Cancel
Save