From c40be027ef8068b9a77bb24c94291dee25f563d8 Mon Sep 17 00:00:00 2001
From: huanghongfa <huanghongfa123456>
Date: 星期四, 19 八月 2021 09:28:38 +0800
Subject: [PATCH] Merge remote-tracking branch 'origin/test' into test

---
 springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/listen/ComMngPopulationDrugExcelListen.java |  242 ++++++++++++++++++++++++-----------------------
 1 files changed, 124 insertions(+), 118 deletions(-)

diff --git a/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/listen/ComMngPopulationDrugExcelListen.java b/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/listen/ComMngPopulationDrugExcelListen.java
index 514242d..a53b003 100644
--- a/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/listen/ComMngPopulationDrugExcelListen.java
+++ b/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/listen/ComMngPopulationDrugExcelListen.java
@@ -1,5 +1,6 @@
 package com.panzhihua.common.listen;
 
+import cn.hutool.core.date.DateUtil;
 import com.alibaba.excel.EasyExcel;
 import com.alibaba.excel.ExcelWriter;
 import com.alibaba.excel.context.AnalysisContext;
@@ -119,10 +120,10 @@
             log.info("开始导入吸毒人员数据");
             log.info("表格总数据:" + list.size());
             if (list.size() == 0) {
-                throw new ServiceException("500", "导入数据为空!");
+                throw new ServiceException("100", "导入数据为空!");
             }
             ValueOperations<String, String> valueOperations = stringRedisTemplate.opsForValue();
-            String key = Constants.DRUG_POPULATION_ERROR_LIST + communityId;
+            String key = Constants.DRUG_POPULATION_ERROR_LIST;
 
             Map<String,String> dictMap = dictionaryR.getData().stream().collect(Collectors.toMap(BcDictionaryVO::getDictName,BcDictionaryVO::getDictValue));
 //        Map<String,Integer> dictMap = new HashMap<>();
@@ -133,6 +134,7 @@
 
             int index = 2;
             try {
+                String[] parsePatterns = new String[]{"yyyy-MM-dd", "yyyy-M-dd", "yyyy-MM-d", "yyyy-M-d", "yyyy/MM/dd", "yyyy/M/dd", "yyyy/MM/d", "yyyy/M/d"};
                 ArrayList<ComMngPopulationDrugExcelVO> voList = Lists.newArrayList();
 //                List<ComMngPopulationImportErrorVO> populationImportErrorVOList = new ArrayList<>();
                 ArrayList<ComMngPopulationDrugMistakeExcelVO> mistakes = Lists.newArrayList();
@@ -142,54 +144,53 @@
                         vo.setSerialNumber(oneData.get(0));
                     }
                     //姓名和身份证都为空,为空户,无需操作,否则就解析年龄,性别,出生年月日
