From 62c8ce18992be21e88d29a4357a14555150c0b48 Mon Sep 17 00:00:00 2001
From: huanghongfa <huanghongfa123456>
Date: 星期三, 16 六月 2021 19:08:34 +0800
Subject: [PATCH] 合并一标三实代码

---
 springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/listen/ComMngPopulationServeExcelListen.java |  307 ++++++++++++++++++++++++++++++++++-----------------
 1 files changed, 205 insertions(+), 102 deletions(-)

diff --git a/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/listen/ComMngPopulationServeExcelListen.java b/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/listen/ComMngPopulationServeExcelListen.java
index f8bf9a7..38d49da 100644
--- a/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/listen/ComMngPopulationServeExcelListen.java
+++ b/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/listen/ComMngPopulationServeExcelListen.java
@@ -3,23 +3,20 @@
 import com.alibaba.excel.context.AnalysisContext;
 import com.alibaba.excel.event.AnalysisEventListener;
 import com.alibaba.fastjson.JSON;
-import com.alibaba.fastjson.JSONObject;
 import com.google.common.collect.Lists;
+import com.panzhihua.common.constants.BcDictionaryConstants;
 import com.panzhihua.common.enums.*;
 import com.panzhihua.common.exceptions.ServiceException;
+import com.panzhihua.common.model.vos.BcDictionaryVO;
 import com.panzhihua.common.model.vos.R;
 import com.panzhihua.common.model.vos.community.ComMngPopulationImportErrorVO;
 import com.panzhihua.common.model.vos.community.ComMngPopulationServeExcelVO;
-import com.panzhihua.common.model.vos.community.ComMngVillageServeExcelVO;
 import com.panzhihua.common.service.community.CommunityService;
 import com.panzhihua.common.utlis.*;
 import lombok.extern.slf4j.Slf4j;
-import org.slf4j.Logger;
-import org.slf4j.LoggerFactory;
+import org.springframework.util.ObjectUtils;
 
