Browse Source

学生导入调整

dzx 1 year ago
parent
commit
7d4988abc6

+ 132 - 88
src/main/java/com/xjrsoft/module/student/service/impl/StudentManagerServiceImpl.java

@@ -12,6 +12,7 @@ import com.xjrsoft.common.enums.DeleteMark;
 import com.xjrsoft.common.enums.GenderDictionaryEnum;
 import com.xjrsoft.common.enums.RoleEnum;
 import com.xjrsoft.common.enums.YesOrNoEnum;
+import com.xjrsoft.common.exception.MyException;
 import com.xjrsoft.module.base.entity.BaseClass;
 import com.xjrsoft.module.base.entity.BaseGrade;
 import com.xjrsoft.module.base.entity.BaseMajorSet;
@@ -51,12 +52,17 @@ import org.springframework.transaction.annotation.Transactional;
 
 import java.text.ParseException;
 import java.text.SimpleDateFormat;
+import java.time.LocalDate;
 import java.time.LocalDateTime;
+import java.time.format.DateTimeFormatter;
+import java.time.format.DateTimeParseException;
 import java.util.ArrayList;
 import java.util.HashMap;
+import java.util.HashSet;
 import java.util.List;
 import java.util.Map;
 import java.util.Objects;
+import java.util.Set;
 import java.util.stream.Collectors;
 
 @Service
@@ -372,8 +378,10 @@ public class StudentManagerServiceImpl extends MPJBaseServiceImpl<BaseStudentUse
             .in(BaseStudentUser::getCredentialNumber, idNumbers)
         );
         Map<String, BaseStudentUser> studentUserMap = new HashMap<>();
