Kaynağa Gözat

Merge branch 'dev' of ssh://10.10.100.21/source/smartschool-platform into dev

zhaoy 7 yıl önce
ebeveyn
işleme
bb4f0079e0
41 değiştirilmiş dosya ile 302 ekleme ve 129 silme
  1. 0 1
      applications/school/school-server/src/main/java/com/usoftchina/smartschool/school/basic/controller/ClassController.java
  2. 3 3
      applications/school/school-server/src/main/java/com/usoftchina/smartschool/school/basic/controller/GradeController.java
  3. 1 1
      applications/school/school-server/src/main/java/com/usoftchina/smartschool/school/basic/service/GradeService.java
  4. 14 2
      applications/school/school-server/src/main/java/com/usoftchina/smartschool/school/basic/service/impl/ClassServiceImpl.java
  5. 10 8
      applications/school/school-server/src/main/java/com/usoftchina/smartschool/school/basic/service/impl/GradeServiceImpl.java
  6. 11 1
      applications/school/school-server/src/main/java/com/usoftchina/smartschool/school/basic/service/impl/SubjectServiceImpl.java
  7. 6 0
      applications/school/school-server/src/main/java/com/usoftchina/smartschool/school/basic/service/impl/TeacherServiceImpl.java
  8. 6 0
      applications/school/school-server/src/main/java/com/usoftchina/smartschool/school/business/service/impl/ScoreServiceImpl.java
  9. 7 2
      applications/school/school-server/src/main/java/com/usoftchina/smartschool/school/exception/BizExceptionCode.java
  10. 2 0
      applications/school/school-server/src/main/java/com/usoftchina/smartschool/school/mapper/ScoreMapper.java
  11. 4 0
      applications/school/school-server/src/main/java/com/usoftchina/smartschool/school/mapper/SubjectMapper.java
  12. 2 0
      applications/school/school-server/src/main/java/com/usoftchina/smartschool/school/mapper/SysGradeMapper.java
  13. 4 0
      applications/school/school-server/src/main/java/com/usoftchina/smartschool/school/mapper/SysStudentMapper.java
  14. 2 0
      applications/school/school-server/src/main/java/com/usoftchina/smartschool/school/mapper/SysTeacherMapper.java
  15. 38 69
      applications/school/school-server/src/main/java/com/usoftchina/smartschool/school/wxschool/basic/service/impl/WxClazzCurriculumServiceImpl.java
  16. 9 8
      applications/school/school-server/src/main/java/com/usoftchina/smartschool/school/wxschool/basic/service/impl/WxPrincipalMailboxServiceImpl.java
  17. 23 8
      applications/school/school-server/src/main/java/com/usoftchina/smartschool/school/wxschool/basic/service/impl/WxTaskNotifyServiceImpl.java
  18. 18 14
      applications/school/school-server/src/main/java/com/usoftchina/smartschool/school/wxschool/basic/service/impl/WxUserServiceImpl.java
  19. 1 1
      applications/school/school-server/src/main/resources/mapper/NotifyMapper.xml
  20. 4 0
      applications/school/school-server/src/main/resources/mapper/ScoreMapper.xml
  21. 10 0
      applications/school/school-server/src/main/resources/mapper/SubjectMapper.xml
  22. 4 0
      applications/school/school-server/src/main/resources/mapper/SysGradeMapper.xml
  23. 8 0
      applications/school/school-server/src/main/resources/mapper/SysStudentMapper.xml
  24. 4 0
      applications/school/school-server/src/main/resources/mapper/SysTeacherMapper.xml
  25. 6 0
      frontend/pc-web/app/view/Interaction/access/List.js
  26. 6 0
      frontend/pc-web/app/view/Interaction/homework/List.js
  27. 5 1
      frontend/pc-web/app/view/Interaction/homework/Release.js
  28. 1 0
      frontend/pc-web/app/view/Interaction/homework/ReleaseController.js
  29. 6 0
      frontend/pc-web/app/view/Interaction/mailbox/List.js
  30. 0 1
      frontend/pc-web/app/view/Interaction/notice/SchoolNotice.js
  31. 1 0
      frontend/pc-web/app/view/Interaction/notice/SchoolNoticeController.js
  32. 5 0
      frontend/pc-web/app/view/Interaction/score/Detail.js
  33. 9 3
      frontend/pc-web/app/view/Interaction/score/List.js
  34. 2 0
      frontend/pc-web/app/view/Interaction/timetable/Detail.js
  35. 6 0
      frontend/pc-web/app/view/Interaction/timetable/List.js
  36. 1 1
      frontend/pc-web/app/view/basic/staff/StaffDetail.js
  37. 14 1
      frontend/pc-web/app/view/basic/staff/StaffDetailController.js
  38. 8 2
      frontend/pc-web/app/view/basic/student/StudentDetail.js
  39. 33 0
      frontend/pc-web/app/view/basic/student/StudentDetailModel.js
  40. 6 0
      frontend/pc-web/app/view/basic/student/StudentList.js
  41. 2 2
      frontend/pc-web/app/view/viewport/ViewportModel.js

+ 0 - 1
applications/school/school-server/src/main/java/com/usoftchina/smartschool/school/basic/controller/ClassController.java

