Pārlūkot izejas kodu

feat:教师端课酬区分大雅课酬与其它课酬

Joburgess 4 gadi atpakaļ
vecāks
revīzija
e38f9c7ffa

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

@@ -11,6 +11,7 @@ import com.ym.mec.common.service.BaseService;
 import org.apache.poi.ss.formula.functions.T;
 
 import java.math.BigDecimal;
+import java.util.Date;
 import java.util.List;
 import java.util.Map;
 
@@ -198,6 +199,14 @@ public interface CourseScheduleTeacherSalaryService extends BaseService<Long, Co
     List<TeacherAttendancesDto> getCourseTeachers(Long courseScheduleId);
 
     /**
+     * @describe 工资奖金标记-新
+     * @author Joburgess
+     * @date 2020/12/25 0025
+     * @return void
+     */
+    void salaryMarkNew(Date startDay);
+
+    /**
      * @describe 工资奖金标记
      * @author Joburgess
      * @date 2020/12/25 0025

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

@@ -1399,6 +1399,54 @@ public class CourseScheduleTeacherSalaryServiceImpl extends BaseServiceImpl<Long
     }
 
     @Override
+    public void salaryMarkNew(Date startDay) {
+        Date now = new Date();
+        Date date = DateUtil.addMonths(now, -1);
+        if(Objects.nonNull(startDay)){
+            date = startDay;
+        }
+        String startDate = DateUtil.format(DateUtil.getFirstDayOfMonth(date),DateUtil.DEFAULT_PATTERN);
+        String endDate = DateUtil.format(DateUtil.getLastDayOfMonth(date),DateUtil.DEFAULT_PATTERN);
+
+        redisTemplate.delete(CourseScheduleTeacherSalaryService.TASK_KEY);
+        List<CourseScheduleTeacherSalary> salaries = courseScheduleTeacherSalaryDao.getIsSalaryWithDate(startDate, endDate);
+        if(CollectionUtils.isEmpty(salaries)){
+            return;
+        }
+        SysConfig dayaBaseSalaryAmountConfig = sysConfigService.findByParamName(SysConfigService.DAYA_BASE_SALARY_AMOUNT);
+        BigDecimal dayaBaseSalaryAmount = new BigDecimal(4000);
+        if(Objects.nonNull(dayaBaseSalaryAmountConfig)&&StringUtils.isNotBlank(dayaBaseSalaryAmountConfig.getParanValue())){
+            dayaBaseSalaryAmount = new BigDecimal(dayaBaseSalaryAmountConfig.getParanValue());
+        }
+
+        Map<Integer, List<CourseScheduleTeacherSalary>> teacherSalariesMap = salaries.stream().collect(Collectors.groupingBy(CourseScheduleTeacherSalary::getUserId));
+        List<CourseScheduleTeacherSalary> updateRecords = new ArrayList<>();
+        for (Map.Entry<Integer, List<CourseScheduleTeacherSalary>> teacherSalariesMapEntry : teacherSalariesMap.entrySet()) {
+            List<CourseScheduleTeacherSalary> teacherSalaries = teacherSalariesMapEntry.getValue();
+
+            BigDecimal teacherBaseSalaryAmount = new BigDecimal("0");
+
+            teacherSalaries.sort(Comparator.comparing(ts->ts.getCourseSchedule().getStartClassTime()));
+            for (CourseScheduleTeacherSalary teacherSalary : teacherSalaries) {
+                if(teacherBaseSalaryAmount.compareTo(dayaBaseSalaryAmount)>=0){
+                    break;
+                }
+
+                teacherBaseSalaryAmount = teacherBaseSalaryAmount.add(teacherSalary.getActualSalary());
+
+                CourseScheduleTeacherSalary courseScheduleTeacherSalary = new CourseScheduleTeacherSalary();
+                courseScheduleTeacherSalary.setId(teacherSalary.getId());
+                courseScheduleTeacherSalary.setBelongToDaya(true);
+                updateRecords.add(courseScheduleTeacherSalary);
+            }
+
+        }
+        if(!CollectionUtils.isEmpty(updateRecords)){
+            courseScheduleTeacherSalaryDao.batchUpdate(updateRecords);
+        }
+    }
+
+    @Override
     @Transactional(rollbackFor = Exception.class)
     public void salaryMark() {
         Date now = new Date();

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

@@ -1073,7 +1073,8 @@
 
 	<select id="getIsSalaryWithDate" resultMap="CourseScheduleTeacherSalary">
 		SELECT
-			csts.*
+			csts.*,
+			CONCAT(cs.class_date_,' ',cs.start_class_time_) start_class_time_
 		FROM
 			course_schedule_teacher_salary csts
 			LEFT JOIN course_schedule cs ON csts.course_schedule_id_ = cs.id_

+ 6 - 0
mec-client-api/src/main/java/com/ym/mec/task/TaskRemoteService.java

@@ -6,6 +6,8 @@ import org.springframework.web.bind.annotation.GetMapping;
 import com.ym.mec.common.config.FeignConfiguration;
 import com.ym.mec.task.fallback.TaskRemoteServiceFallback;
 
+import java.util.Date;
+
 @FeignClient(name = "web-server", contextId = "TaskRemoteService", configuration = { FeignConfiguration.class }, fallback = TaskRemoteServiceFallback.class)
 public interface TaskRemoteService {
 
@@ -181,4 +183,8 @@ public interface TaskRemoteService {
 	//推送查看今日收入提醒
 	@GetMapping("task/todayIncomeRemind")
 	void todayIncomeRemind();
+
+	//大雅基本工资标记
+	@GetMapping("task/salaryMarkNew")
+	void salaryMarkNew();
 }

+ 7 - 0
mec-client-api/src/main/java/com/ym/mec/task/fallback/TaskRemoteServiceFallback.java

@@ -6,6 +6,8 @@ import org.springframework.stereotype.Component;
 
 import com.ym.mec.task.TaskRemoteService;
 
+import java.util.Date;
+
 @Component
 public class TaskRemoteServiceFallback implements TaskRemoteService {
 
@@ -225,4 +227,9 @@ public class TaskRemoteServiceFallback implements TaskRemoteService {
 	public void todayIncomeRemind() {
 		logger.error("推送查看今日收入提醒失败");
 	}
+
+	@Override
+	public void salaryMarkNew() {
+		logger.error("大雅基本工资标记失败");
+	}
 }

+ 19 - 0
mec-task/src/main/java/com/ym/mec/task/jobs/DayaSalaryMarkTask.java

@@ -0,0 +1,19 @@
+package com.ym.mec.task.jobs;
+
+import com.ym.mec.task.TaskRemoteService;
+import com.ym.mec.task.core.BaseTask;
+import com.ym.mec.task.core.TaskException;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.stereotype.Service;
+
+@Service
+public class DayaSalaryMarkTask extends BaseTask {
+
+    @Autowired
+    private TaskRemoteService taskRemoteService;
+
+    @Override
+    public void execute() throws TaskException {
+        taskRemoteService.salaryMarkNew();
+    }
+}

+ 9 - 3
mec-web/src/main/java/com/ym/mec/web/controller/TaskController.java

@@ -143,7 +143,7 @@ public class TaskController extends BaseController {
 	public void vipGroupTeacherSalarySettlement() {
 		courseScheduleTeacherSalaryService.teacherSalarySettlement();
 		redisCache.getRedisTemplate().opsForSet().add(CourseScheduleTeacherSalaryService.TASK_KEY, "VIP");
-		courseScheduleTeacherSalaryService.salaryMark();
+//		courseScheduleTeacherSalaryService.salaryMark();
 	}
 
 	@GetMapping("/practiceTeacherSalarySettlement")
@@ -151,7 +151,7 @@ public class TaskController extends BaseController {
 	public void practiceTeacherSalarySettlement() {
 		courseScheduleTeacherSalaryService.practiceTeacherSalarySettlement();
 		redisCache.getRedisTemplate().opsForSet().add(CourseScheduleTeacherSalaryService.TASK_KEY, "PRACTICE");
-		courseScheduleTeacherSalaryService.salaryMark();
+//		courseScheduleTeacherSalaryService.salaryMark();
 	}
 
 	// 乐团课课酬结算
@@ -159,7 +159,7 @@ public class TaskController extends BaseController {
 	public void musicGroupTeacherSalarySettlement() {
 		courseScheduleTeacherSalaryService.musicGroupTeacherSalarySettlement();
 		redisCache.getRedisTemplate().opsForSet().add(CourseScheduleTeacherSalaryService.TASK_KEY, "MUSIC");
-		courseScheduleTeacherSalaryService.salaryMark();
+//		courseScheduleTeacherSalaryService.salaryMark();
 	}
 
 	@GetMapping("/updateCourseScheduleToOverStatus")
@@ -372,4 +372,10 @@ public class TaskController extends BaseController {
 	public void todayIncomeRemind(){
 		courseScheduleTeacherSalaryService.todayIncomeRemind();
 	}
+
+	//大雅基本工资标记
+	@GetMapping("/salaryMarkNew")
+	public void salaryMarkNew(Date startDay){
+		courseScheduleTeacherSalaryService.salaryMarkNew(startDay);
+	}
 }