|  | @@ -244,7 +244,8 @@ public class IndexBaseMonthDataServiceImpl extends BaseServiceImpl<Long, IndexBa
 | 
	
		
			
				|  |  |  					IndexDataType.VIP_GROUP_OFFLINE_COURSE.equals(typeDateMapEntry.getKey())){
 | 
	
		
			
				|  |  |  				for (IndexBaseMonthData indexBaseMonthData : indexBaseData.getIndexMonthData()) {
 | 
	
		
			
				|  |  |  					if(vipCategoryCourseListMap.containsKey(indexBaseMonthData.getMonth())&&vipCategoryCourseListMap.get(indexBaseMonthData.getMonth()).containsKey(indexBaseData.getDataType())){
 | 
	
		
			
				|  |  | -						indexBaseMonthData.setExtendInfo(JSON.toJSONString(vipCategoryCourseListMap.get(indexBaseMonthData.getMonth()).get(indexBaseData.getDataType())));
 | 
	
		
			
				|  |  | +						TreeMap<String, Integer> extendSortMap = new TreeMap<>(vipCategoryCourseListMap.get(indexBaseMonthData.getMonth()).get(indexBaseData.getDataType()));
 | 
	
		
			
				|  |  | +						indexBaseMonthData.setExtendInfo(JSON.toJSONString(extendSortMap));
 | 
	
		
			
				|  |  |  					}
 | 
	
		
			
				|  |  |  				}
 | 
	
		
			
				|  |  |  			}
 | 
	
	
		
			
				|  | @@ -331,8 +332,8 @@ public class IndexBaseMonthDataServiceImpl extends BaseServiceImpl<Long, IndexBa
 | 
	
		
			
				|  |  |  		saveData(vipCourseData, dayStr, IndexDataType.VIP_GROUP_COURSE);
 | 
	
		
			
				|  |  |  
 | 
	
		
			
				|  |  |  
 | 
	
		
			
				|  |  | -		List<IndexBaseMonthData> vipOnlineCourseData = indexBaseMonthDataDao.getGroupCourseDataWithGroup(dayStr, GroupType.VIP, null, null);
 | 
	
		
			
				|  |  | -		List<OrganVipGroupCategoryCourseNumDto> vipGroupOnlineCategoryCourseData = indexBaseMonthDataDao.getVipGroupCategoryCourseData(dayStr, GroupType.VIP, null, null);
 | 
	
		
			
				|  |  | +		List<IndexBaseMonthData> vipOnlineCourseData = indexBaseMonthDataDao.getGroupCourseDataWithGroup(dayStr, GroupType.VIP, null, TeachModeEnum.ONLINE);
 | 
	
		
			
				|  |  | +		List<OrganVipGroupCategoryCourseNumDto> vipGroupOnlineCategoryCourseData = indexBaseMonthDataDao.getVipGroupCategoryCourseData(dayStr, GroupType.VIP, null, TeachModeEnum.ONLINE);
 | 
	
		
			
				|  |  |  		Map<Integer, Map<String, Integer>> organOnlineCategoryCourseMap = new HashMap<>();
 | 
	
		
			
				|  |  |  		if(!CollectionUtils.isEmpty(vipGroupOnlineCategoryCourseData)){
 | 
	
		
			
				|  |  |  			organOnlineCategoryCourseMap = vipGroupOnlineCategoryCourseData.stream().collect(Collectors.groupingBy(OrganVipGroupCategoryCourseNumDto::getOrganId, Collectors.toMap(OrganVipGroupCategoryCourseNumDto::getCategoryName, o -> o.getCourseNum())));
 | 
	
	
		
			
				|  | @@ -345,8 +346,8 @@ public class IndexBaseMonthDataServiceImpl extends BaseServiceImpl<Long, IndexBa
 | 
	
		
			
				|  |  |  		saveData(vipOnlineCourseData, dayStr, IndexDataType.VIP_GROUP_ONLINE_COURSE);
 | 
	
		
			
				|  |  |  
 | 
	
		
			
				|  |  |  
 | 
	
		
			
				|  |  | -		List<IndexBaseMonthData> vipOfflineCourseData = indexBaseMonthDataDao.getGroupCourseDataWithGroup(dayStr, GroupType.VIP, null, null);
 | 
	
		
			
				|  |  | -		List<OrganVipGroupCategoryCourseNumDto> vipGroupOfflineCategoryCourseData = indexBaseMonthDataDao.getVipGroupCategoryCourseData(dayStr, GroupType.VIP, null, null);
 | 
	
		
			
				|  |  | +		List<IndexBaseMonthData> vipOfflineCourseData = indexBaseMonthDataDao.getGroupCourseDataWithGroup(dayStr, GroupType.VIP, null, TeachModeEnum.OFFLINE);
 | 
	
		
			
				|  |  | +		List<OrganVipGroupCategoryCourseNumDto> vipGroupOfflineCategoryCourseData = indexBaseMonthDataDao.getVipGroupCategoryCourseData(dayStr, GroupType.VIP, null, TeachModeEnum.OFFLINE);
 | 
	
		
			
				|  |  |  		Map<Integer, Map<String, Integer>> organOfflineCategoryCourseMap = new HashMap<>();
 | 
	
		
			
				|  |  |  		if(!CollectionUtils.isEmpty(vipGroupOfflineCategoryCourseData)){
 | 
	
		
			
				|  |  |  			organOfflineCategoryCourseMap = vipGroupOfflineCategoryCourseData.stream().collect(Collectors.groupingBy(OrganVipGroupCategoryCourseNumDto::getOrganId, Collectors.toMap(OrganVipGroupCategoryCourseNumDto::getCategoryName, o -> o.getCourseNum())));
 | 
	
	
		
			
				|  | @@ -462,7 +463,7 @@ public class IndexBaseMonthDataServiceImpl extends BaseServiceImpl<Long, IndexBa
 | 
	
		
			
				|  |  |  			List<IndexErrInfoDto> twoChild = new ArrayList<>();
 | 
	
		
			
				|  |  |  
 | 
	
		
			
				|  |  |  			//未缴费学员数
 | 
	
		
			
				|  |  | -			twoChild.add(new IndexErrInfoDto(IndexErrorType.STUDENT_NOT_PAYMENT, IndexErrorType.STUDENT_NOT_PAYMENT.getMsg(), indexBaseMonthDataDao.countNoPaymentStudentNum(organIds,educationUserId), Arrays.asList(educationUserId)));
 | 
	
		
			
				|  |  | +			twoChild.add(new IndexErrInfoDto(IndexErrorType.STUDENT_ARREARAGE, IndexErrorType.STUDENT_ARREARAGE.getMsg(), indexBaseMonthDataDao.countNoPaymentStudentNum(organIds,educationUserId,0), Arrays.asList(educationUserId)));
 | 
	
		
			
				|  |  |  
 | 
	
		
			
				|  |  |  			//申请退团学员数
 | 
	
		
			
				|  |  |  			List<Long> quitGroupNum = indexBaseMonthDataDao.queryApplyForQuitGroupNum(organIds,educationUserId);
 | 
	
	
		
			
				|  | @@ -521,12 +522,6 @@ public class IndexBaseMonthDataServiceImpl extends BaseServiceImpl<Long, IndexBa
 | 
	
		
			
				|  |  |  				noAttendance = indexBaseMonthDataDao.getNoAttendance(organIds,startTime,classGroupIds);
 | 
	
		
			
				|  |  |  				courseTimeError = indexBaseMonthDataDao.getCourseTimeError(organIds,classGroupIds);
 | 
	
		
			
				|  |  |  			}
 | 
	
		
			
				|  |  | -			String monthStr = DateUtil.format(date, DateUtil.ISO_YEAR_MONTH_FORMAT);
 | 
	
		
			
				|  |  | -			//全职未离职老师
 | 
	
		
			
				|  |  | -			//预计课酬较低
 | 
	
		
			
				|  |  | -			int lowTeacherSalary = indexBaseMonthDataDao.queryLowTeacherSalary(organIdsStr,monthStr);
 | 
	
		
			
				|  |  | -			fourChild.add(new IndexErrInfoDto(IndexErrorType.TEACHER_EXPECT_SALARY_BE_LOW, IndexErrorType.TEACHER_EXPECT_SALARY_BE_LOW.getMsg(),lowTeacherSalary, null));
 | 
	
		
			
				|  |  | -
 | 
	
		
			
				|  |  |  			fourChild.add(new IndexErrInfoDto(IndexErrorType.COURSE_TIME_ERROR, IndexErrorType.COURSE_TIME_ERROR.getMsg(), courseTimeError, null));
 | 
	
		
			
				|  |  |  
 | 
	
		
			
				|  |  |  			fourChild.add(new IndexErrInfoDto(IndexErrorType.TEACHER_EXCEPTION_ATTENDANCE, IndexErrorType.TEACHER_EXCEPTION_ATTENDANCE.getMsg(), attendanceError, null));
 | 
	
	
		
			
				|  | @@ -795,6 +790,12 @@ public class IndexBaseMonthDataServiceImpl extends BaseServiceImpl<Long, IndexBa
 | 
	
		
			
				|  |  |  		if (sysUser == null) {
 | 
	
		
			
				|  |  |  			throw new BizException("用户信息获取失败");
 | 
	
		
			
				|  |  |  		}
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +		Set<Integer> organIdSet = null;
 | 
	
		
			
				|  |  | +		if(StringUtils.isNotBlank(organIds)){
 | 
	
		
			
				|  |  | +			organIdSet = Arrays.stream(organIds.split(",")).map(Integer::new).collect(Collectors.toSet());
 | 
	
		
			
				|  |  | +		}
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  |  		//当前用户是否是分部经理
 | 
	
		
			
				|  |  |  		List<Integer> userRole = employeeDao.queryUserRole(sysUser.getId());
 | 
	
		
			
				|  |  |  		Integer educationUserId = null;
 | 
	
	
		
			
				|  | @@ -819,6 +820,18 @@ public class IndexBaseMonthDataServiceImpl extends BaseServiceImpl<Long, IndexBa
 | 
	
		
			
				|  |  |  			}
 | 
	
		
			
				|  |  |  		}
 | 
	
		
			
				|  |  |  		result.add(indexErrInfoDto);
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +		//未缴费学员数
 | 
	
		
			
				|  |  | +		result.add(new IndexErrInfoDto(IndexErrorType.STUDENT_NOT_PAYMENT, IndexErrorType.STUDENT_NOT_PAYMENT.getMsg(), indexBaseMonthDataDao.countNoPaymentStudentNum(organIdSet,educationUserId, 1), Arrays.asList(educationUserId)));
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +		String monthStr = DateUtil.format(date, DateUtil.ISO_YEAR_MONTH_FORMAT);
 | 
	
		
			
				|  |  | +		//全职未离职老师
 | 
	
		
			
				|  |  | +		//预计课酬较低
 | 
	
		
			
				|  |  | +		int lowTeacherSalary = indexBaseMonthDataDao.queryLowTeacherSalary(organIds,monthStr);
 | 
	
		
			
				|  |  | +		result.add(new IndexErrInfoDto(IndexErrorType.TEACHER_EXPECT_SALARY_BE_LOW, IndexErrorType.TEACHER_EXPECT_SALARY_BE_LOW.getMsg(),lowTeacherSalary, null));
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  |  		return result;
 | 
	
		
			
				|  |  |  	}
 | 
	
		
			
				|  |  |  
 | 
	
	
		
			
				|  | @@ -862,7 +875,7 @@ public class IndexBaseMonthDataServiceImpl extends BaseServiceImpl<Long, IndexBa
 | 
	
		
			
				|  |  |  		resultMap.put("musicPatrol",flag1);
 | 
	
		
			
				|  |  |  		boolean flag2 = false;
 | 
	
		
			
				|  |  |  		if(!flag2){
 | 
	
		
			
				|  |  | -			int countNoPaymentStudentNum = indexBaseMonthDataDao.countNoPaymentStudentNum(organIds,educationUserId);
 | 
	
		
			
				|  |  | +			int countNoPaymentStudentNum = indexBaseMonthDataDao.countNoPaymentStudentNum(organIds,educationUserId, 0);
 | 
	
		
			
				|  |  |  			if(countNoPaymentStudentNum > 0){
 | 
	
		
			
				|  |  |  				flag2 = true;
 | 
	
		
			
				|  |  |  			}
 |