zouxuan пре 3 година
родитељ
комит
3c3964d560

+ 5 - 5
mec-biz/src/main/java/com/ym/mec/biz/dal/dao/StudentStatisticsDao.java

@@ -37,19 +37,19 @@ public interface StudentStatisticsDao extends BaseDAO<Integer, StudentStatistics
     void updateNormalGroupNum();
 
     //汇总小课数据
-    StudentStatisticsSumDto studentSmallClassStatisticsSum(@Param("groupType") String groupType, @Param("organId") String organId);
+    StudentStatisticsSumDto studentSmallClassStatisticsSum(@Param("groupType") String groupType, @Param("organIdList") List<Integer> organIdList);
 
     //统计新增人数
-    Integer countAddStudentNum(@Param("groupType") String groupType, @Param("startDate") String startDate, @Param("endDate") String endDate, @Param("organId") String organId);
+    Integer countAddStudentNum(@Param("groupType") String groupType, @Param("startDate") String startDate, @Param("endDate") String endDate, @Param("organIdList") List<Integer> organIdList);
 
     //统计续费人数
-    Integer countRenewStudentNum(@Param("groupType") String groupType, @Param("endDate") String endDate, @Param("organId") String organId);
+    Integer countRenewStudentNum(@Param("groupType") String groupType, @Param("endDate") String endDate, @Param("organIdList") List<Integer> organIdList);
 
     //统计回访人数
-    Integer countVisitNum(@Param("groupType") String groupType, @Param("startDate") String startDate, @Param("endDate") String endDate, @Param("organId") String organId);
+    Integer countVisitNum(@Param("groupType") String groupType, @Param("startDate") String startDate, @Param("endDate") String endDate, @Param("organIdList") List<Integer> organIdList);
 
     //统计流失人数
-    Integer countLostStudentNum(@Param("groupType") String groupType, @Param("startDate") String startDate, @Param("endDate") String endDate, @Param("organId") String organId);
+    Integer countLostStudentNum(@Param("groupType") String groupType, @Param("startDate") String startDate, @Param("endDate") String endDate, @Param("organIdList") List<Integer> organIdList);
 
     //获取指导老师列表
     List<Integer> queryTeacherIds(@Param("groupType") String groupType);

+ 19 - 9
mec-biz/src/main/java/com/ym/mec/biz/service/impl/StudentStatisticsServiceImpl.java

@@ -1,6 +1,5 @@
 package com.ym.mec.biz.service.impl;
 
-import com.ym.mec.biz.dal.dao.IndexBaseMonthDataDao;
 import com.ym.mec.biz.dal.dao.StudentBasicInfoDao;
 import com.ym.mec.biz.dal.dao.StudentStatisticsDao;
 import com.ym.mec.biz.dal.dao.TeacherDao;
@@ -12,15 +11,15 @@ import com.ym.mec.biz.dal.page.StudentStatisticsQueryInfo;
 import com.ym.mec.biz.service.StudentStatisticsService;
 import com.ym.mec.common.dal.BaseDAO;
 import com.ym.mec.common.page.PageInfo;
-import com.ym.mec.common.page.QueryInfo;
 import com.ym.mec.common.service.impl.BaseServiceImpl;
-import com.ym.mec.common.tenant.TenantContextHolder;
 import com.ym.mec.util.collection.MapUtil;
 import org.apache.commons.collections.CollectionUtils;
+import org.apache.commons.lang3.StringUtils;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.stereotype.Service;
 
 import java.util.*;
