Kaynağa Gözat

课耗收入导出bug处理

zouxuan 1 yıl önce
ebeveyn
işleme
0ce9ed4929

+ 1 - 1
mec-biz/src/main/java/com/ym/mec/biz/dal/dao/CourseScheduleStudentPaymentDao.java

@@ -514,7 +514,7 @@ public interface CourseScheduleStudentPaymentDao extends BaseDAO<Long, CourseSch
      * @param courseIds
      * @return
      */
-    List<CourseSchedule> getCourseScheduleStudentNum(@Param("courseIds") List<Long> courseIds);
+    List<CourseExpectPriceDto> getCourseScheduleStudentNum(@Param("courseIds") List<Long> courseIds);
 
     List<CourseScheduleStudentPayment> getWithClassGroupIds(@Param("classGroupIds") List<Integer> classGroupIds,
                                                             @Param("studentId") Integer studentId);

+ 18 - 0
mec-biz/src/main/java/com/ym/mec/biz/dal/dto/CourseExpectPriceDto.java

@@ -0,0 +1,18 @@
+package com.ym.mec.biz.dal.dto;
+
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+
+import java.math.BigDecimal;
+
+@Data
+public class CourseExpectPriceDto {
+    @ApiModelProperty(value = "课程id")
+    private Long courseId;
+
+    @ApiModelProperty(value = "学生数量")
+    private Integer studentNum;
+
+    @ApiModelProperty(value = "课耗收入")
+    private BigDecimal expectPrice;
+}

+ 15 - 7
mec-biz/src/main/java/com/ym/mec/biz/service/impl/CourseScheduleServiceImpl.java

@@ -72,6 +72,7 @@ import java.time.*;
 import java.time.format.DateTimeFormatter;
 import java.time.temporal.TemporalAdjusters;
 import java.util.*;
+import java.util.function.Function;
 import java.util.stream.Collectors;
 
 import static com.ym.mec.biz.dal.entity.CourseSchedule.CourseScheduleType.MUSIC_NETWORK;
@@ -4342,8 +4343,8 @@ public class CourseScheduleServiceImpl extends BaseServiceImpl<Long, CourseSched
 				courseMergeCourseNumMap = MapUtil.convertIntegerMap(courseMergeCourseNum);
 			}
 			//获取课程的预计人数
-			List<CourseSchedule> courseScheduleStudentNum = courseScheduleStudentPaymentDao.getCourseScheduleStudentNum(courseScheduleIds);
-			Map<Long, Integer> courseScheduleStudentNumMap = courseScheduleStudentNum.stream().collect(Collectors.toMap(CourseSchedule::getId, CourseSchedule::getStudentNum));
+			List<CourseExpectPriceDto> courseScheduleStudentNum = courseScheduleStudentPaymentDao.getCourseScheduleStudentNum(courseScheduleIds);
+			Map<Long, CourseExpectPriceDto> courseScheduleStudentNumMap = courseScheduleStudentNum.stream().collect(Collectors.toMap(CourseExpectPriceDto::getCourseId, Function.identity()));
 			//获取班级声部名称
             List<Map<Integer, String>> classGroupSubjectNameMaps = classGroupDao.findClassGroupSubjectNameMaps(courseScheduleIds);
             Map<Integer, String> classGroupSubjectNameMap = MapUtil.convertIntegerMap(classGroupSubjectNameMaps);
@@ -4409,8 +4410,11 @@ public class CourseScheduleServiceImpl extends BaseServiceImpl<Long, CourseSched
                 if (courseMergeCourseNumMap.containsKey(result.getId())) {
                     result.setBeMerged(courseMergeCourseNumMap.get(result.getId()) > 0 ? true : false);
                 }