+        Set<Long> userIds = new HashSet<>();
         for (BaseStudentUser studentUser : studentUsers) {
             studentUserMap.put(studentUser.getCredentialNumber(), studentUser);
+            userIds.add(studentUser.getId());
         }
         //查询所有的学生信息,组装起来备用
         List<BaseStudent> baseStudents = baseStudentService.selectJoinList(BaseStudent.class,
@@ -396,8 +404,8 @@ public class StudentManagerServiceImpl extends MPJBaseServiceImpl<BaseStudentUse
 
         List<BaseStudentSchoolRoll> baseStudentSchoolRolls = schoolRollService.selectJoinList(BaseStudentSchoolRoll.class,
                 new MPJLambdaWrapper<BaseStudentSchoolRoll>()
-                        .leftJoin(BaseStudent.class, BaseStudent::getUserId, BaseStudentSchoolRoll::getId)
-                        .in(BaseStudentUser::getCredentialNumber, idNumbers)
+                        .leftJoin(BaseStudent.class, BaseStudent::getUserId, BaseStudentSchoolRoll::getUserId)
+                        .in(BaseStudentSchoolRoll::getUserId, userIds)
         );
         Map<Long, BaseStudentSchoolRoll> studentSchoolRollMap = new HashMap<>();
         for (BaseStudentSchoolRoll schoolRoll : baseStudentSchoolRolls) {
@@ -460,7 +468,9 @@ public class StudentManagerServiceImpl extends MPJBaseServiceImpl<BaseStudentUse
         List<BaseStudentFamily> insertFamilyList = new ArrayList();
         List<BaseStudentContact> insertContactList = new ArrayList();
 
-        long createUserId = StpUtil.getLoginIdAsLong();
+//        long createUserId = StpUtil.getLoginIdAsLong();
+        long createUserId = 1000000000000000000L;
+        DateTimeFormatter formatter = DateTimeFormatter.ofPattern("yyyy-MM-dd");
         for (Map<Integer, Object> dataMaps : excelDataList) {
             String credentialNumber = dataMaps.get(0).toString();//身份证号
             //已存在,更新
@@ -514,261 +524,261 @@ public class StudentManagerServiceImpl extends MPJBaseServiceImpl<BaseStudentUse
                 contact.setCreateDate(LocalDateTime.now());
             }
             //设置字段值
-            if(dataMaps.get(1).toString() != null && !"".equals(dataMaps.get(1).toString())){
+            if(dataMaps.get(1) != null && !"".equals(dataMaps.get(1).toString())){
                 baseStudent.setStudentId(dataMaps.get(1).toString());//学号
             }
-            if(dataMaps.get(2).toString() != null && !"".equals(dataMaps.get(2).toString())){
+            if(dataMaps.get(2) != null && !"".equals(dataMaps.get(2).toString())){
                 schoolRoll.setCandidateNumber(dataMaps.get(2).toString());//考号
             }
-            if(dataMaps.get(3).toString() != null && !"".equals(dataMaps.get(3).toString())){
+            if(dataMaps.get(3) != null && !"".equals(dataMaps.get(3).toString())){
                 user.setName(dataMaps.get(3).toString());//姓名
             }
-            if(dataMaps.get(4).toString() != null && !"".equals(dataMaps.get(4).toString())){
+            if(dataMaps.get(4) != null && !"".equals(dataMaps.get(4).toString())){
                 user.setGender(GenderDictionaryEnum.getCode(dataMaps.get(4).toString()));//性别
             }
-            if(dataMaps.get(5).toString() != null && !"".equals(dataMaps.get(5).toString())){
+            if(dataMaps.get(5) != null && !"".equals(dataMaps.get(5).toString())){
                 user.setMobile(dataMaps.get(5).toString());//手机号
             }
-            if(dataMaps.get(6).toString() != null && !"".equals(dataMaps.get(6).toString())){
+            if(dataMaps.get(6) != null && !"".equals(dataMaps.get(6).toString())){
                 user.setEmail(dataMaps.get(6).toString());//邮箱
             }
-            if(dataMaps.get(7).toString() != null && !"".equals(dataMaps.get(7).toString())){
+            if(dataMaps.get(7) != null && !"".equals(dataMaps.get(7).toString())){
                 baseStudent.setAsName(dataMaps.get(7).toString());//别名
             }
-            if(dataMaps.get(8).toString() != null && !"".equals(dataMaps.get(8).toString())){
+            if(dataMaps.get(8) != null && !"".equals(dataMaps.get(8).toString())){
                 baseStudent.setEnName(dataMaps.get(8).toString());//英文名
             }
-            if(dataMaps.get(9).toString() != null && !"".equals(dataMaps.get(9).toString())){
+            if(dataMaps.get(9) != null && !"".equals(dataMaps.get(9).toString())){
                 baseStudent.setPyName(dataMaps.get(9).toString());//姓名拼音
             }
-            if(dataMaps.get(10).toString() != null && !"".equals(dataMaps.get(10).toString())){
+            if(dataMaps.get(10) != null && !"".equals(dataMaps.get(10).toString())){
                 baseStudent.setPyName(dataMaps.get(10).toString());//曾用名
             }
-            if(dataMaps.get(11).toString() != null && !"".equals(dataMaps.get(11).toString())){
+            if(dataMaps.get(11) != null && !"".equals(dataMaps.get(11).toString())){
                 user.setCredentialType(dictionary.get(dataMaps.get(11).toString()));//证件类型
             }
-            if(dataMaps.get(12).toString() != null && !"".equals(dataMaps.get(12).toString())){
-                LocalDateTime birthday = LocalDateTime.parse(dataMaps.get(12).toString());
+            if(dataMaps.get(12) != null && !"".equals(dataMaps.get(12).toString())){
+                LocalDateTime birthday = parseLocalDateTime(dataMaps.get(12).toString());
                 user.setBirthDate(birthday);//出生日期
                 baseStudent.setDayOfBirth(birthday);//出生日期
             }
-            if(dataMaps.get(13).toString() != null && !"".equals(dataMaps.get(13).toString())){
+            if(dataMaps.get(13) != null && !"".equals(dataMaps.get(13).toString())){
                 baseStudent.setBirthType(dictionary.get(dataMaps.get(13).toString()));//生日类型
             }
-            if(dataMaps.get(14).toString() != null && !"".equals(dataMaps.get(14).toString())){
+            if(dataMaps.get(14) != null && !"".equals(dataMaps.get(14).toString())){
                 baseStudent.setNation(dictionary.get(dataMaps.get(14).toString()));//民族
             }
-            if(dataMaps.get(15).toString() != null && !"".equals(dataMaps.get(15).toString())){
+            if(dataMaps.get(15) != null && !"".equals(dataMaps.get(15).toString())){
                 baseStudent.setBloodType(dictionary.get(dataMaps.get(15).toString()));//血型
             }
-            if(dataMaps.get(16).toString() != null && !"".equals(dataMaps.get(16).toString())){
+            if(dataMaps.get(16) != null && !"".equals(dataMaps.get(16).toString())){
                 baseStudent.setHealth(dictionary.get(dataMaps.get(16).toString()));//健康状况
             }
-            if(dataMaps.get(17).toString() != null && !"".equals(dataMaps.get(17).toString())){
+            if(dataMaps.get(17) != null && !"".equals(dataMaps.get(17).toString())){
                 baseStudent.setMaritalState(dictionary.get(dataMaps.get(17).toString()));//婚姻状况
             }
-            if(dataMaps.get(18).toString() != null && !"".equals(dataMaps.get(18).toString())){
+            if(dataMaps.get(18) != null && !"".equals(dataMaps.get(18).toString())){
                 baseStudent.setPoliticalState(dictionary.get(dataMaps.get(18).toString()));//政治面貌
             }
-            if(dataMaps.get(19).toString() != null && !"".equals(dataMaps.get(19).toString())){
+            if(dataMaps.get(19) != null && !"".equals(dataMaps.get(19).toString())){
                 baseStudent.setPoliticalState(dictionary.get(dataMaps.get(19).toString()));//国籍地区
             }
-            if(dataMaps.get(20).toString() != null && !"".equals(dataMaps.get(20).toString())){
+            if(dataMaps.get(20) != null && !"".equals(dataMaps.get(20).toString())){
                 baseStudent.setChineseType(dictionary.get(dataMaps.get(20).toString()));//港澳台侨外
             }
-            if(dataMaps.get(21).toString() != null && !"".equals(dataMaps.get(21).toString())){
+            if(dataMaps.get(21) != null && !"".equals(dataMaps.get(21).toString())){
                 baseStudent.setHouseHoldType(dictionary.get(dataMaps.get(21).toString()));//户口类别
             }
-//            if(dataMaps.get(22).toString() != null && !"".equals(dataMaps.get(22).toString())){
+//            if(dataMaps.get(22) != null && !"".equals(dataMaps.get(22).toString())){
 //                baseStudent.setHouseHoldType(dictionary.get(dataMaps.get(22).toString()));//籍贯类型
 //            }
-            if(dataMaps.get(23).toString() != null && !"".equals(dataMaps.get(23).toString())){
+            if(dataMaps.get(23) != null && !"".equals(dataMaps.get(23).toString())){
                 baseStudent.setProvinces(areaMap.get(dataMaps.get(23).toString()));//省
             }
-            if(dataMaps.get(24).toString() != null && !"".equals(dataMaps.get(24).toString())){
+            if(dataMaps.get(24) != null && !"".equals(dataMaps.get(24).toString())){
                 baseStudent.setCity(areaMap.get(dataMaps.get(23).toString()));//市
             }
-            if(dataMaps.get(25).toString() != null && !"".equals(dataMaps.get(25).toString())){
+            if(dataMaps.get(25) != null && !"".equals(dataMaps.get(25).toString())){
                 baseStudent.setDistrict(areaMap.get(dataMaps.get(25).toString()));//区县
             }
-            if(dataMaps.get(26).toString() != null && !"".equals(dataMaps.get(26).toString())){
+            if(dataMaps.get(26) != null && !"".equals(dataMaps.get(26).toString())){
                 baseStudent.setHouseProvinces(areaMap.get(dataMaps.get(26).toString()));//户口所在地省
             }
-            if(dataMaps.get(27).toString() != null && !"".equals(dataMaps.get(27).toString())){
+            if(dataMaps.get(27) != null && !"".equals(dataMaps.get(27).toString())){
                 baseStudent.setHouseCity(areaMap.get(dataMaps.get(27).toString()));//户口所在地市
             }
-            if(dataMaps.get(28).toString() != null && !"".equals(dataMaps.get(28).toString())){
+            if(dataMaps.get(28) != null && !"".equals(dataMaps.get(28).toString())){
                 baseStudent.setHouseDistrict(areaMap.get(dataMaps.get(28).toString()));//户口所在地区/县
             }
-            if(dataMaps.get(29).toString() != null && !"".equals(dataMaps.get(29).toString())){
+            if(dataMaps.get(29) != null && !"".equals(dataMaps.get(29).toString())){
                 baseStudent.setBelongsPolice(dataMaps.get(29).toString());//户口所属派出所
             }
-            if(dataMaps.get(30).toString() != null && !"".equals(dataMaps.get(30).toString())){
+            if(dataMaps.get(30) != null && !"".equals(dataMaps.get(30).toString())){
                 baseStudent.setBirthProvinces(areaMap.get(dataMaps.get(30).toString()));//出生所在地省
             }
-            if(dataMaps.get(31).toString() != null && !"".equals(dataMaps.get(31).toString())){
+            if(dataMaps.get(31) != null && !"".equals(dataMaps.get(31).toString())){
                 baseStudent.setBirthCity(areaMap.get(dataMaps.get(31).toString()));//出生所在地市
             }
-            if(dataMaps.get(32).toString() != null && !"".equals(dataMaps.get(32).toString())){
+            if(dataMaps.get(32) != null && !"".equals(dataMaps.get(32).toString())){
                 baseStudent.setBirthDistrict(areaMap.get(dataMaps.get(32).toString()));//出生所在地/区县
             }
-            if(dataMaps.get(33).toString() != null && !"".equals(dataMaps.get(33).toString())){
+            if(dataMaps.get(33) != null && !"".equals(dataMaps.get(33).toString())){
                 baseStudent.setHouseHoldAddress(dataMaps.get(33).toString());//户籍地址
             }
-            if(dataMaps.get(34).toString() != null && !"".equals(dataMaps.get(34).toString())){
+            if(dataMaps.get(34) != null && !"".equals(dataMaps.get(34).toString())){
                 baseStudent.setResidenceType(dictionary.get(dataMaps.get(34).toString()));//学生居住地类型
             }
-            if(dataMaps.get(35).toString() != null && !"".equals(dataMaps.get(35).toString())){
+            if(dataMaps.get(35) != null && !"".equals(dataMaps.get(35).toString())){
                 baseStudent.setTrainInterval(dataMaps.get(35).toString());//乘火车区间
             }
-            if(dataMaps.get(36).toString() != null && !"".equals(dataMaps.get(36).toString())){
+            if(dataMaps.get(36) != null && !"".equals(dataMaps.get(36).toString())){
                 baseStudent.setIsMigrateChildren(YesOrNoEnum.getCode(dataMaps.get(36).toString()));//是否随迁子女
             }
-            if(dataMaps.get(37).toString() != null && !"".equals(dataMaps.get(37).toString())){
+            if(dataMaps.get(37) != null && !"".equals(dataMaps.get(37).toString())){
                 baseStudent.setIsFloatingPopulation(YesOrNoEnum.getCode(dataMaps.get(37).toString()));//是否流动人口
             }
-            if(dataMaps.get(38).toString() != null && !"".equals(dataMaps.get(38).toString())){
+            if(dataMaps.get(38) != null && !"".equals(dataMaps.get(38).toString())){
                 baseStudent.setHeight(Double.parseDouble(dataMaps.get(38).toString()));//身高
             }
-            if(dataMaps.get(39).toString() != null && !"".equals(dataMaps.get(39).toString())){
+            if(dataMaps.get(39) != null && !"".equals(dataMaps.get(39).toString())){
                 baseStudent.setWeight(Double.parseDouble(dataMaps.get(39).toString()));//体重
             }
-            if(dataMaps.get(40).toString() != null && !"".equals(dataMaps.get(40).toString())){
+            if(dataMaps.get(40) != null && !"".equals(dataMaps.get(40).toString())){
                 baseStudent.setVision(Double.parseDouble(dataMaps.get(40).toString()));//视力
             }
-            if(dataMaps.get(41).toString() != null && !"".equals(dataMaps.get(41).toString())){
+            if(dataMaps.get(41) != null && !"".equals(dataMaps.get(41).toString())){
                 baseStudent.setSpecialty(dataMaps.get(41).toString());//特长
             }
-            if(dataMaps.get(42).toString() != null && !"".equals(dataMaps.get(42).toString())){
+            if(dataMaps.get(42) != null && !"".equals(dataMaps.get(42).toString())){
                 user.setQqNumber(dataMaps.get(42).toString());//QQ&MSN
                 contact.setQqMsn(dataMaps.get(42).toString());//QQ&MSN
             }
-            if(dataMaps.get(43).toString() != null && !"".equals(dataMaps.get(43).toString())){
+            if(dataMaps.get(43) != null && !"".equals(dataMaps.get(43).toString())){
                 user.setWechatNumber(dataMaps.get(43).toString());//微信号码
                 contact.setWechat(dataMaps.get(43).toString());//微信号码
             }
-            if(dataMaps.get(44).toString() != null && !"".equals(dataMaps.get(44).toString())){
+            if(dataMaps.get(44) != null && !"".equals(dataMaps.get(44).toString())){
                 contact.setUserPage(dataMaps.get(44).toString());//个人主页
             }
-            if(dataMaps.get(45).toString() != null && !"".equals(dataMaps.get(45).toString())){
+            if(dataMaps.get(45) != null && !"".equals(dataMaps.get(45).toString())){
                 schoolRoll.setRollNumber(dataMaps.get(45).toString());//学籍号
             }
-            if(dataMaps.get(46).toString() != null && !"".equals(dataMaps.get(46).toString())){
+            if(dataMaps.get(46) != null && !"".equals(dataMaps.get(46).toString())){
                 schoolRoll.setArchivesNumber(dataMaps.get(46).toString());//学生档案编号
             }
-            if(dataMaps.get(47).toString() != null && !"".equals(dataMaps.get(47).toString())){
+            if(dataMaps.get(47) != null && !"".equals(dataMaps.get(47).toString())){
                 schoolRoll.setEnrollmentDate(sdf.parse(dataMaps.get(47).toString()));//入学年月
             }
-            if(dataMaps.get(48).toString() != null && !"".equals(dataMaps.get(48).toString())){
+            if(dataMaps.get(48) != null && !"".equals(dataMaps.get(48).toString())){
                 schoolRoll.setEnrollmentType(dictionary.get(dataMaps.get(48).toString()));//入学方式
             }
-            if(dataMaps.get(49).toString() != null && !"".equals(dataMaps.get(49).toString())){
+            if(dataMaps.get(49) != null && !"".equals(dataMaps.get(49).toString())){
                 schoolRoll.setGradeId(gradeMap.get(dataMaps.get(49).toString()));//入学年级
             }
-            if(dataMaps.get(50).toString() != null && !"".equals(dataMaps.get(50).toString())){
+            if(dataMaps.get(50) != null && !"".equals(dataMaps.get(50).toString())){
                 schoolRoll.setEnrollType(dictionary.get(dataMaps.get(50).toString()));//入学招生类型
             }
-            if(dataMaps.get(51).toString() != null && !"".equals(dataMaps.get(51).toString())){
+            if(dataMaps.get(51) != null && !"".equals(dataMaps.get(51).toString())){
                 schoolRoll.setMajorSetId(majorSetMap.get(dataMaps.get(51).toString()));//在读专业方向
             }
-            if(dataMaps.get(52).toString() != null && !"".equals(dataMaps.get(52).toString())){
+            if(dataMaps.get(52) != null && !"".equals(dataMaps.get(52).toString())){
                 schoolRoll.setStudyYear(Double.parseDouble(dataMaps.get(52).toString()));//学制
             }
-            if(dataMaps.get(53).toString() != null && !"".equals(dataMaps.get(53).toString())){
+            if(dataMaps.get(53) != null && !"".equals(dataMaps.get(53).toString())){
                 schoolRoll.setClassId(classMap.get(dataMaps.get(53).toString()));//班级
             }
-            if(dataMaps.get(54).toString() != null && !"".equals(dataMaps.get(54).toString())){
+            if(dataMaps.get(54) != null && !"".equals(dataMaps.get(54).toString())){
                 schoolRoll.setStudentSource(dictionary.get(dataMaps.get(54).toString()));//学生来源
             }
-            if(dataMaps.get(55).toString() != null && !"".equals(dataMaps.get(55).toString())){
+            if(dataMaps.get(55) != null && !"".equals(dataMaps.get(55).toString())){
                 schoolRoll.setStudentType(dictionary.get(dataMaps.get(55).toString()));//学生类别
             }
-            if(dataMaps.get(56).toString() != null && !"".equals(dataMaps.get(56).toString())){
+            if(dataMaps.get(56) != null && !"".equals(dataMaps.get(56).toString())){
                 schoolRoll.setArchivesStatus(dictionary.get(dataMaps.get(56).toString()));//学籍状态
             }
-            if(dataMaps.get(57).toString() != null && !"".equals(dataMaps.get(57).toString())){
+            if(dataMaps.get(57) != null && !"".equals(dataMaps.get(57).toString())){
                 schoolRoll.setLearnStatus(dictionary.get(dataMaps.get(57).toString()));//学习形式
             }
-            if(dataMaps.get(58).toString() != null && !"".equals(dataMaps.get(58).toString())){
+            if(dataMaps.get(58) != null && !"".equals(dataMaps.get(58).toString())){
                 schoolRoll.setStduyStatus(dictionary.get(dataMaps.get(58).toString()));//就读方式
             }
-            if(dataMaps.get(59).toString() != null && !"".equals(dataMaps.get(59).toString())){
+            if(dataMaps.get(59) != null && !"".equals(dataMaps.get(59).toString())){
                 schoolRoll.setChooseStatus(dictionary.get(dataMaps.get(59).toString()));//分流状态
             }
-            if(dataMaps.get(60).toString() != null && !"".equals(dataMaps.get(60).toString())){
+            if(dataMaps.get(60) != null && !"".equals(dataMaps.get(60).toString())){
                 schoolRoll.setFosterType(dictionary.get(dataMaps.get(60).toString()));//分段培养方式
             }
-            if(dataMaps.get(61).toString() != null && !"".equals(dataMaps.get(61).toString())){
+            if(dataMaps.get(61) != null && !"".equals(dataMaps.get(61).toString())){
                 schoolRoll.setRecruitType(dictionary.get(dataMaps.get(61).toString()));//招生类型
             }
-            if(dataMaps.get(62).toString() != null && !"".equals(dataMaps.get(62).toString())){
+            if(dataMaps.get(62) != null && !"".equals(dataMaps.get(62).toString())){
                 schoolRoll.setRecruitTarget(dictionary.get(dataMaps.get(62).toString()));//招生对象
             }
-            if(dataMaps.get(63).toString() != null && !"".equals(dataMaps.get(63).toString())){
+            if(dataMaps.get(63) != null && !"".equals(dataMaps.get(63).toString())){
                 schoolRoll.setHighestEducation(dictionary.get(dataMaps.get(63).toString()));//入学前最高学历
             }
-            if(dataMaps.get(64).toString() != null && !"".equals(dataMaps.get(64).toString())){
+            if(dataMaps.get(64) != null && !"".equals(dataMaps.get(64).toString())){
                 schoolRoll.setGraduatedUniversity(dataMaps.get(64).toString());//入学前毕业院校
             }
-            if(dataMaps.get(65).toString() != null && !"".equals(dataMaps.get(65).toString())){
+            if(dataMaps.get(65) != null && !"".equals(dataMaps.get(65).toString())){
                 schoolRoll.setGraduatedScore(Double.parseDouble(dataMaps.get(65).toString()));//入学前毕业成绩
             }
-            if(dataMaps.get(66).toString() != null && !"".equals(dataMaps.get(66).toString())){
+            if(dataMaps.get(66) != null && !"".equals(dataMaps.get(66).toString())){
                 schoolRoll.setExamineeNumber(dataMaps.get(66).toString());//入学考试准考证号
             }
-            if(dataMaps.get(67).toString() != null && !"".equals(dataMaps.get(67).toString())){
+            if(dataMaps.get(67) != null && !"".equals(dataMaps.get(67).toString())){
                 schoolRoll.setTicketNumber(dataMaps.get(67).toString());//入学考试准考证号
             }
-            if(dataMaps.get(68).toString() != null && !"".equals(dataMaps.get(68).toString())){
+            if(dataMaps.get(68) != null && !"".equals(dataMaps.get(68).toString())){
                 schoolRoll.setAdmissionScores(Double.parseDouble(dataMaps.get(68).toString()));//入学考试成绩
             }
-            if(dataMaps.get(69).toString() != null && !"".equals(dataMaps.get(69).toString())){
+            if(dataMaps.get(69) != null && !"".equals(dataMaps.get(69).toString())){
                 schoolRoll.setRemark(dataMaps.get(69).toString());//备注
             }
-            if(dataMaps.get(69).toString() != null && !"".equals(dataMaps.get(69).toString())){
+            if(dataMaps.get(69) != null && !"".equals(dataMaps.get(69).toString())){
                 schoolRoll.setRemark(dataMaps.get(69).toString());//备注
             }
 
-            if(dataMaps.get(70).toString() != null && !"".equals(dataMaps.get(70).toString())){
+            if(dataMaps.get(70) != null && !"".equals(dataMaps.get(70).toString())){
                 subsidize.setIsIndemnify(YesOrNoEnum.getCode(dataMaps.get(70).toString()));//是否低保户
             }
-            if(dataMaps.get(71).toString() != null && !"".equals(dataMaps.get(71).toString())){
+            if(dataMaps.get(71) != null && !"".equals(dataMaps.get(71).toString())){
                 subsidize.setIsStipend(YesOrNoEnum.getCode(dataMaps.get(71).toString()));//是否享受国家助学金
             }
-            if(dataMaps.get(72).toString() != null && !"".equals(dataMaps.get(72).toString())){
+            if(dataMaps.get(72) != null && !"".equals(dataMaps.get(72).toString())){
                 subsidize.setStipendStand(Double.parseDouble(dataMaps.get(72).toString()));//助学金发放标准(元)
             }
-            if(dataMaps.get(73).toString() != null && !"".equals(dataMaps.get(73).toString())){
+            if(dataMaps.get(73) != null && !"".equals(dataMaps.get(73).toString())){
                 subsidize.setStipendNumber(dataMaps.get(73).toString());//学生资助卡号
             }
-            if(dataMaps.get(74).toString() != null && !"".equals(dataMaps.get(74).toString())){
+            if(dataMaps.get(74) != null && !"".equals(dataMaps.get(74).toString())){
                 subsidize.setIsFree(YesOrNoEnum.getCode(dataMaps.get(74).toString()));//是否免学费
             }
-            if(dataMaps.get(75).toString() != null && !"".equals(dataMaps.get(75).toString())){
+            if(dataMaps.get(75) != null && !"".equals(dataMaps.get(75).toString())){
                 subsidize.setIsFilingCard(YesOrNoEnum.getCode(dataMaps.get(75).toString()));//是否建档立卡
             }
-            if(dataMaps.get(76).toString() != null && !"".equals(dataMaps.get(76).toString())){
+            if(dataMaps.get(76) != null && !"".equals(dataMaps.get(76).toString())){
                 studentFamily.setZipCode(dataMaps.get(76).toString());//家庭邮编
             }
-            if(dataMaps.get(77).toString() != null && !"".equals(dataMaps.get(77).toString())){
+            if(dataMaps.get(77) != null && !"".equals(dataMaps.get(77).toString())){
                 studentFamily.setTelephone(dataMaps.get(77).toString());//家庭电话
             }
-            if(dataMaps.get(78).toString() != null && !"".equals(dataMaps.get(78).toString())){
+            if(dataMaps.get(78) != null && !"".equals(dataMaps.get(78).toString())){
                 studentFamily.setContact(dataMaps.get(76).toString());//联系人姓名
             }
-            if(dataMaps.get(79).toString() != null && !"".equals(dataMaps.get(79).toString())){
+            if(dataMaps.get(79) != null && !"".equals(dataMaps.get(79).toString())){
                 studentFamily.setPopulation(Integer.parseInt(dataMaps.get(76).toString()));//家庭人口
             }
-            if(dataMaps.get(80).toString() != null && !"".equals(dataMaps.get(80).toString())){
+            if(dataMaps.get(80) != null && !"".equals(dataMaps.get(80).toString())){
                 studentFamily.setAddress(dataMaps.get(80).toString());//家庭地址
             }
-            if(dataMaps.get(81).toString() != null && !"".equals(dataMaps.get(81).toString())){
+            if(dataMaps.get(81) != null && !"".equals(dataMaps.get(81).toString())){
                 studentFamily.setIncomeSource(dataMaps.get(81).toString());//家庭主要收入来源
             }
-            if(dataMaps.get(82).toString() != null && !"".equals(dataMaps.get(82).toString())){
+            if(dataMaps.get(82) != null && !"".equals(dataMaps.get(82).toString())){
                 studentFamily.setIncomeNumber(Double.parseDouble(dataMaps.get(82).toString()));//家庭月收入(元)
             }
-            if(dataMaps.get(83).toString() != null && !"".equals(dataMaps.get(83).toString())){
+            if(dataMaps.get(83) != null && !"".equals(dataMaps.get(83).toString())){
                 studentFamily.setRailwayStation(dataMaps.get(83).toString());//离家最近火车站
             }
             if(studentUserMap.containsKey(credentialNumber)){
@@ -777,12 +787,14 @@ public class StudentManagerServiceImpl extends MPJBaseServiceImpl<BaseStudentUse
                 updateSchoolRollList.add(schoolRoll);
                 updateSubsidizeList.add(subsidize);
                 updateFamilyList.add(studentFamily);
+                updateContactList.add(contact);
             }else{
                 insertStudentUserList.add(user);
                 insertBaseStudentList.add(baseStudent);
                 insertSchoolRollList.add(schoolRoll);
                 insertSubsidizeList.add(subsidize);
                 insertFamilyList.add(studentFamily);
+                insertContactList.add(contact);
             }
         }
         //批量修改
@@ -801,6 +813,9 @@ public class StudentManagerServiceImpl extends MPJBaseServiceImpl<BaseStudentUse
         if(!updateBaseStudentList.isEmpty()){
             baseStudentService.updateBatchById(updateBaseStudentList);
         }
+        if(!updateContactList.isEmpty()){
+            studentContactService.updateBatchById(updateContactList);
+        }
         //批量新增
         if(!insertStudentUserList.isEmpty()){
             this.saveBatch(insertStudentUserList);
@@ -817,6 +832,9 @@ public class StudentManagerServiceImpl extends MPJBaseServiceImpl<BaseStudentUse
         if(!insertSchoolRollList.isEmpty()){
             schoolRollService.saveBatch(insertSchoolRollList);
         }
+        if(!insertContactList.isEmpty()){
+            studentContactService.saveBatch(insertContactList);
+        }
         return true;
     }
 
@@ -847,4 +865,30 @@ public class StudentManagerServiceImpl extends MPJBaseServiceImpl<BaseStudentUse
         }
         return resultMap;
     }
+
+    private LocalDateTime parseLocalDateTime(String dateStr){
+        LocalDate time = null;
+
+        try {
+            time = LocalDate.parse(dateStr, DateTimeFormatter.ofPattern("yyyy-MM-dd"));
+        }catch (DateTimeParseException e){
+            try {
+                time = LocalDate.parse(dateStr, DateTimeFormatter.ofPattern("yyyy/MM/dd"));
+            }catch (DateTimeParseException e2){
+                try {
+                    time = LocalDate.parse(dateStr, DateTimeFormatter.ofPattern("yyyy年MM月dd日"));
+                }catch (DateTimeParseException e3){
+                    try {
+                        time = LocalDate.parse(dateStr, DateTimeFormatter.ofPattern("yyyyMMdd"));
+                    }catch (DateTimeParseException e4){
+                        throw new MyException("日期格式不争取");
+                    }
+                }
+            }
+        }
+        if(time != null){
+            return time.atStartOfDay();
+        }
+        return null;
+    }
 }