-                    if(StringUtils.isNotEmpty(oneData.get(1)) || StringUtils.isNotEmpty(oneData.get(3))){
-                        if(StringUtils.isEmpty(oneData.get(1))){
-                            ComMngPopulationDrugMistakeExcelVO mistake = new ComMngPopulationDrugMistakeExcelVO();
-                            index++;
-                            setDrugMistake(oneData, mistake);
-                            mistake.setMistake("名字不可为空,请填写姓名");
-                            mistakes.add(mistake);
-                            continue;
-                        }
-                        vo.setName(oneData.get(1));
-                        if(StringUtils.isEmpty(oneData.get(3))){
-                            ComMngPopulationDrugMistakeExcelVO mistake = new ComMngPopulationDrugMistakeExcelVO();
-                            index++;
-                            setDrugMistake(oneData, mistake);
-                            mistake.setMistake("身份证号不可为空,请填写身份证");
-                            mistakes.add(mistake);
-                            continue;
-                        }
+                    if(StringUtils.isEmpty(oneData.get(1))){
+                        ComMngPopulationDrugMistakeExcelVO mistake = new ComMngPopulationDrugMistakeExcelVO();
+                        index++;
+                        setDrugMistake(oneData, mistake);
+                        mistake.setMistake("名字不可为空,请填写姓名");
+                        mistakes.add(mistake);
+                        continue;
+                    }
+                    vo.setName(oneData.get(1));
+                    if(StringUtils.isEmpty(oneData.get(3))){
+                        ComMngPopulationDrugMistakeExcelVO mistake = new ComMngPopulationDrugMistakeExcelVO();
+                        index++;
+                        setDrugMistake(oneData, mistake);
+                        mistake.setMistake("身份证号不可为空,请填写身份证");
+                        mistakes.add(mistake);
+                        continue;
+                    }
 
-                        //判断身份证号码位数
-                        if(oneData.get(3).length() != 18){
-                            ComMngPopulationDrugMistakeExcelVO mistake = new ComMngPopulationDrugMistakeExcelVO();
-                            index++;
-                            setDrugMistake(oneData, mistake);
-                            mistake.setMistake("身份证号位数有误,请检查身份证号码是否正确");
-                            mistakes.add(mistake);
-                            continue;
-                        }
-                        vo.setCardNo(oneData.get(3).toUpperCase());
-                        //根据身份证号码解析年龄以及性别
-                        //获取用户生日
-                        String birthday = vo.getCardNo().substring(6, 14);
-                        if(StringUtils.isNotEmpty(birthday)){
-                            String year = birthday.substring(0,4);
-                            String month = birthday.substring(4,6);
-                            String day = birthday.substring(6,8);
-                            vo.setBirthday(year + "-" + month + "-" + day);
-                        }
+                    //判断身份证号码位数
+                    if(oneData.get(3).length() != 18){
+                        ComMngPopulationDrugMistakeExcelVO mistake = new ComMngPopulationDrugMistakeExcelVO();
+                        index++;
+                        setDrugMistake(oneData, mistake);
+                        mistake.setMistake("身份证号位数有误,请检查身份证号码是否正确");
+                        mistakes.add(mistake);
+                        continue;
+                    }
+                    vo.setCardNo(oneData.get(3).toUpperCase());
+                    //根据身份证号码解析年龄以及性别
+                    //获取用户生日
+                    String birthday = vo.getCardNo().substring(6, 14);
+                    if(StringUtils.isNotEmpty(birthday)){
+                        String year = birthday.substring(0,4);
+                        String month = birthday.substring(4,6);
+                        String day = birthday.substring(6,8);
+                        vo.setBirthday(year + "-" + month + "-" + day);
+                    }
 //                    //设置用户年龄
 //                    vo.setAge(AgeUtils.getAgeFromBirthTime(birthday));
-                        //获取用户性别
-                        int sex = Integer.parseInt(vo.getCardNo().substring(16, 17));
-                        if(sex%2 == 1){
-                            vo.setSex(PopulSexEnum.nan.getCode());
-                        }else{
-                            vo.setSex(PopulSexEnum.nv.getCode());
-                        }
+                    //获取用户性别
+                    int sex = Integer.parseInt(vo.getCardNo().substring(16, 17));
+                    if(sex%2 == 1){
+                        vo.setSex(PopulSexEnum.nan.getCode());
+                    }else{
+                        vo.setSex(PopulSexEnum.nv.getCode());
                     }
+
                     if(StringUtils.isNotEmpty(oneData.get(2))){
                         vo.setNation(oneData.get(2));
                     }
@@ -214,33 +215,39 @@
                         continue;
                     }
                     vo.setDoorNo(oneData.get(6).trim());
