소스 검색

feat:乐团改造

Joburgess 4 년 전
부모
커밋
ec4a3d7f94

+ 10 - 0
mec-biz/src/main/java/com/ym/mec/biz/dal/entity/CourseScheduleTeacherSalary.java

@@ -65,6 +65,8 @@ public class CourseScheduleTeacherSalary {
 
 	private String memo;
 
+	private String deductionReason;
+
 	public BigDecimal getTeacherActualSalary() {
 		return teacherActualSalary;
 	}
@@ -97,6 +99,14 @@ public class CourseScheduleTeacherSalary {
 		this.classGroupId = classGroupId;
 	}
 
+	public String getDeductionReason() {
+		return deductionReason;
+	}
+
+	public void setDeductionReason(String deductionReason) {
+		this.deductionReason = deductionReason;
+	}
+
 	public BigDecimal getReduceSalary() {
 		return reduceSalary;
 	}

+ 19 - 1
mec-biz/src/main/java/com/ym/mec/biz/service/impl/CourseScheduleTeacherSalaryServiceImpl.java

@@ -617,6 +617,7 @@ public class CourseScheduleTeacherSalaryServiceImpl extends BaseServiceImpl<Long
 
             //扣除费用
             BigDecimal deductCost = BigDecimal.ZERO;
+            List<String> deductReasons = new ArrayList<>();
             List<TeacherAttendance> courseTeacherAttendances = teacherCourseAttendanceMap.get(org.apache.commons.lang3.StringUtils.joinWith(":", courseScheduleTeacherSalary.getCourseScheduleId(), courseScheduleTeacherSalary.getUserId()));
 
             boolean isCallName = false;
@@ -631,31 +632,39 @@ public class CourseScheduleTeacherSalaryServiceImpl extends BaseServiceImpl<Long
             if(CollectionUtils.isEmpty(courseTeacherAttendances)){
                 //无签到记录扣除全部课酬
                 deductCost = deductCost.add(teacherSalary);
+                deductReasons.add("无签到记录扣除全部课酬");
             }else{
                 TeacherAttendance teacherAttendance = courseTeacherAttendances.get(0);
                 if(Objects.isNull(teacherAttendance.getSignInStatus())){
                     //未签到扣除全部课酬
                     deductCost = deductCost.add(teacherSalary);
+                    deductReasons.add("未签到扣除全部课酬");
                 }else if(YesOrNoEnum.NO.equals(teacherAttendance.getSignInStatus())){
-                    int signCourseTimeBetween = DateUtil.minutesBetween(teacherAttendance.getSignInTime(), courseSchedule.getStartClassTime());
+                    int signCourseTimeBetweenSeconds = DateUtil.secondsBetween(teacherAttendance.getSignInTime(), courseSchedule.getStartClassTime());
+                    int signCourseTimeBetween = signCourseTimeBetweenSeconds/60;
                     if(signCourseTimeBetween>=0&&signCourseTimeBetween<20){
                         //未提前20分钟打卡扣除50元
                         deductCost = deductCost.add(new BigDecimal(50));
+                        deductReasons.add("未提前20分钟打卡扣除50元");
                     }else if(signCourseTimeBetween<0&&signCourseTimeBetween>-30){
                         //迟到30分钟内扣除一半课酬
                         deductCost = deductCost.add(teacherSalary.divide(new BigDecimal(2)));
+                        deductReasons.add("迟到30分钟内扣除一半课酬");
                     }else if(signCourseTimeBetween<=-30){
                         //迟到30分钟及以上扣除全部课酬
                         deductCost = deductCost.add(teacherSalary);
+                        deductReasons.add("迟到30分钟及以上扣除全部课酬");
                     }
                 }
 
                 if(!isCallName){
                     //未点名扣除一半课酬
                     deductCost = deductCost.add(teacherSalary.divide(new BigDecimal(2)));
+                    deductReasons.add("未点名扣除一半课酬");
                 }else if((Objects.isNull(teacherAttendance.getSignOutStatus())||YesOrNoEnum.NO.equals(teacherAttendance.getSignOutStatus()))&&isCallName){
                     //异常签退或者未签退,但是正常点名扣除50元课酬
                     deductCost = deductCost.add(new BigDecimal(50));
+                    deductReasons.add("异常签退或者未签退,但是正常点名扣除50元课酬");
                 }
 
 
@@ -666,10 +675,19 @@ public class CourseScheduleTeacherSalaryServiceImpl extends BaseServiceImpl<Long
             //更新教师结算信息
             courseScheduleTeacherSalary.setActualSalary(finalSalary.compareTo(BigDecimal.ZERO)<0?BigDecimal.ZERO:finalSalary);
             courseScheduleTeacherSalary.setSettlementTime(now);
+            courseScheduleTeacherSalary.setDeductionReason(org.apache.commons.lang3.StringUtils.join(deductReasons));
             courseScheduleTeacherSalaryDao.update(courseScheduleTeacherSalary);
         }
     }
 
+    public static void main(String[] args) {
+        Date date1=DateUtil.stringToDate("2020-11-11 15:20:00");
+        Date date2=DateUtil.stringToDate("2020-11-11 15:00:01");
+
+        int i = DateUtil.secondsBetween(date2, date1);
+        System.out.println(i/60);
+    }
+
     @Override
     public PageInfo<TeacherSalaryDto> querySalaries(CourseScheduleTeacherSalaryQueryInfo queryInfo) {
         PageInfo<TeacherSalaryDto> pageInfo = new PageInfo<>(queryInfo.getPage(), queryInfo.getRows());

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

@@ -116,6 +116,9 @@
 			<if test="memo != null">
 				memo_ = #{memo},
 			</if>
+			<if test="deductionReason != null">
+				deduction_reason_ = #{deductionReason},
+			</if>
 		</set> WHERE id_ = #{id} 
 	</update>