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

+ 128 - 12
src/main/java/com/template/controller/SmartUserController.java

@@ -22,6 +22,7 @@ import com.template.common.utils.*;
 import com.template.config.ControlConfig;
 import com.template.config.SeewoConfig;
 import com.template.model.enumModel.*;
+import com.template.model.evaluate.teacher.SmartEvaluateTeacher;
 import com.template.model.pojo.*;
 import com.template.model.request.*;
 import com.template.model.result.CommonResult;
@@ -56,6 +57,7 @@ import java.net.URLDecoder;
 import java.net.URLEncoder;
 import java.nio.charset.Charset;
 import java.time.LocalDate;
+import java.time.LocalDateTime;
 import java.time.Year;
 import java.util.*;
 import java.util.stream.Collectors;
@@ -119,6 +121,15 @@ public class SmartUserController implements SmartUserControllerAPI {
     @Autowired
     private SmartAuthorGroupService smartAuthorGroupService;
 
+    @Autowired
+    private SmartSemesterService smartSemesterService;
+
+    @Autowired
+    private SmartSubjectService smartSubjectService;
+
+    @Autowired
+    private SmartEvaluateTeacherService smartEvaluateTeacherService;
+
     private static Logger logger = LoggerFactory.getLogger(SmartUserController.class);
 
     //region 开发自己导数据用的接口
@@ -2355,7 +2366,8 @@ public class SmartUserController implements SmartUserControllerAPI {
 
         int useBs = 1;
         int useXw = 1;
-
+        SmartGrade gradeData = null;
+        SmartClass classData = null;
         if (org.springframework.util.StringUtils.hasText(isur.getCardNo())) {
             //重复性判断
             int existCount = smartUserService.querySmartUserByCardNo(isur.getCardNo());
@@ -2437,12 +2449,12 @@ public class SmartUserController implements SmartUserControllerAPI {
             //endregion
 
             //获取班级Uid
-            SmartClass classData = smartClassService.getSmartClassById(isur.getSchoolClass());
+            classData = smartClassService.getSmartClassById(isur.getSchoolClass());
             if (classData == null) {
                 return CommonResult.fail("班级数据无效,新增失败");
             }
 
-            SmartGrade gradeData = smartGradeService.querySmartGradeById(Integer.valueOf(isur.getGrade()));
+            gradeData = smartGradeService.querySmartGradeById(Integer.valueOf(isur.getGrade()));
             if (gradeData == null) {
                 return CommonResult.fail("年级数据无效,新增失败");
             }
@@ -2519,7 +2531,7 @@ public class SmartUserController implements SmartUserControllerAPI {
 
             if (isur.getDuties().intValue() == eDuties.ClassTeacher.getValue()) {
                 //获取班级Uid
-                SmartClass classData = smartClassService.getSmartClassById(isur.getSchoolClass());
+                classData = smartClassService.getSmartClassById(isur.getSchoolClass());
                 if (classData == null) {
                     return CommonResult.fail("班级数据无效,新增失败");
                 }
@@ -2594,6 +2606,53 @@ public class SmartUserController implements SmartUserControllerAPI {
                     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);
+
+                    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() : "");
+                            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 (eTeachers != null && eTeachers.size() > 0) {
+                        boolean teacherBatch = smartEvaluateTeacherService.saveBatch(eTeachers);
+                        if (!teacherBatch) {
+                            throw new Exception("教师综合评价添加失败!");
+                        }
+                    }
+                    //endregion
                 }
             }
             //新增用户得将用户信息通过接口推送到希沃、百胜
@@ -3119,10 +3178,12 @@ public class SmartUserController implements SmartUserControllerAPI {
         int result = smartUserService.updateSmartUser(su);
         //region 任课数据
         if (result > 0 && usur.getIdentityId().intValue() == eIdentityStatu.Teacher.getValue()) {
-            smartTeachingService.deleteByUserId(su.getId());
+            smartTeachingService.deleteByUserId(su.getId());//删除任课
+            //查找原有的任课数据
+            List<SmartTeaching> oldTeachings = smartTeachingService.queryTeachingByUserId(su.getId());
+            List<SmartTeaching> newTeachings = new ArrayList<>();
+            List<SmartTeaching> newEteachings = new ArrayList<>();
             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();
@@ -3130,14 +3191,69 @@ 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);
-                        teachings.add(st);
+                        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);
                     }
                 }
-                if (teachings != null && teachings.size() > 0) {
-                    boolean insertBatch = smartTeachingService.saveBatch(teachings);
-                    if (!insertBatch) {
-                        return CommonResult.fail("任课数据添加失败");
+
+                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(su.getSchoolClass());
+                            set.setClassName(classTeacherData != null && classTeacherData.isPresent() ? classTeacherData.get().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("教师综合评价添加失败!");
+                        }
                     }
+                    //endregion
+                }
+            }
+
+            if (newTeachings != null && newTeachings.size() > 0) {
+                boolean insertBatch = smartTeachingService.saveBatch(newTeachings);
+                if (!insertBatch) {
+                    return CommonResult.fail("任课数据添加失败");
                 }
             }
         }

+ 1 - 1
src/main/java/com/template/model/pojo/SmartSemester.java

@@ -27,7 +27,7 @@ import lombok.experimental.Accessors;
 @Data
 @EqualsAndHashCode(callSuper = false)
 @Accessors(chain = true)
