Преглед изворни кода

1、订单导出导出文件中【课程形态描述】文案修改为【类型】
2、交易管理导出明细优化:购买会员、零星收费归类为【其他】、乐器维修归类为【乐器维修】、声部更换归类为【乐团新开】
3、回访时若选择【考虑中】【流失】,需要再选择详细内容【价格原因】【时间原因】【教学不满意】【其他】必填
4、小课学员管理数据总览支持分部查询
5、布置作业后,默认7天内提交
6、若下周有服务指标课程,则在课程开始当天不可提交

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

+ 2 - 1
mec-biz/src/main/java/com/ym/mec/biz/dal/dto/StudentPaymentOrderExportDto.java

@@ -169,7 +169,8 @@ public class StudentPaymentOrderExportDto extends StudentPaymentOrder {
         RETAIL_GOODS("RETAIL_GOODS", "零售乐器/辅件/乐保"),
         COURSE_SCHOOL_BUY("COURSE_SCHOOL_BUY", "课程学校采买"),
         COURSE_STUDENT_BUY("COURSE_STUDENT_BUY", "课程家长采买"),
-        LARGE_MUSICAL("LARGE_MUSICAL", "大件乐器");
+        LARGE_MUSICAL("LARGE_MUSICAL", "大件乐器"),
+        OTHER("OTHER", "其他");
 
         private String code;
 

+ 37 - 0
mec-biz/src/main/java/com/ym/mec/biz/dal/entity/StudentVisit.java

@@ -74,6 +74,29 @@ public class StudentVisit extends BaseEntity {
             return this.code;
         }
     }
+    public enum FeedbackTypeDescEnum implements BaseEnum<String,FeedbackTypeDescEnum> {
+        PRICE("价格原因"), TIME("时间原因"),
+        TEACHING("教学不满意"), OTHER("其他");
+
+        private String msg;
+
+        FeedbackTypeDescEnum(String msg) {
+            this.msg = msg;
+        }
+
+        public String getMsg() {
+            return msg;
+        }
+
+        public void setMsg(String msg) {
+            this.msg = msg;
+        }
+
+        @Override
+        public String getCode() {
+            return this.msg;
+        }
+    }
 
     private Integer id;
 
