Forráskód Böngészése

Merge branch 'master' of http://git.dayaedu.com/yonge/mec

yonge 4 éve
szülő
commit
7da61f3e97
52 módosított fájl, 2251 hozzáadás és 633 törlés
  1. 9 0
      mec-biz/src/main/java/com/ym/mec/biz/dal/dao/CourseScheduleDao.java
  2. 3 0
      mec-biz/src/main/java/com/ym/mec/biz/dal/dao/IndexBaseMonthDataDao.java
  3. 8 1
      mec-biz/src/main/java/com/ym/mec/biz/dal/dao/InspectionDao.java
  4. 52 1
      mec-biz/src/main/java/com/ym/mec/biz/dal/dao/InspectionItemDao.java
  5. 46 1
      mec-biz/src/main/java/com/ym/mec/biz/dal/dao/InspectionItemPlanConclusionDao.java
  6. 20 12
      mec-biz/src/main/java/com/ym/mec/biz/dal/dao/MusicGroupDao.java
  7. 7 1
      mec-biz/src/main/java/com/ym/mec/biz/dal/dao/MusicGroupPaymentCalenderDao.java
  8. 12 0
      mec-biz/src/main/java/com/ym/mec/biz/dal/dao/StudentVisitDao.java
  9. 27 0
      mec-biz/src/main/java/com/ym/mec/biz/dal/dto/CheckItemDto.java
  10. 11 0
      mec-biz/src/main/java/com/ym/mec/biz/dal/dto/ExportVipGroupActivityDto.java
  11. 42 0
      mec-biz/src/main/java/com/ym/mec/biz/dal/dto/InspectionItemPlanConclusionDto.java
  12. 36 0
      mec-biz/src/main/java/com/ym/mec/biz/dal/dto/TeacherVisitDto.java
  13. 1 1
      mec-biz/src/main/java/com/ym/mec/biz/dal/entity/IndexErrInfoDto.java
  14. 67 2
      mec-biz/src/main/java/com/ym/mec/biz/dal/entity/Inspection.java
  15. 37 3
      mec-biz/src/main/java/com/ym/mec/biz/dal/entity/InspectionItem.java
  16. 36 0
      mec-biz/src/main/java/com/ym/mec/biz/dal/entity/InspectionItemPlan.java
  17. 27 195
      mec-biz/src/main/java/com/ym/mec/biz/dal/entity/InspectionItemPlanConclusion.java
  18. 1 1
      mec-biz/src/main/java/com/ym/mec/biz/dal/enums/IndexDataType.java
  19. 11 0
      mec-biz/src/main/java/com/ym/mec/biz/dal/enums/IndexErrorType.java
  20. 27 0
      mec-biz/src/main/java/com/ym/mec/biz/dal/enums/InspectionItemEnum.java
  21. 73 0
      mec-biz/src/main/java/com/ym/mec/biz/dal/page/InspectionItemPlanQueryInfo.java
  22. 73 0
      mec-biz/src/main/java/com/ym/mec/biz/dal/page/InspectionQueryInfo.java
  23. 1 1
      mec-biz/src/main/java/com/ym/mec/biz/service/IndexBaseMonthDataService.java
  24. 26 0
      mec-biz/src/main/java/com/ym/mec/biz/service/InspectionItemPlanConclusionService.java
  25. 21 0
      mec-biz/src/main/java/com/ym/mec/biz/service/InspectionItemPlanService.java
  26. 11 0
      mec-biz/src/main/java/com/ym/mec/biz/service/InspectionItemService.java
  27. 40 0
      mec-biz/src/main/java/com/ym/mec/biz/service/InspectionService.java
  28. 88 17
      mec-biz/src/main/java/com/ym/mec/biz/service/impl/ClassGroupServiceImpl.java
  29. 64 14
      mec-biz/src/main/java/com/ym/mec/biz/service/impl/IndexBaseMonthDataServiceImpl.java
  30. 95 0
      mec-biz/src/main/java/com/ym/mec/biz/service/impl/InspectionItemPlanConclusionServiceImpl.java
  31. 113 2
      mec-biz/src/main/java/com/ym/mec/biz/service/impl/InspectionItemPlanServiceImpl.java
  32. 44 0
      mec-biz/src/main/java/com/ym/mec/biz/service/impl/InspectionItemServiceImpl.java
  33. 139 1
      mec-biz/src/main/java/com/ym/mec/biz/service/impl/InspectionServiceImpl.java
  34. 1 1
      mec-biz/src/main/java/com/ym/mec/biz/service/impl/MusicGroupPaymentCalenderServiceImpl.java
  35. 1 1
      mec-biz/src/main/java/com/ym/mec/biz/service/impl/MusicGroupServiceImpl.java
  36. 11 0
      mec-biz/src/main/resources/config/mybatis/CourseScheduleMapper.xml
  37. 40 10
      mec-biz/src/main/resources/config/mybatis/IndexBaseMonthDataMapper.xml
  38. 181 80
      mec-biz/src/main/resources/config/mybatis/InspectionItemMapper.xml
  39. 107 118
      mec-biz/src/main/resources/config/mybatis/InspectionItemPlanConclusionMapper.xml
  40. 142 95
      mec-biz/src/main/resources/config/mybatis/InspectionItemPlanMapper.xml
  41. 108 71
      mec-biz/src/main/resources/config/mybatis/InspectionMapper.xml
  42. 14 1
      mec-biz/src/main/resources/config/mybatis/MusicGroupMapper.xml
  43. 15 1
      mec-biz/src/main/resources/config/mybatis/MusicGroupPaymentCalenderMapper.xml
  44. 12 0
      mec-biz/src/main/resources/config/mybatis/StudentVisitMapper.xml
  45. 2 0
      mec-biz/src/main/resources/config/mybatis/VipGroupActivityMapper.xml
  46. 2 2
      mec-web/src/main/java/com/ym/mec/web/controller/ExportController.java
  47. 22 0
      mec-web/src/main/java/com/ym/mec/web/controller/IndexController.java
  48. 95 0
      mec-web/src/main/java/com/ym/mec/web/controller/InspectionController.java
  49. 72 0
      mec-web/src/main/java/com/ym/mec/web/controller/InspectionItemController.java
  50. 67 0
      mec-web/src/main/java/com/ym/mec/web/controller/InspectionItemPlanController.java
  51. 46 0
      mec-web/src/main/java/com/ym/mec/web/controller/education/EduInspectionItemPlanConclusionController.java
  52. 45 0
      mec-web/src/main/java/com/ym/mec/web/controller/education/EduInspectionItemPlanController.java

+ 9 - 0
mec-biz/src/main/java/com/ym/mec/biz/dal/dao/CourseScheduleDao.java

@@ -1,5 +1,6 @@
 package com.ym.mec.biz.dal.dao;
 
+import com.ym.mec.auth.api.entity.SysUser;
 import com.ym.mec.biz.dal.dto.*;
 import com.ym.mec.biz.dal.entity.*;
 import com.ym.mec.biz.dal.entity.CourseSchedule.CourseScheduleType;
@@ -1766,4 +1767,12 @@ public interface CourseScheduleDao extends BaseDAO<Long, CourseSchedule> {
      * @return
      */
     Integer getUnderwayCourseNum(@Param("musicGroupId") String musicGroupId, @Param("groupType") GroupType groupType, @Param("status") CourseStatusEnum status);
+
+
+    /**
+     * 获取时间段内乐团的线下课程信息
+     *
+     * @return
+     */
+    List<CourseSchedule> getMusicGroupCourseInfo(@Param("musicGroupId") String musicGroupId, @Param("startTime") Date startTime, @Param("endTime") Date endTime);
 }

+ 3 - 0
mec-biz/src/main/java/com/ym/mec/biz/dal/dao/IndexBaseMonthDataDao.java

@@ -108,4 +108,7 @@ public interface IndexBaseMonthDataDao extends BaseDAO<Long, IndexBaseMonthData>
     List<String> getNoPaymentMusicGroup(@Param("organIds") Set<Integer> organIds);
 
     int countApplyForQuitGroupNum(@Param("organIds") Set<Integer> organIds);
+
+    int countStudentAttendanceInfo(@Param("organIds") Set<Integer> organIds,
+                                   @Param("type") String type);
 }

+ 8 - 1
mec-biz/src/main/java/com/ym/mec/biz/dal/dao/InspectionDao.java

@@ -2,7 +2,14 @@ package com.ym.mec.biz.dal.dao;
 
 import com.ym.mec.biz.dal.entity.Inspection;
 import com.ym.mec.common.dal.BaseDAO;
+import org.apache.ibatis.annotations.Param;
 
 public interface InspectionDao extends BaseDAO<Long, Inspection> {
-
+    /**
+     * 获取巡查任务详情
+     *
+     * @param id
+     * @return
+     */
+    Inspection getInfo(@Param("id") Long id);
 }

+ 52 - 1
mec-biz/src/main/java/com/ym/mec/biz/dal/dao/InspectionItemDao.java

@@ -2,7 +2,58 @@ package com.ym.mec.biz.dal.dao;
 
 import com.ym.mec.biz.dal.entity.InspectionItem;
 import com.ym.mec.common.dal.BaseDAO;
+import org.apache.ibatis.annotations.Param;
 
