瀏覽代碼

Merge remote-tracking branch 'origin/master'

周箭河 5 年之前
父節點
當前提交
849cc2cb3d

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

@@ -48,6 +48,9 @@ public class CourseScheduleTeacherSalary {
 	
 	/** 实际薪水 */
 	private java.math.BigDecimal actualSalary;
+
+	/** 课酬结算时计算的课酬 */
+	private java.math.BigDecimal teacherActualSalary;
 	
 	/** 结算时间 */
 	private java.util.Date settlementTime;
@@ -62,6 +65,14 @@ public class CourseScheduleTeacherSalary {
 
 	private String memo;
 
+	public BigDecimal getTeacherActualSalary() {
+		return teacherActualSalary;
+	}
+
+	public void setTeacherActualSalary(BigDecimal teacherActualSalary) {
+		this.teacherActualSalary = teacherActualSalary;
+	}
+
 	public CourseScheduleTeacherSalary() {
 	}
 

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

@@ -208,7 +208,7 @@ public class CourseScheduleTeacherSalaryServiceImpl extends BaseServiceImpl<Long
         List<CourseScheduleTeacherSalary> someDayAgoTeacherCourseSalaryNoSettlement = courseScheduleTeacherSalaryDao.findTeacherCourseSalaryNoSettlement(days,GroupType.PRACTICE.getCode());
         if (!CollectionUtils.isEmpty(someDayAgoTeacherCourseSalaryNoSettlement)) {
             someDayAgoTeacherCourseSalaryNoSettlement.forEach(courseScheduleTeacherSalary -> {
-                courseScheduleTeacherSalary.setActualSalary(courseScheduleTeacherSalary.getExpectSalary());
+                courseScheduleTeacherSalary.setActualSalary(courseScheduleTeacherSalary.getTeacherActualSalary());
                 courseScheduleTeacherSalary.setSettlementTime(now);
                 courseScheduleTeacherSalaryDao.update(courseScheduleTeacherSalary);
             });
@@ -666,7 +666,7 @@ public class CourseScheduleTeacherSalaryServiceImpl extends BaseServiceImpl<Long
                     teacherSalary = teacherDefaultSalary.multiply(classTimeDuty).setScale(2, BigDecimal.ROUND_HALF_UP);
                 }
             }else{
-                teacherSalary=courseScheduleTeacherSalary.getExpectSalary();
+                teacherSalary=courseScheduleTeacherSalary.getTeacherActualSalary();
             }
 
             BigDecimal subsidy = courseSubsidyMap.get(courseSchedule.getSchoolId());

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

@@ -19,6 +19,7 @@
 		<result column="update_time_" property="updateTime" />
 		<result column="subsidy_" property="subsidy" />
 		<result column="actual_salary_" property="actualSalary" />
+		<result column="teacher_actual_salary_" property="teacherActualSalary" />
 		<result column="settlement_time_" property="settlementTime" />
 		<result column="class_group_id_" property="classGroupId" />
 		<result column="type_" property="courseSchedule.type" />
@@ -291,12 +292,14 @@
     <select id="findTeacherCourseSalaryNoSettlement" resultMap="CourseScheduleTeacherSalary">
 		SELECT
 		cs.class_date_,
-		csts.*
+		csts.*,csts.expect_salary_ * (CASE WHEN (ta.sign_in_status_ IS NULL OR ta.sign_in_status_ = 0) AND (ta.sign_out_status_ IS NULL OR ta.sign_out_status_ = 0) THEN 0
+		WHEN ta.sign_in_status_ IS NULL OR ta.sign_in_status_ = 0 THEN 0.5
+		WHEN ta.sign_out_status_ IS NULL OR ta.sign_out_status_ = 0 THEN 0.5 ELSE 1 END) teacher_actual_salary_
 		FROM
 		course_schedule_teacher_salary csts
 		LEFT JOIN course_schedule cs ON cs.id_ = csts.course_schedule_id_
 		LEFT JOIN teacher_attendance ta ON ta.course_schedule_id_ = cs.id_
-		WHERE (ta.sign_in_status_ IS NOT NULL OR ta.sign_out_status_ IS NOT NULL)
+		WHERE ta.id_ IS NOT NULL
 		<if test="days!=null">
 			AND cs.class_date_ &lt;= DATE_FORMAT(DATE_ADD( NOW( ), INTERVAL - #{days} DAY ),'%Y-%m-%d')
 		</if>
@@ -386,11 +389,17 @@
 		SELECT * FROM  course_schedule_teacher_salary WHERE course_schedule_id_=#{courseScheduleId}
 	</select>
 	<select id="findByCourseSchedulesWithNoSettlement" resultMap="CourseScheduleTeacherSalary">
-		SELECT * FROM  course_schedule_teacher_salary WHERE course_schedule_id_ IN
+		SELECT csts.*,CASE WHEN cs.teach_mode_ = 'ONLINE' THEN csts.expect_salary_ * (CASE WHEN (ta.sign_in_status_ IS NULL OR ta.sign_in_status_ = 0) AND (ta.sign_out_status_ IS NULL OR ta.sign_out_status_ = 0) THEN 0
+		WHEN ta.sign_in_status_ IS NULL OR ta.sign_in_status_ = 0 THEN 0.5
+		WHEN ta.sign_out_status_ IS NULL OR ta.sign_out_status_ = 0 THEN 0.5 ELSE 1 END) ELSE csts.expect_salary_ END teacher_actual_salary_
+		FROM course_schedule_teacher_salary csts
+		LEFT JOIN teacher_attendance ta ON ta.course_schedule_id_ = csts.course_schedule_id_
+		LEFT JOIN course_schedule cs ON cs.id_ = csts.course_schedule_id_
+		WHERE csts.course_schedule_id_ IN
 		<foreach collection="courseScheduleIds" item="courseScheduleId" open="(" close=")" separator=",">
 			#{courseScheduleId}
 		</foreach>
-		AND settlement_time_ IS NULL
+		AND csts.settlement_time_ IS NULL
 	</select>
 
     <select id="countTeacherOnlineOfflineSalaryByClass" resultType="map">

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

@@ -163,7 +163,7 @@
                 AND channel_ NOT IN (#{channel}) OR channel_ IS NULL
             </if>
         </where>
-        ORDER BY id_
+        ORDER BY id_ DESC
         <include refid="global.limit"/>
     </select>
 

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

@@ -110,7 +110,7 @@
 	<select id="queryPage" resultMap="SysUserCoursesAccountDetail" parameterType="map">
 		SELECT * FROM sys_user_courses_account_detail
 		<include refid="queryPageCondition" />
-		ORDER BY id_ <include refid="global.limit"/>
+		ORDER BY id_ DESC <include refid="global.limit"/>
 	</select>
 	
 	<!-- 查询当前表的总记录数 -->

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

@@ -22,7 +22,7 @@ public class SysUserCoursesAccountDetailController extends BaseController {
     private SysUserCoursesAccountDetailService sysUserCoursesAccountDetailService;
 
     @ApiOperation(value = "分页查询用户交易明细")
-    @GetMapping("userCashAccountDetail/queryPage")
+    @GetMapping("/queryPage")
     public Object queryPage(CashAccountDetail queryInfo) {
         SysUser user = sysUserFeignService.queryUserInfo();
         if(user == null || user.getId() != null){