Browse Source

管乐迷新需求一大堆

zouxuan 2 năm trước cách đây
mục cha
commit
c50d4fadf4

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

@@ -82,7 +82,7 @@ public class StudentCourseConsumerServiceImpl implements StudentCourseConsumerSe
         }
         Date date = DateUtil.stringToDate(queryInfo.getStartDate(), DateUtil.ISO_YEAR_MONTH_FORMAT);
         Date date2 = DateUtil.stringToDate(queryInfo.getEndDate(), DateUtil.ISO_YEAR_MONTH_FORMAT);
-        BigDecimal monthsBetween = new BigDecimal(DateUtil.monthsBetween(date, date2) * 4);
+        BigDecimal monthsBetween = new BigDecimal(DateUtil.monthsBetween(date, date2) * 4).add(BigDecimal.ONE);
 //#    (2)应有课耗:根据所选时间段计算,若所选时间段在一个自然月内则按在读人数*4,若超出一个月,该时间周期存在几个月就按在读人数*4*月数
 //#    (3)实际课耗:所选时间段内所有学生课时数之和,注意:若一节1v2课程又两个学生,则统计为2节课
 //#    (4)课耗达标率:实际课耗/应有课耗*100%

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

@@ -1896,7 +1896,7 @@
 		FROM student_attendance sa
 		LEFT JOIN course_schedule cs ON cs.id_ = sa.course_schedule_id_
 		LEFT JOIN sys_user su ON su.id_ = sa.user_id_
-		WHERE DATE_FORMAT(cs.class_date_,'%Y-%m') >= #{totalMonth} AND sa.status_ = 'LEAVE' AND cs.pre_course_flag_ = 0 and cs.tenant_id_ = #{tenantId}
+		WHERE DATE_FORMAT(cs.class_date_,'%Y-%m') BETWEEN #{totalMonth} AND #{currentMonth} AND sa.status_ = 'LEAVE' AND cs.pre_course_flag_ = 0 and cs.tenant_id_ = #{tenantId}
 		<if test="organIds != null">
 			AND FIND_IN_SET(cs.organ_id_,#{organIds})
 		</if>
@@ -1909,7 +1909,8 @@
 		<if test="search != null and search != ''">
 			AND (sa.user_id_ = #{search} OR su.username_ LIKE CONCAT('%',#{search},'%') OR su.phone_ LIKE CONCAT('%',#{search},'%'))
 		</if>
-		GROUP BY sa.user_id_,DATE_FORMAT(cs.class_date_,'%Y-%m') HAVING COUNT(sa.id_) >= #{studentErrorLeaveNum} AND COUNT(sa.id_) > SUM(sa.leave_visit_flag_) ORDER BY cs.class_date_ DESC)c
+		GROUP BY sa.user_id_,DATE_FORMAT(cs.class_date_,'%Y-%m')
+		HAVING COUNT(DATE_FORMAT(cs.class_date_,'%Y-%m-%d')) >= #{studentErrorLeaveNum} AND COUNT(sa.id_) > SUM(sa.leave_visit_flag_) ORDER BY cs.class_date_ DESC)c
 		GROUP BY c.user_id_
 	</select>