@@ -135,6 +158,12 @@ public class StudentVisit extends BaseEntity {
     private FeedbackTypeEnum feedbackType;
 
     /**
+     * 家长反馈类型
+     */
+    @ApiModelProperty(value = "家长反馈类型明细", required = true)
+    private FeedbackTypeDescEnum feedbackTypeDesc;
+
+    /**
      * 家长反馈
      */
     @ApiModelProperty(value = "家长反馈", required = true)
@@ -154,6 +183,14 @@ public class StudentVisit extends BaseEntity {
 
     private Long objectId;
 
+    public FeedbackTypeDescEnum getFeedbackTypeDesc() {
+        return feedbackTypeDesc;
+    }
+
+    public void setFeedbackTypeDesc(FeedbackTypeDescEnum feedbackTypeDesc) {
+        this.feedbackTypeDesc = feedbackTypeDesc;
+    }
+
     public FeedbackTypeEnum getFeedbackType() {
         return feedbackType;
     }

+ 11 - 0
mec-biz/src/main/java/com/ym/mec/biz/dal/page/StudentVisitQueryInfo.java

@@ -39,6 +39,17 @@ public class StudentVisitQueryInfo extends QueryInfo {
     @ApiModelProperty(value = "家长回访类型(\"THINKING\", \"考虑中\"),(\"PENDING_PAYMENT\", \"确认缴费待缴费\"),(\"LOST\", \"流失\"),(\"PAUSE\", \"暂停\"),(\"OTHER\", \"其他\")", required = false)
     private String feedbackType;
 
+    @ApiModelProperty(value = "PRICE(\"价格原因\"), TIME(\"时间原因\"),TEACHING(\"教学不满意\"), OTHER(\"其他\");", required = false)
+    private String feedbackTypeDesc;
+
+    public String getFeedbackTypeDesc() {
+        return feedbackTypeDesc;
+    }
+
+    public void setFeedbackTypeDesc(String feedbackTypeDesc) {
+        this.feedbackTypeDesc = feedbackTypeDesc;
+    }
+
     public String getFeedbackType() {
         return feedbackType;
     }

+ 26 - 9
mec-biz/src/main/java/com/ym/mec/biz/service/impl/ExportServiceImpl.java

@@ -1827,6 +1827,9 @@ public class ExportServiceImpl implements ExportService {
                 row.setVipCourseFee(row.getActualAmount());
             }else if(row.getGroupType() == GroupType.MEMBER){
                 row.setCloudTeacherFee(row.getActualAmount());
+                if(row.getTypeDesc() == null){
+                    row.setTypeDesc(StudentPaymentOrderExportDto.TypeDesc.OTHER);
+                }
             } else if (row.getGroupType().equals(GroupType.SPORADIC)) {
                 //考级报名
                 if (row.getType().equals(OrderTypeEnum.DEGREE_REGISTRATION)) {
@@ -1874,6 +1877,9 @@ public class ExportServiceImpl implements ExportService {
                         row.setSporadicType(chargeType.getMsg());
                     }
                 }
+                if(row.getTypeDesc() == null){
+                    row.setTypeDesc(StudentPaymentOrderExportDto.TypeDesc.OTHER);
+                }
             } else if (row.getGroupType().equals(GroupType.PRACTICE)) {
                 row.setPracticeCourseFee(row.getActualAmount());
                 PracticeCourseDto practiceGroup = practiceGroupDao.findByGroupId(Integer.parseInt(row.getMusicGroupId()));
@@ -1987,6 +1993,13 @@ public class ExportServiceImpl implements ExportService {
                         row.setPlatformFee(BigDecimal.ZERO);
                     }
                 }
+                if(row.getTypeDesc() == null){
+                    if(row.getGroupType().equals(GroupType.SUBJECT_CHANGE)){
+                        row.setTypeDesc(StudentPaymentOrderExportDto.TypeDesc.NEW_MUSIC);
+                    }else if(row.getGroupType().equals(GroupType.REPAIR)){
+                        row.setTypeDesc(StudentPaymentOrderExportDto.TypeDesc.REPAIR);
+                    }
+                }
             }
             //如果合作单位不存在取学员的第一个乐团的合作单位,乐团主管
             if (row.getCooperationOrganName() == null) {
@@ -2379,15 +2392,6 @@ public class ExportServiceImpl implements ExportService {
 						serviceChargeMap.put(row.getOrderNo(), transferFee.add(currentFee));
 					}
 				}
-                
-                /*if (countFeeFlagNum.getTotalNum() > countFeeFlagNum.getYesNum() && row.getFeeFlag().equals("Y")) {
-                    transferFee = row.getActualAmount().multiply(new BigDecimal("0.28")).divide(new BigDecimal(100), 2, BigDecimal.ROUND_HALF_UP);
-                }
-                if (countFeeFlagNum.getTotalNum().equals(countFeeFlagNum.getYesNum())) {
-                    BigDecimal totalTransferFee = row.getActualAmount().multiply(new BigDecimal("0.28")).divide(new BigDecimal(100), 2, BigDecimal.ROUND_HALF_UP);
-                    transferFee = totalTransferFee.multiply(row.getRouteAmount()).divide(row.getActualAmount(), 2, BigDecimal.ROUND_HALF_UP);
-                }*/
-                
             }
             row.setTransferFee(currentFee);
             row.setPlatformFee(row.getActualAmount().multiply(tenantConfig.getChargeRate()).divide(new BigDecimal(1000), 2, BigDecimal.ROUND_HALF_UP));
@@ -2578,6 +2582,9 @@ public class ExportServiceImpl implements ExportService {
                         row.setSporadicType(chargeType.getMsg());
                     }
                 }