-                result.setStudentNum(courseScheduleStudentNumMap.getOrDefault(result.getId(), 0));
-
+				CourseExpectPriceDto priceDto = courseScheduleStudentNumMap.get(result.getId());
+				if(Objects.nonNull(priceDto)){
+					result.setStudentNum(priceDto.getStudentNum());
+					result.setExpectPrice(priceDto.getExpectPrice());
+				}
                 MusicGroupBasicDto musicGroupBasicDto = cooperationMap.get(result.getId().toString());
                 if(null != musicGroupBasicDto){
                     result.setCooperationOrgan(musicGroupBasicDto.getCooperationOrganName());
@@ -4471,8 +4475,8 @@ public class CourseScheduleServiceImpl extends BaseServiceImpl<Long, CourseSched
 			courseMergeCourseNumMap = MapUtil.convertIntegerMap(courseMergeCourseNum);
 		}
 		//获取课程的预计人数
-		List<CourseSchedule> courseScheduleStudentNum = courseScheduleStudentPaymentDao.getCourseScheduleStudentNum(courseScheduleIds);
-		Map<Long, Integer> courseScheduleStudentNumMap = courseScheduleStudentNum.stream().collect(Collectors.toMap(CourseSchedule::getId, CourseSchedule::getStudentNum));
+		List<CourseExpectPriceDto> courseScheduleStudentNum = courseScheduleStudentPaymentDao.getCourseScheduleStudentNum(courseScheduleIds);
+		Map<Long, CourseExpectPriceDto> courseScheduleStudentNumMap = courseScheduleStudentNum.stream().collect(Collectors.toMap(CourseExpectPriceDto::getCourseId, Function.identity()));
 		//获取班级声部名称
 		List<Map<Integer, String>> classGroupSubjectNameMaps = classGroupDao.findClassGroupSubjectNameMaps(courseScheduleIds);
 		Map<Integer, String> classGroupSubjectNameMap = MapUtil.convertIntegerMap(classGroupSubjectNameMaps);
@@ -4535,7 +4539,11 @@ public class CourseScheduleServiceImpl extends BaseServiceImpl<Long, CourseSched
 			if (courseMergeCourseNumMap.containsKey(result.getId())) {
 				result.setBeMerged(courseMergeCourseNumMap.get(result.getId()) > 0 ? true : false);
 			}
-			result.setStudentNum(courseScheduleStudentNumMap.getOrDefault(result.getId(), 0));
+			CourseExpectPriceDto priceDto = courseScheduleStudentNumMap.get(result.getId());
+			if(Objects.nonNull(priceDto)){
+				result.setStudentNum(priceDto.getStudentNum());
+				result.setExpectPrice(priceDto.getExpectPrice());
+			}
 
 			MusicGroupBasicDto musicGroupBasicDto = cooperationMap.get(result.getId().toString());
 			if(null != musicGroupBasicDto){

+ 3 - 6
mec-biz/src/main/java/com/ym/mec/biz/service/impl/IndexErrDataRecordServiceImpl.java

@@ -4,10 +4,7 @@ import com.ym.mec.auth.api.client.SysUserFeignService;
 import com.ym.mec.auth.api.entity.SysUser;
 import com.ym.mec.auth.api.entity.SysUserRole;
 import com.ym.mec.biz.dal.dao.*;
-import com.ym.mec.biz.dal.dto.CourseScheduleEndDto;
-import com.ym.mec.biz.dal.dto.IndexErrorDataExportDto;
-import com.ym.mec.biz.dal.dto.SimpleUserDto;
-import com.ym.mec.biz.dal.dto.TeacherVisitDto;
+import com.ym.mec.biz.dal.dto.*;
 import com.ym.mec.biz.dal.entity.*;
 import com.ym.mec.biz.dal.enums.IndexErrorType;
 import com.ym.mec.biz.dal.enums.InspectionItemEnum;
@@ -427,8 +424,8 @@ public class IndexErrDataRecordServiceImpl extends BaseServiceImpl<Long, IndexEr
 				courseMergeCourseNumMap = MapUtil.convertIntegerMap(courseMergeCourseNum);
 			}
 			//获取课程的预计人数
