夏文涛 2 лет назад
Родитель
Сommit
0abb8d172a

+ 3 - 3
src/main/java/com/template/api/SmartSemesterControllerAPI.java

@@ -22,9 +22,9 @@ public interface SmartSemesterControllerAPI {
     @ApiOperation(value = "添加学期", notes = "添加学期数据", httpMethod = "POST")
     CommonResult insertSmartSemester(@Validated @RequestBody SmartSemester smartApply, BindingResult bindingResult) throws Exception;
 
-    @GetMapping(value = "/testSmartSemester")
-    @ApiOperation(value = "添加学期", notes = "添加学期数据", httpMethod = "GET")
-    CommonResult testSmartSemester(int id) throws Exception;
+    @GetMapping(value = "/pullSemesterTeacher")
+    @ApiOperation(value = "未拉取的老师可重新获取", notes = "未拉取的老师可重新获取", httpMethod = "GET")
+    CommonResult pullSemesterTeacher() throws Exception;
 
     @PostMapping(value = "/updateSmartSemesterById")
     @ApiOperation(value = "编辑学期数据", notes = "编辑学期数据", httpMethod = "POST")

+ 2 - 10
src/main/java/com/template/controller/SmartEvaluateTeacherController.java

@@ -345,9 +345,6 @@ public class SmartEvaluateTeacherController implements SmartEvaluateTeacherContr
         if (smartEvaluateTeacher.getTerm() != null && !smartEvaluateTeacher.getTerm().trim().equals("")) {
             queryWrapper.like("term", smartEvaluateTeacher.getTerm());
         }
-        if (smartEvaluateTeacher.getSubject() != null && !smartEvaluateTeacher.getSubject().trim().equals("")) {
-            queryWrapper.eq("subject", smartEvaluateTeacher.getSubject());
-        }
         if (smartEvaluateTeacher.getClassName() != null && !smartEvaluateTeacher.getClassName().trim().equals("")) {
             queryWrapper.eq("class_name", smartEvaluateTeacher.getClassName());
         }
@@ -371,9 +368,6 @@ public class SmartEvaluateTeacherController implements SmartEvaluateTeacherContr
         } else {
             queryWrapper.like("term", term);
         }
-        if (smartEvaluateTeacher.getSubject() != null && !smartEvaluateTeacher.getSubject().trim().equals("")) {
-            queryWrapper.eq("subject", smartEvaluateTeacher.getSubject());
-        }
         if (smartEvaluateTeacher.getClassName() != null && !smartEvaluateTeacher.getClassName().trim().equals("")) {
             queryWrapper.eq("class_name", smartEvaluateTeacher.getClassName());
         }
@@ -386,8 +380,7 @@ public class SmartEvaluateTeacherController implements SmartEvaluateTeacherContr
         headerRow.createCell(1).setCellValue("工号");
         headerRow.createCell(2).setCellValue("姓名");
         headerRow.createCell(3).setCellValue("学期");
-        headerRow.createCell(4).setCellValue("学科");
-        headerRow.createCell(5).setCellValue("班级");
+        headerRow.createCell(4).setCellValue("班级");
         QueryWrapper<SmartScoreManage> queryWrapper1 = new QueryWrapper<>();
         queryWrapper1.eq("deleted", 0);
         queryWrapper1.eq("parent_id", 0);
@@ -405,8 +398,7 @@ public class SmartEvaluateTeacherController implements SmartEvaluateTeacherContr
             dataRow.createCell(1).setCellValue(teacherScore.getCardNo());
             dataRow.createCell(2).setCellValue(teacherScore.getName());
             dataRow.createCell(3).setCellValue(teacherScore.getTerm());
