ソースを参照

经营报表统计调整

zouxuan 2 年 前
コミット
5411ecc750

+ 11 - 0
mec-biz/src/main/java/com/ym/mec/biz/dal/dto/ExportTeacherSalaryDto.java

@@ -113,6 +113,17 @@ public class ExportTeacherSalaryDto{
     //实际上课学员
     private int realStudentNum;
 
+    @ApiModelProperty(value = "课程收入")
+    private BigDecimal courseIncome;
+
+    public BigDecimal getCourseIncome() {
+        return courseIncome;
+    }
+
+    public void setCourseIncome(BigDecimal courseIncome) {
+        this.courseIncome = courseIncome;
+    }
+
     public String getDeductionReason() {
         return deductionReason;
     }

+ 21 - 0
mec-biz/src/main/java/com/ym/mec/biz/service/impl/CourseScheduleTeacherSalaryServiceImpl.java

@@ -1028,6 +1028,27 @@ public class CourseScheduleTeacherSalaryServiceImpl extends BaseServiceImpl<Long
         //vip课(梯度课酬)
         //陪练课
         exportTeacherSalaryDtos.addAll(courseScheduleTeacherSalaryDao.exportPracticeTeacherSalary(params));
+
+        Set<Long> allCourseIds = exportTeacherSalaryDtos.stream().map(ExportTeacherSalaryDto::getCourseScheduleId).collect(Collectors.toSet());
+        Map<Long, BigDecimal> courseIncomeMap = new HashMap<>();
+        if(!CollectionUtils.isEmpty(allCourseIds)){
+            List<CourseScheduleStudentPayment> courseScheduleStudentPayments = courseScheduleStudentPaymentDao.findByCourseScheduleIds(new ArrayList<>(allCourseIds));
+            if(!CollectionUtils.isEmpty(courseScheduleStudentPayments)){
+                courseIncomeMap = courseScheduleStudentPayments.stream().collect(Collectors.groupingBy(CourseScheduleStudentPayment::getCourseScheduleId, Collectors.mapping(CourseScheduleStudentPayment::getActualPrice, Collectors.reducing(BigDecimal.ZERO, BigDecimal::add))));
+            }
+        }
+//        Map<Long,BigDecimal> courseCast = MapUtil.convertIntegerMap(cloudTeacherFreeCourseDao.queryMapByClassDate(month));
+
+        for (ExportTeacherSalaryDto exportTeacherSalaryDto : exportTeacherSalaryDtos) {
+//            BigDecimal castOrDefault = courseCast.getOrDefault(exportTeacherSalaryDto.getCourseScheduleId(), BigDecimal.ZERO);
+//            exportTeacherSalaryDto.setCloudReverse(castOrDefault);
+            if(!courseIncomeMap.containsKey(exportTeacherSalaryDto.getCourseScheduleId())){
+                exportTeacherSalaryDto.setCourseIncome(BigDecimal.ZERO);
+            }else{
+                exportTeacherSalaryDto.setCourseIncome(courseIncomeMap.get(exportTeacherSalaryDto.getCourseScheduleId()));
+            }
+        }
+
         exportTeacherSalaryDtos.sort(Comparator.comparing(ExportTeacherSalaryDto::getTeacherId));
         return exportTeacherSalaryDtos;
     }

+ 5 - 3
mec-biz/src/main/resources/config/mybatis/CourseScheduleStudentPaymentMapper.xml

@@ -1110,10 +1110,12 @@
         group by cssp.user_id_ , u.organ_id_
 	</select>
     <select id="statCourseFee" resultType="java.util.Map">
-		select cs.organ_id_ 'key',SUM(cssp.actual_price_) 'value' from mec_pro.course_schedule cs
-		left join mec_pro.course_schedule_student_payment cssp ON cssp.course_schedule_id_ = cs.id_
+		select cs.organ_id_ 'key',SUM(cssp.actual_price_) 'value' from course_schedule cs
+		left join course_schedule_student_payment cssp ON cssp.course_schedule_id_ = cs.id_
+		left join course_schedule_teacher_salary csts ON csts.course_schedule_id_ = cs.id_
+		LEFT JOIN teacher t ON t.id_ = csts.user_id_
 		where cs.class_date_ BETWEEN #{cutFirstDayOfMonth} AND #{cutLastDayOfMonth} AND cssp.actual_price_ > 0
