Browse Source

乐团未排课时长导出

zouxuan 1 year ago
parent
commit
342b404dc6

+ 4 - 0
mec-application/src/main/resources/exportColumnMapper.ini

@@ -366,6 +366,10 @@ fieldColumns = ["organName","studentId","studentName","createTime","time","amoun
 headColumns = ["乐团","长笛","单簧管","萨克斯","小号","圆号","长号","上低音号","大号","小军鼓","合计"]
 fieldColumns = ["musicGroupName","flute","clarinet","saxophone","trumpet","horn","trombone","euphonium","tuba","snareDrum","total"]
 
+[乐团未排课时长]
+headColumns = ["分部","乐团名称","乐团编号","学员编号","学员姓名","课堂课","综合课","基础技能课","基础技能课(线上)","合奏课","单技课","集训合奏课","集训单技课"]
+fieldColumns = ["organName","musicGroupName","musicGroupId","studentId","studentName","classroom","comprehensive","high","highOnline","mix","single","trainingMix","trainingSingle"]
+
 [云教练待激活明细]
 headColumns = ["分部","学员编号","学员姓名","手机号","学员声部","云教练类型","数量","缴费金额(元)","状态","取消原因","操作人","操作时间","获得资格时间"]
 fieldColumns = ["organName","studentId","name","phone","subjectName","type.msg","time","amount","status == 1 ? '待激活':'已取消'","cancelReason","operatorName","operateTime","createTime"]

+ 2 - 0
mec-biz/src/main/java/com/ym/mec/biz/dal/dao/CloudTeacherOrderDao.java

@@ -128,4 +128,6 @@ public interface CloudTeacherOrderDao extends BaseDAO<Long, CloudTeacherOrder> {
     List<CloudTeacherOrder> queryCloudTeacherOrderByIds(@Param("ids") List<Integer> ids);
 
     List<CloudCoachActivationDetailsDto> exportCloudCoachActivationDetails(@Param("month") String month, @Param("organId") String organId);
+
+    List<CloudCoachActivationDetailsDto> exportCloudTeacherOrderInactive(@Param("organId") String organId);
 }

+ 1 - 0
mec-biz/src/main/java/com/ym/mec/biz/dal/enums/ExportEnum.java

@@ -95,6 +95,7 @@ public enum ExportEnum implements BaseEnum<String, ExportEnum> {
     CLOUD_COACH_ACTIVATION_DETAILS("CLOUD_COACH_ACTIVATION_DETAILS","云教练激活明细"),
     EXPORT_MUSIC_GROUP_ECHELON_DATA("EXPORT_MUSIC_GROUP_ECHELON_DATA","乐团梯队数据导出"),
     EXPORT_CLOUD_TEACHER_ORDER_INACTIVE("EXPORT_CLOUD_TEACHER_ORDER_INACTIVE","云教练待激活明细"),
+    EXPORT_MUSIC_GROUP_NO_COURSE("EXPORT_MUSIC_GROUP_NO_COURSE","乐团未排课时长"),
     ;
 
     private String code;

+ 6 - 1
mec-biz/src/main/java/com/ym/mec/biz/service/impl/ExportServiceImpl.java

@@ -354,7 +354,7 @@ public class ExportServiceImpl implements ExportService {
         exportFuncMap.put(ExportEnum.EXPORT_OPERATING_REPORT_NEW, (info) -> exportOperatingNew(info));
         exportFuncMap.put(ExportEnum.EXPORT_INDEX_COOP, (info) -> exportIndexCoop(info));
         exportFuncMap.put(ExportEnum.CLOUD_COACH_ACTIVATION_DETAILS, info -> exportCloudCoachActivationDetails(info));
-        exportFuncMap.put(ExportEnum.EXPORT_CLOUD_TEACHER_ORDER_INACTIVE, info -> exportCloudTeacherOrderInActive(info));
+        exportFuncMap.put(ExportEnum.EXPORT_CLOUD_TEACHER_ORDER_INACTIVE, info -> exportCloudTeacherOrderInactive(info));
 
 
         //导出到报表中心
@@ -491,6 +491,11 @@ public class ExportServiceImpl implements ExportService {
         return cloudTeacherOrderDao.exportCloudCoachActivationDetails(month,organId);
     }
 
+    private List<CloudCoachActivationDetailsDto> exportCloudTeacherOrderInactive(Map<String, Object> info) {
+        String organId = getParam(info, "organId", String.class);
+        return cloudTeacherOrderDao.exportCloudTeacherOrderInactive(organId);
+    }
+
     private List<CloudTeacherStudent> exportCloudTeacherOrderInActive(Map<String, Object> info) {
         CloudTeacherOrderQueryInfo queryInfo = JSONObject.parseObject(JSONObject.toJSONString(info), CloudTeacherOrderQueryInfo.class);
         Integer tenantId = TenantContextHolder.getTenantId();

+ 23 - 0
mec-biz/src/main/resources/config/mybatis/CloudTeacherOrderMapper.xml

@@ -587,4 +587,27 @@
         </if>
         ORDER BY o.id_ DESC,cto.start_time_ DESC
     </select>
+    <select id="exportCloudTeacherOrderInactive"
+            resultType="com.ym.mec.biz.dal.dto.CloudCoachActivationDetailsDto">
+        select o.name_ organName,mg.name_ musicGroupName,mg.id_ musicGroupId,mgpscd.user_id_ studentId,su.username_ studentName,
+        sum(CASE WHEN mgpscd.course_type_ = 'CLASSROOM' THEN mgpscd.sub_course_minutes_ ELSE 0 END) AS classroom,
+        sum(CASE WHEN mgpscd.course_type_ = 'COMPREHENSIVE' THEN mgpscd.sub_course_minutes_ ELSE 0 END) AS comprehensive,
+        sum(CASE WHEN mgpscd.course_type_ = 'HIGH' THEN mgpscd.sub_course_minutes_ ELSE 0 END) AS high,
+        sum(CASE WHEN mgpscd.course_type_ = 'HIGH_ONLINE' THEN mgpscd.sub_course_minutes_ ELSE 0 END) AS highOnline,
+        sum(CASE WHEN mgpscd.course_type_ = 'MIX' THEN mgpscd.sub_course_minutes_ ELSE 0 END) AS mix,
+        sum(CASE WHEN mgpscd.course_type_ = 'SINGLE' THEN mgpscd.sub_course_minutes_ ELSE 0 END) AS single,
+        sum(CASE WHEN mgpscd.course_type_ = 'TRAINING_MIX' THEN mgpscd.sub_course_minutes_ ELSE 0 END) AS trainingMix,
+        sum(CASE WHEN mgpscd.course_type_ = 'TRAINING_SINGLE' THEN mgpscd.sub_course_minutes_ ELSE 0 END) AS trainingSingle
+        from music_group mg
+        left join music_group_payment_calender mgpc ON mgpc.music_group_id_ = mg.id_
+        left join music_group_payment_student_course_detail mgpscd ON mgpscd.music_group_payment_calender_id_ = mgpc.id_
+        left join organization o ON o.id_ = mg.organ_id_
+        left join sys_user su ON su.id_ = mgpscd.user_id_
+        left join student_registration sr ON sr.user_id_ = mgpscd.user_id_ AND sr.music_group_id_ = mgpc.music_group_id_
+        where mg.status_ = 'PROGRESS' AND sr.music_group_status_ = 'NORMAL' AND mgpscd.sub_course_minutes_ > 0
+        <if test="organId != null and organId != ''">
+            AND FIND_IN_SET(mg.organ_id_,#{organId})
+        </if>
+        group by mgpscd.music_group_id_,mgpscd.user_id_ order by mg.organ_id_,mg.id_
+    </select>
 </mapper>