Pārlūkot izejas kodu

经营报表相关改动

zouxuan 2 gadi atpakaļ
vecāks
revīzija
9b32706a89

+ 4 - 0
mec-biz/src/main/java/com/ym/mec/biz/dal/dao/CloudTeacherFreeCourseDao.java

@@ -4,7 +4,9 @@ import com.ym.mec.common.dal.BaseDAO;
 import com.ym.mec.biz.dal.entity.CloudTeacherFreeCourse;
 import org.apache.ibatis.annotations.Param;
 
+import java.math.BigDecimal;
 import java.util.List;
+import java.util.Map;
 
 public interface CloudTeacherFreeCourseDao extends BaseDAO<Long, CloudTeacherFreeCourse> {
 
@@ -13,4 +15,6 @@ public interface CloudTeacherFreeCourseDao extends BaseDAO<Long, CloudTeacherFre
     void deleteByCourseIds(@Param("courseIdList") List<Long> courseIdList);
 
     Integer countByCourseIdList(@Param("courseIdList") List<Long> courseIdList);
+
+    List<Map<Long, BigDecimal>> queryMapByClassDate(@Param("month") String month);
 }

+ 1 - 1
mec-biz/src/main/java/com/ym/mec/biz/dal/dao/CourseScheduleRewardsRulesDao.java

@@ -70,7 +70,7 @@ public interface CourseScheduleRewardsRulesDao extends BaseDAO<Integer, CourseSc
 	 * @param lastDayOfMonth
 	 * @return
 	 */
-    List<TaskRewardsRulesDto> queryVipGroupTeacherClassTimesByMonth(@Param("firstDayOfMonth") String firstDayOfMonth, @Param("lastDayOfMonth") String lastDayOfMonth);
+    List<TaskRewardsRulesDto> queryVipGroupTeacherClassTimesByMonth(@Param("month") String month);
 
 	/**
 	 * 根据主键列表获取数据

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

@@ -55,7 +55,7 @@ public interface CourseScheduleRewardsRulesService extends BaseService<Integer,
 	 * @param lastDayOfMonth
 	 * @return
 	 */
