瀏覽代碼

平衡关系导出

zouxuan 1 年之前
父節點
當前提交
63c0dd068a

+ 4 - 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;
@@ -452,6 +453,9 @@ public class ExportWrapper {
     @Data
     @ApiModel("平衡关系-已分班未排课")
     public static class ExportBalancedRelationshipMusicNoCourse {
+        @ApiModelProperty("课酬结算方式")
+        private SalarySettlementTypeEnum settlementType;
+
         @ApiModelProperty("分部")
         private String organName;
 

+ 21 - 6
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);
@@ -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())) {

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

@@ -1335,7 +1335,7 @@
     </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,
+        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,cg.type_ courseTypeCode,
         CASE WHEN cg.type_ = 'NORMAL' THEN '声部班'
         WHEN cg.type_ = 'MIX' THEN '合奏班'