| 
						
						
							
								
							
						
						
					 | 
					@ -13,23 +13,20 @@ import com.epmet.commons.tools.exception.ExceptionUtils; | 
				
			
			
		
	
		
		
			
				
					 | 
					 | 
					import com.epmet.commons.tools.exception.RenException; | 
					 | 
					 | 
					import com.epmet.commons.tools.exception.RenException; | 
				
			
			
		
	
		
		
			
				
					 | 
					 | 
					import com.epmet.commons.tools.feign.ResultDataResolver; | 
					 | 
					 | 
					import com.epmet.commons.tools.feign.ResultDataResolver; | 
				
			
			
		
	
		
		
			
				
					 | 
					 | 
					import com.epmet.commons.tools.security.user.LoginUserUtil; | 
					 | 
					 | 
					import com.epmet.commons.tools.security.user.LoginUserUtil; | 
				
			
			
		
	
		
		
			
				
					 | 
					 | 
					import com.epmet.commons.tools.utils.Result; | 
					 | 
					 | 
					 | 
				
			
			
		
	
		
		
			
				
					 | 
					 | 
					import com.epmet.dao.IcResiUserDao; | 
					 | 
					 | 
					import com.epmet.dao.IcResiUserDao; | 
				
			
			
		
	
		
		
			
				
					 | 
					 | 
					import com.epmet.dto.*; | 
					 | 
					 | 
					import com.epmet.dto.*; | 
				
			
			
		
	
		
		
			
				
					 | 
					 | 
					import com.epmet.dto.form.AgencyIdFormDTO; | 
					 | 
					 | 
					import com.epmet.dto.form.AgencyIdFormDTO; | 
				
			
			
		
	
		
		
			
				
					 | 
					 | 
					import com.epmet.dto.form.CustomerFormQueryDTO; | 
					 | 
					 | 
					 | 
				
			
			
		
	
		
		
			
				
					 | 
					 | 
					import com.epmet.dto.form.HouseFormDTO; | 
					 | 
					 | 
					import com.epmet.dto.form.HouseFormDTO; | 
				
			
			
		
	
		
		
			
				
					 | 
					 | 
					import com.epmet.dto.form.LoginUserDetailsFormDTO; | 
					 | 
					 | 
					import com.epmet.dto.form.LoginUserDetailsFormDTO; | 
				
			
			
		
	
		
		
			
				
					 | 
					 | 
					import com.epmet.dto.result.FormItemResult; | 
					 | 
					 | 
					import com.epmet.dto.result.FormItemResult; | 
				
			
			
		
	
		
		
			
				
					 | 
					 | 
					import com.epmet.dto.result.LoginUserDetailsResultDTO; | 
					 | 
					 | 
					import com.epmet.dto.result.LoginUserDetailsResultDTO; | 
				
			
			
		
	
		
		
			
				
					 | 
					 | 
					import com.epmet.dto.result.OptionDTO; | 
					 | 
					 | 
					import com.epmet.dto.result.OptionDTO; | 
				
			
			
		
	
		
		
			
				
					 | 
					 | 
					import com.epmet.entity.IcResiUserEntity; | 
					 | 
					 | 
					import com.epmet.entity.IcResiUserEntity; | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					import com.epmet.enums.IcResiUserTableEnums; | 
					 | 
					 | 
					import com.epmet.enums.IcResiUserTableEnum; | 
				
			
			
				
				
			
		
	
		
		
	
		
		
			
				
					 | 
					 | 
					import com.epmet.excel.handler.DynamicEasyExcelListener; | 
					 | 
					 | 
					import com.epmet.excel.handler.DynamicEasyExcelListener; | 
				
			
			
		
	
		
		
			
				
					 | 
					 | 
					import com.epmet.feign.EpmetAdminOpenFeignClient; | 
					 | 
					 | 
					import com.epmet.feign.EpmetAdminOpenFeignClient; | 
				
			
			
		
	
		
		
			
				
					 | 
					 | 
					import com.epmet.feign.EpmetUserOpenFeignClient; | 
					 | 
					 | 
					import com.epmet.feign.EpmetUserOpenFeignClient; | 
				
			
			
		
	
		
		
			
				
					 | 
					 | 
					import com.epmet.feign.GovOrgOpenFeignClient; | 
					 | 
					 | 
					import com.epmet.feign.GovOrgOpenFeignClient; | 
				
			
			
		
	
		
		
			
				
					 | 
					 | 
					import com.epmet.feign.OperCustomizeOpenFeignClient; | 
					 | 
					 | 
					 | 
				
			
			
		
	
		
		
			
				
					 | 
					 | 
					import com.epmet.service.IcResiUserImportService; | 
					 | 
					 | 
					import com.epmet.service.IcResiUserImportService; | 
				
			
			
		
	
		
		
			
				
					 | 
					 | 
					import lombok.Data; | 
					 | 
					 | 
					import lombok.Data; | 
				
			
			
		
	
		
		
			
				
					 | 
					 | 
					import lombok.extern.slf4j.Slf4j; | 
					 | 
					 | 
					import lombok.extern.slf4j.Slf4j; | 
				
			
			
		
	
	
		
		
			
				
					| 
						
							
								
							
						
						
							
								
							
						
						
					 | 
					@ -61,9 +58,6 @@ public class IcResiUserImportServiceImpl implements IcResiUserImportService, Res | 
				
			
			
		
	
		
		
			
				
					 | 
					 | 
					    public static final ThreadLocal<Map<String, List<ErrorRow>>> errorRows = new ThreadLocal<>(); | 
					 | 
					 | 
					    public static final ThreadLocal<Map<String, List<ErrorRow>>> errorRows = new ThreadLocal<>(); | 
				
			
			
		
	
		
		
			
				
					 | 
					 | 
					    public static final ThreadLocal<Map<String, List<SkipedRow>>> skipedRows = new ThreadLocal<>(); | 
					 | 
					 | 
					    public static final ThreadLocal<Map<String, List<SkipedRow>>> skipedRows = new ThreadLocal<>(); | 
				
			
			
		
	
		
		
			
				
					 | 
					 | 
					
 | 
					 | 
					 | 
					
 | 
				
			
			
		
	
		
		
			
				
					 | 
					 | 
					    // 导入数字赋能平台居民信息form_code
 | 
					 | 
					 | 
					 | 
				
			
			
		
	
		
		
			
				
					 | 
					 | 
					    public static final String IMPORT_IC_RESI_FORM_CODE = "resi_base_info"; | 
					 | 
					 | 
					 | 
				
			
			
		
	
		
		
			
				
					 | 
					 | 
					
 | 
					 | 
					 | 
					 | 
				
			
			
		
	
		
		
			
				
					 | 
					 | 
					    @Autowired | 
					 | 
					 | 
					    @Autowired | 
				
			
			
		
	
		
		
			
				
					 | 
					 | 
					    private LoginUserUtil loginUserUtil; | 
					 | 
					 | 
					    private LoginUserUtil loginUserUtil; | 
				
			
			
		
	
		
		
			
				
					 | 
					 | 
					
 | 
					 | 
					 | 
					
 | 
				
			
			
		
	
	
		
		
			
				
					| 
						
						
						
							
								
							
						
					 | 
					@ -76,9 +70,6 @@ public class IcResiUserImportServiceImpl implements IcResiUserImportService, Res | 
				
			
			
		
	
		
		
			
				
					 | 
					 | 
					    @Autowired | 
					 | 
					 | 
					    @Autowired | 
				
			
			
		
	
		
		
			
				
					 | 
					 | 
					    private GovOrgOpenFeignClient govOrgOpenFeignClient; | 
					 | 
					 | 
					    private GovOrgOpenFeignClient govOrgOpenFeignClient; | 
				
			
			
		
	
		
		
			
				
					 | 
					 | 
					
 | 
					 | 
					 | 
					
 | 
				
			
			
		
	
		
		
			
				
					 | 
					 | 
					    @Autowired | 
					 | 
					 | 
					 | 
				
			
			
		
	
		
		
			
				
					 | 
					 | 
					    private OperCustomizeOpenFeignClient operCustomizeOpenFeignClient; | 
					 | 
					 | 
					 | 
				
			
			
		
	
		
		
			
				
					 | 
					 | 
					
 | 
					 | 
					 | 
					 | 
				
			
			
		
	
		
		
			
				
					 | 
					 | 
					    @Autowired | 
					 | 
					 | 
					    @Autowired | 
				
			
			
		
	
		
		
			
				
					 | 
					 | 
					    private IcResiUserDao icResiUserDao; | 
					 | 
					 | 
					    private IcResiUserDao icResiUserDao; | 
				
			
			
		
	
		
		
			
				
					 | 
					 | 
					
 | 
					 | 
					 | 
					
 | 
				
			
			
		
	
	
		
		
			
				
					| 
						
							
								
							
						
						
							
								
							
						
						
					 | 
					@ -164,7 +155,7 @@ public class IcResiUserImportServiceImpl implements IcResiUserImportService, Res | 
				
			
			
		
	
		
		
			
				
					 | 
					 | 
					     * @return | 
					 | 
					 | 
					     * @return | 
				
			
			
		
	
		
		
			
				
					 | 
					 | 
					     */ | 
					 | 
					 | 
					     */ | 
				
			
			
		
	
		
		
			
				
					 | 
					 | 
					    @Override | 
					 | 
					 | 
					    @Override | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					    public void importIcResiInfoFromExcel(String excelPathName, HttpServletResponse response) { | 
					 | 
					 | 
					    public void importIcResiInfoFromExcel(List<FormItemResult> formItemList, String excelPathName, HttpServletResponse response) { | 
				
			
			
				
				
			
		
	
		
		
	
		
		
			
				
					 | 
					 | 
					        String loginUserId = loginUserUtil.getLoginUserId(); | 
					 | 
					 | 
					        String loginUserId = loginUserUtil.getLoginUserId(); | 
				
			
			
		
	
		
		
			
				
					 | 
					 | 
					        String loginUserApp = loginUserUtil.getLoginUserApp(); | 
					 | 
					 | 
					        String loginUserApp = loginUserUtil.getLoginUserApp(); | 
				
			
			
		
	
		
		
			
				
					 | 
					 | 
					        String loginUserClient = loginUserUtil.getLoginUserClient(); | 
					 | 
					 | 
					        String loginUserClient = loginUserUtil.getLoginUserClient(); | 
				
			
			
		
	
	
		
		
			
				
					| 
						
						
						
							
								
							
						
					 | 
					@ -185,17 +176,17 @@ public class IcResiUserImportServiceImpl implements IcResiUserImportService, Res | 
				
			
			
		
	
		
		
			
				
					 | 
					 | 
					            initThreadLocalRowsStorage(); | 
					 | 
					 | 
					            initThreadLocalRowsStorage(); | 
				
			
			
		
	
		
		
			
				
					 | 
					 | 
					
 | 
					 | 
					 | 
					
 | 
				
			
			
		
	
		
		
			
				
					 | 
					 | 
					            // 上传主表信息
 | 
					 | 
					 | 
					            // 上传主表信息
 | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					            importIcResiBaseInfoFromExcel(excelPathName, IcResiUserTableEnums.IC_RESI_USER.getSheetNo(), IcResiUserTableEnums.IC_RESI_USER.getHeadRowNo(), | 
					 | 
					 | 
					            importIcResiBaseInfoFromExcel(formItemList,excelPathName, IcResiUserTableEnum.IC_RESI_USER.getSheetNo(), IcResiUserTableEnum.IC_RESI_USER.getHeadRowNo(), | 
				
			
			
				
				
			
		
	
		
		
			
				
					
					 | 
					 | 
					                    currUserAgencyId, agencyInfo.getPids(), loginUserId, IcResiUserTableEnums.IC_RESI_USER.getTableName()); | 
					 | 
					 | 
					                    currUserAgencyId, agencyInfo.getPids(), loginUserId, IcResiUserTableEnum.IC_RESI_USER.getTableName()); | 
				
			
			
				
				
			
		
	
		
		
	
		
		
	
		
		
			
				
					 | 
					 | 
					
 | 
					 | 
					 | 
					
 | 
				
			
			
		
	
		
		
			
				
					 | 
					 | 
					            // 上传附表信息
 | 
					 | 
					 | 
					            // 上传附表信息
 | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					            for (IcResiUserTableEnums sheet : IcResiUserTableEnums.values()) { | 
					 | 
					 | 
					            for (IcResiUserTableEnum sheet : IcResiUserTableEnum.values()) { | 
				
			
			
				
				
			
		
	
		
		
			
				
					
					 | 
					 | 
					                if (sheet == IcResiUserTableEnums.IC_RESI_USER) { | 
					 | 
					 | 
					                if (sheet == IcResiUserTableEnum.IC_RESI_USER) { | 
				
			
			
				
				
			
		
	
		
		
	
		
		
	
		
		
			
				
					 | 
					 | 
					                    continue; | 
					 | 
					 | 
					                    continue; | 
				
			
			
		
	
		
		
			
				
					 | 
					 | 
					                } | 
					 | 
					 | 
					                } | 
				
			
			
		
	
		
		
			
				
					 | 
					 | 
					
 | 
					 | 
					 | 
					
 | 
				
			
			
		
	
		
		
			
				
					 | 
					 | 
					                try { | 
					 | 
					 | 
					                try { | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					                    importIcResiExtraInfoFromExcel(excelPathName, sheet.getSheetNo(), sheet.getHeadRowNo(), currUserAgencyId, loginUserId, sheet.getTableName(), customerId); | 
					 | 
					 | 
					                    importIcResiExtraInfoFromExcel(formItemList, excelPathName, sheet.getSheetNo(), sheet.getHeadRowNo(), currUserAgencyId, loginUserId, sheet.getTableName(), customerId); | 
				
			
			
				
				
			
		
	
		
		
	
		
		
			
				
					 | 
					 | 
					                } catch (Exception e) { | 
					 | 
					 | 
					                } catch (Exception e) { | 
				
			
			
		
	
		
		
			
				
					 | 
					 | 
					                    String errorMsg = ExceptionUtils.getErrorStackTrace(e); | 
					 | 
					 | 
					                    String errorMsg = ExceptionUtils.getErrorStackTrace(e); | 
				
			
			
		
	
		
		
			
				
					 | 
					 | 
					                    log.error("导入IC居民附加信息【{}】错误:{}", sheet.getTableComment(), errorMsg); | 
					 | 
					 | 
					                    log.error("导入IC居民附加信息【{}】错误:{}", sheet.getTableComment(), errorMsg); | 
				
			
			
		
	
	
		
		
			
				
					| 
						
							
								
							
						
						
							
								
							
						
						
					 | 
					@ -228,13 +219,13 @@ public class IcResiUserImportServiceImpl implements IcResiUserImportService, Res | 
				
			
			
		
	
		
		
			
				
					 | 
					 | 
					     */ | 
					 | 
					 | 
					     */ | 
				
			
			
		
	
		
		
			
				
					 | 
					 | 
					    private void initThreadLocalRowsStorage() { | 
					 | 
					 | 
					    private void initThreadLocalRowsStorage() { | 
				
			
			
		
	
		
		
			
				
					 | 
					 | 
					        Map<String, List<SkipedRow>> skipedRowsMap = new LinkedHashMap<>(); | 
					 | 
					 | 
					        Map<String, List<SkipedRow>> skipedRowsMap = new LinkedHashMap<>(); | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					        for (IcResiUserTableEnums e : IcResiUserTableEnums.values()) { | 
					 | 
					 | 
					        for (IcResiUserTableEnum e : IcResiUserTableEnum.values()) { | 
				
			
			
				
				
			
		
	
		
		
	
		
		
			
				
					 | 
					 | 
					            skipedRowsMap.put(e.getTableName(), new LinkedList<>()); | 
					 | 
					 | 
					            skipedRowsMap.put(e.getTableName(), new LinkedList<>()); | 
				
			
			
		
	
		
		
			
				
					 | 
					 | 
					        } | 
					 | 
					 | 
					        } | 
				
			
			
		
	
		
		
			
				
					 | 
					 | 
					        skipedRows.set(skipedRowsMap); | 
					 | 
					 | 
					        skipedRows.set(skipedRowsMap); | 
				
			
			
		
	
		
		
			
				
					 | 
					 | 
					
 | 
					 | 
					 | 
					
 | 
				
			
			
		
	
		
		
			
				
					 | 
					 | 
					        Map<String, List<ErrorRow>> errorRowsMap = new LinkedHashMap<>(); | 
					 | 
					 | 
					        Map<String, List<ErrorRow>> errorRowsMap = new LinkedHashMap<>(); | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					        for (IcResiUserTableEnums e : IcResiUserTableEnums.values()) { | 
					 | 
					 | 
					        for (IcResiUserTableEnum e : IcResiUserTableEnum.values()) { | 
				
			
			
				
				
			
		
	
		
		
	
		
		
			
				
					 | 
					 | 
					            errorRowsMap.put(e.getTableName(), new LinkedList<>()); | 
					 | 
					 | 
					            errorRowsMap.put(e.getTableName(), new LinkedList<>()); | 
				
			
			
		
	
		
		
			
				
					 | 
					 | 
					        } | 
					 | 
					 | 
					        } | 
				
			
			
		
	
		
		
			
				
					 | 
					 | 
					        errorRows.set(errorRowsMap); | 
					 | 
					 | 
					        errorRows.set(errorRowsMap); | 
				
			
			
		
	
	
		
		
			
				
					| 
						
						
						
							
								
							
						
					 | 
					@ -242,6 +233,8 @@ public class IcResiUserImportServiceImpl implements IcResiUserImportService, Res | 
				
			
			
		
	
		
		
			
				
					 | 
					 | 
					
 | 
					 | 
					 | 
					
 | 
				
			
			
		
	
		
		
			
				
					 | 
					 | 
					    /** | 
					 | 
					 | 
					    /** | 
				
			
			
		
	
		
		
			
				
					 | 
					 | 
					     * excel导入居民基本信息 | 
					 | 
					 | 
					     * excel导入居民基本信息 | 
				
			
			
		
	
		
		
			
				
					 | 
					 | 
					 | 
					 | 
					 | 
					     * | 
				
			
			
		
	
		
		
			
				
					 | 
					 | 
					 | 
					 | 
					 | 
					     * @param formItemList | 
				
			
			
		
	
		
		
			
				
					 | 
					 | 
					     * @param sheetNo | 
					 | 
					 | 
					     * @param sheetNo | 
				
			
			
		
	
		
		
			
				
					 | 
					 | 
					     * @param headRowNumber | 
					 | 
					 | 
					     * @param headRowNumber | 
				
			
			
		
	
		
		
			
				
					 | 
					 | 
					     * @param currUserAgencyId | 
					 | 
					 | 
					     * @param currUserAgencyId | 
				
			
			
		
	
	
		
		
			
				
					| 
						
						
						
							
								
							
						
					 | 
					@ -249,7 +242,7 @@ public class IcResiUserImportServiceImpl implements IcResiUserImportService, Res | 
				
			
			
		
	
		
		
			
				
					 | 
					 | 
					     * @param currentUserId | 
					 | 
					 | 
					     * @param currentUserId | 
				
			
			
		
	
		
		
			
				
					 | 
					 | 
					     * @return | 
					 | 
					 | 
					     * @return | 
				
			
			
		
	
		
		
			
				
					 | 
					 | 
					     */ | 
					 | 
					 | 
					     */ | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					    private Object importIcResiBaseInfoFromExcel(String excelPathName, int sheetNo, int headRowNumber, String currUserAgencyId, String currUserAgencyPids, String currentUserId, | 
					 | 
					 | 
					    private Object importIcResiBaseInfoFromExcel(List<FormItemResult> formItemList, String excelPathName, int sheetNo, int headRowNumber, String currUserAgencyId, String currUserAgencyPids, String currentUserId, | 
				
			
			
				
				
			
		
	
		
		
	
		
		
			
				
					 | 
					 | 
					                                                 String tableName) { | 
					 | 
					 | 
					                                                 String tableName) { | 
				
			
			
		
	
		
		
			
				
					 | 
					 | 
					        DynamicEasyExcelListener readListener = new DynamicEasyExcelListener(); | 
					 | 
					 | 
					        DynamicEasyExcelListener readListener = new DynamicEasyExcelListener(); | 
				
			
			
		
	
		
		
			
				
					 | 
					 | 
					        //EasyExcelFactory.read(new File(excelPathName)).registerReadListener(readListener).headRowNumber(headRowNumber).sheet(sheetNo).doRead();
 | 
					 | 
					 | 
					        //EasyExcelFactory.read(new File(excelPathName)).registerReadListener(readListener).headRowNumber(headRowNumber).sheet(sheetNo).doRead();
 | 
				
			
			
		
	
	
		
		
			
				
					| 
						
						
						
							
								
							
						
					 | 
					@ -260,17 +253,14 @@ public class IcResiUserImportServiceImpl implements IcResiUserImportService, Res | 
				
			
			
		
	
		
		
			
				
					 | 
					 | 
					
 | 
					 | 
					 | 
					
 | 
				
			
			
		
	
		
		
			
				
					 | 
					 | 
					        Map<Integer, List<String>> headers = mergeHead(headList); | 
					 | 
					 | 
					        Map<Integer, List<String>> headers = mergeHead(headList); | 
				
			
			
		
	
		
		
			
				
					 | 
					 | 
					
 | 
					 | 
					 | 
					
 | 
				
			
			
		
	
		
		
			
				
					 | 
					 | 
					        // 查询form相关信息
 | 
					 | 
					 | 
					 | 
				
			
			
		
	
		
		
			
				
					 | 
					 | 
					        List<FormItemResult> customerItems = listFormItems(IMPORT_IC_RESI_FORM_CODE); | 
					 | 
					 | 
					 | 
				
			
			
		
	
		
		
			
				
					 | 
					 | 
					
 | 
					 | 
					 | 
					 | 
				
			
			
		
	
		
		
			
				
					 | 
					 | 
					        // 清洗表头数据
 | 
					 | 
					 | 
					        // 清洗表头数据
 | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					        Map<Integer, String> abandonedHeaders = washHeaders(headers, customerItems); | 
					 | 
					 | 
					        Map<Integer, String> abandonedHeaders = washHeaders(headers, formItemList); | 
				
			
			
				
				
			
		
	
		
		
	
		
		
			
				
					 | 
					 | 
					
 | 
					 | 
					 | 
					
 | 
				
			
			
		
	
		
		
			
				
					 | 
					 | 
					        //合并多级表头
 | 
					 | 
					 | 
					        //合并多级表头
 | 
				
			
			
		
	
		
		
			
				
					 | 
					 | 
					        HashMap<String, List<Integer>> combinedHeaders = combineHeaders(headers); | 
					 | 
					 | 
					        HashMap<String, List<Integer>> combinedHeaders = combineHeaders(headers); | 
				
			
			
		
	
		
		
			
				
					 | 
					 | 
					
 | 
					 | 
					 | 
					
 | 
				
			
			
		
	
		
		
			
				
					 | 
					 | 
					        // 得到客户配置item数据
 | 
					 | 
					 | 
					        // 得到客户配置item数据
 | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					        Map<String, FormItemResult> formItemMap = customerItems.stream().collect( | 
					 | 
					 | 
					        Map<String, FormItemResult> formItemMap = formItemList.stream().collect( | 
				
			
			
				
				
			
		
	
		
		
	
		
		
			
				
					 | 
					 | 
					                Collectors.toMap(formItem -> { | 
					 | 
					 | 
					                Collectors.toMap(formItem -> { | 
				
			
			
		
	
		
		
			
				
					 | 
					 | 
					                    String groupLabel = formItem.getGroupLabel(); | 
					 | 
					 | 
					                    String groupLabel = formItem.getGroupLabel(); | 
				
			
			
		
	
		
		
			
				
					 | 
					 | 
					                    String label = formItem.getLabel(); | 
					 | 
					 | 
					                    String label = formItem.getLabel(); | 
				
			
			
		
	
	
		
		
			
				
					| 
						
						
						
							
								
							
						
					 | 
					@ -291,6 +281,8 @@ public class IcResiUserImportServiceImpl implements IcResiUserImportService, Res | 
				
			
			
		
	
		
		
			
				
					 | 
					 | 
					
 | 
					 | 
					 | 
					
 | 
				
			
			
		
	
		
		
			
				
					 | 
					 | 
					    /** | 
					 | 
					 | 
					    /** | 
				
			
			
		
	
		
		
			
				
					 | 
					 | 
					     * excel导入居民附加信息 | 
					 | 
					 | 
					     * excel导入居民附加信息 | 
				
			
			
		
	
		
		
			
				
					 | 
					 | 
					 | 
					 | 
					 | 
					     * | 
				
			
			
		
	
		
		
			
				
					 | 
					 | 
					 | 
					 | 
					 | 
					     * @param formItemList | 
				
			
			
		
	
		
		
			
				
					 | 
					 | 
					     * @param excelPathName | 
					 | 
					 | 
					     * @param excelPathName | 
				
			
			
		
	
		
		
			
				
					 | 
					 | 
					     * @param sheetNo | 
					 | 
					 | 
					     * @param sheetNo | 
				
			
			
		
	
		
		
			
				
					 | 
					 | 
					     * @param headRowNumber | 
					 | 
					 | 
					     * @param headRowNumber | 
				
			
			
		
	
	
		
		
			
				
					| 
						
						
						
							
								
							
						
					 | 
					@ -299,7 +291,7 @@ public class IcResiUserImportServiceImpl implements IcResiUserImportService, Res | 
				
			
			
		
	
		
		
			
				
					 | 
					 | 
					     * @param targetTableName 要插入哪一个表 | 
					 | 
					 | 
					     * @param targetTableName 要插入哪一个表 | 
				
			
			
		
	
		
		
			
				
					 | 
					 | 
					     * @return | 
					 | 
					 | 
					     * @return | 
				
			
			
		
	
		
		
			
				
					 | 
					 | 
					     */ | 
					 | 
					 | 
					     */ | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					    private Object importIcResiExtraInfoFromExcel(String excelPathName, int sheetNo, int headRowNumber, String currUserAgencyId, String currentUserId, | 
					 | 
					 | 
					    private Object importIcResiExtraInfoFromExcel(List<FormItemResult> formItemList, String excelPathName, int sheetNo, int headRowNumber, String currUserAgencyId, String currentUserId, | 
				
			
			
				
				
			
		
	
		
		
	
		
		
			
				
					 | 
					 | 
					                                                  String targetTableName, String customerId) { | 
					 | 
					 | 
					                                                  String targetTableName, String customerId) { | 
				
			
			
		
	
		
		
			
				
					 | 
					 | 
					        DynamicEasyExcelListener readListener = new DynamicEasyExcelListener(); | 
					 | 
					 | 
					        DynamicEasyExcelListener readListener = new DynamicEasyExcelListener(); | 
				
			
			
		
	
		
		
			
				
					 | 
					 | 
					        EasyExcelFactory.read(new File(excelPathName)).registerReadListener(readListener).headRowNumber(headRowNumber).sheet(sheetNo).doRead(); | 
					 | 
					 | 
					        EasyExcelFactory.read(new File(excelPathName)).registerReadListener(readListener).headRowNumber(headRowNumber).sheet(sheetNo).doRead(); | 
				
			
			
		
	
	
		
		
			
				
					| 
						
						
						
							
								
							
						
					 | 
					@ -309,17 +301,14 @@ public class IcResiUserImportServiceImpl implements IcResiUserImportService, Res | 
				
			
			
		
	
		
		
			
				
					 | 
					 | 
					
 | 
					 | 
					 | 
					
 | 
				
			
			
		
	
		
		
			
				
					 | 
					 | 
					        Map<Integer, List<String>> headers = mergeHead(headList); | 
					 | 
					 | 
					        Map<Integer, List<String>> headers = mergeHead(headList); | 
				
			
			
		
	
		
		
			
				
					 | 
					 | 
					
 | 
					 | 
					 | 
					
 | 
				
			
			
		
	
		
		
			
				
					 | 
					 | 
					        // 查询form相关信息
 | 
					 | 
					 | 
					 | 
				
			
			
		
	
		
		
			
				
					 | 
					 | 
					        List<FormItemResult> customerItems = listFormItems(IMPORT_IC_RESI_FORM_CODE); | 
					 | 
					 | 
					 | 
				
			
			
		
	
		
		
			
				
					 | 
					 | 
					
 | 
					 | 
					 | 
					 | 
				
			
			
		
	
		
		
			
				
					 | 
					 | 
					        // 清洗表头数据
 | 
					 | 
					 | 
					        // 清洗表头数据
 | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					        Map<Integer, String> abandonedHeaders = washHeaders(headers, customerItems); | 
					 | 
					 | 
					        Map<Integer, String> abandonedHeaders = washHeaders(headers, formItemList); | 
				
			
			
				
				
			
		
	
		
		
	
		
		
			
				
					 | 
					 | 
					
 | 
					 | 
					 | 
					
 | 
				
			
			
		
	
		
		
			
				
					 | 
					 | 
					        //合并多级表头
 | 
					 | 
					 | 
					        //合并多级表头
 | 
				
			
			
		
	
		
		
			
				
					 | 
					 | 
					        HashMap<String, List<Integer>> combinedHeaders = combineHeaders(headers); | 
					 | 
					 | 
					        HashMap<String, List<Integer>> combinedHeaders = combineHeaders(headers); | 
				
			
			
		
	
		
		
			
				
					 | 
					 | 
					
 | 
					 | 
					 | 
					
 | 
				
			
			
		
	
		
		
			
				
					 | 
					 | 
					        // 得到客户配置item数据
 | 
					 | 
					 | 
					        // 得到客户配置item数据
 | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					        Map<String, FormItemResult> formItemMap = customerItems.stream().collect( | 
					 | 
					 | 
					        Map<String, FormItemResult> formItemMap = formItemList.stream().collect( | 
				
			
			
				
				
			
		
	
		
		
	
		
		
			
				
					 | 
					 | 
					                Collectors.toMap(formItem -> { | 
					 | 
					 | 
					                Collectors.toMap(formItem -> { | 
				
			
			
		
	
		
		
			
				
					 | 
					 | 
					                    String groupLabel = formItem.getGroupLabel(); | 
					 | 
					 | 
					                    String groupLabel = formItem.getGroupLabel(); | 
				
			
			
		
	
		
		
			
				
					 | 
					 | 
					                    String label = formItem.getLabel(); | 
					 | 
					 | 
					                    String label = formItem.getLabel(); | 
				
			
			
		
	
	
		
		
			
				
					| 
						
							
								
							
						
						
							
								
							
						
						
					 | 
					@ -364,7 +353,7 @@ public class IcResiUserImportServiceImpl implements IcResiUserImportService, Res | 
				
			
			
		
	
		
		
			
				
					 | 
					 | 
					
 | 
					 | 
					 | 
					
 | 
				
			
			
		
	
		
		
			
				
					 | 
					 | 
					                columnAndValues.put("AGENCY_ID", currUserAgencyId); | 
					 | 
					 | 
					                columnAndValues.put("AGENCY_ID", currUserAgencyId); | 
				
			
			
		
	
		
		
			
				
					 | 
					 | 
					                columnAndValues.put("PIDS", currUserAgencyPids); | 
					 | 
					 | 
					                columnAndValues.put("PIDS", currUserAgencyPids); | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					                columnAndValues.put("CUSTOMER_ID", loginUserUtil.getCurrentCustomerId()); | 
					 | 
					 | 
					                columnAndValues.put("CUSTOMER_ID", loginUserUtil.getLoginUserCustomerId()); | 
				
			
			
				
				
			
		
	
		
		
	
		
		
			
				
					 | 
					 | 
					
 | 
					 | 
					 | 
					
 | 
				
			
			
		
	
		
		
			
				
					 | 
					 | 
					                columnAndValues.put("UPDATED_BY", currentUserId); | 
					 | 
					 | 
					                columnAndValues.put("UPDATED_BY", currentUserId); | 
				
			
			
		
	
		
		
			
				
					 | 
					 | 
					
 | 
					 | 
					 | 
					
 | 
				
			
			
		
	
	
		
		
			
				
					| 
						
							
								
							
						
						
							
								
							
						
						
					 | 
					@ -407,7 +396,7 @@ public class IcResiUserImportServiceImpl implements IcResiUserImportService, Res | 
				
			
			
		
	
		
		
			
				
					 | 
					 | 
					                errorRow.setName(columnAndValues.get("NAME")); | 
					 | 
					 | 
					                errorRow.setName(columnAndValues.get("NAME")); | 
				
			
			
		
	
		
		
			
				
					 | 
					 | 
					                errorRow.setErrorInfo(errorMsg); | 
					 | 
					 | 
					                errorRow.setErrorInfo(errorMsg); | 
				
			
			
		
	
		
		
			
				
					 | 
					 | 
					                errorRow.setTableName(tableName); | 
					 | 
					 | 
					                errorRow.setTableName(tableName); | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					                errorRows.get().get(IcResiUserTableEnums.IC_RESI_USER.getTableName()).add(errorRow); | 
					 | 
					 | 
					                errorRows.get().get(IcResiUserTableEnum.IC_RESI_USER.getTableName()).add(errorRow); | 
				
			
			
				
				
			
		
	
		
		
	
		
		
			
				
					 | 
					 | 
					            } finally { | 
					 | 
					 | 
					            } finally { | 
				
			
			
		
	
		
		
			
				
					 | 
					 | 
					                columnAndValues.clear(); | 
					 | 
					 | 
					                columnAndValues.clear(); | 
				
			
			
		
	
		
		
			
				
					 | 
					 | 
					            } | 
					 | 
					 | 
					            } | 
				
			
			
		
	
	
		
		
			
				
					| 
						
							
								
							
						
						
							
								
							
						
						
					 | 
					@ -465,14 +454,14 @@ public class IcResiUserImportServiceImpl implements IcResiUserImportService, Res | 
				
			
			
		
	
		
		
			
				
					 | 
					 | 
					                //}
 | 
					 | 
					 | 
					                //}
 | 
				
			
			
		
	
		
		
			
				
					 | 
					 | 
					
 | 
					 | 
					 | 
					
 | 
				
			
			
		
	
		
		
			
				
					 | 
					 | 
					                columnAndValues.put("IC_RESI_USER", icResiId); | 
					 | 
					 | 
					                columnAndValues.put("IC_RESI_USER", icResiId); | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					                columnAndValues.put("CUSTOMER_ID", loginUserUtil.getCurrentCustomerId()); | 
					 | 
					 | 
					                columnAndValues.put("CUSTOMER_ID", loginUserUtil.getLoginUserCustomerId()); | 
				
			
			
				
				
			
		
	
		
		
	
		
		
			
				
					 | 
					 | 
					                columnAndValues.put("UPDATED_BY", currentUserId); | 
					 | 
					 | 
					                columnAndValues.put("UPDATED_BY", currentUserId); | 
				
			
			
		
	
		
		
			
				
					 | 
					 | 
					
 | 
					 | 
					 | 
					
 | 
				
			
			
		
	
		
		
			
				
					 | 
					 | 
					                // 移除excel中存在,但是数据库表中不存在的无效列,方式sql语法错误
 | 
					 | 
					 | 
					                // 移除excel中存在,但是数据库表中不存在的无效列,方式sql语法错误
 | 
				
			
			
		
	
		
		
			
				
					 | 
					 | 
					                columnAndValues = removeNeedlessColumns(columnAndValues); | 
					 | 
					 | 
					                columnAndValues = removeNeedlessColumns(columnAndValues); | 
				
			
			
		
	
		
		
			
				
					 | 
					 | 
					
 | 
					 | 
					 | 
					
 | 
				
			
			
		
	
		
		
			
				
					 | 
					 | 
					                // 更新主表的人员类型及更新时间
 | 
					 | 
					 | 
					                // 更新主表的人员类型及更新时间
 | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					                updateMainTableResiTypeFlag(Objects.requireNonNull(IcResiUserTableEnums.getObjectByTableName(targetTableName)), icResiId); | 
					 | 
					 | 
					                updateMainTableResiTypeFlag(Objects.requireNonNull(IcResiUserTableEnum.getObjectByTableName(targetTableName)), icResiId); | 
				
			
			
				
				
			
		
	
		
		
	
		
		
			
				
					 | 
					 | 
					
 | 
					 | 
					 | 
					
 | 
				
			
			
		
	
		
		
			
				
					 | 
					 | 
					                // 验证附加信息是否存在
 | 
					 | 
					 | 
					                // 验证附加信息是否存在
 | 
				
			
			
		
	
		
		
			
				
					 | 
					 | 
					                List<Map<String, Object>> subInfos = icResiUserDao.selectSubTableRecords(customerId, icResiId, targetTableName); | 
					 | 
					 | 
					                List<Map<String, Object>> subInfos = icResiUserDao.selectSubTableRecords(customerId, icResiId, targetTableName); | 
				
			
			
		
	
	
		
		
			
				
					| 
						
							
								
							
						
						
							
								
							
						
						
					 | 
					@ -597,18 +586,6 @@ public class IcResiUserImportServiceImpl implements IcResiUserImportService, Res | 
				
			
			
		
	
		
		
			
				
					 | 
					 | 
					        } | 
					 | 
					 | 
					        } | 
				
			
			
		
	
		
		
			
				
					 | 
					 | 
					    } | 
					 | 
					 | 
					    } | 
				
			
			
		
	
		
		
			
				
					 | 
					 | 
					
 | 
					 | 
					 | 
					
 | 
				
			
			
		
	
		
		
			
				
					 | 
					 | 
					    /** | 
					 | 
					 | 
					 | 
				
			
			
		
	
		
		
			
				
					 | 
					 | 
					     * 根据formCode查询该form的item列表 | 
					 | 
					 | 
					 | 
				
			
			
		
	
		
		
			
				
					 | 
					 | 
					     * @param formCode | 
					 | 
					 | 
					 | 
				
			
			
		
	
		
		
			
				
					 | 
					 | 
					     * @return | 
					 | 
					 | 
					 | 
				
			
			
		
	
		
		
			
				
					 | 
					 | 
					     */ | 
					 | 
					 | 
					 | 
				
			
			
		
	
		
		
			
				
					 | 
					 | 
					    private List<FormItemResult> listFormItems(String formCode) { | 
					 | 
					 | 
					 | 
				
			
			
		
	
		
		
			
				
					 | 
					 | 
					        CustomerFormQueryDTO form = new CustomerFormQueryDTO(); | 
					 | 
					 | 
					 | 
				
			
			
		
	
		
		
			
				
					 | 
					 | 
					        form.setFormCode(formCode); | 
					 | 
					 | 
					 | 
				
			
			
		
	
		
		
			
				
					 | 
					 | 
					        Result<List<FormItemResult>> result = operCustomizeOpenFeignClient.listItems(form); | 
					 | 
					 | 
					 | 
				
			
			
		
	
		
		
			
				
					 | 
					 | 
					        return getResultDataOrThrowsException(result, ServiceConstant.OPER_CUSTOMIZE_SERVER, EpmetErrorCode.SERVER_ERROR.getCode(), "【居民信息excel导入】查询表单相关信息失败"); | 
					 | 
					 | 
					 | 
				
			
			
		
	
		
		
			
				
					 | 
					 | 
					    } | 
					 | 
					 | 
					 | 
				
			
			
		
	
		
		
			
				
					 | 
					 | 
					
 | 
					 | 
					 | 
					 | 
				
			
			
		
	
		
		
			
				
					 | 
					 | 
					    /** | 
					 | 
					 | 
					    /** | 
				
			
			
		
	
		
		
			
				
					 | 
					 | 
					     * @description 合并头 | 
					 | 
					 | 
					     * @description 合并头 | 
				
			
			
		
	
		
		
			
				
					 | 
					 | 
					     * | 
					 | 
					 | 
					     * | 
				
			
			
		
	
	
		
		
			
				
					| 
						
							
								
							
						
						
							
								
							
						
						
					 | 
					@ -904,7 +881,7 @@ public class IcResiUserImportServiceImpl implements IcResiUserImportService, Res | 
				
			
			
		
	
		
		
			
				
					 | 
					 | 
					     * @param icResiUserTableEnum | 
					 | 
					 | 
					     * @param icResiUserTableEnum | 
				
			
			
		
	
		
		
			
				
					 | 
					 | 
					     * @param resiUserId | 
					 | 
					 | 
					     * @param resiUserId | 
				
			
			
		
	
		
		
			
				
					 | 
					 | 
					     */ | 
					 | 
					 | 
					     */ | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					    private void updateMainTableResiTypeFlag(IcResiUserTableEnums icResiUserTableEnum, String resiUserId) { | 
					 | 
					 | 
					    private void updateMainTableResiTypeFlag(IcResiUserTableEnum icResiUserTableEnum, String resiUserId) { | 
				
			
			
				
				
			
		
	
		
		
	
		
		
			
				
					 | 
					 | 
					        HashMap<String, Boolean> map = new HashMap<>(); | 
					 | 
					 | 
					        HashMap<String, Boolean> map = new HashMap<>(); | 
				
			
			
		
	
		
		
			
				
					 | 
					 | 
					        map.put(icResiUserTableEnum.getMainTableFlagColumnName(), true); | 
					 | 
					 | 
					        map.put(icResiUserTableEnum.getMainTableFlagColumnName(), true); | 
				
			
			
		
	
		
		
			
				
					 | 
					 | 
					        icResiUserDao.upTable("ic_resi_user", resiUserId, map); | 
					 | 
					 | 
					        icResiUserDao.upTable("ic_resi_user", resiUserId, map); | 
				
			
			
		
	
	
		
		
			
				
					| 
						
						
						
							
								
							
						
					 | 
					@ -928,7 +905,7 @@ public class IcResiUserImportServiceImpl implements IcResiUserImportService, Res | 
				
			
			
		
	
		
		
			
				
					 | 
					 | 
					            list.addAll(entry.getValue()); | 
					 | 
					 | 
					            list.addAll(entry.getValue()); | 
				
			
			
		
	
		
		
			
				
					 | 
					 | 
					        } | 
					 | 
					 | 
					        } | 
				
			
			
		
	
		
		
			
				
					 | 
					 | 
					
 | 
					 | 
					 | 
					
 | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					        list.forEach(row -> {row.setSheetName(IcResiUserTableEnums.getObjectByTableName(row.tableName).getTableComment());}); | 
					 | 
					 | 
					        list.forEach(row -> {row.setSheetName(IcResiUserTableEnum.getObjectByTableName(row.tableName).getTableComment());}); | 
				
			
			
				
				
			
		
	
		
		
	
		
		
			
				
					 | 
					 | 
					
 | 
					 | 
					 | 
					
 | 
				
			
			
		
	
		
		
			
				
					 | 
					 | 
					        Workbook workbook = ExcelExportUtil.exportExcel(new ExportParams("导入失败的列表","导入失败列表(没有数据说明全部成功)"), | 
					 | 
					 | 
					        Workbook workbook = ExcelExportUtil.exportExcel(new ExportParams("导入失败的列表","导入失败列表(没有数据说明全部成功)"), | 
				
			
			
		
	
		
		
			
				
					 | 
					 | 
					                ErrorRow.class, list); | 
					 | 
					 | 
					                ErrorRow.class, list); | 
				
			
			
		
	
	
		
		
			
				
					| 
						
							
								
							
						
						
						
					 | 
					
  |