+                if(row.getTypeDesc() == null){
+                    row.setTypeDesc(StudentPaymentOrderExportDto.TypeDesc.OTHER);
+                }
             } else if (row.getGroupType().equals(GroupType.PRACTICE)) {
                 row.setPracticeCourseFee(row.getActualAmount());
                 PracticeCourseDto practiceGroup = practiceGroupDao.findByGroupId(Integer.parseInt(row.getMusicGroupId()));
@@ -2587,6 +2594,9 @@ public class ExportServiceImpl implements ExportService {
                 }
             } else if (row.getGroupType().equals(GroupType.MEMBER)) {
                 row.setCloudTeacherFee(row.getActualAmount());
+                if(row.getTypeDesc() == null){
+                    row.setTypeDesc(StudentPaymentOrderExportDto.TypeDesc.OTHER);
+                }
             } else if (row.getGroupType().equals(GroupType.REPLACEMENT)) {
                 row.setMusicalFee(row.getActualAmount());
                 ReplacementInstrumentActivityStatDto info = replacementInstrumentActivityDao.getInfo(Integer.parseInt(row.getMusicGroupId()));
@@ -2622,6 +2632,13 @@ public class ExportServiceImpl implements ExportService {
                     row.setTransferFee(BigDecimal.ZERO);
                     row.setPlatformFee(BigDecimal.ZERO);
                 }
+                if(row.getTypeDesc() == null){
+                    if(row.getGroupType().equals(GroupType.SUBJECT_CHANGE)){
+                        row.setTypeDesc(StudentPaymentOrderExportDto.TypeDesc.NEW_MUSIC);
+                    }else if(row.getGroupType().equals(GroupType.REPAIR)){
+                        row.setTypeDesc(StudentPaymentOrderExportDto.TypeDesc.REPAIR);
+                    }
+                }
             }
             //如果合作单位不存在取学员的第一个乐团的合作单位和教学点
             if (row.getCooperationOrganName() == null) {

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

@@ -168,7 +168,7 @@ public class ExtracurricularExercisesReplyServiceImpl extends BaseServiceImpl<Lo
 			throw new BizException("作业不存在");
 		}
 		Date now=new Date();
