zouxuan пре 3 година
родитељ
комит
2af67a5e80

+ 25 - 0
mec-biz/src/main/java/com/ym/mec/biz/dal/dto/ExportDto.java

@@ -0,0 +1,25 @@
+package com.ym.mec.biz.dal.dto;
+
+import com.ym.mec.biz.dal.enums.ExportEnum;
+
+public class ExportDto {
+    private ExportEnum exportEnum;
+
+    private String[] headColumns;
+
+    public ExportEnum getExportEnum() {
+        return exportEnum;
+    }
+
+    public void setExportEnum(ExportEnum exportEnum) {
+        this.exportEnum = exportEnum;
+    }
+
+    public String[] getHeadColumns() {
+        return headColumns;
+    }
+
+    public void setHeadColumns(String[] headColumns) {
+        this.headColumns = headColumns;
+    }
+}

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

@@ -0,0 +1,97 @@
+package com.ym.mec.biz.dal.enums;
+
+import com.ym.mec.common.enums.BaseEnum;
+
+public enum ExportEnum implements BaseEnum<String, ExportEnum> {
+    USER_CASH_ACCOUNT_LOG("USER_CASH_ACCOUNT_LOG","退费记录导出"),
+    MUSIC_GROUP("MUSIC_GROUP","乐团列表导出"),
+    STATISTICS_DETAIL("STATISTICS_DETAIL","21年暑期考级活动统计页面详情导出"),
+    DOUBLE_ELEVEN2021_ORDER_DETAIL("DOUBLE_ELEVEN2021_ORDER_DETAIL", "2021双十一学员购买详情"),
+    ORGAN_DOUBLE_ELEVEN2021_STATIS("ORGAN_DOUBLE_ELEVEN2021_STATIS", "分部2021双11活动统计导出"),
+    USER_CASH_ACCOUNT_DETAIL("USER_CASH_ACCOUNT_DETAIL", "学生个人账户余额导出"),
+    USER_COURSES_ACCOUNT("USER_COURSES_ACCOUNT", "学生个人课程余额导出"),
+    CLASS_GROUP("CLASS_GROUP", "班级列表导出"),
+    GOODS("GOODS", "商品列表导出"),
+    VIP_GROUP_ACTIVITY("VIP_GROUP_ACTIVITY", "VIP活动导出"),
+    EXPORT_STUDENT_ATTENDANCES("EXPORT_STUDENT_ATTENDANCES", "学员考勤记录导出"),
+    MUSIC_GROUP_PAYMENT_CALENDER_DETAIL("MUSIC_GROUP_PAYMENT_CALENDER_DETAIL", "缴费记录导出"),
+    EXPORT_PAYMENT_CALENDER_AUDIT_LIST("EXPORT_PAYMENT_CALENDER_AUDIT_LIST", "审核列表导出"),
+    QUERY_TEACHER_ATTENDANCES("QUERY_TEACHER_ATTENDANCES", "导出教师考勤列表"),
+    TEACHER_SALARY_COMPLAINTS("TEACHER_SALARY_COMPLAINTS", "导出申述处理列表"),
+    STUDENT_BUY_PRACTICE("STUDENT_BUY_PRACTICE", "网管课购买列表"),
+    TENANT_PAYMENT_ORDER("TENANT_PAYMENT_ORDER", "导出对外订单列表"),
+    TEACHER_SALARY("TEACHER_SALARY", "导出老师课酬"),
+    TEACHER_COURSE_REWARD("TEACHER_COURSE_REWARD", "导出老师结转奖励"),
+    STUDENT_HAS_COURSE("STUDENT_HAS_COURSE", "导出学员列表"),
+    PRACTICE_GROUP_LIST("PRACTICE_GROUP_LIST", "导出陪练课列表"),
+    VIP_GROUP_LIST("VIP_GROUP_LIST", "导出VIP课管理"),
+    SUPER_FIND_COURSE_SCHEDULES("SUPER_FIND_COURSE_SCHEDULES", "终课表列表导出"),
+    SPORADIC_CHARGE_INFO("SPORADIC_CHARGE_INFO", "导出零星收费列表"),
+    MUSICAL_LIST_EXPORT("MUSICAL_LIST_EXPORT", "导出乐器采购清单"),
+    MUSICAL_LIST_DETAIL_EXPORT("MUSICAL_LIST_DETAIL_EXPORT", "导出学员采购清单明细"),
+    QUERY_STUDENT_APPLY_DETAIL_EXPORT("QUERY_STUDENT_APPLY_DETAIL_EXPORT", "学生详情列表导出"),
+    COURSE_SCHEDULE_TEACHER_SALARY("COURSE_SCHEDULE_TEACHER_SALARY", "分页导出教师薪酬列表"),
+    ORDER_LIST1("ORDER_LIST1", "订单列表导出1"),
+    ORDER_LIST2("ORDER_LIST2", "订单列表导出2"),
+    STUDENT_VIP_PRACTICE("STUDENT_VIP_PRACTICE", "学员小课记录导出"),
+    MUSIC_GROUP_STUDENT("MUSIC_GROUP_STUDENT", "乐团导出学员列表"),
+    COURSE_REVIEWS("COURSE_REVIEWS", "评论列表导出"),
+    PRACTICE_GROUP("PRACTICE_GROUP", "网管课管理导出"),
+    VIP_GROUP("VIP_GROUP", "VIP管理导出"),
+    EXTRA_EXERCISES_REPLYS("EXTRA_EXERCISES_REPLYS", "学生课外训练记录导出"),
+    EXERCISES_SITUATIONS("EXERCISES_SITUATIONS", "课外训练-教学导出"),
+    IS_SETTLEMENT_COURSE_SALARYS("IS_SETTLEMENT_COURSE_SALARYS", "教师课酬导出"),
+    OPERATING_STUDENTS("OPERATING_STUDENTS", "运营指标管理导出"),
+    VIP_COURSE_REVIEWS("VIP_COURSE_REVIEWS", "VIP评论列表导出"),
+    DEGREE_REGISTRATION("DEGREE_REGISTRATION", "考级报名导出"),
+    COOPERATION_ORGAN("COOPERATION_ORGAN", "合作单位导出"),
+    ROUTE_ORDER_LIST1("ROUTE_ORDER_LIST1", "财务管理导出1"),
+    ROUTE_ORDER_LIST2("ROUTE_ORDER_LIST2", "财务管理导出2"),
+    TEACHER_DEFAULT_SALARY("TEACHER_DEFAULT_SALARY", "老师默认课酬导出"),
+    MUSIC_GROUP_REGISTER("MUSIC_GROUP_REGISTER", "报名中缴费中乐团缴费情况导出"),
+    MUSIC_GROUP_NORMAL_STUDENT_NUM("MUSIC_GROUP_NORMAL_STUDENT_NUM", "乐团声部在读人数导出"),
+    STUDENT_ORDER("STUDENT_ORDER", "回款统计"),
+    EXPORT_SELL_ORDERS("EXPORT_SELL_ORDERS", "销售列表导出"),
+    ARREARAGE_STUDENTS("ARREARAGE_STUDENTS", "欠费学员列表导出"),
+    MUSIC_GROUP_QUIT("MUSIC_GROUP_QUIT", "退团申请列表导出"),
+    TEACHER_SERVE_INFO("TEACHER_SERVE_INFO", "服务指标明细导出"),
+    EXPORT_INDEX_ERR_DATA("EXPORT_INDEX_ERR_DATA", "首页异常统计导出"),
+    TEACHER_COURSE_STATISTICS("TEACHER_COURSE_STATISTICS", "运营预警导出"),
+    EXPORT_INDEX_HISTORY_ERR_DATA("EXPORT_INDEX_HISTORY_ERR_DATA", "首页历史异常统计导出"),
+    TEACHER_LIST("TEACHER_LIST", "老师列表导出"),
+    EMPLOYEE_INFO("EMPLOYEE_INFO", "人力资源导出"),
+    ORGAN_TEACHER_MEMBER_STUDENT_DATA("ORGAN_TEACHER_MEMBER_STUDENT_DATA", "分部下教师关联的会员数据导出"),
+    ORGAN_STUDENT_OVER_VIEW("ORGAN_STUDENT_OVER_VIEW", "分部云教练学员数据预览导出"),
+    CLOUD_STUDY_STUDENT_OVER_VIEW("CLOUD_STUDY_STUDENT_OVER_VIEW", "分部云教练学员数据详情导出"),
+    CLOUD_STUDY_STUDENT_TRAIN_DATA("CLOUD_STUDY_STUDENT_TRAIN_DATA", "分部云教练学员训练数据导出"),
+    COUNT_CLOUD_TEACHER_ACTIVE("COUNT_CLOUD_TEACHER_ACTIVE", "分部云教练活动统计数据导出"),
+    COUNT_CLOUD_TEACHER_ACTIVE_DETAIL("COUNT_CLOUD_TEACHER_ACTIVE_DETAIL", "云教练活动统计详情"),
+    MUSIC_ENLIGHTENMENT_QUESTIONNAIRES("MUSIC_ENLIGHTENMENT_QUESTIONNAIRES", "启蒙课问卷导出"),
+    EXERCISES_SITUATION("EXERCISES_SITUATION", "服务指标导出");
+
+    private String code;
+
+    private String msg;
+
+    ExportEnum(String code, String msg) {
+        this.code = code;
+        this.msg = msg;
+    }
+
+    public void setCode(String code) {
+        this.code = code;
+    }
+
+    public String getMsg() {
+        return msg;
+    }
+
+    public void setMsg(String msg) {
+        this.msg = msg;
+    }
+
+    @Override
+    public String getCode() {
+        return this.code;
+    }
+}