-                    if(StringUtils.isEmpty(oneData.get(7))){
-                        index++;
-                        ComMngPopulationDrugMistakeExcelVO mistake = new ComMngPopulationDrugMistakeExcelVO();
-                        setDrugMistake(oneData, mistake);
-                        mistake.setMistake("楼排号不可为空");
-                        mistakes.add(mistake);
-                        continue;
+//                    if(StringUtils.isEmpty(oneData.get(7))){
+//                        index++;
+//                        ComMngPopulationDrugMistakeExcelVO mistake = new ComMngPopulationDrugMistakeExcelVO();
+//                        setDrugMistake(oneData, mistake);
+//                        mistake.setMistake("楼排号不可为空");
+//                        mistakes.add(mistake);
+//                        continue;
+//                    }
+                    if(StringUtils.isNotEmpty(oneData.get(7))) {
+                        vo.setFloor(oneData.get(7).trim());
                     }
-                    vo.setFloor(oneData.get(7).trim());
-                    if(StringUtils.isEmpty(oneData.get(8))){
-                        index++;
-                        ComMngPopulationDrugMistakeExcelVO mistake = new ComMngPopulationDrugMistakeExcelVO();
-                        setDrugMistake(oneData, mistake);
-                        mistake.setMistake("单元号不可为空");
-                        mistakes.add(mistake);
-                        continue;
+//                    if(StringUtils.isEmpty(oneData.get(8))){
+//                        index++;
+//                        ComMngPopulationDrugMistakeExcelVO mistake = new ComMngPopulationDrugMistakeExcelVO();
+//                        setDrugMistake(oneData, mistake);
+//                        mistake.setMistake("单元号不可为空");
+//                        mistakes.add(mistake);
+//                        continue;
+//                    }
+                    if(StringUtils.isNotEmpty(oneData.get(8))) {
+                        vo.setUnitNo(oneData.get(8).trim());
                     }
-                    vo.setUnitNo(oneData.get(8).trim());
-                    if(StringUtils.isEmpty(oneData.get(9))){
-                        index++;
-                        ComMngPopulationDrugMistakeExcelVO mistake = new ComMngPopulationDrugMistakeExcelVO();
-                        setDrugMistake(oneData, mistake);
-                        mistake.setMistake("户室不可为空");
-                        mistakes.add(mistake);
-                        continue;
+//                    if(StringUtils.isEmpty(oneData.get(9))){
+//                        index++;
+//                        ComMngPopulationDrugMistakeExcelVO mistake = new ComMngPopulationDrugMistakeExcelVO();
+//                        setDrugMistake(oneData, mistake);
+//                        mistake.setMistake("户室不可为空");
+//                        mistakes.add(mistake);
+//                        continue;
+//                    }
+                    if(StringUtils.isNotEmpty(oneData.get(9))) {
+                        vo.setHouseNo(oneData.get(9).trim());
                     }
-                    vo.setHouseNo(oneData.get(9).trim());
                     if(StringUtils.isNotEmpty(oneData.get(10))){
                         Integer isOk = PopulHouseUseEnum.getCodeByName(oneData.get(10));
                         if(isOk.equals(-1)){
@@ -309,10 +316,43 @@
                         vo.setCensusRegister(oneData.get(15).trim());
                     }
                     if(StringUtils.isNotEmpty(oneData.get(16))){
-                        vo.setRemark(oneData.get(16).trim());
+                        vo.setFirstDate(DateUtil.parse(oneData.get(16).trim(), parsePatterns));
+                    }
+                    if(StringUtils.isNotEmpty(oneData.get(17))){
+                        vo.setControlSituation(oneData.get(17).trim());
+                    }
+                    if(StringUtils.isNotEmpty(oneData.get(18))){
+                        vo.setControlPerson(oneData.get(18).trim());
+                    }
+                    if(StringUtils.isNotEmpty(oneData.get(19))){
+                        vo.setControlPersonPhone(oneData.get(19).trim());
+                    }
+                    if(StringUtils.isNotEmpty(oneData.get(20))){
+                        vo.setHelpSituation(oneData.get(20).trim());
+                    }
+                    if(StringUtils.isNotEmpty(oneData.get(21))){
+                        vo.setHelpPerson(oneData.get(21).trim());
+                    }
+                    if(StringUtils.isNotEmpty(oneData.get(22))){
+                        vo.setHelpPersonPhone(oneData.get(22).trim());
+                    }
+                    if(StringUtils.isNotEmpty(oneData.get(23))){
+                        vo.setDrugReason(oneData.get(23).trim());
+                    }
+                    if(StringUtils.isNotEmpty(oneData.get(24))){
+                        vo.setDrugResult(oneData.get(24).trim());
+                    }
+                    if(StringUtils.isNotEmpty(oneData.get(25))){
+                        vo.setHaveCrime(oneData.get(25).trim());
+                    }
+                    if(StringUtils.isNotEmpty(oneData.get(26))){
+                        vo.setCrimeSutiation(oneData.get(26).trim());
+                    }
+                    if(StringUtils.isNotEmpty(oneData.get(27))){
+                        vo.setRemark(oneData.get(27).trim());
                     }
                     vo.getUserTagStr().add("吸毒人员");
-                    for (int i = 17; i < headSize; i++) {
+                    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("(")));
                         }
@@ -380,51 +420,6 @@
             }
         }
 
