Kaynağa Gözat

Merge branch 'teacher_salary'

Joburgess 4 yıl önce
ebeveyn
işleme
b084fc03d4

+ 11 - 0
mec-biz/src/main/java/com/ym/mec/biz/dal/dto/ClassDateAdjustDto.java

@@ -20,6 +20,17 @@ public class ClassDateAdjustDto extends CourseSchedule {
     @ApiModelProperty(value = "星期几",required = false)
     private Integer weekNum;
 
+    @ApiModelProperty(value = "是否允许0课酬")
+    private Boolean allowZeroSalary = false;
+
+    public Boolean getAllowZeroSalary() {
+        return allowZeroSalary;
+    }
+
+    public void setAllowZeroSalary(Boolean allowZeroSalary) {
+        this.allowZeroSalary = allowZeroSalary;
+    }
+
     public Integer getWeekNum() {
         return weekNum;
     }

+ 11 - 0
mec-biz/src/main/java/com/ym/mec/biz/dal/dto/CourseMergeDto.java

@@ -17,6 +17,17 @@ public class CourseMergeDto extends CourseSchedule {
     @ApiModelProperty(value = "操作人编号")
     private Integer operatorId;
 
+    @ApiModelProperty(value = "是否允许0课酬")
+    private Boolean allowZeroSalary = false;
+
+    public Boolean getAllowZeroSalary() {
+        return allowZeroSalary;
+    }
+
+    public void setAllowZeroSalary(Boolean allowZeroSalary) {
+        this.allowZeroSalary = allowZeroSalary;
+    }
+
     public List<Long> getMergeCourseIds() {
         return mergeCourseIds;
     }

+ 4 - 3
mec-biz/src/main/java/com/ym/mec/biz/service/CourseScheduleService.java

@@ -11,6 +11,7 @@ import com.ym.mec.biz.dal.page.CourseScheduleQueryInfo;
 import com.ym.mec.biz.dal.page.EndCourseScheduleQueryInfo;
 import com.ym.mec.biz.dal.page.StudentCourseScheduleRecordQueryInfo;
 import com.ym.mec.biz.dal.page.VipGroupQueryInfo;
+import com.ym.mec.common.entity.HttpResponseResult;
 import com.ym.mec.common.page.PageInfo;
 import com.ym.mec.common.page.QueryInfo;
 import com.ym.mec.common.service.BaseService;
@@ -217,7 +218,7 @@ public interface CourseScheduleService extends BaseService<Long, CourseSchedule>
 	 * @param newCourseSchedules: 课程计划列表
 	 * @return void
 	 */
-	void courseAdjust(List<CourseSchedule> newCourseSchedules);
+	HttpResponseResult courseAdjust(List<CourseSchedule> newCourseSchedules, Boolean allowZeroSalary);
 
 	/**
 	 * @Author: Joburgess
@@ -590,7 +591,7 @@ public interface CourseScheduleService extends BaseService<Long, CourseSchedule>
 	 * @param teacherId
 	 * @param targetTeacherId
 	 */
-	void classGroupTeacherAdjust(String classGroupIds, Integer teacherId, Integer targetTeacherId);
+	HttpResponseResult classGroupTeacherAdjust(String classGroupIds, Integer teacherId, Integer targetTeacherId, Boolean allowZeroSalary);
 
 	/**
 	 * 网管课批量调整
@@ -634,7 +635,7 @@ public interface CourseScheduleService extends BaseService<Long, CourseSchedule>
 	 * @param courseMergeInfo:
 	 * @return void
 	 */
-	void courseMerge(CourseMergeDto courseMergeInfo);
+	HttpResponseResult courseMerge(CourseMergeDto courseMergeInfo);
 
 	/**
 	 * @describe 合并课程还原

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

@@ -3,6 +3,7 @@ package com.ym.mec.biz.service;
 import com.ym.mec.biz.dal.entity.CourseSchedule;
 import com.ym.mec.biz.dal.entity.TeacherLeaveRecord;
 import com.ym.mec.biz.dal.enums.AuditStatusEnum;
+import com.ym.mec.common.entity.HttpResponseResult;
 import com.ym.mec.common.service.BaseService;
 
 import java.util.List;
@@ -24,7 +25,7 @@ public interface TeacherLeaveRecordService extends BaseService<Long, TeacherLeav
 	 * @param remark 备注
 	 * @return
 	 */
-	boolean approve(Long id, Integer userId, AuditStatusEnum status, String remark);
+	HttpResponseResult approve(Long id, Integer userId, AuditStatusEnum status, String remark, Boolean allowZeroSalary);
 
 	/**
 	 * @describe 检测课程安排是否与老师的请假时间存在冲突

+ 26 - 6
mec-biz/src/main/java/com/ym/mec/biz/service/impl/CourseScheduleServiceImpl.java

@@ -31,6 +31,8 @@ import java.util.stream.Stream;
 import com.ym.mec.biz.dal.dto.*;
 import com.ym.mec.biz.dal.enums.*;
 import com.ym.mec.biz.service.*;
+import com.ym.mec.common.controller.BaseController;
+import com.ym.mec.common.entity.HttpResponseResult;
 import org.apache.commons.collections.ListUtils;
 import org.apache.commons.lang3.StringUtils;
 import org.slf4j.Logger;
@@ -38,9 +40,11 @@ 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.http.HttpStatus;
 import org.springframework.stereotype.Service;
 import org.springframework.transaction.annotation.Propagation;
 import org.springframework.transaction.annotation.Transactional;
+import org.springframework.transaction.interceptor.TransactionAspectSupport;
 import org.springframework.util.CollectionUtils;
 
 import com.alibaba.fastjson.JSON;
@@ -3009,7 +3013,7 @@ public class CourseScheduleServiceImpl extends BaseServiceImpl<Long, CourseSched
 
     @Override
     @Transactional(rollbackFor = Exception.class)
-    public void courseAdjust(List<CourseSchedule> newCourseSchedules) {
+    public HttpResponseResult courseAdjust(List<CourseSchedule> newCourseSchedules, Boolean allowZeroSalary) {
         Date date = new Date();
 		// 课程信息处理
 		List<Long> courseScheduleIds = newCourseSchedules.stream().map(CourseSchedule::getId).distinct().collect(Collectors.toList());
@@ -3391,6 +3395,10 @@ public class CourseScheduleServiceImpl extends BaseServiceImpl<Long, CourseSched
 					if(ts.getExpectSalary() == null){
 						throw new BizException("请设置老师的课酬");
 					}
+					if(!allowZeroSalary&&BigDecimal.ZERO.compareTo(ts.getExpectSalary())==0){
+						TransactionAspectSupport.currentTransactionStatus().setRollbackOnly();
+						return BaseController.failed(HttpStatus.PARTIAL_CONTENT,"当前课程课酬预计为0,是否继续");
+					}
 					insertCourseScheduleTeacherSalaryList.add(ts);
 				}
 			}
@@ -3441,6 +3449,7 @@ public class CourseScheduleServiceImpl extends BaseServiceImpl<Long, CourseSched
 		} catch (Exception e) {
 			e.printStackTrace();
 		}
+		return BaseController.succeed();
     }
 
     @Override
@@ -4991,7 +5000,7 @@ public class CourseScheduleServiceImpl extends BaseServiceImpl<Long, CourseSched
 
 	@Override
 	@Transactional(rollbackFor = Exception.class)
-	public void classGroupTeacherAdjust(String classGroupIds, Integer teacherId, Integer targetTeacherId) {
+	public HttpResponseResult classGroupTeacherAdjust(String classGroupIds, Integer teacherId, Integer targetTeacherId, Boolean allowZeroSalary) {
 		List<Integer> teachingTeacherIdList = new ArrayList<Integer>();
 		teachingTeacherIdList.add(targetTeacherId);
 		List<CourseSchedule> courseSchedules = this.queryNoStartCourseByTeacherId(classGroupIds,teacherId,"BISHOP");
@@ -5001,7 +5010,10 @@ public class CourseScheduleServiceImpl extends BaseServiceImpl<Long, CourseSched
 				e.setTeachingTeacherIdList(courseScheduleTeacherSalaryDao.queryTeacherByTeaching(e.getClassGroupId(),"TEACHING"));
 				e.setActualTeacherId(targetTeacherId);
 			});
-			this.courseAdjust(courseSchedules);
+			HttpResponseResult httpResponseResult = this.courseAdjust(courseSchedules, allowZeroSalary);
+			if(httpResponseResult.getCode()==HttpStatus.PARTIAL_CONTENT.value()){
+				return httpResponseResult;
+			}
 			//修改老师考勤
 			Set<Integer> collect1 = courseSchedules.stream().map(e -> e.getClassGroupId()).collect(Collectors.toSet());
 //			teacherAttendanceDao.deleteByCourseAndTeacherId(collect1,teacherId);
@@ -5013,11 +5025,15 @@ public class CourseScheduleServiceImpl extends BaseServiceImpl<Long, CourseSched
 				e.setActualTeacherId(courseScheduleTeacherSalaryDao.queryTeacherByBishop(e.getClassGroupId()));
 				e.setTeachingTeacherIdList(teachingTeacherIdList);
 			});
-			this.courseAdjust(courseSchedules1);
+			HttpResponseResult httpResponseResult = this.courseAdjust(courseSchedules1, allowZeroSalary);
+			if(httpResponseResult.getCode()==HttpStatus.PARTIAL_CONTENT.value()){
+				return httpResponseResult;
+			}
 			Set<Integer> collect1 = courseSchedules1.stream().map(e -> e.getClassGroupId()).collect(Collectors.toSet());
 ////			teacherAttendanceDao.deleteByCourseAndTeacherId(collect1,teacherId);
 			batchUpdateClassTeacher(new ArrayList<>(collect1),teacherId,targetTeacherId);
 		}
+		return BaseController.succeed();
 	}
 
 	@Override
@@ -5261,7 +5277,7 @@ public class CourseScheduleServiceImpl extends BaseServiceImpl<Long, CourseSched
 
 	@Override
 	@Transactional(rollbackFor = Exception.class)
-	public void courseMerge(CourseMergeDto courseMergeInfo) {
+	public HttpResponseResult courseMerge(CourseMergeDto courseMergeInfo) {
 		Date now = new Date();
 
 		if(CollectionUtils.isEmpty(courseMergeInfo.getMergeCourseIds())){
@@ -5374,11 +5390,15 @@ public class CourseScheduleServiceImpl extends BaseServiceImpl<Long, CourseSched
 		if(!CollectionUtils.isEmpty(newPayments))
 			courseScheduleStudentPaymentDao.batchInsert(newPayments);
 
-		courseAdjust(courseSchedules);
+		HttpResponseResult httpResponseResult = courseAdjust(courseSchedules, courseMergeInfo.getAllowZeroSalary());
+		if(httpResponseResult.getCode()==HttpStatus.PARTIAL_CONTENT.value()){
+			return httpResponseResult;
+		}
 
 		if (insertCourseScheduleModifyLogList.size() > 0) {
 			courseScheduleModifyLogDao.batchInsert(insertCourseScheduleModifyLogList);
 		}
+		return BaseController.succeed();
 	}
 
 	@Override

+ 9 - 3
mec-biz/src/main/java/com/ym/mec/biz/service/impl/TeacherLeaveRecordServiceImpl.java

@@ -10,8 +10,11 @@ import java.util.Objects;
 import java.util.Set;
 import java.util.stream.Collectors;
 
+import com.ym.mec.common.controller.BaseController;
+import com.ym.mec.common.entity.HttpResponseResult;
 import org.apache.commons.lang3.StringUtils;
 import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.http.HttpStatus;
 import org.springframework.stereotype.Service;
 import org.springframework.transaction.annotation.Propagation;
 import org.springframework.transaction.annotation.Transactional;
@@ -120,7 +123,7 @@ public class TeacherLeaveRecordServiceImpl extends BaseServiceImpl<Long, Teacher
 
 	@Override
 	@Transactional(propagation = Propagation.REQUIRED, rollbackFor = Exception.class)
-	public boolean approve(Long id, Integer userId, AuditStatusEnum status, String remark) {
+	public HttpResponseResult approve(Long id, Integer userId, AuditStatusEnum status, String remark, Boolean allowZeroSalary) {
 		SysUser sysUser = sysUserFeignService.queryUserInfo();
 		if (Objects.isNull(sysUser)) {
 			throw new BizException("获取用户信息失败");
@@ -155,7 +158,10 @@ public class TeacherLeaveRecordServiceImpl extends BaseServiceImpl<Long, Teacher
 				}
 				// 课时调整
 				if (list.size() > 0) {
-					courseScheduleService.courseAdjust(list);
+					HttpResponseResult httpResponseResult = courseScheduleService.courseAdjust(list, allowZeroSalary);
+					if(httpResponseResult.getCode()== HttpStatus.PARTIAL_CONTENT.value()){
+						return httpResponseResult;
+					}
 				}
 			}
 		}
@@ -165,7 +171,7 @@ public class TeacherLeaveRecordServiceImpl extends BaseServiceImpl<Long, Teacher
 		map.put(teacher.getId(),teacher.getId() + "");
 		sysMessageService.batchSendMessage(MessageSenderPluginContext.MessageSender.JIGUANG, MessageTypeEnum.TEACHER_PUSH_LEAVE_RESULT,
 				map,null,0,"7","TEACHER",status.getMsg());
-		return true;
+		return BaseController.succeed();
 	}
 
 	@Override

+ 2 - 3
mec-teacher/src/main/java/com/ym/mec/teacher/controller/TeacherCourseScheduleController.java

@@ -237,8 +237,7 @@ public class TeacherCourseScheduleController extends BaseController {
         }
         List<CourseSchedule> courseSchedules=new ArrayList<>();
         courseSchedules.add(classDateAdjustDto);
-        scheduleService.courseAdjust(courseSchedules);
-        return succeed();
+        return scheduleService.courseAdjust(courseSchedules, true);
     }
 
     @ApiOperation(value = "对外课时调整")
@@ -265,7 +264,7 @@ public class TeacherCourseScheduleController extends BaseController {
         }
         List<CourseSchedule> courseSchedules=new ArrayList<>();
         courseSchedules.add(courseSchedule);
-        scheduleService.courseAdjust(courseSchedules);
+        scheduleService.courseAdjust(courseSchedules, true);
         return succeed();
     }
 

+ 13 - 11
mec-web/src/main/java/com/ym/mec/web/controller/CourseScheduleController.java

@@ -191,7 +191,10 @@ public class CourseScheduleController extends BaseController {
     @ApiOperation(value = "课时调整")
     @PreAuthorize("@pcs.hasPermissions('courseSchedule/classStartDateAdjust','system')")
     @PostMapping(value = "/classStartDateAdjust",consumes = MediaType.APPLICATION_FORM_URLENCODED_VALUE, produces = MediaType.APPLICATION_JSON_UTF8_VALUE)
-    public Object classStartDateAdjust(CourseSchedule courseSchedule){
+    public HttpResponseResult classStartDateAdjust(CourseSchedule courseSchedule, Boolean allowZeroSalary){
+        if(Objects.isNull(allowZeroSalary)){
+            allowZeroSalary = false;
+        }
         CourseSchedule oldCourseSchedule = courseScheduleService.get(courseSchedule.getId());
         if(Objects.isNull(oldCourseSchedule)){
             return failed("未找到指定课程");
@@ -212,8 +215,7 @@ public class CourseScheduleController extends BaseController {
         }
         List<CourseSchedule> courseSchedules=new ArrayList<>();
         courseSchedules.add(courseSchedule);
-        courseScheduleService.courseAdjust(courseSchedules);
-        return succeed();
+        return courseScheduleService.courseAdjust(courseSchedules, allowZeroSalary);
     }
 
     @ApiOperation(value = "课程合并")
@@ -225,8 +227,7 @@ public class CourseScheduleController extends BaseController {
             return failed("用户信息获取失败");
         }
         courseMergeInfo.setOperatorId(sysUser.getId());
-        courseScheduleService.courseMerge(courseMergeInfo);
-        return succeed();
+        return courseScheduleService.courseMerge(courseMergeInfo);
     }
 
     @ApiOperation(value = "合并课程还原")
@@ -244,17 +245,18 @@ public class CourseScheduleController extends BaseController {
     @ApiOperation(value = "根据班级列表调整课程")
     @PreAuthorize("@pcs.hasPermissions('courseSchedule/classGroupTeacherAdjust','system')")
     @PostMapping(value = "/classGroupTeacherAdjust")
-    public Object classGroupTeacherAdjust(String classGroupIds,Integer teacherId,Integer targetTeacherId){
-        courseScheduleService.classGroupTeacherAdjust(classGroupIds,teacherId,targetTeacherId);
-        return succeed();
+    public HttpResponseResult classGroupTeacherAdjust(String classGroupIds,Integer teacherId,Integer targetTeacherId, Boolean allowZeroSalary){
+        if(Objects.isNull(allowZeroSalary)){
+            allowZeroSalary = false;
+        }
+        return courseScheduleService.classGroupTeacherAdjust(classGroupIds,teacherId,targetTeacherId, allowZeroSalary);
     }
 
     @ApiOperation(value = "课时调整-批量")
     @PreAuthorize("@pcs.hasPermissions('courseSchedule/batchClassStartDateAdjust')")
     @PostMapping(value = "/batchClassStartDateAdjust")
-    public Object batchClassStartDateAdjust(@RequestBody List<CourseSchedule> courseSchedules){
-        courseScheduleService.courseAdjust(courseSchedules);
-        return succeed();
+    public HttpResponseResult batchClassStartDateAdjust(@RequestBody List<CourseSchedule> courseSchedules){
+        return courseScheduleService.courseAdjust(courseSchedules, true);
     }
 
     @ApiOperation(value = "课时交换")

+ 8 - 2
mec-web/src/main/java/com/ym/mec/web/controller/TeacherLeaveRecordController.java

@@ -7,6 +7,7 @@ import com.ym.mec.biz.dal.entity.TeacherLeaveRecord;
 import com.ym.mec.biz.dal.enums.AuditStatusEnum;
 import com.ym.mec.biz.service.TeacherLeaveRecordService;
 import com.ym.mec.common.controller.BaseController;
+import com.ym.mec.common.entity.HttpResponseResult;
 import io.swagger.annotations.Api;
 import io.swagger.annotations.ApiOperation;
 import org.springframework.beans.factory.annotation.Autowired;
@@ -15,6 +16,8 @@ import org.springframework.web.bind.annotation.PostMapping;
 import org.springframework.web.bind.annotation.RequestMapping;
 import org.springframework.web.bind.annotation.RestController;
 
+import java.util.Objects;
+
 @RequestMapping("teacherLeaveRecord")
 @Api(tags = "教师请假记录服务")
 @RestController
@@ -58,8 +61,11 @@ public class TeacherLeaveRecordController extends BaseController {
 
     @ApiOperation(value = "请假审核")
     @PostMapping("/approve")
-    public Object approve(Long id, Integer userId, AuditStatusEnum status, String remark) {
-        teacherLeaveRecordService.approve(id,userId,status,remark);
+    public HttpResponseResult approve(Long id, Integer userId, AuditStatusEnum status, String remark, Boolean allowZeroSalary) {
+        if(Objects.isNull(allowZeroSalary)){
+            allowZeroSalary = false;
+        }
+        teacherLeaveRecordService.approve(id,userId,status,remark, allowZeroSalary);
         return succeed();
     }
 }

+ 1 - 2
mec-web/src/main/java/com/ym/mec/web/controller/VipGroupManageController.java

@@ -356,8 +356,7 @@ public class VipGroupManageController extends BaseController {
         }
         List<CourseSchedule> courseSchedules=new ArrayList<>();
         courseSchedules.add(classDateAdjustDto);
-        scheduleService.courseAdjust(courseSchedules);
-        return succeed();
+        return scheduleService.courseAdjust(courseSchedules, classDateAdjustDto.getAllowZeroSalary());
     }
 
     @ApiOperation(value = "vip课审核")