-            dataRow.createCell(4).setCellValue(teacherScore.getSubject());
-            dataRow.createCell(5).setCellValue(teacherScore.getClassName());
+            dataRow.createCell(4).setCellValue(teacherScore.getClassName());
             // 分数详情
             JSONObject scoreDetail = JSON.parseObject(teacherScore.getEvaluateDetail());
             for (int j = 0; j < scoreManageList.size(); j++) {

+ 77 - 203
src/main/java/com/template/controller/SmartSemesterController.java

@@ -7,13 +7,12 @@ import com.template.annotation.DESRespondSecret;
 import com.template.api.SmartSemesterControllerAPI;
 import com.template.common.utils.TimeExchange;
 import com.template.common.utils.paramUtils;
+import com.template.model.enumModel.eDuties;
 import com.template.model.evaluate.teacher.SmartEvaluateTdetail;
 import com.template.model.evaluate.teacher.SmartEvaluateTeacher;
 import com.template.model.evaluate.teacher.SmartScoreManage;
+import com.template.model.pojo.*;
 import com.template.model.pojo.SmartSemester;
-import com.template.model.pojo.SmartIdentity;
-import com.template.model.pojo.SmartSemester;
-import com.template.model.pojo.SmartTeaching;
 import com.template.model.result.CommonResult;
 import com.template.model.result.PageUtils;
 import com.template.model.vo.SemesterVo;
@@ -31,6 +30,7 @@ import org.springframework.web.bind.annotation.RestController;
 import java.util.ArrayList;
 import java.util.Date;
 import java.util.List;
+import java.util.Optional;
 import java.util.stream.Collectors;
 
 /**
@@ -61,6 +61,15 @@ public class SmartSemesterController implements SmartSemesterControllerAPI {
     @Autowired
     private SmartEvaluateTeacherService smartEvaluateTeacherService;
 
+    @Autowired
+    private SmartUserService smartUserService;
+
+    @Autowired
+    private SmartClassService smartClassService;
+
+    @Autowired
+    private SmartGradeService smartGradeService;
+
     /**
      * 新增学期
      *
@@ -249,24 +258,32 @@ public class SmartSemesterController implements SmartSemesterControllerAPI {
             }
             //endregion
 
-            //region 任课老师赋值
-            List<UserSubjectVo> teachings = smartTeachingService.querySmartTeachings(null);
+            //region 获取老师
+            List<SmartUser> teachings = smartUserService.queryTeachers();
+            List<SmartClass> classes = smartClassService.list(null);
+            List<SmartGrade> grades = smartGradeService.list(null);
             if (teachings != null && teachings.size() > 0) {
                 List<SmartEvaluateTeacher> sets = new ArrayList<>();
-                for (UserSubjectVo usv : teachings) {
-                    if (usv.getUserName() != null) {
+                for (SmartUser usv : teachings) {
+                    if (usv.getName() != null) {
                         SmartEvaluateTeacher set = new SmartEvaluateTeacher();
                         set.setCardNo(usv.getCardNo());
-                        set.setName(usv.getUserName());
-                        set.setUserId(usv.getUserId());
-                        set.setGradeId(usv.getGradeId());
-                        set.setGradeName(usv.getGradeName());
+                        set.setName(usv.getName());
+                        set.setUserId(usv.getId());
                         set.setTermId(smartApply.getId());
                         set.setTerm(smartApply.getName());
-                        set.setSubjectId(usv.getSubjectId());
-                        set.setSubject(usv.getSubjectName());
-                        set.setClassId(usv.getClassId());
-                        set.setClassName(usv.getClassName());
+                        if (usv.getDuties().intValue() == eDuties.ClassTeacher.getValue()) {//班主任才有年级和班级
+                            set.setGradeId(Integer.valueOf(usv.getGrade()));
+                            Optional<SmartGrade> oGrade = grades.stream().filter(e -> e.getId().equals(set.getGradeId())).findFirst();
+                            if (oGrade != null && oGrade.isPresent()) {
+                                set.setGradeName(oGrade.get().getName());
+                            }
+                            set.setClassId(usv.getSchoolClass());
+                            Optional<SmartClass> oClass = classes.stream().filter(e -> e.getId().equals(set.getClassId())).findFirst();
+                            if (oClass != null && oClass.isPresent()) {
+                                set.setClassName(oClass.get().getName());
+                            }
+                        }
                         set.setTotalScore(0.0);
                         set.setLowingScore(0.0);
                         sets.add(set);
@@ -289,202 +306,59 @@ public class SmartSemesterController implements SmartSemesterControllerAPI {
 
     @Override
     @Transactional(rollbackFor = {Exception.class})
-    public CommonResult testSmartSemester(int id) throws Exception {
-
-        SmartSemester smartApply = smartSemesterService.getSmartById(id);
-
+    public CommonResult pullSemesterTeacher() throws Exception {
+        List<SmartEvaluateTeacher> insertETeachers = new ArrayList<>();
+        List<SmartSemester> semesters = smartSemesterService.list(null);
+        List<SmartEvaluateTeacher> evaluateTeachers = smartEvaluateTeacherService.list(null);
+        List<SmartUser> teachers = smartUserService.queryTeachers();
+        List<SmartClass> classes = smartClassService.list(null);
+        List<SmartGrade> grades = smartGradeService.list(null);
         try {
-            int result = smartApply.getId();
-
-            //region 添加对应的默认教师评分项
-            List<SmartScoreManage> scoreManages = new ArrayList<>();
-            //region 德
-            SmartScoreManage morals = new SmartScoreManage();
-            morals.setTermId(result);
-            morals.setTerm(smartApply.getName());
-            morals.setScoreItem("德");
-            morals.setParentId(0);
-            morals.setScoreNum(12.0);
-            scoreManages.add(morals);
-            //endregion
-            //region 能
-            SmartScoreManage ability = new SmartScoreManage();
-            ability.setTermId(result);
-            ability.setTerm(smartApply.getName());
-            ability.setScoreItem("能");
-            ability.setParentId(0);
-            ability.setScoreNum(28.0);
-            scoreManages.add(ability);
-            //endregion
-            //region 勤
-            SmartScoreManage diligent = new SmartScoreManage();
-            diligent.setTermId(result);
-            diligent.setTerm(smartApply.getName());
-            diligent.setScoreItem("勤");
-            diligent.setParentId(0);
-            diligent.setScoreNum(6.0);
-            scoreManages.add(diligent);
-            //endregion
-            //region 绩
-            SmartScoreManage merit = new SmartScoreManage();
-            merit.setTermId(result);
-            merit.setTerm(smartApply.getName());
-            merit.setScoreItem("绩");
-            merit.setParentId(0);
-            merit.setScoreNum(54.0);
-            scoreManages.add(merit);
-            //endregion
-            boolean inserSManages = smartScoreManageService.saveBatch(scoreManages);
-            if (!inserSManages) {
-                //return CommonResult.fail("添加失败");
-                throw new Exception("添加失败!");
-            }
-
-            List<SmartScoreManage> scoreManagesData = smartScoreManageService.queryDatasByTermId(result);
-
-            List<SmartScoreManage> scoreManageDetails = new ArrayList<>();
-            for (SmartScoreManage data : scoreManagesData) {
-                switch (data.getScoreItem()) {
-                    case "德":
-                        SmartScoreManage one = new SmartScoreManage();
-                        one.setTermId(result);
-                        one.setTerm(smartApply.getName());
-                        one.setScoreItem("为人师表");
-                        one.setParentId(data.getId());
-                        one.setScoreNum(3.0);
-                        scoreManageDetails.add(one);
-                        SmartScoreManage two = new SmartScoreManage();
-                        two.setTermId(result);
-                        two.setTerm(smartApply.getName());
-                        two.setScoreItem("关爱学生");
-                        two.setParentId(data.getId());
-                        two.setScoreNum(3.0);
-                        scoreManageDetails.add(two);
-                        SmartScoreManage three = new SmartScoreManage();
-                        three.setTermId(result);
-                        three.setTerm(smartApply.getName());
-                        three.setScoreItem("爱岗敬业");
-                        three.setParentId(data.getId());
-                        three.setScoreNum(6.0);
-                        scoreManageDetails.add(three);
-                        break;
-                    case "能":
-                        SmartScoreManage none = new SmartScoreManage();
-                        none.setTermId(result);
-                        none.setTerm(smartApply.getName());
-                        none.setScoreItem("基础能力");
-                        none.setParentId(data.getId());
-                        none.setScoreNum(1.0);
-                        scoreManageDetails.add(none);
-                        SmartScoreManage ntwo = new SmartScoreManage();
-                        ntwo.setTermId(result);
-                        ntwo.setTerm(smartApply.getName());
-                        ntwo.setScoreItem("教学能力");
-                        ntwo.setParentId(data.getId());
-                        ntwo.setScoreNum(16.0);
-                        scoreManageDetails.add(ntwo);
-                        SmartScoreManage nthree = new SmartScoreManage();
-                        nthree.setTermId(result);
-                        nthree.setTerm(smartApply.getName());
-                        nthree.setScoreItem("学习能力");
-                        nthree.setParentId(data.getId());
-                        nthree.setScoreNum(7.0);
-                        scoreManageDetails.add(nthree);
-                        SmartScoreManage nfour = new SmartScoreManage();
-                        nfour.setTermId(result);
-                        nfour.setTerm(smartApply.getName());
-                        nfour.setScoreItem("创新能力");
-                        nfour.setParentId(data.getId());
-                        nfour.setScoreNum(4.0);
-                        scoreManageDetails.add(nfour);
-                        break;
-                    case "勤":
-                        SmartScoreManage qone = new SmartScoreManage();
-                        qone.setTermId(result);
-                        qone.setTerm(smartApply.getName());
-                        qone.setScoreItem("考勤");
-                        qone.setParentId(data.getId());
-                        qone.setScoreNum(6.0);
-                        scoreManageDetails.add(qone);
-                        break;
-                    case "绩":
-                        SmartScoreManage jone = new SmartScoreManage();
-                        jone.setTermId(result);
-                        jone.setTerm(smartApply.getName());
-                        jone.setScoreItem("工作量");
-                        jone.setParentId(data.getId());
-                        jone.setScoreNum(8.0);
-                        scoreManageDetails.add(jone);
-                        SmartScoreManage jtwo = new SmartScoreManage();
-                        jtwo.setTermId(result);
-                        jtwo.setTerm(smartApply.getName());
-                        jtwo.setScoreItem("教学成绩");
-                        jtwo.setParentId(data.getId());
-                        jtwo.setScoreNum(30.0);
-                        scoreManageDetails.add(jtwo);
-                        SmartScoreManage jthree = new SmartScoreManage();
-                        jthree.setTermId(result);
-                        jthree.setTerm(smartApply.getName());
-                        jthree.setScoreItem("教研成果");
-                        jthree.setParentId(data.getId());
-                        jthree.setScoreNum(10.0);
-                        scoreManageDetails.add(jthree);
-                        SmartScoreManage jfour = new SmartScoreManage();
-                        jfour.setTermId(result);
-                        jfour.setTerm(smartApply.getName());
-                        jfour.setScoreItem("专业成长");
-                        jfour.setParentId(data.getId());
-                        jfour.setScoreNum(6.0);
-                        scoreManageDetails.add(jfour);
-                        break;
-                    default:
-                        break;
+            for (SmartUser teacher : teachers) {
+                for (SmartSemester semester : semesters) {
+                    //<0 : A < B
+                    //=0 : A = B
+                    //>0 : A > B
+                    if (semester.getEndTime().compareTo(teacher.getCreateTime()) >= 0) {//说明在半学期创建的老师
+                        long existCount = evaluateTeachers.stream().filter(e -> e.getUserId().equals(teacher.getId()) && e.getTermId().equals(semester.getId())).count();
+                        if (existCount <= 0) {
+                            SmartEvaluateTeacher set = new SmartEvaluateTeacher();
+                            set.setCardNo(teacher.getCardNo());
+                            set.setName(teacher.getName());
+                            set.setUserId(teacher.getId());
+                            set.setTermId(semester.getId());
+                            set.setTerm(semester.getName());
+                            if (teacher.getDuties().intValue() == eDuties.ClassTeacher.getValue()) {//班主任才有年级和班级
+                                set.setGradeId(Integer.valueOf(teacher.getGrade()));
+                                Optional<SmartGrade> oGrade = grades.stream().filter(e -> e.getId().equals(set.getGradeId())).findFirst();
+                                if (oGrade != null && oGrade.isPresent()) {
+                                    set.setGradeName(oGrade.get().getName());
+                                }
+                                set.setClassId(teacher.getSchoolClass());
+                                Optional<SmartClass> oClass = classes.stream().filter(e -> e.getId().equals(set.getClassId())).findFirst();
+                                if (oClass != null && oClass.isPresent()) {
+                                    set.setClassName(oClass.get().getName());
+                                }
+                            }
+                            set.setTotalScore(0.0);
+                            set.setLowingScore(0.0);
+                            insertETeachers.add(set);
+                        }
+                    }
                 }
             }
 
-            boolean inserSDetails = smartScoreManageService.saveBatch(scoreManageDetails);
-            if (!inserSDetails) {
-                //return CommonResult.fail("添加失败");
-                throw new Exception("添加失败!");
-            }
-            //endregion
-
-            //region 任课老师赋值
-            List<UserSubjectVo> teachings = smartTeachingService.querySmartTeachings(null);
-            if (teachings != null && teachings.size() > 0) {
-                List<SmartEvaluateTeacher> sets = new ArrayList<>();
-                for (UserSubjectVo usv : teachings) {
-                    if (usv.getUserName() != null) {
-                        SmartEvaluateTeacher set = new SmartEvaluateTeacher();
-                        set.setCardNo(usv.getCardNo());
-                        set.setName(usv.getUserName());
-                        set.setUserId(usv.getUserId());
-                        set.setGradeId(usv.getGradeId());
-                        set.setGradeName(usv.getGradeName());
-                        set.setTermId(smartApply.getId());
-                        set.setTerm(smartApply.getName());
-                        set.setSubjectId(usv.getSubjectId());
-                        set.setSubject(usv.getSubjectName());
-                        set.setClassId(usv.getClassId());
-                        set.setClassName(usv.getClassName());
-                        set.setTotalScore(0.0);
-                        set.setLowingScore(0.0);
-                        sets.add(set);
-                    }
-                }
-                if (sets != null && sets.size() > 0) {
-                    boolean teacherBatch = smartEvaluateTeacherService.saveBatch(sets);
-                    if (!teacherBatch) {
-                        throw new Exception("添加失败!");
-                    }
+            if(insertETeachers != null && insertETeachers.size() > 0){
+                boolean insertEteacher = smartEvaluateTeacherService.saveBatch(insertETeachers);
+                if(!insertEteacher){
+                    throw new Exception("更新失败!");
                 }
             }
-            //endregion
         } catch (Exception e) {
-            throw new Exception("添加失败!");
+            throw new Exception("更新失败!");
         }
 
-        return CommonResult.ok("添加成功");
+        return CommonResult.ok("更新成功");
     }
 
     /**
@@ -504,7 +378,7 @@ public class SmartSemesterController implements SmartSemesterControllerAPI {
         Date startTime = sa.getStartTime();
         Date endTime = sa.getEndTime();
         //        一天里不能是多个学期
-        List<SmartSemester> list = smartSemesterService.getSemesterTime(TimeExchange.DateToString(startTime,"yyyy-MM-dd HH:mm:ss") , TimeExchange.DateToString(endTime,"yyyy-MM-dd HH:mm:ss"));
+        List<SmartSemester> list = smartSemesterService.getSemesterTime(TimeExchange.DateToString(startTime, "yyyy-MM-dd HH:mm:ss"), TimeExchange.DateToString(endTime, "yyyy-MM-dd HH:mm:ss"));
         if (ObjectUtils.isNotEmpty(list) && list.size() > 0) {
             return CommonResult.fail("该时间段已包含其他学期");
         }

+ 153 - 130
src/main/java/com/template/controller/SmartUserController.java

@@ -3,7 +3,6 @@ package com.template.controller;
 
 import com.alibaba.fastjson.JSON;
 import com.alibaba.fastjson.JSONObject;
-import com.baomidou.mybatisplus.core.conditions.Wrapper;
 import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
 import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
 import com.baomidou.mybatisplus.core.metadata.IPage;
@@ -1013,6 +1012,50 @@ public class SmartUserController implements SmartUserControllerAPI {
                     }
                     smartOperationUserService.saveBatch(operationUsers);
                 }
+
+                //region 批量存储综合评价
+                List<SmartEvaluateTeacher> insertETeachers = new ArrayList<>();
+                List<SmartSemester> semesters = smartSemesterService.list(null);
+                List<SmartClass> classes = smartClassService.list(null);
+                List<SmartGrade> grades = smartGradeService.list(null);
+                for (SmartUser teacher : teacherDatas) {
+                    for (SmartSemester semester : semesters) {
+                        //<0 : A < B
+                        //=0 : A = B
+                        //>0 : A > B
+                        if (semester.getEndTime().compareTo(teacher.getCreateTime()) >= 0) {//说明在半学期创建的老师
+                            SmartEvaluateTeacher set = new SmartEvaluateTeacher();
+                            set.setCardNo(teacher.getCardNo());
+                            set.setName(teacher.getName());
+                            set.setUserId(teacher.getId());
+                            set.setTermId(semester.getId());
+                            set.setTerm(semester.getName());
+                            if (teacher.getDuties().intValue() == eDuties.ClassTeacher.getValue()) {//班主任才有年级和班级
+                                set.setGradeId(Integer.valueOf(teacher.getGrade()));
+                                Optional<SmartGrade> oGrade = grades.stream().filter(e -> e.getId().equals(set.getGradeId())).findFirst();
+                                if (oGrade != null && oGrade.isPresent()) {
+                                    set.setGradeName(oGrade.get().getName());
+                                }
+                                set.setClassId(teacher.getSchoolClass());
+                                Optional<SmartClass> oClass = classes.stream().filter(e -> e.getId().equals(set.getClassId())).findFirst();
+                                if (oClass != null && oClass.isPresent()) {
+                                    set.setClassName(oClass.get().getName());
+                                }
+                            }
+                            set.setTotalScore(0.0);
+                            set.setLowingScore(0.0);
+                            insertETeachers.add(set);
+                        }
+                    }
+                }
+
+                if (insertETeachers != null && insertETeachers.size() > 0) {
+                    boolean insertEteacher = smartEvaluateTeacherService.saveBatch(insertETeachers);
+                    if (!insertEteacher) {
+                        return CommonResult.fail("导入失败");
+                    }
+                }
+                //endregion
             }
         }
 
@@ -2616,7 +2659,6 @@ public class SmartUserController implements SmartUserControllerAPI {
         }
         //endregion
 
-
         //最后都要把数据加入到数据库中
         if (org.springframework.util.StringUtils.hasText(isur.getPhone())) {
             //多身份
@@ -2644,73 +2686,61 @@ public class SmartUserController implements SmartUserControllerAPI {
                 smartOperationUserService.save(smartOperationUser);
             }
 
-            if (isur.getIdentityId().intValue() == eIdentityStatu.Teacher.getValue() && isur.getIsr() != null && isur.getIsr().size() > 0) {
-                List<SmartTeaching> teachings = new ArrayList<>();
-                for (isrRequest sv : isur.getIsr()) {
-                    if (sv.getIds() != null && sv.getIds().size() > 0) {
-                        SmartTeaching st = new SmartTeaching();
-                        st.setUserId(result);
-                        st.setSubjectId(sv.getIds().size() > 0 ? sv.getIds().get(0) : 0);
-                        st.setGradeId(sv.getIds().size() > 1 ? sv.getIds().get(1) : 0);
-                        st.setClassId(sv.getIds().size() > 2 ? sv.getIds().get(2) : 0);
-                        teachings.add(st);
+            if (isur.getIdentityId().intValue() == eIdentityStatu.Teacher.getValue()) {
+                if (isur.getIsr() != null && isur.getIsr().size() > 0) {
+                    List<SmartTeaching> teachings = new ArrayList<>();
+                    for (isrRequest sv : isur.getIsr()) {
+                        if (sv.getIds() != null && sv.getIds().size() > 0) {
+                            SmartTeaching st = new SmartTeaching();
+                            st.setUserId(result);
+                            st.setSubjectId(sv.getIds().size() > 0 ? sv.getIds().get(0) : 0);
+                            st.setGradeId(sv.getIds().size() > 1 ? sv.getIds().get(1) : 0);
+                            st.setClassId(sv.getIds().size() > 2 ? sv.getIds().get(2) : 0);
+                            teachings.add(st);
+                        }
                     }
-                }
-                if (teachings != null && teachings.size() > 0) {
-                    boolean insertBatch = smartTeachingService.saveBatch(teachings);
-                    if (!insertBatch) {
-                        return CommonResult.fail("任课数据添加失败");
+                    if (teachings != null && teachings.size() > 0) {
+                        boolean insertBatch = smartTeachingService.saveBatch(teachings);
+                        if (!insertBatch) {
+                            return CommonResult.fail("任课数据添加失败");
+                        }
                     }
-
-                    //region 添加教师综合素质评价
-                    List<Integer> ids = teachings.stream().map(SmartTeaching::getClassId).collect(Collectors.toList());
-                    List<SmartClass> classes = smartClassService.getSmartClasss(ids);
-
-                    List<Integer> subjectIds = teachings.stream().map(SmartTeaching::getSubjectId).collect(Collectors.toList());
-                    List<SmartSubject> subjects = smartSubjectService.getSmartSubjectId(subjectIds);
-
-                    List<Integer> gradeIds = teachings.stream().map(SmartTeaching::getGradeId).collect(Collectors.toList());
-                    List<SmartGrade> grades = smartGradeService.queryGradeByIds(gradeIds);
-
+                }
+                //region 新增用户的时候同步新增教师综合评价数据
+                List<SmartSemester> semesters = smartSemesterService.querySemesterByTime(new Date());
+                gradeData = smartGradeService.querySmartGradeById(Integer.valueOf(isur.getGrade()));
+                if (semesters != null && semesters.size() > 0) {
                     List<SmartEvaluateTeacher> eTeachers = new ArrayList<>();
-                    LocalDateTime now = LocalDateTime.now();
-                    List<SmartSemester> semesters = smartSemesterService.getSemestersByTime(now);
                     for (SmartSemester semester : semesters) {
-                        for (SmartTeaching teacher : teachings) {
-                            Optional<SmartClass> classTeacherData = classes != null && classes.size() > 0 ?
-                                    classes.stream().filter(e -> e.getId().equals(teacher.getClassId())).findFirst() : null;
-                            Optional<SmartSubject> subjectData = subjects != null && subjects.size() > 0 ?
-                                    subjects.stream().filter(e -> e.getId().equals(teacher.getSubjectId())).findFirst() : null;
-                            Optional<SmartGrade> ogradeData = grades != null && grades.size() > 0 ?
-                                    grades.stream().filter(e -> e.getId().equals(teacher.getGradeId())).findFirst() : null;
-
-                            SmartEvaluateTeacher set = new SmartEvaluateTeacher();
-                            set.setCardNo(su.getCardNo());
-                            set.setName(su.getName());
-                            set.setUserId(su.getId());
-                            set.setGradeId(teacher.getGradeId());
-                            set.setGradeName(ogradeData != null && ogradeData.isPresent() ? ogradeData.get().getName() : "");
-                            set.setTermId(semester.getId());
-                            set.setTerm(semester.getName());
-                            set.setSubjectId(teacher.getSubjectId());
-                            set.setSubject(subjectData != null && subjectData.isPresent() ? subjectData.get().getName() : "");
+                        SmartEvaluateTeacher set = new SmartEvaluateTeacher();
+                        set.setCardNo(su.getCardNo());
+                        set.setName(su.getName());
+                        set.setUserId(su.getId());
+                        set.setTermId(semester.getId());
+                        set.setTerm(semester.getName());
+                        if (su.getDuties().intValue() == eDuties.ClassTeacher.getValue()) {//班主任才有年级和班级
+                            set.setGradeId(Integer.valueOf(su.getGrade()));
+                            if (gradeData != null) {
+                                set.setGradeName(gradeData.getName());
+                            }
                             set.setClassId(su.getSchoolClass());
-                            set.setClassName(classTeacherData != null && classTeacherData.isPresent() ? classTeacherData.get().getName() : "");
-                            set.setTotalScore(0.0);
-                            set.setLowingScore(0.0);
-                            eTeachers.add(set);
+                            if (classData != null) {
+                                set.setClassName(classData.getName());
+                            }
                         }
+                        set.setTotalScore(0.0);
+                        set.setLowingScore(0.0);
+                        eTeachers.add(set);
                     }
                     if (eTeachers != null && eTeachers.size() > 0) {
-                        boolean teacherBatch = smartEvaluateTeacherService.saveBatch(eTeachers);
-                        if (!teacherBatch) {
-                            throw new Exception("教师综合评价添加失败!");
+                        boolean insertEteacher = smartEvaluateTeacherService.saveBatch(eTeachers);
+                        if (!insertEteacher) {
+                            return CommonResult.fail("添加失败");
                         }
                     }
-                    //endregion
                 }
+                //endregion
             }
-            //新增用户得将用户信息通过接口推送到希沃、百胜
         }
         return result > 0 ? CommonResult.ok("添加成功") : CommonResult.fail("添加失败");
     }
@@ -3246,12 +3276,9 @@ public class SmartUserController implements SmartUserControllerAPI {
         }
         //region 任课数据
         if (result > 0 && usur.getIdentityId().intValue() == eIdentityStatu.Teacher.getValue()) {
-            //查找原有的任课数据
-            List<SmartTeaching> oldTeachings = smartTeachingService.queryTeachingByUserId(su.getId());
-            smartTeachingService.deleteByUserId(su.getId());//删除任课
-            List<SmartTeaching> newTeachings = new ArrayList<>();
-            List<SmartTeaching> newEteachings = new ArrayList<>();
+            smartTeachingService.deleteByUserId(su.getId());
             if (usur.getUsr() != null && usur.getUsr().size() > 0) {
+                List<SmartTeaching> teachings = new ArrayList<>();
                 for (isrRequest sv : usur.getUsr()) {
                     if (sv.getIds() != null && sv.getIds().size() > 0) {
                         SmartTeaching st = new SmartTeaching();
@@ -3259,82 +3286,79 @@ public class SmartUserController implements SmartUserControllerAPI {
                         st.setSubjectId(sv.getIds().size() > 0 ? sv.getIds().get(0) : 0);
                         st.setGradeId(sv.getIds().size() > 1 ? sv.getIds().get(1) : 0);
                         st.setClassId(sv.getIds().size() > 2 ? sv.getIds().get(2) : 0);
-                        long existCount = oldTeachings.stream().filter(e -> e.getUserId().equals(st.getUserId()) && e.getSubjectId().equals(st.getSubjectId())
-                                && e.getGradeId().equals(st.getGradeId()) && e.getClassId().equals(st.getClassId())).count();
-                        if (existCount <= 0) {
-                            newEteachings.add(st);
-                        }
-                        newTeachings.add(st);
+                        teachings.add(st);
                     }
                 }
-
-                if (newEteachings != null && newEteachings.size() > 0) {
-                    //region 添加教师综合素质评价
-                    List<Integer> ids = newEteachings.stream().map(SmartTeaching::getClassId).collect(Collectors.toList());
-                    List<SmartClass> classes = smartClassService.getSmartClasss(ids);
-
-                    List<Integer> subjectIds = newEteachings.stream().map(SmartTeaching::getSubjectId).collect(Collectors.toList());
-                    List<SmartSubject> subjects = smartSubjectService.getSmartSubjectId(subjectIds);
-
-                    List<Integer> gradeIds = newEteachings.stream().map(SmartTeaching::getGradeId).collect(Collectors.toList());
-                    List<SmartGrade> grades = smartGradeService.queryGradeByIds(gradeIds);
-
-                    List<SmartEvaluateTeacher> eTeachers = new ArrayList<>();
-                    LocalDateTime now = LocalDateTime.now();
-                    List<SmartSemester> semesters = smartSemesterService.getSemestersByTime(now);
-                    for (SmartSemester semester : semesters) {
-                        for (SmartTeaching teacher : newEteachings) {
-                            Optional<SmartClass> classTeacherData = classes != null && classes.size() > 0 ?
-                                    classes.stream().filter(e -> e.getId().equals(teacher.getClassId())).findFirst() : null;
-                            Optional<SmartSubject> subjectData = subjects != null && subjects.size() > 0 ?
-                                    subjects.stream().filter(e -> e.getId().equals(teacher.getSubjectId())).findFirst() : null;
-                            Optional<SmartGrade> gradeData = grades != null && grades.size() > 0 ?
-                                    grades.stream().filter(e -> e.getId().equals(teacher.getGradeId())).findFirst() : null;
-
-                            SmartEvaluateTeacher set = new SmartEvaluateTeacher();
-                            set.setCardNo(su.getCardNo());
-                            set.setName(su.getName());
-                            set.setUserId(su.getId());
-                            set.setGradeId(teacher.getGradeId());
-                            set.setGradeName(gradeData != null && gradeData.isPresent() ? gradeData.get().getName() : "");
-                            set.setTermId(semester.getId());
-                            set.setTerm(semester.getName());
-                            set.setSubjectId(teacher.getSubjectId());
-                            set.setSubject(subjectData != null && subjectData.isPresent() ? subjectData.get().getName() : "");
-                            set.setClassId(teacher.getClassId());
-                            set.setClassName(classTeacherData != null && classTeacherData.isPresent() ? classTeacherData.get().getName() : "");
-                            set.setTotalScore(0.0);
-                            set.setLowingScore(0.0);
-                            eTeachers.add(set);
-                        }
+                if (teachings != null && teachings.size() > 0) {
+                    boolean insertBatch = smartTeachingService.saveBatch(teachings);
+                    if (!insertBatch) {
+                        return CommonResult.fail("任课数据添加失败");
                     }
-                    if (eTeachers != null && eTeachers.size() > 0) {
-                        List<SmartEvaluateTeacher> insertEts = new ArrayList<>();
+                }
+            }
 
-                        //已存在在老师综合评价里的就不再加进去了
-                        List<SmartEvaluateTeacher> teachers = smartEvaluateTeacherService.queryEvaluateTeachersByUserId(su.getId());
-                        for (SmartEvaluateTeacher et:eTeachers) {
-                            long existCount = teachers.stream().filter(e -> e.getUserId().equals(et.getUserId()) && e.getTermId().equals(et.getTermId())
-                            && e.getGradeId().equals(et.getGradeId()) && e.getSubjectId().equals(et.getSubjectId()) && e.getClassId().equals(et.getClassId())).count();
-                            if(existCount <= 0){
-                                insertEts.add(et);
-                            }
+            List<SmartEvaluateTeacher> eTeachers = smartEvaluateTeacherService.queryEvaluateTeachersByUserId(usur.getId());
+            List<SmartSemester> semesters = smartSemesterService.querySemesterByTime(su.getCreateTime());
+            List<SmartEvaluateTeacher> newTeachers = new ArrayList<>();
+            SmartClass classData = null;
+            SmartGrade gradeData = null;
+            if (su.getDuties().intValue() == eDuties.ClassTeacher.getValue()) {
+                classData = smartClassService.getSmartClassById(su.getSchoolClass());
+                gradeData = smartGradeService.querySmartGradeById(Integer.valueOf(su.getGrade()));
+            }
+            if (eTeachers != null && eTeachers.size() > 0) {
+                for (SmartSemester semester : semesters) {
+                    Optional<SmartEvaluateTeacher> oTeacher = eTeachers.stream().filter(e -> e.getTermId().equals(semester.getId())).findFirst();
+                    if (oTeacher != null && oTeacher.isPresent()) {
+                        if (su.getDuties().intValue() == eDuties.ClassTeacher.getValue()) {
+                            oTeacher.get().setGradeId(gradeData.getId());
+                            oTeacher.get().setGradeName(gradeData.getName());
+                            oTeacher.get().setClassId(classData.getId());
+                            oTeacher.get().setClassName(classData.getName());
+                            newTeachers.add(oTeacher.get());
                         }
-                        if(insertEts != null && insertEts.size() > 0){
-                            boolean teacherBatch = smartEvaluateTeacherService.saveBatch(insertEts);
-                            if (!teacherBatch) {
-                                throw new Exception("教师综合评价添加失败!");
-                            }
+                    } else {
+                        SmartEvaluateTeacher set = new SmartEvaluateTeacher();
+                        set.setCardNo(su.getCardNo());
+                        set.setName(su.getName());
+                        set.setUserId(su.getId());
+                        set.setTermId(semester.getId());
+                        set.setTerm(semester.getName());
+                        if (su.getDuties().intValue() == eDuties.ClassTeacher.getValue()) {//班主任才有年级和班级
+                            set.setGradeId(gradeData.getId());
+                            set.setGradeName(gradeData.getName());
+                            set.setClassId(classData.getId());
+                            set.setClassName(classData.getName());
                         }
+                        set.setTotalScore(0.0);
+                        set.setLowingScore(0.0);
+                        newTeachers.add(set);
                     }
-                    //endregion
+                }
+            } else {
+                for (SmartSemester semester : semesters) {
+                    SmartEvaluateTeacher set = new SmartEvaluateTeacher();
+                    set.setCardNo(su.getCardNo());
+                    set.setName(su.getName());
+                    set.setUserId(su.getId());
+                    set.setTermId(semester.getId());
+                    set.setTerm(semester.getName());
+                    if (su.getDuties().intValue() == eDuties.ClassTeacher.getValue()) {//班主任才有年级和班级
+                        set.setGradeId(gradeData.getId());
+                        set.setGradeName(gradeData.getName());
+                        set.setClassId(classData.getId());
+                        set.setClassName(classData.getName());
+                    }
+                    set.setTotalScore(0.0);
+                    set.setLowingScore(0.0);
+                    newTeachers.add(set);
                 }
             }
 
-            if (newTeachings != null && newTeachings.size() > 0) {
-                boolean insertBatch = smartTeachingService.saveBatch(newTeachings);
-                if (!insertBatch) {
-                    return CommonResult.fail("任课数据添加失败");
+            if(newTeachers != null && newTeachers.size() > 0){
+                boolean insertEteacher = smartEvaluateTeacherService.saveBatch(newTeachers);
+                if(!insertEteacher){
+                    return CommonResult.fail("修改失败");
                 }
             }
         }
@@ -3356,8 +3380,7 @@ public class SmartUserController implements SmartUserControllerAPI {
      * @return
      * @throws JsonProcessingException
      */
-    public CommonResult SeewoInsertBatchPhoto(SeewoClient
-                                                      seewoClient, List<PhotoServiceSavePhotosParam.ThirdSavePhotoQuery> photoList, Integer userType) throws
+    public CommonResult SeewoInsertBatchPhoto(SeewoClient seewoClient, List<PhotoServiceSavePhotosParam.ThirdSavePhotoQuery> photoList, Integer userType) throws
             JsonProcessingException {
         //region 希沃上传第三方图片信息
         //初始化客户端

+ 0 - 6
src/main/java/com/template/model/evaluate/teacher/SmartEvaluateTeacher.java

@@ -33,12 +33,6 @@ public class SmartEvaluateTeacher {
     @ApiModelProperty(value = "学期")
     public String term;
 
-    @ApiModelProperty(value = "学科Id")
-    public Integer subjectId;
-
-    @ApiModelProperty(value = "学科")
-    public String subject;
-
     @ApiModelProperty(value = "年级Id")
     public Integer gradeId;
 

+ 2 - 0
src/main/java/com/template/services/SmartUserService.java

@@ -143,4 +143,6 @@ public interface SmartUserService extends IService<SmartUser> {
     List<SmartUser> querySmartParentByIds(List<Integer> studentIds);
 
     int queryStudentCount();
+
+    List<SmartUser> queryTeachers();
 }

+ 8 - 0
src/main/java/com/template/services/impl/SmartUserServiceImpl.java

@@ -376,5 +376,13 @@ public class SmartUserServiceImpl extends ServiceImpl<SmartUserMapper, SmartUser
         return result;
     }
 
+    @Override
+    public List<SmartUser> queryTeachers() {
+        QueryWrapper<SmartUser> queryWrapper = new QueryWrapper();
+        queryWrapper.eq("identity_id", eIdentityStatu.Teacher.getValue());
+        List<SmartUser> result = smartUserMapper.selectList(queryWrapper);
+        return result;
+    }
+
 
 }