-		if (DateUtil.daysBetween(extracurricularExercises.getCreateTime(), now)>=14){
+		if (DateUtil.daysBetween(extracurricularExercises.getCreateTime(), now) >= 7){
 			throw new BizException("该作业已超出可提交时间范围,无法提交作业。");
 		}
 		existExtra.setAttachments(extracurricularExercisesReply.getAttachments());

+ 16 - 30
mec-biz/src/main/java/com/ym/mec/biz/service/impl/StudentCourseHomeworkServiceImpl.java

@@ -16,6 +16,8 @@ import java.util.Objects;
 import java.util.Set;
 import java.util.stream.Collectors;
 
+import com.ym.mec.biz.dal.dao.*;
+import com.ym.mec.biz.dal.entity.*;
 import org.apache.commons.lang3.StringUtils;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.stereotype.Service;
@@ -24,21 +26,6 @@ import org.springframework.util.CollectionUtils;
 
 import com.ym.mec.auth.api.client.SysUserFeignService;
 import com.ym.mec.auth.api.entity.SysUser;
-import com.ym.mec.biz.dal.dao.ClassGroupDao;
-import com.ym.mec.biz.dal.dao.CourseHomeworkDao;
-import com.ym.mec.biz.dal.dao.CourseScheduleDao;
-import com.ym.mec.biz.dal.dao.CourseScheduleReviewDao;
-import com.ym.mec.biz.dal.dao.ExtracurricularExercisesReplyDao;
-import com.ym.mec.biz.dal.dao.MusicGroupDao;
-import com.ym.mec.biz.dal.dao.PracticeGroupDao;
-import com.ym.mec.biz.dal.dao.StudentCourseHomeworkDao;
-import com.ym.mec.biz.dal.dao.StudentDao;
-import com.ym.mec.biz.dal.dao.StudentRegistrationDao;
-import com.ym.mec.biz.dal.dao.SubjectDao;
-import com.ym.mec.biz.dal.dao.SysConfigDao;
-import com.ym.mec.biz.dal.dao.SysMusicScoreDao;
-import com.ym.mec.biz.dal.dao.TeacherDao;
-import com.ym.mec.biz.dal.dao.VipGroupDao;
 import com.ym.mec.biz.dal.dto.CourseHomeworkDto;
 import com.ym.mec.biz.dal.dto.CourseHomeworkStudentDetailDto;
 import com.ym.mec.biz.dal.dto.EduHomeworkCardDto;
@@ -47,21 +34,7 @@ import com.ym.mec.biz.dal.dto.SimpleUserDto;
 import com.ym.mec.biz.dal.dto.StudentCourseHomeworkDto;
 import com.ym.mec.biz.dal.dto.StudentHomeworkRecordDto;
 import com.ym.mec.biz.dal.dto.StudentVisitCourseHomeWorkDto;
-import com.ym.mec.biz.dal.entity.ClassGroup;
-import com.ym.mec.biz.dal.entity.CourseHomework;
-import com.ym.mec.biz.dal.entity.CourseSchedule;
 import com.ym.mec.biz.dal.entity.CourseSchedule.CourseScheduleType;
-import com.ym.mec.biz.dal.entity.CourseScheduleReview;
-import com.ym.mec.biz.dal.entity.MusicGroup;
-import com.ym.mec.biz.dal.entity.MusicGroupTrainPlan;
-import com.ym.mec.biz.dal.entity.MusicGroupTrainPlanSaveDto;
-import com.ym.mec.biz.dal.entity.PracticeGroup;
-import com.ym.mec.biz.dal.entity.Student;
-import com.ym.mec.biz.dal.entity.StudentCourseHomework;
-import com.ym.mec.biz.dal.entity.StudentRegistration;
-import com.ym.mec.biz.dal.entity.Subject;
-import com.ym.mec.biz.dal.entity.SysMusicScore;
-import com.ym.mec.biz.dal.entity.VipGroup;
 import com.ym.mec.biz.dal.enums.GroupType;
 import com.ym.mec.biz.dal.enums.MessageTypeEnum;
 import com.ym.mec.biz.dal.enums.MusicGroupStatusEnum;
@@ -129,6 +102,8 @@ public class StudentCourseHomeworkServiceImpl extends BaseServiceImpl<Long, Stud
     private SysMusicScoreDao sysMusicScoreDao;
     @Autowired
 	private MusicGroupTrainPlanService musicGroupTrainPlanService;
+    @Autowired
+	private StudentExtracurricularExercisesSituationDao studentExtracurricularExercisesSituationDao;
 
     @Override
     public BaseDAO<Long, StudentCourseHomework> getDAO() {
@@ -165,7 +140,18 @@ public class StudentCourseHomeworkServiceImpl extends BaseServiceImpl<Long, Stud
             throw new BizException("作业不存在");
         }
         Date now = new Date();
-        if (DateUtil.daysBetween(existHomework.getCreateTime(), now) >= 14) {
+        //若下周有服务指标课程,则在课程开始当天不可提交
+        List<StudentExtracurricularExercisesSituation> exercisesSituations = studentExtracurricularExercisesSituationDao.findServiceWithCourse(
+                DateUtil.format(DateUtil.addDays(DateUtil.getLastDayOfMonth(now), 1), DateUtil.ISO_EXPANDED_DATE_FORMAT),
+                existHomework.getCourseScheduleId());
+        if(!CollectionUtils.isEmpty(exercisesSituations)){
+            CourseSchedule courseSchedule = courseScheduleDao.get(existHomework.getCourseScheduleId());
+            int i = courseSchedule.getClassDate().compareTo(DateUtil.stringToDate(DateUtil.format(now, DateUtil.ISO_EXPANDED_DATE_FORMAT), DateUtil.ISO_EXPANDED_DATE_FORMAT));
+            if(i <= 0){
+                throw new BizException("该作业已超出可提交时间范围,无法提交作业。");
+            }
+        }
+        if (DateUtil.daysBetween(existHomework.getCreateTime(), now) >= 7) {
             throw new BizException("该作业已超出可提交时间范围,无法提交作业。");
         }
 

+ 7 - 2
mec-biz/src/main/resources/config/mybatis/StudentVisitMapper.xml

@@ -21,11 +21,12 @@
         <result column="object_id_" property="objectId"/>
         <result column="tenant_id_" property="tenantId"/>
         <result column="feedback_type_" property="feedbackType" typeHandler="com.ym.mec.common.dal.CustomEnumTypeHandler"/>
+        <result column="feedback_type_desc_" property="feedbackTypeDesc" typeHandler="com.ym.mec.common.dal.CustomEnumTypeHandler"/>
     </resultMap>
     <sql id="Base_Column_List">
         <!--@mbg.generated-->
         id_, music_group_id_, organ_id_, student_id_, teacher_id_, visiter_type_, type_, purpose_, overview_, feedback_,
-        visit_time_, create_time_,tenant_id_,feedback_type_
+        visit_time_, create_time_,tenant_id_,feedback_type_,feedback_type_desc_
     </sql>
     <select id="get" parameterType="java.lang.Integer" resultMap="StudentVisit">
         select
@@ -41,12 +42,13 @@
     <insert id="insert" keyColumn="id_" keyProperty="id" parameterType="com.ym.mec.biz.dal.entity.StudentVisit"
             useGeneratedKeys="true">
         <!--@mbg.generated-->
-        insert into student_visit (music_group_id_, organ_id_, student_id_, teacher_id_, visiter_type_, feedback_type_,
+        insert into student_visit (music_group_id_, organ_id_, student_id_, teacher_id_, visiter_type_, feedback_type_,feedback_type_desc_,
         type_, purpose_, overview_,
         feedback_, visit_time_, create_time_,object_id_,tenant_id_)
         values (#{musicGroupId,jdbcType=VARCHAR}, #{organId,jdbcType=INTEGER}, #{studentId,jdbcType=INTEGER},
         #{teacherId,jdbcType=INTEGER},#{visiterType,typeHandler=com.ym.mec.common.dal.CustomEnumTypeHandler},
                 #{feedbackType,typeHandler=com.ym.mec.common.dal.CustomEnumTypeHandler},
+                #{feedbackTypeDesc,typeHandler=com.ym.mec.common.dal.CustomEnumTypeHandler},
         #{type,jdbcType=VARCHAR}, #{purpose,jdbcType=VARCHAR}, #{overview,jdbcType=VARCHAR},
         #{feedback,jdbcType=VARCHAR}, #{visitTime}, #{createTime},#{objectId},#{tenantId})
     </insert>
@@ -133,6 +135,9 @@
             <if test="feedbackType != null and feedbackType != ''">
                 AND sv.feedback_type_ = #{feedbackType}
             </if>
+            <if test="feedbackTypeDesc != null and feedbackTypeDesc != ''">
+                AND sv.feedback_type_desc_ = #{feedbackTypeDesc}
+            </if>
             <if test="purpose != null">
                 AND sv.purpose_ = #{purpose}
             </if>

+ 9 - 5
mec-web/src/main/java/com/ym/mec/web/controller/StudentStatisticsController.java

@@ -64,9 +64,12 @@ public class StudentStatisticsController extends BaseController {
     @ApiOperation(value = "小课学员管理汇总")
     @GetMapping("/studentSmallClassStatisticsSum")
     @PreAuthorize("@pcs.hasPermissions('studentStatistics/studentSmallClassStatisticsSum')")
-    @ApiImplicitParam(name = "groupType", value = "VIP、THEORY、PRACTICE", required = true, dataType = "String")
-    public HttpResponseResult<StudentStatisticsSumDto> studentSmallClassStatisticsSum(String groupType) {
-        return succeed(studentStatisticsService.studentSmallClassStatisticsSum(groupType,organizationService.getEmployeeOrgan(null)));
+    @ApiImplicitParams({
+            @ApiImplicitParam(name = "groupType", value = "VIP、THEORY、PRACTICE", required = true, dataType = "String"),
+            @ApiImplicitParam(name = "organId", value = "分部", dataType = "String"),
+    })
+    public HttpResponseResult<StudentStatisticsSumDto> studentSmallClassStatisticsSum(String groupType,String organId) {
+        return succeed(studentStatisticsService.studentSmallClassStatisticsSum(groupType,organizationService.getEmployeeOrgan(organId)));
     }
 
     @ApiOperation(value = "小课学员管理按时间汇总")
@@ -75,10 +78,11 @@ public class StudentStatisticsController extends BaseController {
             @ApiImplicitParam(name = "groupType", value = "VIP、THEORY、PRACTICE", required = true, dataType = "String"),
             @ApiImplicitParam(name = "startDate", value = "开始时间-年月日", dataType = "String"),
             @ApiImplicitParam(name = "endDate", value = "结束时间-年月日", dataType = "String"),
+            @ApiImplicitParam(name = "organId", value = "分部", dataType = "String"),
     })
     @PreAuthorize("@pcs.hasPermissions('studentStatistics/studentSmallClassStatisticsSumForDate')")
-    public HttpResponseResult<StudentStatisticsSumForDateDto> studentSmallClassStatisticsSumForDate(String groupType, String startDate, String endDate) {
-        return succeed(studentStatisticsService.studentSmallClassStatisticsSumForDate(groupType,startDate,endDate,organizationService.getEmployeeOrgan(null)));
+    public HttpResponseResult<StudentStatisticsSumForDateDto> studentSmallClassStatisticsSumForDate(String groupType, String startDate, String endDate,String organId) {
+        return succeed(studentStatisticsService.studentSmallClassStatisticsSumForDate(groupType,startDate,endDate,organizationService.getEmployeeOrgan(organId)));
     }
 
     @ApiOperation(value = "获取指导老师列表")

+ 4 - 4
mec-web/src/main/resources/exportColumnMapper.ini

@@ -111,11 +111,11 @@ headColumns = ["用户编号", "用户名", "手机号", "课程类型", "实际
 fieldColumns = ["userId", "username", "phone", "type.msg", "name", "actualSalary", "subsidy", "settlementTime", "teacherRole.msg"]
 
 [订单列表导出1]
-headColumns = ["序号", "学生编号", "学生姓名", "交易流水号", "订单编号", "收款渠道", "收款账户", "订单金额", "应付金额", "现金支付", "余额支付", "优惠金额", "课程家长采买","课程学校采买", "VIP课", "网管课", "乐理课", "考级", "维修费用", "乐保费用", "团练宝", "押金", "乐器", "教辅费用", "上门费","账户充值", "零售乐器","大件乐器", "其它", "汇付手续费","平台手续费", "到账时间","关联乐团ID/VIP课ID","课程形态","课程形态描述","收费乐团编号","收费乐团","零星收款类别", "专业", "分部", "教学点", "合作单位", "乐团主管", "备注"]
+headColumns = ["序号", "学生编号", "学生姓名", "交易流水号", "订单编号", "收款渠道", "收款账户", "订单金额", "应付金额", "现金支付", "余额支付", "优惠金额", "课程家长采买","课程学校采买", "VIP课", "网管课", "乐理课", "考级", "维修费用", "乐保费用", "团练宝", "押金", "乐器", "教辅费用", "上门费","账户充值", "零售乐器","大件乐器", "其它", "汇付手续费","平台手续费", "到账时间","关联乐团ID/VIP课ID","课程形态","类型","收费乐团编号","收费乐团","零星收款类别", "专业", "分部", "教学点", "合作单位", "乐团主管", "备注"]
 fieldColumns = ["id", "userId", "user.username", "transNo", "orderNo", "paymentChannel", "merNos", "orderAmount", "expectAmount", "actualAmount","balancePaymentAmount","couponRemitFee","musicGroupCourseFee","courseSchoolBuyAmount", "vipCourseFee", "practiceCourseFee", "theoryCourseFee", "degreeFee", "repairFee", "maintenanceFee", "cloudTeacherFee","leaseFee", "musicalFee", "teachingFee", "visitFee", "rechargeFee","retailGoodsFee","largeMusicalFee", "otherFee", "transferFee", "platformFee", "payTime", "musicGroupId","groupType.desc","typeDesc.msg","feeMusicGroupId","feeMusicGroupName", "sporadicType", "subjectName", "organName", "schoolName", "cooperationOrganName", "eduTeacher", "memo"]
 
 [订单列表导出2]
-headColumns = ["序号", "学生编号", "学生姓名", "交易流水号", "订单编号", "收款渠道", "收款账户", "订单金额", "应付金额", "现金支付", "余额支付", "优惠金额","课程家长采买","课程学校采买", "VIP课", "网管课", "乐理课", "考级", "维修费用", "乐保费用", "团练宝", "押金", "乐器", "教辅费用", "上门费","账户充值", "零售乐器","大件乐器", "其它","平台手续费", "到账时间",    "关联乐团ID/VIP课ID", "课程形态","课程形态描述","收费乐团编号","收费乐团", "零星收款类别", "专业", "分部", "教学点", "合作单位", "乐团主管", "备注"]
+headColumns = ["序号", "学生编号", "学生姓名", "交易流水号", "订单编号", "收款渠道", "收款账户", "订单金额", "应付金额", "现金支付", "余额支付", "优惠金额","课程家长采买","课程学校采买", "VIP课", "网管课", "乐理课", "考级", "维修费用", "乐保费用", "团练宝", "押金", "乐器", "教辅费用", "上门费","账户充值", "零售乐器","大件乐器", "其它","平台手续费", "到账时间",    "关联乐团ID/VIP课ID", "课程形态","类型","收费乐团编号","收费乐团", "零星收款类别", "专业", "分部", "教学点", "合作单位", "乐团主管", "备注"]
 fieldColumns = ["id", "userId", "user.username", "transNo", "orderNo", "paymentChannel", "merNos", "orderAmount", "expectAmount", "actualAmount", "balancePaymentAmount",  "couponRemitFee",     "musicGroupCourseFee","courseSchoolBuyAmount", "vipCourseFee", "practiceCourseFee", "theoryCourseFee", "degreeFee", "repairFee", "maintenanceFee", "cloudTeacherFee",     "leaseFee", "musicalFee", "teachingFee", "visitFee", "rechargeFee","retailGoodsFee","largeMusicalFee", "otherFee", "platformFee", "payTime", "musicGroupId", "groupType.desc","typeDesc.msg","feeMusicGroupId","feeMusicGroupName", "sporadicType", "subjectName", "organName", "schoolName", "cooperationOrganName", "eduTeacher", "memo"]
 
 [订单列表汇总导出]
@@ -171,11 +171,11 @@ headColumns = ["分部", "单位编号", "单位名称", "是否启用","乐团
 fieldColumns = ["organization.name", "id", "name", "isEnable == true ? '是':'否'", "realName", "isEnable == true ? '开启' : '未开启'"]
 
 [财务管理导出1]
-headColumns = ["序号", "学生编号", "学生姓名", "交易流水号", "订单编号", "收款渠道", "收款账户", "订单金额", "应付金额", "现金支付", "余额支付", "分润账户", "分润金额", "分配余额", "优惠金额", "乐团课", "VIP课", "网管课", "乐理课", "考级", "维修费用", "乐保费用", "团练宝", "押金", "乐器", "教辅费用", "上门费", "账户充值", "其它", "汇付手续费", "平台手续费", "到账时间", "关联乐团ID/VIP课ID", "课程形态","课程形态描述","收费乐团编号","收费乐团", "零星收款类别", "专业", "分部", "教学点", "合作单位", "乐团主管", "备注"]
+headColumns = ["序号", "学生编号", "学生姓名", "交易流水号", "订单编号", "收款渠道", "收款账户", "订单金额", "应付金额", "现金支付", "余额支付", "分润账户", "分润金额", "分配余额", "优惠金额", "乐团课", "VIP课", "网管课", "乐理课", "考级", "维修费用", "乐保费用", "团练宝", "押金", "乐器", "教辅费用", "上门费", "账户充值", "其它", "汇付手续费", "平台手续费", "到账时间", "关联乐团ID/VIP课ID", "课程形态","类型","收费乐团编号","收费乐团", "零星收款类别", "专业", "分部", "教学点", "合作单位", "乐团主管", "备注"]
 fieldColumns = ["id", "userId", "user.username", "transNo", "orderNo", "paymentChannel", "merNos", "orderAmount", "expectAmount", "actualAmount", "balancePaymentAmount", "routeMerNo", "routeAmount", "routeBalance",  "couponRemitFee",     "musicGroupCourseFee", "vipCourseFee", "practiceCourseFee", "theoryCourseFee", "degreeFee", "repairFee", "maintenanceFee", "cloudTeacherFee", "leaseFee", "musicalFee", "teachingFee", "visitFee", "rechargeFee", "otherFee", "transferFee", "platformFee", "payTime", "musicGroupId", "groupType.desc","typeDesc.msg","feeMusicGroupId","feeMusicGroupName", "sporadicType", "subjectName", "organName", "schoolName", "cooperationOrganName", "eduTeacher", "memo"]
 
 [财务管理导出2]
-headColumns = ["序号", "学生编号", "学生姓名", "交易流水号", "订单编号", "收款渠道", "收款账户", "订单金额", "应付金额", "现金支付", "余额支付", "分润账户", "分润金额", "分配余额", "优惠金额", "乐团课", "VIP课", "网管课", "乐理课", "考级", "维修费用", "乐保费用", "团练宝", "押金", "乐器", "教辅费用", "上门费", "账户充值", "其它", "平台手续费", "到账时间", "关联乐团ID/VIP课ID", "课程形态","课程形态描述","收费乐团编号","收费乐团", "零星收款类别", "专业", "分部", "教学点", "合作单位", "乐团主管", "备注"]
+headColumns = ["序号", "学生编号", "学生姓名", "交易流水号", "订单编号", "收款渠道", "收款账户", "订单金额", "应付金额", "现金支付", "余额支付", "分润账户", "分润金额", "分配余额", "优惠金额", "乐团课", "VIP课", "网管课", "乐理课", "考级", "维修费用", "乐保费用", "团练宝", "押金", "乐器", "教辅费用", "上门费", "账户充值", "其它", "平台手续费", "到账时间", "关联乐团ID/VIP课ID", "课程形态","类型","收费乐团编号","收费乐团", "零星收款类别", "专业", "分部", "教学点", "合作单位", "乐团主管", "备注"]
 fieldColumns = ["id", "userId", "user.username", "transNo", "orderNo", "paymentChannel", "merNos", "orderAmount" , "expectAmount", "actualAmount", "balancePaymentAmount", "routeMerNo", "routeAmount", "routeBalance",  "couponRemitFee",     "musicGroupCourseFee", "vipCourseFee", "practiceCourseFee", "theoryCourseFee", "degreeFee", "repairFee", "maintenanceFee", "cloudTeacherFee", "leaseFee", "musicalFee", "teachingFee", "visitFee", "rechargeFee", "otherFee", "platformFee", "payTime", "musicGroupId", "groupType.desc","typeDesc.msg","feeMusicGroupId","feeMusicGroupName", "sporadicType", "subjectName", "organName", "schoolName", "cooperationOrganName", "eduTeacher", "memo"]
 
 [老师默认课酬导出]