Преглед изворни кода

Merge branch 'zx_saas_export_0814' of http://git.dayaedu.com/yonge/mec into dev

zouxuan пре 9 месеци
родитељ
комит
97ab5a9c31

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

@@ -371,8 +371,8 @@ headColumns = ["分部","学员编号","学员姓名","手机号","学员声部"
 fieldColumns = ["organName","studentId","name","phone","subjectName","type.msg","time","amount","status == 1 ? '待激活':'已取消'","cancelReason","operatorName","operateTime","createTime"]
 
 [平衡关系-乐团课]
-headColumns = ["分部","乐团名称","乐团编号","班级名称","班级类型","班级编号","课程类型","期初预收款","期初剩余课次","期初课酬","期初被合并课预收款","期初被合并课剩余课次","期初被合并课课酬","当月新增预收","当月新增课酬","当月新增课次","当月被合并新增预收","当月被合并新增课酬","当月被合并新增课次","当月课耗收入","当月消耗课酬","当月消耗课次","当月被合并课耗收入","当月被合并消耗课酬","当月被合并消耗课次","期末预收款","期末剩余课次","期末课酬","期末被合并课预收款","期末被合并课剩余课次","期末被合并课课酬"]
-fieldColumns = ["organName","musicGroupName","musicGroupId","className","classType","classId","courseType","firstMonthPreAmount","firstMonthSubCourseNum","firstMonthCourseSalary","firstMonthPreMergeAmount","firstMonthSubMergeCourseNum","firstMonthMergeCourseSalary","currentMonthAddCourseAmount","currentMonthAddReward","currentMonthAdd","currentMonthAddMergeCourseAmount","currentMonthMergedAddReward","currentMonthMergedAdd","currentMonthCourseAmount","currentMonthConsumeReward","currentMonthConsume","currentMonthMergeCourseAmount","currentMonthMergedConsumeReward","currentMonthMergedConsume","lastMonthPreAmount","lastMonthSubCourseNum","lastMonthCourseSalary","lastMonthPreMergeAmount","lastMonthSubMergeCourseNum","lastMonthMergeCourseSalary"]
+headColumns = ["分部","乐团名称","乐团编号","班级名称","班级类型","班级编号","课程类型","期初预收款","期初剩余课次","期初课酬","期初被合并课预收款","期初被合并课剩余课次","期初被合并课课酬","当月新增预收","当月新增课酬","当月新增课次","当月被合并新增预收","当月被合并新增课酬","当月被合并新增课次","当月课耗收入","当月消耗课酬","当月消耗课次","当月被合并课耗收入","当月被合并消耗课酬","当月被合并消耗课次","期末预收款","期末剩余课次","期末课酬","期末被合并课预收款","期末被合并课剩余课次","期末被合并课课酬","被删除课次"]
+fieldColumns = ["organName","musicGroupName","musicGroupId","className","classType","classId","courseType","firstMonthPreAmount","firstMonthSubCourseNum","firstMonthCourseSalary","firstMonthPreMergeAmount","firstMonthSubMergeCourseNum","firstMonthMergeCourseSalary","currentMonthAddCourseAmount","currentMonthAddReward","currentMonthAdd","currentMonthAddMergeCourseAmount","currentMonthMergedAddReward","currentMonthMergedAdd","currentMonthCourseAmount","currentMonthConsumeReward","currentMonthConsume","currentMonthMergeCourseAmount","currentMonthMergedConsumeReward","currentMonthMergedConsume","lastMonthPreAmount","lastMonthSubCourseNum","lastMonthCourseSalary","lastMonthPreMergeAmount","lastMonthSubMergeCourseNum","lastMonthMergeCourseSalary","delCourseNum"]
 
 [平衡关系-乐团课汇总]
 headColumns = ["期初预收款","期初剩余课次","期初课酬","当月新增预收","当月新增课酬","当月新增课次","当月课耗收入","当月消耗课酬","当月消耗课次","期末预收款","期末剩余课次","期末课酬"]

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

@@ -549,7 +549,7 @@ public interface MusicGroupDao extends BaseDAO<String, MusicGroup> {
 
     List<ExportWrapper.ExportBalancedRelationshipMusicNoCourse> exportBalancedRelationshipMusicNoCourse(@Param("month") String month,@Param("organIds") String organIds);
 
-    BigDecimal exportBalancedRelationshipMusicNoClassNoCourseSum(@Param("month") String month, @Param("organIds") String organIds);
+    BigDecimal exportBalancedRelationshipMusicNoClassNoCourseSum(@Param("month") String month);
 
     //平衡关系-乐团课
     ExportWrapper.ExportBalancedRelationshipMusicCourseSum exportBalancedRelationshipMusicCourseSum(@Param("month") String month, @Param("organIds") String organIds);

+ 7 - 0
mec-biz/src/main/java/com/ym/mec/biz/dal/dto/ExportWrapper.java

@@ -1,5 +1,6 @@
 package com.ym.mec.biz.dal.dto;
 
+import com.ym.mec.biz.dal.enums.SalarySettlementTypeEnum;
 import io.swagger.annotations.ApiModel;
 import io.swagger.annotations.ApiModelProperty;
 import lombok.Data;
@@ -351,6 +352,9 @@ public class ExportWrapper {
 
         @ApiModelProperty("期末被合并课课酬")
         private String lastMonthMergeCourseSalary;
+
+        @ApiModelProperty("被删除课次")
+        private Integer delCourseNum;
     }
     @Data
     @ApiModel("平衡关系-乐团课汇总")
@@ -452,6 +456,9 @@ public class ExportWrapper {
     @Data
     @ApiModel("平衡关系-已分班未排课")
     public static class ExportBalancedRelationshipMusicNoCourse {
+        @ApiModelProperty("课酬结算方式")
+        private SalarySettlementTypeEnum settlementType;
+
         @ApiModelProperty("分部")
         private String organName;
 

+ 1 - 1
mec-biz/src/main/java/com/ym/mec/biz/service/MusicGroupService.java

@@ -491,7 +491,7 @@ public interface MusicGroupService extends BaseService<String, MusicGroup> {
 
     List<ExportWrapper.ExportBalancedRelationshipMusicNoCourse> exportBalancedRelationshipMusicNoCourseSum(String month, String organIds);
 
-    List<ExportWrapper.ExportBalancedRelationshipMusicNoClassNoCourse> exportBalancedRelationshipMusicNoClassNoCourseSum(String month, String organIds);
+    List<ExportWrapper.ExportBalancedRelationshipMusicNoClassNoCourse> exportBalancedRelationshipMusicNoClassNoCourseSum(String month);
 
     List<ExportWrapper.ExportBalancedRelationshipMusicCourseSum> exportBalancedRelationshipMusicCourseSum(String month, String organIds);
 }

+ 1 - 2
mec-biz/src/main/java/com/ym/mec/biz/service/impl/ExportServiceImpl.java

@@ -569,9 +569,8 @@ public class ExportServiceImpl implements ExportService {
     private HttpResponseResult<String> exportBalancedRelationshipMusicNoClassNoCourseSum(Map<String, Object> info){
         String month = getParam(info, "month", String.class);
         SysUser sysUser = sysUserService.getUser();
-        String organIds = organizationService.getEmployeeOrgan(sysUser.getId(), null, sysUser.getIsSuperAdmin() && sysUser.getTenantId() == -1);
         ManagerDownload managerDownload = saveManagerDownload(ExportTypeEnum.EXPORT_BALANCED_RELATIONSHIP_MUSIC_NO_CLASS_NO_COURSE_SUM,sysUser.getId());
-        return this.asyncExport(() -> this.initExportInfo(musicGroupService.exportBalancedRelationshipMusicNoClassNoCourseSum(month,organIds),
+        return this.asyncExport(() -> this.initExportInfo(musicGroupService.exportBalancedRelationshipMusicNoClassNoCourseSum(month),
                         managerDownload,ExportEnum.EXPORT_BALANCED_RELATIONSHIP_MUSIC_NO_CLASS_NO_COURSE_SUM),
                 managerDownload.getName());
     }

+ 24 - 9
mec-biz/src/main/java/com/ym/mec/biz/service/impl/MusicGroupServiceImpl.java

@@ -4247,7 +4247,8 @@ public class MusicGroupServiceImpl extends BaseServiceImpl<String, MusicGroup> i
 
     @Override
     public List<ExportWrapper.ExportBalancedRelationshipMusicNoCourse> exportBalancedRelationshipMusicNoCourse(String month, String organIds) {
-		List<ExportWrapper.ExportBalancedRelationshipMusicNoCourse> exportBalancedRelationshipMusicNoCourses = musicGroupDao.exportBalancedRelationshipMusicNoCourse(month, organIds);
+		List<ExportWrapper.ExportBalancedRelationshipMusicNoCourse> exportBalancedRelationshipMusicNoCourses =
+				musicGroupDao.exportBalancedRelationshipMusicNoCourse(month + "-31 23:59:59", organIds);
 		if(CollectionUtils.isNotEmpty(exportBalancedRelationshipMusicNoCourses)){
 			//计算课酬
 			this.createMusicGroupCourseTeacherSalaries(exportBalancedRelationshipMusicNoCourses);
@@ -4302,14 +4303,14 @@ public class MusicGroupServiceImpl extends BaseServiceImpl<String, MusicGroup> i
 	}
 
     @Override
-    public List<ExportWrapper.ExportBalancedRelationshipMusicNoClassNoCourse> exportBalancedRelationshipMusicNoClassNoCourseSum(String month, String organIds) {
+    public List<ExportWrapper.ExportBalancedRelationshipMusicNoClassNoCourse> exportBalancedRelationshipMusicNoClassNoCourseSum(String month) {
 		List<ExportWrapper.ExportBalancedRelationshipMusicNoClassNoCourse> result = new ArrayList<>();
 		ExportWrapper.ExportBalancedRelationshipMusicNoClassNoCourse sum = new ExportWrapper.ExportBalancedRelationshipMusicNoClassNoCourse();
 		//期初未分班未排课
-		BigDecimal first = musicGroupDao.exportBalancedRelationshipMusicNoClassNoCourseSum(month + "-01 00:00:00",organIds);
+		BigDecimal first = musicGroupDao.exportBalancedRelationshipMusicNoClassNoCourseSum(month + "-01 00:00:00");
 		sum.setFirstTotalCoursePrice(first);
 		//期末未分班未排课
-		BigDecimal last = musicGroupDao.exportBalancedRelationshipMusicNoClassNoCourseSum(month + "-31 23:59:59",organIds);
+		BigDecimal last = musicGroupDao.exportBalancedRelationshipMusicNoClassNoCourseSum(month + "-31 23:59:59");
 		sum.setLastTotalCoursePrice(last);
 		//当月新增未分班未排课(期末-期初)
 		sum.setCurrentTotalCoursePrice(last.subtract(first));
@@ -4358,10 +4359,23 @@ public class MusicGroupServiceImpl extends BaseServiceImpl<String, MusicGroup> i
 				continue;
 			}
 
+			//对应基准课酬
+			BigDecimal baseSalary = new BigDecimal(0), classTimeDuty = new BigDecimal(0);
+
+			SalarySettlementTypeEnum settlementType = noCour.getSettlementType();
+
 			//基准课酬
-			//课程时长与结算单位时长占比
-			BigDecimal classTimeDuty = new BigDecimal(noCour.getSubCourseMinutes()).divide(new BigDecimal(30), CommonConstants.DECIMAL_PLACE, RoundingMode.DOWN);
-			BigDecimal baseSalary = teacherDefaultMusicGroupSalary.getMainTeacher30MinSalary();
+			if (settlementType.equals(SalarySettlementTypeEnum.TEACHER_DEFAULT)) {
+				//课程时长与结算单位时长占比
+				classTimeDuty = new BigDecimal(noCour.getSubCourseMinutes()).divide(new BigDecimal(30), CommonConstants.DECIMAL_PLACE, RoundingMode.DOWN);
+				baseSalary = teacherDefaultMusicGroupSalary.getMainTeacher30MinSalary();
+			}
+			//阶梯课酬
+			if (settlementType.equals(SalarySettlementTypeEnum.GRADIENT_SALARY)) {
+				//课程时长与结算单位时长占比
+				classTimeDuty = new BigDecimal(noCour.getSubCourseMinutes()).divide(new BigDecimal(90), CommonConstants.DECIMAL_PLACE, RoundingMode.DOWN);
+				baseSalary = teacherDefaultMusicGroupSalary.getMainTeacher90MinSalary();
+			}
 			if(Objects.isNull(baseSalary)){
 				continue;
 			}
@@ -4377,7 +4391,8 @@ public class MusicGroupServiceImpl extends BaseServiceImpl<String, MusicGroup> i
 				if(StringUtils.isBlank(teacherDefaultMusicGroupSalary.getSalaryRuleJson())){
 					continue;
 				}
-
+				//每节课按45分钟算,向上取整
+				BigDecimal courseNum = new BigDecimal(noCour.getSubCourseMinutes()).divide(new BigDecimal(45), CommonConstants.DECIMAL_PLACE, RoundingMode.UP);
 				int studentNum = noCour.getStudentNum();
 				if(studentNum <= 0){
 					return;
@@ -4385,7 +4400,7 @@ public class MusicGroupServiceImpl extends BaseServiceImpl<String, MusicGroup> i
 				if(studentNum>5){
 					studentNum=5;
 				}
-				salary = JSON.parseObject(teacherDefaultMusicGroupSalary.getSalaryRuleJson()).getBigDecimal(studentNum+"");
+				salary = courseNum.multiply(JSON.parseObject(teacherDefaultMusicGroupSalary.getSalaryRuleJson()).getBigDecimal(studentNum+""));
 			}
 
 			if (StringUtils.equals(noCour.getCourseTypeCode(),CourseSchedule.CourseScheduleType.MUSIC_NETWORK.getCode())) {

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

@@ -31,14 +31,14 @@
                     WHEN mm.course_type_ = 'HIGH_ONLINE' THEN '线上基础技能课'
                     WHEN mm.course_type_ = 'MUSIC_NETWORK' THEN '乐团网管课'
                     WHEN mm.course_type_ = 'LIVE' THEN '直播课' END courseType,
-               first_month_pre_amount_ firstMonthPreAmount, first_month_sub_course_num_ firstMonthSubCourseNum,
-               first_month_course_salary_ firstMonthCourseSalary, first_month_pre_merge_amount_ firstMonthPreMergeAmount, first_month_sub_merge_course_num_ firstMonthSubMergeCourseNum,
-               first_month_merge_course_salary_ firstMonthMergeCourseSalary, current_month_add_course_amount_ currentMonthAddCourseAmount, current_month_add_course_num_ currentMonthAdd,
-               current_month_add_course_salary_ currentMonthAddReward, current_month_add_merge_course_amount_ currentMonthAddMergeCourseAmount, current_month_add_merge_course_num_ currentMonthMergedAdd,
-               current_month_add_merge_course_salary_ currentMonthMergedAddReward, current_month_consume_course_num_ currentMonthConsume, current_month_course_salary_ currentMonthConsumeReward,
-               current_month_course_amount_ currentMonthCourseAmount, current_month_consume_merge_course_num_ currentMonthMergedConsume, current_month_merge_course_salary_ currentMonthMergedConsumeReward,
-               current_month_merge_course_amount_ currentMonthMergeCourseAmount, last_month_pre_amount_ lastMonthPreAmount, last_month_sub_course_num_ lastMonthSubCourseNum, last_month_course_salary_ lastMonthCourseSalary,
-               last_month_pre_merge_amount_ lastMonthPreMergeAmount, last_month_sub_merge_course_num_ lastMonthSubMergeCourseNum, last_month_merge_course_salary_ lastMonthMergeCourseSalary
+               mm.first_month_pre_amount_ firstMonthPreAmount, mm.first_month_sub_course_num_ firstMonthSubCourseNum,
+               mm.first_month_course_salary_ firstMonthCourseSalary, mm.first_month_pre_merge_amount_ firstMonthPreMergeAmount, mm.first_month_sub_merge_course_num_ firstMonthSubMergeCourseNum,
+               mm.first_month_merge_course_salary_ firstMonthMergeCourseSalary, mm.current_month_add_course_amount_ currentMonthAddCourseAmount, mm.current_month_add_course_num_ currentMonthAdd,
+               mm.current_month_add_course_salary_ currentMonthAddReward, mm.current_month_add_merge_course_amount_ currentMonthAddMergeCourseAmount, mm.current_month_add_merge_course_num_ currentMonthMergedAdd,
+               mm.current_month_add_merge_course_salary_ currentMonthMergedAddReward, mm.current_month_consume_course_num_ currentMonthConsume, mm.current_month_course_salary_ currentMonthConsumeReward,
+               mm.current_month_course_amount_ currentMonthCourseAmount, mm.current_month_consume_merge_course_num_ currentMonthMergedConsume, mm.current_month_merge_course_salary_ currentMonthMergedConsumeReward,
+               mm.current_month_merge_course_amount_ currentMonthMergeCourseAmount, mm.last_month_pre_amount_ lastMonthPreAmount, mm.last_month_sub_course_num_ lastMonthSubCourseNum, mm.last_month_course_salary_ lastMonthCourseSalary,
+               mm.last_month_pre_merge_amount_ lastMonthPreMergeAmount, mm.last_month_sub_merge_course_num_ lastMonthSubMergeCourseNum, mm.last_month_merge_course_salary_ lastMonthMergeCourseSalary,mm.del_course_num_ delCourseNum
         from month_music_class_report_statis mm
                  left join class_group cg ON cg.id_ = mm.class_group_id_
                  left join music_group mg ON mg.id_ = cg.music_group_id_

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

@@ -1336,8 +1336,8 @@
     </select>
     <select id="exportBalancedRelationshipMusicNoCourse"
             resultType="com.ym.mec.biz.dal.dto.ExportWrapper$ExportBalancedRelationshipMusicNoCourse">
-        select o.name_ organName,mg.name_ musicGroupName,cgtm.user_id_,cgsm.class_group_id_ classId,
-               mgpscd.music_group_id_ musicGroupId,cg.name_ className,cgtm.user_id_ teacherId,cg.type_ courseTypeCode,
+        select o.name_ organName,mg.name_ musicGroupName,cgtm.user_id_,cgsm.class_group_id_ classId,mg.settlement_type_ settlementType,
+               mgpscd.music_group_id_ musicGroupId,cg.name_ className,cgtm.user_id_ teacherId,mgpscd.course_type_ courseTypeCode,
         CASE WHEN cg.type_ = 'NORMAL' THEN '声部班'
         WHEN cg.type_ = 'MIX' THEN '合奏班'
         WHEN cg.type_ = 'HIGH' THEN '基础技能班'
@@ -1390,16 +1390,12 @@
         from music_group_payment_student_course_detail mgpscd
         left join (select cgsm.user_id_,cg.type_,cg.music_group_id_,cgsm.class_group_id_  from class_group_student_mapper cgsm
         left join class_group cg ON cg.id_ = cgsm.class_group_id_
-        left join music_group mg ON mg.id_ = cg.music_group_id_
         where cg.group_type_ = 'MUSIC' AND cgsm.status_ = 'NORMAL') cgsm ON cgsm.music_group_id_ = mgpscd.music_group_id_ and cgsm.user_id_ = mgpscd.user_id_
         AND (cgsm.type_ = mgpscd.course_type_ OR
         (cgsm.type_ = 'NORMAL' AND mgpscd.course_type_ IN ('SINGLE','TRAINING_SINGLE')) OR
         (cgsm.type_ = 'MIX' AND mgpscd.course_type_ IN ('MIX','TRAINING_MIX')) OR cgsm.type_ = 'SNAP')
         where mgpscd.sub_course_current_price_ > 0 AND mgpscd.sub_course_minutes_ > 0
         AND mgpscd.create_time_ &lt;= #{month} AND cgsm.class_group_id_ IS NULL
-        <if test="organIds != null and organIds != ''">
-            AND FIND_IN_SET(mg.organ_id_,#{organIds})
-        </if>
     </select>
     <select id="exportBalancedRelationshipMusicCourseSum"
             resultType="com.ym.mec.biz.dal.dto.ExportWrapper$ExportBalancedRelationshipMusicCourseSum">