-			List<CourseSchedule> courseScheduleStudentNum = courseScheduleStudentPaymentDao.getCourseScheduleStudentNum(courseScheduleIds);
-			Map<Long, Integer> courseScheduleStudentNumMap = courseScheduleStudentNum.stream().collect(Collectors.toMap(CourseSchedule::getId, CourseSchedule::getStudentNum));
+			List<CourseExpectPriceDto> courseScheduleStudentNum = courseScheduleStudentPaymentDao.getCourseScheduleStudentNum(courseScheduleIds);
+			Map<Long, Integer> courseScheduleStudentNumMap = courseScheduleStudentNum.stream().collect(Collectors.toMap(CourseExpectPriceDto::getCourseId, CourseExpectPriceDto::getStudentNum));
 			//获取班级声部名称
 			List<Map<Integer, String>> classGroupSubjectNameMaps = classGroupDao.findClassGroupSubjectNameMaps(courseScheduleIds);
 			Map<Integer, String> classGroupSubjectNameMap = MapUtil.convertIntegerMap(classGroupSubjectNameMaps);

+ 1 - 2
mec-biz/src/main/resources/config/mybatis/CourseScheduleMapper.xml

@@ -2493,12 +2493,11 @@
         CASE WHEN COUNT(CASE WHEN sa.id_ IS NULL OR (sa.status_ = 'LEAVE' AND sa.remark_ IS NOT NULL) THEN NULL ELSE 1 END) > 0 THEN 1 ELSE 0 END isCallNames,
         CASE WHEN COUNT(CASE WHEN ta.is_complaints_ = 1 THEN 1 ELSE NULL END) > 0 THEN '1' ELSE '0' END is_complaints_,
         GROUP_CONCAT(distinct CASE WHEN csts.teacher_role_ = 'TEACHING' THEN csts.user_id_ END) teachingTeacherIds,
-        csts.expect_salary_,SUM(cssp.expect_price_) expect_price_
+        csts.expect_salary_
         FROM
         course_schedule cs
         LEFT JOIN course_schedule_teacher_salary csts ON csts.course_schedule_id_ = cs.id_
         left join teacher_attendance ta on ta.course_schedule_id_ = cs.id_
-        LEFT JOIN course_schedule_student_payment cssp ON cssp.course_schedule_id_ = cs.id_
         LEFT JOIN student_attendance sa ON sa.course_schedule_id_ = cs.id_
         WHERE cs.del_flag_ = '0' AND cs.pre_course_flag_ = 0
         <if test="startTime != null and startTime != ''">

+ 8 - 2
mec-biz/src/main/resources/config/mybatis/CourseScheduleStudentPaymentMapper.xml

@@ -747,8 +747,14 @@
 		  AND cs.type_ = #{courseType}
 	  </if>
 	</select>
-    <select id="getCourseScheduleStudentNum" resultMap="com.ym.mec.biz.dal.dao.CourseScheduleDao.CourseSchedule">
-		SELECT course_schedule_id_ id_,COUNT(*) student_num_ FROM course_schedule_student_payment WHERE course_schedule_id_ IN
+	<resultMap id="CourseExpectPriceDto" type="com.ym.mec.biz.dal.dto.CourseExpectPriceDto">
+		<result property="courseId" column="course_schedule_id_"/>
+		<result property="expectPrice" column="expect_price_"/>
+		<result property="studentNum" column="student_num_"/>
+	</resultMap>
+    <select id="getCourseScheduleStudentNum" resultMap="CourseExpectPriceDto">
+		SELECT course_schedule_id_,COUNT(*) student_num_,SUM(expect_price_) expect_price_
+		FROM course_schedule_student_payment WHERE course_schedule_id_ IN
 		<foreach collection="courseIds" item="courseId" open="(" close=")" separator=",">
 			#{courseId}
 		</foreach>