소스 검색

feat:线下课考勤调整

Joburgess 4 년 전
부모
커밋
0ae999a6c2

+ 4 - 4
mec-biz/src/main/java/com/ym/mec/biz/service/impl/ContractServiceImpl.java

@@ -5,10 +5,7 @@ import java.io.IOException;
 import java.math.BigDecimal;
 import java.text.DateFormat;
 import java.text.SimpleDateFormat;
-import java.util.Date;
-import java.util.HashMap;
-import java.util.List;
-import java.util.Map;
+import java.util.*;
 import java.util.Map.Entry;
 
 import org.apache.commons.io.FileUtils;
@@ -1085,6 +1082,9 @@ public class ContractServiceImpl implements ContractService, InitializingBean {
 		Map<String, Object> params = new HashMap<String, Object>();
 
 		StudentInfo studentInfo = studentRegistrationService.queryStudentInfo(userId);
+		if(Objects.isNull(studentInfo)){
+			studentInfo = new StudentInfo();
+		}
 		params.put("studentInfo", studentInfo);
 		params.put("isShowVisualSeal", true);
 

+ 76 - 2
mec-biz/src/main/java/com/ym/mec/biz/service/impl/CourseScheduleTeacherSalaryServiceImpl.java

@@ -1,5 +1,6 @@
 package com.ym.mec.biz.service.impl;
 
+import com.alibaba.fastjson.JSON;
 import com.alibaba.fastjson.JSONObject;
 import com.ym.mec.biz.dal.dao.*;
 import com.ym.mec.biz.dal.dto.*;
@@ -18,10 +19,8 @@ import com.ym.mec.thirdparty.message.MessageSenderPluginContext;
 import com.ym.mec.util.collection.MapUtil;
 import com.ym.mec.util.date.DateUtil;
 
-import org.apache.poi.util.StringUtil;
 import org.slf4j.Logger;
 import org.slf4j.LoggerFactory;
-import org.springframework.beans.BeanUtils;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.context.annotation.Lazy;
 import org.springframework.stereotype.Service;
@@ -1107,6 +1106,81 @@ public class CourseScheduleTeacherSalaryServiceImpl extends BaseServiceImpl<Long
      */
     private List<CourseScheduleTeacherSalary> createMusicGroupCourseTeacerSalary(CourseSchedule courseSchedule, List<CourseScheduleTeacherSalary> courseScheduleTeacherSalaries) {
 
+
+//        List<TeacherDefaultMusicGroupSalary> teacherSalaryList = teacherDefaultMusicGroupSalaryService.getTeacherSalaryByUserIdAndType(classGroupTeacherMapper.getUserId(), null, null);
+//        BigDecimal salary = new BigDecimal("0");
+//
+//        Map<CourseSchedule.CourseScheduleType, TeacherDefaultMusicGroupSalary> collect = teacherSalaryList.stream().collect(Collectors.toMap(TeacherDefaultMusicGroupSalary::getCourseScheduleType, teacherDefaultMusicGroupSalary -> teacherDefaultMusicGroupSalary));
+//
+//        TeacherDefaultMusicGroupSalary teacherDefaultMusicGroupSalary = collect.get(classGroup4MixDto.getCourseType());
+//
+//        Teacher teacher = teacherMap.get(classGroupTeacherMapper.getUserId());
+//        if (teacherDefaultMusicGroupSalary == null) {
+//            throw new BizException("请设置" + teacher.getRealName() + "老师的" + classGroup4MixDto.getCourseType().getMsg() + "课酬");
+//        }
+//
+//        //对应基准课酬
+//        BigDecimal baseSalary = new BigDecimal(0), classTimeDuty = new BigDecimal(0);
+//
+//        SalarySettlementTypeEnum settlementType = musicGroup.getSettlementType();
+//        if (Objects.nonNull(teacher.getEntryDate())
+//                && (teacher.getEntryDate().after(entryDate) || teacher.getEntryDate().getTime() == entryDate.getTime())) {
+//            settlementType = SalarySettlementTypeEnum.GRADIENT_SALARY;
+//        }
+//
+//        //基准课酬
+//        if (settlementType.equals(SalarySettlementTypeEnum.TEACHER_DEFAULT) && teacherDefaultMusicGroupSalary != null) {
+//            //课程时长与结算单位时长占比
+//            classTimeDuty = new BigDecimal(classCourseDuration).divide(new BigDecimal(30), CommonConstants.DECIMAL_PLACE, BigDecimal.ROUND_DOWN);
+//            baseSalary = classGroupTeacherMapper.getTeacherRole().equals(TeachTypeEnum.BISHOP) ? teacherDefaultMusicGroupSalary.getMainTeacher30MinSalary() : teacherDefaultMusicGroupSalary.getAssistantTeacher30MinSalary();
+//        }
+//        //阶梯课酬
+//        if (settlementType.equals(SalarySettlementTypeEnum.GRADIENT_SALARY) && teacherDefaultMusicGroupSalary != null) {
+//            //课程时长与结算单位时长占比
+//            classTimeDuty = new BigDecimal(classCourseDuration).divide(new BigDecimal(90), CommonConstants.DECIMAL_PLACE, BigDecimal.ROUND_DOWN);
+//            baseSalary = classGroupTeacherMapper.getTeacherRole().equals(TeachTypeEnum.BISHOP) ? teacherDefaultMusicGroupSalary.getMainTeacher90MinSalary() : teacherDefaultMusicGroupSalary.getAssistantTeacher90MinSalary();
+//        }
+//
+//        //课堂课课酬改为按分钟数计算,并且时长占比向下取整
+//        if (courseSchedule.getType().equals(CourseSchedule.CourseScheduleType.CLASSROOM)){
+//            baseSalary = classGroupTeacherMapper.getTeacherRole().equals(TeachTypeEnum.BISHOP) ? teacherDefaultMusicGroupSalary.getMainTeacher30MinSalary() : teacherDefaultMusicGroupSalary.getAssistantTeacher30MinSalary();
+//            classTimeDuty = new BigDecimal(classCourseDuration).divide(new BigDecimal(40), BigDecimal.ZERO.intValue(), BigDecimal.ROUND_DOWN);
+//        }
+//
+//        salary = baseSalary.multiply(classTimeDuty).setScale(2, BigDecimal.ROUND_HALF_UP);
+//
+//        //基础技能提高课
+//        if (classGroup4MixDto.getCourseType().equals(CourseSchedule.CourseScheduleType.HIGH)) {
+//            salary = classGroupTeacherMapper.getTeacherRole().equals(TeachTypeEnum.BISHOP) ? teacherDefaultMusicGroupSalary.getMainTeacher30MinSalary() : teacherDefaultMusicGroupSalary.getAssistantTeacher30MinSalary();
+//            if (settlementType.equals(SalarySettlementTypeEnum.GRADIENT_SALARY)) {
+//                salary = classGroupTeacherMapper.getTeacherRole().equals(TeachTypeEnum.BISHOP) ? teacherDefaultMusicGroupSalary.getMainTeacher90MinSalary() : teacherDefaultMusicGroupSalary.getAssistantTeacher90MinSalary();
+//            }
+//        }
+//        //线上小班课
+//        if (classGroup4MixDto.getCourseType().equals(CourseSchedule.CourseScheduleType.HIGH_ONLINE)) {
+//            Integer studentNum = classGroupStudentMapperDao.countClassGroupNormalStudentNum(classGroupTeacherMapper.getClassGroupId());
+//            if (studentNum < 3 || studentNum > 5) {
+//                String numWaring = studentNum < 3 ? "人数不能小于3," : "人数不能大于5,";
+//                throw new BizException(classGroup.getName() + numWaring + "请调整");
+//            }
+//            salary = JSON.parseObject(teacherDefaultMusicGroupSalary.getSalaryRuleJson()).getBigDecimal(studentNum.toString());
+//        }
+//
+//        if (classGroup4MixDto.getCourseType().equals(CourseSchedule.CourseScheduleType.MUSIC_NETWORK)) {
+//            salary = JSON.parseObject(teacherDefaultMusicGroupSalary.getSalaryRuleJson()).getBigDecimal("1");
+//        }
+//
+//        CourseScheduleTeacherSalary courseScheduleTeacherSalary = new CourseScheduleTeacherSalary();
+//        courseScheduleTeacherSalary.setCourseScheduleId(courseSchedule.getId());
+//        courseScheduleTeacherSalary.setGroupType(courseSchedule.getGroupType());
+//        courseScheduleTeacherSalary.setMusicGroupId(courseSchedule.getMusicGroupId());
+//        courseScheduleTeacherSalary.setTeacherRole(classGroupTeacherMapper.getTeacherRole());
+//        courseScheduleTeacherSalary.setUserId(classGroupTeacherMapper.getUserId());
+//        courseScheduleTeacherSalary.setExpectSalary(salary);
+//        courseScheduleTeacherSalary.setClassGroupId(classGroup.getId());
+//        courseScheduleTeacherSalary.setCreateTime(date);
+//        courseScheduleTeacherSalary.setUpdateTime(date);
+//        courseScheduleTeacherSalaryList.add(courseScheduleTeacherSalary);
         return null;
     }
 }