+ 20 - 3
mec-web/src/main/java/com/ym/mec/web/controller/ExportController.java

@@ -18,11 +18,13 @@ import com.ym.mec.common.tenant.TenantContextHolder;
 import com.ym.mec.util.collection.MapUtil;
 import com.ym.mec.util.date.DateUtil;
 import com.ym.mec.util.excel.POIUtil;
+import com.ym.mec.util.ini.IniFileUtil;
 import io.swagger.annotations.Api;
 import io.swagger.annotations.ApiOperation;
 import org.apache.commons.lang3.StringUtils;
 import org.apache.poi.hssf.usermodel.HSSFWorkbook;
 import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.core.io.ClassPathResource;
 import org.springframework.http.HttpStatus;
 import org.springframework.security.access.prepost.PreAuthorize;
 import org.springframework.util.CollectionUtils;
@@ -33,6 +35,7 @@ import org.springframework.web.bind.annotation.RestController;
 
 import javax.servlet.http.HttpServletResponse;
 import java.io.IOException;
+import java.io.InputStream;
 import java.io.OutputStream;
 import java.math.BigDecimal;
 import java.util.*;
@@ -146,10 +149,24 @@ public class ExportController extends BaseController {
     @Autowired
     private SysUserCashAccountLogService sysUserCashAccountLogService;
 
-    public <T> void export(HttpServletResponse response,List<T> rows) throws IOException {
-        if(rows == null || rows.size() < 1){
+    public static void main(String[] args) throws IOException {
+        InputStream inputStream = new ClassPathResource("exportColumnMapper.ini").getInputStream();
+        Map<String, String> columns = IniFileUtil.readIniFile(inputStream, ExportEnum.USER_CASH_ACCOUNT_LOG.getMsg());
+    }
+
+    public <T> void export(HttpServletResponse response,List<T> rows,ExportDto exportDto) throws IOException {
+        if(rows == null || rows.size() == 0){
             throw new BizException("没有可导出数据");
         }
+        String[] headColumns = exportDto.getHeadColumns();
+        if(headColumns == null || headColumns.length == 0){
+            throw new BizException("请选择导出字段");
+        }
+        if(exportDto.getExportEnum() == null){
+            throw new BizException("请选择导出类型");
+        }
+        InputStream inputStream = new ClassPathResource("columnMapper.ini").getInputStream();
+        Map<String, String> columns = IniFileUtil.readIniFile(inputStream, exportDto.getExportEnum().getMsg());
         OutputStream outputStream = response.getOutputStream();
         try {
             HSSFWorkbook workbook = POIUtil.exportExcel(new String[]{"退费编号", "学员编号", "学员姓名","分部", "课程组编号", "课程组类型",
@@ -3002,7 +3019,7 @@ public class ExportController extends BaseController {
         }
     }
 
-    @ApiOperation(value = "分部云教练学员训练数据导出")
+    @ApiOperation(value = "云教练活动统计详情")
     @RequestMapping("export/countCloudTeacherActiveDetail")
     @PreAuthorize("@pcs.hasPermissions('export/countCloudTeacherActiveDetail')")
     public void countCloudTeacherActiveDetail(CloudTeacherActiveQueryInfo queryInfo,HttpServletResponse response) throws IOException {

+ 12 - 5
mec-web/src/main/resources/exportColumnMapper.ini

@@ -1,5 +1,4 @@
 [退费记录导出]
-
 headColumns = ["退费编号", "学员编号", "学员姓名","分部", "课程组编号", "课程组类型","退费金额","退费类型","退费时间","交易流水号", "打款时间"]
 fieldColumns = ["id", "userId","username", "organName", "groupId","groupType.desc","amount", "returnFeeType.msg", "createTime", "transNo","payTime"]
 
@@ -43,7 +42,7 @@ fieldColumns = ["organName", "id", "name", "description", "vipGroupCategoryIdLis
 headColumns = ["分部编号", "分部名称", "课程组类型", "课程组编号", "课程组名称", "学员姓名","学员编号", "课程编号", "课程名称", "上课日期", "上课开始时间", "上课结束时间","指导老师名称", "指导老师编号", "教务老师名称", "教务老师编号", "授课老师名称", "授课老师编号", "学员考勤状态"]
 fieldColumns = ["organId", "organName", "groupType.desc", "groupId", "groupName", "username", "userId", "courseScheduleId", "courseScheduleName", "classDate", "startClassTime", "endClassTime", "guideTeacherName", "guideTeacherId" , "educationalTeacherName", "educationalTeacherId", "actualTeacherName", "actualTeacherId", "studentAttendanceStatus.msg"]
 
-[乐团管理--修改--缴费设置--缴费记录导出]
+[缴费记录导出]
 headColumns = ["学员编号", "学员姓名", "学员声部", "学员状态", "手机号","缴费开始日期", "缴费截止日期", "是否开启缴费", "缴费状态", "支付时间","会员金额", "乐器金额", "课程金额", "辅件金额", "乐保金额", "活动金额"]
 fieldColumns = ["userId", "sysUser.username", "studentRegistration.subjectName", "studentRegistration.musicGroupStatus.msg", "sysUser.phone", "startPaymentDateMgpc", "deadlinePaymentDateMgpc", "openFlag.msg", "paymentStatus.desc", "payTime", "cloudAmount", "musicalAmount", "courseAmount", "accessoriesAmount", "maintenanceAmount", "activityAmount"]
 
@@ -103,7 +102,7 @@ fieldColumns = ["brief", "memo", "type.desc", "name", "specification", "sellCoun
 headColumns = ["分部", "乐团", "学员编号", "学员姓名", "声部", "购买乐器", "乐器采购方式", "乐器金额", "购买教辅", "教辅金额", "课程金额", "团练宝金额", "乐保金额", "订单总价"]
 fieldColumns = ["organName", "musicGroupName", "userId", "username", "subjectName", "musicalName", "kitGroupPurchaseTypeEnum.msg", "musicalAmount", "accessoriesName", "accessoriesAmount", "courseAmount", "cloudTeacherAmount", "maintenanceAmount", "orderAmount"]
 
-[乐团【报名中、缴费中】 学生详情列表导出]
+[学生详情列表导出]
 headColumns = ["学生姓名", "家长姓名", "年级", "班级", "性别", "服从调剂", "报名专业","实际专业", "联系电话", "学员缴费状态", "乐器购买方式","缴费中/审核中","是否购买团练宝"]
 fieldColumns = ["studentName", "parentsName", "currentGrade", "currentClass", "gender.description", "isAllowAdjust.msg", "subjectName", "actualSubjectName", "parentsPhone", "paymentStatus.desc", "kitGroupPurchaseTypeEnum.msg","payingStatusStr","hasCloudTeacher==1?'有':'没有'"]
 
@@ -111,11 +110,19 @@ fieldColumns = ["studentName", "parentsName", "currentGrade", "currentClass", "g
 headColumns = ["用户编号", "用户名", "手机号", "课程类型", "实际薪水", "补助", "结算时间", "教师角色"]
 fieldColumns = ["userId", "username", "phone", "type.msg", "name", "actualSalary", "subsidy", "settlementTime", "teacherRole.msg"]
 
+[订单列表导出1]
+headColumns = ["序号", "学生编号", "学生姓名", "交易流水号", "订单编号", "收款渠道", "收款账户", "订单金额", "应付金额", "现金支付", "余额支付", "优惠金额",    "乐团课", "VIP课", "网管课", "乐理课", "考级", "维修费用", "乐保费用", "团练宝", "押金", "乐器", "教辅费用", "上门费",    "账户充值", "其它", "汇付手续费","平台手续费", "到账时间",    "关联乐团ID/VIP课ID", "课程形态", "零星收款类别", "专业", "分部", "教学点", "合作单位", "乐团主管", "备注"]
+fieldColumns = ["id", "userId", "user.username", "transNo", "orderNo", "paymentChannel", "merNos", "orderAmount", "expectAmount", "actualAmount", "balancePaymentAmount",  "couponRemitFee",     "musicGroupCourseFee", "vipCourseFee", "practiceCourseFee", "theoryCourseFee", "degreeFee", "repairFee", "maintenanceFee", "cloudTeacherFee",     "leaseFee", "musicalFee", "teachingFee", "visitFee", "rechargeFee", "otherFee", "transferFee", "platformFee", "payTime", "musicGroupId",     "groupType.desc", "sporadicType", "subjectName", "organName", "schoolName", "cooperationOrganName", "eduTeacher", "memo"]
+
+[订单列表导出2]
+headColumns = ["序号", "学生编号", "学生姓名", "交易流水号", "订单编号", "收款渠道", "收款账户", "订单金额", "应付金额", "现金支付", "余额支付", "优惠金额",    "乐团课", "VIP课", "网管课", "乐理课", "考级", "维修费用", "乐保费用", "团练宝", "押金", "乐器", "教辅费用", "上门费",    "账户充值", "其它","平台手续费", "到账时间",    "关联乐团ID/VIP课ID", "课程形态", "零星收款类别", "专业", "分部", "教学点", "合作单位", "乐团主管", "备注"]
+fieldColumns = ["id", "userId", "user.username", "transNo", "orderNo", "paymentChannel", "merNos", "orderAmount", "expectAmount", "actualAmount", "balancePaymentAmount",  "couponRemitFee",     "musicGroupCourseFee", "vipCourseFee", "practiceCourseFee", "theoryCourseFee", "degreeFee", "repairFee", "maintenanceFee", "cloudTeacherFee",     "leaseFee", "musicalFee", "teachingFee", "visitFee", "rechargeFee", "otherFee", "platformFee", "payTime", "musicGroupId",     "groupType.desc", "sporadicType", "subjectName", "organName", "schoolName", "cooperationOrganName", "eduTeacher", "memo"]
+
 [学员小课记录导出]
 headColumns = ["分部", "学员编号", "学生姓名", "课程余额", "声部", "VIP已结束课时数", "VIP未开始课时数", "已结束VIP上课老师编号", "已结束VIP上课老师","网管课已结束课时数", "网管课未开始课时数", "已结束网管课上课老师编号", "已结束网管课上课老师", "指导老师编号", "指导老师"]
 fieldColumns = ["organName","userId", "username","courseBalance", "subjectName", "vipOverNum", "vipNotStartNum", "vipOverTeacherId", "vipOverTeacherName" , "practiceOverNum", "practiceNotStartNum", "practiceOverTeacherId", "practiceOverTeacherName","teacherId","teacherName"]
 
-[乐团管理--乐团详情-导出学员列表]
+[乐团导出学员列表]
 headColumns = ["学员编号", "学员姓名", "性别", "联系电话","入团时间", "年级", "班级", "入团专业", "学员状态", "报名缴费", "缴费金额", "是否激活","VIP/网管是否有课","关心包","加油包", "欠费金额(元)", "退团原因", "会员截止时间", "会员剩余天数"]
 fieldColumns = ["userId", "realName", "gender", "phone","registerTime", "currentGrade", "currentClass", "subjectName", "studentStatus", "paymentStatus.desc" ,"courseFee", "activeName", "hasCourse ? '是' : '否'" ,"carePackage == null || carePackage == 0 ? \"不可用\" : carePackage == 1 ? \"可用\" : \"已使用\"" ,"comeOnPackage == null || comeOnPackage == 0 ? \"不可用\" : comeOnPackage == 1 ? \"可用\" : \"已使用\"" ,"noPaymentAmount == null ? 0 : noPaymentAmount", "quitReason", "membershipEndTime","membershipEndTime == null ? hasNoStartCloudTeacher ? \"未生效\" : \"未购买\" : membershipDay >= 0 ? membershipDay : hasNoStartCloudTeacher ? \"未生效\" : \"会员已过期\""]
 
@@ -239,7 +246,7 @@ fieldColumns = ["studentId", "studentName","currentGradeNum","currentClass", "ph
 headColumns = ["分部", "购买人数", "购买金额", "目标金额", "人均购买金额", "目标人数", "目标达成率"]
 fieldColumns = ["organName", "buyNum", "buyAmount", "targetAmount", "avgBuyAmount",         "targetNum", "targetFinishScale"]
 
-[分部云教练学员训练数据导出]
+[云教练活动统计详情]
 headColumns = ["学员编号", "学员", "合作单位", "乐团", "乐团模式", "声部", "年级", "指导老师", "购买套餐", "购买金额"]
 fieldColumns = ["userId", "username", "cooperationName", "musicGroupName", "chargeType",         "subjectName", "currentGradeNum", "teacherName", "remark", "amount"]