-        private void setMistake(Map<Integer, String> map, ComMngPopulationMistakeExcelVO vo){
-            vo.setName(map.get(0));
-            vo.setCardNo(map.get(1));
-            vo.setNation(map.get(2));
-            vo.setPoliticalOutlook(map.get(3));
-            vo.setIsRent(map.get(4));
-            vo.setRelation(map.get(5));
-            vo.setRoad(map.get(6));
-            vo.setDoorNo(map.get(7));
-            vo.setFloor(map.get(8));
-            vo.setUnitNo(map.get(9));
-            vo.setHouseNo(map.get(10));
-            vo.setBuildPurpose(map.get(11));
-            vo.setBuildArea(map.get(12));
-            vo.setHouseStatus(map.get(13));
-            vo.setHousePurpose(map.get(14));
-            vo.setControlStatus(map.get(15));
-            vo.setPhone(map.get(16));
-            vo.setNativePlace(map.get(17));
-            vo.setCultureLevel(map.get(18));
-            vo.setMarriage(map.get(19));
-            vo.setHealthy(map.get(20));
-            vo.setBloodType(map.get(21));
-            vo.setReligion(map.get(22));
-            vo.setProfession(map.get(23));
-            vo.setWorkCompany(map.get(24));
-            vo.setOutOrLocal(map.get(25));
-            vo.setCensusRegister(map.get(26));
-            vo.setResidence(map.get(27));
-//        vo.setAddress(map.get(28));
-            vo.setPersonType(map.get(28));
-            vo.setCountry(map.get(29));
-            vo.setStringOfDeparture(map.get(30));
-            vo.setPersonStatus(map.get(31));
-            vo.setMonthlyIncome(map.get(32));
-            vo.setFamilyStatus(map.get(33));
-            vo.setGoalInChina(map.get(34));
-            vo.setStringOfArrival(map.get(35));
-            vo.setRemark(map.get(36));
-            vo.setIdCardPositive(map.get(37));
-            vo.setIdCardBack(map.get(38));
-            vo.setHouseHold(map.get(39));
-            vo.setDeath(map.get(40));
-        }
-
     private void setDrugMistake(Map<Integer, String> map, ComMngPopulationDrugMistakeExcelVO vo){
         vo.setSerialNumber(map.get(0));
         vo.setName(map.get(1));
@@ -442,7 +437,18 @@
         vo.setControlStatus(map.get(13));
         vo.setOutOrLocal(map.get(14));
         vo.setCensusRegister(map.get(15));
-        vo.setRemark(map.get(16));
+        vo.setFirstDate(map.get(16));
+        vo.setControlSituation(map.get(17));
+        vo.setControlPerson(map.get(18));
+        vo.setControlPersonPhone(map.get(19));
+        vo.setHelpSituation(map.get(20));
+        vo.setHelpPerson(map.get(21));
+        vo.setHelpPersonPhone(map.get(22));
+        vo.setDrugReason(map.get(23));
+        vo.setDrugResult(map.get(24));
+        vo.setHaveCrime(map.get(25));
+        vo.setCrimeSutiation(map.get(26));
+        vo.setRemark(map.get(27));
     }
 
         private R mistakeExportPopulation(List<ComMngPopulationMistakeExcelVO> vo) {

--
Gitblit v1.7.1