|  |  | @ -85,6 +85,13 @@ public class IcResiUserImportServiceImpl implements IcResiUserImportService, Res | 
			
		
	
		
			
				
					|  |  |  |     @Autowired | 
			
		
	
		
			
				
					|  |  |  |     private IcResiUserDao icResiUserDao; | 
			
		
	
		
			
				
					|  |  |  | 
 | 
			
		
	
		
			
				
					|  |  |  |     /** | 
			
		
	
		
			
				
					|  |  |  |      * 字表中不需要的列 | 
			
		
	
		
			
				
					|  |  |  |      */ | 
			
		
	
		
			
				
					|  |  |  |     private List<String> subTableNeedlessColumns = Arrays.asList("GRID_ID", "VILLAGE_ID", "BUILD_ID", "UNIT_ID", "HOME_ID", | 
			
		
	
		
			
				
					|  |  |  |             "IS_BDHJ", "NAME", "MOBILE", "GENDER", "ID_CARD", | 
			
		
	
		
			
				
					|  |  |  |             "BIRTHDAY", "CONTACTS", "CONTACTS_MOBILE"); | 
			
		
	
		
			
				
					|  |  |  | 
 | 
			
		
	
		
			
				
					|  |  |  |     /** | 
			
		
	
		
			
				
					|  |  |  |      * @description 列信息封装 | 
			
		
	
		
			
				
					|  |  |  |      * | 
			
		
	
	
		
			
				
					|  |  | @ -353,7 +360,7 @@ public class IcResiUserImportServiceImpl implements IcResiUserImportService, Res | 
			
		
	
		
			
				
					|  |  |  | 
 | 
			
		
	
		
			
				
					|  |  |  |             LinkedHashMap<String, String> columnAndValues = new LinkedHashMap<>(); | 
			
		
	
		
			
				
					|  |  |  |             try { | 
			
		
	
		
			
				
					|  |  |  |                 convertColumnWrappers2Map4Persist(headerColumnWrapper, row, currUserAgencyId, checkBoxOptionColumnIdxAndLabel, columnAndValues); | 
			
		
	
		
			
				
					|  |  |  |                 convertColumnWrappers2Map4Persist(headerColumnWrapper, row, currUserAgencyId, checkBoxOptionColumnIdxAndLabel, columnAndValues, true); | 
			
		
	
		
			
				
					|  |  |  | 
 | 
			
		
	
		
			
				
					|  |  |  |                 columnAndValues.put("IS_ENSURE_HOUSE", "0"); | 
			
		
	
		
			
				
					|  |  |  |                 columnAndValues.put("IS_OLD_PEOPLE", "0"); | 
			
		
	
	
		
			
				
					|  |  | @ -434,12 +441,16 @@ public class IcResiUserImportServiceImpl implements IcResiUserImportService, Res | 
			
		
	
		
			
				
					|  |  |  |         for (Map<Integer, String> row : dataRows) { | 
			
		
	
		
			
				
					|  |  |  | 
 | 
			
		
	
		
			
				
					|  |  |  |             try { | 
			
		
	
		
			
				
					|  |  |  |                 convertColumnWrappers2Map4Persist(headerColumnWrapper, row, currUserAgencyId, checkBoxOptionColumnIdxAndLabel, columnAndValues); | 
			
		
	
		
			
				
					|  |  |  |                 convertColumnWrappers2Map4Persist(headerColumnWrapper, row, currUserAgencyId, checkBoxOptionColumnIdxAndLabel, columnAndValues, false); | 
			
		
	
		
			
				
					|  |  |  | 
 | 
			
		
	
		
			
				
					|  |  |  |                 // 检验身份证号
 | 
			
		
	
		
			
				
					|  |  |  |                 String idCard = columnAndValues.get("ID_CARD"); | 
			
		
	
		
			
				
					|  |  |  |                 if (StringUtils.isBlank(idCard)) { | 
			
		
	
		
			
				
					|  |  |  |                     throw new RenException(EpmetErrorCode.IDCARDNO_ERROR.getCode(), String.format("用户【%s】身份证号未填写或格式错误", columnAndValues.get("NAME"))); | 
			
		
	
		
			
				
					|  |  |  |                     String resiName = columnAndValues.get("NAME"); | 
			
		
	
		
			
				
					|  |  |  |                     if (resiName == null) { | 
			
		
	
		
			
				
					|  |  |  |                         resiName = ""; | 
			
		
	
		
			
				
					|  |  |  |                     } | 
			
		
	
		
			
				
					|  |  |  |                     throw new RenException(EpmetErrorCode.IDCARDNO_ERROR.getCode(), String.format("用户【%s】身份证号未填写或格式错误", resiName)); | 
			
		
	
		
			
				
					|  |  |  |                 } | 
			
		
	
		
			
				
					|  |  |  | 
 | 
			
		
	
		
			
				
					|  |  |  |                 // 检查用户是否存在
 | 
			
		
	
	
		
			
				
					|  |  | @ -538,10 +549,11 @@ public class IcResiUserImportServiceImpl implements IcResiUserImportService, Res | 
			
		
	
		
			
				
					|  |  |  |      * @param currUserAgencyId 当前用户所属机构ID | 
			
		
	
		
			
				
					|  |  |  |      * @param checkBoxOptionColumnIdxAndLabel 复选框options列表。key:列号,value:复选框中文 | 
			
		
	
		
			
				
					|  |  |  |      * @param target 要将数据放到哪个对象中 | 
			
		
	
		
			
				
					|  |  |  |      * @param isPrimaryTable 是否是主表 | 
			
		
	
		
			
				
					|  |  |  |      */ | 
			
		
	
		
			
				
					|  |  |  |     private void convertColumnWrappers2Map4Persist(Map<String, ColumnWrapper> headerColumnWrapper, Map<Integer, String> row, | 
			
		
	
		
			
				
					|  |  |  |                                                    String currUserAgencyId, Map<Integer, String> checkBoxOptionColumnIdxAndLabel, | 
			
		
	
		
			
				
					|  |  |  |                                                    LinkedHashMap<String, String> target) { | 
			
		
	
		
			
				
					|  |  |  |                                                    LinkedHashMap<String, String> target, boolean isPrimaryTable) { | 
			
		
	
		
			
				
					|  |  |  | 
 | 
			
		
	
		
			
				
					|  |  |  |         boolean interupt = false; | 
			
		
	
		
			
				
					|  |  |  | 
 | 
			
		
	
	
		
			
				
					|  |  | @ -588,11 +600,22 @@ public class IcResiUserImportServiceImpl implements IcResiUserImportService, Res | 
			
		
	
		
			
				
					|  |  |  |                 columnWrapper.setColValue(checkBoxColValue); | 
			
		
	
		
			
				
					|  |  |  |             } | 
			
		
	
		
			
				
					|  |  |  | 
 | 
			
		
	
		
			
				
					|  |  |  |             // requiredColumns中的值为必填项
 | 
			
		
	
		
			
				
					|  |  |  |             // requiredColumns中的值不在排除字段中 && 是必填 && 未填写
 | 
			
		
	
		
			
				
					|  |  |  |             if (isPrimaryTable) { | 
			
		
	
		
			
				
					|  |  |  |                 // 主表没有需要排除的列
 | 
			
		
	
		
			
				
					|  |  |  |                 if (columnWrapper.getRequired() == 1 && StringUtils.isBlank(columnWrapper.colValue)) { | 
			
		
	
		
			
				
					|  |  |  |                     interupt = true; | 
			
		
	
		
			
				
					|  |  |  |                     errorColumnNames.add(columnWrapper.combinedLabel); | 
			
		
	
		
			
				
					|  |  |  |                 } | 
			
		
	
		
			
				
					|  |  |  |             } else { | 
			
		
	
		
			
				
					|  |  |  |                 // 从表需要排除掉一些不必要校验的列
 | 
			
		
	
		
			
				
					|  |  |  |                 if (!subTableNeedlessColumns.contains(columnWrapper.columnName) | 
			
		
	
		
			
				
					|  |  |  |                         && columnWrapper.getRequired() == 1 | 
			
		
	
		
			
				
					|  |  |  |                         && StringUtils.isBlank(columnWrapper.colValue)) { | 
			
		
	
		
			
				
					|  |  |  |                     interupt = true; | 
			
		
	
		
			
				
					|  |  |  |                     errorColumnNames.add(columnWrapper.combinedLabel); | 
			
		
	
		
			
				
					|  |  |  |                 } | 
			
		
	
		
			
				
					|  |  |  |             } | 
			
		
	
		
			
				
					|  |  |  | 
 | 
			
		
	
		
			
				
					|  |  |  |             target.put(columnWrapper.columnName, columnWrapper.colValue); | 
			
		
	
		
			
				
					|  |  |  |         } | 
			
		
	
	
		
			
				
					|  |  | 
 |