-    List<TaskRewardsRulesDto> queryVipGroupTeacherClassTimesByMonth(String firstDayOfMonth,String lastDayOfMonth);
+    List<TaskRewardsRulesDto> queryVipGroupTeacherClassTimesByMonth(String month);
 
 	/**
 	 * 根据主键列表获取数据

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

@@ -207,8 +207,8 @@ public class CourseScheduleRewardsRulesServiceImpl extends BaseServiceImpl<Integ
 	}
 
 	@Override
-	public List<TaskRewardsRulesDto> queryVipGroupTeacherClassTimesByMonth(String firstDayOfMonth, String lastDayOfMonth) {
-		return courseScheduleRewardsDao.queryVipGroupTeacherClassTimesByMonth(firstDayOfMonth,lastDayOfMonth);
+	public List<TaskRewardsRulesDto> queryVipGroupTeacherClassTimesByMonth(String month) {
+		return courseScheduleRewardsDao.queryVipGroupTeacherClassTimesByMonth(month);
 	}
 
 	@Override

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

@@ -104,6 +104,8 @@ public class CourseScheduleTeacherSalaryServiceImpl extends BaseServiceImpl<Long
     @Lazy
     private PracticeGroupService practiceGroupService;
     @Autowired
+    private CloudTeacherFreeCourseDao cloudTeacherFreeCourseDao;
+    @Autowired
     private RedisTemplate redisTemplate;
 
     private static final Logger LOGGER = LoggerFactory
@@ -931,17 +933,15 @@ public class CourseScheduleTeacherSalaryServiceImpl extends BaseServiceImpl<Long
         //扣除有异常考勤的课酬
         Map<String, Object> params = new HashMap<>();
         MapUtil.populateMap(params, queryInfo);
-        String firstDayOfMonth = DateUtil.format(DateUtil.getFirstDayOfMonth(queryInfo.getDate()),DateUtil.ISO_EXPANDED_DATE_FORMAT);
-        String lastDayOfMonth =  DateUtil.format(DateUtil.getLastDayOfMonth(queryInfo.getDate()),DateUtil.ISO_EXPANDED_DATE_FORMAT);
-        params.put("firstDayOfMonth",firstDayOfMonth);
-        params.put("lastDayOfMonth",lastDayOfMonth);
+        String month = DateUtil.format(DateUtil.getFirstDayOfMonth(queryInfo.getDate()),DateUtil.ISO_YEAR_MONTH_FORMAT);
+        params.put("month",month);
         List<ExportTeacherSalaryDto> exportTeacherSalaryDtos = new ArrayList<>();
         //乐团课
         exportTeacherSalaryDtos.addAll(courseScheduleTeacherSalaryDao.exportMusicTeacherSalary(params));
         //vip课
         List<ExportTeacherSalaryDto> exportVipTeacherSalaryDtos = courseScheduleTeacherSalaryDao.exportVipTeacherSalary(params);
         //获取有奖励的vip课  .collect(Collectors.toMap(Group::getId, group -> group));
-        List<TaskRewardsRulesDto> rewardsRulesDtos = courseScheduleRewardsRulesService.queryVipGroupTeacherClassTimesByMonth(firstDayOfMonth,lastDayOfMonth);
+        List<TaskRewardsRulesDto> rewardsRulesDtos = courseScheduleRewardsRulesService.queryVipGroupTeacherClassTimesByMonth(month);
         Map<Integer,Double> rewardMap = new HashMap<>(1000);
         Map<Integer,String> rewardNameMap = new HashMap<>(1000);
         if(rewardsRulesDtos != null && rewardsRulesDtos.size() > 0){
@@ -1034,16 +1034,19 @@ public class CourseScheduleTeacherSalaryServiceImpl extends BaseServiceImpl<Long
         if(!CollectionUtils.isEmpty(allCourseIds)){
             List<CourseScheduleStudentPayment> courseScheduleStudentPayments = courseScheduleStudentPaymentDao.findByCourseScheduleIds(new ArrayList<>(allCourseIds));
             if(!CollectionUtils.isEmpty(courseScheduleStudentPayments)){
-                courseIncomeMap = courseScheduleStudentPayments.stream().collect(Collectors.groupingBy(CourseScheduleStudentPayment::getCourseScheduleId, Collectors.mapping(CourseScheduleStudentPayment::getExpectPrice, Collectors.reducing(BigDecimal.ZERO, BigDecimal::add))));
+                courseIncomeMap = courseScheduleStudentPayments.stream().collect(Collectors.groupingBy(CourseScheduleStudentPayment::getCourseScheduleId, Collectors.mapping(CourseScheduleStudentPayment::getActualPrice, Collectors.reducing(BigDecimal.ZERO, BigDecimal::add))));
             }
         }
+        Map<Long,BigDecimal> courseCast = MapUtil.convertIntegerMap(cloudTeacherFreeCourseDao.queryMapByClassDate(month));
 
         for (ExportTeacherSalaryDto exportTeacherSalaryDto : exportTeacherSalaryDtos) {
+            BigDecimal castOrDefault = courseCast.getOrDefault(exportTeacherSalaryDto.getCourseScheduleId(), BigDecimal.ZERO);
             if(!courseIncomeMap.containsKey(exportTeacherSalaryDto.getCourseScheduleId())){
                 exportTeacherSalaryDto.setCourseIncome(BigDecimal.ZERO);
             }else{
                 exportTeacherSalaryDto.setCourseIncome(courseIncomeMap.get(exportTeacherSalaryDto.getCourseScheduleId()));
             }
+            exportTeacherSalaryDto.setCourseIncome(exportTeacherSalaryDto.getCourseIncome().add(castOrDefault));
         }
 
         exportTeacherSalaryDtos.sort(Comparator.comparing(ExportTeacherSalaryDto::getTeacherId));

+ 5 - 0
mec-biz/src/main/resources/config/mybatis/CloudTeacherFreeCourseMapper.xml

@@ -80,4 +80,9 @@
 			#{id}
 		</foreach>
 	</select>
+    <select id="queryMapByClassDate" resultType="java.util.Map">
+		select ctfc.course_id_ 'key',ctfc.cost_ 'value' from cloud_teacher_free_course  ctfc
+		left join course_schedule cs ON cs.id_ = ctfc.course_id_
+		where DATE_FORMAT(cs.class_date_,'%Y-%m') = #{month}
+	</select>
 </mapper>

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

@@ -157,7 +157,7 @@
 		LEFT JOIN course_schedule_teacher_salary csts ON csts.course_schedule_id_ = cs.id_
 		LEFT JOIN vip_group_activity vga ON vga.id_ = vg.vip_group_activity_id_
 		WHERE cs.group_type_ = 'VIP' AND csts.settlement_time_ IS NOT NULL
-		AND cs.class_date_ &gt;= #{firstDayOfMonth} AND cs.class_date_ &lt;= #{lastDayOfMonth}
+		AND DATE_FORMAT(cs.class_date_,'%Y-%m') = #{month}
 		AND FIND_IN_SET(cs.actual_teacher_id_,csrr.teacher_id_)
 		AND FIND_IN_SET(cg.subject_id_list_,csrr.subject_id_)
 		AND csts.user_id_ = cs.actual_teacher_id_

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

@@ -758,7 +758,7 @@
 		LEFT JOIN music_group mg ON (mg.id_ = ts.music_group_id_ AND ts.group_type_ = 'MUSIC')
 		LEFT JOIN organization mgo ON mgo.id_ = mg.organ_id_
 		LEFT JOIN charge_type ct ON ct.id_ = mg.charge_type_id_
-		WHERE cs.class_date_ BETWEEN #{firstDayOfMonth} AND #{lastDayOfMonth} AND cs.`del_flag_` != 1 AND cs.group_type_ = 'MUSIC' AND ts.settlement_time_ IS NOT NULL
+		WHERE DATE_FORMAT(cs.class_date_,'%Y-%m') = #{month} AND cs.`del_flag_` != 1 AND cs.group_type_ = 'MUSIC' AND ts.settlement_time_ IS NOT NULL
 		AND t.is_settlement_salary_ = 1 and ts.tenant_id_ = #{tenantId}
 		<if test="courseTypeList != null">
 			and cs.type_ in (#{courseTypeList})
@@ -798,7 +798,7 @@
 		LEFT JOIN vip_group_activity vga ON vg.vip_group_activity_id_ = vga.id_
 		LEFT JOIN organization vgo ON vgo.id_ = vg.organ_id_
 		left join vip_group_category vgc on vgc.id_ = vg.vip_group_category_id_
-		WHERE vg.organ_id_ != 41 AND cs.class_date_ BETWEEN #{firstDayOfMonth} AND #{lastDayOfMonth} AND cs.`del_flag_` != 1
+		WHERE vg.organ_id_ != 41 AND DATE_FORMAT(cs.class_date_,'%Y-%m') = #{month} AND cs.`del_flag_` != 1
 		AND cs.group_type_ = 'VIP' AND ts.settlement_time_ IS NOT NULL
 		AND t.is_settlement_salary_ = 1 and ts.tenant_id_ = #{tenantId}
 		<if test="courseTypeList != null">
@@ -839,7 +839,7 @@
 		LEFT JOIN `student_attendance` sa ON sa.`course_schedule_id_` = ts.`course_schedule_id_`
 		LEFT JOIN practice_group pg ON (pg.id_ = ts.music_group_id_ AND ts.group_type_ = 'PRACTICE')
 		LEFT JOIN organization pgo ON pgo.id_ = pg.organ_id_
-		WHERE cs.class_date_ BETWEEN #{firstDayOfMonth} AND #{lastDayOfMonth} AND cs.`del_flag_` != 1 AND cs.group_type_ = 'PRACTICE' AND ts.settlement_time_ IS NOT NULL
+		WHERE DATE_FORMAT(cs.class_date_,'%Y-%m') = #{month} AND cs.`del_flag_` != 1 AND cs.group_type_ = 'PRACTICE' AND ts.settlement_time_ IS NOT NULL
 		AND t.is_settlement_salary_ = 1 and ts.tenant_id_ = #{tenantId}
 		<if test="courseTypeList != null">
 			and cs.type_ in (#{courseTypeList})