-public interface InspectionItemDao extends BaseDAO<Long,InspectionItem> {
+import java.util.List;
 
+public interface InspectionItemDao extends BaseDAO<Long, InspectionItem> {
+
+    /**
+     * 获取任务项数目及总次数
+     *
+     * @param inspectionIds
+     * @return
+     */
+    List<InspectionItem> getItemCountAndTimes(@Param("inspectionIds") List<Long> inspectionIds);
+
+    /**
+     * 批量插入巡查任务表
+     *
+     * @param inspectionItems
+     * @return
+     */
+    int batchInsert(@Param("inspectionItems") List<InspectionItem> inspectionItems);
+
+
+    /**
+     * 获取巡查任务的任务事项
+     *
+     * @param inspectionId
+     * @return
+     */
+    List<InspectionItem> getItemByInspectionId(@Param("inspectionId") Long inspectionId);
+
+    /**
+     * 根据id删除任务事项
+     *
+     * @param ids
+     * @return
+     */
+    int deleteByIds(@Param("ids") List<Long> ids);
+
+    /**
+     * 批量更新巡查任务事项
+     *
+     * @param inspectionItems
+     * @return
+     */
+    int batchUpdate(@Param("inspectionItems") List<InspectionItem> inspectionItems);
+
+    /**
+     * 根据任务项删除任务事项
+     *
+     * @param InspectionId
+     * @return
+     */
+    int deleteByInspectionId(@Param("InspectionId") Long InspectionId);
 }

+ 46 - 1
mec-biz/src/main/java/com/ym/mec/biz/dal/dao/InspectionItemPlanConclusionDao.java

@@ -1,8 +1,53 @@
 package com.ym.mec.biz.dal.dao;
 
+import com.ym.mec.biz.dal.dto.CheckItemDto;
+import com.ym.mec.biz.dal.entity.CourseSchedule;
 import com.ym.mec.biz.dal.entity.InspectionItemPlanConclusion;
 import com.ym.mec.common.dal.BaseDAO;
+import org.apache.ibatis.annotations.Param;
 
-public interface InspectionItemPlanConclusionDao extends BaseDAO<Long,InspectionItemPlanConclusion> {
+import java.util.List;
 
+public interface InspectionItemPlanConclusionDao extends BaseDAO<Long, InspectionItemPlanConclusion> {
+
+    /**
+     * 插入巡查结果
+     *
+     * @param inspectionItemPlanConclusions
+     * @return
+     */
+    int batchAdd(@Param("inspectionItemPlanConclusions") List<InspectionItemPlanConclusion> inspectionItemPlanConclusions);
+
+    /**
+     * 根据日程计划id和检查事项id删除检查结果
+     *
+     * @param planId
+     * @param checkItem
+     * @return
+     */
+    int delByPlanIdAndCheckItem(@Param("planId") Long planId, @Param("checkItem") Integer checkItem);
+
+    /**
+     * 获取巡查日程提交的最后结果项
+     *
+     * @param planIds
+     * @return
+     */
+    List<CheckItemDto> getLastCheckItem(@Param("planIds") List<Long> planIds);
+
+    /**
+     * 获取巡查日程的巡查结果
+     *
+     * @param planId
+     * @param checkItem
+     * @return
+     */
+    List<InspectionItemPlanConclusion> getInspectionItemPlanConclusion(@Param("planId") Long planId, @Param("checkItem") Integer checkItem);
+
+    /**
+     * 获取巡查结果的课程信息
+     *
+     * @return
+     */
+    List<CourseSchedule> getPlanConclusionCourses(@Param("planId") Long planId);
 }

+ 20 - 12
mec-biz/src/main/java/com/ym/mec/biz/dal/dao/MusicGroupDao.java

@@ -262,66 +262,67 @@ public interface MusicGroupDao extends BaseDAO<String, MusicGroup> {
     List<MusicGroup> getTeacherMusicGroup(@Param("teacherId") Integer teacherId);
 
     /**
+     * @param userId:
+     * @return java.util.List<com.ym.mec.biz.dal.dto.MusicCardDto>
      * @describe 获取学员所在乐团名称
      * @apiNote 时光荏苒,认真工作的时间总是过得很快,而我、享受这一刻!
      * @author zouxuan
      * @date 2020/9/7
      * @time 14:16
-     * @param userId:
-     * @return java.util.List<com.ym.mec.biz.dal.dto.MusicCardDto>
      */
     List<MusicCardDto> queryUserMusicInfos(Integer userId);
 
     /**
+     * @param organId:
+     * @return java.util.List<com.ym.mec.biz.dal.dto.MusicCardDto>
      * @describe 获取分部下乐团名称列表
      * @apiNote 时光荏苒,认真工作的时间总是过得很快,而我、享受这一刻!
      * @author zouxuan
      * @date 2020/9/7
      * @time 14:31
-     * @param organId:
-     * @return java.util.List<com.ym.mec.biz.dal.dto.MusicCardDto>
      */
     List<MusicCardDto> queryOrganMusicInfos(@Param("organId") Integer organId);
 
     /**
+     * @param userId:
+     * @return java.lang.Integer
      * @describe 获取学员第一个教务老师
      * @apiNote 时光荏苒,认真工作的时间总是过得很快,而我、享受这一刻!
      * @author zouxuan
      * @date 2020/9/24
      * @time 10:27
-     * @param userId:
-     * @return java.lang.Integer
      */
     Integer getFirstEduTeacherId(@Param("userId") Integer userId);
 
     /**
+     * @param studentId:
+     * @return com.ym.mec.biz.dal.entity.MusicGroup
      * @describe 获取学员关联的乐团
      * @apiNote 时光荏苒,认真工作的时间总是过得很快,而我、享受这一刻!
      * @author zouxuan
      * @date 2020/9/28
      * @time 13:47
-     * @param studentId:
-     * @return com.ym.mec.biz.dal.entity.MusicGroup
      */
     MusicGroup getStuMusic(Integer studentId);
 
     /**
+     * @param studentId:
+     * @param educationalTeacherId:
+     * @return com.ym.mec.biz.dal.entity.MusicGroup
      * @describe 获取学员和乐团关联的乐团
      * @apiNote 时光荏苒,认真工作的时间总是过得很快,而我、享受这一刻!
      * @author zouxuan
      * @date 2020/9/28
      * @time 13:54
-     * @param studentId:
-     * @param educationalTeacherId:
-     * @return com.ym.mec.biz.dal.entity.MusicGroup
      */
     MusicGroup getStuEduMusic(@Param("studentId") Integer studentId, @Param("educationalTeacherId") Integer educationalTeacherId);
 
     /**
      * 根据班级编号获取乐团信息
-     * @author zouxuan
+     *
      * @param classGroupId
      * @return
+     * @author zouxuan
      */
     MusicGroup findByClassGroupId(Integer classGroupId);
 
@@ -332,4 +333,11 @@ public interface MusicGroupDao extends BaseDAO<String, MusicGroup> {
      * @return
      */
     List<String> queryIdsByEduIdAndOrganIds(@Param("educationId") Integer educationId, @Param("organIds") String organIds);
+
+    /**
+     * 获取乐团的教学点
+     * @param id
+     * @return
+     */
+    School getMusicGroupSchool(@Param("id") String id);
 }

+ 7 - 1
mec-biz/src/main/java/com/ym/mec/biz/dal/dao/MusicGroupPaymentCalenderDao.java

@@ -111,7 +111,7 @@ public interface MusicGroupPaymentCalenderDao extends BaseDAO<Long, MusicGroupPa
 
     List<MusicGroupPaymentCalender> queryByIds(@Param("calenderId") Set<Long> calenderId);
 
-    List<Long> queryEndIds(@Param("configValue") String configValue, @Param("format") String format);
+    List<Long> queryEndIds(@Param("configValue") String configValue, @Param("format") String format, @Param("musicGroupIds") List<String> musicGroupIds);
 
     List<CalenderPushDto> getCalenderPushDto(@Param("calenderIds") Collection<Long> calenderIds);
 
@@ -307,4 +307,10 @@ public interface MusicGroupPaymentCalenderDao extends BaseDAO<Long, MusicGroupPa
      */
     MusicGroupPaymentCalender getSchoolCalender(@Param("calenderId") Long calenderId);
 
+    /**
+     * 获取
+     * @param calenderIds
+     * @return
+     */
+    List<String> queryMusicGroupIds(@Param("calenderIds") List<Long> calenderIds);
 }

+ 12 - 0
mec-biz/src/main/java/com/ym/mec/biz/dal/dao/StudentVisitDao.java

@@ -2,10 +2,12 @@ package com.ym.mec.biz.dal.dao;
 
 import com.ym.mec.biz.dal.dto.BasicUserDto;
 import com.ym.mec.biz.dal.dto.StudentVisitDto;
+import com.ym.mec.biz.dal.dto.TeacherVisitDto;
 import com.ym.mec.biz.dal.entity.StudentVisit;
 import com.ym.mec.common.dal.BaseDAO;
 import org.apache.ibatis.annotations.Param;
 
+import java.util.Date;
 import java.util.List;
 import java.util.Map;
 
@@ -52,4 +54,14 @@ public interface StudentVisitDao extends BaseDAO<Integer, StudentVisit> {
      * @return
      */
     List<Integer> getMusicGroupVisitStudent(@Param("musicGroupId") String musicGroupId, @Param("studentIds") List<Integer> studentIds);
+
+    /**
+     * 获取老师时间段的回访次数
+     *
+     * @param teacherIds
+     * @param startTime
+     * @param endTime
+     * @return
+     */
+    List<TeacherVisitDto> getTeacherVisitCount(@Param("teacherIds") List<Integer> teacherIds, @Param("startTime") Date startTime, @Param("endTime") Date endTime);
 }

+ 27 - 0
mec-biz/src/main/java/com/ym/mec/biz/dal/dto/CheckItemDto.java

@@ -0,0 +1,27 @@
+package com.ym.mec.biz.dal.dto;
+
+import io.swagger.annotations.ApiModelProperty;
+
+public class CheckItemDto {
+    @ApiModelProperty(value = "巡查日程id", required = false)
+    private Long planId;
+
+    @ApiModelProperty(value = "巡查日程最后提交项", required = false)
+    private Integer checkItem;
+
+    public Long getPlanId() {
+        return planId;
+    }
+
+    public void setPlanId(Long planId) {
+        this.planId = planId;
+    }
+
+    public Integer getCheckItem() {
+        return checkItem;
+    }
+
+    public void setCheckItem(Integer checkItem) {
+        this.checkItem = checkItem;
+    }
+}

+ 11 - 0
mec-biz/src/main/java/com/ym/mec/biz/dal/dto/ExportVipGroupActivityDto.java

@@ -29,6 +29,9 @@ public class ExportVipGroupActivityDto {
     @ApiModelProperty(value = "活动持续时间")
     private String time;
 
+    @ApiModelProperty(value = "课程安排时间")
+    private String courseTime;
+
     @ApiModelProperty(value = "活动类型")
     private String type;
 
@@ -47,6 +50,14 @@ public class ExportVipGroupActivityDto {
     @ApiModelProperty(value = "线下课结算公式")
     private String offlineSalarySettlement;
 
+    public String getCourseTime() {
+        return courseTime;
+    }
+
+    public void setCourseTime(String courseTime) {
+        this.courseTime = courseTime;
+    }
+
     public String getOrganName() {
         return organName;
     }

+ 42 - 0
mec-biz/src/main/java/com/ym/mec/biz/dal/dto/InspectionItemPlanConclusionDto.java

@@ -0,0 +1,42 @@
+package com.ym.mec.biz.dal.dto;
+
+import com.ym.mec.biz.dal.entity.InspectionItemPlanConclusion;
+import io.swagger.annotations.ApiModelProperty;
+
+import java.util.List;
+
+public class InspectionItemPlanConclusionDto {
+
+    @ApiModelProperty(value = "巡查结果记录")
+    private List<InspectionItemPlanConclusion> inspectionItemPlanConclusions;
+
+    @ApiModelProperty(value = "提交巡查结果时的gps信息")
+    private String submitedGps;
+
+    @ApiModelProperty(value = "提交时的状态 1-正常提交 2-异常提交")
+    private Integer status;
+
+    public List<InspectionItemPlanConclusion> getInspectionItemPlanConclusions() {
+        return inspectionItemPlanConclusions;
+    }
+
+    public void setInspectionItemPlanConclusions(List<InspectionItemPlanConclusion> inspectionItemPlanConclusions) {
+        this.inspectionItemPlanConclusions = inspectionItemPlanConclusions;
+    }
+
+    public String getSubmitedGps() {
+        return submitedGps;
+    }
+
+    public void setSubmitedGps(String submitedGps) {
+        this.submitedGps = submitedGps;
+    }
+
+    public Integer getStatus() {
+        return status;
+    }
+
+    public void setStatus(Integer status) {
+        this.status = status;
+    }
+}

+ 36 - 0
mec-biz/src/main/java/com/ym/mec/biz/dal/dto/TeacherVisitDto.java

@@ -0,0 +1,36 @@
+package com.ym.mec.biz.dal.dto;
+
+/**
+ * 老师访问数
+ */
+public class TeacherVisitDto {
+    private Integer teacherId;
+
+    private String month;
+
+    private Integer num;
+
+    public Integer getTeacherId() {
+        return teacherId;
+    }
+
+    public void setTeacherId(Integer teacherId) {
+        this.teacherId = teacherId;
+    }
+
+    public Integer getNum() {
+        return num;
+    }
+
+    public void setNum(Integer num) {
+        this.num = num;
+    }
+
+    public String getMonth() {
+        return month;
+    }
+
+    public void setMonth(String month) {
+        this.month = month;
+    }
+}

+ 1 - 1
mec-biz/src/main/java/com/ym/mec/biz/dal/entity/IndexErrInfoDto.java

@@ -15,7 +15,7 @@ public class IndexErrInfoDto<T> {
 
     private String desc;
 
-    private int num;
+    private int num = 0;
 
     private List<T> result;
 

+ 67 - 2
mec-biz/src/main/java/com/ym/mec/biz/dal/entity/Inspection.java

@@ -2,7 +2,13 @@ package com.ym.mec.biz.dal.entity;
 
 import io.swagger.annotations.ApiModel;
 import io.swagger.annotations.ApiModelProperty;
+
+import javax.validation.constraints.NotBlank;
+import javax.validation.constraints.NotNull;
+import javax.validation.constraints.PastOrPresent;
+import javax.validation.constraints.Positive;
 import java.util.Date;
+import java.util.List;
 
 @ApiModel(value = "com-ym-mec-biz-dal-entity-Inspection")
 public class Inspection {
@@ -16,18 +22,21 @@ public class Inspection {
      * 分部id
      */
     @ApiModelProperty(value = "分部id")
+    @Positive(message = "老师id必须大于0")
     private Integer organId;
 
     /**
      * 主管userId
      */
-    @ApiModelProperty(value = "主管userId")
+    @ApiModelProperty(value = "主管userId",required = true)
+    @Positive(message = "乐团主管必选")
     private Integer userId;
 
     /**
      * 月份
      */
-    @ApiModelProperty(value = "月份")
+    @ApiModelProperty(value = "月份",required = true)
+    @NotNull(message = "工作周期不能为空")
     private Date month;
 
     /**
@@ -54,6 +63,22 @@ public class Inspection {
     @ApiModelProperty(value = "修改时间")
     private Date updateTime;
 
+    @ApiModelProperty(value = "分部名称")
+    private String organName;
+
+    @ApiModelProperty(value = "主管名字")
+    private String userName;
+
+    @ApiModelProperty(value = "任务事项数量")
+    private Integer itemNum;
+
+    @ApiModelProperty(value = "任务总次数")
+    private Integer times;
+
+    @ApiModelProperty(value = "巡查事项列表")
+    @NotNull(message = "巡查事务项不能为空")
+    private List<InspectionItem> inspectionItems;
+
     public Long getId() {
         return id;
     }
@@ -117,4 +142,44 @@ public class Inspection {
     public void setUpdateTime(Date updateTime) {
         this.updateTime = updateTime;
     }
+
+    public String getOrganName() {
+        return organName;
+    }
+
+    public void setOrganName(String organName) {
+        this.organName = organName;
+    }
+
+    public String getUserName() {
+        return userName;
+    }
+
+    public void setUserName(String userName) {
+        this.userName = userName;
+    }
+
+    public Integer getItemNum() {
+        return itemNum;
+    }
+
+    public void setItemNum(Integer itemNum) {
+        this.itemNum = itemNum;
+    }
+
+    public Integer getTimes() {
+        return times;
+    }
+
+    public void setTimes(Integer times) {
+        this.times = times;
+    }
+
+    public List<InspectionItem> getInspectionItems() {
+        return inspectionItems;
+    }
+
+    public void setInspectionItems(List<InspectionItem> inspectionItems) {
+        this.inspectionItems = inspectionItems;
+    }
 }

+ 37 - 3
mec-biz/src/main/java/com/ym/mec/biz/dal/entity/InspectionItem.java

@@ -1,5 +1,6 @@
 package com.ym.mec.biz.dal.entity;
 
+import com.ym.mec.biz.dal.enums.InspectionItemEnum;
 import io.swagger.annotations.ApiModel;
 import io.swagger.annotations.ApiModelProperty;
 import java.util.Date;
@@ -34,7 +35,7 @@ public class InspectionItem {
      * 任务项
      */
     @ApiModelProperty(value = "任务项")
-    private String item;
+    private InspectionItemEnum item;
 
     /**
      * 任务次数
@@ -78,6 +79,15 @@ public class InspectionItem {
     @ApiModelProperty(value = "修改时间")
     private Date updateTime;
 
+    @ApiModelProperty(value = "月份")
+    private Date month;
+
+    @ApiModelProperty(value = "分部名称")
+    private String organName;
+
+    @ApiModelProperty(value = "主管名字")
+    private String userName;
+
     public Long getId() {
         return id;
     }
@@ -110,11 +120,11 @@ public class InspectionItem {
         this.userId = userId;
     }
 
-    public String getItem() {
+    public InspectionItemEnum getItem() {
         return item;
     }
 
-    public void setItem(String item) {
+    public void setItem(InspectionItemEnum item) {
         this.item = item;
     }
 
@@ -173,4 +183,28 @@ public class InspectionItem {
     public void setUpdateTime(Date updateTime) {
         this.updateTime = updateTime;
     }
+
+    public Date getMonth() {
+        return month;
+    }
+
+    public void setMonth(Date month) {
+        this.month = month;
+    }
+
+    public String getOrganName() {
+        return organName;
+    }
+
+    public void setOrganName(String organName) {
+        this.organName = organName;
+    }
+
+    public String getUserName() {
+        return userName;
+    }
+
+    public void setUserName(String userName) {
+        this.userName = userName;
+    }
 }

+ 36 - 0
mec-biz/src/main/java/com/ym/mec/biz/dal/entity/InspectionItemPlan.java

@@ -2,6 +2,8 @@ package com.ym.mec.biz.dal.entity;
 
 import io.swagger.annotations.ApiModel;
 import io.swagger.annotations.ApiModelProperty;
+
+import javax.validation.constraints.Positive;
 import java.util.Date;
 
 @ApiModel(value = "com-ym-mec-biz-dal-entity-InspectionItemPlan")
@@ -22,6 +24,7 @@ public class InspectionItemPlan {
      * 巡查任务id
      */
     @ApiModelProperty(value = "巡查任务id")
+    @Positive(message = "巡查任务id必须大于0")
     private Long itemId;
 
     /**
@@ -96,6 +99,15 @@ public class InspectionItemPlan {
     @ApiModelProperty(value = "修改时间")
     private Date updateTime;
 
+    @ApiModelProperty(value = "合作单位")
+    private String cooperationName;
+
+    @ApiModelProperty(value = "乐团名称")
+    private String musicGroupName;
+
+    @ApiModelProperty(value = "已提交的最后结果项")
+    private Integer lastCheckItem = 0;
+
     public Long getId() {
         return id;
     }
@@ -215,4 +227,28 @@ public class InspectionItemPlan {
     public void setUpdateTime(Date updateTime) {
         this.updateTime = updateTime;
     }
+
+    public String getMusicGroupName() {
+        return musicGroupName;
+    }
+
+    public void setMusicGroupName(String musicGroupName) {
+        this.musicGroupName = musicGroupName;
+    }
+
+    public String getCooperationName() {
+        return cooperationName;
+    }
+
+    public void setCooperationName(String cooperationName) {
+        this.cooperationName = cooperationName;
+    }
+
+    public Integer getLastCheckItem() {
+        return lastCheckItem;
+    }
+
+    public void setLastCheckItem(Integer lastCheckItem) {
+        this.lastCheckItem = lastCheckItem;
+    }
 }

+ 27 - 195
mec-biz/src/main/java/com/ym/mec/biz/dal/entity/InspectionItemPlanConclusion.java

@@ -18,98 +18,26 @@ public class InspectionItemPlanConclusion {
     /**
      * 老师id
      */
-    @ApiModelProperty(value = "老师id")
-    private Integer teacherId;
-
-    /**
-     * 老师是否提前准备板书(本课内容、作业)
-     */
-    @ApiModelProperty(value = "老师是否提前准备板书(本课内容、作业)")
-    private Integer checkItem1;
-
-    /**
-     * 老师是否佩戴工牌
-     */
-    @ApiModelProperty(value = "老师是否佩戴工牌")
-    private Integer checkItem2;
-
-    /**
-     * 老师是否仪容仪表整洁
-     */
-    @ApiModelProperty(value = "老师是否仪容仪表整洁")
-    private Integer checkItem3;
-
-    /**
-     * 老师是否携带乐器
-     */
-    @ApiModelProperty(value = "老师是否携带乐器")
-    private Integer checkItem4;
-
-    /**
-     * 老师是否携带教学资料、设备
-     */
-    @ApiModelProperty(value = "老师是否携带教学资料、设备")
-    private Integer checkItem5;
-
-    /**
-     * 老师是否合理安排学员座位
-     */
-    @ApiModelProperty(value = "老师是否合理安排学员座位")
-    private Integer checkItem6;
-
-    /**
-     * 乐器箱包、书包是否摆放整齐
-     */
-    @ApiModelProperty(value = "乐器箱包、书包是否摆放整齐")
-    private Integer checkItem7;
-
-    /**
-     * 课堂纪律是否保持良好
-     */
-    @ApiModelProperty(value = "课堂纪律是否保持良好")
-    private Integer checkItem8;
+    @ApiModelProperty(value = "课程id")
+    private Long courseScheduleId;
 
     /**
-     * 老师是否全程站立教学
-     */
-    @ApiModelProperty(value = "老师是否全程站立教学")
-    private Integer checkItem9;
-
-    /**
-     * 老师是否全程使用节拍器或教学音频
-     */
-    @ApiModelProperty(value = "老师是否全程使用节拍器或教学音频")
-    private Integer checkItem10;
-
-    /**
-     * 是否发现学员需要更换新乐器
-     */
-    @ApiModelProperty(value = "是否发现学员需要更换新乐器")
-    private Integer checkItem11;
-
-    /**
-     * 老师是否将上课照片/视频发送到声部群
-     */
-    @ApiModelProperty(value = "老师是否将上课照片/视频发送到声部群")
-    private Integer checkItem12;
-
-    /**
-     * 老师是否保持教室环境卫生
+     * 老师id
      */
-    @ApiModelProperty(value = "老师是否保持教室环境卫生")
-    private Integer checkItem13;
+    @ApiModelProperty(value = "老师id")
+    private Integer teacherId;
 
     /**
-     * 老师是否关好所有电源、门窗
+     * 检查事项
      */
-    @ApiModelProperty(value = "老师是否关好所有电源、门窗")
-    private Integer checkItem14;
+    @ApiModelProperty(value = "检查事项")
+    private Integer checkItem;
 
     /**
-     * 老师是否有序组织学员放学
+     * 老师是否佩戴工牌
      */
-    @ApiModelProperty(value = "老师是否有序组织学员放学")
-    private Integer checkItem15;
+    @ApiModelProperty(value = "检查结果")
+    private Integer checkConclusion;
 
     /**
      * 创建时间
@@ -139,132 +67,36 @@ public class InspectionItemPlanConclusion {
         this.planId = planId;
     }
 
-    public Integer getTeacherId() {
-        return teacherId;
-    }
-
-    public void setTeacherId(Integer teacherId) {
-        this.teacherId = teacherId;
+    public Long getCourseScheduleId() {
+        return courseScheduleId;
     }
 
-    public Integer getCheckItem1() {
-        return checkItem1;
+    public void setCourseScheduleId(Long courseScheduleId) {
+        this.courseScheduleId = courseScheduleId;
     }
 
-    public void setCheckItem1(Integer checkItem1) {
-        this.checkItem1 = checkItem1;
-    }
-
-    public Integer getCheckItem2() {
-        return checkItem2;
-    }
-
-    public void setCheckItem2(Integer checkItem2) {
-        this.checkItem2 = checkItem2;
-    }
-
-    public Integer getCheckItem3() {
-        return checkItem3;
-    }
-
-    public void setCheckItem3(Integer checkItem3) {
-        this.checkItem3 = checkItem3;
-    }
-
-    public Integer getCheckItem4() {
-        return checkItem4;
-    }
-
-    public void setCheckItem4(Integer checkItem4) {
-        this.checkItem4 = checkItem4;
-    }
-
-    public Integer getCheckItem5() {
-        return checkItem5;
-    }
-
-    public void setCheckItem5(Integer checkItem5) {
-        this.checkItem5 = checkItem5;
-    }
-
-    public Integer getCheckItem6() {
-        return checkItem6;
-    }
-
-    public void setCheckItem6(Integer checkItem6) {
-        this.checkItem6 = checkItem6;
-    }
-
-    public Integer getCheckItem7() {
-        return checkItem7;
-    }
-
-    public void setCheckItem7(Integer checkItem7) {
-        this.checkItem7 = checkItem7;
-    }
-
-    public Integer getCheckItem8() {
-        return checkItem8;
-    }
-
-    public void setCheckItem8(Integer checkItem8) {
-        this.checkItem8 = checkItem8;
-    }
-
-    public Integer getCheckItem9() {
-        return checkItem9;
-    }
-
-    public void setCheckItem9(Integer checkItem9) {
-        this.checkItem9 = checkItem9;
-    }
-
-    public Integer getCheckItem10() {
-        return checkItem10;
-    }
-
-    public void setCheckItem10(Integer checkItem10) {
-        this.checkItem10 = checkItem10;
-    }
-
-    public Integer getCheckItem11() {
-        return checkItem11;
-    }
-
-    public void setCheckItem11(Integer checkItem11) {
-        this.checkItem11 = checkItem11;
-    }
-
-    public Integer getCheckItem12() {
-        return checkItem12;
-    }
-
-    public void setCheckItem12(Integer checkItem12) {
-        this.checkItem12 = checkItem12;
-    }
-
-    public Integer getCheckItem13() {
-        return checkItem13;
+    public Integer getTeacherId() {
+        return teacherId;
     }
 
-    public void setCheckItem13(Integer checkItem13) {
-        this.checkItem13 = checkItem13;
+    public void setTeacherId(Integer teacherId) {
+        this.teacherId = teacherId;
     }
 
-    public Integer getCheckItem14() {
-        return checkItem14;
+    public Integer getCheckItem() {
+        return checkItem;
     }
 
-    public void setCheckItem14(Integer checkItem14) {
-        this.checkItem14 = checkItem14;
+    public void setCheckItem(Integer checkItem) {
+        this.checkItem = checkItem;
     }
 
-    public Integer getCheckItem15() {
-        return checkItem15;
+    public Integer getCheckConclusion() {
+        return checkConclusion;
     }
 
-    public void setCheckItem15(Integer checkItem15) {
-        this.checkItem15 = checkItem15;
+    public void setCheckConclusion(Integer checkConclusion) {
+        this.checkConclusion = checkConclusion;
     }
 
     public Date getCreateTime() {

+ 1 - 1
mec-biz/src/main/java/com/ym/mec/biz/dal/enums/IndexDataType.java

@@ -33,7 +33,7 @@ public enum IndexDataType implements BaseEnum<String, IndexDataType> {
     STUDENT_CONVERSION("STUDENT_CONVERSION","学员转化"),
     STUDENT_CONVERSION_PRE_STUDENT_NUM("STUDENT_CONVERSION_PRE_STUDENT_NUM","预报名人数"),
     STUDENT_CONVERSION_STUDENT_NUM("STUDENT_CONVERSION_STUDENT_NUM","报名人数"),
-    STUDENT_CONVERSION_PAYMENT_STUDENT_NUM("STUDENT_CONVERSION_PAYMENT_STUDENT_NUM","学员转化"),
+    STUDENT_CONVERSION_PAYMENT_STUDENT_NUM("STUDENT_CONVERSION_PAYMENT_STUDENT_NUM","报名缴费"),
     STUDENT_CONVERSION_VIP_PRACTICE_STUDENT_NUM("STUDENT_CONVERSION_VIP_PRACTICE_STUDENT_NUM","VIP/网管课购买"),
 
     MUSIC_GROUP_COURSE("MUSIC_GROUP_COURSE","乐团课"),

+ 11 - 0
mec-biz/src/main/java/com/ym/mec/biz/dal/enums/IndexErrorType.java

@@ -7,11 +7,22 @@ import com.ym.mec.common.enums.BaseEnum;
  * @Date 2021/1/18 0018
  **/
 public enum IndexErrorType implements BaseEnum<String, IndexErrorType> {
+    MUSIC_PATROL("MUSIC_PATROL", "乐团巡查"),
     HIGH_CLASS_STUDENT_LESS_THAN_THREE("HIGH_CLASS_STUDENT_LESS_THAN_THREE", "基础技能班学员数量异常"),
     MUSIC_PATROL_ITEM("MUSIC_PATROL_ITEM", "乐团巡查事项异常"),
 
+    STUDENT_INFO("STUDENT_INFO", "学员处理"),
     STUDENT_NOT_PAYMENT("STUDENT_NOT_PAYMENT", "学员未缴费"),
     STUDENT_APPLY_FOR_QUIT_MUSIC_GROUP("STUDENT_APPLY_FOR_QUIT_MUSIC_GROUP", "学员退团申请"),
+    WAIT_CREATE_PAYMENT_CALENDER("WAIT_CREATE_PAYMENT_CALENDER", "待创建缴费项目"),
+    COURSE_TRUANT_STUDENT_NUM("COURSE_TRUANT_STUDENT_NUM", "学员考情异常旷课"),
+    COURSE_LEAVE_STUDENT_NUM("COURSE_LEAVE_STUDENT_NUM", "请假"),
+
+    TEACHER_INFO("TEACHER_INFO", "日常行政"),
+    TEACHER_EXCEPTION_ATTENDANCE("TEACHER_EXCEPTION_ATTENDANCE", "老师考勤异常"),
+    TEACHER_NOT_A_CLASS("TEACHER_NOT_A_CLASS", "未签到签退"),
+    TEACHER_LEAVE("TEACHER_LEAVE", "老师请假"),
+    TEACHER_EXPECT_SALARY_BE_LOW("TEACHER_EXPECT_SALARY_BE_LOW", "预计课酬较低"),
     ;
 
     private String code;

+ 27 - 0
mec-biz/src/main/java/com/ym/mec/biz/dal/enums/InspectionItemEnum.java

@@ -0,0 +1,27 @@
+package com.ym.mec.biz.dal.enums;
+
+import com.ym.mec.common.enums.BaseEnum;
+
+public enum InspectionItemEnum implements BaseEnum<String, InspectionItemEnum> {
+	INSPECT("INSPECT", "下校巡查"),
+	VISIT("VISIT", "学员回访");
+
+	private String code;
+
+	private String desc;
+
+	private InspectionItemEnum(String code, String desc) {
+		this.code = code;
+		this.desc = desc;
+	}
+
+	@Override
+	public String getCode() {
+		return code;
+	}
+
+	public String getDesc() {
+		return desc;
+	}
+
+}

+ 73 - 0
mec-biz/src/main/java/com/ym/mec/biz/dal/page/InspectionItemPlanQueryInfo.java

@@ -0,0 +1,73 @@
+package com.ym.mec.biz.dal.page;
+
+import com.ym.mec.common.page.QueryInfo;
+import io.swagger.annotations.ApiModelProperty;
+
+import java.util.Date;
+
+public class InspectionItemPlanQueryInfo extends QueryInfo {
+
+    @ApiModelProperty(value = "itemId",required = false)
+    private Long itemId;
+
+    @ApiModelProperty(value = "乐团主管id",required = false)
+    private Integer userId;
+
+    @ApiModelProperty(value = "是否已提交 0-未提交 1-已提交 ",required = false)
+    private Integer hasSubmit;
+
+    @ApiModelProperty(value = "月份",required = false)
+    private Date month;
+
+    private Date startTime;
+
+    private Date endTime;
+
+    public Date getStartTime() {
+        return startTime;
+    }
+
+    public void setStartTime(Date startTime) {
+        this.startTime = startTime;
+    }
+
+    public Date getEndTime() {
+        return endTime;
+    }
+
+    public void setEndTime(Date endTime) {
+        this.endTime = endTime;
+    }
+
+    public Long getItemId() {
+        return itemId;
+    }
+
+    public void setItemId(Long itemId) {
+        this.itemId = itemId;
+    }
+
+    public Integer getUserId() {
+        return userId;
+    }
+
+    public void setUserId(Integer userId) {
+        this.userId = userId;
+    }
+
+    public Integer getHasSubmit() {
+        return hasSubmit;
+    }
+
+    public void setHasSubmit(Integer hasSubmit) {
+        this.hasSubmit = hasSubmit;
+    }
+
+    public Date getMonth() {
+        return month;
+    }
+
+    public void setMonth(Date month) {
+        this.month = month;
+    }
+}

+ 73 - 0
mec-biz/src/main/java/com/ym/mec/biz/dal/page/InspectionQueryInfo.java

@@ -0,0 +1,73 @@
+package com.ym.mec.biz.dal.page;
+
+import com.ym.mec.common.page.QueryInfo;
+import io.swagger.annotations.ApiModelProperty;
+
+import java.util.Date;
+
+public class InspectionQueryInfo extends QueryInfo {
+
+    @ApiModelProperty(value = "分部ids",required = false)
+    private String organId;
+
+    @ApiModelProperty(value = "乐团主管id",required = false)
+    private Integer userId;
+
+    @ApiModelProperty(value = "月份",required = false)
+    private Date month;
+
+    @ApiModelProperty(value = "添加人",required = false)
+    private Integer operation;
+
+    private Date startTime;
+
+    private Date endTime;
+
+	public String getOrganId() {
+		return organId;
+	}
+
+	public void setOrganId(String organId) {
+		this.organId = organId;
+	}
+
+    public Integer getUserId() {
+        return userId;
+    }
+
+    public void setUserId(Integer userId) {
+        this.userId = userId;
+    }
+
+    public Date getMonth() {
+        return month;
+    }
+
+    public void setMonth(Date month) {
+        this.month = month;
+    }
+
+    public Integer getOperation() {
+        return operation;
+    }
+
+    public void setOperation(Integer operation) {
+        this.operation = operation;
+    }
+
+    public Date getStartTime() {
+        return startTime;
+    }
+
+    public void setStartTime(Date startTime) {
+        this.startTime = startTime;
+    }
+
+    public Date getEndTime() {
+        return endTime;
+    }
+
+    public void setEndTime(Date endTime) {
+        this.endTime = endTime;
+    }
+}

+ 1 - 1
mec-biz/src/main/java/com/ym/mec/biz/service/IndexBaseMonthDataService.java

@@ -14,7 +14,7 @@ public interface IndexBaseMonthDataService extends BaseService<Long, IndexBaseMo
 
     Map<String, List<IndexBaseDto>> indexBaseDataTask(String month);
 
-    List<IndexErrInfoDto> getIndexErrData(String organIds);
+    Map<String, Object> getIndexErrData(String organIds);
 
     /**
      * 事项提醒

+ 26 - 0
mec-biz/src/main/java/com/ym/mec/biz/service/InspectionItemPlanConclusionService.java

@@ -1,10 +1,36 @@
 package com.ym.mec.biz.service;
 
+import com.ym.mec.biz.dal.dto.InspectionItemPlanConclusionDto;
+import com.ym.mec.biz.dal.entity.CourseSchedule;
 import com.ym.mec.biz.dal.entity.InspectionItemPlanConclusion;
 import com.ym.mec.common.service.BaseService;
 
+import java.util.List;
+import java.util.Map;
+
 public interface InspectionItemPlanConclusionService extends BaseService<Long, InspectionItemPlanConclusion> {
+    /**
+     * 添加巡查结果
+     *
+     * @param inspectionItemPlanConclusionDto
+     * @return
+     */
+    InspectionItemPlanConclusionDto add(InspectionItemPlanConclusionDto inspectionItemPlanConclusionDto);
+
+    /**
+     * 获取
+     * @param planId
+     * @param checkItem
+     * @return
+     */
+   Map<Integer,List<InspectionItemPlanConclusion>> getInfo(Long planId, Integer checkItem);
 
+    /**
+     * 获取日程内的课程信息
+     * @param planId
+     * @return
+     */
+    List<CourseSchedule> getPlanCourses(Long planId);
 }
 
 

+ 21 - 0
mec-biz/src/main/java/com/ym/mec/biz/service/InspectionItemPlanService.java

@@ -1,10 +1,31 @@
 package com.ym.mec.biz.service;
 
 import com.ym.mec.biz.dal.entity.InspectionItemPlan;
+import com.ym.mec.biz.dal.page.InspectionItemPlanQueryInfo;
+import com.ym.mec.common.page.PageInfo;
 import com.ym.mec.common.service.BaseService;
 
 public interface InspectionItemPlanService extends BaseService<Long, InspectionItemPlan> {
 
+    /**
+     * 获取巡查日程列表
+     * @param queryInfo
+     * @return
+     */
+    PageInfo<InspectionItemPlan> getPageList(InspectionItemPlanQueryInfo queryInfo);
+    /**
+     * 添加日程
+     * @param inspectionItemPlan
+     * @return
+     */
+    InspectionItemPlan add(InspectionItemPlan inspectionItemPlan);
+
+    /**
+     * 修改日程
+     * @param inspectionItemPlan
+     * @return
+     */
+    InspectionItemPlan updatePlan(InspectionItemPlan inspectionItemPlan);
 }
 
 

+ 11 - 0
mec-biz/src/main/java/com/ym/mec/biz/service/InspectionItemService.java

@@ -1,10 +1,21 @@
 package com.ym.mec.biz.service;
 
 import com.ym.mec.biz.dal.entity.InspectionItem;
+import com.ym.mec.biz.dal.page.InspectionQueryInfo;
+import com.ym.mec.common.page.PageInfo;
 import com.ym.mec.common.service.BaseService;
 
+import java.util.List;
+
 public interface InspectionItemService extends BaseService<Long, InspectionItem> {
 
+    /**
+     * 获取任务事务项列表
+     * @param queryInfo
+     * @return
+     */
+    PageInfo<InspectionItem> getPageList(InspectionQueryInfo queryInfo);
+
 }
 
 

+ 40 - 0
mec-biz/src/main/java/com/ym/mec/biz/service/InspectionService.java

@@ -1,10 +1,50 @@
 package com.ym.mec.biz.service;
 
 import com.ym.mec.biz.dal.entity.Inspection;
+import com.ym.mec.biz.dal.entity.School;
+import com.ym.mec.biz.dal.page.InspectionQueryInfo;
+import com.ym.mec.biz.dal.page.SchoolQueryInfo;
+import com.ym.mec.common.page.PageInfo;
 import com.ym.mec.common.service.BaseService;
 
+import java.util.List;
+
 public interface InspectionService extends BaseService<Long, Inspection> {
 
+    /**
+     * 获取巡查任务列表
+     * @param queryInfo
+     * @return
+     */
+    PageInfo<Inspection> getPageList(InspectionQueryInfo queryInfo);
+
+
+    /**
+     * 添加巡查任务
+     * @param inspections
+     * @return
+     */
+    List<Inspection> add(List<Inspection> inspections,Integer operationUserId);
+
+    /**
+     * 获取巡查任务详情
+     * @param id
+     * @return
+     */
+    Inspection getInfo(Long id);
+
+    /**
+     * 修改巡查任务
+     * @return
+     */
+    Inspection updateInspection(Inspection inspection,Integer operationUserId);
+
+    /**
+     * 删除巡查任务
+     * @param id
+     * @return
+     */
+    Boolean delInspections(Long id);
 }
 
 

+ 88 - 17
mec-biz/src/main/java/com/ym/mec/biz/service/impl/ClassGroupServiceImpl.java

@@ -3,6 +3,8 @@ package com.ym.mec.biz.service.impl;
 import static com.ym.mec.biz.dal.entity.MusicGroupPaymentCalender.PaymentCalenderStatusEnum.AUDITING;
 import static com.ym.mec.biz.dal.entity.MusicGroupPaymentCalender.PaymentCalenderStatusEnum.NO;
 import static com.ym.mec.biz.dal.entity.MusicGroupPaymentCalender.PaymentType.SPAN_GROUP_CLASS_ADJUST;
+import static com.ym.mec.biz.dal.enums.ClassGroupTypeEnum.HIGH;
+import static com.ym.mec.biz.dal.enums.ClassGroupTypeEnum.HIGH_ONLINE;
 import static com.ym.mec.biz.dal.enums.GroupType.COMM;
 import static com.ym.mec.biz.dal.enums.GroupType.MUSIC;
 import static com.ym.mec.biz.dal.enums.GroupType.PRACTICE;
@@ -220,10 +222,10 @@ public class ClassGroupServiceImpl extends BaseServiceImpl<Integer, ClassGroup>
         }
 
         //基础技能班和线上基础技能班,可分班原则为声部人数/6向上取整
-        if (classGroup.getType().equals(ClassGroupTypeEnum.HIGH_ONLINE) || classGroup.getType().equals(ClassGroupTypeEnum.HIGH)) {
+        if (classGroup.getType().equals(HIGH_ONLINE) || classGroup.getType().equals(HIGH)) {
             HighClassGroupNumDto highClassGroupNumDto = getSubjectMaxHighClassGroupNum(classGroup.getMusicGroupId(), classGroup.getType());
             if (highClassGroupNumDto.getNowHighClassGroupNum() >= highClassGroupNumDto.getMaxHighClassGroupNum()) {
-                String errMsg = classGroup.getType().equals(ClassGroupTypeEnum.HIGH_ONLINE) ? "线上基础技能班" : "基础技能班";
+                String errMsg = classGroup.getType().equals(HIGH_ONLINE) ? "线上基础技能班" : "基础技能班";
                 throw new BizException("此乐团," + errMsg + "数量不能大于" + highClassGroupNumDto.getMaxHighClassGroupNum());
             }
         }
@@ -471,7 +473,7 @@ public class ClassGroupServiceImpl extends BaseServiceImpl<Integer, ClassGroup>
                 throw new BizException("班数不能大于" + highClassGroupNum);
             }
 
-            List<ClassGroup> classGroups = classGroupDao.findClassGroupByMusicGroupIdAndType(musicGroup.getId(), ClassGroupTypeEnum.HIGH);
+            List<ClassGroup> classGroups = classGroupDao.findClassGroupByMusicGroupIdAndType(musicGroup.getId(), HIGH);
             if (classGroups.size() > 0) {
                 List<Integer> classGroupIds = classGroups.stream().map(classGroup -> classGroup.getId()).collect(Collectors.toList());
 
@@ -515,7 +517,7 @@ public class ClassGroupServiceImpl extends BaseServiceImpl<Integer, ClassGroup>
                 highClassGroup.setGroupType(MUSIC);
                 highClassGroup.setCreateTime(date);
                 highClassGroup.setUpdateTime(date);
-                highClassGroup.setType(ClassGroupTypeEnum.HIGH);
+                highClassGroup.setType(HIGH);
                 highClassGroup.setTotalClassTimes(highClassGroup.getCourseTimes());
                 highClassGroup.setCurrentClassTimes(0);
                 insert(highClassGroup);
@@ -736,7 +738,7 @@ public class ClassGroupServiceImpl extends BaseServiceImpl<Integer, ClassGroup>
 
             Long studentNum = classGroupStudentNumMap.get(classGroupAndTeacher.getId());
             studentNum = Objects.isNull(studentNum) ? 0 : studentNum;
-            if (classGroupAndTeacher.getType().equals(ClassGroupTypeEnum.HIGH_ONLINE) && (studentNum < 3 || studentNum > 5)) {
+            if (classGroupAndTeacher.getType().equals(HIGH_ONLINE) && (studentNum < 3 || studentNum > 5)) {
                 String numWaring = studentNum < 3 ? "人数不能小于3," : "人数不能大于5,";
                 waringStr += classGroupAndTeacher.getName() + numWaring;
             }
@@ -1076,7 +1078,7 @@ public class ClassGroupServiceImpl extends BaseServiceImpl<Integer, ClassGroup>
         if (courseScheduleIds.size() > 0) {
             hasTeacherSalaryCount = courseScheduleTeacherSalaryDao.getHasTeacherSalaryCount(courseScheduleIds);
         }
-        if ((classGroup.getType().equals(ClassGroupTypeEnum.HIGH_ONLINE) || classGroup.getType().equals(ClassGroupTypeEnum.HIGH)) && hasTeacherSalaryCount > 0) {
+        if ((classGroup.getType().equals(HIGH_ONLINE) || classGroup.getType().equals(HIGH)) && hasTeacherSalaryCount > 0) {
             Integer studentNum = classGroup.getStudentNum() + 1;
             List<CourseScheduleTeacherSalary> courseScheduleTeacherSalaryList = new ArrayList<>();
             courseScheduleTeacherSalaryDao.batchDeleteByCourseScheduleIds(courseScheduleIds);
@@ -1085,14 +1087,14 @@ public class ClassGroupServiceImpl extends BaseServiceImpl<Integer, ClassGroup>
                     List<TeacherDefaultMusicGroupSalary> teacherSalaryList = teacherDefaultMusicGroupSalaryService.getTeacherSalaryByUserIdAndType(classGroupTeacher.getUserId(), null, null);
                     Map<CourseSchedule.CourseScheduleType, TeacherDefaultMusicGroupSalary> collect = teacherSalaryList.stream().collect(Collectors.toMap(TeacherDefaultMusicGroupSalary::getCourseScheduleType, teacherDefaultMusicGroupSalary -> teacherDefaultMusicGroupSalary));
                     TeacherDefaultMusicGroupSalary teacherDefaultMusicGroupSalary = collect.get(CourseSchedule.CourseScheduleType.HIGH_ONLINE);
-                    if (classGroup.getType().equals(ClassGroupTypeEnum.HIGH_ONLINE) && studentNum > 5) {
+                    if (classGroup.getType().equals(HIGH_ONLINE) && studentNum > 5) {
                         studentNum = 5;
                     }
 
                     BigDecimal salary = null;
-                    if(classGroup.getType().equals(ClassGroupTypeEnum.HIGH_ONLINE)){
+                    if(classGroup.getType().equals(HIGH_ONLINE)){
                         salary = JSON.parseObject(teacherDefaultMusicGroupSalary.getSalaryRuleJson()).getBigDecimal(studentNum + "");
-                    }else if(classGroup.getType().equals(ClassGroupTypeEnum.HIGH)){
+                    }else if(classGroup.getType().equals(HIGH)){
                         MusicGroup musicGroup = musicGroupDao.get(classGroup.getMusicGroupId());
                         TeacherDefaultMusicGroupSalary teacherDefaultMusicGroupSalaryHigh = collect.get(CourseSchedule.CourseScheduleType.HIGH);
                         if(Objects.isNull(teacherDefaultMusicGroupSalaryHigh)){
@@ -1233,7 +1235,7 @@ public class ClassGroupServiceImpl extends BaseServiceImpl<Integer, ClassGroup>
 
             //4、调整未上课课酬
             List<ClassGroupTeacherMapper> classGroupTeachers = classGroupTeacherMapperService.getClassGroupTeachers(classGroup.getId());
-            if ((classGroup.getType().equals(ClassGroupTypeEnum.HIGH_ONLINE) || classGroup.getType().equals(ClassGroupTypeEnum.HIGH)) && courseScheduleList.size() > 0) {
+            if ((classGroup.getType().equals(HIGH_ONLINE) || classGroup.getType().equals(HIGH)) && courseScheduleList.size() > 0) {
                 Date nowDate = new Date();
                 List<CourseScheduleTeacherSalary> courseScheduleTeacherSalaryList = new ArrayList<>();
                 List<Long> courseScheduleIds = courseScheduleList.stream().map(CourseSchedule::getId).collect(Collectors.toList());
@@ -1248,14 +1250,14 @@ public class ClassGroupServiceImpl extends BaseServiceImpl<Integer, ClassGroup>
                         TeacherDefaultMusicGroupSalary teacherDefaultMusicGroupSalary = collect.get(CourseSchedule.CourseScheduleType.HIGH_ONLINE);
 
                         int studentNum = classGroup.getStudentNum() + 1;
-                        if (classGroup.getType().equals(ClassGroupTypeEnum.HIGH_ONLINE) && studentNum > 5) {
+                        if (classGroup.getType().equals(HIGH_ONLINE) && studentNum > 5) {
                             studentNum = 5;
                         }
 
                         BigDecimal salary = null;
-                        if(classGroup.getType().equals(ClassGroupTypeEnum.HIGH_ONLINE)){
+                        if(classGroup.getType().equals(HIGH_ONLINE)){
                             salary = JSON.parseObject(teacherDefaultMusicGroupSalary.getSalaryRuleJson()).getBigDecimal(studentNum + "");
-                        }else if(classGroup.getType().equals(ClassGroupTypeEnum.HIGH)){
+                        }else if(classGroup.getType().equals(HIGH)){
                             MusicGroup musicGroup = musicGroupDao.get(classGroup.getMusicGroupId());
                             TeacherDefaultMusicGroupSalary teacherDefaultMusicGroupSalaryHigh = collect.get(CourseSchedule.CourseScheduleType.HIGH);
                             if(Objects.isNull(teacherDefaultMusicGroupSalaryHigh)){
@@ -1751,7 +1753,7 @@ public class ClassGroupServiceImpl extends BaseServiceImpl<Integer, ClassGroup>
 
         List<Integer> subjectIdList = studentList.stream().map(student -> student.getActualSubjectId()).collect(Collectors.toList());
         TeachModeEnum teachMode = TeachModeEnum.OFFLINE;
-        if (classGroup4MixDtos.get(0).getType().equals(ClassGroupTypeEnum.HIGH_ONLINE)) {
+        if (classGroup4MixDtos.get(0).getType().equals(HIGH_ONLINE)) {
             subjectIdList.clear();
             subjectIdList.add(classGroup4MixDtos.get(0).getSubjectId());
             teachMode = TeachModeEnum.ONLINE;
@@ -1974,7 +1976,7 @@ public class ClassGroupServiceImpl extends BaseServiceImpl<Integer, ClassGroup>
         Integer schoolId = musicGroup.getSchoolId();
 
         TeachModeEnum teachMode = TeachModeEnum.OFFLINE;
-        if (classGroup4MixDto.getType().equals(ClassGroupTypeEnum.HIGH_ONLINE)) {
+        if (classGroup4MixDto.getType().equals(HIGH_ONLINE)) {
             teachMode = TeachModeEnum.ONLINE;
         } else if (classGroup4MixDto.getType().equals(ClassGroupTypeEnum.MUSIC_NETWORK)) {
             teachMode = TeachModeEnum.ONLINE;
@@ -2083,7 +2085,7 @@ public class ClassGroupServiceImpl extends BaseServiceImpl<Integer, ClassGroup>
         List<StudentRegistration> studentList = studentRegistrationService.findStudentListByUserIdList(musicGroupId, studentIdList);
 
         List<Integer> subjectIdList = studentList.stream().map(student -> student.getActualSubjectId()).collect(Collectors.toList());
-        if (classGroup4MixDto.getType().equals(ClassGroupTypeEnum.HIGH_ONLINE)) {
+        if (classGroup4MixDto.getType().equals(HIGH_ONLINE)) {
             subjectIdList.clear();
             subjectIdList.add(classGroup4MixDto.getSubjectId());
         }
@@ -2240,7 +2242,7 @@ public class ClassGroupServiceImpl extends BaseServiceImpl<Integer, ClassGroup>
         }
 
         TeachModeEnum teachMode = TeachModeEnum.OFFLINE;
-        if (classGroup.getType().equals(ClassGroupTypeEnum.HIGH_ONLINE) || classGroup.getType().equals(ClassGroupTypeEnum.MUSIC_NETWORK)) {
+        if (classGroup.getType().equals(HIGH_ONLINE) || classGroup.getType().equals(ClassGroupTypeEnum.MUSIC_NETWORK)) {
             teachMode = TeachModeEnum.ONLINE;
         }
 
@@ -3881,5 +3883,74 @@ public class ClassGroupServiceImpl extends BaseServiceImpl<Integer, ClassGroup>
                 courseScheduleTeacherSalaryDao.batchDeleteByCourseScheduleIds(delCourseIds);
             }
         }
+        //如果是基础技能班,重新计算老师课酬
+        if(classGroupIds.size() > 0){
+            //获取班级学员人数
+            List<Map<Integer, Integer>> classGroupStudentNumMaps = classGroupStudentMapperDao.countClassGroupsStudentNum(classGroupIds, ClassGroupStudentStatusEnum.NORMAL);
+            Map<Integer, Long> classGroupStudentNumMap = MapUtil.convertIntegerMap(classGroupStudentNumMaps);
+            List<ClassGroup> byClassGroupIds = classGroupDao.findByClassGroupIds(classGroupIds, null);
+            for (ClassGroup classGroup : byClassGroupIds) {
+                Long aLong = classGroupStudentNumMap.get(classGroup.getId());
+                classGroup.setStudentNum(aLong==null?0:aLong.intValue());
+                if(classGroup.getType() == HIGH_ONLINE || classGroup.getType() == HIGH){
+                    if(aLong != null && aLong > 0){
+                        List<CourseSchedule> courseScheduleList = courseScheduleService.findNoStartCoursesByClassGroupId(classGroup.getId());
+                        if(courseScheduleList.size() > 0){
+                            //调整未上课课酬
+                            List<ClassGroupTeacherMapper> classGroupTeachers = classGroupTeacherMapperService.getClassGroupTeachers(classGroup.getId());
+                            Date nowDate = new Date();
+                            List<CourseScheduleTeacherSalary> courseScheduleTeacherSalaryList = new ArrayList<>();
+                            List<Long> courseScheduleIds = courseScheduleList.stream().map(CourseSchedule::getId).collect(Collectors.toList());
+                            courseScheduleTeacherSalaryDao.batchDeleteByCourseScheduleIds(courseScheduleIds);
+                            for (CourseSchedule courseSchedule : courseScheduleList) {
+                                for (ClassGroupTeacherMapper classGroupTeacher : classGroupTeachers) {
+                                    List<TeacherDefaultMusicGroupSalary> teacherSalaryList = teacherDefaultMusicGroupSalaryService.getTeacherSalaryByUserIdAndType(classGroupTeacher.getUserId(), null, null);
+                                    if (teacherSalaryList == null || teacherSalaryList.size() == 0) {
+                                        throw new BizException("请设置老师线上网管课课酬");
+                                    }
+                                    Map<CourseSchedule.CourseScheduleType, TeacherDefaultMusicGroupSalary> collect = teacherSalaryList.stream().collect(Collectors.toMap(TeacherDefaultMusicGroupSalary::getCourseScheduleType, teacherDefaultMusicGroupSalary -> teacherDefaultMusicGroupSalary));
+                                    TeacherDefaultMusicGroupSalary teacherDefaultMusicGroupSalary = collect.get(CourseSchedule.CourseScheduleType.HIGH_ONLINE);
+
+                                    if (classGroup.getType().equals(HIGH_ONLINE) && aLong > 5l) {
+                                        aLong = 5l;
+                                    }
+                                    BigDecimal salary = null;
+                                    if(classGroup.getType().equals(HIGH_ONLINE)){
+                                        salary = JSON.parseObject(teacherDefaultMusicGroupSalary.getSalaryRuleJson()).getBigDecimal(aLong + "");
+                                    }else if(classGroup.getType().equals(HIGH)){
+                                        MusicGroup musicGroup = musicGroupDao.get(classGroup.getMusicGroupId());
+                                        TeacherDefaultMusicGroupSalary teacherDefaultMusicGroupSalaryHigh = collect.get(CourseSchedule.CourseScheduleType.HIGH);
+                                        if(Objects.isNull(teacherDefaultMusicGroupSalaryHigh)){
+                                            throw new BizException("请设置老师课酬");
+                                        }
+                                        salary = TeachTypeEnum.BISHOP.equals(classGroupTeacher.getTeacherRole()) ? teacherDefaultMusicGroupSalaryHigh.getMainTeacher30MinSalary() : teacherDefaultMusicGroupSalaryHigh.getAssistantTeacher30MinSalary();
+                                        if (musicGroup.getSettlementType().equals(SalarySettlementTypeEnum.GRADIENT_SALARY)) {
+                                            salary = TeachTypeEnum.BISHOP.equals(classGroupTeacher.getTeacherRole()) ? teacherDefaultMusicGroupSalaryHigh.getMainTeacher90MinSalary() : teacherDefaultMusicGroupSalaryHigh.getAssistantTeacher90MinSalary();
+                                        }
+                                        salary = salary.multiply(new BigDecimal(aLong));
+                                    }
+                                    if(Objects.isNull(salary)){
+                                        throw new BizException("请设置老师课酬");
+                                    }
+                                    CourseScheduleTeacherSalary courseScheduleTeacherSalary = new CourseScheduleTeacherSalary();
+                                    courseScheduleTeacherSalary.setCourseScheduleId(courseSchedule.getId());
+                                    courseScheduleTeacherSalary.setGroupType(courseSchedule.getGroupType());
+                                    courseScheduleTeacherSalary.setMusicGroupId(courseSchedule.getMusicGroupId());
+                                    courseScheduleTeacherSalary.setTeacherRole(classGroupTeacher.getTeacherRole());
+                                    courseScheduleTeacherSalary.setUserId(classGroupTeacher.getUserId());
+                                    courseScheduleTeacherSalary.setExpectSalary(salary);
+                                    courseScheduleTeacherSalary.setClassGroupId(classGroup.getId());
+                                    courseScheduleTeacherSalary.setCreateTime(nowDate);
+                                    courseScheduleTeacherSalary.setUpdateTime(nowDate);
+                                    courseScheduleTeacherSalaryList.add(courseScheduleTeacherSalary);
+                                }
+                            }
+                            courseScheduleTeacherSalaryService.batchInsert(courseScheduleTeacherSalaryList);
+                        }
+                    }
+                }
+            }
+            classGroupDao.batchUpdate(byClassGroupIds);
+        }
     }
 }

+ 64 - 14
mec-biz/src/main/java/com/ym/mec/biz/service/impl/IndexBaseMonthDataServiceImpl.java

@@ -2,9 +2,7 @@ package com.ym.mec.biz.service.impl;
 
 import com.ym.mec.auth.api.client.SysUserFeignService;
 import com.ym.mec.auth.api.entity.SysUser;
-import com.ym.mec.biz.dal.dao.EmployeeDao;
-import com.ym.mec.biz.dal.dao.MusicGroupDao;
-import com.ym.mec.biz.dal.dao.OrganizationDao;
+import com.ym.mec.biz.dal.dao.*;
 import com.ym.mec.biz.dal.dto.IndexBaseDto;
 import com.ym.mec.biz.dal.entity.IndexErrInfoDto;
 import com.ym.mec.biz.dal.entity.Organization;
@@ -18,7 +16,6 @@ import org.apache.commons.lang3.StringUtils;
 import org.springframework.beans.factory.annotation.Autowired;
 import com.ym.mec.biz.dal.entity.IndexBaseMonthData;
 import com.ym.mec.biz.service.IndexBaseMonthDataService;
-import com.ym.mec.biz.dal.dao.IndexBaseMonthDataDao;
 import org.springframework.stereotype.Service;
 import org.springframework.transaction.annotation.Transactional;
 import org.springframework.util.CollectionUtils;
@@ -29,6 +26,8 @@ import java.time.format.DateTimeFormatter;
 import java.util.*;
 import java.util.stream.Collectors;
 
+import static com.ym.mec.biz.dal.enums.IndexErrorType.WAIT_CREATE_PAYMENT_CALENDER;
+
 @Service
 public class IndexBaseMonthDataServiceImpl extends BaseServiceImpl<Long, IndexBaseMonthData> implements IndexBaseMonthDataService {
 	
@@ -41,6 +40,10 @@ public class IndexBaseMonthDataServiceImpl extends BaseServiceImpl<Long, IndexBa
 	@Autowired
 	private MusicGroupDao musicGroupDao;
 	@Autowired
+	private SysConfigDao sysConfigDao;
+	@Autowired
+	private MusicGroupPaymentCalenderDao musicGroupPaymentCalenderDao;
+	@Autowired
 	private SysUserFeignService sysUserFeignService;
 
 	private static ThreadLocal<Set<Integer>> organIds = new ThreadLocal<Set<Integer>>(){
@@ -110,7 +113,7 @@ public class IndexBaseMonthDataServiceImpl extends BaseServiceImpl<Long, IndexBa
 			}
 			typeDateMapEntry.getValue().sort(Comparator.comparing(IndexBaseMonthData::getMonth));
 			if(IndexDataType.ACTIVATION_RATE.equals(typeDateMapEntry.getKey())||IndexDataType.HOMEWORK_CREATE_RATE.equals(typeDateMapEntry.getKey())
-					||IndexDataType.HOMEWORK_SUBMIT_RATE.equals(typeDateMapEntry.getKey())||IndexDataType.HOMEWORK_SUBMIT_RATE.equals(typeDateMapEntry.getKey())
+					||IndexDataType.HOMEWORK_SUBMIT_RATE.equals(typeDateMapEntry.getKey())||IndexDataType.HOMEWORK_COMMENT_RATE.equals(typeDateMapEntry.getKey())
 					||IndexDataType.STUDENT_CONVERSION.equals(typeDateMapEntry.getKey())){
 				for (IndexBaseMonthData indexBaseMonthData : typeDateMapEntry.getValue()) {
 					if(indexBaseMonthData.getTotalNum().compareTo(BigDecimal.ZERO)==0){
@@ -149,7 +152,7 @@ public class IndexBaseMonthDataServiceImpl extends BaseServiceImpl<Long, IndexBa
 		//运营数据
 		saveData(indexBaseMonthDataDao.getSchoolData(month), month, IndexDataType.SCHOOL);
 		saveData(indexBaseMonthDataDao.getMusicData(month), month, IndexDataType.MUSIC_GROUP_NUM);
-		saveData(indexBaseMonthDataDao.getMusicStudentData(month, "ALL"), month, IndexDataType.MUSIC_GROUP_STUDENT);
+		saveData(indexBaseMonthDataDao.getMusicStudentData(month, null), month, IndexDataType.MUSIC_GROUP_STUDENT);
 		saveData(indexBaseMonthDataDao.getOtherStudentData(month), month, IndexDataType.OTHER_STUDENT);
 
 		//业务数据
@@ -172,7 +175,7 @@ public class IndexBaseMonthDataServiceImpl extends BaseServiceImpl<Long, IndexBa
 		saveData(indexBaseMonthDataDao.getTeacherData(month, null, true), month, IndexDataType.DIMISSION_NUM);
 
 		//学员变动
-		saveData(indexBaseMonthDataDao.getMusicStudentData(month, null), month, IndexDataType.NEWLY_STUDENT_NUM);
+		saveData(indexBaseMonthDataDao.getMusicStudentData(month, "ADD"), month, IndexDataType.NEWLY_STUDENT_NUM);
 		saveData(indexBaseMonthDataDao.getMusicStudentData(month, "QUIT"), month, IndexDataType.QUIT_MUSIC_GROUP_STUDENT_NUM);
 		saveData(indexBaseMonthDataDao.getMusicGroupPreRegistrationStudentData(month), month, IndexDataType.STUDENT_CONVERSION_PRE_STUDENT_NUM);
 		saveData(indexBaseMonthDataDao.getMusicGroupStudentFromPreData(month, null), month, IndexDataType.STUDENT_CONVERSION_STUDENT_NUM);
@@ -302,20 +305,51 @@ public class IndexBaseMonthDataServiceImpl extends BaseServiceImpl<Long, IndexBa
 	}
 
 	@Override
-	public List<IndexErrInfoDto> getIndexErrData(String organIdsStr) {
+	public Map<String, Object> getIndexErrData(String organIdsStr) {
 		Set<Integer> organIds = null;
 		if(StringUtils.isNotBlank(organIdsStr)){
 			organIds = Arrays.stream(organIdsStr.split(",")).map(Integer::new).collect(Collectors.toSet());
 		}
 
-		List<IndexErrInfoDto> result = new ArrayList<>();
+		List<IndexErrInfoDto> all = new ArrayList<>();
+
+		IndexErrInfoDto<IndexErrInfoDto> one = new IndexErrInfoDto<>();
+		one.setErrorType(IndexErrorType.MUSIC_PATROL);
+		one.setDesc(IndexErrorType.MUSIC_PATROL.getMsg());
+		List<IndexErrInfoDto> oneChild = new ArrayList<>();
+
+		oneChild.add(new IndexErrInfoDto(IndexErrorType.HIGH_CLASS_STUDENT_LESS_THAN_THREE, IndexErrorType.HIGH_CLASS_STUDENT_LESS_THAN_THREE.getMsg(), indexBaseMonthDataDao.countLessThenThreeClassGroupNum(organIds), indexBaseMonthDataDao.getLessThenThreeMusicGroup(organIds)));
+		one.setNum(oneChild.stream().mapToInt(IndexErrInfoDto::getNum).sum());
+		one.setResult(oneChild);
+		all.add(one);
+
+
+		IndexErrInfoDto<IndexErrInfoDto> two = new IndexErrInfoDto<>();
+		two.setErrorType(IndexErrorType.STUDENT_INFO);
+		two.setDesc(IndexErrorType.STUDENT_INFO.getMsg());
+		List<IndexErrInfoDto> twoChild = new ArrayList<>();
 
-		result.add(new IndexErrInfoDto(IndexErrorType.HIGH_CLASS_STUDENT_LESS_THAN_THREE, IndexErrorType.HIGH_CLASS_STUDENT_LESS_THAN_THREE.getMsg(), indexBaseMonthDataDao.countLessThenThreeClassGroupNum(organIds), indexBaseMonthDataDao.getLessThenThreeMusicGroup(organIds)));
+		twoChild.add(new IndexErrInfoDto(IndexErrorType.STUDENT_NOT_PAYMENT, IndexErrorType.STUDENT_NOT_PAYMENT.getMsg(), indexBaseMonthDataDao.countNoPaymentStudentNum(organIds), indexBaseMonthDataDao.getNoPaymentMusicGroup(organIds)));
+		twoChild.add(new IndexErrInfoDto(IndexErrorType.STUDENT_APPLY_FOR_QUIT_MUSIC_GROUP, IndexErrorType.STUDENT_APPLY_FOR_QUIT_MUSIC_GROUP.getMsg(), indexBaseMonthDataDao.countApplyForQuitGroupNum(organIds),  null));
+		twoChild.add(new IndexErrInfoDto(IndexErrorType.COURSE_TRUANT_STUDENT_NUM, IndexErrorType.COURSE_TRUANT_STUDENT_NUM.getMsg(), indexBaseMonthDataDao.countStudentAttendanceInfo(organIds, StudentAttendanceStatusEnum.TRUANT.getCode()), null));
+		twoChild.add(new IndexErrInfoDto(IndexErrorType.COURSE_LEAVE_STUDENT_NUM, IndexErrorType.COURSE_LEAVE_STUDENT_NUM.getMsg(), indexBaseMonthDataDao.countStudentAttendanceInfo(organIds, StudentAttendanceStatusEnum.LEAVE.getCode()), null));
+		two.setNum(twoChild.stream().mapToInt(IndexErrInfoDto::getNum).sum());
+		two.setResult(twoChild);
+		all.add(two);
 
-		result.add(new IndexErrInfoDto(IndexErrorType.STUDENT_NOT_PAYMENT, IndexErrorType.STUDENT_NOT_PAYMENT.getMsg(), indexBaseMonthDataDao.countNoPaymentStudentNum(organIds), indexBaseMonthDataDao.getNoPaymentMusicGroup(organIds)));
 
-		result.add(new IndexErrInfoDto(IndexErrorType.STUDENT_APPLY_FOR_QUIT_MUSIC_GROUP, IndexErrorType.STUDENT_APPLY_FOR_QUIT_MUSIC_GROUP.getMsg(), indexBaseMonthDataDao.countApplyForQuitGroupNum(organIds),  null));
+		IndexErrInfoDto<IndexErrInfoDto> three = new IndexErrInfoDto<>();
+		three.setErrorType(IndexErrorType.TEACHER_INFO);
+		three.setDesc(IndexErrorType.TEACHER_INFO.getMsg());
+		List<IndexErrInfoDto> threeChild = new ArrayList<>();
 
+		three.setNum(threeChild.stream().mapToInt(IndexErrInfoDto::getNum).sum());
+		three.setResult(threeChild);
+		all.add(three);
+
+		Map<String, Object> result = new HashMap<>();
+		result.put("totalNum", all.stream().mapToInt(IndexErrInfoDto::getNum).sum());
+		result.put("data", all);
 		return result;
 	}
 
@@ -327,8 +361,24 @@ public class IndexBaseMonthDataServiceImpl extends BaseServiceImpl<Long, IndexBa
 		}
 		//当前用户是否是分部经理
 		List<Integer> userRole = employeeDao.queryUserRole(sysUser.getId());
-		List<String> musicGroupIds = musicGroupDao.queryIdsByEduIdAndOrganIds(userRole.contains(3)?sysUser.getId():null,organIds);
 		//获取关联的乐团列表
-		return null;
+		List<String> musicGroupIds = musicGroupDao.queryIdsByEduIdAndOrganIds(userRole.contains(3)?sysUser.getId():null,organIds);
+		String configValue1 = sysConfigDao.findConfigValue("push_create_payment_calender");
+		Date date = new Date();
+		String format = DateUtil.format(date, DateUtil.DEFAULT_PATTERN);
+		List<IndexErrInfoDto> result = new ArrayList<>();
+		IndexErrInfoDto indexErrInfoDto = new IndexErrInfoDto();
+		indexErrInfoDto.setErrorType(WAIT_CREATE_PAYMENT_CALENDER);
+		indexErrInfoDto.setDesc(WAIT_CREATE_PAYMENT_CALENDER.getMsg());
+		if(musicGroupIds.size() > 0){
+			List<Long> calenderIds = musicGroupPaymentCalenderDao.queryEndIds(configValue1, format,musicGroupIds);
+			if(calenderIds.size() > 0){
+				List<String> musicGroupIdList = musicGroupPaymentCalenderDao.queryMusicGroupIds(calenderIds);
+				indexErrInfoDto.setResult(musicGroupIdList);
+			}
+			indexErrInfoDto.setNum(calenderIds.size());
+		}
+		result.add(indexErrInfoDto);
+		return result;
 	}
 }

+ 95 - 0
mec-biz/src/main/java/com/ym/mec/biz/service/impl/InspectionItemPlanConclusionServiceImpl.java

@@ -1,24 +1,119 @@
 package com.ym.mec.biz.service.impl;
 
+import com.ym.mec.biz.dal.dao.CourseScheduleDao;
+import com.ym.mec.biz.dal.dao.InspectionItemDao;
 import com.ym.mec.biz.dal.dao.InspectionItemPlanConclusionDao;
+import com.ym.mec.biz.dal.dao.InspectionItemPlanDao;
+import com.ym.mec.biz.dal.dto.InspectionItemPlanConclusionDto;
+import com.ym.mec.biz.dal.entity.CourseSchedule;
+import com.ym.mec.biz.dal.entity.InspectionItem;
+import com.ym.mec.biz.dal.entity.InspectionItemPlan;
 import com.ym.mec.common.dal.BaseDAO;
+import com.ym.mec.common.exception.BizException;
 import com.ym.mec.common.service.impl.BaseServiceImpl;
+import com.ym.mec.util.date.DateUtil;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.stereotype.Service;
 import com.ym.mec.biz.dal.entity.InspectionItemPlanConclusion;
 import com.ym.mec.biz.service.InspectionItemPlanConclusionService;
+import org.springframework.transaction.annotation.Transactional;
+
+import java.util.Date;
+import java.util.List;
+import java.util.Map;
+import java.util.stream.Collectors;
 
 @Service
 public class InspectionItemPlanConclusionServiceImpl extends BaseServiceImpl<Long, InspectionItemPlanConclusion> implements InspectionItemPlanConclusionService {
 
     @Autowired
     private InspectionItemPlanConclusionDao inspectionItemPlanConclusionDao;
+    @Autowired
+    private InspectionItemPlanDao inspectionItemPlanDao;
+    @Autowired
+    private InspectionItemDao inspectionItemDao;
+    @Autowired
+    private CourseScheduleDao courseScheduleDao;
 
     @Override
     public BaseDAO<Long, InspectionItemPlanConclusion> getDAO() {
         return inspectionItemPlanConclusionDao;
     }
 
+    @Override
+    @Transactional(rollbackFor = Exception.class)
+    public InspectionItemPlanConclusionDto add(InspectionItemPlanConclusionDto inspectionItemPlanConclusionDto) {
+        Date nowDate = new Date();
+        List<InspectionItemPlanConclusion> inspectionItemPlanConclusions = inspectionItemPlanConclusionDto.getInspectionItemPlanConclusions();
+        //删除老的
+        Long planId = inspectionItemPlanConclusions.get(0).getPlanId();
+        Integer checkItem = inspectionItemPlanConclusions.get(0).getCheckItem();
+        //时间早于/晚于计划时间当天,不能提交
+        InspectionItemPlan inspectionItemPlan = inspectionItemPlanDao.get(planId);
+        if (nowDate.before(DateUtil.trunc(inspectionItemPlan.getPlanStart()))) {
+            throw new BizException("提价时间不能早于日程安排当天");
+        }
+
+        if (nowDate.after(DateUtil.getLastTimeWithDay(inspectionItemPlan.getPlanStart()))) {
+            throw new BizException("提价时间不能晚于日程安排当天");
+        }
+
+        inspectionItemPlanConclusionDao.delByPlanIdAndCheckItem(planId, checkItem);
+        for (InspectionItemPlanConclusion inspectionItemPlanConclusion : inspectionItemPlanConclusions) {
+            inspectionItemPlanConclusion.setCreateTime(nowDate);
+            inspectionItemPlanConclusion.setUpdateTime(nowDate);
+        }
+        inspectionItemPlanConclusionDto.setInspectionItemPlanConclusions(inspectionItemPlanConclusions);
+        //插入新的
+        inspectionItemPlanConclusionDao.batchAdd(inspectionItemPlanConclusions);
+        //有状态信息,更新gps信息和提交状态
+        if (inspectionItemPlanConclusionDto.getStatus() == null) {
+            return inspectionItemPlanConclusionDto;
+        }
+
+        //未提交过,更新提交信息
+        if (inspectionItemPlan.getStatus().equals(0)) {
+            inspectionItemPlan.setSubmitedGps(inspectionItemPlanConclusionDto.getSubmitedGps());
+            inspectionItemPlan.setSubmitedTime(nowDate);
+            inspectionItemPlan.setStatus(inspectionItemPlanConclusionDto.getStatus());
+            inspectionItemPlan.setUpdateTime(nowDate);
+            inspectionItemPlanDao.update(inspectionItemPlan);
+            //更新提交次数
+            InspectionItem inspectionItem = inspectionItemDao.get(inspectionItemPlan.getItemId());
+            inspectionItem.setSubmittedTimes(inspectionItem.getSubmittedTimes() + 1);
+            inspectionItem.setUpdateTime(nowDate);
+            inspectionItemDao.update(inspectionItem);
+            return inspectionItemPlanConclusionDto;
+        }
+
+        //提交过,异常变正常,更新提交信息
+        if (inspectionItemPlanConclusionDto.getStatus().equals(1)) {
+            inspectionItemPlan.setSubmitedGps(inspectionItemPlanConclusionDto.getSubmitedGps());
+            inspectionItemPlan.setSubmitedTime(nowDate);
+            inspectionItemPlan.setStatus(inspectionItemPlanConclusionDto.getStatus());
+            inspectionItemPlan.setUpdateTime(nowDate);
+            inspectionItemPlanDao.update(inspectionItemPlan);
+        }
+        return inspectionItemPlanConclusionDto;
+    }
+
+    @Override
+    public Map<Integer, List<InspectionItemPlanConclusion>> getInfo(Long planId, Integer checkItem) {
+        List<InspectionItemPlanConclusion> conclusions = inspectionItemPlanConclusionDao.getInspectionItemPlanConclusion(planId, checkItem);
+        Map<Integer, List<InspectionItemPlanConclusion>> conclusionMap = conclusions.stream().collect(Collectors.groupingBy(InspectionItemPlanConclusion::getCheckItem));
+        return conclusionMap;
+    }
+
+    @Override
+    public List<CourseSchedule> getPlanCourses(Long planId) {
+        InspectionItemPlan plan = inspectionItemPlanDao.get(planId);
+        List<CourseSchedule> courseSchedules = inspectionItemPlanConclusionDao.getPlanConclusionCourses(planId);
+        if (courseSchedules.size() > 0) {
+            return courseSchedules;
+        }
+        courseSchedules = courseScheduleDao.getMusicGroupCourseInfo(plan.getMusicGroupId(), plan.getPlanStart(), plan.getPlanEnd());
+        return courseSchedules;
+    }
 }
 
 

+ 113 - 2
mec-biz/src/main/java/com/ym/mec/biz/service/impl/InspectionItemPlanServiceImpl.java

@@ -1,18 +1,39 @@
 package com.ym.mec.biz.service.impl;
 
+import com.ym.mec.biz.dal.dao.*;
+import com.ym.mec.biz.dal.dto.CheckItemDto;
+import com.ym.mec.biz.dal.entity.Inspection;
+import com.ym.mec.biz.dal.entity.InspectionItem;
+import com.ym.mec.biz.dal.entity.School;
+import com.ym.mec.biz.dal.page.InspectionItemPlanQueryInfo;
 import com.ym.mec.common.dal.BaseDAO;
+import com.ym.mec.common.exception.BizException;
+import com.ym.mec.common.page.PageInfo;
 import com.ym.mec.common.service.impl.BaseServiceImpl;
+import com.ym.mec.util.date.DateUtil;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.stereotype.Service;
-import com.ym.mec.biz.dal.dao.InspectionItemPlanDao;
 import com.ym.mec.biz.dal.entity.InspectionItemPlan;
 import com.ym.mec.biz.service.InspectionItemPlanService;
+import org.springframework.transaction.annotation.Transactional;
+
+import java.util.Date;
+import java.util.List;
+import java.util.stream.Collectors;
 
 @Service
-public class InspectionItemPlanServiceImpl extends BaseServiceImpl<Long,InspectionItemPlan> implements InspectionItemPlanService {
+public class InspectionItemPlanServiceImpl extends BaseServiceImpl<Long, InspectionItemPlan> implements InspectionItemPlanService {
 
     @Autowired
     private InspectionItemPlanDao inspectionItemPlanDao;
+    @Autowired
+    private InspectionItemDao inspectionItemDao;
+    @Autowired
+    private InspectionDao inspectionDao;
+    @Autowired
+    private MusicGroupDao musicGroupDao;
+    @Autowired
+    private InspectionItemPlanConclusionDao inspectionItemPlanConclusionDao;
 
     @Override
     public BaseDAO<Long, InspectionItemPlan> getDAO() {
@@ -20,7 +41,97 @@ public class InspectionItemPlanServiceImpl extends BaseServiceImpl<Long,Inspecti
     }
 
 
+    @Override
+    public PageInfo<InspectionItemPlan> getPageList(InspectionItemPlanQueryInfo queryInfo) {
+        PageInfo<InspectionItemPlan> pageInfo = this.queryPage(queryInfo);
+        if (pageInfo.getTotal() > 0) {
+            List<Long> planIds = pageInfo.getRows().stream().map(InspectionItemPlan::getId).collect(Collectors.toList());
+            List<CheckItemDto> lastCheckItems = inspectionItemPlanConclusionDao.getLastCheckItem(planIds);
+            for (InspectionItemPlan row : pageInfo.getRows()) {
+                for (CheckItemDto lastCheckItem : lastCheckItems) {
+                    if (!lastCheckItem.getPlanId().equals(row.getId())) continue;
+                    row.setLastCheckItem(lastCheckItem.getCheckItem());
+                }
+            }
+        }
+        return pageInfo;
+    }
+
+    @Override
+    @Transactional(rollbackFor = Exception.class)
+    public InspectionItemPlan add(InspectionItemPlan inspectionItemPlan) {
+        InspectionItem inspectionItem = inspectionItemDao.get(inspectionItemPlan.getItemId());
+        if (inspectionItem == null) {
+            throw new BizException("任务项不存在");
+        }
+        if (!inspectionItem.getUserId().equals(inspectionItemPlan.getUserId())) {
+            throw new BizException("请勿非法操作他人日程");
+        }
+        Date nowDate = new Date();
+        Inspection inspection = inspectionDao.get(inspectionItem.getInspectionId());
+        if (inspection.getMonth().after(inspectionItemPlan.getPlanStart())) {
+            throw new BizException("日程时间不能早于工作周期开始时间");
+        }
+        if (nowDate.after(inspectionItemPlan.getPlanStart())) {
+            throw new BizException("日程时间不能早于当前时间");
+        }
+        Date itemEndTime = DateUtil.getLastTimeWithDay(DateUtil.getLastDayOfMonth(inspection.getMonth()));
+        if (itemEndTime.before(inspectionItemPlan.getPlanEnd())) {
+            throw new BizException("日程时间不能晚于工作周期结束时间");
+        }
+        //获取乐团教学点的GPS信息
+        School school = musicGroupDao.getMusicGroupSchool(inspectionItemPlan.getMusicGroupId());
+
+        inspectionItemPlan.setInspectionId(inspectionItem.getInspectionId());
+        inspectionItemPlan.setSchoolGps(school.getLongitudeLatitude());
+        inspectionItemPlan.setSubmitedGps("");
+        inspectionItemPlan.setMemo("");
+        inspectionItemPlan.setStatus(0);
+        inspectionItemPlan.setCreateTime(nowDate);
+        inspectionItemPlan.setUpdateTime(nowDate);
+        inspectionItemPlanDao.insert(inspectionItemPlan);
+        inspectionItem.setPlannedTimes(inspectionItem.getPlannedTimes() + 1);
+        inspectionItemDao.update(inspectionItem);
+        return inspectionItemPlan;
+    }
 
+    @Override
+    public InspectionItemPlan updatePlan(InspectionItemPlan inspectionItemPlan) {
+        InspectionItemPlan oldPlan = inspectionItemPlanDao.get(inspectionItemPlan.getId());
+        if (oldPlan.getStatus() > 0) {
+            throw new BizException("日程已完成,不能修改");
+        }
+        InspectionItem inspectionItem = inspectionItemDao.get(inspectionItemPlan.getItemId());
+        if (inspectionItem == null) {
+            throw new BizException("任务项不存在");
+        }
+        if (!inspectionItem.getUserId().equals(inspectionItemPlan.getUserId())) {
+            throw new BizException("请勿非法操作他人日程");
+        }
+        Date nowDate = new Date();
+        Inspection inspection = inspectionDao.get(inspectionItem.getInspectionId());
+        if (inspection.getMonth().after(inspectionItemPlan.getPlanStart())) {
+            throw new BizException("日程时间不能早于工作周期开始时间");
+        }
+        if (nowDate.after(inspectionItemPlan.getPlanStart())) {
+            throw new BizException("日程时间不能早于当前时间");
+        }
+        Date itemEndTime = DateUtil.getLastTimeWithDay(DateUtil.getLastDayOfMonth(inspection.getMonth()));
+        if (itemEndTime.before(inspectionItemPlan.getPlanEnd())) {
+            throw new BizException("日程时间不能晚于工作周期结束时间");
+        }
+        //获取乐团教学点的GPS信息
+        School school = musicGroupDao.getMusicGroupSchool(inspectionItemPlan.getMusicGroupId());
+
+        inspectionItemPlan.setInspectionId(inspectionItem.getInspectionId());
+        inspectionItemPlan.setSchoolGps(school.getLongitudeLatitude());
+        inspectionItemPlan.setSubmitedGps("");
+        inspectionItemPlan.setMemo("");
+        inspectionItemPlan.setStatus(0);
+        inspectionItemPlan.setUpdateTime(nowDate);
+        inspectionItemPlanDao.update(inspectionItemPlan);
+        return inspectionItemPlan;
+    }
 }
 
 

+ 44 - 0
mec-biz/src/main/java/com/ym/mec/biz/service/impl/InspectionItemServiceImpl.java

@@ -1,24 +1,68 @@
 package com.ym.mec.biz.service.impl;
 
 import com.ym.mec.biz.dal.dao.InspectionItemDao;
+import com.ym.mec.biz.dal.dao.StudentVisitDao;
+import com.ym.mec.biz.dal.dto.TeacherVisitDto;
+import com.ym.mec.biz.dal.enums.InspectionItemEnum;
+import com.ym.mec.biz.dal.page.InspectionQueryInfo;
 import com.ym.mec.common.dal.BaseDAO;
+import com.ym.mec.common.page.PageInfo;
 import com.ym.mec.common.service.impl.BaseServiceImpl;
+import com.ym.mec.util.date.DateUtil;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.stereotype.Service;
 import com.ym.mec.biz.dal.entity.InspectionItem;
 import com.ym.mec.biz.service.InspectionItemService;
 
+import java.util.Date;
+import java.util.List;
+import java.util.Optional;
+import java.util.stream.Collectors;
+
 @Service
 public class InspectionItemServiceImpl extends BaseServiceImpl<Long, InspectionItem> implements InspectionItemService {
 
     @Autowired
     private InspectionItemDao inspectionItemDao;
+    @Autowired
+    private StudentVisitDao studentVisitDao;
 
     @Override
     public BaseDAO<Long, InspectionItem> getDAO() {
         return inspectionItemDao;
     }
 
+    @Override
+    public PageInfo<InspectionItem> getPageList(InspectionQueryInfo queryInfo) {
+        if (queryInfo.getMonth() != null) {
+            queryInfo.setStartTime(DateUtil.getFirstDayOfMonth(queryInfo.getMonth()));
+            queryInfo.setEndTime(DateUtil.getLastTimeWithDay(DateUtil.getLastDayOfMonth(queryInfo.getMonth())));
+        }
+        PageInfo<InspectionItem> pageInfo = this.queryPage(queryInfo);
+        if (pageInfo.getTotal() <= 0) {
+            return pageInfo;
+        }
+        List<InspectionItem> rows = pageInfo.getRows();
+        List<Integer> teacherIds = rows.stream().filter(e -> e.getItem().equals(InspectionItemEnum.VISIT)).map(InspectionItem::getUserId).collect(Collectors.toList());
+        if (teacherIds.size() > 0) {
+            Date startTime = rows.stream().map(InspectionItem::getMonth).min(Date::compareTo).get();
+            Date EndTime = rows.stream().map(InspectionItem::getMonth).max(Date::compareTo).get();
+            startTime = DateUtil.getFirstDayOfMonth(startTime);
+            EndTime = DateUtil.getLastTimeWithDay(DateUtil.getLastDayOfMonth(EndTime));
+            List<TeacherVisitDto> teacherVisitCounts = studentVisitDao.getTeacherVisitCount(teacherIds, startTime, EndTime);
+            for (InspectionItem row : rows) {
+                if (row.getItem().equals(InspectionItemEnum.INSPECT)) continue;
+                for (TeacherVisitDto teacherVisitCount : teacherVisitCounts) {
+                    if (teacherVisitCount.getTeacherId().equals(row.getUserId()) &&
+                            DateUtil.dateToString(row.getMonth(), "yyyy-MM").equals(teacherVisitCount.getMonth())
+                    ) {
+                        row.setSubmittedTimes(teacherVisitCount.getNum());
+                    }
+                }
+            }
+        }
+        return pageInfo;
+    }
 }
 
 

+ 139 - 1
mec-biz/src/main/java/com/ym/mec/biz/service/impl/InspectionServiceImpl.java

@@ -1,24 +1,162 @@
 package com.ym.mec.biz.service.impl;
 
+import com.ym.mec.biz.dal.dao.InspectionItemDao;
+import com.ym.mec.biz.dal.entity.InspectionItem;
+import com.ym.mec.biz.dal.page.InspectionQueryInfo;
 import com.ym.mec.common.dal.BaseDAO;
+import com.ym.mec.common.exception.BizException;
+import com.ym.mec.common.page.PageInfo;
 import com.ym.mec.common.service.impl.BaseServiceImpl;
+import com.ym.mec.util.date.DateUtil;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.stereotype.Service;
 import com.ym.mec.biz.dal.entity.Inspection;
 import com.ym.mec.biz.dal.dao.InspectionDao;
 import com.ym.mec.biz.service.InspectionService;
+import org.springframework.transaction.annotation.Transactional;
+
+import java.util.ArrayList;
+import java.util.Date;
+import java.util.List;
+import java.util.stream.Collectors;
+import java.util.stream.Stream;
 
 @Service
-public class InspectionServiceImpl extends BaseServiceImpl<Long,Inspection> implements InspectionService {
+public class InspectionServiceImpl extends BaseServiceImpl<Long, Inspection> implements InspectionService {
 
     @Autowired
     private InspectionDao inspectionDao;
+    @Autowired
+    private InspectionItemDao inspectionItemDao;
 
     @Override
     public BaseDAO<Long, Inspection> getDAO() {
         return inspectionDao;
     }
 
+    @Override
+    public PageInfo<Inspection> getPageList(InspectionQueryInfo queryInfo) {
+        if (queryInfo.getMonth() != null) {
+            queryInfo.setStartTime(DateUtil.getFirstDayOfMonth(queryInfo.getMonth()));
+            queryInfo.setEndTime(DateUtil.getLastTimeWithDay(DateUtil.getLastDayOfMonth(queryInfo.getMonth())));
+        }
+        PageInfo<Inspection> pageInfo = this.queryPage(queryInfo);
+        if (pageInfo.getTotal() > 0) {
+            List<Inspection> rows = pageInfo.getRows();
+            List<Long> inspectionIds = rows.stream().map(Inspection::getId).collect(Collectors.toList());
+            List<InspectionItem> itemCountAndTimes = inspectionItemDao.getItemCountAndTimes(inspectionIds);
+            for (Inspection row : rows) {
+                for (InspectionItem itemCountAndTime : itemCountAndTimes) {
+                    if (!row.getId().equals(itemCountAndTime.getInspectionId())) continue;
+                    row.setItemNum(itemCountAndTime.getPlannedTimes());
+                    row.setTimes(itemCountAndTime.getTimes());
+                }
+            }
+        }
+        return pageInfo;
+    }
+
+    @Override
+    @Transactional(rollbackFor = Exception.class)
+    public List<Inspection> add(List<Inspection> inspections, Integer operationUserId) {
+        Date nowDate = new Date();
+        for (Inspection inspection : inspections) {
+            inspection.setOperation(operationUserId);
+            inspection.setCreateTime(nowDate);
+            inspection.setUpdateTime(nowDate);
+            inspectionDao.insert(inspection);
+            for (InspectionItem inspectionItem : inspection.getInspectionItems()) {
+                inspectionItem.setInspectionId(inspection.getId());
+                inspectionItem.setOrganId(inspection.getOrganId());
+                inspectionItem.setUserId(inspection.getUserId());
+                inspectionItem.setOperation(operationUserId);
+                inspectionItem.setCreateTime(nowDate);
+                inspectionItem.setUpdateTime(nowDate);
+            }
+            inspectionItemDao.batchInsert(inspection.getInspectionItems());
+        }
+        return inspections;
+    }
+
+    @Override
+    public Inspection getInfo(Long id) {
+        return inspectionDao.getInfo(id);
+    }
+
+    @Override
+    @Transactional(rollbackFor = Exception.class)
+    public Inspection updateInspection(Inspection inspection, Integer operationUserId) {
+        if (inspection.getInspectionItems() == null || inspection.getInspectionItems().size() <= 0) {
+            throw new BizException("任务事项不能为空");
+        }
+        Date nowDate = new Date();
+        Inspection oldInspection = inspectionDao.get(inspection.getId());
+        if (oldInspection == null) {
+            throw new BizException("巡查任务不存在,请核查");
+        }
+        oldInspection.setUpdateTime(nowDate);
+        inspectionDao.update(oldInspection);
+
+        List<InspectionItem> updateItems = inspection.getInspectionItems().stream().filter(e -> e.getId() != null).collect(Collectors.toList());
+        List<InspectionItem> addItems = inspection.getInspectionItems().stream().filter(e -> e.getId() == null).collect(Collectors.toList());
+
+        List<InspectionItem> delItems = new ArrayList<>();
+        List<InspectionItem> oldItems = inspectionItemDao.getItemByInspectionId(inspection.getId());
+        for (InspectionItem oldItem : oldItems) {
+            boolean isUpdate = false;
+            for (InspectionItem updateItem : updateItems) {
+                if (!oldItem.getId().equals(updateItem.getId())) continue;
+                isUpdate = true;
+            }
+            if (!isUpdate) {
+                if (oldItem.getPlannedTimes() > 0) {
+                    throw new BizException(oldItem.getItem() + "已有日程安排不能删除");
+                }
+                delItems.add(oldItem);
+            }
+        }
+        //增加新的
+        for (InspectionItem addItem : addItems) {
+            addItem.setInspectionId(oldInspection.getId());
+            addItem.setOrganId(oldInspection.getOrganId());
+            addItem.setUserId(oldInspection.getUserId());
+            addItem.setOperation(operationUserId);
+            addItem.setCreateTime(nowDate);
+            addItem.setUpdateTime(nowDate);
+        }
+        //插入新的
+        if (addItems.size() > 0) {
+            inspectionItemDao.batchInsert(addItems);
+        }
+        //删除
+        if (delItems.size() > 0) {
+            List<Long> itemIds = delItems.stream().map(InspectionItem::getId).collect(Collectors.toList());
+            inspectionItemDao.deleteByIds(itemIds);
+        }
+        //修改现有的
+        if (updateItems.size() > 0) {
+            for (InspectionItem updateItem : updateItems) {
+                updateItem.setUpdateTime(nowDate);
+                updateItem.setOperation(operationUserId);
+            }
+            inspectionItemDao.batchUpdate(updateItems);
+        }
+        return inspection;
+    }
+
+    @Override
+    @Transactional(rollbackFor = Exception.class)
+    public Boolean delInspections(Long id) {
+        List<InspectionItem> items = inspectionItemDao.getItemByInspectionId(id);
+        for (InspectionItem item : items) {
+            if (item.getPlannedTimes() > 0) {
+                throw new BizException(item.getItem() + "已有日程安排不能删除");
+            }
+        }
+        inspectionDao.delete(id);
+        inspectionItemDao.deleteByInspectionId(id);
+        return true;
+    }
 }
 
 

+ 1 - 1
mec-biz/src/main/java/com/ym/mec/biz/service/impl/MusicGroupPaymentCalenderServiceImpl.java

@@ -911,7 +911,7 @@ public class MusicGroupPaymentCalenderServiceImpl extends BaseServiceImpl<Long,
 		}
 		// 获取离截止还有指定时间的缴费项,并发送推送消息给指定老师
 		String configValue1 = sysConfigDao.findConfigValue("push_create_payment_calender");
-		List<Long> calenderIds = musicGroupPaymentCalenderDao.queryEndIds(configValue1, format);
+		List<Long> calenderIds = musicGroupPaymentCalenderDao.queryEndIds(configValue1, format,null);
 		if (calenderIds != null && calenderIds.size() > 0) {
 			List<CalenderPushDto> calenderPushDtos = musicGroupPaymentCalenderDao.getCalenderPushDto(calenderIds);
 			Map<Long, List<CalenderPushDto>> collect = calenderPushDtos.stream().collect(Collectors.groupingBy(CalenderPushDto::getCalenderId));

+ 1 - 1
mec-biz/src/main/java/com/ym/mec/biz/service/impl/MusicGroupServiceImpl.java

@@ -2530,7 +2530,7 @@ public class MusicGroupServiceImpl extends BaseServiceImpl<String, MusicGroup> i
         userRoleMap.put(directorUserId, "乐队指导");
         userRoleMap.put(educationalTeacherId, "乐团主管");
         userRoleMap.put(teamTeacherId, "运营主管");
-        
+
         classGroups.forEach(e -> {
         	imGroupMemberService.quit(e.getId().longValue(), quitUserIdList);
         	imGroupMemberService.join(e.getId().longValue(), userRoleMap);

+ 11 - 0
mec-biz/src/main/resources/config/mybatis/CourseScheduleMapper.xml

@@ -3511,4 +3511,15 @@
     <select id="getUnderwayCourseNum" resultType="int">
         SELECT COUNT(*) FROM course_schedule WHERE music_group_id_ = #{musicGroupId} AND group_type_ = #{groupType} AND status_=#{status}
     </select>
+
+    <select id="getMusicGroupCourseInfo" resultMap="CourseSchedule"><![CDATA[
+        SELECT cs.id_, cs.actual_teacher_id_,CONCAT(cg.name_,'-',su.real_name_) name_  FROM course_schedule cs
+        LEFT JOIN class_group cg ON cg.id_ = cs.class_group_id_
+        LEFT JOIN sys_user su ON su.id_=cs.actual_teacher_id_
+        WHERE cs.music_group_id_ = #{musicGroupId}
+            AND CONCAT(cs.class_date_,' ',cs.start_class_time_) >= #{startTime}
+            AND CONCAT(cs.class_date_,' ',cs.end_class_time_) <= #{endTime}
+            AND cs.group_type_ = 'MUSIC'
+            AND cs.teach_mode_ = 'OFFLINE'
+    ]]></select>
 </mapper>

+ 40 - 10
mec-biz/src/main/resources/config/mybatis/IndexBaseMonthDataMapper.xml

@@ -240,12 +240,17 @@
 		WHERE
 			mg.del_flag_ = 0
 		  	AND mg.organ_id_ IS NOT NULL
+			AND mg.status_ = 'PROGRESS'
 			<if test="type==null">
-				AND mg.status_ = 'PROGRESS'
 				AND sr.music_group_status_='NORMAL'
 			</if>
 			<if test="type!=null and type=='QUIT'">
 				AND sr.music_group_status_='QUIT'
+				AND DATE_FORMAT(sr.create_time_, '%Y-%m') &gt;= CONCAT(DATE_FORMAT(NOW(), '%Y'), '-01')
+			</if>
+			<if test="type!=null and type=='ADD'">
+				AND sr.music_group_status_='NORMAL'
+				AND DATE_FORMAT(sr.create_time_, '%Y-%m') &gt;= CONCAT(DATE_FORMAT(NOW(), '%Y'), '-01')
 			</if>
 			<if test="month!=null and month!=''">
 				AND DATE_FORMAT(sr.create_time_, '%Y-%m') &lt;= #{month}
@@ -295,8 +300,9 @@
 			course_schedule m
 		WHERE
 			m.del_flag_ = 0
-			AND m.is_lock_ = 0
+			AND (m.is_lock_ = 0 OR m.is_lock_ IS NULL)
 		  	AND m.status_ = 'OVER'
+			AND (m.new_course_id_ IS NULL OR m.new_course_id_=m.id_)
 			AND m.organ_id_ IS NOT NULL
 			<if test="groupType!=null">
 				AND m.group_type_ = #{groupType,typeHandler=com.ym.mec.common.dal.CustomEnumTypeHandler}
@@ -312,26 +318,27 @@
 
 	<select id="getOtherStudentData" resultMap="IndexBaseMonthData">
 		SELECT
-			m.organ_id_,
+			su.organ_id_,
 			CONCAT(#{month}, '-01') month_,
 			COUNT( DISTINCT s.user_id_ ) total_num_,
 			COUNT( DISTINCT s.user_id_ ) activate_num_,
 			COUNT( DISTINCT s.user_id_ ) percent_
 		FROM
-			course_schedule_student_payment s
+		    sys_user su
+			LEFT JOIN course_schedule_student_payment s ON su.id_=s.user_id_
 			LEFT JOIN course_schedule m ON s.course_schedule_id_=m.id_
 		WHERE
 			m.del_flag_ = 0
 			AND (m.is_lock_ = 0 OR m.is_lock_ IS NULL)
-			AND m.organ_id_ IS NOT NULL
+			AND su.organ_id_ IS NOT NULL
 			AND m.group_type_ IN ('VIP', 'PRACTICE')
 			<if test="month!=null and month!=''">
 				AND (DATE_FORMAT(m.create_time_, '%Y-%m') &lt;= #{month} OR YEAR(m.create_time_)=3000)
 			</if>
 		GROUP BY
-			m.organ_id_
+			su.organ_id_
 		ORDER BY
-			m.organ_id_;
+			su.organ_id_;
 	</select>
 
 	<select id="getStudentConversionData" resultMap="IndexBaseMonthData">
@@ -424,7 +431,7 @@
 	</select>
 
 	<select id="countLessThenThreeClassGroupNum" resultType="int">
-		SELECT COUNT(*) FROM (
+		SELECT COUNT(t.id_) FROM (
 			SELECT
 			DISTINCT cg.id_
 			FROM
@@ -445,7 +452,7 @@
 			cg.id_
 			HAVING
 			COUNT( DISTINCT cgsm.user_id_ )&lt;3
-		)
+		) t
 	</select>
 
     <select id="getLessThenThreeMusicGroup" resultType="java.lang.String">
@@ -473,7 +480,7 @@
 
 	<select id="countNoPaymentStudentNum" resultType="int">
 		SELECT
-			DISTINCT mgpcd.user_id_
+			COUNT(DISTINCT mgpcd.user_id_)
 		FROM
 		music_group_payment_calender_detail mgpcd
 		LEFT JOIN music_group_payment_calender mgpc ON mgpcd.music_group_payment_calender_id_ = mgpc.id_
@@ -521,4 +528,27 @@
 			</foreach>
 		</if>
 	</select>
+
+	<select id="countStudentAttendanceInfo" resultType="java.lang.Integer">
+		SELECT
+			COUNT( DISTINCT cssp.user_id_ )
+		FROM
+			course_schedule_student_payment cssp
+			LEFT JOIN course_schedule cs ON cssp.course_schedule_id_ = cs.id_
+			LEFT JOIN student_attendance sa ON sa.course_schedule_id_ = cssp.course_schedule_id_ AND sa.user_id_ = cssp.user_id_
+			LEFT JOIN student_visit sv ON cssp.id_=sv.object_id_
+		WHERE
+			<if test="type!=null and type=='LEAVE'">
+				(sa.status_ = 'LEAVE' AND sa.remark_ IS NOT NULL AND sv.id_ IS NULL)
+			</if>
+			<if test="type!=null and type=='TRUANT'">
+				(sa.status_ = 'TRUANT' OR sa.id_ IS NULL)
+			</if>
+			<if test="organIds!=null and organIds.size()>0">
+				AND cs.organ_id_ IN
+				<foreach collection="organIds" item="organId" open="(" close=")" separator=",">
+					#{organId}
+				</foreach>
+			</if>
+	</select>
 </mapper>

+ 181 - 80
mec-biz/src/main/resources/config/mybatis/InspectionItemMapper.xml

@@ -1,84 +1,185 @@
 <?xml version="1.0" encoding="UTF-8"?>
 <!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
 <mapper namespace="com.ym.mec.biz.dal.dao.InspectionItemDao">
-  <resultMap id="InspectionItem" type="com.ym.mec.biz.dal.entity.InspectionItem">
-    <!--@mbg.generated-->
-    <!--@Table inspection_item-->
-    <id column="id_" property="id" />
-    <result column="inspection_id_" property="inspectionId" />
-    <result column="organ_id_" property="organId" />
-    <result column="user_id_" property="userId" />
-    <result column="item_" property="item" />
-    <result column="times_" property="times" />
-    <result column="planned_times_" property="plannedTimes" />
-    <result column="submitted_times" property="submittedTimes" />
-    <result column="memo_" property="memo" />
-    <result column="operation_" property="operation" />
-    <result column="create_time_" property="createTime" />
-    <result column="update_time_" property="updateTime" />
-  </resultMap>
-  <sql id="Base_Column_List">
-    <!--@mbg.generated-->
-    id_, inspection_id_, organ_id_, user_id_, item_, times_, planned_times_, submitted_times, 
-    memo_, operation_, create_time_, update_time_
-  </sql>
-  <select id="get" parameterType="java.lang.Long" resultMap="InspectionItem">
-    <!--@mbg.generated-->
-    select 
-    <include refid="Base_Column_List" />
-    from inspection_item
-    where id_ = #{id}
-  </select>
-  <delete id="delete" parameterType="java.lang.Long">
-    <!--@mbg.generated-->
-    delete from inspection_item
-    where id_ = #{id}
-  </delete>
-  <insert id="insert" keyColumn="id_" keyProperty="id" parameterType="com.ym.mec.biz.dal.entity.InspectionItem" useGeneratedKeys="true">
-    <!--@mbg.generated-->
-    insert into inspection_item (inspection_id_, organ_id_, user_id_, item_, times_, planned_times_, 
-      submitted_times, memo_, operation_, create_time_, update_time_)
-    values (#{inspectionId}, #{organId}, #{userId}, #{item}, #{times}, #{plannedTimes}, 
-      #{submittedTimes}, #{memo}, #{operation}, #{createTime}, #{updateTime})
-  </insert>
-  <update id="update" parameterType="com.ym.mec.biz.dal.entity.InspectionItem">
-    <!--@mbg.generated-->
-    update inspection_item
-    <set>
-      <if test="inspectionId != null">
-        inspection_id_ = #{inspectionId},
-      </if>
-      <if test="organId != null">
-        organ_id_ = #{organId},
-      </if>
-      <if test="userId != null">
-        user_id_ = #{userId},
-      </if>
-      <if test="item != null">
-        item_ = #{item},
-      </if>
-      <if test="times != null">
-        times_ = #{times},
-      </if>
-      <if test="plannedTimes != null">
-        planned_times_ = #{plannedTimes},
-      </if>
-      <if test="submittedTimes != null">
-        submitted_times = #{submittedTimes},
-      </if>
-      <if test="memo != null">
-        memo_ = #{memo},
-      </if>
-      <if test="operation != null">
-        operation_ = #{operation},
-      </if>
-      <if test="createTime != null">
-        create_time_ = #{createTime},
-      </if>
-      <if test="updateTime != null">
-        update_time_ = #{updateTime},
-      </if>
-    </set>
-    where id_ = #{id}
-  </update>
+    <resultMap id="InspectionItem" type="com.ym.mec.biz.dal.entity.InspectionItem">
+        <!--@mbg.generated-->
+        <!--@Table inspection_item-->
+        <id column="id_" property="id"/>
+        <result column="inspection_id_" property="inspectionId"/>
+        <result column="organ_id_" property="organId"/>
+        <result column="user_id_" property="userId"/>
+        <result column="item_" property="item" typeHandler="com.ym.mec.common.dal.CustomEnumTypeHandler"/>
+        <result column="times_" property="times"/>
+        <result column="planned_times_" property="plannedTimes"/>
+        <result column="submitted_times" property="submittedTimes"/>
+        <result column="memo_" property="memo"/>
+        <result column="operation_" property="operation"/>
+        <result column="create_time_" property="createTime"/>
+        <result column="update_time_" property="updateTime"/>
+        <result column="month" property="month"/>
+        <result column="organName" property="organName"/>
+        <result column="userName" property="userName"/>
+    </resultMap>
+    <sql id="Base_Column_List">
+        <!--@mbg.generated-->
+        id_, inspection_id_, organ_id_, user_id_, item_, times_, planned_times_, submitted_times,
+        memo_, operation_, create_time_, update_time_
+    </sql>
+    <select id="get" parameterType="java.lang.Long" resultMap="InspectionItem">
+        <!--@mbg.generated-->
+        select
+        <include refid="Base_Column_List"/>
+        from inspection_item
+        where id_ = #{id}
+    </select>
+    <delete id="delete" parameterType="java.lang.Long">
+        <!--@mbg.generated-->
+        delete from inspection_item
+        where id_ = #{id}
+    </delete>
+    <insert id="insert" keyColumn="id_" keyProperty="id" parameterType="com.ym.mec.biz.dal.entity.InspectionItem"
+            useGeneratedKeys="true">
+        <!--@mbg.generated-->
+        insert into inspection_item (inspection_id_, organ_id_, user_id_, item_, times_, planned_times_,
+        submitted_times, memo_, operation_, create_time_, update_time_)
+        values (#{inspectionId}, #{organId}, #{userId}, #{item,typeHandler=com.ym.mec.common.dal.CustomEnumTypeHandler},
+        #{times}, #{plannedTimes},
+        #{submittedTimes}, #{memo}, #{operation}, #{createTime}, #{updateTime})
+    </insert>
+    <update id="update" parameterType="com.ym.mec.biz.dal.entity.InspectionItem">
+        <!--@mbg.generated-->
+        update inspection_item
+        <set>
+            <if test="inspectionId != null">
+                inspection_id_ = #{inspectionId},
+            </if>
+            <if test="organId != null">
+                organ_id_ = #{organId},
+            </if>
+            <if test="userId != null">
+                user_id_ = #{userId},
+            </if>
+            <if test="item != null">
+                item_ = #{item,typeHandler=com.ym.mec.common.dal.CustomEnumTypeHandler},
+            </if>
+            <if test="times != null">
+                times_ = #{times},
+            </if>
+            <if test="plannedTimes != null">
+                planned_times_ = #{plannedTimes},
+            </if>
+            <if test="submittedTimes != null">
+                submitted_times = #{submittedTimes},
+            </if>
+            <if test="memo != null">
+                memo_ = #{memo},
+            </if>
+            <if test="operation != null">
+                operation_ = #{operation},
+            </if>
+            <if test="createTime != null">
+                create_time_ = #{createTime},
+            </if>
+            <if test="updateTime != null">
+                update_time_ = #{updateTime},
+            </if>
+        </set>
+        where id_ = #{id}
+    </update>
+    <!-- 获取任务项数目及总次数 -->
+    <select id="getItemCountAndTimes" resultMap="InspectionItem">
+        SELECT inspection_id_ ,IFNULL(COUNT(*),0) planned_times_,SUM(times_) times_ FROM inspection_item
+        WHERE inspection_id_ IN
+        <foreach collection="inspectionIds" item="inspectionId" open="(" close=")" separator=",">
+            #{inspectionId}
+        </foreach>
+        GROUP BY inspection_id_
+    </select>
+
+    <insert id="batchInsert" keyColumn="id_" keyProperty="id" parameterType="com.ym.mec.biz.dal.entity.InspectionItem"
+            useGeneratedKeys="true">
+        INSERT INTO inspection_item (inspection_id_, organ_id_, user_id_, item_, times_,operation_, create_time_,
+        update_time_)
+        VALUE
+        <foreach collection="inspectionItems" item="inspectionItem" separator=",">
+            (#{inspectionItem.inspectionId}, #{inspectionItem.organId}, #{inspectionItem.userId},
+            #{inspectionItem.item,typeHandler=com.ym.mec.common.dal.CustomEnumTypeHandler}, #{inspectionItem.times},
+            #{inspectionItem.operation},
+            #{inspectionItem.createTime}, #{inspectionItem.updateTime})
+        </foreach>
+    </insert>
+
+    <select id="getItemByInspectionId" resultMap="InspectionItem">
+        SELECT *
+        FROM inspection_item
+        WHERE inspection_id_ = #{inspectionId}
+    </select>
+
+    <delete id="deleteByIds">
+        DELETE FROM inspection_item WHERE id_ IN
+        <foreach collection="ids" item="id" open="(" close=")" separator=",">
+            #{id}
+        </foreach>
+    </delete>
+
+    <!-- 批量更新任务次数 -->
+    <update id="batchUpdate">
+        <foreach collection="inspectionItems" item="inspectionItem" index="index" open="" close="" separator=";">
+            update inspection_item
+            <set>
+                <if test="inspectionItem.times != null">
+                    times_ = #{inspectionItem.times},
+                </if>
+                <if test="inspectionItem.operation != null">
+                    operation_ = #{inspectionItem.operation},
+                </if>
+                <if test="inspectionItem.updateTime != null">
+                    update_time_ = #{inspectionItem.updateTime}
+                </if>
+            </set>
+            where id_ = #{inspectionItem.id}
+        </foreach>
+    </update>
+    <delete id="deleteByInspectionId">
+        DELETE FROM inspection_item
+        WHERE inspection_id_ = #{InspectionId}
+    </delete>
+
+    <!-- 分页查询 -->
+    <select id="queryPage" resultMap="InspectionItem" parameterType="map">
+        SELECT ii.*,i.month_ month,o.name_ organName,su.real_name_ userName FROM inspection_item ii
+        LEFT JOIN inspection i ON i.id_ = ii.inspection_id_
+        LEFT JOIN organization o ON o.id_=ii.organ_id_
+        LEFT JOIN sys_user su ON su.id_ = ii.user_id_
+        <include refid="queryPageSql"/>
+        ORDER BY ii.id_
+        <include refid="global.limit"/>
+    </select>
+
+    <!-- 查询当前表的总记录数 -->
+    <select id="queryCount" resultType="int">
+        SELECT COUNT(*) FROM inspection_item ii
+        LEFT JOIN inspection i ON i.id_ = ii.inspection_id_
+        <include refid="queryPageSql"/>
+    </select>
+
+    <sql id="queryPageSql">
+        <where>
+            <if test="organId != null">
+                AND FIND_IN_SET(ii.organ_id_,#{organId})
+            </if>
+            <if test="userId != null">
+                AND ii.user_id_ = #{userId}
+            </if>
+            <if test="operation != null">
+                AND ii.operation_ = #{operation}
+            </if>
+            <if test="startTime != null">
+                AND i.month_ >= #{startTime}
+            </if>
+            <if test="endTime != null">
+                <![CDATA[AND i.month_ <= #{endTime}]]>
+            </if>
+        </where>
+    </sql>
 </mapper>

+ 107 - 118
mec-biz/src/main/resources/config/mybatis/InspectionItemPlanConclusionMapper.xml

@@ -1,122 +1,111 @@
 <?xml version="1.0" encoding="UTF-8"?>
 <!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
 <mapper namespace="com.ym.mec.biz.dal.dao.InspectionItemPlanConclusionDao">
-  <resultMap id="BaseResultMap" type="com.ym.mec.biz.dal.entity.InspectionItemPlanConclusion">
-    <!--@mbg.generated-->
-    <!--@Table inspection_item_plan_conclusion-->
-    <id column="id_" property="id" />
-    <result column="plan_id_" property="planId" />
-    <result column="teacher_id_" property="teacherId" />
-    <result column="check item1" property="checkItem1" />
-    <result column="check item2" property="checkItem2" />
-    <result column="check item3" property="checkItem3" />
-    <result column="check item4" property="checkItem4" />
-    <result column="check item5" property="checkItem5" />
-    <result column="check item6" property="checkItem6" />
-    <result column="check item7" property="checkItem7" />
-    <result column="check item8" property="checkItem8" />
-    <result column="check item9" property="checkItem9" />
-    <result column="check item10" property="checkItem10" />
-    <result column="check item11" property="checkItem11" />
-    <result column="check item12" property="checkItem12" />
-    <result column="check item13" property="checkItem13" />
-    <result column="check item14" property="checkItem14" />
-    <result column="check item15" property="checkItem15" />
-    <result column="create_time_" property="createTime" />
-    <result column="update_time_" property="updateTime" />
-  </resultMap>
-  <sql id="Base_Column_List">
-    <!--@mbg.generated-->
-    id_, plan_id_, teacher_id_, `check item1`, `check item2`, `check item3`, `check item4`, 
-    `check item5`, `check item6`, `check item7`, `check item8`, `check item9`, `check item10`, 
-    `check item11`, `check item12`, `check item13`, `check item14`, `check item15`, create_time_, 
-    update_time_
-  </sql>
-  <select id="get" parameterType="java.lang.Integer" resultMap="BaseResultMap">
-    <!--@mbg.generated-->
-    select 
-    <include refid="Base_Column_List" />
-    from inspection_item_plan_conclusion
-    where id_ = #{id}
-  </select>
-  <delete id="delete" parameterType="java.lang.Integer">
-    <!--@mbg.generated-->
-    delete from inspection_item_plan_conclusion
-    where id_ = #{id}
-  </delete>
-  <insert id="insert" keyColumn="id_" keyProperty="id" parameterType="com.ym.mec.biz.dal.entity.InspectionItemPlanConclusion" useGeneratedKeys="true">
-    <!--@mbg.generated-->
-    insert into inspection_item_plan_conclusion (plan_id_, teacher_id_, `check item1`, `check item2`, `check item3`, `check item4`, 
-      `check item5`, `check item6`, `check item7`, `check item8`, `check item9`, `check item10`, 
-      `check item11`, `check item12`, `check item13`, `check item14`, `check item15`, 
-      create_time_, update_time_)
-    values (#{planId}, #{teacherId}, #{checkItem1}, #{checkItem2}, #{checkItem3}, #{checkItem4}, 
-      #{checkItem5}, #{checkItem6}, #{checkItem7}, #{checkItem8}, #{checkItem9}, #{checkItem10}, 
-      #{checkItem11}, #{checkItem12}, #{checkItem13}, #{checkItem14}, #{checkItem15}, 
-      #{createTime}, #{updateTime})
-  </insert>
-  <update id="update" parameterType="com.ym.mec.biz.dal.entity.InspectionItemPlanConclusion">
-    <!--@mbg.generated-->
-    update inspection_item_plan_conclusion
-    <set>
-      <if test="planId != null">
-        plan_id_ = #{planId},
-      </if>
-      <if test="teacherId != null">
-        teacher_id_ = #{teacherId},
-      </if>
-      <if test="checkItem1 != null">
-        `check item1` = #{checkItem1},
-      </if>
-      <if test="checkItem2 != null">
-        `check item2` = #{checkItem2},
-      </if>
-      <if test="checkItem3 != null">
-        `check item3` = #{checkItem3},
-      </if>
-      <if test="checkItem4 != null">
-        `check item4` = #{checkItem4},
-      </if>
-      <if test="checkItem5 != null">
-        `check item5` = #{checkItem5},
-      </if>
-      <if test="checkItem6 != null">
-        `check item6` = #{checkItem6},
-      </if>
-      <if test="checkItem7 != null">
-        `check item7` = #{checkItem7},
-      </if>
-      <if test="checkItem8 != null">
-        `check item8` = #{checkItem8},
-      </if>
-      <if test="checkItem9 != null">
-        `check item9` = #{checkItem9},
-      </if>
-      <if test="checkItem10 != null">
-        `check item10` = #{checkItem10},
-      </if>
-      <if test="checkItem11 != null">
-        `check item11` = #{checkItem11},
-      </if>
-      <if test="checkItem12 != null">
-        `check item12` = #{checkItem12},
-      </if>
-      <if test="checkItem13 != null">
-        `check item13` = #{checkItem13},
-      </if>
-      <if test="checkItem14 != null">
-        `check item14` = #{checkItem14},
-      </if>
-      <if test="checkItem15 != null">
-        `check item15` = #{checkItem15},
-      </if>
-      <if test="createTime != null">
-        create_time_ = #{createTime},
-      </if>
-      <if test="updateTime != null">
-        update_time_ = #{updateTime},
-      </if>
-    </set>
-    where id_ = #{id}
-  </update>
+    <resultMap id="BaseResultMap" type="com.ym.mec.biz.dal.entity.InspectionItemPlanConclusion">
+        <!--@mbg.generated-->
+        <!--@Table inspection_item_plan_conclusion-->
+        <id column="id_" property="id"/>
+        <result column="plan_id_" property="planId"/>
+        <result column="course_schedule_id_" property="courseScheduleId"/>
+        <result column="teacher_id_" property="teacherId"/>
+        <result column="check_item_" property="checkItem"/>
+        <result column="check_conclusion_" property="checkConclusion"/>
+        <result column="create_time_" property="createTime"/>
+        <result column="update_time_" property="updateTime"/>
+    </resultMap>
+    <sql id="Base_Column_List">
+        <!--@mbg.generated-->
+        id_, plan_id_,course_schedule_id_, teacher_id_, check_item_, check_conclusion_, create_time_, update_time_
+    </sql>
+    <select id="get" parameterType="java.lang.Integer" resultMap="BaseResultMap">
+        <!--@mbg.generated-->
+        select
+        <include refid="Base_Column_List"/>
+        from inspection_item_plan_conclusion
+        where id_ = #{id}
+    </select>
+    <delete id="delete" parameterType="java.lang.Integer">
+        <!--@mbg.generated-->
+        delete from inspection_item_plan_conclusion
+        where id_ = #{id}
+    </delete>
+    <insert id="insert" keyColumn="id_" keyProperty="id"
+            parameterType="com.ym.mec.biz.dal.entity.InspectionItemPlanConclusion" useGeneratedKeys="true">
+        <!--@mbg.generated-->
+        insert into inspection_item_plan_conclusion (plan_id_,course_schedule_id_, teacher_id_,check_item_,
+        check_conclusion_, create_time_,update_time_)
+        values (#{planId}, #{courseScheduleId},#{teacherId}, #{checkItem}, #{checkConclusion},#{createTime},
+        #{updateTime})
+    </insert>
+    <update id="update" parameterType="com.ym.mec.biz.dal.entity.InspectionItemPlanConclusion">
+        <!--@mbg.generated-->
+        update inspection_item_plan_conclusion
+        <set>
+            <if test="planId != null">
+                plan_id_ = #{planId},
+            </if>
+            <if test="courseScheduleId != null != null">
+                course_schedule_id_ = #{courseScheduleId},
+            </if>
+            <if test="teacherId != null">
+                teacher_id_ = #{teacherId},
+            </if>
+            <if test="checkItem != null">
+                check_item_ = #{checkItem},
+            </if>
+            <if test="checkConclusion != null">
+                check_conclusion_ = #{checkConclusion},
+            </if>
+            <if test="createTime != null">
+                create_time_ = #{createTime},
+            </if>
+            <if test="updateTime != null">
+                update_time_ = #{updateTime},
+            </if>
+        </set>
+        where id_ = #{id}
+    </update>
+    <delete id="delByPlanIdAndCheckItem">
+        DELETE
+        FROM inspection_item_plan_conclusion
+        WHERE plan_id_ = #{planId}
+          ANd check_item_ = #{checkItem}
+    </delete>
+    <insert id="batchAdd" keyColumn="id_" keyProperty="id"
+            parameterType="com.ym.mec.biz.dal.entity.InspectionItemPlanConclusion"
+            useGeneratedKeys="true">
+        INSERT INTO inspection_item_plan_conclusion (plan_id_,course_schedule_id_, teacher_id_, check_item_,
+        check_conclusion_,create_time_,update_time_)
+        VALUE
+        <foreach collection="inspectionItemPlanConclusions" item="inspectionItemPlanConclusion" separator=",">
+            (#{inspectionItemPlanConclusion.planId},#{inspectionItemPlanConclusion.courseScheduleId},
+            #{inspectionItemPlanConclusion.teacherId},
+            #{inspectionItemPlanConclusion.checkItem},
+            #{inspectionItemPlanConclusion.checkConclusion}, #{inspectionItemPlanConclusion.createTime},
+            #{inspectionItemPlanConclusion.updateTime})
+        </foreach>
+    </insert>
+
+    <select id="getLastCheckItem" resultType="com.ym.mec.biz.dal.dto.CheckItemDto">
+        SELECT plan_id_ planId,MAX(check_item_) checkItem FROM inspection_item_plan_conclusion WHERE plan_id_ IN
+        <foreach collection="planIds" item="planId" open="(" close=")" separator=",">
+            #{planId}
+        </foreach>
+        GROUP BY plan_id_
+    </select>
+
+    <select id="getInspectionItemPlanConclusion" resultMap="BaseResultMap">
+        SELECT * FROM inspection_item_plan_conclusion WHERE plan_id_=#{planId}
+        <if test="checkItem != null">
+            AND check_item_ = #{checkItem}
+        </if>
+    </select>
+
+    <select id="getPlanConclusionCourses" resultMap="com.ym.mec.biz.dal.dao.CourseScheduleDao.CourseSchedule">
+        SELECT iipc.course_schedule_id_ id_, iipc.teacher_id_ actual_teacher_id_,CONCAT(cg.name_,'-',su.real_name_) name_ FROM inspection_item_plan_conclusion iipc
+        LEFT JOIN course_schedule cs ON iipc.course_schedule_id_ = cs.id_
+        LEFT JOIN class_group cg ON cg.id_=cs.class_group_id_
+        LEFT JOIN sys_user su on iipc.teacher_id_ = su.id_
+        WHERE plan_id_ = #{planId} GROUP BY iipc.course_schedule_id_,iipc.teacher_id_
+    </select>
 </mapper>

+ 142 - 95
mec-biz/src/main/resources/config/mybatis/InspectionItemPlanMapper.xml

@@ -1,99 +1,146 @@
 <?xml version="1.0" encoding="UTF-8"?>
 <!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
 <mapper namespace="com.ym.mec.biz.dal.dao.InspectionItemPlanDao">
-  <resultMap id="InspectionItemPlan" type="com.ym.mec.biz.dal.entity.InspectionItemPlan">
-    <!--@mbg.generated-->
-    <!--@Table inspection_item_plan-->
-    <id column="id_" property="id" />
-    <result column="inspection_id_" property="inspectionId" />
-    <result column="item_id_" property="itemId" />
-    <result column="user_id_" property="userId" />
-    <result column="plan_start_" property="planStart" />
-    <result column="plan_end_" property="planEnd" />
-    <result column="cooperation_organ_id_" property="cooperationOrganId" />
-    <result column="music_group_id_" property="musicGroupId" />
-    <result column="school_gps_" property="schoolGps" />
-    <result column="submited_gps_" property="submitedGps" />
-    <result column="submited_time_" property="submitedTime" />
-    <result column="memo_" property="memo" />
-    <result column="status_" property="status" />
-    <result column="create_time_" property="createTime" />
-    <result column="update_time_" property="updateTime" />
-  </resultMap>
-  <sql id="Base_Column_List">
-    <!--@mbg.generated-->
-    id_, inspection_id_, item_id_, user_id_, plan_start_, plan_end_, cooperation_organ_id_, 
-    music_group_id_, school_gps_, submited_gps_, submited_time_, memo_, status_, create_time_, 
-    update_time_
-  </sql>
-  <select id="get" parameterType="java.lang.Integer" resultMap="InspectionItemPlan">
-    <!--@mbg.generated-->
-    select 
-    <include refid="Base_Column_List" />
-    from inspection_item_plan
-    where id_ = #{id}
-  </select>
-  <delete id="delete" parameterType="java.lang.Integer">
-    <!--@mbg.generated-->
-    delete from inspection_item_plan
-    where id_ = #{id}
-  </delete>
-  <insert id="insert" keyColumn="id_" keyProperty="id" parameterType="com.ym.mec.biz.dal.entity.InspectionItemPlan" useGeneratedKeys="true">
-    <!--@mbg.generated-->
-    insert into inspection_item_plan (inspection_id_, item_id_, user_id_, plan_start_, plan_end_, cooperation_organ_id_, 
-      music_group_id_, school_gps_, submited_gps_, submited_time_, memo_, status_, 
-      create_time_, update_time_)
-    values (#{inspectionId}, #{itemId}, #{userId}, #{planStart}, #{planEnd}, #{cooperationOrganId}, 
-      #{musicGroupId}, #{schoolGps}, #{submitedGps}, #{submitedTime}, #{memo}, #{status}, 
-      #{createTime}, #{updateTime})
-  </insert>
-  <update id="update" parameterType="com.ym.mec.biz.dal.entity.InspectionItemPlan">
-    <!--@mbg.generated-->
-    update inspection_item_plan
-    <set>
-      <if test="inspectionId != null">
-        inspection_id_ = #{inspectionId},
-      </if>
-      <if test="itemId != null">
-        item_id_ = #{itemId},
-      </if>
-      <if test="userId != null">
-        user_id_ = #{userId},
-      </if>
-      <if test="planStart != null">
-        plan_start_ = #{planStart},
-      </if>
-      <if test="planEnd != null">
-        plan_end_ = #{planEnd},
-      </if>
-      <if test="cooperationOrganId != null">
-        cooperation_organ_id_ = #{cooperationOrganId},
-      </if>
-      <if test="musicGroupId != null">
-        music_group_id_ = #{musicGroupId},
-      </if>
-      <if test="schoolGps != null">
-        school_gps_ = #{schoolGps},
-      </if>
-      <if test="submitedGps != null">
-        submited_gps_ = #{submitedGps},
-      </if>
-      <if test="submitedTime != null">
-        submited_time_ = #{submitedTime},
-      </if>
-      <if test="memo != null">
-        memo_ = #{memo},
-      </if>
-      <if test="status != null">
-        status_ = #{status},
-      </if>
-      <if test="createTime != null">
-        create_time_ = #{createTime},
-      </if>
-      <if test="updateTime != null">
-        update_time_ = #{updateTime},
-      </if>
-    </set>
-    where id_ = #{id}
-  </update>
+    <resultMap id="InspectionItemPlan" type="com.ym.mec.biz.dal.entity.InspectionItemPlan">
+        <!--@mbg.generated-->
+        <!--@Table inspection_item_plan-->
+        <id column="id_" property="id"/>
+        <result column="inspection_id_" property="inspectionId"/>
+        <result column="item_id_" property="itemId"/>
+        <result column="user_id_" property="userId"/>
+        <result column="plan_start_" property="planStart"/>
+        <result column="plan_end_" property="planEnd"/>
+        <result column="cooperation_organ_id_" property="cooperationOrganId"/>
+        <result column="music_group_id_" property="musicGroupId"/>
+        <result column="school_gps_" property="schoolGps"/>
+        <result column="submited_gps_" property="submitedGps"/>
+        <result column="submited_time_" property="submitedTime"/>
+        <result column="memo_" property="memo"/>
+        <result column="status_" property="status"/>
+        <result column="create_time_" property="createTime"/>
+        <result column="update_time_" property="updateTime"/>
+        <result column="cooperationName" property="cooperationName"/>
+        <result column="musicGroupName" property="musicGroupName"/>
+    </resultMap>
+    <sql id="Base_Column_List">
+        <!--@mbg.generated-->
+        id_, inspection_id_, item_id_, user_id_, plan_start_, plan_end_, cooperation_organ_id_,
+        music_group_id_, school_gps_, submited_gps_, submited_time_, memo_, status_, create_time_,
+        update_time_
+    </sql>
+    <select id="get" parameterType="java.lang.Integer" resultMap="InspectionItemPlan">
+        <!--@mbg.generated-->
+        select
+        <include refid="Base_Column_List"/>
+        from inspection_item_plan
+        where id_ = #{id}
+    </select>
+    <delete id="delete" parameterType="java.lang.Integer">
+        <!--@mbg.generated-->
+        delete from inspection_item_plan
+        where id_ = #{id}
+    </delete>
+    <insert id="insert" keyColumn="id_" keyProperty="id" parameterType="com.ym.mec.biz.dal.entity.InspectionItemPlan"
+            useGeneratedKeys="true">
+        <!--@mbg.generated-->
+        insert into inspection_item_plan (inspection_id_, item_id_, user_id_, plan_start_, plan_end_,
+        cooperation_organ_id_,
+        music_group_id_, school_gps_, submited_gps_, submited_time_, memo_, status_,
+        create_time_, update_time_)
+        values (#{inspectionId}, #{itemId}, #{userId}, #{planStart}, #{planEnd}, #{cooperationOrganId},
+        #{musicGroupId}, #{schoolGps}, #{submitedGps}, #{submitedTime}, #{memo}, #{status},
+        #{createTime}, #{updateTime})
+    </insert>
+    <update id="update" parameterType="com.ym.mec.biz.dal.entity.InspectionItemPlan">
+        <!--@mbg.generated-->
+        update inspection_item_plan
+        <set>
+            <if test="inspectionId != null">
+                inspection_id_ = #{inspectionId},
+            </if>
+            <if test="itemId != null">
+                item_id_ = #{itemId},
+            </if>
+            <if test="userId != null">
+                user_id_ = #{userId},
+            </if>
+            <if test="planStart != null">
+                plan_start_ = #{planStart},
+            </if>
+            <if test="planEnd != null">
+                plan_end_ = #{planEnd},
+            </if>
+            <if test="cooperationOrganId != null">
+                cooperation_organ_id_ = #{cooperationOrganId},
+            </if>
+            <if test="musicGroupId != null">
+                music_group_id_ = #{musicGroupId},
+            </if>
+            <if test="schoolGps != null">
+                school_gps_ = #{schoolGps},
+            </if>
+            <if test="submitedGps != null">
+                submited_gps_ = #{submitedGps},
+            </if>
+            <if test="submitedTime != null">
+                submited_time_ = #{submitedTime},
+            </if>
+            <if test="memo != null">
+                memo_ = #{memo},
+            </if>
+            <if test="status != null">
+                status_ = #{status},
+            </if>
+            <if test="createTime != null">
+                create_time_ = #{createTime},
+            </if>
+            <if test="updateTime != null">
+                update_time_ = #{updateTime},
+            </if>
+        </set>
+        where id_ = #{id}
+    </update>
+
+    <!-- 分页查询 -->
+    <select id="queryPage" resultMap="InspectionItemPlan" parameterType="map">
+        SELECT iip.*,co.name_ cooperationName,mg.name_ musicGroupName FROM inspection_item_plan iip
+        LEFT JOIN cooperation_organ co ON co.id_=iip.cooperation_organ_id_
+        LEFT JOIN music_group mg ON mg.id_ = iip.music_group_id_
+        <include refid="queryPageSql"/>
+        ORDER BY iip.plan_start_ ASC
+        <include refid="global.limit"/>
+    </select>
+
+    <!-- 查询当前表的总记录数 -->
+    <select id="queryCount" resultType="int">
+        SELECT COUNT(*) FROM inspection_item_plan iip
+        LEFT JOIN music_group mg ON mg.id_ = iip.music_group_id_
+        <include refid="queryPageSql"/>
+    </select>
+
+    <sql id="queryPageSql">
+        <where>
+            <if test="itemId != null">
+                AND iip.item_id_ = #{itemId}
+            </if>
+            <if test="userId != null">
+                AND iip.user_id_ = #{userId}
+            </if>
+            <if test='hasSubmit != null and hasSubmit.toString()=="1".toString()'>
+                AND iip.status_ > 0
+            </if>
+            <if test='hasSubmit != null and hasSubmit.toString()=="0".toString()'>
+                AND iip.status_ = 0
+            </if>
+            <if test="startTime != null">
+                AND iip.plan_start_ >= #{startTime}
+            </if>
+            <if test="endTime != null">
+                <![CDATA[AND iip.plan_start_ <= #{endTime}]]>
+            </if>
+            <if test="search != null">
+                AND mg.name LIKE CONCAT('%', #{search}, '%')
+            </if>
+        </where>
+    </sql>
 </mapper>

+ 108 - 71
mec-biz/src/main/resources/config/mybatis/InspectionMapper.xml

@@ -1,77 +1,114 @@
 <?xml version="1.0" encoding="UTF-8"?>
 <!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
 <mapper namespace="com.ym.mec.biz.dal.dao.InspectionDao">
-  <resultMap id="Inspection" type="com.ym.mec.biz.dal.entity.Inspection">
-    <!--@mbg.generated-->
-    <!--@Table inspection-->
-    <id column="id_" property="id" />
-    <result column="organ_id_" property="organId" />
-    <result column="user_id_" property="userId" />
-    <result column="month_" property="month" />
-    <result column="memo_" property="memo" />
-    <result column="operation_" property="operation" />
-    <result column="create_time_" property="createTime" />
-    <result column="update_time_" property="updateTime" />
-  </resultMap>
-  <sql id="Base_Column_List">
-    <!--@mbg.generated-->
-    id_, organ_id_, user_id_, month_, memo_, operation_, create_time_, update_time_
-  </sql>
-  <select id="get" parameterType="java.lang.Long" resultMap="Inspection">
-    <!--@mbg.generated-->
-    select 
-    <include refid="Base_Column_List" />
-    from inspection
-    where id_ = #{id}
-  </select>
-  <delete id="delete" parameterType="java.lang.Long">
-    <!--@mbg.generated-->
-    delete from inspection
-    where id_ = #{id}
-  </delete>
-  <insert id="insert" keyColumn="id_" keyProperty="id" parameterType="com.ym.mec.biz.dal.entity.Inspection" useGeneratedKeys="true">
-    <!--@mbg.generated-->
-    insert into inspection (organ_id_, user_id_, month_, memo_, operation_, create_time_, update_time_
-      )
-    values (#{organId}, #{userId}, #{month}, #{memo}, #{operation}, #{createTime}, #{updateTime}
-      )
-  </insert>
-  <update id="update" parameterType="com.ym.mec.biz.dal.entity.Inspection">
-    <!--@mbg.generated-->
-    update inspection
-    <set>
-      <if test="organId != null">
-        organ_id_ = #{organId},
-      </if>
-      <if test="userId != null">
-        user_id_ = #{userId},
-      </if>
-      <if test="month != null">
-        month_ = #{month},
-      </if>
-      <if test="memo != null">
-        memo_ = #{memo},
-      </if>
-      <if test="operation != null">
-        operation_ = #{operation},
-      </if>
-      <if test="createTime != null">
-        create_time_ = #{createTime},
-      </if>
-      <if test="updateTime != null">
-        update_time_ = #{updateTime},
-      </if>
-    </set>
-    where id_ = #{id}
-  </update>
+    <resultMap id="Inspection" type="com.ym.mec.biz.dal.entity.Inspection">
+        <!--@mbg.generated-->
+        <!--@Table inspection-->
+        <id column="id_" property="id"/>
+        <result column="organ_id_" property="organId"/>
+        <result column="user_id_" property="userId"/>
+        <result column="month_" property="month"/>
+        <result column="memo_" property="memo"/>
+        <result column="operation_" property="operation"/>
+        <result column="create_time_" property="createTime"/>
+        <result column="update_time_" property="updateTime"/>
+        <result column="organName" property="organName"/>
+        <result column="userName" property="userName"/>
+        <collection property="inspectionItems" ofType="com.ym.mec.biz.dal.entity.InspectionItem" resultMap="com.ym.mec.biz.dal.dao.InspectionItemDao.InspectionItem"/>
+    </resultMap>
+    <sql id="Base_Column_List">
+        <!--@mbg.generated-->
+        id_, organ_id_, user_id_, month_, memo_, operation_, create_time_, update_time_
+    </sql>
+    <select id="get" parameterType="java.lang.Long" resultMap="Inspection">
+        <!--@mbg.generated-->
+        select
+        <include refid="Base_Column_List"/>
+        from inspection
+        where id_ = #{id}
+    </select>
+    <delete id="delete" parameterType="java.lang.Long">
+        <!--@mbg.generated-->
+        delete from inspection
+        where id_ = #{id}
+    </delete>
+    <insert id="insert" keyColumn="id_" keyProperty="id" parameterType="com.ym.mec.biz.dal.entity.Inspection"
+            useGeneratedKeys="true">
+        <!--@mbg.generated-->
+        insert into inspection (organ_id_, user_id_, month_, operation_, create_time_, update_time_
+        )
+        values (#{organId}, #{userId}, #{month}, #{operation}, #{createTime}, #{updateTime}
+        )
+    </insert>
+    <update id="update" parameterType="com.ym.mec.biz.dal.entity.Inspection">
+        <!--@mbg.generated-->
+        update inspection
+        <set>
+            <if test="organId != null">
+                organ_id_ = #{organId},
+            </if>
+            <if test="userId != null">
+                user_id_ = #{userId},
+            </if>
+            <if test="month != null">
+                month_ = #{month},
+            </if>
+            <if test="memo != null">
+                memo_ = #{memo},
+            </if>
+            <if test="operation != null">
+                operation_ = #{operation},
+            </if>
+            <if test="createTime != null">
+                create_time_ = #{createTime},
+            </if>
+            <if test="updateTime != null">
+                update_time_ = #{updateTime},
+            </if>
+        </set>
+        where id_ = #{id}
+    </update>
 
-  <!-- 分页查询 -->
-  <select id="queryPage" resultMap="Inspection" parameterType="map">
-    SELECT * FROM inspection ORDER BY id_ <include refid="global.limit"/>
-  </select>
+    <!-- 分页查询 -->
+    <select id="queryPage" resultMap="Inspection" parameterType="map">
+        SELECT i.*,o.name_ organName,su.real_name_ userName FROM inspection i
+        LEFT JOIN organization o ON o.id_=i.organ_id_
+        LEFT JOIN sys_user su ON su.id_ = i.user_id_
+        <include refid="queryPageSql"/>
+        ORDER BY i.id_
+        <include refid="global.limit"/>
+    </select>
 
-  <!-- 查询当前表的总记录数 -->
-  <select id="queryCount" resultType="int">
-    SELECT COUNT(*) FROM inspection
-  </select>
+    <!-- 查询当前表的总记录数 -->
+    <select id="queryCount" resultType="int">
+        SELECT COUNT(*) FROM inspection i
+        <include refid="queryPageSql"/>
+    </select>
+
+    <sql id="queryPageSql">
+        <where>
+            <if test="organId != null">
+                AND FIND_IN_SET(i.organ_id_,#{organId})
+            </if>
+            <if test="userId != null">
+                AND i.user_id_ = #{userId}
+            </if>
+            <if test="operation != null">
+                AND i.operation_ = #{operation}
+            </if>
+            <if test="startTime != null">
+                AND i.month_ >= #{startTime}
+            </if>
+            <if test="endTime != null">
+                <![CDATA[AND i.month_ <= #{endTime}]]>
+            </if>
+        </where>
+    </sql>
+    <select id="getInfo" resultMap="Inspection">
+        SELECT i.*,ii.*, o.name_ organName,su.real_name_ userName FROM inspection i
+        LEFT JOIN organization o ON o.id_ = i.organ_id_
+        LEFT JOIN sys_user su ON su.id_ = i.user_id_
+        LEFT JOIN inspection_item ii ON ii.inspection_id_ = i.id_
+        WHERE i.id_ = #{id}
+    </select>
 </mapper>

+ 14 - 1
mec-biz/src/main/resources/config/mybatis/MusicGroupMapper.xml

@@ -631,6 +631,19 @@
 		WHERE cg.id_ = #{classGroupId} LIMIT 1
     </select>
     <select id="queryIdsByEduIdAndOrganIds" resultType="java.lang.String">
-        SELECT * FROM music_group
+        SELECT DISTINCT id_ FROM music_group
+        <where>
+            <if test="educationId != null">
+                AND educational_teacher_id_ = #{educationId}
+            </if>
+            <if test="organIds != null and organIds != ''">
+                AND FIND_IN_SET(organ_id_,#{organIds})
+            </if>
+        </where>
+    </select>
+    <select id="getMusicGroupSchool" resultMap="com.ym.mec.biz.dal.dao.SchoolDao.School">
+        SELECT s.* FROM music_group mg
+        LEFT JOIN school s ON s.id_=mg.school_id_
+        WHERE mg.id_ = #{id}
     </select>
 </mapper>

+ 15 - 1
mec-biz/src/main/resources/config/mybatis/MusicGroupPaymentCalenderMapper.xml

@@ -348,7 +348,14 @@
     </select>
     <select id="queryEndIds" resultType="java.lang.Long">
         SELECT DISTINCT mgpc.id_ FROM music_group_payment_calender mgpc
-        WHERE mgpc.payment_valid_end_date_ IS NOT NULL AND DATEDIFF(mgpc.payment_valid_end_date_,#{format}) = #{configValue} AND mgpc.payment_type_ IN ('MUSIC_APPLY','MUSIC_RENEW')
+        WHERE mgpc.payment_valid_end_date_ IS NOT NULL AND DATEDIFF(mgpc.payment_valid_end_date_,#{format}) = #{configValue}
+        AND mgpc.payment_type_ IN ('MUSIC_APPLY','MUSIC_RENEW')
+        <if test="musicGroupIds != null">
+            AND mgpc.music_group_id_ IN
+            <foreach collection="musicGroupIds" open="(" close=")" item="item" separator=",">
+                #{item}
+            </foreach>
+        </if>
     </select>
     <resultMap id="CalenderPushDto" type="com.ym.mec.biz.dal.dto.CalenderPushDto">
         <result property="paymentValidEndDate" column="payment_valid_end_date_"/>
@@ -562,4 +569,11 @@
     <select id="getSchoolCalender" resultMap="MusicGroupPaymentCalender">
         SELECT * FROM music_group_payment_calender WHERE id_ = #{calenderId} AND status_ IN ('NO', 'OPEN', 'OVER', 'PAID');
     </select>
+    <select id="queryMusicGroupIds" resultType="java.lang.String">
+        SELECT music_group_id_ FROM music_group_payment_calender
+        WHERE id_ IN
+        <foreach collection="calenderIds" item="calenderId" open="(" close=")" separator=",">
+            #{calenderId}
+        </foreach>
+    </select>
 </mapper>

+ 12 - 0
mec-biz/src/main/resources/config/mybatis/StudentVisitMapper.xml

@@ -181,4 +181,16 @@
             #{studentId}
         </foreach>
     </select>
+    <select id="getTeacherVisitCount" resultType="com.ym.mec.biz.dal.dto.TeacherVisitDto">
+        SELECT teacher_id_ teacherId,date_format(visit_time_, '%Y-%m') month, COUNT(*) num
+        FROM student_visit
+        WHERE teacher_id_ IN
+        <foreach collection="teacherIds" item="teacherId" open="(" close=")" separator=",">
+            #{teacherId}
+        </foreach>
+        AND visit_time_ >= #{startTime}
+        <![CDATA[AND visit_time_ <= #{endTime}
+        ]]>
+        GROUP BY teacher_id_,date_format(visit_time_, '%Y-%m')
+    </select>
 </mapper>

+ 2 - 0
mec-biz/src/main/resources/config/mybatis/VipGroupActivityMapper.xml

@@ -193,6 +193,7 @@
 		<result column="vip_group_category_id_list_" property="vipGroupCategoryIdList" />
 		<result column="open_flag_" property="openFlag" typeHandler="com.ym.mec.common.dal.CustomEnumTypeHandler"/>
 		<result column="time_" property="time" />
+		<result column="course_time_" property="courseTime" />
 		<result column="type_" property="type" />
 		<result column="dis_count_" property="disCount" />
 		<result column="online_salary_type_" property="onlineSalaryType" />
@@ -204,6 +205,7 @@
 	<select id="exportVipGroupActivity" resultMap="exportVipGroupActivityMap">
 		SELECT GROUP_CONCAT(distinct o.`name_`) organ_name_,vga.id_ , vga.`name_`,vga.`description_`,GROUP_CONCAT(distinct vgc.`name_`) vip_group_category_id_list_ ,
 		((NOW() &lt; vga.end_time_ AND NOW() > vga.start_time_) OR vga.end_time_ IS NULL) open_flag_,concat(vga.`start_time_`,' - ',vga.`end_time_` ) time_,
+		concat(vga.courses_start_time_,' - ',vga.courses_end_time_) course_time_,
 		case when vga.`type_` = 'BASE_ACTIVITY' then '基础活动' when vga.`type_` = 'DISCOUNT' then '折扣' else '赠送课时' end type_ ,
 		case when vga.`type_` = 'DISCOUNT' then concat(vga.`attribute1_`,'%')  end dis_count_ ,
 		case when JSON_EXTRACT(vga.`salary_settlement_json_`,'$.onlineSalarySettlement.salarySettlementType') = 'RATIO_DISCOUNT' then '课程单价比例折扣'

+ 2 - 2
mec-web/src/main/java/com/ym/mec/web/controller/ExportController.java

@@ -163,10 +163,10 @@ public class ExportController extends BaseController {
         OutputStream outputStream = response.getOutputStream();
         try {
             HSSFWorkbook workbook = POIUtil.exportExcel(new String[]{"分部名称", "活动编号", "活动名称", "活动内容", "适用课程类型",
-                    "启用状态", "活动持续时间", "活动类型", "活动折扣", "线上课结算类型", "线上课结算公式",
+                    "启用状态", "活动持续时间", "课程安排时间", "活动类型", "活动折扣", "线上课结算类型", "线上课结算公式",
                     "线下课结算类型", "线下课结算公式"}, new String[]{
                     "organName", "id", "name", "description", "vipGroupCategoryIdList",
-                    "openFlag.msg", "time", "type", "disCount", "onlineSalaryType", "onlineSalarySettlement", "offlineSalaryType", "offlineSalarySettlement"}, rows);
+                    "openFlag.msg", "time", "courseTime", "type", "disCount", "onlineSalaryType", "onlineSalarySettlement", "offlineSalaryType", "offlineSalarySettlement"}, rows);
             response.setContentType("application/octet-stream");
             response.setHeader("Content-Disposition", "attac:wq" +
                     "hment;filename=vipGroupActivity-" + DateUtil.getDate(new Date()) + ".xls");

+ 22 - 0
mec-web/src/main/java/com/ym/mec/web/controller/IndexController.java

@@ -158,4 +158,26 @@ public class IndexController extends BaseController {
 		}
 		return succeed(indexService.getIndexErrData(organIds));
 	}
+
+	@GetMapping("/getRemindMatterData")
+	public HttpResponseResult getRemindMatterData(String organIds){
+		SysUser sysUser = sysUserFeignService.queryUserInfo();
+		if (sysUser == null) {
+			return failed("用户信息获取失败");
+		}
+		if (!sysUser.getIsSuperAdmin()) {
+			Employee employee = employeeService.get(sysUser.getId());
+			if (StringUtils.isBlank(organIds)) {
+				organIds = employee.getOrganIdList();
+			}else if(StringUtils.isEmpty(employee.getOrganIdList())){
+				return failed("用户所在分部异常");
+			}else {
+				List<String> list = Arrays.asList(employee.getOrganIdList().split(","));
+				if(!list.containsAll(Arrays.asList(organIds.split(",")))){
+					return failed("非法请求");
+				}
+			}
+		}
+		return succeed(indexService.getRemindMatterData(organIds));
+	}
 }

+ 95 - 0
mec-web/src/main/java/com/ym/mec/web/controller/InspectionController.java

@@ -0,0 +1,95 @@
+package com.ym.mec.web.controller;
+
+import com.ym.mec.auth.api.client.SysUserFeignService;
+import com.ym.mec.auth.api.entity.SysUser;
+import com.ym.mec.biz.dal.dao.EmployeeDao;
+import com.ym.mec.biz.dal.entity.Employee;
+import com.ym.mec.biz.dal.entity.Inspection;
+import com.ym.mec.biz.dal.page.InspectionQueryInfo;
+import com.ym.mec.biz.service.InspectionService;
+import com.ym.mec.common.controller.BaseController;
+import com.ym.mec.common.entity.HttpResponseResult;
+import com.ym.mec.common.page.PageInfo;
+import io.swagger.annotations.Api;
+import io.swagger.annotations.ApiOperation;
+import org.apache.commons.lang3.StringUtils;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.security.access.prepost.PreAuthorize;
+import org.springframework.web.bind.annotation.*;
+
+import javax.annotation.Resource;
+import java.util.Arrays;
+import java.util.List;
+
+@Api(tags = "巡查任务")
+@RequestMapping("inspection")
+@RestController
+public class InspectionController extends BaseController {
+    @Autowired
+    private InspectionService inspectionService;
+    @Autowired
+    private EmployeeDao employeeDao;
+    @Resource
+    private SysUserFeignService sysUserFeignService;
+
+    @ApiOperation(value = "添加巡查任务")
+    @PostMapping("/add")
+    @PreAuthorize("@pcs.hasPermissions('inspection/add')")
+    public HttpResponseResult<List<Inspection>> add(@RequestBody List<Inspection> inspections) {
+        SysUser sysUser = sysUserFeignService.queryUserInfo();
+        if (sysUser == null) {
+            return failed("用户信息获取失败");
+        }
+        return succeed(inspectionService.add(inspections, sysUser.getId()));
+    }
+
+    @ApiOperation(value = "删除巡查任务")
+    @PostMapping("/delete")
+    @PreAuthorize("@pcs.hasPermissions('inspection/delete')")
+    public HttpResponseResult<Boolean> delete(Long id) {
+        return succeed(inspectionService.delInspections(id));
+    }
+
+    @ApiOperation(value = "修改巡查任务")
+    @PostMapping("/update")
+    @PreAuthorize("@pcs.hasPermissions('inspection/update')")
+    public HttpResponseResult<Inspection> update(@RequestBody Inspection inspection) {
+        SysUser sysUser = sysUserFeignService.queryUserInfo();
+        if (sysUser == null) {
+            return failed("用户信息获取失败");
+        }
+        return succeed(inspectionService.updateInspection(inspection, sysUser.getId()));
+    }
+
+    @ApiOperation(value = "巡查任务列表")
+    @GetMapping("/queryPage")
+    @PreAuthorize("@pcs.hasPermissions('inspection/queryPage')")
+    public HttpResponseResult<PageInfo<Inspection>> queryPage(InspectionQueryInfo queryInfo) {
+        SysUser sysUser = sysUserFeignService.queryUserInfo();
+        if (sysUser == null) {
+            return failed("用户信息获取失败");
+        }
+        if (!sysUser.getIsSuperAdmin()) {
+            Employee employee = employeeDao.get(sysUser.getId());
+            if (StringUtils.isEmpty(queryInfo.getOrganId())) {
+                queryInfo.setOrganId(employee.getOrganIdList());
+            } else if (StringUtils.isEmpty(employee.getOrganIdList())) {
+                return failed("用户所在分部异常");
+            } else {
+                List<String> list = Arrays.asList(employee.getOrganIdList().split(","));
+                if (!list.containsAll(Arrays.asList(queryInfo.getOrganId().split(",")))) {
+                    return failed("非法请求");
+                }
+            }
+        }
+        return succeed(inspectionService.getPageList(queryInfo));
+    }
+
+    @ApiOperation(value = "查看巡查任务详情")
+    @GetMapping("/getInfo")
+    @PreAuthorize("@pcs.hasPermissions('inspection/getInfo')")
+    public HttpResponseResult<Inspection> getInfo(Long id) {
+        return succeed(inspectionService.getInfo(id));
+    }
+
+}

+ 72 - 0
mec-web/src/main/java/com/ym/mec/web/controller/InspectionItemController.java

@@ -0,0 +1,72 @@
+package com.ym.mec.web.controller;
+
+import com.ym.mec.auth.api.client.SysUserFeignService;
+import com.ym.mec.auth.api.entity.SysUser;
+import com.ym.mec.biz.dal.dao.EmployeeDao;
+import com.ym.mec.biz.dal.entity.Employee;
+import com.ym.mec.biz.dal.entity.InspectionItem;
+import com.ym.mec.biz.dal.page.InspectionQueryInfo;
+import com.ym.mec.biz.service.InspectionItemService;
+import com.ym.mec.common.controller.BaseController;
+import com.ym.mec.common.entity.HttpResponseResult;
+import com.ym.mec.common.page.PageInfo;
+import io.swagger.annotations.Api;
+import io.swagger.annotations.ApiOperation;
+import org.apache.commons.lang3.StringUtils;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.security.access.prepost.PreAuthorize;
+import org.springframework.web.bind.annotation.*;
+
+import javax.annotation.Resource;
+import java.util.Arrays;
+import java.util.Date;
+import java.util.List;
+
+@Api(tags = "巡查任务事项")
+@RequestMapping("inspectionItem")
+@RestController
+public class InspectionItemController extends BaseController {
+    @Autowired
+    private InspectionItemService inspectionItemService;
+    @Autowired
+    private EmployeeDao employeeDao;
+    @Resource
+    private SysUserFeignService sysUserFeignService;
+
+    @ApiOperation(value = "修改巡查任务事项")
+    @PostMapping("/update")
+    @PreAuthorize("@pcs.hasPermissions('inspectionItem/update')")
+    public HttpResponseResult<InspectionItem> update(InspectionItem inspectionItem) {
+        SysUser sysUser = sysUserFeignService.queryUserInfo();
+        if (sysUser == null) {
+            return failed("用户信息获取失败");
+        }
+        inspectionItem.setUpdateTime(new Date());
+        inspectionItemService.update(inspectionItem);
+        return succeed(inspectionItem);
+    }
+
+    @ApiOperation(value = "巡查任务事项列表")
+    @GetMapping("/queryPage")
+    @PreAuthorize("@pcs.hasPermissions('inspectionItem/queryPage')")
+    public HttpResponseResult<PageInfo<InspectionItem>> queryPage(InspectionQueryInfo queryInfo) {
+        SysUser sysUser = sysUserFeignService.queryUserInfo();
+        if (sysUser == null) {
+            return failed("用户信息获取失败");
+        }
+        if (!sysUser.getIsSuperAdmin()) {
+            Employee employee = employeeDao.get(sysUser.getId());
+            if (StringUtils.isEmpty(queryInfo.getOrganId())) {
+                queryInfo.setOrganId(employee.getOrganIdList());
+            } else if (StringUtils.isEmpty(employee.getOrganIdList())) {
+                return failed("用户所在分部异常");
+            } else {
+                List<String> list = Arrays.asList(employee.getOrganIdList().split(","));
+                if (!list.containsAll(Arrays.asList(queryInfo.getOrganId().split(",")))) {
+                    return failed("非法请求");
+                }
+            }
+        }
+        return succeed(inspectionItemService.getPageList(queryInfo));
+    }
+}

+ 67 - 0
mec-web/src/main/java/com/ym/mec/web/controller/InspectionItemPlanController.java

@@ -0,0 +1,67 @@
+package com.ym.mec.web.controller;
+
+import com.ym.mec.auth.api.client.SysUserFeignService;
+import com.ym.mec.auth.api.entity.SysUser;
+import com.ym.mec.biz.dal.entity.Inspection;
+import com.ym.mec.biz.dal.entity.InspectionItemPlan;
+import com.ym.mec.biz.dal.page.InspectionItemPlanQueryInfo;
+import com.ym.mec.biz.service.InspectionItemPlanService;
+import com.ym.mec.common.controller.BaseController;
+import com.ym.mec.common.entity.HttpResponseResult;
+import com.ym.mec.common.page.PageInfo;
+import io.swagger.annotations.Api;
+import io.swagger.annotations.ApiOperation;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.security.access.prepost.PreAuthorize;
+import org.springframework.web.bind.annotation.*;
+
+import javax.annotation.Resource;
+import java.util.Date;
+import java.util.List;
+
+@Api(tags = "巡查事项日程")
+@RequestMapping("inspectionItemPlan")
+@RestController
+public class InspectionItemPlanController extends BaseController {
+    @Autowired
+    private InspectionItemPlanService inspectionItemPlanService;
+    @Resource
+    private SysUserFeignService sysUserFeignService;
+
+    @ApiOperation(value = "添加巡查任务事项日程")
+    @PostMapping("/add")
+    @PreAuthorize("@pcs.hasPermissions('inspectionItemPlan/add')")
+    public HttpResponseResult<InspectionItemPlan> add(InspectionItemPlan inspectionItemPlan) {
+        SysUser sysUser = sysUserFeignService.queryUserInfo();
+        if (sysUser == null) {
+            return failed("用户信息获取失败");
+        }
+        inspectionItemPlan.setUserId(sysUser.getId());
+        return succeed(inspectionItemPlanService.add(inspectionItemPlan));
+    }
+
+    @ApiOperation(value = "修改巡查任务事项日程")
+    @PostMapping("/update")
+    @PreAuthorize("@pcs.hasPermissions('inspectionItemPlan/update')")
+    public HttpResponseResult<InspectionItemPlan> update(InspectionItemPlan inspectionItemPlan) {
+        SysUser sysUser = sysUserFeignService.queryUserInfo();
+        if (sysUser == null) {
+            return failed("用户信息获取失败");
+        }
+        inspectionItemPlan.setUserId(sysUser.getId());
+        inspectionItemPlanService.updatePlan(inspectionItemPlan);
+        return succeed(inspectionItemPlan);
+    }
+
+    @ApiOperation(value = "巡查任务事项日程列表")
+    @GetMapping("/queryPage")
+    @PreAuthorize("@pcs.hasPermissions('inspectionItemPlan/queryPage')")
+    public HttpResponseResult<PageInfo<InspectionItemPlan>> queryPage(InspectionItemPlanQueryInfo queryInfo) {
+        SysUser sysUser = sysUserFeignService.queryUserInfo();
+        if (sysUser == null) {
+            return failed("用户信息获取失败");
+        }
+        queryInfo.setUserId(sysUser.getId());
+        return succeed(inspectionItemPlanService.queryPage(queryInfo));
+    }
+}

+ 46 - 0
mec-web/src/main/java/com/ym/mec/web/controller/education/EduInspectionItemPlanConclusionController.java

@@ -0,0 +1,46 @@
+package com.ym.mec.web.controller.education;
+
+import com.ym.mec.biz.dal.dto.InspectionItemPlanConclusionDto;
+import com.ym.mec.biz.dal.entity.CourseSchedule;
+import com.ym.mec.biz.dal.entity.InspectionItemPlanConclusion;
+import com.ym.mec.biz.service.InspectionItemPlanConclusionService;
+import com.ym.mec.common.controller.BaseController;
+import com.ym.mec.common.entity.HttpResponseResult;
+import io.swagger.annotations.Api;
+import io.swagger.annotations.ApiImplicitParam;
+import io.swagger.annotations.ApiImplicitParams;
+import io.swagger.annotations.ApiOperation;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.web.bind.annotation.*;
+
+import java.util.List;
+import java.util.Map;
+
+@Api(tags = "教务巡查结果")
+@RequestMapping("eduInspectionItemPlanConclusion")
+@RestController
+public class EduInspectionItemPlanConclusionController extends BaseController {
+    @Autowired
+    private InspectionItemPlanConclusionService InspectionItemPlanConclusionService;
+
+    @ApiOperation(value = "巡查结果提交")
+    @PostMapping("/add")
+    public HttpResponseResult<InspectionItemPlanConclusionDto> add(@RequestBody InspectionItemPlanConclusionDto inspectionItemPlanConclusionDto) {
+        return succeed(InspectionItemPlanConclusionService.add(inspectionItemPlanConclusionDto));
+    }
+
+    @ApiOperation(value = "获取日程的巡查结果")
+    @GetMapping("/getInfo")
+    @ApiImplicitParams({@ApiImplicitParam(name = "planId", value = "日程id", required = true, dataType = "int"),
+            @ApiImplicitParam(name = "checkItem", value = "巡查结果项", required = false, dataType = "int")})
+    public HttpResponseResult<Map<Integer, List<InspectionItemPlanConclusion>>> getInfo(Long planId, Integer checkItem) {
+        return succeed(InspectionItemPlanConclusionService.getInfo(planId, checkItem));
+    }
+
+    @ApiOperation(value = "获取日程时间段内的课程信息")
+    @GetMapping("/getPlanCourses")
+    @ApiImplicitParams({@ApiImplicitParam(name = "planId", value = "日程id", required = true, dataType = "int")})
+    public HttpResponseResult<List<CourseSchedule>> getPlanCourses(Long planId) {
+        return succeed(InspectionItemPlanConclusionService.getPlanCourses(planId));
+    }
+}

+ 45 - 0
mec-web/src/main/java/com/ym/mec/web/controller/education/EduInspectionItemPlanController.java

@@ -0,0 +1,45 @@
+package com.ym.mec.web.controller.education;
+
+import com.ym.mec.auth.api.client.SysUserFeignService;
+import com.ym.mec.auth.api.entity.SysUser;
+import com.ym.mec.biz.dal.entity.InspectionItemPlan;
+import com.ym.mec.biz.dal.page.InspectionItemPlanQueryInfo;
+import com.ym.mec.biz.service.InspectionItemPlanService;
+import com.ym.mec.common.controller.BaseController;
+import com.ym.mec.common.entity.HttpResponseResult;
+import com.ym.mec.common.page.PageInfo;
+import com.ym.mec.util.date.DateUtil;
+import io.swagger.annotations.Api;
+import io.swagger.annotations.ApiOperation;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.security.access.prepost.PreAuthorize;
+import org.springframework.web.bind.annotation.GetMapping;
+import org.springframework.web.bind.annotation.RequestMapping;
+import org.springframework.web.bind.annotation.RestController;
+
+import javax.annotation.Resource;
+
+@Api(tags = "教务巡查事项日程")
+@RequestMapping("eduInspectionItemPlan")
+@RestController
+public class EduInspectionItemPlanController extends BaseController {
+    @Autowired
+    private InspectionItemPlanService inspectionItemPlanService;
+    @Resource
+    private SysUserFeignService sysUserFeignService;
+
+    @ApiOperation(value = "巡查任务事项日程列表")
+    @GetMapping("/queryPage")
+    public HttpResponseResult<PageInfo<InspectionItemPlan>> queryPage(InspectionItemPlanQueryInfo queryInfo) {
+        SysUser sysUser = sysUserFeignService.queryUserInfo();
+        if (sysUser == null) {
+            return failed("用户信息获取失败");
+        }
+        queryInfo.setUserId(sysUser.getId());
+        if (queryInfo.getMonth() != null) {
+            queryInfo.setStartTime(DateUtil.getFirstDayOfMonth(queryInfo.getMonth()));
+            queryInfo.setEndTime(DateUtil.getLastTimeWithDay(DateUtil.getLastDayOfMonth(queryInfo.getMonth())));
+        }
+        return succeed(inspectionItemPlanService.getPageList(queryInfo));
+    }
+}