-		AND cs.del_flag_ = 0 AND cs.is_lock_ = 0 and cs.pre_course_flag_ = 0
+		AND cs.del_flag_ = 0 AND cs.is_lock_ = 0 and cs.pre_course_flag_ = 0 AND t.is_settlement_salary_ = 1 AND csts.settlement_time_ IS NOT NULL AND cs.tenant_id_ = 1
 		group by cs.organ_id_
 	</select>
 </mapper>

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

@@ -841,8 +841,8 @@
 		left join vip_group_category vgc on vgc.id_ = vg.vip_group_category_id_
 		left join teacher t on t.id_ = csts.user_id_ 
 		WHERE cs.`group_type_` = 'VIP'
-		  AND csts.settlement_time_ IS NULL
-		  and cs.class_date_ between #{startDate} and #{endDate} and csts.tenant_id_ = #{tenantId}
+		AND csts.settlement_time_ IS NULL
+		and cs.class_date_ between #{startDate} and #{endDate} and csts.tenant_id_ = #{tenantId}
 	</select>
 
     <select id="isTeacher" resultType="java.lang.Boolean">

+ 2 - 2
mec-web/src/main/resources/exportColumnMapper.ini

@@ -67,8 +67,8 @@ headColumns = ["交易流水号", "订单号", "订单日期", "交易类型", "
 fieldColumns = ["transNo", "orderNo", "createTime", "type.desc", "expectAmount", "actualAmount", "user.username", "user.phone", "paymentChannel", "merNos", "status.msg", "memo", "paymentChannel.desc"]
 
 [导出老师课酬]
-headColumns = ["课时编号", "老师编号", "老师姓名", "老师分部", "工作类别","课程分部", "课程组编号", "课程班名称", "乐团模式", "vip活动名称", "Vip课程类型", "阶梯奖励名称", "线上课/线下课", "线上课单价", "线下课单价","课程类别", "课时时长", "实际上课时长", "上课日期","上课时间", "教师签到状态", "教师签退状态", "教师签到时间", "教师签退时间", "考勤申诉处理状态", "处理意见","主辅", "上课地点", "应到学员", "学员签到时间", "学员签退时间", "课时课酬", "阶梯奖励", "扣款原因"]
-fieldColumns = ["courseScheduleId", "teacherId", "teacherName", "teacherOrganName", "jobType", "courseScheduleOrganName", "groupId", "groupName", "changeType", "vipActiveName", "vipCategoryName", "activeName", "teachMode", "onlineClassesUnitPrice", "offlineClassesUnitPrice", "courseScheduleType", "signCourseScheduleTime", "currentTime", "classDate", "courseScheduleStartTime", "signInStatus", "signOutStatus", "signInTime", "signOutTime", "complaintsStatus", "disposeContent", "teacherRole", "address", "studentNum", "studentSignInTime", "studentSignOutTime", "price", "rewards", "deductionReason"]
+headColumns = ["课时编号", "老师编号", "老师姓名", "老师分部", "工作类别","课程分部", "课程组编号", "课程班名称", "乐团模式", "vip活动名称", "Vip课程类型", "阶梯奖励名称", "线上课/线下课", "线上课单价", "线下课单价","课程类别", "课时时长", "实际上课时长", "上课日期","上课时间", "教师签到状态", "教师签退状态", "教师签到时间", "教师签退时间", "考勤申诉处理状态", "处理意见","主辅", "上课地点", "应到学员", "学员签到时间", "学员签退时间", "课时课酬", "阶梯奖励", "扣款原因", "收入"]
+fieldColumns = ["courseScheduleId", "teacherId", "teacherName", "teacherOrganName", "jobType", "courseScheduleOrganName", "groupId", "groupName", "changeType", "vipActiveName", "vipCategoryName", "activeName", "teachMode", "onlineClassesUnitPrice", "offlineClassesUnitPrice", "courseScheduleType", "signCourseScheduleTime", "currentTime", "classDate", "courseScheduleStartTime", "signInStatus", "signOutStatus", "signInTime", "signOutTime", "complaintsStatus", "disposeContent", "teacherRole", "address", "studentNum", "studentSignInTime", "studentSignOutTime", "price", "rewards", "deductionReason", "courseIncome"]
 
 [导出老师结转奖励]
 headColumns = ["课程组编号", "课程组名称", "分部", "指导老师", "是否结转", "结转金额", "结转日期", "备注"]