diff --git a/epmet-user/epmet-user-server/src/main/java/com/epmet/excel/handler/IcResiVirtualSheetImportListener.java b/epmet-user/epmet-user-server/src/main/java/com/epmet/excel/handler/IcResiVirtualSheetImportListener.java index 79ddbea5a9..ce17a6610e 100644 --- a/epmet-user/epmet-user-server/src/main/java/com/epmet/excel/handler/IcResiVirtualSheetImportListener.java +++ b/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> { private IcResiUserImportServiceImpl importService; @@ -18,7 +20,7 @@ public class IcResiVirtualSheetImportListener extends AnalysisEventListener> resiInfo = new ArrayList<>(); + //private List> resiInfo = new ArrayList<>(); public IcResiVirtualSheetImportListener(IcResiUserImportServiceImpl importService, IcResiUserTableEnum sheetEnumObject) { this.importService = importService; @@ -28,17 +30,18 @@ public class IcResiVirtualSheetImportListener extends AnalysisEventListener 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(); + //} } } diff --git a/epmet-user/epmet-user-server/src/main/java/com/epmet/service/impl/IcResiUserImportServiceImpl.java b/epmet-user/epmet-user-server/src/main/java/com/epmet/service/impl/IcResiUserImportServiceImpl.java index b9e5f9c098..42fd297d3f 100644 --- a/epmet-user/epmet-user-server/src/main/java/com/epmet/service/impl/IcResiUserImportServiceImpl.java +++ b/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> resiInfo, IcResiUserTableEnum sheetEnumObject) { - for (Map columnAndValues : resiInfo) { - String idCard = columnAndValues.get(ID_CARD_COLUMN_NO); - try { - Map resiInfoMap = icResiUserDao.selectResiInfoMap(idCard, null); + public void batchPersistIcResiVirtualSheetExtraInfo(List> resiInfos, IcResiUserTableEnum sheetEnumObject) { + for (Map 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 columnAndValues, IcResiUserTableEnum sheetEnumObject) { + String idCard = columnAndValues.get(ID_CARD_COLUMN_NO); + try { + Map 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); } }