-@ApiModel(value="SmartSemester对象", description="应用管理")
+@ApiModel(value="SmartSemester对象", description="学期管理")
 public class SmartSemester implements Serializable {
 
     private static final long serialVersionUID = 1L;

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

@@ -42,4 +42,6 @@ public interface SmartClassService extends IService<SmartClass> {
 
     SchoolClassVo getClassId(int schoolClass);
 
+    List<SmartClass> getSmartClasss(List<Integer> ids);
+
 }

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

@@ -31,4 +31,6 @@ public interface SmartGradeService extends IService<SmartGrade> {
     SmartGrade querySmartGradeById(Integer id);
 
     PageUtils<SmartGrade> queryPageSmartGrade(int currentPage, int pageCount, String name);
+
+    List<SmartGrade> queryGradeByIds(List<Integer> ids);
 }

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

@@ -34,6 +34,8 @@ public interface SmartSemesterService extends IService<SmartSemester> {
 
     SmartSemester getSemester(LocalDateTime now);
 
+    List<SmartSemester> getSemestersByTime(LocalDateTime now);
+
     List<SmartSemester> getSemesterTime(Date startTime, Date endTime);
 
 }

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

@@ -32,5 +32,7 @@ public interface SmartSubjectService extends IService<SmartSubject> {
 
     List<SmartSubject> getSmartSubjectIds(List<String> ids);
 
+    List<SmartSubject> getSmartSubjectId(List<Integer> ids);
+
     List<TimeGroupVo> queryGradeSubjects(String grade);
 }

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

@@ -16,6 +16,8 @@ import java.util.List;
  * @since 2024-05-24
  */
 public interface SmartTeachingService extends IService<SmartTeaching> {
+    List<SmartTeaching> queryTeachingByUserId(Integer userId);
+
     int deleteByUserId(Integer userId);
 
     int deleteByUserIds(List<Integer> userIds);

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

@@ -117,4 +117,12 @@ public class SmartClassServiceImpl extends ServiceImpl<SmartClassMapper, SmartCl
         SchoolClassVo vo = smartClassMapper.getClassId(schoolClass);
         return vo;
     }
+
+    @Override
+    public List<SmartClass> getSmartClasss(List<Integer> ids) {
+        QueryWrapper<SmartClass> queryWrapper = new QueryWrapper<>();
+        queryWrapper.in("id", ids);
+        List<SmartClass> result = smartClassMapper.selectList(queryWrapper);
+        return result;
+    }
 }

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

@@ -87,4 +87,12 @@ public class SmartGradeServiceImpl extends ServiceImpl<SmartGradeMapper, SmartGr
         return new PageUtils<>(result);
     }
 
+    @Override
+    public List<SmartGrade> queryGradeByIds(List<Integer> ids) {
+        QueryWrapper<SmartGrade> queryWrapper = new QueryWrapper<>();
+        queryWrapper.in("id", ids);
+        List<SmartGrade> result = smartGradeMapper.selectList(queryWrapper);
+        return result;
+    }
+
 }

+ 9 - 0
src/main/java/com/template/services/impl/SmartSemesterServiceImpl.java

@@ -95,6 +95,15 @@ public class SmartSemesterServiceImpl extends ServiceImpl<SmartSemesterMapper, S
     }
 
     @Override
+    public List<SmartSemester> getSemestersByTime(LocalDateTime now) {
+        QueryWrapper<SmartSemester> queryWrapper = new QueryWrapper<>();
+        queryWrapper.le("start_time", now);
+        queryWrapper.ge("end_time", now);
+        List<SmartSemester> result = smartSemesterMapper.selectList(queryWrapper);
+        return result;
+    }
+
+    @Override
     public List<SmartSemester> getSemesterTime(Date startTime, Date endTime) {
         LambdaQueryWrapper<SmartSemester> wrapper=new LambdaQueryWrapper<>();
         wrapper.and(query -> query.between(SmartSemester::getStartTime,startTime,endTime)

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

@@ -88,6 +88,14 @@ public class SmartSubjectServiceImpl extends ServiceImpl<SmartSubjectMapper, Sma
     }
 
     @Override
+    public List<SmartSubject> getSmartSubjectId(List<Integer> ids) {
+        QueryWrapper<SmartSubject> queryWrapper = new QueryWrapper();
+        queryWrapper.in("id", ids);
+        List<SmartSubject> result = smartSubjectMapper.selectList(queryWrapper);
+        return result;
+    }
+
+    @Override
     public List<TimeGroupVo> queryGradeSubjects(String grade) {
 
         List<TimeGroupVo> subjects = smartSubjectMapper.queryGradeSubjects(grade);

+ 7 - 0
src/main/java/com/template/services/impl/SmartTeachingServiceImpl.java

@@ -26,6 +26,13 @@ public class SmartTeachingServiceImpl extends ServiceImpl<SmartTeachingMapper, S
     @Autowired
     private SmartTeachingMapper smartTeachingMapper;
 
+    @Override
+    public List<SmartTeaching> queryTeachingByUserId(Integer userId) {
+        QueryWrapper<SmartTeaching> queryWrapper = new QueryWrapper<>();
+        queryWrapper.eq("user_id", userId);
+        List<SmartTeaching> result = smartTeachingMapper.selectList(queryWrapper);
+        return result;
+    }
 
     @Override
     public int deleteByUserId(Integer userId) {