| 
					
				 | 
			
			
				@@ -21,6 +21,7 @@ import com.ym.mec.common.service.impl.BaseServiceImpl; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 import com.ym.mec.common.tenant.TenantContextHolder; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 import com.ym.mec.util.collection.MapUtil; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 import com.ym.mec.util.date.DateUtil; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 import org.apache.commons.lang3.StringUtils; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 import org.springframework.beans.factory.annotation.Autowired; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 import org.springframework.http.HttpStatus; 
			 | 
		
	
	
		
			
				| 
					
				 | 
			
			
				@@ -325,11 +326,9 @@ public class IndexBaseMonthDataServiceImpl extends BaseServiceImpl<Long, IndexBa 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				  
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 	@Override 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 	@Transactional(rollbackFor = Exception.class) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-	public void indexBaseDataTask(String dayStr, Set<IndexDataType> dataTypes) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+	public void indexBaseDataTask(Integer tenantId, String dayStr, Set<IndexDataType> dataTypes) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 		LocalDate nowDate = LocalDate.now(); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 		 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-		Integer tenantId = TenantContextHolder.getTenantId(); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				- 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 		List<Organization> allOrgans = organizationDao.findAllOrgans(tenantId); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 		if(CollectionUtils.isEmpty(this.organIds.get())){ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 			this.organIds.get().clear(); 
			 | 
		
	
	
		
			
				| 
					
				 | 
			
			
				@@ -345,21 +344,21 @@ public class IndexBaseMonthDataServiceImpl extends BaseServiceImpl<Long, IndexBa 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				  
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 		//学员数据 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 		if(CollectionUtils.isEmpty(dataTypes)||dataTypes.contains(IndexDataType.STUDENT_REGISTRATION_NUM)){ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-			saveData(indexBaseMonthDataDao.getStudentRegistrationData(dayStr,tenantId), dayStr, IndexDataType.STUDENT_REGISTRATION_NUM); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+			saveData(indexBaseMonthDataDao.getStudentRegistrationData(dayStr,tenantId), dayStr, IndexDataType.STUDENT_REGISTRATION_NUM, tenantId); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 		} 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 		if(CollectionUtils.isEmpty(dataTypes)||dataTypes.contains(IndexDataType.CHARGE_STUDENT_CHANGE_RATE)) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-			saveData(indexBaseMonthDataDao.getChargeStudentChangeData(dayStr,tenantId), dayStr, IndexDataType.CHARGE_STUDENT_CHANGE_RATE); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+			saveData(indexBaseMonthDataDao.getChargeStudentChangeData(dayStr,tenantId), dayStr, IndexDataType.CHARGE_STUDENT_CHANGE_RATE, tenantId); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 		} 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 		if(CollectionUtils.isEmpty(dataTypes)||dataTypes.contains(IndexDataType.ACTIVATION_RATE)) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-			saveData(indexBaseMonthDataDao.getStudentSignUpData(dayStr, nowDate.plusMonths(-6).toString(),tenantId), dayStr, IndexDataType.ACTIVATION_RATE); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+			saveData(indexBaseMonthDataDao.getStudentSignUpData(dayStr, nowDate.plusMonths(-6).toString(),tenantId), dayStr, IndexDataType.ACTIVATION_RATE, tenantId); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 		} 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				  
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 		//运营数据 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 		if(CollectionUtils.isEmpty(dataTypes)||dataTypes.contains(IndexDataType.SCHOOL)) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-			saveData(indexBaseMonthDataDao.getSchoolData(dayStr,tenantId), dayStr, IndexDataType.SCHOOL); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+			saveData(indexBaseMonthDataDao.getSchoolData(dayStr,tenantId), dayStr, IndexDataType.SCHOOL, tenantId); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 		} 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 		if(CollectionUtils.isEmpty(dataTypes)||dataTypes.contains(IndexDataType.PROGRESS_MUSIC_GROUP_NUM)) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-			saveData(indexBaseMonthDataDao.getMusicData(dayStr,tenantId), dayStr, IndexDataType.PROGRESS_MUSIC_GROUP_NUM); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+			saveData(indexBaseMonthDataDao.getMusicData(dayStr,tenantId), dayStr, IndexDataType.PROGRESS_MUSIC_GROUP_NUM, tenantId); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 		} 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 		if(CollectionUtils.isEmpty(dataTypes)||dataTypes.contains(TRANSACTION_TEACHER_NUM)) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 			List<SimpleUserDto> transactionTeachers = employeeService.findByRole("58", null); 
			 | 
		
	
	
		
			
				| 
					
				 | 
			
			
				@@ -386,47 +385,47 @@ public class IndexBaseMonthDataServiceImpl extends BaseServiceImpl<Long, IndexBa 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 				data.setPercent(num); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 				datas.add(data); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 			} 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-			saveData(datas, dayStr, IndexDataType.TRANSACTION_TEACHER_NUM); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+			saveData(datas, dayStr, IndexDataType.TRANSACTION_TEACHER_NUM, tenantId); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 		} 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				  
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 		//人事数据 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 		if(CollectionUtils.isEmpty(dataTypes)||dataTypes.contains(IndexDataType.TEACHER_NUM)) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-			saveData(indexBaseMonthDataDao.getTeacherData(dayStr, null, null,tenantId), dayStr, IndexDataType.TEACHER_NUM); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+			saveData(indexBaseMonthDataDao.getTeacherData(dayStr, null, null,tenantId), dayStr, IndexDataType.TEACHER_NUM, tenantId); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 		} 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 		if(CollectionUtils.isEmpty(dataTypes)||dataTypes.contains(IndexDataType.FULL_TIME_NUM)) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-			saveData(indexBaseMonthDataDao.getTeacherData(dayStr, JobNatureEnum.FULL_TIME, null,tenantId), dayStr, IndexDataType.FULL_TIME_NUM); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+			saveData(indexBaseMonthDataDao.getTeacherData(dayStr, JobNatureEnum.FULL_TIME, null,tenantId), dayStr, IndexDataType.FULL_TIME_NUM, tenantId); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 		} 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 		if(CollectionUtils.isEmpty(dataTypes)||dataTypes.contains(IndexDataType.PART_TIME_NUM)) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-			saveData(indexBaseMonthDataDao.getTeacherData(dayStr, JobNatureEnum.PART_TIME, null,tenantId), dayStr, IndexDataType.PART_TIME_NUM); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+			saveData(indexBaseMonthDataDao.getTeacherData(dayStr, JobNatureEnum.PART_TIME, null,tenantId), dayStr, IndexDataType.PART_TIME_NUM, tenantId); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 		} 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 //		saveData(indexBaseMonthDataDao.getTeacherData(dayStr, null, true), dayStr, IndexDataType.DIMISSION_NUM); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				  
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 		//剩余课时 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 		if(CollectionUtils.isEmpty(dataTypes)||dataTypes.contains(IndexDataType.SURPLUS_COURSE_NUM)) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-			saveData(indexBaseMonthDataDao.getGroupCourseData(dayStr, null, CourseStatusEnum.NOT_START,tenantId), dayStr, IndexDataType.SURPLUS_COURSE_NUM); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+			saveData(indexBaseMonthDataDao.getGroupCourseData(dayStr, null, CourseStatusEnum.NOT_START,tenantId), dayStr, IndexDataType.SURPLUS_COURSE_NUM, tenantId); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 		} 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 		if(CollectionUtils.isEmpty(dataTypes)||dataTypes.contains(IndexDataType.SURPLUS_MUSIC_COURSE_NUM)) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-			saveData(indexBaseMonthDataDao.getGroupCourseData(dayStr, GroupType.MUSIC, CourseStatusEnum.NOT_START,tenantId), dayStr, IndexDataType.SURPLUS_MUSIC_COURSE_NUM); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+			saveData(indexBaseMonthDataDao.getGroupCourseData(dayStr, GroupType.MUSIC, CourseStatusEnum.NOT_START,tenantId), dayStr, IndexDataType.SURPLUS_MUSIC_COURSE_NUM, tenantId); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 		} 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 		if(CollectionUtils.isEmpty(dataTypes)||dataTypes.contains(IndexDataType.SURPLUS_VIP_COURSE_NUM)) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-			saveData(indexBaseMonthDataDao.getGroupCourseData(dayStr, GroupType.VIP, CourseStatusEnum.NOT_START,tenantId), dayStr, IndexDataType.SURPLUS_VIP_COURSE_NUM); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+			saveData(indexBaseMonthDataDao.getGroupCourseData(dayStr, GroupType.VIP, CourseStatusEnum.NOT_START,tenantId), dayStr, IndexDataType.SURPLUS_VIP_COURSE_NUM, tenantId); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 		} 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 		if(CollectionUtils.isEmpty(dataTypes)||dataTypes.contains(IndexDataType.SURPLUS_PRACTICE_COURSE_NUM)) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-			saveData(indexBaseMonthDataDao.getGroupCourseData(dayStr, GroupType.PRACTICE, CourseStatusEnum.NOT_START,tenantId), dayStr, IndexDataType.SURPLUS_PRACTICE_COURSE_NUM); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+			saveData(indexBaseMonthDataDao.getGroupCourseData(dayStr, GroupType.PRACTICE, CourseStatusEnum.NOT_START,tenantId), dayStr, IndexDataType.SURPLUS_PRACTICE_COURSE_NUM, tenantId); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 		} 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				  
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 		//已消耗课时 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 		if(CollectionUtils.isEmpty(dataTypes)||dataTypes.contains(IndexDataType.OVER_COURSE_NUM)) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-			saveData(indexBaseMonthDataDao.getGroupSurplusCourseData(dayStr, null, CourseStatusEnum.OVER,tenantId), dayStr, IndexDataType.OVER_COURSE_NUM); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+			saveData(indexBaseMonthDataDao.getGroupSurplusCourseData(dayStr, null, CourseStatusEnum.OVER,tenantId), dayStr, IndexDataType.OVER_COURSE_NUM, tenantId); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 		} 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 		if(CollectionUtils.isEmpty(dataTypes)||dataTypes.contains(IndexDataType.OVER_MUSIC_COURSE_NUM)) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-			saveData(indexBaseMonthDataDao.getGroupSurplusCourseData(dayStr, GroupType.MUSIC, CourseStatusEnum.OVER,tenantId), dayStr, IndexDataType.OVER_MUSIC_COURSE_NUM); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+			saveData(indexBaseMonthDataDao.getGroupSurplusCourseData(dayStr, GroupType.MUSIC, CourseStatusEnum.OVER,tenantId), dayStr, IndexDataType.OVER_MUSIC_COURSE_NUM, tenantId); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 		} 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 		if(CollectionUtils.isEmpty(dataTypes)||dataTypes.contains(IndexDataType.OVER_VIP_COURSE_NUM)) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-			saveData(indexBaseMonthDataDao.getGroupSurplusCourseData(dayStr, GroupType.VIP, CourseStatusEnum.OVER,tenantId), dayStr, IndexDataType.OVER_VIP_COURSE_NUM); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+			saveData(indexBaseMonthDataDao.getGroupSurplusCourseData(dayStr, GroupType.VIP, CourseStatusEnum.OVER,tenantId), dayStr, IndexDataType.OVER_VIP_COURSE_NUM, tenantId); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 		} 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 		if(CollectionUtils.isEmpty(dataTypes)||dataTypes.contains(IndexDataType.OVER_PRACTICE_COURSE_NUM)) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-			saveData(indexBaseMonthDataDao.getGroupSurplusCourseData(dayStr, GroupType.PRACTICE, CourseStatusEnum.OVER,tenantId), dayStr, IndexDataType.OVER_PRACTICE_COURSE_NUM); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+			saveData(indexBaseMonthDataDao.getGroupSurplusCourseData(dayStr, GroupType.PRACTICE, CourseStatusEnum.OVER,tenantId), dayStr, IndexDataType.OVER_PRACTICE_COURSE_NUM, tenantId); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 		} 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				  
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 		//经营数据 
			 | 
		
	
	
		
			
				| 
					
				 | 
			
			
				@@ -442,18 +441,18 @@ public class IndexBaseMonthDataServiceImpl extends BaseServiceImpl<Long, IndexBa 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				  
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 		//业务数据 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 		if(CollectionUtils.isEmpty(dataTypes)||dataTypes.contains(IndexDataType.HOMEWORK_CREATE_RATE)) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-			saveData(indexBaseMonthDataDao.getHomeworkData(dayStr, null,tenantId), monday.toString(), IndexDataType.HOMEWORK_CREATE_RATE); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+			saveData(indexBaseMonthDataDao.getHomeworkData(dayStr, null,tenantId), monday.toString(), IndexDataType.HOMEWORK_CREATE_RATE, tenantId); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 		} 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 		if(CollectionUtils.isEmpty(dataTypes)||dataTypes.contains(IndexDataType.HOMEWORK_SUBMIT_RATE)) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-			saveData(indexBaseMonthDataDao.getHomeworkData(dayStr, "submit",tenantId), monday.toString(), IndexDataType.HOMEWORK_SUBMIT_RATE); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+			saveData(indexBaseMonthDataDao.getHomeworkData(dayStr, "submit",tenantId), monday.toString(), IndexDataType.HOMEWORK_SUBMIT_RATE, tenantId); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 		} 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 		if(CollectionUtils.isEmpty(dataTypes)||dataTypes.contains(IndexDataType.HOMEWORK_COMMENT_RATE)) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-			saveData(indexBaseMonthDataDao.getHomeworkData(dayStr, "comment",tenantId), monday.toString(), IndexDataType.HOMEWORK_COMMENT_RATE); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+			saveData(indexBaseMonthDataDao.getHomeworkData(dayStr, "comment",tenantId), monday.toString(), IndexDataType.HOMEWORK_COMMENT_RATE, tenantId); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 		} 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				  
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 		//课程数据 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 		if(CollectionUtils.isEmpty(dataTypes)||dataTypes.contains(IndexDataType.MUSIC_GROUP_COURSE)) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-			saveData(indexBaseMonthDataDao.getGroupCourseDataWithGroup(dayStr, null, null, GroupType.MUSIC, null, null, null,tenantId), dayStr, IndexDataType.MUSIC_GROUP_COURSE); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+			saveData(indexBaseMonthDataDao.getGroupCourseDataWithGroup(dayStr, null, null, GroupType.MUSIC, null, null, null,tenantId), dayStr, IndexDataType.MUSIC_GROUP_COURSE, tenantId); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 		} 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				  
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 		if(CollectionUtils.isEmpty(dataTypes)||dataTypes.contains(IndexDataType.VIP_GROUP_COURSE)) { 
			 | 
		
	
	
		
			
				| 
					
				 | 
			
			
				@@ -468,7 +467,7 @@ public class IndexBaseMonthDataServiceImpl extends BaseServiceImpl<Long, IndexBa 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 					vipCourseDatum.setExtendInfo(JSON.toJSONString(organCategoryCourseMap.get(vipCourseDatum.getOrganId()))); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 				} 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 			} 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-			saveData(vipCourseData, dayStr, IndexDataType.VIP_GROUP_COURSE); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+			saveData(vipCourseData, dayStr, IndexDataType.VIP_GROUP_COURSE, tenantId); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 		} 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				  
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 		if(CollectionUtils.isEmpty(dataTypes)||dataTypes.contains(IndexDataType.VIP_GROUP_ONLINE_COURSE)) { 
			 | 
		
	
	
		
			
				| 
					
				 | 
			
			
				@@ -483,7 +482,7 @@ public class IndexBaseMonthDataServiceImpl extends BaseServiceImpl<Long, IndexBa 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 					vipCourseDatum.setExtendInfo(JSON.toJSONString(organOnlineCategoryCourseMap.get(vipCourseDatum.getOrganId()))); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 				} 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 			} 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-			saveData(vipOnlineCourseData, dayStr, IndexDataType.VIP_GROUP_ONLINE_COURSE); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+			saveData(vipOnlineCourseData, dayStr, IndexDataType.VIP_GROUP_ONLINE_COURSE, tenantId); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 		} 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				  
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 		if(CollectionUtils.isEmpty(dataTypes)||dataTypes.contains(IndexDataType.VIP_GROUP_OFFLINE_COURSE)) { 
			 | 
		
	
	
		
			
				| 
					
				 | 
			
			
				@@ -498,73 +497,73 @@ public class IndexBaseMonthDataServiceImpl extends BaseServiceImpl<Long, IndexBa 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 					vipCourseDatum.setExtendInfo(JSON.toJSONString(organOfflineCategoryCourseMap.get(vipCourseDatum.getOrganId()))); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 				} 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 			} 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-			saveData(vipOfflineCourseData, dayStr, IndexDataType.VIP_GROUP_OFFLINE_COURSE); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+			saveData(vipOfflineCourseData, dayStr, IndexDataType.VIP_GROUP_OFFLINE_COURSE, tenantId); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 		} 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				  
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 		if(CollectionUtils.isEmpty(dataTypes)||dataTypes.contains(IndexDataType.PRACTICE_GROUP_COURSE)) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-			saveData(indexBaseMonthDataDao.getGroupCourseDataWithGroup(dayStr, null, null, GroupType.PRACTICE, null, null, null,tenantId), dayStr, IndexDataType.PRACTICE_GROUP_COURSE); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+			saveData(indexBaseMonthDataDao.getGroupCourseDataWithGroup(dayStr, null, null, GroupType.PRACTICE, null, null, null,tenantId), dayStr, IndexDataType.PRACTICE_GROUP_COURSE, tenantId); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 		} 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				  
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 		//学员变动 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 		if(CollectionUtils.isEmpty(dataTypes)||dataTypes.contains(IndexDataType.ADD_STUDENT_REGISTRATION_NUM)) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-			saveData(indexBaseMonthDataDao.getAddStudentRegistrationData(dayStr,tenantId), dayStr, IndexDataType.ADD_STUDENT_REGISTRATION_NUM); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+			saveData(indexBaseMonthDataDao.getAddStudentRegistrationData(dayStr,tenantId), dayStr, IndexDataType.ADD_STUDENT_REGISTRATION_NUM, tenantId); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 		} 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 		if(CollectionUtils.isEmpty(dataTypes)||dataTypes.contains(IndexDataType.MUSIC_GROUP_STUDENT)) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-			saveData(indexBaseMonthDataDao.getMusicStudentData(dayStr, null,tenantId), dayStr, IndexDataType.MUSIC_GROUP_STUDENT); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+			saveData(indexBaseMonthDataDao.getMusicStudentData(dayStr, null,tenantId), dayStr, IndexDataType.MUSIC_GROUP_STUDENT, tenantId); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 		} 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 		if(CollectionUtils.isEmpty(dataTypes)||dataTypes.contains(IndexDataType.NEWLY_STUDENT_NUM)) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-			saveData(null, nowDate.toString(), IndexDataType.NEWLY_STUDENT_NUM); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+			saveData(null, nowDate.toString(), IndexDataType.NEWLY_STUDENT_NUM, tenantId); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 		} 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 		if(CollectionUtils.isEmpty(dataTypes)||dataTypes.contains(IndexDataType.QUIT_MUSIC_GROUP_STUDENT_NUM)) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-			saveData(null, nowDate.toString(), IndexDataType.QUIT_MUSIC_GROUP_STUDENT_NUM); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+			saveData(null, nowDate.toString(), IndexDataType.QUIT_MUSIC_GROUP_STUDENT_NUM, tenantId); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 		} 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 		if(CollectionUtils.isEmpty(dataTypes)||dataTypes.contains(IndexDataType.VIP_PRACTICE_STUDENT_NUM)) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-			saveData(indexBaseMonthDataDao.getOtherStudentData(dayStr,tenantId), dayStr, IndexDataType.VIP_PRACTICE_STUDENT_NUM); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+			saveData(indexBaseMonthDataDao.getOtherStudentData(dayStr,tenantId), dayStr, IndexDataType.VIP_PRACTICE_STUDENT_NUM, tenantId); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 		} 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 		if(CollectionUtils.isEmpty(dataTypes)||dataTypes.contains(IndexDataType.VIP_PRACTICE_ADD_STUDENT_NUM)) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-			saveData(indexBaseMonthDataDao.getVipPracticeAddStudentData(dayStr,tenantId), dayStr, IndexDataType.VIP_PRACTICE_ADD_STUDENT_NUM); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+			saveData(indexBaseMonthDataDao.getVipPracticeAddStudentData(dayStr,tenantId), dayStr, IndexDataType.VIP_PRACTICE_ADD_STUDENT_NUM, tenantId); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 		} 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				  
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 		//云教练相关 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 		//分部学员数量 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 		if(CollectionUtils.isEmpty(dataTypes)||dataTypes.contains(IndexDataType.ORGAN_TOTAL_STUDENT_NUM)) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-			saveData(indexBaseMonthDataDao.getOrgansStudentNumData(dayStr,tenantId), dayStr, IndexDataType.ORGAN_TOTAL_STUDENT_NUM); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+			saveData(indexBaseMonthDataDao.getOrgansStudentNumData(dayStr,tenantId), dayStr, IndexDataType.ORGAN_TOTAL_STUDENT_NUM, tenantId); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 		} 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				  
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 		//会员数量 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 		if(CollectionUtils.isEmpty(dataTypes)||dataTypes.contains(IndexDataType.MEMBER_STUDENT_NUM)) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-			saveData(indexBaseMonthDataDao.getMemberStudentNumData(dayStr,tenantId), dayStr, IndexDataType.MEMBER_STUDENT_NUM); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+			saveData(indexBaseMonthDataDao.getMemberStudentNumData(dayStr,tenantId), dayStr, IndexDataType.MEMBER_STUDENT_NUM, tenantId); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 		} 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				  
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 		//新增会员数量 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 		if(CollectionUtils.isEmpty(dataTypes)||dataTypes.contains(IndexDataType.NEW_MEMBER_STUDENT_NUM)) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-			saveData(indexBaseMonthDataDao.getNewMemberStudentNumData(dayStr,tenantId), dayStr, IndexDataType.NEW_MEMBER_STUDENT_NUM); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+			saveData(indexBaseMonthDataDao.getNewMemberStudentNumData(dayStr,tenantId), dayStr, IndexDataType.NEW_MEMBER_STUDENT_NUM, tenantId); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 		} 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				  
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 		//试用会员数量 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 		if(CollectionUtils.isEmpty(dataTypes)||dataTypes.contains(IndexDataType.EXPERIENCE_MEMBER_STUDENT_NUM)) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-			saveData(indexBaseMonthDataDao.getExperienceMemberStudentNumData(dayStr,tenantId), dayStr, IndexDataType.EXPERIENCE_MEMBER_STUDENT_NUM); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+			saveData(indexBaseMonthDataDao.getExperienceMemberStudentNumData(dayStr,tenantId), dayStr, IndexDataType.EXPERIENCE_MEMBER_STUDENT_NUM, tenantId); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 		} 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				  
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 		//云教练使用用户 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 		if(CollectionUtils.isEmpty(dataTypes)||dataTypes.contains(IndexDataType.CLOUD_STUDY_DAY_USE_STUDENT_NUM)) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-			saveData(indexBaseMonthDataDao.getCloudStudyDayUseStudentNumData(dayStr,tenantId), dayStr, IndexDataType.CLOUD_STUDY_DAY_USE_STUDENT_NUM); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+			saveData(indexBaseMonthDataDao.getCloudStudyDayUseStudentNumData(dayStr,tenantId), dayStr, IndexDataType.CLOUD_STUDY_DAY_USE_STUDENT_NUM, tenantId); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 		} 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				  
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 		//活跃用户 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 		if(CollectionUtils.isEmpty(dataTypes)||dataTypes.contains(IndexDataType.CLOUD_STUDY_LIVELY_STUDENT_NUM)) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-			saveData(indexBaseMonthDataDao.getCloudStudyLivelyStudentNumData(dayStr,tenantId), dayStr, IndexDataType.CLOUD_STUDY_LIVELY_STUDENT_NUM); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+			saveData(indexBaseMonthDataDao.getCloudStudyLivelyStudentNumData(dayStr,tenantId), dayStr, IndexDataType.CLOUD_STUDY_LIVELY_STUDENT_NUM, tenantId); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 		} 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				  
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 		//云教练新增人数 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 		if(CollectionUtils.isEmpty(dataTypes)||dataTypes.contains(IndexDataType.CLOUD_STUDY_NEW_STUDENT_NUM)) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-			saveData(indexBaseMonthDataDao.getCloudStudyNewStudentNumData(dayStr,tenantId), dayStr, IndexDataType.CLOUD_STUDY_NEW_STUDENT_NUM); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+			saveData(indexBaseMonthDataDao.getCloudStudyNewStudentNumData(dayStr,tenantId), dayStr, IndexDataType.CLOUD_STUDY_NEW_STUDENT_NUM, tenantId); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 		} 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				  
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 		//云教练新用户人数 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 		if(CollectionUtils.isEmpty(dataTypes)||dataTypes.contains(IndexDataType.CLOUD_NEW_STUDENT_NUM)) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 			List<Integer> studentIdList = studentRegistrationDao.findStudentIds(tenantId); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-			saveData(studentDao.groupOrganId(null,studentIdList),LocalDate.now().toString(),IndexDataType.CLOUD_NEW_STUDENT_NUM); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+			saveData(studentDao.groupOrganId(null,studentIdList),LocalDate.now().toString(),IndexDataType.CLOUD_NEW_STUDENT_NUM, tenantId); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 		} 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				  
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 	} 
			 | 
		
	
	
		
			
				| 
					
				 | 
			
			
				@@ -575,7 +574,7 @@ public class IndexBaseMonthDataServiceImpl extends BaseServiceImpl<Long, IndexBa 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 	 * @date 2021/1/11 0011 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 	 * @return void 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 	 */ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-	private void saveData(List<IndexBaseMonthData> dataList, String dayStr, IndexDataType indexDataType){ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+	private void saveData(List<IndexBaseMonthData> dataList, String dayStr, IndexDataType indexDataType, Integer tenantId){ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 		Date date = DateUtil.stringToDate(dayStr, "yyyy-MM-dd"); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 		if(Objects.isNull(dataList)){ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 			dataList = new ArrayList<>(); 
			 | 
		
	
	
		
			
				| 
					
				 | 
			
			
				@@ -598,7 +597,7 @@ public class IndexBaseMonthDataServiceImpl extends BaseServiceImpl<Long, IndexBa 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 			if(specialType&&ignoreOrganIds.contains(organId)){ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 				continue; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 			} 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-			dataList.add(new IndexBaseMonthData(date, organId)); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+			dataList.add(new IndexBaseMonthData(date, organId, tenantId)); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 		} 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 		if(!IndexDataType.NEWLY_STUDENT_NUM.equals(indexDataType)&&!IndexDataType.QUIT_MUSIC_GROUP_STUDENT_NUM.equals(indexDataType)){ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 			indexBaseMonthDataDao.deleteWithMonthAndType(Arrays.asList(dayStr), indexDataType); 
			 |