+import java.util.stream.Collectors;
 
 @Service
 public class StudentStatisticsServiceImpl extends BaseServiceImpl<Integer, StudentStatistics>  implements StudentStatisticsService {
@@ -62,7 +61,10 @@ public class StudentStatisticsServiceImpl extends BaseServiceImpl<Integer, Stude
 		PageInfo<StudentStatisticsDto> pageInfo = new PageInfo<>(queryInfo.getPage(), queryInfo.getRows());
 		Map<String, Object> params = new HashMap<String, Object>();
 		MapUtil.populateMap(params, queryInfo);
-
+		if(StringUtils.isNotEmpty(queryInfo.getOrganId())){
+			List<Integer> organIdList = Arrays.stream(queryInfo.getOrganId().split(",")).map(id -> Integer.valueOf(id)).collect(Collectors.toList());
+			params.put("organIdList",organIdList);
+		}
 		List<StudentStatisticsDto> dataList = null;
 		int count = studentStatisticsDao.countStatistics(params);
 		if (count > 0) {
@@ -79,20 +81,28 @@ public class StudentStatisticsServiceImpl extends BaseServiceImpl<Integer, Stude
 
     @Override
     public StudentStatisticsSumDto studentSmallClassStatisticsSum(String groupType,String organId) {
-		return studentStatisticsDao.studentSmallClassStatisticsSum(groupType,organId);
+		List<Integer> organIdList = new ArrayList<>();
+		if(StringUtils.isNotEmpty(organId)){
+			organIdList = Arrays.stream(organId.split(",")).map(id -> Integer.valueOf(id)).collect(Collectors.toList());
+		}
+		return studentStatisticsDao.studentSmallClassStatisticsSum(groupType,organIdList);
     }
 
     @Override
     public StudentStatisticsSumForDateDto studentSmallClassStatisticsSumForDate(String groupType, String startDate, String endDate,String organId) {
 		StudentStatisticsSumForDateDto sumForDateDto = new StudentStatisticsSumForDateDto();
+		List<Integer> organIdList = new ArrayList<>();
+		if(StringUtils.isNotEmpty(organId)){
+			organIdList = Arrays.stream(organId.split(",")).map(id -> Integer.valueOf(id)).collect(Collectors.toList());
+		}
 		//获取流失人数
-		sumForDateDto.setLostNum(studentStatisticsDao.countLostStudentNum(groupType,startDate,endDate,organId));
+		sumForDateDto.setLostNum(studentStatisticsDao.countLostStudentNum(groupType,startDate,endDate,organIdList));
 		//获取新增人数
-		sumForDateDto.setAddNum(studentStatisticsDao.countAddStudentNum(groupType,startDate,endDate,organId));
+		sumForDateDto.setAddNum(studentStatisticsDao.countAddStudentNum(groupType,startDate,endDate,organIdList));
 		//获取续费人数
-		sumForDateDto.setRenewNum(studentStatisticsDao.countRenewStudentNum(groupType,endDate,organId));
+		sumForDateDto.setRenewNum(studentStatisticsDao.countRenewStudentNum(groupType,endDate,organIdList));
 		//获取回访人数
-		sumForDateDto.setVisitNum(studentStatisticsDao.countVisitNum(groupType,startDate,endDate,organId));
+		sumForDateDto.setVisitNum(studentStatisticsDao.countVisitNum(groupType,startDate,endDate,organIdList));
         return sumForDateDto;
     }
 

+ 1 - 9
mec-biz/src/main/resources/config/mybatis/StudentBasicInfoMapper.xml

@@ -83,15 +83,7 @@
 		</set> WHERE user_id_ = #{userId}
 	</update>
 	<update id="updateSubjectTeacher">
-		UPDATE (
-		SELECT cgsm.user_id_,cgtm.user_id_ teacher_id_ FROM class_group cg
-		LEFT JOIN class_group_student_mapper cgsm ON cgsm.class_group_id_ = cg.id_
-		LEFT JOIN class_group_teacher_mapper cgtm ON cgtm.class_group_id_ = cg.id_
-		WHERE cg.type_ = 'NORMAL' AND cgsm.status_ = 'NORMAL' AND cg.del_flag_ = 0 AND cgtm.teacher_role_ = 'BISHOP'
-		GROUP BY cgsm.user_id_) st
-		LEFT JOIN student_basic_info sbi ON st.user_id_ = sbi.user_id_
-		LEFT JOIN sys_user su ON su.id_ = st.teacher_id_
-		SET sbi.subject_teacher_id_ = st.teacher_id_,sbi.subject_teacher_name_ = su.real_name_
+		SELECT updateSubjectTeacher()
 	</update>
 
 	<!-- 根据主键删除一条记录 -->

+ 30 - 12
mec-biz/src/main/resources/config/mybatis/StudentStatisticsMapper.xml

@@ -232,8 +232,11 @@
 			<if test="groupType != null and groupType != ''">
 				AND ss.group_type_ = #{groupType}
 			</if>
-			<if test="organId != null and organId != ''">
-				AND FIND_IN_SET(sbi.organ_id_,#{organId})
+			<if test="organIdList != null and organIdList.size > 0">
+				AND sbi.organ_id_ IN
+				<foreach collection="organIdList" item="organId" open="(" close=")">
+					#{organId}
+				</foreach>
 			</if>
 		</where>
 	</sql>
@@ -281,8 +284,11 @@
 		LEFT JOIN sys_user_cash_account suca ON ss.user_id_ = suca.user_id_
 		LEFT JOIN student_basic_info sbi ON ss.user_id_ = sbi.user_id_
 		WHERE ss.group_type_ = #{groupType} AND (ss.over_course_num_ > 0 OR ss.sub_course_num_ > 0 OR ss.no_schedule_num_ > 0)
-		<if test="organId != null and organId != ''">
-			AND FIND_IN_SET(sbi.organ_id_,#{organId})
+		<if test="organIdList != null and organIdList.size > 0">
+			AND sbi.organ_id_ IN
+			<foreach collection="organIdList" item="organId" open="(" close=")">
+				#{organId}
+			</foreach>
 		</if>
 	</select>
     <select id="countAddStudentNum" resultType="java.lang.Integer">
@@ -299,8 +305,11 @@
 			'STUDENT_PRACTICE_ORDER_NUM'
 		</if>
 		AND extend_info_ IS NOT NULL
-		<if test="organId != null and organId != ''">
-			AND FIND_IN_SET(organ_id_,#{organId})
+		<if test="organIdList != null and organIdList.size > 0">
+			AND organ_id_ IN
+			<foreach collection="organIdList" item="organId" open="(" close=")">
+				#{organId}
+			</foreach>
 		</if>
 		GROUP BY extend_info_
 		<if test="startDate != null and startDate != '' and endDate != null and endDate != ''">
@@ -317,8 +326,11 @@
 		<if test="endDate != null and endDate != ''">
 			AND month_ &lt;= #{endDate}
 		</if>
-		<if test="organId != null and organId != ''">
-			AND FIND_IN_SET(organ_id_,#{organId})
+		<if test="organIdList != null and organIdList.size > 0">
+			AND organ_id_ IN
+			<foreach collection="organIdList" item="organId" open="(" close=")">
+				#{organId}
+			</foreach>
 		</if>
 		GROUP BY extend_info_
 		HAVING SUM(total_num_) > 1)a
@@ -335,8 +347,11 @@
 		<if test="groupType == 'PRACTICE'">
 			'网管课回访'
 		</if>
-		<if test="organId != null and organId != ''">
-			AND FIND_IN_SET(organ_id_,#{organId})
+		<if test="organIdList != null and organIdList.size > 0">
+			AND organ_id_ IN
+			<foreach collection="organIdList" item="organId" open="(" close=")">
+				#{organId}
+			</foreach>
 		</if>
 	</select>
 	<select id="countLostStudentNum" resultType="java.lang.Integer">
@@ -349,8 +364,11 @@
 		<if test="endDate != null and endDate != ''">
 			AND ss.last_visit_time_ &lt;= #{endDate}
 		</if>
-		<if test="organId != null and organId != ''">
-			AND FIND_IN_SET(sbi.organ_id_,#{organId})
+		<if test="organIdList != null and organIdList.size > 0">
+			AND sbi.organ_id_ IN
+			<foreach collection="organIdList" item="organId" open="(" close=")">
+				#{organId}
+			</foreach>
 		</if>
 	</select>
 	<select id="queryTeacherIds" resultType="java.lang.Integer">