From ec584b22c5756b8a2bdad9dcd0830c52d698784d Mon Sep 17 00:00:00 2001
From: xyh <18782104331@139.com>
Date: 星期五, 11 六月 2021 20:24:30 +0800
Subject: [PATCH] 实有人口导入

---
 springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/listen/ComMngPopulationServeExcelListen.java |  130 +++++++++++++++++++++++++++----------------
 1 files changed, 81 insertions(+), 49 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 bdfc8fe..e0b179d 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,25 +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.Objects;
+import java.util.*;
 import java.util.stream.Collectors;
 
 /**
@@ -81,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();
@@ -100,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++;
@@ -110,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++;
@@ -149,16 +153,7 @@
                     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 = PopulHouseUseEnum.getCodeByName(oneData.get(4));
@@ -172,18 +167,42 @@
                     }
                     vo.setIsRent(isOk);
                 }
-                //TODO 先存中文后期改为枚举
                 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 = oneData.get(5);
+                    if(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,"非亲属")){
+                        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 = "兄";
                     }
-                    vo.setRelation(isOk);
+
+
+                    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));
+                    }
+
                 }
                 if(StringUtils.isEmpty(oneData.get(6))){
                     ComMngPopulationImportErrorVO importErrorVO = new ComMngPopulationImportErrorVO();
@@ -280,28 +299,41 @@
                     vo.setNativePlace(oneData.get(17).trim());
                 }
                 if(StringUtils.isNotEmpty(oneData.get(18))){
-                    Integer isOk = PopulCultureLevelEnum.getCodeByName(oneData.get(18));
-                    if(isOk.equals(-1)){
-                        ComMngPopulationImportErrorVO importErrorVO = new ComMngPopulationImportErrorVO();
-                        importErrorVO.setErrorPosition("第" + index + "行,第19列");
-                        importErrorVO.setErrorMsg("您填写的文化程度有误");
-                        populationImportErrorVOList.add(importErrorVO);
-                        index++;
-                        continue;
-                    }
-                    vo.setCultureLevel(isOk);
+                    vo.setCultureLevel(PopulCultureLevelEnum.getCodeByName(oneData.get(18)));
                 }
                 if(StringUtils.isNotEmpty(oneData.get(19))){
-                    Integer isOk = PopulMarriageEnum.getCodeByName(oneData.get(19));
-                    if(isOk.equals(-1)){
-                        ComMngPopulationImportErrorVO importErrorVO = new ComMngPopulationImportErrorVO();
-                        importErrorVO.setErrorPosition("第" + index + "行,第20列");
-                        importErrorVO.setErrorMsg("您填写的婚姻状况有误");
-                        populationImportErrorVOList.add(importErrorVO);
-                        index++;
-                        continue;
+                    String ma = oneData.get(19);
+
+                    if(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)){
+                        ma = "复婚";
+                    }else if(Objects.equals("丧",ma)){
+                        ma = "丧偶";
+                    }else if(Objects.equals("离",ma)){
+                        ma = "离婚";
+                    }else if(Objects.equals("分",ma)){
+                        ma = "分居";
                     }
-                    vo.setMarriage(isOk);
+                    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());

--
Gitblit v1.7.1