Browse Source

首页异常提醒改造、班级老师调整没有关联通讯录的bug

zouxuan 4 years ago
parent
commit
b8e4809f11

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

@@ -150,21 +150,21 @@ public interface IndexBaseMonthDataDao extends BaseDAO<Long, IndexBaseMonthData>
      * @param organIdsStr
      * @return
      */
-    int queryInspectionItem(@Param("organIdsStr") String organIdsStr);
+    int queryInspectionItem(@Param("organIdsStr") String organIdsStr, @Param("startTime") String startTime);
 
     /**
      * 乐团巡查任务未提交
      * @param organIdsStr
      * @return
      */
-    int queryInspectionItemPlan(@Param("organIdsStr") String organIdsStr);
+    int queryInspectionItemPlan(@Param("organIdsStr") String organIdsStr, @Param("startTime") String startTime);
 
     /**
      * 未完成的回访任务
      * @param organIdsStr
      * @return
      */
-    int queryStudentVisit(@Param("organIdsStr") String organIdsStr);
+    int queryStudentVisit(@Param("organIdsStr") String organIdsStr, @Param("startTime") String startTime);
 
     List<IndexBaseMonthData> getFinancePayData(@Param("dayStr") String dayStr);
 

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

@@ -20,8 +20,8 @@ public enum IndexErrorType implements BaseEnum<String, IndexErrorType> {
     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_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", "预计课酬较低"),
     INSPECTION_ITEM("INSPECTION_ITEM", "乐团巡查任务未计划"),

+ 11 - 0
mec-biz/src/main/java/com/ym/mec/biz/dal/page/EndCourseScheduleQueryInfo.java

@@ -75,6 +75,17 @@ public class EndCourseScheduleQueryInfo extends QueryInfo {
     @ApiModelProperty(value = "合并课程类型,MASTER 主课,ASSIST 副课,ALL 全部")
     private String mergeCourseType;
 
+    @ApiModelProperty(value = "ERR_ATTENDANCE 考勤异常,NO_ATTENDANCE 课程异常")
+    private String searchType;
+
+    public String getSearchType() {
+        return searchType;
+    }
+
+    public void setSearchType(String searchType) {
+        this.searchType = searchType;
+    }
+
     public String getMergeCourseType() {
         return mergeCourseType;
     }

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

@@ -44,6 +44,17 @@ public class InspectionItemPlanQueryInfo extends QueryInfo {
     @ApiModelProperty(value = "乐团巡查任务未提交:INSPECTION_ITEM_PLAN 乐团巡查事项异常:MUSIC_PATROL_ITEM",required = false)
     private String searchType;
 
+    private String searchStartTime;
+
+    public String getSearchStartTime() {
+        return searchStartTime;
+    }
+
+    public void setSearchStartTime(String searchStartTime) {
+        this.searchStartTime = searchStartTime;
+    }
+
+
     public String getSearchType() {
         return searchType;
     }

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

@@ -29,6 +29,16 @@ public class InspectionQueryInfo extends QueryInfo {
     @ApiModelProperty(value = "查询类型 INSPECTION_ITEM 乐团巡查任务未计划,回访任务未完成 STUDENT_VISIT",required = false)
     private String searchType;
 
+    private String searchStartTime;
+
+    public String getSearchStartTime() {
+        return searchStartTime;
+    }
+
+    public void setSearchStartTime(String searchStartTime) {
+        this.searchStartTime = searchStartTime;
+    }
+
     public String getSearchType() {
         return searchType;
     }

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

@@ -2306,6 +2306,7 @@ public class ClassGroupServiceImpl extends BaseServiceImpl<Integer, ClassGroup>
                 tm.setUpdateTime(date);
                 classGroupTeacherMapperDao.insert(tm);
             }
+            imUserFriendService.refreshClassImUserFriend(classGroupId);
             return classGroup;
         }
         if (classGroup4MixDtos.get(0).getCourseTimes().compareTo(0) <= 0) {

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

@@ -405,13 +405,13 @@ public class IndexBaseMonthDataServiceImpl extends BaseServiceImpl<Long, IndexBa
 			int lowTeacherSalary = indexBaseMonthDataDao.queryLowTeacherSalary(organIdsStr,monthStr);
 			threeChild.add(new IndexErrInfoDto(IndexErrorType.TEACHER_EXPECT_SALARY_BE_LOW, IndexErrorType.TEACHER_EXPECT_SALARY_BE_LOW.getMsg(),lowTeacherSalary, null));
 
-			int inspectionItem = indexBaseMonthDataDao.queryInspectionItem(organIdsStr);
+			int inspectionItem = indexBaseMonthDataDao.queryInspectionItem(organIdsStr,startTime);
 			threeChild.add(new IndexErrInfoDto(IndexErrorType.INSPECTION_ITEM, IndexErrorType.INSPECTION_ITEM.getMsg(),inspectionItem, null));
 
-			int inspectionItemPlan = indexBaseMonthDataDao.queryInspectionItemPlan(organIdsStr);
+			int inspectionItemPlan = indexBaseMonthDataDao.queryInspectionItemPlan(organIdsStr,startTime);
 			threeChild.add(new IndexErrInfoDto(IndexErrorType.INSPECTION_ITEM_PLAN, IndexErrorType.INSPECTION_ITEM_PLAN.getMsg(),inspectionItemPlan, null));
 
-			int studentVisit = indexBaseMonthDataDao.queryStudentVisit(organIdsStr);
+			int studentVisit = indexBaseMonthDataDao.queryStudentVisit(organIdsStr,startTime);
 			threeChild.add(new IndexErrInfoDto(IndexErrorType.STUDENT_VISIT, IndexErrorType.STUDENT_VISIT.getMsg(),studentVisit, null));
 
 			three.setNum(threeChild.stream().mapToInt(IndexErrInfoDto::getNum).sum());
@@ -529,19 +529,19 @@ public class IndexBaseMonthDataServiceImpl extends BaseServiceImpl<Long, IndexBa
 			}
 		}
 		if(!flag3){
-			int inspectionItem = indexBaseMonthDataDao.queryInspectionItem(organIdsStr);
+			int inspectionItem = indexBaseMonthDataDao.queryInspectionItem(organIdsStr,startTime);
 			if(inspectionItem > 0){
 				flag3 = true;
 			}
 		}
 		if(!flag3){
-			int inspectionItemPlan = indexBaseMonthDataDao.queryInspectionItemPlan(organIdsStr);
+			int inspectionItemPlan = indexBaseMonthDataDao.queryInspectionItemPlan(organIdsStr,startTime);
 			if(inspectionItemPlan > 0){
 				flag3 = true;
 			}
 		}
 		if(!flag3){
-			int studentVisit = indexBaseMonthDataDao.queryStudentVisit(organIdsStr);
+			int studentVisit = indexBaseMonthDataDao.queryStudentVisit(organIdsStr,startTime);
 			if(studentVisit > 0){
 				flag3 = true;
 			}

+ 18 - 6
mec-biz/src/main/resources/config/mybatis/CourseScheduleMapper.xml

@@ -2320,7 +2320,7 @@
 
     <sql id="endFindCourseSchedulesCondition">
         <where>
-            (cs.del_flag_ != 1 OR cs.del_flag_ IS NULL)
+            cs.del_flag_ = 0
             <include refid="queryVipCourseScheduleIds"/>
         </where>
     </sql>
@@ -2345,15 +2345,15 @@
             cs.is_lock_,
             s.name_ schoole_name_,
             o.name_ organ_name_,
-            CASE WHEN COUNT(sa.id_) > 0 THEN 1 ELSE 0 END isCallNames,
-            case when count(ta.id_) > 0 then '1' else '0' end is_complaints_
+            CASE WHEN COUNT(CASE WHEN sa.remark_ IS NULL THEN NULL ELSE sa.id_ END) > 0 THEN 1 ELSE 0 END isCallNames,
+            CASE WHEN COUNT(CASE WHEN ta.is_complaints_ = 1 THEN 1 ELSE NULL END) > 0 THEN '1' ELSE '0' END is_complaints_
         FROM
             course_schedule cs
             LEFT JOIN school s ON cs.schoole_id_=s.id_
             LEFT JOIN organization o ON cs.organ_id_=o.id_
             LEFT JOIN course_schedule_teacher_salary csts ON csts.course_schedule_id_ = cs.id_
-            left join teacher_attendance ta on ta.course_schedule_id_ = cs.id_ and ta.is_complaints_ = 1
-            LEFT JOIN student_attendance sa ON sa.course_schedule_id_ = cs.id_ AND sa.remark_ IS NULL
+            left join teacher_attendance ta on ta.course_schedule_id_ = cs.id_
+            LEFT JOIN student_attendance sa ON sa.course_schedule_id_ = cs.id_
             <include refid="endFindCourseSchedulesCondition"/>
         GROUP BY cs.id_
         ORDER BY course_start_time_,cs.id_
@@ -2365,7 +2365,8 @@
         COUNT(DISTINCT cs.id_)
         FROM
         course_schedule cs
-        LEFT JOIN student_attendance sa ON sa.course_schedule_id_ = cs.id_ AND sa.remark_ IS NULL
+        LEFT JOIN student_attendance sa ON sa.course_schedule_id_ = cs.id_
+        LEFT JOIN teacher_attendance ta on ta.course_schedule_id_ = cs.id_
         LEFT JOIN course_schedule_teacher_salary csts ON csts.course_schedule_id_ = cs.id_
         <include refid="endFindCourseSchedulesCondition"/>
     </select>
@@ -2483,6 +2484,17 @@
         <if test="search!=null">
             AND (cs.music_group_id_=#{search} OR cs.id_=#{search} OR cs.name_ LIKE CONCAT( '%', #{search}, '%' ))
         </if>
+        <if test="searchType == 'ERR_ATTENDANCE'">
+            AND ta.teacher_id_ = cs.actual_teacher_id_
+            AND cs.status_ = 'OVER'
+            AND (ta.sign_in_status_ != 1 OR ta.sign_out_status_ != 1 OR sa.status_ != 'NORMAL') AND ta.dispose_content_ IS NULL
+            AND (cs.new_course_id_ IS NULL OR cs.new_course_id_=cs.id_)
+        </if>
+        <if test="searchType == 'NO_ATTENDANCE'">
+            AND ta.teacher_id_ = cs.actual_teacher_id_
+            AND cs.status_ = 'OVER' AND ta.sign_in_time_ IS NULL AND ta.sign_out_time_ IS NULL AND ta.dispose_content_ IS NULL
+            AND (cs.new_course_id_ IS NULL OR cs.new_course_id_ = cs.id_)
+        </if>
     </sql>
     <select id="queryPracticeCourseScheduleIds" resultType="java.lang.Integer">
         SELECT cs.id_ FROM course_schedule cs

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

@@ -582,21 +582,25 @@
 			</if>
 	</select>
     <select id="getAttendanceError" resultType="int">
-		SELECT COUNT(csts.id_) FROM course_schedule_teacher_salary csts
-		LEFT JOIN course_schedule cs ON csts.course_schedule_id_ = cs.id_
-		LEFT JOIN teacher_attendance ta ON ta.course_schedule_id_ = csts.course_schedule_id_ AND ta.teacher_id_ = csts.user_id_
-		WHERE (ta.sign_in_status_ = 0 OR ta.sign_out_status_ = 0) AND cs.status_ = 'OVER' AND cs.del_flag_ = 0 AND (cs.new_course_id_ IS NULL OR cs.new_course_id_=cs.id_)
-		AND (ta.sign_in_time_ IS NOT NULL OR ta.sign_out_time_ IS NOT NULL) AND ta.dispose_content_ IS NULL AND cs.class_date_ >= #{startTime}
+		SELECT COUNT(DISTINCT c.id_) FROM (SELECT cs.id_ FROM course_schedule cs
+		LEFT JOIN teacher_attendance ta ON ta.course_schedule_id_ = cs.id_
+		LEFT JOIN student_attendance sa ON sa.course_schedule_id_ = cs.id_
+		WHERE ta.teacher_id_ = cs.actual_teacher_id_
+		AND cs.status_ = 'OVER' AND cs.del_flag_ = 0 AND cs.class_date_ >= #{startTime}
+		AND (ta.sign_in_status_ != 1 OR ta.sign_out_status_ != 1 OR sa.status_ != 'NORMAL') AND ta.dispose_content_ IS NULL
+		AND (cs.new_course_id_ IS NULL OR cs.new_course_id_=cs.id_)
+		GROUP BY cs.id_) c
 		<if test="organIds != null and organIds != ''">
 			AND FIND_IN_SET(cs.organ_id_,#{organIds})
 		</if>
 	</select>
 	<select id="getNoAttendance" resultType="int">
-		SELECT COUNT(csts.id_) FROM course_schedule_teacher_salary csts
-		LEFT JOIN course_schedule cs ON csts.course_schedule_id_ = cs.id_
-		LEFT JOIN teacher_attendance ta ON ta.course_schedule_id_ = csts.course_schedule_id_ AND ta.teacher_id_ = csts.user_id_
-		WHERE ta.sign_in_time_ IS NULL AND cs.status_ = 'OVER' AND ta.sign_out_time_ IS NULL AND ta.dispose_content_ IS NULL
-		AND cs.del_flag_ = 0 AND (cs.new_course_id_ IS NULL OR cs.new_course_id_ = cs.id_) AND cs.class_date_ >= #{startTime}
+		SELECT COUNT(DISTINCT cs.id_) FROM course_schedule cs
+		LEFT JOIN teacher_attendance ta ON ta.course_schedule_id_ = cs.id_
+		WHERE ta.teacher_id_ = cs.actual_teacher_id_
+		AND cs.status_ = 'OVER' AND cs.del_flag_ = 0 AND cs.class_date_ >= #{startTime}
+		AND ta.sign_in_time_ IS NULL AND ta.sign_out_time_ IS NULL AND ta.dispose_content_ IS NULL
+		AND (cs.new_course_id_ IS NULL OR cs.new_course_id_ = cs.id_)
 		<if test="organIds != null and organIds != ''">
 			AND FIND_IN_SET(cs.organ_id_,#{organIds})
 		</if>
@@ -621,7 +625,9 @@
 	</select>
 	<select id="queryInspectionItem" resultType="int">
 		SELECT COUNT(DISTINCT ii.id_) FROM inspection_item ii
+		LEFT JOIN inspection i ON ii.inspection_id_ = i.id_
 		WHERE ii.times_ > planned_times_ AND ii.item_ = 'INSPECT' AND ii.memo_ =''
+		AND DATE_FORMAT(i.month_,'%Y-%m-%d') >= #{startTime}
 		<if test="organIdsStr != null and organIdsStr != ''">
 			AND FIND_IN_SET(ii.organ_id_,#{organIdsStr})
 		</if>
@@ -629,15 +635,18 @@
 	<select id="queryInspectionItemPlan" resultType="int">
 		SELECT COUNT(DISTINCT iip.id_) FROM inspection_item_plan iip
 		WHERE iip.status_ = 0 AND iip.memo_ = '' AND DATE_FORMAT(iip.plan_start_,'%Y-%m-%d') &lt; DATE_FORMAT(NOW(),'%Y-%m-%d')
+		AND DATE_FORMAT(iip.plan_start_,'%Y-%m-%d') >= #{startTime}
 		<if test="organIdsStr != null and organIdsStr != ''">
 			AND FIND_IN_SET(iip.organ_id_,#{organIdsStr})
 		</if>
 	</select>
 	<select id="queryStudentVisit" resultType="int">
 		SELECT COUNT(DISTINCT ii.id_) FROM inspection_item ii
+		LEFT JOIN inspection i ON ii.inspection_id_ = i.id_
 		WHERE ii.item_ = 'VISIT' AND ii.memo_ =''
 		AND ii.times_ > (SELECT COUNT(DISTINCT sv.id_) FROM student_visit sv
 		WHERE sv.teacher_id_ = ii.user_id_ AND DATE_FORMAT(ii.create_time_,'%Y-%m') = DATE_FORMAT(sv.visit_time_,'%Y-%m'))
+		AND DATE_FORMAT(i.month_,'%Y-%m-%d') >= #{startTime}
 		<if test="organIdsStr != null and organIdsStr != ''">
 			AND FIND_IN_SET(ii.organ_id_,#{organIdsStr})
 		</if>

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

@@ -168,10 +168,10 @@
         <where>
             <if test="searchType != null and searchType != ''">
                 <if test="searchType == 'INSPECTION_ITEM'">
-                    AND ii.times_ > planned_times_ AND ii.item_ = 'INSPECT' AND ii.memo_ =''
+                    AND ii.times_ > planned_times_ AND ii.item_ = 'INSPECT' AND ii.memo_ ='' AND DATE_FORMAT(i.month_,'%Y-%m-%d') >= #{startTime}
                 </if>
                 <if test="searchType == 'STUDENT_VISIT'">
-                    AND ii.item_ = 'VISIT' AND ii.memo_ =''
+                    AND ii.item_ = 'VISIT' AND ii.memo_ ='' AND DATE_FORMAT(i.month_,'%Y-%m-%d') >= #{startTime}
                     AND ii.times_ > (SELECT COUNT(DISTINCT sv.id_) FROM student_visit sv
                     WHERE sv.teacher_id_ = ii.user_id_ AND DATE_FORMAT(ii.create_time_,'%Y-%m') = DATE_FORMAT(sv.visit_time_,'%Y-%m'))
                 </if>

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

@@ -11,6 +11,7 @@ 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 com.ym.mec.util.date.DateUtil;
 import io.swagger.annotations.Api;
 import io.swagger.annotations.ApiOperation;
 import org.apache.commons.lang3.StringUtils;
@@ -72,6 +73,8 @@ public class InspectionItemController extends BaseController {
         if (!userRole.contains(SysUserRole.SECTION_MANAGER) && !sysUser.getIsSuperAdmin()) {
             queryInfo.setUserId(sysUser.getId());
         }
+        String startTime = DateUtil.format(DateUtil.getFirstDayOfMonth(DateUtil.addMonths(new Date(), -2)),DateUtil.ISO_EXPANDED_DATE_FORMAT);
+        queryInfo.setSearchStartTime(startTime);
         return succeed(inspectionItemService.getPageList(queryInfo));
     }
 }

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

@@ -94,6 +94,8 @@ public class InspectionItemPlanController extends BaseController {
         if (queryInfo.getItemId() != null) {
             queryInfo.setUserId(sysUser.getId());
         }
+        String startTime = DateUtil.format(DateUtil.getFirstDayOfMonth(DateUtil.addMonths(new Date(), -2)),DateUtil.ISO_EXPANDED_DATE_FORMAT);
+        queryInfo.setSearchStartTime(startTime);
         return succeed(inspectionItemPlanService.queryPage(queryInfo));
     }