Explorar o código

增加乐器采购清单确认接口

周箭河 %!s(int64=5) %!d(string=hai) anos
pai
achega
cf8a569491

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

@@ -167,7 +167,7 @@ public interface ClassGroupService extends BaseService<Integer, ClassGroup> {
      * @param userId
      * @return
      */
-    ClassGroup addStudent(ClassGroup classGroup,int userId);
+    ClassGroup addStudent(ClassGroup classGroup,Integer userId);
 
     /**
      * 获取未分配合奏的单技班列表

+ 59 - 31
mec-biz/src/main/java/com/ym/mec/biz/service/impl/ClassGroupServiceImpl.java

@@ -94,6 +94,10 @@ public class ClassGroupServiceImpl extends BaseServiceImpl<Integer, ClassGroup>
     private JiaRiFeignService jiaRiFeignService;
     @Autowired
     private SysConfigService sysConfigService;
+    @Autowired
+    private CourseScheduleService courseScheduleService;
+    @Autowired
+    private CourseScheduleStudentPaymentService courseScheduleStudentPaymentService;
 
 
     @Override
@@ -436,7 +440,7 @@ public class ClassGroupServiceImpl extends BaseServiceImpl<Integer, ClassGroup>
 
                 List<TeacherDefaultMusicGroupSalary> teacherSalaryByUserIdAndType = teacherDefaultMusicGroupSalaryService.getTeacherSalaryByUserIdAndType(classGroupTeacherMapper.getUserId(), courseType, type);
                 //老师课酬没有设置,设置成0
-                if (teacherSalaryByUserIdAndType == null || teacherSalaryByUserIdAndType.size()==0) {
+                if (teacherSalaryByUserIdAndType == null || teacherSalaryByUserIdAndType.size() == 0) {
                     if (type.equals(SalarySettlementTypeEnum.GRADIENT_SALARY)) {
                         String paramName = courseType.equals("SINGLE") ? "sigle_gradient_settlement_rule" : (courseType.equals("MIX") ? "max_gradient_settlement_rule" : "high_gradient_settlement_rule");
                         SysConfig sysConfig = sysConfigService.findByParamName(paramName);
@@ -594,18 +598,42 @@ public class ClassGroupServiceImpl extends BaseServiceImpl<Integer, ClassGroup>
 
     @Override
     @Transactional(rollbackFor = Exception.class)
-    public ClassGroup addStudent(ClassGroup classGroup, int userId) {
+    public ClassGroup addStudent(ClassGroup classGroup, Integer userId) {
         Date date = new Date();
-        //增加班级人数
+        //1、增加班级人数
         classGroup.setCreateTime(date);
         classGroupDao.addStudentNum(classGroup);
-        //插入关联关系
+        //2、插入关联关系
         ClassGroupStudentMapper classGroupStudentMapper = new ClassGroupStudentMapper();
         classGroupStudentMapper.setClassGroupId(classGroup.getId());
         classGroupStudentMapper.setUserId(userId);
         classGroupStudentMapper.setStatus(ClassGroupStudentStatusEnum.NORMAL);
         classGroupStudentMapper.setCreateTime(date);
         classGroupStudentMapperDao.insert(classGroupStudentMapper);
+
+        //3、学生加入级未开始课程
+        List<CourseSchedule> courseScheduleList = courseScheduleService.findNoStartCoursesByClassGroupId(classGroup.getId());
+        BigDecimal coursePrice = new BigDecimal("0");
+        List<CourseScheduleStudentPayment> courseScheduleStudentPayments = new ArrayList<>();
+        for (CourseSchedule courseSchedule : courseScheduleList) {
+            CourseScheduleStudentPayment courseScheduleStudentPayment = new CourseScheduleStudentPayment();
+            courseScheduleStudentPayment.setCourseScheduleId(courseSchedule.getId());
+            courseScheduleStudentPayment.setUserId(userId);
+            courseScheduleStudentPayment.setExpectPrice(coursePrice);
+            courseScheduleStudentPayment.setClassGroupId(classGroup.getId());
+            courseScheduleStudentPayment.setCreateTime(date);
+            courseScheduleStudentPayment.setUpdateTime(date);
+            courseScheduleStudentPayments.add(courseScheduleStudentPayment);
+        }
+
+        if (courseScheduleStudentPayments.size() != 0) {
+            courseScheduleStudentPaymentService.batchInsert(courseScheduleStudentPayments);
+        }
+
+        //3、加入班级群组
+        ImGroupMember[] imGroupMembers = new ImGroupMember[]{new ImGroupMember(userId.toString())};
+        imFeignService.groupJoin(new ImGroupModel(classGroup.getId().toString(), imGroupMembers, classGroup.getName()));
+
         return classGroup;
     }
 
@@ -636,14 +664,14 @@ public class ClassGroupServiceImpl extends BaseServiceImpl<Integer, ClassGroup>
     @Transactional(rollbackFor = Exception.class)
     public void addMusicGroupTeam(Integer teacherId, String musicGroupId, Integer improventClassesNum) throws Exception {
         SysUser sysUser = sysUserFeignService.queryUserInfo();
-        if(sysUser == null){
+        if (sysUser == null) {
             throw new Exception("用户信息获取失败");
         }
         MusicGroup musicGroup = musicGroupDao.get(musicGroupId);
-        if(musicGroup == null){
+        if (musicGroup == null) {
             throw new Exception("乐团信息不存在");
         }
-        if(musicGroup.getStatus() != MusicGroupStatusEnum.PREPARE){
+        if (musicGroup.getStatus() != MusicGroupStatusEnum.PREPARE) {
             throw new Exception("当前乐团状态不允许此操作");
         }
         //所有学员都已经分配
@@ -661,7 +689,7 @@ public class ClassGroupServiceImpl extends BaseServiceImpl<Integer, ClassGroup>
         musicGroup.setImproventClassesNum(improventClassesNum);
         musicGroup.setUpdateTime(new Date());
         musicGroupDao.update(musicGroup);
-        musicGroupBuildLogDao.insert(new MusicGroupBuildLog(musicGroupId,"成团确认(学员、班级、教学主管已设置)",sysUser.getId(),""));
+        musicGroupBuildLogDao.insert(new MusicGroupBuildLog(musicGroupId, "成团确认(学员、班级、教学主管已设置)", sysUser.getId(), ""));
     }
 
     @Override
@@ -830,7 +858,7 @@ public class ClassGroupServiceImpl extends BaseServiceImpl<Integer, ClassGroup>
                 .collect(Collectors.toList());
         List<StudentAttendanceViewDto> otherStudent = studentByCourse.stream()
                 .filter(studentAttendanceViewDto -> !StudentAttendanceStatusEnum.LEAVE.equals(studentAttendanceViewDto.getStatus())
-                                                &&!StudentAttendanceStatusEnum.TRUANT.equals(studentAttendanceViewDto.getStatus()))
+                        && !StudentAttendanceStatusEnum.TRUANT.equals(studentAttendanceViewDto.getStatus()))
                 .collect(Collectors.toList());
         truantStudent.addAll(otherStudent);
         truantStudent.addAll(leaveStudent);
@@ -939,8 +967,8 @@ public class ClassGroupServiceImpl extends BaseServiceImpl<Integer, ClassGroup>
                 if (!courseTimeDto.getDayOfWeek().equals(dayOfWeek)) continue;
 
                 //课时长度
-                long classCourseDuration = Duration.between(LocalDateTime.parse(classGroup4MixDto.getStartDate() + " " + courseTimeDto.getStartClassTime() + ":00",formatter),
-                        LocalDateTime.parse(classGroup4MixDto.getStartDate() + " " + courseTimeDto.getEndClassTime() + ":00",formatter))
+                long classCourseDuration = Duration.between(LocalDateTime.parse(classGroup4MixDto.getStartDate() + " " + courseTimeDto.getStartClassTime() + ":00", formatter),
+                        LocalDateTime.parse(classGroup4MixDto.getStartDate() + " " + courseTimeDto.getEndClassTime() + ":00", formatter))
                         .toMinutes();
 
 
@@ -971,19 +999,19 @@ public class ClassGroupServiceImpl extends BaseServiceImpl<Integer, ClassGroup>
 
                     Map<CourseSchedule.CourseScheduleType, TeacherDefaultMusicGroupSalary> collect = teacherSalaryList.stream().collect(Collectors.toMap(TeacherDefaultMusicGroupSalary::getCourseScheduleType, teacherDefaultMusicGroupSalary -> teacherDefaultMusicGroupSalary));
 
-                    TeacherDefaultMusicGroupSalary teacherDefaultMusicGroupSalary=collect.get(classGroup4MixDto.getCourseType());
+                    TeacherDefaultMusicGroupSalary teacherDefaultMusicGroupSalary = collect.get(classGroup4MixDto.getCourseType());
 
                     //对应基准课酬
-                    BigDecimal baseSalary = new BigDecimal(0),classTimeDuty=new BigDecimal(0);
+                    BigDecimal baseSalary = new BigDecimal(0), classTimeDuty = new BigDecimal(0);
 
                     //基准课酬
-                    if (musicGroup.getSettlementType().equals(SalarySettlementTypeEnum.TEACHER_DEFAULT) && teacherDefaultMusicGroupSalary!=null) {
+                    if (musicGroup.getSettlementType().equals(SalarySettlementTypeEnum.TEACHER_DEFAULT) && teacherDefaultMusicGroupSalary != null) {
                         //课程时长与结算单位时长占比
                         classTimeDuty = new BigDecimal(classCourseDuration).divide(new BigDecimal(30));
                         baseSalary = classGroupTeacherMapper.getTeacherRole().equals(TeachTypeEnum.BISHOP) ? teacherDefaultMusicGroupSalary.getMainTeacher30MinSalary() : teacherDefaultMusicGroupSalary.getAssistantTeacher30MinSalary();
                     }
                     //阶梯课酬
-                    if (musicGroup.getSettlementType().equals(SalarySettlementTypeEnum.GRADIENT_SALARY) && teacherDefaultMusicGroupSalary!=null) {
+                    if (musicGroup.getSettlementType().equals(SalarySettlementTypeEnum.GRADIENT_SALARY) && teacherDefaultMusicGroupSalary != null) {
                         //课程时长与结算单位时长占比
                         classTimeDuty = new BigDecimal(classCourseDuration).divide(new BigDecimal(90));
                         baseSalary = classGroupTeacherMapper.getTeacherRole().equals(TeachTypeEnum.BISHOP) ? teacherDefaultMusicGroupSalary.getMainTeacher90MinSalary() : teacherDefaultMusicGroupSalary.getAssistantTeacher90MinSalary();
@@ -1148,8 +1176,8 @@ public class ClassGroupServiceImpl extends BaseServiceImpl<Integer, ClassGroup>
                 if (!courseTimeDto.getDayOfWeek().equals(dayOfWeek)) continue;
 
                 //课时长度
-                long classCourseDuration = Duration.between(LocalDateTime.parse(classGroup4MixDto.getStartDate() + " " + courseTimeDto.getStartClassTime() + ":00",formatter),
-                        LocalDateTime.parse(classGroup4MixDto.getStartDate() + " " + courseTimeDto.getEndClassTime() + ":00",formatter))
+                long classCourseDuration = Duration.between(LocalDateTime.parse(classGroup4MixDto.getStartDate() + " " + courseTimeDto.getStartClassTime() + ":00", formatter),
+                        LocalDateTime.parse(classGroup4MixDto.getStartDate() + " " + courseTimeDto.getEndClassTime() + ":00", formatter))
                         .toMinutes();
 
 
@@ -1180,19 +1208,19 @@ public class ClassGroupServiceImpl extends BaseServiceImpl<Integer, ClassGroup>
 
                     Map<CourseSchedule.CourseScheduleType, TeacherDefaultMusicGroupSalary> collect = teacherSalaryList.stream().collect(Collectors.toMap(TeacherDefaultMusicGroupSalary::getCourseScheduleType, teacherDefaultMusicGroupSalary -> teacherDefaultMusicGroupSalary));
 
-                    TeacherDefaultMusicGroupSalary teacherDefaultMusicGroupSalary=collect.get(classGroup4MixDto.getCourseType());
+                    TeacherDefaultMusicGroupSalary teacherDefaultMusicGroupSalary = collect.get(classGroup4MixDto.getCourseType());
 
                     //对应基准课酬
-                    BigDecimal baseSalary = new BigDecimal(0),classTimeDuty=new BigDecimal(0);
+                    BigDecimal baseSalary = new BigDecimal(0), classTimeDuty = new BigDecimal(0);
 
                     //基准课酬
-                    if (musicGroup.getSettlementType().equals(SalarySettlementTypeEnum.TEACHER_DEFAULT) && teacherDefaultMusicGroupSalary!=null) {
+                    if (musicGroup.getSettlementType().equals(SalarySettlementTypeEnum.TEACHER_DEFAULT) && teacherDefaultMusicGroupSalary != null) {
                         //课程时长与结算单位时长占比
                         classTimeDuty = new BigDecimal(classCourseDuration).divide(new BigDecimal(30));
                         baseSalary = classGroupTeacherMapper.getTeacherRole().equals(TeachTypeEnum.BISHOP) ? teacherDefaultMusicGroupSalary.getMainTeacher30MinSalary() : teacherDefaultMusicGroupSalary.getAssistantTeacher30MinSalary();
                     }
                     //阶梯课酬
-                    if (musicGroup.getSettlementType().equals(SalarySettlementTypeEnum.GRADIENT_SALARY) && teacherDefaultMusicGroupSalary!=null) {
+                    if (musicGroup.getSettlementType().equals(SalarySettlementTypeEnum.GRADIENT_SALARY) && teacherDefaultMusicGroupSalary != null) {
                         //课程时长与结算单位时长占比
                         classTimeDuty = new BigDecimal(classCourseDuration).divide(new BigDecimal(90));
                         baseSalary = classGroupTeacherMapper.getTeacherRole().equals(TeachTypeEnum.BISHOP) ? teacherDefaultMusicGroupSalary.getMainTeacher90MinSalary() : teacherDefaultMusicGroupSalary.getAssistantTeacher90MinSalary();
@@ -1356,8 +1384,8 @@ public class ClassGroupServiceImpl extends BaseServiceImpl<Integer, ClassGroup>
                 if (!courseTimeDto.getDayOfWeek().equals(dayOfWeek)) continue;
 
                 //课时长度
-                long classCourseDuration = Duration.between(LocalDateTime.parse(classGroup4MixDto.getStartDate() + " " + courseTimeDto.getStartClassTime() + ":00",formatter),
-                        LocalDateTime.parse(classGroup4MixDto.getStartDate() + " " + courseTimeDto.getEndClassTime() + ":00",formatter))
+                long classCourseDuration = Duration.between(LocalDateTime.parse(classGroup4MixDto.getStartDate() + " " + courseTimeDto.getStartClassTime() + ":00", formatter),
+                        LocalDateTime.parse(classGroup4MixDto.getStartDate() + " " + courseTimeDto.getEndClassTime() + ":00", formatter))
                         .toMinutes();
 
 
@@ -1388,19 +1416,19 @@ public class ClassGroupServiceImpl extends BaseServiceImpl<Integer, ClassGroup>
 
                     Map<CourseSchedule.CourseScheduleType, TeacherDefaultMusicGroupSalary> collect = teacherSalaryList.stream().collect(Collectors.toMap(TeacherDefaultMusicGroupSalary::getCourseScheduleType, teacherDefaultMusicGroupSalary -> teacherDefaultMusicGroupSalary));
 
-                    TeacherDefaultMusicGroupSalary teacherDefaultMusicGroupSalary=collect.get(classGroup4MixDto.getCourseType());
+                    TeacherDefaultMusicGroupSalary teacherDefaultMusicGroupSalary = collect.get(classGroup4MixDto.getCourseType());
 
                     //对应基准课酬
-                    BigDecimal baseSalary = new BigDecimal(0),classTimeDuty=new BigDecimal(0);
+                    BigDecimal baseSalary = new BigDecimal(0), classTimeDuty = new BigDecimal(0);
 
                     //基准课酬
-                    if (musicGroup.getSettlementType().equals(SalarySettlementTypeEnum.TEACHER_DEFAULT) && teacherDefaultMusicGroupSalary!=null) {
+                    if (musicGroup.getSettlementType().equals(SalarySettlementTypeEnum.TEACHER_DEFAULT) && teacherDefaultMusicGroupSalary != null) {
                         //课程时长与结算单位时长占比
                         classTimeDuty = new BigDecimal(classCourseDuration).divide(new BigDecimal(30));
                         baseSalary = classGroupTeacherMapper.getTeacherRole().equals(TeachTypeEnum.BISHOP) ? teacherDefaultMusicGroupSalary.getMainTeacher30MinSalary() : teacherDefaultMusicGroupSalary.getAssistantTeacher30MinSalary();
                     }
                     //阶梯课酬
-                    if (musicGroup.getSettlementType().equals(SalarySettlementTypeEnum.GRADIENT_SALARY) && teacherDefaultMusicGroupSalary!=null) {
+                    if (musicGroup.getSettlementType().equals(SalarySettlementTypeEnum.GRADIENT_SALARY) && teacherDefaultMusicGroupSalary != null) {
                         //课程时长与结算单位时长占比
                         classTimeDuty = new BigDecimal(classCourseDuration).divide(new BigDecimal(90));
                         baseSalary = classGroupTeacherMapper.getTeacherRole().equals(TeachTypeEnum.BISHOP) ? teacherDefaultMusicGroupSalary.getMainTeacher90MinSalary() : teacherDefaultMusicGroupSalary.getAssistantTeacher90MinSalary();
@@ -1463,13 +1491,13 @@ public class ClassGroupServiceImpl extends BaseServiceImpl<Integer, ClassGroup>
             Set<Integer> classGroups = dataList.stream().map(e -> e.getClassGroupId()).collect(Collectors.toSet());
             String join = StringUtils.join(classGroups, ",");
             //获取主教老师
-            Map<Integer, String> masterTeachers = JSONObject.parseObject(JSONObject.toJSONString(MapUtil.convertMybatisMap(classGroupDao.countStudentNum(join, "BISHOP"))),HashMap.class);
+            Map<Integer, String> masterTeachers = JSONObject.parseObject(JSONObject.toJSONString(MapUtil.convertMybatisMap(classGroupDao.countStudentNum(join, "BISHOP"))), HashMap.class);
             //获取助教老师
-            Map<Integer, String> subTeachers = JSONObject.parseObject(JSONObject.toJSONString(MapUtil.convertMybatisMap(classGroupDao.countStudentNum(join, "TEACHING"))),HashMap.class);
+            Map<Integer, String> subTeachers = JSONObject.parseObject(JSONObject.toJSONString(MapUtil.convertMybatisMap(classGroupDao.countStudentNum(join, "TEACHING"))), HashMap.class);
             //获取在读人数
-            Map<Integer, Integer> studyNums = JSONObject.parseObject(JSONObject.toJSONString(MapUtil.convertMybatisMap(classGroupDao.countStudyNum(join))),HashMap.class);
+            Map<Integer, Integer> studyNums = JSONObject.parseObject(JSONObject.toJSONString(MapUtil.convertMybatisMap(classGroupDao.countStudyNum(join))), HashMap.class);
             //获取退班人数
-            Map<Integer, Integer> quitNums = JSONObject.parseObject(JSONObject.toJSONString(MapUtil.convertMybatisMap(classGroupDao.countQuitNum(join))),HashMap.class);
+            Map<Integer, Integer> quitNums = JSONObject.parseObject(JSONObject.toJSONString(MapUtil.convertMybatisMap(classGroupDao.countQuitNum(join))), HashMap.class);
             dataList.forEach(e -> {
                 e.setMasterTeacher(masterTeachers.get(e.getClassGroupId()));
                 e.setSubTeacher(subTeachers.get(e.getClassGroupId()));