-import java.util.ArrayList;
-import java.util.List;
-import java.util.Map;
+import java.util.*;
 import java.util.stream.Collectors;
 
 /**
@@ -79,6 +76,15 @@
      * 不是固定的列只能手动处理
      */
     private void saveData() {
+        R<List<BcDictionaryVO>> dictionaryR = communityService.listDictionaryByKey(BcDictionaryConstants.FAMILY);
+
+        Map<String,String> dictMap = dictionaryR.getData().stream().collect(Collectors.toMap(BcDictionaryVO::getDictName,BcDictionaryVO::getDictValue));
+//        Map<String,Integer> dictMap = new HashMap<>();
+//        for(BcDictionaryVO vo : dictionaryR.getData()){
+//            dictMap.put(vo.getDictName(),Integer.valueOf(vo.getDictValue()));
+//        }
+
+
         int index = 2;
         try {
             ArrayList<ComMngPopulationServeExcelVO> voList = Lists.newArrayList();
@@ -98,7 +104,7 @@
                     vo.setName(oneData.get(0));
                     if(StringUtils.isEmpty(oneData.get(1))){
                         ComMngPopulationImportErrorVO importErrorVO = new ComMngPopulationImportErrorVO();
-                        importErrorVO.setErrorPosition("第" + index + "行,第2列");
+                        importErrorVO.setErrorPosition("第" + index + "行,第2列"+oneData.get(1));
                         importErrorVO.setErrorMsg("身份证号不可为空,请填写身份证号");
                         populationImportErrorVOList.add(importErrorVO);
                         index++;
@@ -108,7 +114,7 @@
                     //判断身份证号码位数
                     if(oneData.get(1).length() != 18){
                         ComMngPopulationImportErrorVO importErrorVO = new ComMngPopulationImportErrorVO();
-                        importErrorVO.setErrorPosition("第" + index + "行,第2列");
+                        importErrorVO.setErrorPosition("第" + index + "行,第2列"+oneData.get(1));
                         importErrorVO.setErrorMsg("身份证号位数有误,请检查身份证号码是否正确");
                         populationImportErrorVOList.add(importErrorVO);
                         index++;
@@ -135,31 +141,22 @@
                     }
                 }
                 if(StringUtils.isNotEmpty(oneData.get(2))){
-                    String nation = oneData.get(2);
-                    if(!nation.contains("族")){
-                        ComMngPopulationImportErrorVO importErrorVO = new ComMngPopulationImportErrorVO();
-                        importErrorVO.setErrorPosition("第" + index + "行,第3列");
-                        importErrorVO.setErrorMsg("您填写的民族格式有误");
-                        populationImportErrorVOList.add(importErrorVO);
-                        index++;
-                        continue;
-                    }
+//                    String nation = oneData.get(2);
+//                    if(!nation.contains("族")){
+//                        ComMngPopulationImportErrorVO importErrorVO = new ComMngPopulationImportErrorVO();
+//                        importErrorVO.setErrorPosition("第" + index + "行,第3列");
+//                        importErrorVO.setErrorMsg("您填写的民族格式有误");
+//                        populationImportErrorVOList.add(importErrorVO);
+//                        index++;
+//                        continue;
+//                    }
                     vo.setNation(oneData.get(2));
                 }
                 if(StringUtils.isNotEmpty(oneData.get(3))){
-                    Integer isOk = PopulPoliticalOutlookEnum.getCodeByName(oneData.get(3));
-                    if(isOk.equals(-1)){
-                        ComMngPopulationImportErrorVO importErrorVO = new ComMngPopulationImportErrorVO();
-                        importErrorVO.setErrorPosition("第" + index + "行,第4列");
-                        importErrorVO.setErrorMsg("您填写的政治面貌有误");
-                        populationImportErrorVOList.add(importErrorVO);
-                        index++;
-                        continue;
-                    }
-                    vo.setPoliticalOutlook(isOk);
+                    vo.setPoliticalOutlook(PopulPoliticalOutlookEnum.getCodeByName(oneData.get(3)));
                 }
                 if(StringUtils.isNotEmpty(oneData.get(4))){
-                    Integer isOk = PopulIsOkEnum.getCodeByName(oneData.get(4));
+                    Integer isOk = PopulHouseUseEnum.getCodeByName(oneData.get(4));
                     if(isOk.equals(-1)){
                         ComMngPopulationImportErrorVO importErrorVO = new ComMngPopulationImportErrorVO();
                         importErrorVO.setErrorPosition("第" + index + "行,第5列");
@@ -171,16 +168,22 @@
                     vo.setIsRent(isOk);
                 }
                 if(StringUtils.isNotEmpty(oneData.get(5))){
-                    Integer isOk = PopulRelationEnum.getCodeByName(oneData.get(5));
-                    if(isOk.equals(-1)){
-                        ComMngPopulationImportErrorVO importErrorVO = new ComMngPopulationImportErrorVO();
-                        importErrorVO.setErrorPosition("第" + index + "行,第6列");
-                        importErrorVO.setErrorMsg("您填写的与户主关系有误");
-                        populationImportErrorVOList.add(importErrorVO);
-                        index++;
-                        continue;
+
+                    String ra = convertRelation(oneData.get(5));
+
+                    String relation = dictMap.get(ra);
+                    if(StringUtils.isEmpty(relation)){
+                        vo.setRelationStr(ra);
+//                        ComMngPopulationImportErrorVO importErrorVO = new ComMngPopulationImportErrorVO();
+//                        importErrorVO.setErrorPosition("第" + index + "行,第6列");
+//                        importErrorVO.setErrorMsg("您填写的与户主关系有误");
+//                        populationImportErrorVOList.add(importErrorVO);
+//                        index++;
+//                        continue;
+                    }else{
+                        vo.setRelation(Integer.valueOf(relation));
                     }
-                    vo.setRelation(isOk);
+
                 }
                 if(StringUtils.isEmpty(oneData.get(6))){
                     ComMngPopulationImportErrorVO importErrorVO = new ComMngPopulationImportErrorVO();
@@ -228,64 +231,16 @@
                 }
                 vo.setHouseNo(oneData.get(10).trim());
                 if(StringUtils.isNotEmpty(oneData.get(11))){
-                    vo.setPhone(oneData.get(11).trim());
+                    vo.setBuildPurpose(oneData.get(11).trim());
                 }
                 if(StringUtils.isNotEmpty(oneData.get(12))){
-                    vo.setNativePlace(oneData.get(12).trim());
+                    vo.setBuildArea(oneData.get(12).trim());
                 }
                 if(StringUtils.isNotEmpty(oneData.get(13))){
-                    Integer isOk = PopulCultureLevelEnum.getCodeByName(oneData.get(13));
+                    Integer isOk = PopulHouseStatusEnum.getCodeByName(oneData.get(13).trim());
                     if(isOk.equals(-1)){
                         ComMngPopulationImportErrorVO importErrorVO = new ComMngPopulationImportErrorVO();
                         importErrorVO.setErrorPosition("第" + index + "行,第14列");
-                        importErrorVO.setErrorMsg("您填写的文化程度有误");
-                        populationImportErrorVOList.add(importErrorVO);
-                        index++;
-                        continue;
-                    }
-                    vo.setCultureLevel(isOk);
-                }
-                if(StringUtils.isNotEmpty(oneData.get(14))){
-                    Integer isOk = PopulMarriageEnum.getCodeByName(oneData.get(14));
-                    if(isOk.equals(-1)){
-                        ComMngPopulationImportErrorVO importErrorVO = new ComMngPopulationImportErrorVO();
-                        importErrorVO.setErrorPosition("第" + index + "行,第14列");
-                        importErrorVO.setErrorMsg("您填写的婚姻状况有误");
-                        populationImportErrorVOList.add(importErrorVO);
-                        index++;
-                        continue;
-                    }
-                    vo.setMarriage(isOk);
-                }
-                if(StringUtils.isNotEmpty(oneData.get(15))){
-                    vo.setHealthy(oneData.get(15).trim());
-                }
-                if(StringUtils.isNotEmpty(oneData.get(16))){
-                    vo.setWorkCompany(oneData.get(16).trim());
-                }
-                if(StringUtils.isNotEmpty(oneData.get(17))){
-                    vo.setRemark(oneData.get(17).trim());
-                }
-                if(StringUtils.isNotEmpty(oneData.get(18))){
-                    vo.setCensusRegister(oneData.get(18).trim());
-                }
-                if(StringUtils.isNotEmpty(oneData.get(19))){
-                    Integer isOk = PopulOutOrLocalEnum.getCodeByName(oneData.get(19));
-                    if(isOk.equals(-1)){
-                        ComMngPopulationImportErrorVO importErrorVO = new ComMngPopulationImportErrorVO();
-                        importErrorVO.setErrorPosition("第" + index + "行,第20列");
-                        importErrorVO.setErrorMsg("您填写的外地or本地有误");
-                        populationImportErrorVOList.add(importErrorVO);
-                        index++;
-                        continue;
-                    }
-                    vo.setOutOrLocal(isOk);
-                }
-                if(StringUtils.isNotEmpty(oneData.get(20))){
-                    Integer isOk = PopulHouseStatusEnum.getCodeByName(oneData.get(20));
-                    if(isOk.equals(-1)){
-                        ComMngPopulationImportErrorVO importErrorVO = new ComMngPopulationImportErrorVO();
-                        importErrorVO.setErrorPosition("第" + index + "行,第21列");
                         importErrorVO.setErrorMsg("您填写的房屋状态有误");
                         populationImportErrorVOList.add(importErrorVO);
                         index++;
@@ -293,43 +248,91 @@
                     }
                     vo.setHouseStatus(isOk);
                 }
-                if(StringUtils.isNotEmpty(oneData.get(21))){
-                    Integer isOk = PopulHousePurposeEnum.getCodeByName(oneData.get(21));
+                if(StringUtils.isNotEmpty(oneData.get(14))){
+                    Integer isOk = PopulHousePurposeEnum.getCodeByName(oneData.get(14).trim());
                     if(isOk.equals(-1)){
                         ComMngPopulationImportErrorVO importErrorVO = new ComMngPopulationImportErrorVO();
-                        importErrorVO.setErrorPosition("第" + index + "行,第22列");
+                        importErrorVO.setErrorPosition("第" + index + "行,第15列");
                         importErrorVO.setErrorMsg("您填写的房屋用途有误");
                         populationImportErrorVOList.add(importErrorVO);
                         index++;
                         continue;
                     }
-                    vo.setHousePurpose(isOk);
+                    vo.setHousePurpose(PopulHousePurposeEnum.getCodeByName(oneData.get(14).trim()));
                 }
-                if(StringUtils.isNotEmpty(oneData.get(22))){
-                    Integer isOk = PopulHouseControlStatusEnum.getCodeByName(oneData.get(22));
+                if(StringUtils.isNotEmpty(oneData.get(15))){
+                    Integer isOk = PopulHouseControlStatusEnum.getCodeByName(oneData.get(15));
                     if(isOk.equals(-1)){
                         ComMngPopulationImportErrorVO importErrorVO = new ComMngPopulationImportErrorVO();
-                        importErrorVO.setErrorPosition("第" + index + "行,第23列");
+                        importErrorVO.setErrorPosition("第" + index + "行,第16列");
                         importErrorVO.setErrorMsg("您填写的管控状态有误");
                         populationImportErrorVOList.add(importErrorVO);
                         index++;
                         continue;
                     }
-                    vo.setControlStatus(isOk);
+                    vo.setHouseStatus(isOk);
                 }
-                if(StringUtils.isNotEmpty(oneData.get(23))){
-                    Integer isOk = PopulIsOksEnum.getCodeByName(oneData.get(23));
+
+                if(StringUtils.isNotEmpty(oneData.get(16))){
+                    vo.setPhone(oneData.get(16).trim());
+                }
+                if(StringUtils.isNotEmpty(oneData.get(17))){
+                    vo.setNativePlace(oneData.get(17).trim());
+                }
+                if(StringUtils.isNotEmpty(oneData.get(18))){
+                    vo.setCultureLevel(PopulCultureLevelEnum.getCodeByName(oneData.get(18)));
+                }
+                if(StringUtils.isNotEmpty(oneData.get(19))){
+                    String ma = convertMarriage(oneData.get(19));
+                    Integer isOk = PopulMarriageEnum.getCodeByName(ma);
+                    if(isOk.equals(-1)){
+                        vo.setMarriageStr(ma);
+//                        ComMngPopulationImportErrorVO importErrorVO = new ComMngPopulationImportErrorVO();
+//                        importErrorVO.setErrorPosition("第" + index + "行,第20列");
+//                        importErrorVO.setErrorMsg("您填写的婚姻状况有误");
+//                        populationImportErrorVOList.add(importErrorVO);
+//                        index++;
+//                        continue;
+                    }else{
+                        vo.setMarriage(isOk);
+                    }
+
+                }
+                if(StringUtils.isNotEmpty(oneData.get(20))){
+                    vo.setHealthy(oneData.get(20).trim());
+                }
+                if(StringUtils.isNotEmpty(oneData.get(21))){
+                    vo.setWorkCompany(oneData.get(21).trim());
+                }
+                if(StringUtils.isNotEmpty(oneData.get(22))){
+                    Integer isOk = PopulOutOrLocalEnum.getCodeByName(oneData.get(22));
                     if(isOk.equals(-1)){
                         ComMngPopulationImportErrorVO importErrorVO = new ComMngPopulationImportErrorVO();
                         importErrorVO.setErrorPosition("第" + index + "行,第23列");
-                        importErrorVO.setErrorMsg("您填写的是否是居住地有误");
+                        importErrorVO.setErrorMsg("您填写的外地or本地有误");
                         populationImportErrorVOList.add(importErrorVO);
                         index++;
                         continue;
                     }
-                    vo.setIsResidence(isOk);
+                    vo.setOutOrLocal(isOk);
                 }
-                for (int i = 24; i < headSize; i++) {
+                if(StringUtils.isNotEmpty(oneData.get(23))){
+                    vo.setCensusRegister(oneData.get(23).trim());
+                }
+                if(StringUtils.isNotEmpty(oneData.get(24))){
+                    vo.setRemark(oneData.get(24).trim());
+                }
+
+                if(StringUtils.isNotEmpty(oneData.get(25))){
+                    vo.setIdCardPositive(oneData.get(25).trim());
+                }
+                if(StringUtils.isNotEmpty(oneData.get(26))){
+                    vo.setIdCardBack(oneData.get(26).trim());
+                }
+                if(StringUtils.isNotEmpty(oneData.get(27))){
+                    vo.setHouseHold(oneData.get(27).trim());
+                }
+                for (int i = 28; i < headSize; i++) {
                     if (oneData.get(i) != null && oneData.get(i).equals("是")) {
                         vo.getUserTagStr().add(headData.get(i).substring(0,headData.get(i).indexOf("(")));
                     }
@@ -382,4 +385,104 @@
             throw new ServiceException("500", JSON.toJSONString(populationImportErrorVOList));
         }
     }
+
+    private String convertMarriage(String ma) {
+
+        if(Objects.equals("已",ma) || Objects.equals("一",ma)){
+            ma = "已婚";
+        }else if(Objects.equals("未",ma) || Objects.equals("未婚婚",ma)){
+            ma = "未婚";
+        }else if(Objects.equals("初",ma)){
+            ma = "初婚";
+        }else if(Objects.equals("再",ma)){
+            ma = "再婚";
+        }else if(Objects.equals("复",ma)){
+            ma = "复婚";
+        }else if(Objects.equals("丧",ma) || Objects.equals("丧偶偶",ma)){
+            ma = "丧偶";
+        }else if(Objects.equals("离",ma) || Objects.equals("离异",ma) || Objects.equals("离异婚",ma)){
+            ma = "离婚";
+        }else if(Objects.equals("分",ma)){
+            ma = "分居";
+        }
+
+        return ma;
+    }
+
+    private String convertRelation(String ra) {
+        if(ra.contains("户主")){
+            ra = "户主";
+        }else if(Objects.equals(ra,"女儿")){
+            ra = "女";
+        }else if(Objects.equals(ra,"儿子") || Objects.equals(ra,"儿")){
+            ra = "子";
+        }else if(Objects.equals(ra,"大女")){
+            ra = "长女";
+        }else if(Objects.equals(ra,"二女") || Objects.equals(ra,"此女")){
+            ra = "次女";
+        }else if(Objects.equals(ra,"二子")){
+            ra = "次子";
+        }else if(Objects.equals(ra,"长男") || ra.contains("长子")){
+            ra = "长子";
+        }else if(Objects.equals(ra,"非亲属") || ra.contains("女友")  || ra.contains("女朋友")
+                    || ra.contains("男友") || ra.contains("男朋友")){
+            ra = "其他";
+        }else if(Objects.equals(ra,"姐")){
+            ra = "姐姐";
+        }else if(Objects.equals(ra,"户主")){
+            ra = "本人";
+        }else if(Objects.equals(ra,"妻子") || Objects.equals(ra,"媳妇")){
+            ra = "妻";
+        }else if(Objects.equals(ra,"哥") || Objects.equals(ra,"哥哥")){
+            ra = "兄";
+        }else if(Objects.equals(ra,"丈夫")){
+            ra = "夫";
+        }else if(Objects.equals(ra,"丈母娘")){
+            ra = "岳母";
+        }else if(Objects.equals(ra,"继子") || Objects.equals(ra,"养子")){
+            ra = "养子或继子";
+        }else if(Objects.equals(ra,"继女") || Objects.equals(ra,"养女")){
+            ra = "养女或继女";
+        }else if(ra.contains("儿媳")||ra.contains("长媳")){
+            ra = "儿媳";
+        }else if(Objects.equals(ra,"三姨") || Objects.equals(ra,"姨姨")){
+            ra = "姨母";
+        }else if(Objects.equals(ra,"二外孙女")){
+            ra = "外孙女";
+        }else if(Objects.equals(ra,"外孙")){
+            ra = "外孙子";
+        }else if(Objects.equals(ra,"侄儿")){
+            ra = "侄子";
+        }else if(ra.contains("表")){
+            ra = "表兄弟、表姐妹";
+        }else if(Objects.equals(ra,"继父") || Objects.equals(ra,"养父")){
+            ra = "继父或养父";
+        }else if(Objects.equals(ra,"父")){
+            ra = "父亲";
+        }else if(Objects.equals(ra,"弟弟")){
+            ra = "弟";
+        }else if(Objects.equals(ra,"孙")){
+            ra = "孙子";
+        }else if(Objects.equals(ra,"孙媳妇") || Objects.equals(ra,"外孙媳妇")){
+            ra = "孙媳妇或外孙媳妇";
+        }else if(Objects.equals(ra,"妹")){
+            ra = "妹妹";
+        }else if(Objects.equals(ra,"祖父母")){
+            ra = "祖父母或外祖父母";
+        }else if(Objects.equals(ra,"姐妹") || Objects.equals(ra,"兄弟")){
+            ra = "兄弟姐妹";
+        }else if(Objects.equals(ra,"其他姐妹") || Objects.equals(ra,"其他兄弟")){
+            ra = "其他兄弟姐妹";
+        }else if(Objects.equals(ra,"奶奶")){
+            ra = "祖母";
+        }else if(Objects.equals(ra,"爷爷")){
+            ra = "祖父";
+        }else if(Objects.equals(ra,"爷爷")){
+            ra = "祖父";
+        }else if(ra.contains("堂")){
+            ra = "堂兄弟、堂姐妹";
+        }
+
+        return ra;
+    }
 }

--
Gitblit v1.7.1