Browse Source

Merge branch 'zouxuan_saas_order_export' of http://git.dayaedu.com/yonge/mec into master_saas

zouxuan 3 years ago
parent
commit
63c5e9194c

+ 96 - 36
mec-biz/src/main/java/com/ym/mec/biz/dal/dto/StudentPaymentOrderExportDto.java

@@ -1,6 +1,5 @@
 package com.ym.mec.biz.dal.dto;
 
-import com.ym.mec.biz.dal.entity.CourseSchedule;
 import com.ym.mec.biz.dal.entity.Goods;
 import com.ym.mec.biz.dal.entity.StudentPaymentOrder;
 import com.ym.mec.biz.dal.entity.StudentPaymentOrderDetail;
@@ -11,96 +10,144 @@ import java.math.BigDecimal;
 import java.util.List;
 
 public class StudentPaymentOrderExportDto extends StudentPaymentOrder {
-    //零星费用
+    @ApiModelProperty(value = "分部",required = true)
+    private String organName;
+
+    @ApiModelProperty(value = "零星费用",required = true)
     private BigDecimal sporadicAmount;
 
     //零星费用类型
+    @ApiModelProperty(value = "零星费用类型",required = true)
     private String sporadicType;
 
-    //课程费用(废弃)
-    private BigDecimal courseFee = BigDecimal.ZERO;
-
-    //新生专享(废弃)
-    private BigDecimal highOnlineCourseFee = BigDecimal.ZERO;
-
     //乐器费用
+    @ApiModelProperty(value = "乐器费用",required = true)
     private BigDecimal musicalFee = BigDecimal.ZERO;
 
     //押金费用
+    @ApiModelProperty(value = "押金费用",required = true)
     private BigDecimal leaseFee = BigDecimal.ZERO;
 
     //教辅费用
+    @ApiModelProperty(value = "教辅费用",required = true)
     private BigDecimal teachingFee = BigDecimal.ZERO;
 
     //维修费用
+    @ApiModelProperty(value = "维修费用",required = true)
     private BigDecimal repairFee = BigDecimal.ZERO;
 
     //汇付手续费
+    @ApiModelProperty(value = "汇付手续费",required = true)
     private BigDecimal transferFee = BigDecimal.ZERO;
     
     //平台手续费
+    @ApiModelProperty(value = "平台手续费",required = true)
     private BigDecimal platformFee = BigDecimal.ZERO;
 
     //乐团课程费用
+    @ApiModelProperty(value = "乐团课程费用",required = true)
     private BigDecimal musicGroupCourseFee = BigDecimal.ZERO;
+
     //网络基础训练课程费用
+    @ApiModelProperty(value = "网络基础训练课程费用",required = true)
     private BigDecimal highCourseFee = BigDecimal.ZERO;
+
     //VIP课程费用
+    @ApiModelProperty(value = "VIP课程费用",required = true)
     private BigDecimal vipCourseFee = BigDecimal.ZERO;
+
     //网管课程费用
+    @ApiModelProperty(value = "网管课程费用",required = true)
     private BigDecimal practiceCourseFee = BigDecimal.ZERO;
+
     //乐理课程费用
+    @ApiModelProperty(value = "乐理课程费用",required = true)
     private BigDecimal theoryCourseFee = BigDecimal.ZERO;
+
     //考级费用
+    @ApiModelProperty(value = "考级费用",required = true)
     private BigDecimal degreeFee = BigDecimal.ZERO;
+
     //其它费用
+    @ApiModelProperty(value = "其它费用",required = true)
     private BigDecimal otherFee = BigDecimal.ZERO;
+
     //乐保费用
+    @ApiModelProperty(value = "乐保费用",required = true)
     private BigDecimal maintenanceFee = BigDecimal.ZERO;
+
+    @ApiModelProperty(value = "零售乐器费用",required = true)
+    private BigDecimal retailGoodsFee = BigDecimal.ZERO;
+
+    @ApiModelProperty(value = "大件乐器费用",required = true)
+    private BigDecimal largeMusicalFee = BigDecimal.ZERO;
+
     //商品乐保
+    @ApiModelProperty(value = "商品乐保",required = true)
     private BigDecimal maintenanceProductFee = BigDecimal.ZERO;
+
     //云教练费用
+    @ApiModelProperty(value = "云教练费用",required = true)
     private BigDecimal cloudTeacherFee = BigDecimal.ZERO;
+
     //上门费费用
+    @ApiModelProperty(value = "上门费费用",required = true)
     private BigDecimal visitFee = BigDecimal.ZERO;
+
     //账户充值
+    @ApiModelProperty(value = "账户充值",required = true)
     private BigDecimal rechargeFee = BigDecimal.ZERO;
 
-    private String organName;
-    private String schoolName;
+    @ApiModelProperty(value = "专业",required = true)
     private String subjectName;
+
+    @ApiModelProperty(value = "合作单位",required = true)
     private String cooperationOrganName;
+
     //乐团主管
+    @ApiModelProperty(value = "乐团主管",required = true)
     private String eduTeacher;
 
+    @ApiModelProperty(value = "收费类型",required = true)
     private Integer chargeType;
 
+    @ApiModelProperty(value = "订单详情",required = true)
     private List<StudentPaymentOrderDetail> orderDetailList;
 
+    @ApiModelProperty(value = "商品列表",required = true)
     private List<Goods> goodsList;
 
     //收款账户
+    @ApiModelProperty(value = "收款账户",required = true)
     private String routeMerNo;
 
     //分润金额
+    @ApiModelProperty(value = "分润金额",required = true)
     private BigDecimal routeAmount;
 
     //分润余额
+    @ApiModelProperty(value = "分润余额",required = true)
     private BigDecimal routeBalance;
 
     //分润中的销售费用
+    @ApiModelProperty(value = "分润中的销售费用",required = true)
     private BigDecimal saleAmount = BigDecimal.ZERO;
 
     //分润中的服务费用
+    @ApiModelProperty(value = "分润中的服务费用",required = true)
     private BigDecimal serviceAmount = BigDecimal.ZERO;
-    
+
+    @ApiModelProperty(value = "服务费",required = true)
     private BigDecimal serviceFee = BigDecimal.ZERO;
 
+    @ApiModelProperty(value = "分部",required = true)
     private String feeFlag;
 
+    @ApiModelProperty(value = "支付状态",required = true)
     private Integer payingStatus;
 
     //订单金额
+    @ApiModelProperty(value = "订单金额",required = true)
     private BigDecimal orderAmount = BigDecimal.ZERO;
 
     public enum TypeDesc implements BaseEnum<String, StudentPaymentOrderExportDto.TypeDesc> {
@@ -109,7 +156,14 @@ public class StudentPaymentOrderExportDto extends StudentPaymentOrder {
         RENEW_VIP("RENEW_VIP", "VIP课续费"),
         NEW_MUSIC("NEW_MUSIC", "乐团新开"),
         ADD_MUSIC("ADD_MUSIC", "乐团扩招"),
-        RENEW_MUSIC("RENEW_MUSIC", "乐团续费");
+        RENEW_MUSIC("RENEW_MUSIC", "乐团续费"),
+        MUSIC_CONVERT("MUSIC_CONVERT", "乐团转化"),
+        NEW_PRACTICE("NEW_PRACTICE", "网管课新增"),
+        RENEW_PRACTICE("RENEW_PRACTICE", "网管课续费"),
+        DEGREE_REGISTRATION("DEGREE_REGISTRATION", "考级费用"),
+        REPAIR("REPAIR", "乐器维修"),
+        RETAIL_GOODS("RETAIL_GOODS", "零售乐器/辅件/乐保"),
+        LARGE_MUSICAL("LARGE_MUSICAL", "大件乐器");
 
         private String code;
 
@@ -133,14 +187,44 @@ public class StudentPaymentOrderExportDto extends StudentPaymentOrder {
     //课程形态描述
     //学员没有历史VIP课程则导出为【VIP课新增】
     //学员有历史VIP课程到导出为【VIP课续费】……
+    @ApiModelProperty(value = "课程形态描述",required = true)
     private TypeDesc typeDesc;
 
     //该笔订单为乐团订单则导出该乐团的【乐团名称】
     //该笔订单非乐团订单时,查询学员是否有在读乐团,无则导出为空,有则导出该学员【进行中】【暂停】乐团名称,进行中>暂停,多个进行中则导出加入乐团时间最近的乐团名称
+    @ApiModelProperty(value = "所在乐团",required = true)
     private String feeMusicGroupId;
 
+    @ApiModelProperty(value = "所在乐团",required = true)
     private String feeMusicGroupName;
 
+    @ApiModelProperty(value = "教学点",required = true)
+    private String schoolName;
+
+    public BigDecimal getRetailGoodsFee() {
+        return retailGoodsFee;
+    }
+
+    public void setRetailGoodsFee(BigDecimal retailGoodsFee) {
+        this.retailGoodsFee = retailGoodsFee;
+    }
+
+    public BigDecimal getLargeMusicalFee() {
+        return largeMusicalFee;
+    }
+
+    public void setLargeMusicalFee(BigDecimal largeMusicalFee) {
+        this.largeMusicalFee = largeMusicalFee;
+    }
+
+    public String getSchoolName() {
+        return schoolName;
+    }
+
+    public void setSchoolName(String schoolName) {
+        this.schoolName = schoolName;
+    }
+
     public String getFeeMusicGroupName() {
         return feeMusicGroupName;
     }
@@ -221,14 +305,6 @@ public class StudentPaymentOrderExportDto extends StudentPaymentOrder {
         this.organName = organName;
     }
 
-    public String getSchoolName() {
-        return schoolName;
-    }
-
-    public void setSchoolName(String schoolName) {
-        this.schoolName = schoolName;
-    }
-
     public String getSubjectName() {
         return subjectName;
     }
@@ -269,14 +345,6 @@ public class StudentPaymentOrderExportDto extends StudentPaymentOrder {
         this.chargeType = chargeType;
     }
 
-    public BigDecimal getCourseFee() {
-        return courseFee;
-    }
-
-    public void setCourseFee(BigDecimal courseFee) {
-        this.courseFee = courseFee;
-    }
-
     public List<Goods> getGoodsList() {
         return goodsList;
     }
@@ -317,14 +385,6 @@ public class StudentPaymentOrderExportDto extends StudentPaymentOrder {
         this.routeBalance = routeBalance;
     }
 
-    public BigDecimal getHighOnlineCourseFee() {
-        return highOnlineCourseFee;
-    }
-
-    public void setHighOnlineCourseFee(BigDecimal highOnlineCourseFee) {
-        this.highOnlineCourseFee = highOnlineCourseFee;
-    }
-
     public BigDecimal getRepairFee() {
         return repairFee;
     }

+ 29 - 6
mec-biz/src/main/java/com/ym/mec/biz/dal/dto/TeacherServeDto.java

@@ -24,8 +24,12 @@ public class TeacherServeDto {
 
     private String organName;
 
+    @ApiModelProperty(value = "作业次数(节)", required = false)
     private int homeworkNum;
 
+    @ApiModelProperty(value = "作业次数(人)", required = false)
+    private int homeworkStuNum;
+
     private int exerciseNum;
 
     private int unDone;
@@ -38,10 +42,10 @@ public class TeacherServeDto {
     private JobNatureEnum jobNature;
 
     /** 预期训练次数 */
-    private Integer expectExercisesNum;
+    private int expectExercisesNum;
 
     /** 实际训练次数 */
-    private Integer actualExercisesNum;
+    private int actualExercisesNum;
 
     /** 提交训练次数 */
     private Integer exercisesReplyNum;
@@ -55,9 +59,28 @@ public class TeacherServeDto {
     /** 点评率 */
     private String exercisesMessageRate;
 
+    /** 及时评价率 */
+    private String exercisesMessageTimelyRate;
+
     @ApiModelProperty(value = "提交率")
     private String submitRate;
 
+    public String getExercisesMessageTimelyRate() {
+        return exercisesMessageTimelyRate;
+    }
+
+    public void setExercisesMessageTimelyRate(String exercisesMessageTimelyRate) {
+        this.exercisesMessageTimelyRate = exercisesMessageTimelyRate;
+    }
+
+    public int getHomeworkStuNum() {
+        return homeworkStuNum;
+    }
+
+    public void setHomeworkStuNum(int homeworkStuNum) {
+        this.homeworkStuNum = homeworkStuNum;
+    }
+
     public String getExercisesMessageRate() {
         return exercisesMessageRate;
     }
@@ -74,19 +97,19 @@ public class TeacherServeDto {
         this.submitRate = submitRate;
     }
 
-    public Integer getExpectExercisesNum() {
+    public int getExpectExercisesNum() {
         return expectExercisesNum;
     }
 
-    public void setExpectExercisesNum(Integer expectExercisesNum) {
+    public void setExpectExercisesNum(int expectExercisesNum) {
         this.expectExercisesNum = expectExercisesNum;
     }
 
-    public Integer getActualExercisesNum() {
+    public int getActualExercisesNum() {
         return actualExercisesNum;
     }
 
-    public void setActualExercisesNum(Integer actualExercisesNum) {
+    public void setActualExercisesNum(int actualExercisesNum) {
         this.actualExercisesNum = actualExercisesNum;
     }
 

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

@@ -33,6 +33,7 @@ public enum ExportEnum implements BaseEnum<String, ExportEnum> {
     COURSE_SCHEDULE_TEACHER_SALARY("COURSE_SCHEDULE_TEACHER_SALARY", "分页导出教师薪酬列表"),
     ORDER_LIST1("ORDER_LIST1", "订单列表导出1"),
     ORDER_LIST2("ORDER_LIST2", "订单列表导出2"),
+    ORDER_LIST_NEW("ORDER_LIST_NEW", "订单列表导出"),
     STUDENT_VIP_PRACTICE("STUDENT_VIP_PRACTICE", "学员小课记录导出"),
     MUSIC_GROUP_STUDENT("MUSIC_GROUP_STUDENT", "乐团导出学员列表"),
     COURSE_REVIEWS("COURSE_REVIEWS", "评论列表导出"),

+ 20 - 0
mec-biz/src/main/java/com/ym/mec/biz/dal/page/SysExamSongQueryInfo.java

@@ -19,6 +19,10 @@ public class SysExamSongQueryInfo extends QueryInfo {
 
     @ApiModelProperty(value = "曲库分类",required = true)
     private String categoriesId;
+    
+    private String filterCategoriesIds;
+    
+    private String categoriesIds;
 
     @ApiModelProperty(value = "是否收费",required = true)
     private Integer rankType;
@@ -142,4 +146,20 @@ public class SysExamSongQueryInfo extends QueryInfo {
     public void setType(String type) {
         this.type = type;
     }
+
+	public String getFilterCategoriesIds() {
+		return filterCategoriesIds;
+	}
+
+	public void setFilterCategoriesIds(String filterCategoriesIds) {
+		this.filterCategoriesIds = filterCategoriesIds;
+	}
+
+	public String getCategoriesIds() {
+		return categoriesIds;
+	}
+
+	public void setCategoriesIds(String categoriesIds) {
+		this.categoriesIds = categoriesIds;
+	}
 }

+ 16 - 0
mec-biz/src/main/java/com/ym/mec/biz/service/impl/ExportServiceImpl.java

@@ -339,6 +339,7 @@ public class ExportServiceImpl implements ExportService {
         exportManageFuncMap.put(ExportEnum.ROUTE_ORDER_LIST2, (info,headColumns) -> routeOrderList(info,headColumns));
         exportManageFuncMap.put(ExportEnum.ORDER_LIST1, (info,headColumns) -> orderList(info,headColumns));
         exportManageFuncMap.put(ExportEnum.ORDER_LIST2, (info,headColumns) -> orderList(info,headColumns));
+        exportManageFuncMap.put(ExportEnum.ORDER_LIST_NEW, (info,headColumns) -> orderList(info,headColumns));
         exportManageFuncMap.put(ExportEnum.STUDENT_VIP_PRACTICE, (info,headColumns) -> exportStudentVipPractice(info,headColumns));
         exportManageFuncMap.put(ExportEnum.STUDENT_VIP_COURSE_INFO, (info,headColumns) -> exportStudentVipCourseInfo(info,headColumns));
         exportManageFuncMap.put(ExportEnum.STUDENT_MUSIC_THEORY_COURSE_INFO, (info,headColumns) -> exportStudentMusicTheoryCourseInfo(info,headColumns));
@@ -1587,6 +1588,8 @@ public class ExportServiceImpl implements ExportService {
         List<Integer> studentIds = studentPaymentOrderExportDtos.stream().map(e -> e.getUserId()).distinct().collect(Collectors.toList());
         //获取学员第一个课程组编号
         Map<Integer, String> userFirstVipMap = MapUtil.convertMybatisMap(courseScheduleStudentPaymentDao.findUserFirstVipMap("VIP",studentIds));
+        //获取学员第一个网管课课程组编号
+        Map<Integer, String> userFirstPracticeMap = MapUtil.convertMybatisMap(courseScheduleStudentPaymentDao.findUserFirstVipMap("PRACTICE",studentIds));
         //获取学员最近加入的一个乐团编号
         Map<Integer, String> userLastMusicIdMap = MapUtil.convertMybatisMap(studentRegistrationDao.getLastMusicGroupId(studentIds));
         Map<Integer, String> userLastMusicNameMap = MapUtil.convertMybatisMap(studentRegistrationDao.getLastMusicGroupName(studentIds));
@@ -1807,6 +1810,13 @@ public class ExportServiceImpl implements ExportService {
                     row.setSubjectName(practiceGroup.getSubjectName());
                     row.setEduTeacher(practiceGroup.getEduTeacherName());
                 }
+                if(row.getTypeDesc() == null){
+                    if(Objects.equals(userFirstPracticeMap.get(row.getUserId()),row.getMusicGroupId())){
+                        row.setTypeDesc(StudentPaymentOrderExportDto.TypeDesc.NEW_PRACTICE);
+                    }else {
+                        row.setTypeDesc(StudentPaymentOrderExportDto.TypeDesc.RENEW_PRACTICE);
+                    }
+                }
             } else if (row.getGroupType().equals(GroupType.REPLACEMENT)) {
                 row.setMusicalFee(row.getActualAmount());
                 ReplacementInstrumentActivityStatDto info = replacementInstrumentActivityDao.getInfo(Integer.parseInt(row.getMusicGroupId()));
@@ -1819,6 +1829,12 @@ public class ExportServiceImpl implements ExportService {
                         row.setEduTeacher(cooperationOrganEduTeacher.getLinkman());
                     }
                 }
+            } else if (row.getGroupType().equals(GroupType.GOODS_SELL)) {
+                row.setRetailGoodsFee(row.getActualAmount());
+                row.setTypeDesc(StudentPaymentOrderExportDto.TypeDesc.RETAIL_GOODS);
+            } else if (row.getGroupType().equals(GroupType.OUTORDER)) {
+                row.setLargeMusicalFee(row.getActualAmount());
+                row.setTypeDesc(StudentPaymentOrderExportDto.TypeDesc.LARGE_MUSICAL);
             } else {
                 StudentPaymentOrderExportDto feeByType = sellOrderDao.getFeeByType(row.getId());
                 BigDecimal childRepairFee = sellOrderDao.getChildRepair(row.getId());

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

@@ -212,6 +212,7 @@ public class StudentExtracurricularExercisesSituationServiceImpl extends BaseSer
 			List<StudentExtracurricularExercisesSituation> teacherServeWithDate = studentExtracurricularExercisesSituationDao.findTeacherServeWithDate(queryInfo.getMonday(), queryInfo.getSunday(), teacherIds, null);
 			Map<Integer, List<StudentExtracurricularExercisesSituation>> teacherServeMap = teacherServeWithDate.stream().collect(Collectors.groupingBy(StudentExtracurricularExercisesSituation::getTeacherId));
 			for (TeacherServeDto teacherServeDto : dataList) {
+				teacherServeDto.setHomeworkStuNum(teacherServeDto.getExpectExercisesNum() - teacherServeDto.getExerciseNum());
 				List<StudentExtracurricularExercisesSituation> tss = teacherServeMap.get(teacherServeDto.getTeacherId());
 				Set<Long> courseIds = new HashSet<>();
 				for (StudentExtracurricularExercisesSituation ts : tss) {

+ 28 - 18
mec-biz/src/main/java/com/ym/mec/biz/service/impl/SysMusicScoreAccompanimentServiceImpl.java

@@ -110,28 +110,38 @@ public class SysMusicScoreAccompanimentServiceImpl extends BaseServiceImpl<Integ
 
     @Override
     public PageInfo<SysMusicScoreAccompaniment> queryScorePage(SysExamSongQueryInfo queryInfo) {
-		if(queryInfo.getCategoriesId() != null){
+		if(queryInfo.getCategoriesIds() != null){
 			List<Integer> categoriesIdList = new ArrayList<>();
-			MusicScoreQueryInfo musicScoreQueryInfo = new MusicScoreQueryInfo();
-			Integer categoriesId = null;
-			if(StringUtils.isNotEmpty(queryInfo.getCategoriesId())){
-				categoriesId = Integer.parseInt(queryInfo.getCategoriesId());
+			String[] categoriesIds = queryInfo.getCategoriesIds().split(",");
+
+			for(String fc : categoriesIds){
+				SysMusicScoreCategories sysMusicScoreCategories = sysMusicScoreCategoriesService.get(Integer.parseInt(fc));
+				
+				if(sysMusicScoreCategories == null){
+					throw new BizException("分类找不到");
+				}
+				categoriesIdList.add(Integer.parseInt(fc));
+				sysMusicScoreCategories = sysMusicScoreCategoriesService.getChildTree(sysMusicScoreCategories);
+				getAllCategoryIdList(categoriesIdList, sysMusicScoreCategories.getSysMusicScoreCategoriesList());
 			}
-			musicScoreQueryInfo.setParentId(categoriesId);
-			musicScoreQueryInfo.setOrganId(queryInfo.getOrganId());
-			musicScoreQueryInfo.setEnable(queryInfo.getEnable());
-			//List<SysMusicScoreCategories> scoreCategories = sysMusicScoreCategoriesService.queryTree(musicScoreQueryInfo);
-			
-			SysMusicScoreCategories sysMusicScoreCategories = sysMusicScoreCategoriesService.get(categoriesId);
+			queryInfo.setCategoriesIds(categoriesIdList.stream().map(String :: valueOf).collect(Collectors.joining(",")));
+		}
+		if(StringUtils.isNotBlank(queryInfo.getFilterCategoriesIds())){
+			String[] filterCategoriesIds = queryInfo.getFilterCategoriesIds().split(",");
+
+			List<Integer> filterCategoriesIdList = new ArrayList<>();
 			
-			if(sysMusicScoreCategories == null){
-				throw new BizException("分类找不到");
+			for(String fc : filterCategoriesIds){
+				SysMusicScoreCategories sysMusicScoreCategories = sysMusicScoreCategoriesService.get(Integer.parseInt(fc));
+				
+				if(sysMusicScoreCategories == null){
+					throw new BizException("分类找不到");
+				}
+				filterCategoriesIdList.add(Integer.parseInt(fc));
+				sysMusicScoreCategories = sysMusicScoreCategoriesService.getChildTree(sysMusicScoreCategories);
+				getAllCategoryIdList(filterCategoriesIdList, sysMusicScoreCategories.getSysMusicScoreCategoriesList());
 			}
-			categoriesIdList.add(categoriesId);
-			sysMusicScoreCategories = sysMusicScoreCategoriesService.getChildTree(sysMusicScoreCategories);
-			getAllCategoryIdList(categoriesIdList, sysMusicScoreCategories.getSysMusicScoreCategoriesList());
-			
-			queryInfo.setCategoriesIdList(categoriesIdList);
+			queryInfo.setFilterCategoriesIds(filterCategoriesIdList.stream().map(String :: valueOf).collect(Collectors.joining(",")));
 		}
 		return this.queryPage(queryInfo);
     }

+ 6 - 0
mec-biz/src/main/resources/config/mybatis/SysMusicScoreAccompanimentMapper.xml

@@ -234,6 +234,12 @@
 					#{item}
 				</foreach>
 			</if>
+			<if test="filterCategoriesIds != null and filterCategoriesIds != ''">
+				AND find_in_set(sesc.id_,#{filterCategoriesIds}) = 0
+			</if>
+			<if test="categoriesIds != null and categoriesIds != ''">
+				AND find_in_set(sesc.id_,#{categoriesIds}) > 0
+			</if>
 			<if test="parentId != null">
 				AND sesc.parent_id_ = #{parentId}
 			</if>

+ 18 - 5
mec-teacher/src/main/java/com/ym/mec/teacher/controller/SysMusicScoreAccompanimentController.java

@@ -11,14 +11,17 @@ import org.springframework.web.bind.annotation.RequestBody;
 import org.springframework.web.bind.annotation.RequestMapping;
 import org.springframework.web.bind.annotation.RestController;
 
+import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
 import com.ym.mec.auth.api.client.SysUserFeignService;
 import com.ym.mec.auth.api.entity.SysUser;
 import com.ym.mec.biz.dal.entity.SysMusicScoreAccompaniment;
 import com.ym.mec.biz.dal.entity.Teacher;
+import com.ym.mec.biz.dal.entity.TenantConfig;
 import com.ym.mec.biz.dal.enums.ClientTypeEnum;
 import com.ym.mec.biz.dal.page.SysExamSongQueryInfo;
 import com.ym.mec.biz.service.SysMusicScoreAccompanimentService;
 import com.ym.mec.biz.service.TeacherService;
+import com.ym.mec.biz.service.TenantConfigService;
 import com.ym.mec.common.controller.BaseController;
 import com.ym.mec.common.exception.BizException;
 import com.ym.mec.common.page.PageInfo;
@@ -34,6 +37,9 @@ public class SysMusicScoreAccompanimentController extends BaseController {
     private SysUserFeignService sysUserFeignService;
     @Autowired
     private TeacherService teacherService;
+    
+    @Autowired
+    private TenantConfigService tenantConfigService;
 
     @ApiOperation(value = "修改")
     @PostMapping("/update")
@@ -93,12 +99,19 @@ public class SysMusicScoreAccompanimentController extends BaseController {
             queryInfo.setOrganId(queryInfo.getOrganId() + "," + teacher.getFlowOrganRange());
         }
         if(queryInfo.getClientType() == null){
-            queryInfo.setClientType(ClientTypeEnum.NETWORK_ROOM);
+            queryInfo.setClientType(ClientTypeEnum.SMART_PRACTICE);
         }
         queryInfo.setCreateUserId(sysUser.getId());
         queryInfo.setShowFlag(1);
         queryInfo.setEnable(true);
         
+        TenantConfig tenantConfig = tenantConfigService.getOne(new QueryWrapper<TenantConfig>().eq("tenant_id_", sysUser.getTenantId()));
+        
+        queryInfo.setCategoriesIds(tenantConfig.getTeachingMaterialId());
+        
+        //过滤合奏和考级
+        queryInfo.setFilterCategoriesIds("40,41,42");
+        
         PageInfo<SysMusicScoreAccompaniment> sysMusicScoreAccompanimentList = sysMusicScoreAccompanimentService.queryScorePage(queryInfo);
        
         String url = null,metronomeUrl = null;
@@ -107,10 +120,10 @@ public class SysMusicScoreAccompanimentController extends BaseController {
         	url = smsa.getUrl();
         	metronomeUrl = smsa.getMetronomeUrl();
         	
-        	smsa.setUrl(smsa.getMp3Url());
-        	smsa.setMetronomeUrl(smsa.getMetronomeMp3Url());
-        	smsa.setMp3Url(url);
-        	smsa.setMetronomeMp3Url(metronomeUrl);
+        	smsa.setUrl(smsa.getMetronomeMp3Url());
+        	smsa.setMetronomeUrl(smsa.getMp3Url());
+        	smsa.setMp3Url(metronomeUrl);
+        	smsa.setMetronomeMp3Url(url);
         }
         
         return succeed(sysMusicScoreAccompanimentList);

+ 8 - 2
mec-web/src/main/java/com/ym/mec/web/controller/ExportController.java

@@ -2296,13 +2296,19 @@ public class ExportController extends BaseController {
                 BigDecimal exercisesMessageRate = new BigDecimal(row.getExercisesMessageNum()).divide(new BigDecimal(row.getExercisesReplyNum()), CommonConstants.DECIMAL_FINAL_PLACE, BigDecimal.ROUND_HALF_UP).multiply(oneHundred);
                 row.setExercisesMessageRate(exercisesMessageRate+"%");
             }
+            if(row.getExercisesReplyNum() <= 0){
+                row.setExercisesMessageTimelyRate(zero.toString()+"%");
+            }else {
+                BigDecimal exercisesMessageTimelyRate = new BigDecimal(row.getExercisesMessageTimelyNum()).divide(new BigDecimal(row.getExercisesReplyNum()), CommonConstants.DECIMAL_FINAL_PLACE, BigDecimal.ROUND_HALF_UP).multiply(oneHundred);
+                row.setExercisesMessageTimelyRate(exercisesMessageTimelyRate+"%");
+            }
         }
 
         try {
-            String[] header = {"分部", "老师编号", "老师姓名", "服务周期", "课后训练(节)", "课外训练(人)", "布置次数", "提交次数", "评价次数", "作业点评率",
+            String[] header = {"分部", "老师编号", "老师姓名", "服务周期", "课后训练(节)", "课后训练(人)", "课外训练(人)", "预计训练布置(人次)", "实际训练布置(人次)", "提交次数", "评价次数", "及时评价次数", "及时评价率", "作业点评率",
                     "训练布置", "训练点评", "训练提交率",
                     "提醒时间", "操作人"};
-            String[] body = {"organName", "teacherId", "teacherName", "dateRange", "homeworkNum", "exerciseNum", "actualExercisesNum", "exercisesReplyNum","exercisesMessageNum","exercisesMessageRate",
+            String[] body = {"organName", "teacherId", "teacherName", "dateRange", "homeworkNum", "homeworkStuNum", "exerciseNum", "expectExercisesNum", "actualExercisesNum", "exercisesReplyNum","exercisesMessageNum","exercisesMessageTimelyNum","exercisesMessageTimelyRate","exercisesMessageRate",
                     "expectExercisesNum>actualExercisesNum?'异常':'正常'", "exercisesReplyNum>exercisesMessageNum?'异常':'正常'", "submitRate",
                     "remindDate", "operatorName"};
             HSSFWorkbook workbook = POIUtil.exportExcel(header, body, result.getRows());

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

@@ -111,12 +111,12 @@ 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","typeDesc.msg","feeMusicGroupId","feeMusicGroupName", "sporadicType", "subjectName", "organName", "schoolName", "cooperationOrganName", "eduTeacher", "memo"]
+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","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", "课程形态","课程形态描述","收费乐团编号","收费乐团", "零星收款类别", "专业", "分部", "教学点", "合作单位", "乐团主管", "备注"]
-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","typeDesc.msg","feeMusicGroupId","feeMusicGroupName", "sporadicType", "subjectName", "organName", "schoolName", "cooperationOrganName", "eduTeacher", "memo"]
+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","retailGoodsFee","largeMusicalFee", "otherFee", "platformFee", "payTime", "musicGroupId", "groupType.desc","typeDesc.msg","feeMusicGroupId","feeMusicGroupName", "sporadicType", "subjectName", "organName", "schoolName", "cooperationOrganName", "eduTeacher", "memo"]
 
 [学员小课记录导出]
 headColumns = ["分部", "学员编号", "学生姓名", "年级", "课程余额", "声部" ,"声部班老师编号" ,"声部班老师", "上次课时间", "VIP总课时数", "VIP已结束课时数", "VIP未开始课时数", "已结束VIP课程组老师编号", "已结束VIP课程组老师", "未开始VIP课程组老师编号", "未开始VIP课程组老师","网管课已结束课时数", "网管课未开始课时数", "已结束网管课课程组老师编号", "已结束网管课课程组老师", "未开始网管课课程组老师编号", "未开始网管课课程组老师", "指导老师编号", "指导老师"]