| 
					
				 | 
			
			
				@@ -888,21 +888,35 @@ public class ExportServiceImpl implements ExportService { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				     @Async 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				     public void studentVipPractice(String organId, ManagerDownload managerDownload) throws FileNotFoundException { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				         List<StudentVipPracticeExportDto> studentVipPracticeExportDtos = courseScheduleStudentPaymentDao.exportStudentVipPractice(organId); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-        for (StudentVipPracticeExportDto studentVipPracticeExportDto : studentVipPracticeExportDtos) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-            String vipOverTeacherIds = studentVipPracticeExportDto.getVipOverTeacherIds(); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-            String vipOverTeacherNames = studentVipPracticeExportDto.getVipOverTeacherNames(); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-            if(StringUtils.isNotEmpty(vipOverTeacherIds) && vipOverTeacherIds.contains(",")){ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                studentVipPracticeExportDto.setVipOverTeacherIds(vipOverTeacherIds.split(",")[0]); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                studentVipPracticeExportDto.setVipOverTeacherNames(vipOverTeacherNames.split(",")[0]); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-            } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-            String practiceOverTeacherIds = studentVipPracticeExportDto.getPracticeOverTeacherIds(); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-            String practiceOverTeacherNames = studentVipPracticeExportDto.getPracticeOverTeacherNames(); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-            if(StringUtils.isNotEmpty(practiceOverTeacherIds) && practiceOverTeacherIds.contains(",")){ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                studentVipPracticeExportDto.setPracticeOverTeacherIds(practiceOverTeacherIds.split(",")[0]); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                studentVipPracticeExportDto.setPracticeOverTeacherNames(practiceOverTeacherNames.split(",")[0]); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        if(studentVipPracticeExportDtos != null && studentVipPracticeExportDtos.size() > 0){ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            List<Integer> studentIds = studentVipPracticeExportDtos.stream().map(e -> e.getUserId()).collect(Collectors.toList()); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            //获取学员最后一节已结束的vip课的老师以及编号 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            List<BaseNameDto> vipBaseNameDtos = courseScheduleStudentPaymentDao.queryLastOverTeacher(studentIds,"VIP"); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            Map<Integer, List<BaseNameDto>> vipBaseNameMap = new HashMap<>(); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            if(vipBaseNameDtos != null && vipBaseNameDtos.size() > 0){ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                vipBaseNameMap = vipBaseNameDtos.stream().collect(Collectors.groupingBy(BaseNameDto::getUserId)); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            //获取学员最后一节已结束的网管课的老师以及编号 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            List<BaseNameDto> practiceBaseNameDtos = courseScheduleStudentPaymentDao.queryLastOverTeacher(studentIds,"PRACTICE"); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            Map<Integer, List<BaseNameDto>> practiceBaseNameMap = new HashMap<>(); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            if(practiceBaseNameDtos != null && practiceBaseNameDtos.size() > 0){ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                practiceBaseNameMap = practiceBaseNameDtos.stream().collect(Collectors.groupingBy(BaseNameDto::getUserId)); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            for (StudentVipPracticeExportDto studentVipPracticeExportDto : studentVipPracticeExportDtos) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                List<BaseNameDto> baseNameDtos = vipBaseNameMap.get(studentVipPracticeExportDto.getUserId()); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                if(baseNameDtos != null && baseNameDtos.size() > 0){ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                    BaseNameDto baseNameDto = baseNameDtos.get(0); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                    studentVipPracticeExportDto.setVipOverTeacherId(baseNameDto.getTeacherId()); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                    studentVipPracticeExportDto.setVipOverTeacherName(baseNameDto.getTeacherName()); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                List<BaseNameDto> baseNameDtos1 = practiceBaseNameMap.get(studentVipPracticeExportDto.getUserId()); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                if(baseNameDtos1 != null && baseNameDtos1.size() > 0){ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                    BaseNameDto baseNameDto = baseNameDtos1.get(0); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                    studentVipPracticeExportDto.setPracticeOverTeacherId(baseNameDto.getTeacherId()); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                    studentVipPracticeExportDto.setPracticeOverTeacherName(baseNameDto.getTeacherName()); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				             } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				         } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				- 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				         String basePath = new ApplicationHome(this.getClass()).getSource().getParentFile().getPath(); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				         File file = new File(basePath + "/" + managerDownload.getName()); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				         FileOutputStream fileOutputStream = new FileOutputStream(file); 
			 | 
		
	
	
		
			
				| 
					
				 | 
			
			
				@@ -911,8 +925,8 @@ public class ExportServiceImpl implements ExportService { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				         try { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				             String[] header = {"分部", "学员编号", "学生姓名", "VIP已结束课时数", "VIP未开始课时数", "已结束VIP上课老师编号", "已结束VIP上课老师", 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                     "网管课已结束课时数", "网管课未开始课时数", "已结束网管课上课老师编号", "已结束网管课上课老师", "指导老师编号", "指导老师"}; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-            String[] body = {"organName","userId", "username", "vipOverNum", "vipNotStartNum", "vipOverTeacherIds", "vipOverTeacherNames" 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                    , "practiceOverNum", "practiceNotStartNum", "practiceOverTeacherIds", "practiceOverTeacherNames","teacherId","teacherName"}; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            String[] body = {"organName","userId", "username", "vipOverNum", "vipNotStartNum", "vipOverTeacherId", "vipOverTeacherName" 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                    , "practiceOverNum", "practiceNotStartNum", "practiceOverTeacherId", "practiceOverTeacherName","teacherId","teacherName"}; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				             workbook = POIUtil.exportExcel(header, body, studentVipPracticeExportDtos); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				             workbook.write(fileOutputStream); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				             fileOutputStream.getFD().sync(); 
			 |