|  | @@ -27,10 +27,13 @@ import org.springframework.util.CollectionUtils;
 | 
	
		
			
				|  |  |  import sun.nio.cs.ext.Big5;
 | 
	
		
			
				|  |  |  
 | 
	
		
			
				|  |  |  import java.math.BigDecimal;
 | 
	
		
			
				|  |  | +import java.time.LocalDate;
 | 
	
		
			
				|  |  |  import java.util.*;
 | 
	
		
			
				|  |  |  import java.util.concurrent.atomic.AtomicInteger;
 | 
	
		
			
				|  |  |  import java.util.stream.Collectors;
 | 
	
		
			
				|  |  |  
 | 
	
		
			
				|  |  | +import static com.ym.mec.biz.dal.enums.IndexDataType.CLOUD_NEW_STUDENT_NUM;
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  |  @Service
 | 
	
		
			
				|  |  |  public class StudentServiceImpl extends BaseServiceImpl<Integer, Student> implements StudentService {
 | 
	
		
			
				|  |  |  
 | 
	
	
		
			
				|  | @@ -68,6 +71,9 @@ public class StudentServiceImpl extends BaseServiceImpl<Integer, Student> implem
 | 
	
		
			
				|  |  |      @Autowired
 | 
	
		
			
				|  |  |      private OrganizationDao organizationDao;
 | 
	
		
			
				|  |  |  
 | 
	
		
			
				|  |  | +    @Autowired
 | 
	
		
			
				|  |  | +    private IndexBaseMonthDataDao indexBaseMonthDataDao;
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  |      @Override
 | 
	
		
			
				|  |  |      public BaseDAO<Integer, Student> getDAO() {
 | 
	
		
			
				|  |  |          return studentDao;
 | 
	
	
		
			
				|  | @@ -542,22 +548,24 @@ public class StudentServiceImpl extends BaseServiceImpl<Integer, Student> implem
 | 
	
		
			
				|  |  |          if(!CollectionUtils.isEmpty(organsNewCloudStudyNumMapList)){
 | 
	
		
			
				|  |  |              organsNewCloudStudyNumMap = MapUtil.convertIntegerMap(organsNewCloudStudyNumMapList);
 | 
	
		
			
				|  |  |          }
 | 
	
		
			
				|  |  | -        //获取新增人数占比(已上乐团课小于等于4)
 | 
	
		
			
				|  |  | -        //获取有在读学员的乐团编号
 | 
	
		
			
				|  |  | -        //获取有在读学员的学员编号
 | 
	
		
			
				|  |  | -        List<String> musicGroupIds = studentRegistrationDao.findMusicGroupIds();
 | 
	
		
			
				|  |  | -        List<Integer> studentIdList = studentRegistrationDao.findStudentIds();
 | 
	
		
			
				|  |  | -        List<BaseMapDto<Integer, Long>> studentMusicCourseNum = studentDao.getOrganCloudNewStudentNum(musicGroupIds,studentIdList);
 | 
	
		
			
				|  |  | -        //获取有乐团没排课的数据
 | 
	
		
			
				|  |  | -        List<Integer> noCourseStudentIdList = studentRegistrationDao.findNoCourseStudentIds();
 | 
	
		
			
				|  |  | -        List<Integer> userIdList = new ArrayList<>();
 | 
	
		
			
				|  |  | -        if(!CollectionUtils.isEmpty(studentMusicCourseNum)){
 | 
	
		
			
				|  |  | -            List<BaseMapDto<Integer, Long>> collect = studentMusicCourseNum.stream().filter(e -> e.getValue() < 5).collect(Collectors.toList());
 | 
	
		
			
				|  |  | -            userIdList = collect.stream().map(e -> e.getKey()).collect(Collectors.toList());
 | 
	
		
			
				|  |  | -        }
 | 
	
		
			
				|  |  | -        userIdList.addAll(noCourseStudentIdList);
 | 
	
		
			
				|  |  | -        List<Map<Long, Long>> organsNewCloudNewStudentNumMapList = studentDao.groupOrganId(organIds,userIdList);
 | 
	
		
			
				|  |  | -        Map<String, Long> organsNewCloudNewStudentNumMap = MapUtil.convertIntegerMap(organsNewCloudNewStudentNumMapList);
 | 
	
		
			
				|  |  | +//        //获取新增人数占比(已上乐团课小于等于4)
 | 
	
		
			
				|  |  | +//        //获取有在读学员的乐团编号
 | 
	
		
			
				|  |  | +//        //获取有在读学员的学员编号
 | 
	
		
			
				|  |  | +//        List<String> musicGroupIds = studentRegistrationDao.findMusicGroupIds();
 | 
	
		
			
				|  |  | +//        List<Integer> studentIdList = studentRegistrationDao.findStudentIds();
 | 
	
		
			
				|  |  | +//        List<BaseMapDto<Integer, Long>> studentMusicCourseNum = studentDao.getOrganCloudNewStudentNum(musicGroupIds,studentIdList);
 | 
	
		
			
				|  |  | +//        //获取有乐团没排课的数据
 | 
	
		
			
				|  |  | +//        List<Integer> noCourseStudentIdList = studentRegistrationDao.findNoCourseStudentIds();
 | 
	
		
			
				|  |  | +//        List<Integer> userIdList = new ArrayList<>();
 | 
	
		
			
				|  |  | +//        if(!CollectionUtils.isEmpty(studentMusicCourseNum)){
 | 
	
		
			
				|  |  | +//            List<BaseMapDto<Integer, Long>> collect = studentMusicCourseNum.stream().filter(e -> e.getValue() < 5).collect(Collectors.toList());
 | 
	
		
			
				|  |  | +//            userIdList = collect.stream().map(e -> e.getKey()).collect(Collectors.toList());
 | 
	
		
			
				|  |  | +//        }
 | 
	
		
			
				|  |  | +//        userIdList.addAll(noCourseStudentIdList);
 | 
	
		
			
				|  |  | +//        List<Map<Long, Long>> organsNewCloudNewStudentNumMapList = studentDao.groupOrganId(organIds,userIdList);
 | 
	
		
			
				|  |  | +//        Map<String, Long> organsNewCloudNewStudentNumMap = MapUtil.convertIntegerMap(organsNewCloudNewStudentNumMapList);
 | 
	
		
			
				|  |  | +        List<IndexBaseMonthData> withDayAndDataType = indexBaseMonthDataDao.getWithDayAndDataType(LocalDate.now().toString(), CLOUD_NEW_STUDENT_NUM);
 | 
	
		
			
				|  |  | +        Map<Integer, Integer> organsNewCloudNewStudentNumMap = withDayAndDataType.stream().collect(Collectors.toMap(IndexBaseMonthData::getOrganId, e -> e.getActivateNum().intValue(), (e1, e2) -> e1));
 | 
	
		
			
				|  |  |  
 | 
	
		
			
				|  |  |          List<EduOrganStudentDataDto> result = new ArrayList<>();
 | 
	
		
			
				|  |  |  
 | 
	
	
		
			
				|  | @@ -589,8 +597,8 @@ public class StudentServiceImpl extends BaseServiceImpl<Integer, Student> implem
 | 
	
		
			
				|  |  |              if(organsNewCloudStudyNumMap.containsKey(organ.getId().toString())){
 | 
	
		
			
				|  |  |                  organStudentVipData.setNewCloudStudyStudentNum(organsNewCloudStudyNumMap.get(organ.getId().toString()).intValue());
 | 
	
		
			
				|  |  |              }
 | 
	
		
			
				|  |  | -            if(organsNewCloudNewStudentNumMap.containsKey(organ.getId().toString())){
 | 
	
		
			
				|  |  | -                organStudentVipData.setNewStudentNum(organsNewCloudNewStudentNumMap.get(organ.getId().toString()).intValue());
 | 
	
		
			
				|  |  | +            if(organsNewCloudNewStudentNumMap.containsKey(organ.getId())){
 | 
	
		
			
				|  |  | +                organStudentVipData.setNewStudentNum(organsNewCloudNewStudentNumMap.get(organ.getId()));
 | 
	
		
			
				|  |  |                  organStudentVipData.setNewStudentDuty(new BigDecimal(organStudentVipData.getNewStudentNum()).divide(new BigDecimal(organStudentVipData.getTotalStudentNum()), 4, BigDecimal.ROUND_DOWN).multiply(new BigDecimal(100)).floatValue());
 | 
	
		
			
				|  |  |              }
 | 
	
		
			
				|  |  |              result.add(organStudentVipData);
 | 
	
	
		
			
				|  | @@ -647,19 +655,22 @@ public class StudentServiceImpl extends BaseServiceImpl<Integer, Student> implem
 | 
	
		
			
				|  |  |          //获取新增人数占比(已上乐团课小于等于4)
 | 
	
		
			
				|  |  |          //获取有在读学员的乐团编号
 | 
	
		
			
				|  |  |          //获取有在读学员的学员编号
 | 
	
		
			
				|  |  | -        List<String> musicGroupIds = studentRegistrationDao.findMusicGroupIds();
 | 
	
		
			
				|  |  | -        List<Integer> studentIdList = studentRegistrationDao.findStudentIds();
 | 
	
		
			
				|  |  | -        List<BaseMapDto<Integer, Long>> studentMusicCourseNum = studentDao.getOrganCloudNewStudentNum(musicGroupIds,studentIdList);
 | 
	
		
			
				|  |  | -        //获取有乐团没排课的数据
 | 
	
		
			
				|  |  | -        List<Integer> noCourseStudentIdList = studentRegistrationDao.findNoCourseStudentIds();
 | 
	
		
			
				|  |  | -        List<Integer> userIdList = new ArrayList<>();
 | 
	
		
			
				|  |  | -        if(!CollectionUtils.isEmpty(studentMusicCourseNum)){
 | 
	
		
			
				|  |  | -            List<BaseMapDto<Integer, Long>> collect = studentMusicCourseNum.stream().filter(e -> e.getValue() < 5).collect(Collectors.toList());
 | 
	
		
			
				|  |  | -            userIdList = collect.stream().map(e -> e.getKey()).collect(Collectors.toList());
 | 
	
		
			
				|  |  | -        }
 | 
	
		
			
				|  |  | -        userIdList.addAll(noCourseStudentIdList);
 | 
	
		
			
				|  |  | -        List<Map<Long, Long>> organsNewCloudNewStudentNumMapList = studentDao.groupOrganId(organIds,userIdList);
 | 
	
		
			
				|  |  | -        Map<String, Long> organsNewCloudNewStudentNumMap = MapUtil.convertIntegerMap(organsNewCloudNewStudentNumMapList);
 | 
	
		
			
				|  |  | +//        List<String> musicGroupIds = studentRegistrationDao.findMusicGroupIds();
 | 
	
		
			
				|  |  | +//        List<Integer> studentIdList = studentRegistrationDao.findStudentIds();
 | 
	
		
			
				|  |  | +//        List<BaseMapDto<Integer, Long>> studentMusicCourseNum = studentDao.getOrganCloudNewStudentNum(musicGroupIds,studentIdList);
 | 
	
		
			
				|  |  | +//        //获取有乐团没排课的数据
 | 
	
		
			
				|  |  | +//        List<Integer> noCourseStudentIdList = studentRegistrationDao.findNoCourseStudentIds();
 | 
	
		
			
				|  |  | +//        List<Integer> userIdList = new ArrayList<>();
 | 
	
		
			
				|  |  | +//        if(!CollectionUtils.isEmpty(studentMusicCourseNum)){
 | 
	
		
			
				|  |  | +//            List<BaseMapDto<Integer, Long>> collect = studentMusicCourseNum.stream().filter(e -> e.getValue() < 5).collect(Collectors.toList());
 | 
	
		
			
				|  |  | +//            userIdList = collect.stream().map(e -> e.getKey()).collect(Collectors.toList());
 | 
	
		
			
				|  |  | +//        }
 | 
	
		
			
				|  |  | +//        userIdList.addAll(noCourseStudentIdList);
 | 
	
		
			
				|  |  | +//        List<Map<Long, Long>> organsNewCloudNewStudentNumMapList = studentDao.groupOrganId(organIds,userIdList);
 | 
	
		
			
				|  |  | +//        Map<String, Long> organsNewCloudNewStudentNumMap = MapUtil.convertIntegerMap(organsNewCloudNewStudentNumMapList);
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +        List<IndexBaseMonthData> withDayAndDataType = indexBaseMonthDataDao.getWithDayAndDataType(LocalDate.now().toString(), CLOUD_NEW_STUDENT_NUM);
 | 
	
		
			
				|  |  | +        Map<Integer, Integer> organsNewCloudNewStudentNumMap = withDayAndDataType.stream().collect(Collectors.toMap(IndexBaseMonthData::getOrganId, e -> e.getActivateNum().intValue(), (e1, e2) -> e1));
 | 
	
		
			
				|  |  |  
 | 
	
		
			
				|  |  |          List<EduOrganStudentDataDto> result = new ArrayList<>();
 | 
	
		
			
				|  |  |  
 | 
	
	
		
			
				|  | @@ -691,8 +702,8 @@ public class StudentServiceImpl extends BaseServiceImpl<Integer, Student> implem
 | 
	
		
			
				|  |  |              if(organsNewCloudStudyNumMap.containsKey(organ.getId().toString())){
 | 
	
		
			
				|  |  |                  organStudentVipData.setNewCloudStudyStudentNum(organsNewCloudStudyNumMap.get(organ.getId().toString()).intValue());
 | 
	
		
			
				|  |  |              }
 | 
	
		
			
				|  |  | -            if(organsNewCloudNewStudentNumMap.containsKey(organ.getId().toString())){
 | 
	
		
			
				|  |  | -                organStudentVipData.setNewStudentNum(organsNewCloudNewStudentNumMap.get(organ.getId().toString()).intValue());
 | 
	
		
			
				|  |  | +            if(organsNewCloudNewStudentNumMap.containsKey(organ.getId())){
 | 
	
		
			
				|  |  | +                organStudentVipData.setNewStudentNum(organsNewCloudNewStudentNumMap.get(organ.getId()));
 | 
	
		
			
				|  |  |                  organStudentVipData.setNewStudentDuty(new BigDecimal(organStudentVipData.getNewStudentNum()).divide(new BigDecimal(organStudentVipData.getTotalStudentNum()), 4, BigDecimal.ROUND_DOWN).multiply(new BigDecimal(100)).floatValue());
 | 
	
		
			
				|  |  |              }
 | 
	
		
			
				|  |  |              result.add(organStudentVipData);
 |