Browse Source

feat:课表列表新增调整

Joburgess 4 năm trước cách đây
mục cha
commit
d4f5aba81a

+ 4 - 4
mec-biz/src/main/java/com/ym/mec/biz/dal/dto/BatchCourseAdjustDto.java

@@ -3,9 +3,9 @@ package com.ym.mec.biz.dal.dto;
 import com.ym.mec.biz.dal.entity.ClassGroupTeacherMapper;
 import com.ym.mec.biz.dal.enums.TeachModeEnum;
 import io.swagger.annotations.ApiModelProperty;
-import io.swagger.annotations.ApiOperation;
+import org.codehaus.jackson.map.ObjectMapper;
 
-import java.util.Date;
+import java.io.IOException;
 import java.util.List;
 
 /**
@@ -21,10 +21,10 @@ public class BatchCourseAdjustDto {
     private Boolean changeMainTeacher = false;
 
     @ApiModelProperty(value = "是否修改助教")
-    private Boolean changeTeachingTeacher = true;
+    private Boolean changeTeachingTeacher = false;
 
     @ApiModelProperty(value = "是否跳过节假日 true-跳过 false-不跳过", required = true)
-    private Boolean isHoliday;
+    private Boolean isHoliday = false;
 
     @ApiModelProperty(value = "开始日期", required = true)
     private String startDate;

+ 10 - 0
mec-biz/src/main/java/com/ym/mec/biz/service/CourseScheduleTeacherSalaryService.java

@@ -169,6 +169,16 @@ public interface CourseScheduleTeacherSalaryService extends BaseService<Long, Co
     List<CourseScheduleTeacherSalary> createTeacherCourseSalary(CourseSchedule courseSchedule, List<Integer> teacherIds);
 
     /**
+     * @describe 计算课程课酬
+     * @author Joburgess
+     * @date 2021/4/12 0012
+     * @param courseSchedule:
+     * @param courseScheduleTeacherSalaries:
+     * @return void
+     */
+    void updateSingleCourseTeacherSalary(CourseSchedule courseSchedule, CourseScheduleTeacherSalary courseScheduleTeacherSalaries);
+
+    /**
      * @describe 计算乐团课教师课酬
      * @author Joburgess
      * @date 2020/12/16 0016

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

@@ -2819,6 +2819,10 @@ public class CourseScheduleServiceImpl extends BaseServiceImpl<Long, CourseSched
 		//未更新课程列表
 		List<CourseSchedule> oldCourses = courseScheduleDao.findByCourseScheduleIds(courseAdjustInfo.getCourseScheduleIds());
 
+		if(CollectionUtils.isEmpty(oldCourses)){
+			return BaseController.succeed();
+		}
+
 		//需要变更课酬的教师类型
 		Set<TeachTypeEnum> changeSalaryTeachTypes = new HashSet<>();
 
@@ -2862,7 +2866,7 @@ public class CourseScheduleServiceImpl extends BaseServiceImpl<Long, CourseSched
 		//上课时间变更
 		LocalTime startTime = null;
 		if(Objects.nonNull(courseAdjustInfo.getStartTime())){
-			startTime = LocalTime.parse(courseAdjustInfo.getStartTime());
+			startTime = LocalTime.parse(courseAdjustInfo.getStartTime(), DateUtil.timeFormatter);
 		}
 
 		Date now = new Date();
@@ -2871,6 +2875,12 @@ public class CourseScheduleServiceImpl extends BaseServiceImpl<Long, CourseSched
 
 		oldCourses.sort(Comparator.comparing(CourseSchedule::getStartClassTime));
 		for (int i = 0; i < oldCourses.size(); i++) {
+			if(Objects.nonNull(oldCourses.get(i).getNewCourseId())){
+				throw new BizException("选择的课程中存在已合并课程,无法进行调整");
+			}
+			if(!CourseStatusEnum.NOT_START.equals(oldCourses.get(i).getStatus())){
+				throw new BizException("选择的课程中存在进行中或已结束的课程,无法进行调整");
+			}
 			//上课日期变更
 			if(betweenDays>0){
 				LocalDate classDate = LocalDateTime.ofInstant(oldCourses.get(i).getClassDate().toInstant(), DateUtil.zoneId).toLocalDate();
@@ -2880,6 +2890,7 @@ public class CourseScheduleServiceImpl extends BaseServiceImpl<Long, CourseSched
 					i=i-1;
 					continue;
 				}
+				oldCourses.get(i).setClassDate(Date.from(classDate.atStartOfDay().atZone(DateUtil.zoneId).toInstant()));
 			}
 
 			//上课时间变更
@@ -2889,8 +2900,8 @@ public class CourseScheduleServiceImpl extends BaseServiceImpl<Long, CourseSched
 				LocalTime endTime = startTime.plusMinutes(minutes);
 				String courseStartTimeStr = DateUtil.dateToString(oldCourses.get(i).getClassDate(), "yyyy-MM-dd") + " " + startTime.toString();
 				String courseEndTimeStr = DateUtil.dateToString(oldCourses.get(i).getClassDate(), "yyyy-MM-dd") + " " + endTime.toString();
-				oldCourses.get(i).setStartClassTime(DateUtil.stringToDate(courseStartTimeStr));
-				oldCourses.get(i).setEndClassTime(DateUtil.stringToDate(courseEndTimeStr));
+				oldCourses.get(i).setStartClassTime(DateUtil.stringToDate(courseStartTimeStr, "yyyy-MM-dd HH:mm"));
+				oldCourses.get(i).setEndClassTime(DateUtil.stringToDate(courseEndTimeStr, "yyyy-MM-dd HH:mm"));
 			}
 
 			if(Objects.nonNull(courseAdjustInfo.getTeachMode())&&!courseAdjustInfo.getTeachMode().equals(oldCourses.get(i).getTeachMode())){
@@ -2919,7 +2930,7 @@ public class CourseScheduleServiceImpl extends BaseServiceImpl<Long, CourseSched
 				courseScheduleTeacherSalary.setClassGroupId(oldCourses.get(i).getClassGroupId());
 				courseScheduleTeacherSalary.setCreateTime(now);
 				courseScheduleTeacherSalary.setUpdateTime(now);
-				courseScheduleTeacherSalaryService.createMusicGroupCourseTeacherSalary(null, oldCourses.get(i), courseScheduleTeacherSalary);
+				courseScheduleTeacherSalaryService.updateSingleCourseTeacherSalary(oldCourses.get(i), courseScheduleTeacherSalary);
 				courseScheduleTeacherSalaries.add(courseScheduleTeacherSalary);
 
 				if (courseAdjustInfo.getConfirmGenerate() && !courseAdjustInfo.getAllowZeroSalary() && BigDecimal.ZERO.compareTo(courseScheduleTeacherSalary.getExpectSalary()) == 0) {

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

@@ -1160,6 +1160,27 @@ public class CourseScheduleTeacherSalaryServiceImpl extends BaseServiceImpl<Long
     }
 
     @Override
+    public void updateSingleCourseTeacherSalary(CourseSchedule courseSchedule, CourseScheduleTeacherSalary courseScheduleTeacherSalary) {
+        List<CourseScheduleTeacherSalary> teacherSalaries = new ArrayList<>();
+        teacherSalaries.add(courseScheduleTeacherSalary);
+        switch (courseSchedule.getGroupType()){
+            case MUSIC:
+                //生成乐团课课酬
+                createMusicGroupCourseTeacherSalaries(null, courseSchedule, teacherSalaries);
+                break;
+            case VIP:
+                //生成vip课课酬
+                createVipGroupCourseTeacherSalaries(courseSchedule, teacherSalaries);
+                break;
+            case PRACTICE:
+                //生成网管课课酬
+                createPracticeGroupCourseTeacherSalaries(courseSchedule, teacherSalaries);
+                break;
+        }
+        courseScheduleTeacherSalary.setExpectSalary(teacherSalaries.get(0).getExpectSalary());
+    }
+
+    @Override
     public void createMusicGroupCourseTeacherSalary(MusicGroup musicGroup, CourseSchedule courseSchedule, CourseScheduleTeacherSalary courseScheduleTeacherSalary) {
         List<CourseScheduleTeacherSalary> teacherSalaries = new ArrayList<>();
         teacherSalaries.add(courseScheduleTeacherSalary);

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

@@ -171,7 +171,7 @@
 	<delete id="deleteWithCourseAndTeachRole">
 		DELETE FROM course_schedule_teacher_salary
 		WHERE course_schedule_id_ IN
-			<foreach collection="courseScheduleIds" item="courseScheduleId" open="(" close=")" separator=",">
+			<foreach collection="courseIds" item="courseScheduleId" open="(" close=")" separator=",">
 				#{courseScheduleId}
 			</foreach>
 			<if test="teachType!=null">

+ 2 - 3
mec-web/src/main/java/com/ym/mec/web/controller/CourseScheduleController.java

@@ -385,9 +385,8 @@ public class CourseScheduleController extends BaseController {
     @ApiOperation(value = "课程调整-批量")
     @PostMapping("/batchCourseAdjust")
     @PreAuthorize("@pcs.hasPermissions('courseSchedule/batchCourseAdjust')")
-    public Object batchCourseAdjust(BatchCourseAdjustDto batchCourseAdjustInfo){
-        courseScheduleService.batchCourseAdjust(batchCourseAdjustInfo);
-        return succeed();
+    public Object batchCourseAdjust(@RequestBody BatchCourseAdjustDto batchCourseAdjustInfo){
+        return courseScheduleService.batchCourseAdjust(batchCourseAdjustInfo);
     }
 
     @ApiOperation(value = "课程顺延")