@@ -33,7 +33,6 @@ public class ClassController {
     @PostMapping("/delete/{id}")
     public Result delete(@PathVariable("id") Long id) {
         classService.delete(id);
-
         return Result.success();
     }
 

+ 3 - 3
applications/school/school-server/src/main/java/com/usoftchina/smartschool/school/basic/controller/GradeController.java

@@ -28,9 +28,9 @@ public class GradeController {
     * @Author: guq
     * @Date: 2019/1/22
     */
-    @GetMapping("/read/{id}")
-    public Result getSchoolTree(@PathVariable("id") Long id) {
-        TreeNode school = gradeService.getSchoolTree(id);
+    @GetMapping("/read")
+    public Result getSchoolTree() {
+        TreeNode school = gradeService.getSchoolTree();
         return Result.success(school);
     }
 

+ 1 - 1
applications/school/school-server/src/main/java/com/usoftchina/smartschool/school/basic/service/GradeService.java

@@ -7,7 +7,7 @@ import com.usoftchina.smartschool.school.po.SysSchool;
 import com.usoftchina.smartschool.school.po.TreeNode;
 
 public interface GradeService {
-    TreeNode getSchoolTree(Long id);
+    TreeNode getSchoolTree();
 
     void saveToFormal(Integer id, boolean update);
 

+ 14 - 2
applications/school/school-server/src/main/java/com/usoftchina/smartschool/school/basic/service/impl/ClassServiceImpl.java

@@ -106,10 +106,22 @@ public class ClassServiceImpl implements ClassService{
         if (null == id || "0".equals(id)) {
             return;
         }
-        Integer count = sysStudentMapper.checkStu(id);
-        if (count > 0) {
+        Integer check = 0;
+        //学生检测
+        check = sysStudentMapper.checkStu(id);
+        if (check > 0) {
             throw new BizException(BizExceptionCode.EXISTS_STU);
         }
+        //教师检测
+        check = sysStudentMapper.checkTeacher(id);
+        if (check > 0) {
+            throw new BizException(BizExceptionCode.EXISTS_TEACHER);
+        }
+        //课表检测
+        check = sysStudentMapper.checkCurriculum(id);
+        if (check > 0) {
+            throw new BizException(BizExceptionCode.EXISTS_CURRICULUM);
+        }
         sysClazzMapper.deleteByPrimaryKey(id);
         sysStudentMapper.deleteTeacher(id);
     }

+ 10 - 8
applications/school/school-server/src/main/java/com/usoftchina/smartschool/school/basic/service/impl/GradeServiceImpl.java

@@ -41,13 +41,9 @@ public class GradeServiceImpl implements GradeService{
     private DataImportMapper dataImportMapper;
 
     @Override
-    public TreeNode getSchoolTree(Long id) {
-        if (null == id || "0".equals(id)) {
-            throw new BizException(BizExceptionCode.USELESS_DATA);
-        }
-        id = 1l;
-
-        SysSchool school = sysSchoolMapper.selectByPrimaryKey(id);
+    public TreeNode getSchoolTree() {
+        Long school_id = BaseContextHolder.getSchoolId();
+        SysSchool school = sysSchoolMapper.selectByPrimaryKey(school_id);
         TreeNode schoolTree = new TreeNode();
         TreeNode gradeNode = null;
         TreeNode classNode = null;
@@ -58,7 +54,7 @@ public class GradeServiceImpl implements GradeService{
         schoolTree.setText(school.getSchool_name());
         schoolTree.setType(SCHOOLTYPE.SCHOOL.name());
 
-        List<SysGrade> grades = sysGradeMapper.selectBySchool(id);
+        List<SysGrade> grades = sysGradeMapper.selectBySchool(school_id);
         if (null != grades && grades.size() > 0) {
 
             for (SysGrade grade : grades) {
@@ -184,6 +180,12 @@ public class GradeServiceImpl implements GradeService{
         if (StringUtils.isEmpty(id)) {
             throw new BizException(BizExceptionCode.USELESS_DATA);
         }
+        Integer check = 0;
+        //检测班级
+        check = sysGradeMapper.checkClass(id);
+        if (check > 0) {
+            throw new BizException(BizExceptionCode.EXISTS_CLASS);
+        }
         sysGradeMapper.deleteByPrimaryKey(id);
     }
 

+ 11 - 1
applications/school/school-server/src/main/java/com/usoftchina/smartschool/school/basic/service/impl/SubjectServiceImpl.java

@@ -51,7 +51,6 @@ public class SubjectServiceImpl implements SubjectService {
         }
         Long id = formdata.getSubject_id();
         Long school = BaseContextHolder.getSchoolId();
-        school = 1l;
         if (StringUtils.isEmpty(id) || "0".equals(id.toString())) {
             formdata.setSchool_id(school);
             formdata.setSubject_status(1);
@@ -81,6 +80,17 @@ public class SubjectServiceImpl implements SubjectService {
         if (null == id || "0".equals(id)) {
             return;
         }
+        Integer check = 0;
+        //检测班级教师任课信息
+        check = subjectMapper.checkTeacherClass(id);
+        if (check > 0) {
+            throw new BizException(BizExceptionCode.EXISTS_TEACHER_CLASS);
+        }
+        //检测课表
+        check = subjectMapper.checkCurriculum(id);
+        if (check > 0) {
+            throw new BizException(BizExceptionCode.EXISTS_TEACHER_CLASS);
+        }
         subjectMapper.deleteByPrimaryKey(id);
     }
 }

+ 6 - 0
applications/school/school-server/src/main/java/com/usoftchina/smartschool/school/basic/service/impl/TeacherServiceImpl.java

@@ -159,6 +159,12 @@ public class TeacherServiceImpl implements TeacherService{
         if (null == id || "0".equals(id)) {
             return;
         }
+        Integer check = 0;
+        //教师检测
+        check = sysTeacherMapper.checkTeacher(id);
+        if (check > 0) {
+            throw new BizException(BizExceptionCode.EXISTS_TEACHER_CLASS);
+        }
         sysTeacherMapper.deleteByPrimaryKey(id);
         sysTeacherMapper.deleteRelation(id);
     }

+ 6 - 0
applications/school/school-server/src/main/java/com/usoftchina/smartschool/school/business/service/impl/ScoreServiceImpl.java

@@ -78,6 +78,12 @@ public class ScoreServiceImpl implements ScoreService{
         if (StringUtils.isEmpty(id) || "0".equals(id)) {
             return;
         }
+        //检测是否发布
+        Integer check = 0;
+        check = scoreMapper.checkPublish(id);
+        if (check > 0) {
+            throw new BizException(BizExceptionCode.EXISTS_TEACHER_CLASS);
+        }
         scoreMapper.deleteByPrimaryKey(id);
     }
 

+ 7 - 2
applications/school/school-server/src/main/java/com/usoftchina/smartschool/school/exception/BizExceptionCode.java

@@ -10,12 +10,17 @@ public enum BizExceptionCode implements BaseExceptionCode {
 
     BIZ_IMPORT_ERROREXCEL(500002, "请选用正确的导入模板"),
     EMPTY_DATA(76100,"数据为空,请填写后再保存"),
-    EXISTS_STU(500003,"该班级存在学生,无法删除"),
     USELESS_DATA(50001, "无效数据"),
     NONGRADE(500004, "年纪名称不存在"),
     NONCLAZZ(500005, "班级名称不存在"),
     REPEAT_TEACHER_NUMBER(500006, "教师工号重复"),
-    NONSTU(500006, "学生不存在");
+    NONSTU(500006, "学生不存在"),
+    EXISTS_TEACHER(500004,"存在教师,无法删除"),
+    EXISTS_CURRICULUM(500005,"存在课表,无法删除"),
+    EXISTS_TEACHER_CLASS(500006,"存在任课班级,无法删除"),
+    EXISTS_SUBJECT_TEACHER(5000012, "该课程存在班级与任课教师,禁止删除"),
+    EXISTS_SCORE_PUBLISH(5000013, "存在已发布成绩,禁止删除"),
+    EXISTS_CLASS(500011, "存在班级,无法删除");
 
     private int code;
     private String message;

+ 2 - 0
applications/school/school-server/src/main/java/com/usoftchina/smartschool/school/mapper/ScoreMapper.java

@@ -37,4 +37,6 @@ public interface ScoreMapper {
     List<ScoreImportList> selectMainByConditon(@Param("con") String con, @Param("school_id") Long schoolId);
 
     List<ScoreImportList> selectDetailByCondition(@Param("con") String con, @Param("school_id") Long schoolId);
+
+    Integer checkPublish(Long id);
 }

+ 4 - 0
applications/school/school-server/src/main/java/com/usoftchina/smartschool/school/mapper/SubjectMapper.java

@@ -22,4 +22,8 @@ public interface SubjectMapper {
     List<Subject> selectByConditon(@Param("con") String con, @Param("school_id") Long school_id);
 
     List<Subject> selectBySubject(@Param("condition") String condition, @Param("school_id") Long schoolId);
+
+    Integer checkTeacherClass(Long id);
+
+    Integer checkCurriculum(Long id);
 }

+ 2 - 0
applications/school/school-server/src/main/java/com/usoftchina/smartschool/school/mapper/SysGradeMapper.java

@@ -27,4 +27,6 @@ public interface SysGradeMapper {
     int insertGrade(SysGrade grade);
 
     List<SysGrade> selectByGrade(@Param("condition") String condition, @Param("school_id") Long schoolId);
+
+    Integer checkClass(Long id);
 }

+ 4 - 0
applications/school/school-server/src/main/java/com/usoftchina/smartschool/school/mapper/SysStudentMapper.java

@@ -52,4 +52,8 @@ public interface SysStudentMapper {
      * @return
      */
     Long selectRoleId();
+
+    Integer checkTeacher(Long id);
+
+    Integer checkCurriculum(Long id);
 }

+ 2 - 0
applications/school/school-server/src/main/java/com/usoftchina/smartschool/school/mapper/SysTeacherMapper.java

@@ -38,4 +38,6 @@ public interface SysTeacherMapper {
     Long selectRoleId();
 
     SysTeacher selectNumberByKey(String teacher_number);
+
+    Integer checkTeacher(Long id);
 }

+ 38 - 69
applications/school/school-server/src/main/java/com/usoftchina/smartschool/school/wxschool/basic/service/impl/WxClazzCurriculumServiceImpl.java

@@ -1,6 +1,7 @@
 package com.usoftchina.smartschool.school.wxschool.basic.service.impl;
 
 import com.usoftchina.smartschool.school.po.ClazzCurriculumDO;
+import com.usoftchina.smartschool.school.po.SubjectDO;
 import com.usoftchina.smartschool.school.po.TeacherClazzDO;
 import com.usoftchina.smartschool.school.po.TeacherDO;
 import com.usoftchina.smartschool.school.wxschool.basic.service.WxClazzCurriculumService;
@@ -37,15 +38,6 @@ public class WxClazzCurriculumServiceImpl implements WxClazzCurriculumService {
 	public Map<String, Object> selectCurriculumByStuId(Long stuId, Integer curStatus) throws Exception {
 		List<ClazzCurriculumDO> curricula = clazzCurriculumMapper.selectCurriculumByStuId(stuId, curStatus);
 		if (ObjectUtils.isNotEmpty(curricula)){
-			//Map<String, Object> maps = new HashMap<>();
-			//StudentDO studentDO = studentMapper.get(stuId);
-			//if (ObjectUtils.isNotEmpty(studentDO)){
-				//maps.put("stuName",studentDO.getStuName());
-				//maps.put("clazzName",clazzMapper.get(studentDO.getClazzId()).getClazzName());
-				//maps.put("curricula",curricula);
-			//}else {
-				//throw new Exception("该学生不存在,请联系管理员");
-			//}
 			return getCurr(curricula);
 		}else {
 			throw new Exception("暂时没有课程表,请联系管理员");
@@ -73,96 +65,50 @@ public class WxClazzCurriculumServiceImpl implements WxClazzCurriculumService {
 	private Map<String, Object> getCurr(List<ClazzCurriculumDO> curricula) {
 		Map<String, Object> map = new HashMap<>();
 		List<Map<String,Object>> curFris = new ArrayList<>();
-		List<Map<String,Object>> curMons = new ArrayList<>();					List<Map<String,Object>> curSats = new ArrayList<>();
+		List<Map<String,Object>> curMons = new ArrayList<>();
+		List<Map<String,Object>> curSats = new ArrayList<>();
 		List<Map<String,Object>> curThurs = new ArrayList<>();
 		List<Map<String,Object>> curTuess = new ArrayList<>();
 		List<Map<String,Object>> curWeds = new ArrayList<>();
-		SimpleDateFormat dateFormat = new SimpleDateFormat("HH:mm");
-		//dateFormat.setTimeZone(TimeZone.getTimeZone("GMT-6"));
 		for (ClazzCurriculumDO cc:curricula) {
 			Long curFri = cc.getCurFri();
-			//System.err.println(cc.getCurStartTime());
-			//System.err.println(dateFormat.format(cc.getCurStartTime()));
 			if (ObjectUtils.isNotEmpty(curFri)){
-				Map<String, Object> curFriMap = new HashMap<>();
-				curFriMap.put("startTime",dateFormat.format(cc.getCurStartTime()));
-				curFriMap.put("endTime",dateFormat.format(cc.getCurEndTime()));
-				curFriMap.put("subjectName",subjectMapper.get(curFri).getSubjectName());
-				TeacherClazzDO teacher1 = wxTeacherClazzMapper.getTeacher(cc.getClazzId(), curFri);
-				TeacherDO teacherDO1 = wxTeacherMapper.get(teacher1.getTeacherId());
-				curFriMap.put("teacherName",teacherDO1.getTeacherName());
-				curFriMap.put("teacherPhoto",teacherDO1.getTeacherPhoto());
-				curFris.add(curFriMap);
+				Map<String, Object> detail = getDetail(cc, curFri);
+				curFris.add(detail);
 			}
 
-
 			Long curMon = cc.getCurMon();
 			if (ObjectUtils.isNotEmpty(curMon)){
-				Map<String, Object> curMonMap = new HashMap<>();
-				curMonMap.put("startTime",dateFormat.format(cc.getCurStartTime()));
-				curMonMap.put("endTime",dateFormat.format(cc.getCurEndTime()));
-				curMonMap.put("subjectName",subjectMapper.get(curMon).getSubjectName());
-				TeacherClazzDO teacher2 = wxTeacherClazzMapper.getTeacher(cc.getClazzId(), curMon);
-				TeacherDO teacherDO2 = wxTeacherMapper.get(teacher2.getTeacherId());
-				curMonMap.put("teacherName",teacherDO2.getTeacherName());
-				curMonMap.put("teacherPhoto",teacherDO2.getTeacherPhoto());
-				curMons.add(curMonMap);
+				Map<String, Object> detail = getDetail(cc, curMon);
+				curMons.add(detail);
 			}
 
 
 			Long curSat = cc.getCurSat();
 			if (ObjectUtils.isNotEmpty(curSat)){
-				Map<String, Object> curSatMap = new HashMap<>();
-				curSatMap.put("startTime",dateFormat.format(cc.getCurStartTime()));
-				curSatMap.put("endTime",dateFormat.format(cc.getCurEndTime()));
-				curSatMap.put("subjectName",subjectMapper.get(curSat).getSubjectName());
-				TeacherClazzDO teacher3 = wxTeacherClazzMapper.getTeacher(cc.getClazzId(), curSat);
-				TeacherDO teacherDO3 = wxTeacherMapper.get(teacher3.getTeacherId());
-				curSatMap.put("teacherName",teacherDO3.getTeacherName());
-				curSatMap.put("teacherPhoto",teacherDO3.getTeacherPhoto());
-				curSats.add(curSatMap);
+				Map<String, Object> detail = getDetail(cc, curSat);
+				curSats.add(detail);
 			}
 
 
 			Long curThur = cc.getCurThur();
 			if (ObjectUtils.isNotEmpty(curThur)){
-				Map<String, Object> curThurMap = new HashMap<>();
-				curThurMap.put("startTime",dateFormat.format(cc.getCurStartTime()));
-				curThurMap.put("endTime",dateFormat.format(cc.getCurEndTime()));
-				curThurMap.put("subjectName",subjectMapper.get(curThur).getSubjectName());
-				TeacherClazzDO teacher4 = wxTeacherClazzMapper.getTeacher(cc.getClazzId(), curThur);
-				TeacherDO teacherDO4 = wxTeacherMapper.get(teacher4.getTeacherId());
-				curThurMap.put("teacherName",teacherDO4.getTeacherName());
-				curThurMap.put("teacherPhoto",teacherDO4.getTeacherPhoto());
-				curThurs.add(curThurMap);
+				Map<String, Object> detail = getDetail(cc, curThur);
+				curThurs.add(detail);
 			}
 
 
 			Long curTues = cc.getCurTues();
 			if (ObjectUtils.isNotEmpty(curTues)){
-				Map<String, Object> curTuesMap = new HashMap<>();
-				curTuesMap.put("startTime",dateFormat.format(cc.getCurStartTime()));
-				curTuesMap.put("endTime",dateFormat.format(cc.getCurEndTime()));
-				curTuesMap.put("subjectName",subjectMapper.get(curTues).getSubjectName());
-				TeacherClazzDO teacher5 = wxTeacherClazzMapper.getTeacher(cc.getClazzId(), curTues);
-				TeacherDO teacherDO5 = wxTeacherMapper.get(teacher5.getTeacherId());
-				curTuesMap.put("teacherName",teacherDO5.getTeacherName());
-				curTuesMap.put("teacherPhoto",teacherDO5.getTeacherPhoto());
-				curTuess.add(curTuesMap);
+				Map<String, Object> detail = getDetail(cc, curTues);
+				curTuess.add(detail);
 			}
 
 
 			Long curWed = cc.getCurWed();
 			if (ObjectUtils.isNotEmpty(curWed)){
-				Map<String, Object> curWedMap = new HashMap<>();
-				curWedMap.put("startTime",dateFormat.format(cc.getCurStartTime()));
-				curWedMap.put("endTime",dateFormat.format(cc.getCurEndTime()));
-				curWedMap.put("subjectName",subjectMapper.get(curWed).getSubjectName());
-				TeacherClazzDO teacher6 = wxTeacherClazzMapper.getTeacher(cc.getClazzId(), curWed);
-				TeacherDO teacherDO6 = wxTeacherMapper.get(teacher6.getTeacherId());
-				curWedMap.put("teacherName",teacherDO6.getTeacherName());
-				curWedMap.put("teacherPhoto",teacherDO6.getTeacherPhoto());
-				curWeds.add(curWedMap);
+				Map<String, Object> detail = getDetail(cc, curWed);
+				curWeds.add(detail);
 			}
 		}
 		map.put("curMons",curMons);
@@ -173,4 +119,27 @@ public class WxClazzCurriculumServiceImpl implements WxClazzCurriculumService {
 		map.put("curWeds",curWeds);
 		return map;
 	}
+
+	private Map<String,Object> getDetail(ClazzCurriculumDO cc,Long subjectId){
+		SimpleDateFormat dateFormat = new SimpleDateFormat("HH:mm");
+		Map<String, Object> hashMap = new HashMap<>();
+		hashMap.put("startTime",dateFormat.format(cc.getCurStartTime()));
+		hashMap.put("endTime",dateFormat.format(cc.getCurEndTime()));
+		SubjectDO subjectDO = subjectMapper.get(subjectId);
+		if (ObjectUtils.isNotEmpty(subjectDO)){
+			hashMap.put("subjectName",subjectDO.getSubjectName());
+		}
+		TeacherClazzDO teacher1 = wxTeacherClazzMapper.getTeacher(cc.getClazzId(), subjectId);
+		if (ObjectUtils.isNotEmpty(teacher1)){
+			Long teacherId = teacher1.getTeacherId();
+			if (ObjectUtils.isNotEmpty(teacherId)){
+				TeacherDO teacherDO1 = wxTeacherMapper.get(teacherId);
+				if (ObjectUtils.isNotEmpty(teacherDO1)){
+					hashMap.put("teacherName",teacherDO1.getTeacherName());
+					hashMap.put("teacherPhoto",teacherDO1.getTeacherPhoto());
+				}
+			}
+		}
+		return hashMap;
+	}
 }

+ 9 - 8
applications/school/school-server/src/main/java/com/usoftchina/smartschool/school/wxschool/basic/service/impl/WxPrincipalMailboxServiceImpl.java

@@ -63,15 +63,16 @@ public class WxPrincipalMailboxServiceImpl implements WxPrincipalMailboxService
 		principalMailboxDO.setMbCreatorname(parentsMapper.get(principalMailboxDO.getMailboxCreator()).getParentsName());
 		principalMailboxDO.setSchoolId(schoolId);
 		principalMailboxDO.setCreateDate(new Date());
-		StudentDO studentDO = wxStudentMapper.get(principalMailboxDO.getMbStuid());
-		if (ObjectUtils.isNotEmpty(studentDO)){
-			principalMailboxDO.setMbStudent(studentDO.getStuName());
-			ClazzDO clazzDO = wxClazzMapper.get(studentDO.getClazzId());
-			principalMailboxDO.setMbClass(clazzDO.getClazzName());
-			principalMailboxDO.setMbGrade(wxGradeMapper.get(clazzDO.getGradeId()).getGradeName());
+		Long mbStuid = principalMailboxDO.getMbStuid();
+		if (ObjectUtils.isNotEmpty(mbStuid)){
+			StudentDO studentDO = wxStudentMapper.get(mbStuid);
+			if (ObjectUtils.isNotEmpty(studentDO)){
+				principalMailboxDO.setMbStudent(studentDO.getStuName());
+				ClazzDO clazzDO = wxClazzMapper.get(studentDO.getClazzId());
+				principalMailboxDO.setMbClass(clazzDO.getClazzName());
+				principalMailboxDO.setMbGrade(wxGradeMapper.get(clazzDO.getGradeId()).getGradeName());
+			}
 		}
-
-
 		int save = principalMailboxMapper.save(principalMailboxDO);
 		if (save>0){
 			SimpleDateFormat simpleDateFormat = new SimpleDateFormat("yyyy-MM-dd");

+ 23 - 8
applications/school/school-server/src/main/java/com/usoftchina/smartschool/school/wxschool/basic/service/impl/WxTaskNotifyServiceImpl.java

@@ -220,19 +220,34 @@ public class WxTaskNotifyServiceImpl implements WxTaskNotifyService {
 
     private Map<String, Object> taskDetail(TaskNotifyDO taskNotifyDO) {
         Map<String, Object> map1 = JavaBeanUtil.object2Map(taskNotifyDO);
-        TeacherDO teacherDO = teacherMapper.get(taskNotifyDO.getTaskCreator());
-        map1.put("teacherName", teacherDO.getTeacherName());
-        map1.put("teacherPhoto", teacherDO.getTeacherPhoto());
+        Long taskCreator = taskNotifyDO.getTaskCreator();
+        if (ObjectUtils.isNotEmpty(taskCreator)){
+            TeacherDO teacherDO = teacherMapper.get(taskCreator);
+            if (ObjectUtils.isNotEmpty(teacherDO)){
+                map1.put("teacherName", teacherDO.getTeacherName());
+                map1.put("teacherPhoto", teacherDO.getTeacherPhoto());
+            }
+        }
         List<TaskReplyDO> taskReplyDOS = taskReplyMapper.listByTaskId(taskNotifyDO.getTaskId());
         List<Map<String, Object>> maps = new ArrayList<>();
         if (ObjectUtils.isNotEmpty(taskReplyDOS)) {
             for (TaskReplyDO tr : taskReplyDOS) {
                 Map<String, Object> map = JavaBeanUtil.object2Map(tr);
-                ParentsDO parentsDO = parentsMapper.get(tr.getParentId());
-                map.put("parentsName", parentsDO.getParentsName());
-                map.put("parentsPhoto", parentsDO.getParentsPhoto());
-                StudentDO studentDO = studentMapper.get(tr.getStuId());
-                map.put("stuName", studentDO.getStuName());
+                Long parentId = tr.getParentId();
+                if (ObjectUtils.isNotEmpty(parentId)){
+                    ParentsDO parentsDO = parentsMapper.get(parentId);
+                    if (ObjectUtils.isNotEmpty(parentsDO)){
+                        map.put("parentsName", parentsDO.getParentsName());
+                        map.put("parentsPhoto", parentsDO.getParentsPhoto());
+                    }
+                }
+                if (ObjectUtils.isNotEmpty(tr.getStuId())){
+                    StudentDO studentDO = studentMapper.get(tr.getStuId());
+                    if (ObjectUtils.isNotEmpty(studentDO)){
+                        map.put("stuName", studentDO.getStuName());
+
+                    }
+                }
                 maps.add(map);
             }
         }

+ 18 - 14
applications/school/school-server/src/main/java/com/usoftchina/smartschool/school/wxschool/basic/service/impl/WxUserServiceImpl.java

@@ -222,21 +222,25 @@ public class WxUserServiceImpl implements WxUserService {
 				ClazzDO clazzDO = clazzMapper.get(tc.getClazzId());
 				if (ObjectUtils.isNotEmpty(clazzDO)){
 					Map<String, Object> clazzMap = JavaBeanUtil.object2Map(clazzDO);
-					clazzMap.put("gradeName",gradeMapper.get(clazzDO.getGradeId()).getGradeName());
-					Map<String, Object> map = new HashMap<>();
-					map.put("clazzId",clazzDO.getClazzId());
-					List<StudentDO> studentDOS = studentMapper.list(map);
-					List<TeacherClazzDO> list = teacherClazzMapper.list(map);
-					if (ObjectUtils.isNotEmpty(studentDOS)){
-						List<TeacherDO> teacherDOS = new ArrayList<>();
-						for (TeacherClazzDO teacherClazzDO:list) {
-							TeacherDO teacherDO = teacherMapper.get(teacherClazzDO.getTeacherId());
-							teacherDO.setUserPhone(userMapper.get(teacherDO.getUserId()).getUserPhone());
-							teacherDOS.add(teacherDO);
+					GradeDO gradeDO = gradeMapper.get(clazzDO.getGradeId());
+					if (ObjectUtils.isNotEmpty(gradeDO)){
+						clazzMap.put("gradeName",gradeDO.getGradeName());
+						Map<String, Object> map = new HashMap<>();
+						map.put("clazzId",clazzDO.getClazzId());
+						List<StudentDO> studentDOS = studentMapper.list(map);
+						List<TeacherClazzDO> list = teacherClazzMapper.list(map);
+						if (ObjectUtils.isNotEmpty(studentDOS)){
+							List<TeacherDO> teacherDOS = new ArrayList<>();
+							for (TeacherClazzDO teacherClazzDO:list) {
+								TeacherDO teacherDO = teacherMapper.get(teacherClazzDO.getTeacherId());
+								teacherDO.setUserPhone(userMapper.get(teacherDO.getUserId()).getUserPhone());
+								teacherDOS.add(teacherDO);
+							}
+							clazzMap.put("studentDOS",removeDuplicate(studentDOS));
+							clazzMap.put("teacherDOS",removeDuplicate(teacherDOS));
+							maps.add(clazzMap);
 						}
-						clazzMap.put("studentDOS",removeDuplicate(studentDOS));
-						clazzMap.put("teacherDOS",removeDuplicate(teacherDOS));
-						maps.add(clazzMap);
+
 					}
 				}
 

+ 1 - 1
applications/school/school-server/src/main/resources/mapper/NotifyMapper.xml

@@ -83,7 +83,7 @@
             <if test="creator != null">
                 creator,
             </if>
-            <if test="creator != null">
+            <if test="accessory != null">
                 accessory,
             </if>
         </trim>

+ 4 - 0
applications/school/school-server/src/main/resources/mapper/ScoreMapper.xml

@@ -409,4 +409,8 @@
     order by si_id DESC
   </select>
 
+  <select id="checkPublish" parameterType="long" resultType="integer">
+    select count(1) from score_import where si_publish=1 and si_id=#{id}
+  </select>
+
 </mapper>

+ 10 - 0
applications/school/school-server/src/main/resources/mapper/SubjectMapper.xml

@@ -100,4 +100,14 @@
       </if>
     </where>
   </select>
+
+  <select id="checkTeacherClass" parameterType="long" resultType="integer">
+    select count(1) from sys_teacher_clazz where  subject_id= #{id}
+  </select>
+
+  <select id="checkCurriculum" parameterType="long" resultType="integer">
+    select count(1) from clazz_curriculum where cur_mon=#{id} or
+    cur_tues=#{id} or cur_wed=#{id} or cur_thur=#{id} or cur_fir=#{id}
+    or cur_sat=#{id}
+  </select>
 </mapper>

+ 4 - 0
applications/school/school-server/src/main/resources/mapper/SysGradeMapper.xml

@@ -125,4 +125,8 @@
     </where>
   </select>
 
+  <select id="checkClass" parameterType="long" resultType="integer">
+    select count(1) from sys_clazz where grade_id=#{id}
+  </select>
+
 </mapper>

+ 8 - 0
applications/school/school-server/src/main/resources/mapper/SysStudentMapper.xml

@@ -440,4 +440,12 @@
   <select id="selectRoleId" resultType="long">
     SELECT ROLE_ID FROM SYS_ROLE WHERE ROLE_NAME = '家长'
   </select>
+
+  <select id="checkTeacher" parameterType="long" resultType="integer">
+    select count(1) from sys_teacher_clazz where clazz_id = #{id}
+  </select>
+
+  <select id="checkCurriculum" parameterType="long" resultType="integer">
+    select count(1) from clazz_curriculum where clazz_id = #{id}
+  </select>
 </mapper>

+ 4 - 0
applications/school/school-server/src/main/resources/mapper/SysTeacherMapper.xml

@@ -394,4 +394,8 @@ where sys_teacher_clazz.teacher_id=#{id}
     from sys_teacher
     where teacher_number = #{teacher_number,jdbcType=VARCHAR}
   </select>
+
+  <select id="checkTeacher" parameterType="long" resultType="integer">
+    select count(1) from sys_teacher_clazz where  teacher_id= #{id}
+  </select>
 </mapper>

+ 6 - 0
frontend/pc-web/app/view/Interaction/access/List.js

@@ -108,5 +108,11 @@ Ext.define('school.view.interaction.access.List', {
             },
         });
         this.callParent(arguments);
+    },
+
+    refresh: function() {
+        Ext.StoreMgr.get('store_grade').load();
+        Ext.StoreMgr.get('store_class').load();
+        this.items.items[0].store.load();
     }
 });

+ 6 - 0
frontend/pc-web/app/view/Interaction/homework/List.js

@@ -185,5 +185,11 @@ Ext.define('school.view.interaction.homework.List', {
             },
         });
         this.callParent(arguments);
+    },
+
+    refresh: function() {
+        Ext.StoreMgr.get('store_grade').load();
+        Ext.StoreMgr.get('store_class').load();
+        this.items.items[0].store.load();
     }
 });

+ 5 - 1
frontend/pc-web/app/view/Interaction/homework/Release.js

@@ -102,7 +102,6 @@ Ext.define('school.view.interaction.homework.Release', {
                 fieldLabel: '发布时间',
                 readOnly: true,
                 format: 'Y-m-d H:i:s',
-                defaultValue: new Date(),
                 readOnly: true
             }, {
                 xtype: "textfield",
@@ -148,5 +147,10 @@ Ext.define('school.view.interaction.homework.Release', {
             fileField.value = data.main.accessory
             fileField.renderMF(fileField);
         }
+    },
+
+    refresh: function() {
+        Ext.StoreMgr.get('store_grade').load();
+        Ext.StoreMgr.get('store_class').load();
     }
 });

+ 1 - 0
frontend/pc-web/app/view/Interaction/homework/ReleaseController.js

@@ -26,6 +26,7 @@ Ext.define('school.view.interaction.homework.ReleaseController', {
         id = viewModel.data.task_id;
         view.setLoading(true);
         school.util.BaseUtil.request({
+            // url: 'http://10.1.80.180:9520/api/school/homework/publish/' + id,
             url: '/api/school/homework/publish/' + id,
             method: 'POST'
         })

+ 6 - 0
frontend/pc-web/app/view/Interaction/mailbox/List.js

@@ -180,5 +180,11 @@ Ext.define('school.view.interaction.mailbox.List', {
             },
         });
         this.callParent(arguments);
+    },
+
+    refresh: function() {
+        Ext.StoreMgr.get('store_grade').load();
+        Ext.StoreMgr.get('store_class').load();
+        this.items.items[0].store.load();
     }
 });

+ 0 - 1
frontend/pc-web/app/view/Interaction/notice/SchoolNotice.js

@@ -59,7 +59,6 @@ Ext.define('school.view.interaction.notice.SchoolNotice', {
                 fieldLabel: '发布时间',
                 readOnly: true,
                 format: 'Y-m-d H:i:s',
-                defaultValue: new Date(),
                 readOnly: true
             }, {
                 xtype: "textfield",

+ 1 - 0
frontend/pc-web/app/view/Interaction/notice/SchoolNoticeController.js

@@ -26,6 +26,7 @@ Ext.define('school.view.interaction.notice.SchoolNoticeController', {
         id = viewModel.data.notify_id;
         view.setLoading(true);
         school.util.BaseUtil.request({
+            // url: 'http://10.1.80.180:9520/api/school/notice/publish/' + id,
             url: '/api/school/notice/publish/' + id,
             method: 'POST'
         })

+ 5 - 0
frontend/pc-web/app/view/Interaction/score/Detail.js

@@ -74,5 +74,10 @@ Ext.define('school.view.interaction.score.Detail', {
         });
         this.callParent();
         this.setEditable(false);
+    },
+
+    refresh: function() {
+        Ext.StoreMgr.get('store_grade').load();
+        Ext.StoreMgr.get('store_class').load();
     }
 });

+ 9 - 3
frontend/pc-web/app/view/Interaction/score/List.js

@@ -21,7 +21,7 @@ Ext.define('school.view.interaction.score.List', {
                 fieldLabel: '年级',
                 listeners: {
                     select: function (combo, record, eOpts) {
-                        combo.up('form').getForm().findField('class').setValue(null);
+                        combo.up('form').getForm().findField('si_class').setValue(null);
                     }
                 }
             }, {
@@ -32,7 +32,7 @@ Ext.define('school.view.interaction.score.List', {
                     expand: function (combo, eOpts) {
                         combo.store.clearFilter();
 
-                        var gradeCombo = combo.up('form').getForm().findField('grade');
+                        var gradeCombo = combo.up('form').getForm().findField('si_grade');
                         var gradeName = gradeCombo.getValue();
 
                         var filter = new Ext.util.Filter({
@@ -45,7 +45,7 @@ Ext.define('school.view.interaction.score.List', {
                         }
                     },
                     select: function (combo, record, eOpts) {
-                        combo.up('form').getForm().findField('grade').setValue(record.get('clazz_grade'));
+                        combo.up('form').getForm().findField('si_grade').setValue(record.get('clazz_grade'));
                     }
                 }
             }, {
@@ -202,5 +202,11 @@ Ext.define('school.view.interaction.score.List', {
             }
         }
         return obj;
+    },
+
+    refresh: function() {
+        Ext.StoreMgr.get('store_grade').load();
+        Ext.StoreMgr.get('store_class').load();
+        this.items.items[0].store.load();
     }
 });

+ 2 - 0
frontend/pc-web/app/view/Interaction/timetable/Detail.js

@@ -267,6 +267,8 @@ Ext.define('school.view.interaction.timetable.Detail', {
     },
 
     refresh: function() {
+        Ext.StoreMgr.get('store_grade').load();
+        Ext.StoreMgr.get('store_class').load();
         Ext.StoreMgr.get('store_subject').load();
     }
 });

+ 6 - 0
frontend/pc-web/app/view/Interaction/timetable/List.js

@@ -166,5 +166,11 @@ Ext.define('school.view.interaction.timetable.List', {
             },
         });
         this.callParent(arguments);
+    },
+
+    refresh: function() {
+        Ext.StoreMgr.get('store_grade').load();
+        Ext.StoreMgr.get('store_class').load();
+        this.items.items[0].store.load();
     }
 });

+ 1 - 1
frontend/pc-web/app/view/basic/staff/StaffDetail.js

@@ -14,7 +14,7 @@ Ext.define('school.view.basic.staff.StaffDetail', {
     _auditdateField: null,
     // _readUrl: 'http://10.1.80.47:9560/teacher/read',
     _readUrl: '/api/school/teacher/read',
-    // _saveUrl: 'http://10.1.80.47:9560/teacher/save',
+    // _saveUrl: 'http://10.1.80.180:9520/api/school/teacher/save',
     _saveUrl: '/api/school/teacher/save',
     // _deleteUrl: 'http://10.1.80.47:9560/teacher/delete',
     _deleteUrl: '/api/school/teacher/delete',

+ 14 - 1
frontend/pc-web/app/view/basic/staff/StaffDetailController.js

@@ -4,5 +4,18 @@ Ext.define('school.view.basic.staff.StaffDetailController', {
 
     getMySaveParams: function(params) {
         return params.main;
-    }
+    },
+
+    onAfterSave: function(localJson) {
+        var form = this.getView();
+        var id = localJson.data.id;
+        var code = localJson.data.code;
+        form.initId = id;
+        school.util.FormUtil.loadData(form).then(function(data) {
+            var newId = form.xtype + '-' + data.main.id;
+            var newTitle = form._title + '(' + data.main.teacher_number + ')';
+    
+            school.util.BaseUtil.refreshTabTitle(newId, newTitle);
+        });
+    },
 });

+ 8 - 2
frontend/pc-web/app/view/basic/student/StudentDetail.js

@@ -3,7 +3,7 @@ Ext.define('school.view.basic.student.StudentDetail', {
     xtype: 'basic-student-studentdetail',
 
     controller: 'basic-student-studentdetail',
-    // viewModel: 'sale-b2b-purchasedetail',
+    viewModel: 'basic-student-studentdetail',
 
     //字段属性
     _title: '学生信息',
@@ -84,7 +84,8 @@ Ext.define('school.view.basic.student.StudentDetail', {
             }, {
                 xtype: 'numberfield',
                 name: 'stu_age',
-                fieldLabel: '年龄'
+                fieldLabel: '年龄',
+                readOnly: true
             }, {
                 xtype: "textfield",
                 name: "stu_address",
@@ -188,4 +189,9 @@ Ext.define('school.view.basic.student.StudentDetail', {
         });
         this.callParent();
     },
+
+    refresh: function() {
+        Ext.StoreMgr.get('store_grade').load();
+        Ext.StoreMgr.get('store_class').load();
+    }
 });

+ 33 - 0
frontend/pc-web/app/view/basic/student/StudentDetailModel.js

@@ -0,0 +1,33 @@
+Ext.define('school.view.basic.student.StudentDetailModel', {
+    extend: 'school.view.core.form.FormPanelModel',
+    alias: 'viewmodel.basic-student-studentdetail',
+
+    formulas: {
+        stu_birthday_change: {
+            bind: '{stu_birthday}',
+            get: function(v) {
+                var val = new Date(v);
+                var now = new Date();
+                var nYear = now.getFullYear();
+                var nMonth = now.getMonth() + 1;
+                var nDay = now.getDate();
+
+                var vYear = val.getFullYear();
+                var vMonth = val.getMonth() + 1;
+                var vDay = val.getDate();
+                
+                var age = 0;
+
+                if(nYear > vYear) {
+                    age = nYear - vYear;
+                    if((nMonth < vMonth) || (nMonth == vMonth && nDay < vDay)) {
+                        age--;
+                    }
+                }
+
+                this.set('stu_age', age);
+                return v;
+            }
+        }
+    }
+});

+ 6 - 0
frontend/pc-web/app/view/basic/student/StudentList.js

@@ -182,5 +182,11 @@ Ext.define('school.view.basic.student.StudentList', {
             },
         });
         this.callParent(arguments);
+    },
+
+    refresh: function() {
+        Ext.StoreMgr.get('store_grade').load();
+        Ext.StoreMgr.get('store_class').load();
+        this.items.items[0].store.load();
     }
 });

+ 2 - 2
frontend/pc-web/app/view/viewport/ViewportModel.js

@@ -34,8 +34,8 @@ Ext.define('school.view.viewport.ViewportModel', {
             }],
             proxy: {
                 type: 'ajax',
-                // url: 'http://10.1.80.47:9560/grade/read/1',
-                url: '/api/school/grade/read/' + school.util.BaseUtil.getCurrentUser().school_id,
+                // url: 'http://10.1.80.47:9560/grade/read',
+                url: '/api/school/grade/read',
                 reader: {
                     transform: {
                         fn: function(data) {