Ver Fonte

Merge remote-tracking branch 'origin/master'

周箭河 há 4 anos atrás
pai
commit
6f00190fdf
23 ficheiros alterados com 242 adições e 55 exclusões
  1. 2 1
      mec-biz/src/main/java/com/ym/mec/biz/dal/dao/CourseScheduleDao.java
  2. 2 1
      mec-biz/src/main/java/com/ym/mec/biz/dal/dao/CourseScheduleTeacherSalaryDao.java
  3. 7 0
      mec-biz/src/main/java/com/ym/mec/biz/dal/dao/MusicGroupDao.java
  4. 7 0
      mec-biz/src/main/java/com/ym/mec/biz/dal/dao/PracticeGroupDao.java
  5. 7 0
      mec-biz/src/main/java/com/ym/mec/biz/dal/dao/VipGroupDao.java
  6. 10 0
      mec-biz/src/main/java/com/ym/mec/biz/dal/dto/CourseScheduleEndDto.java
  7. 1 1
      mec-biz/src/main/java/com/ym/mec/biz/dal/enums/ClientTypeEnum.java
  8. 1 0
      mec-biz/src/main/java/com/ym/mec/biz/dal/enums/ExportTypeEnum.java
  9. 35 0
      mec-biz/src/main/java/com/ym/mec/biz/dal/enums/TeachIncomeTypeEnum.java
  10. 11 0
      mec-biz/src/main/java/com/ym/mec/biz/dal/page/TeacherIncomeQueryInfo.java
  11. 2 0
      mec-biz/src/main/java/com/ym/mec/biz/service/CourseScheduleService.java
  12. 9 0
      mec-biz/src/main/java/com/ym/mec/biz/service/ExportService.java
  13. 24 0
      mec-biz/src/main/java/com/ym/mec/biz/service/impl/CourseScheduleServiceImpl.java
  14. 13 3
      mec-biz/src/main/java/com/ym/mec/biz/service/impl/CourseScheduleTeacherSalaryServiceImpl.java
  15. 45 8
      mec-biz/src/main/java/com/ym/mec/biz/service/impl/ExportServiceImpl.java
  16. 9 0
      mec-biz/src/main/resources/config/mybatis/CourseScheduleMapper.xml
  17. 3 0
      mec-biz/src/main/resources/config/mybatis/CourseScheduleTeacherSalaryMapper.xml
  18. 10 0
      mec-biz/src/main/resources/config/mybatis/MusicGroupMapper.xml
  19. 11 0
      mec-biz/src/main/resources/config/mybatis/PracticeGroupMapper.xml
  20. 10 0
      mec-biz/src/main/resources/config/mybatis/VipGroupMapper.xml
  21. 22 37
      mec-web/src/main/java/com/ym/mec/web/controller/ExportController.java
  22. 0 3
      mec-web/src/main/java/com/ym/mec/web/controller/SysMusicScoreAccompanimentController.java
  23. 1 1
      mec-web/src/main/java/com/ym/mec/web/controller/TeacherAttendanceController.java

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

@@ -1297,7 +1297,8 @@ public interface CourseScheduleDao extends BaseDAO<Long, CourseSchedule> {
     List<CourseSchedule> getTeacherCourseWithClassDate(@Param("teacherId") Integer teacherId,
                                                        @Param("startDay") String startDay,
                                                        @Param("endDay") String endDay,
-                                                       @Param("courseStatus") CourseStatusEnum courseStatus);
+                                                       @Param("courseStatus") CourseStatusEnum courseStatus,
+                                                       @Param("teachIncomeType") String teachIncomeType);
 
     /**
      * @describe 查询教师课程

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

@@ -544,7 +544,8 @@ public interface CourseScheduleTeacherSalaryDao extends BaseDAO<Long, CourseSche
 													@Param("startDay") String startDay,
 													@Param("endDay") String endDay,
 													@Param("startClassDay") String startClassDay,
-													@Param("courseStatus") CourseStatusEnum courseStatus);
+													@Param("courseStatus") CourseStatusEnum courseStatus,
+													@Param("teachIncomeType") String teachIncomeType);
 
 	/**
 	 * @describe 教师年度收入统计

+ 7 - 0
mec-biz/src/main/java/com/ym/mec/biz/dal/dao/MusicGroupDao.java

@@ -388,4 +388,11 @@ public interface MusicGroupDao extends BaseDAO<String, MusicGroup> {
      * @return
      */
     Integer getCooperationMusicGroupNum(@Param("cooperationOrganId") Integer cooperationOrganId, @Param("musicGroupId") String musicGroupId);
+
+    /**
+     * 获取课程关联教务老师名称
+     * @param courseIds
+     * @return
+     */
+    List<Map<Long, String>> queryEduNameMapByCourseId(@Param("courseIds") List<Long> courseIds);
 }

+ 7 - 0
mec-biz/src/main/java/com/ym/mec/biz/dal/dao/PracticeGroupDao.java

@@ -373,4 +373,11 @@ public interface PracticeGroupDao extends com.ym.mec.common.dal.BaseDAO<Long, Pr
      * @return java.util.List<java.util.Map<java.lang.Long,java.lang.String>>
      */
     List<Map<Long, String>> getPracticeGroupType(@Param("practiceIds") List<Long> practiceIds);
+
+    /**
+     * 获取课程关联教务老师名称
+     * @param courseIds
+     * @return
+     */
+    List<Map<Long, String>> queryEduNameMapByCourseId(@Param("courseIds") List<Long> courseIds);
 }

+ 7 - 0
mec-biz/src/main/java/com/ym/mec/biz/dal/dao/VipGroupDao.java

@@ -358,4 +358,11 @@ public interface VipGroupDao extends BaseDAO<Long, VipGroup> {
      * @return
      */
     List<VipGroup> getVipGroupByIds(@Param("ids") List<Long> ids);
+
+    /**
+     * 获取课程关联教务老师名称
+     * @param courseIds
+     * @return
+     */
+    List<Map<Long, String>> queryEduNameMapByCourseId(@Param("courseIds") List<Long> courseIds);
 }

+ 10 - 0
mec-biz/src/main/java/com/ym/mec/biz/dal/dto/CourseScheduleEndDto.java

@@ -18,6 +18,8 @@ public class CourseScheduleEndDto extends CourseSchedule {
 
     private String teacherName;
 
+    private String educationTeacherName;
+
     private String subjectName;
 
     private String organName;
@@ -48,6 +50,14 @@ public class CourseScheduleEndDto extends CourseSchedule {
 
     private boolean beMerged;
 
+    public String getEducationTeacherName() {
+        return educationTeacherName;
+    }
+
+    public void setEducationTeacherName(String educationTeacherName) {
+        this.educationTeacherName = educationTeacherName;
+    }
+
     public boolean getBeMerged() {
         return beMerged;
     }

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

@@ -3,7 +3,7 @@ package com.ym.mec.biz.dal.enums;
 import com.ym.mec.common.enums.BaseEnum;
 
 public enum ClientTypeEnum implements BaseEnum<String, ClientTypeEnum> {
-	NETWORK_ROOM("NETWORK_ROOM", "网络教"), SMART_PRACTICE("SMART_PRACTICE", "智能陪练");
+	NETWORK_ROOM("NETWORK_ROOM", "网络教"), SMART_PRACTICE("SMART_PRACTICE", "智能陪练");
 
 	private String code;
 

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

@@ -4,6 +4,7 @@ import com.ym.mec.common.enums.BaseEnum;
 
 public enum ExportTypeEnum implements BaseEnum<Integer, ExportTypeEnum> {
 	ORDER(1, "订单列表"),
+	COURSE_SCHEDULE(3, "课表列表"),
 	ROUTE_ORDER(2, "财务管理");
 
 	private Integer code;

+ 35 - 0
mec-biz/src/main/java/com/ym/mec/biz/dal/enums/TeachIncomeTypeEnum.java

@@ -0,0 +1,35 @@
+package com.ym.mec.biz.dal.enums;
+
+import com.ym.mec.common.enums.BaseEnum;
+
+public enum TeachIncomeTypeEnum implements BaseEnum<String, TeachIncomeTypeEnum> {
+	SALARY("SALARY", "课酬"),
+	SUBSIDY("SUBSIDY", "教学点补贴"),
+	SALE_REWARD("SALE_REWARD", "销售奖励");
+
+	private String code;
+
+	private String msg;
+
+	TeachIncomeTypeEnum(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;
+	}
+}

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

@@ -1,6 +1,7 @@
 package com.ym.mec.biz.dal.page;
 
 import com.ym.mec.biz.dal.enums.CourseStatusEnum;
+import com.ym.mec.biz.dal.enums.TeachIncomeTypeEnum;
 import com.ym.mec.common.page.QueryInfo;
 
 /**
@@ -19,6 +20,8 @@ public class TeacherIncomeQueryInfo extends QueryInfo {
 
     private Boolean updated = false;
 
+    private String teachIncomeType;
+
     public Integer getTeacherId() {
         return teacherId;
     }
@@ -58,4 +61,12 @@ public class TeacherIncomeQueryInfo extends QueryInfo {
     public void setUpdated(Boolean updated) {
         this.updated = updated;
     }
+
+    public String getTeachIncomeType() {
+        return teachIncomeType;
+    }
+
+    public void setTeachIncomeType(String teachIncomeType) {
+        this.teachIncomeType = teachIncomeType;
+    }
 }

+ 2 - 0
mec-biz/src/main/java/com/ym/mec/biz/service/CourseScheduleService.java

@@ -656,4 +656,6 @@ public interface CourseScheduleService extends BaseService<Long, CourseSchedule>
 	 * @return void
 	 */
 	void mergeCourseSplit(Long mainCourseId, Integer operatorId);
+
+	int endCountCourseSchedules(Map<String, Object> params);
 }

+ 9 - 0
mec-biz/src/main/java/com/ym/mec/biz/service/ExportService.java

@@ -1,7 +1,9 @@
 package com.ym.mec.biz.service;
 
 import com.ym.mec.biz.dal.entity.ManagerDownload;
+import com.ym.mec.biz.dal.page.EndCourseScheduleQueryInfo;
 
+import java.io.FileNotFoundException;
 import java.util.Map;
 
 
@@ -22,4 +24,11 @@ public interface ExportService {
      * @throws Exception
      */
     void routeOrderList(Map<String, Object> params, ManagerDownload managerDownload) throws Exception;
+
+    /**
+     * 课表列表导出
+     * @param queryInfo
+     * @param managerDownload
+     */
+    void superFindCourseSchedules(EndCourseScheduleQueryInfo queryInfo, ManagerDownload managerDownload) throws FileNotFoundException;
 }

+ 24 - 0
mec-biz/src/main/java/com/ym/mec/biz/service/impl/CourseScheduleServiceImpl.java

@@ -4755,7 +4755,26 @@ public class CourseScheduleServiceImpl extends BaseServiceImpl<Long, CourseSched
 			//获取班级声部名称
             List<Map<Integer, String>> classGroupSubjectNameMaps = classGroupDao.findClassGroupSubjectNameMaps(courseScheduleIds);
             Map<Integer, String> classGroupSubjectNameMap = MapUtil.convertIntegerMap(classGroupSubjectNameMaps);
+			Map<Long, String> eduName = null;
+			if(queryInfo.getIsExport()){
+				List<Long> musicCourseIds = results.stream().filter(e -> e.getGroupType() == MUSIC).map(CourseScheduleEndDto::getId).collect(Collectors.toList());
+				eduName = new HashMap<>(courseScheduleIds.size());
+				if(musicCourseIds != null && musicCourseIds.size() > 0){
+					eduName.putAll(MapUtil.convertMybatisMap(musicGroupDao.queryEduNameMapByCourseId(musicCourseIds)));
+				}
+				List<Long> vipCourseIds = results.stream().filter(e -> e.getGroupType() == VIP).map(CourseScheduleEndDto::getId).collect(Collectors.toList());
+				if(vipCourseIds != null && vipCourseIds.size() > 0){
+					eduName.putAll(MapUtil.convertMybatisMap(vipGroupDao.queryEduNameMapByCourseId(vipCourseIds)));
+				}
+				List<Long> practiceCourseIds = results.stream().filter(e -> e.getGroupType() == PRACTICE).map(CourseScheduleEndDto::getId).collect(Collectors.toList());
+				if(practiceCourseIds != null && practiceCourseIds.size() > 0){
+					eduName.putAll(MapUtil.convertMybatisMap(practiceGroupDao.queryEduNameMapByCourseId(practiceCourseIds)));
+				}
+			}
 			for (CourseScheduleEndDto result : results) {
+				if(eduName != null){
+					result.setEducationTeacherName(eduName.get(result.getId()));
+				}
 				result.setTeacher(null);
 				result.setTeacherName(nameIdMap.get(result.getActualTeacherId()));
 				result.setSubjectName(classGroupSubjectNameMap.get(result.getId()));
@@ -5791,4 +5810,9 @@ public class CourseScheduleServiceImpl extends BaseServiceImpl<Long, CourseSched
 			courseScheduleModifyLogDao.batchInsert(insertCourseScheduleModifyLogList);
 		}
     }
+
+	@Override
+	public int endCountCourseSchedules(Map<String, Object> params) {
+		return courseScheduleDao.endCountCourseSchedules(params);
+	}
 }

+ 13 - 3
mec-biz/src/main/java/com/ym/mec/biz/service/impl/CourseScheduleTeacherSalaryServiceImpl.java

@@ -2058,9 +2058,12 @@ public class CourseScheduleTeacherSalaryServiceImpl extends BaseServiceImpl<Long
 
     @Override
     public TeacherIncomeReviewDto getTeacherSalaryOverview(TeacherIncomeQueryInfo queryInfo) {
-        LocalDate nowDate = LocalDate.now();
+        if(Objects.nonNull(queryInfo)&&TeachIncomeTypeEnum.SALE_REWARD.getCode().equals(queryInfo.getTeachIncomeType())){
+            TeacherIncomeReviewDto teacherSalaryOverview = new TeacherIncomeReviewDto();
+            return teacherSalaryOverview;
+        }
 
-        TeacherIncomeReviewDto teacherSalaryOverview = courseScheduleTeacherSalaryDao.getTeacherSalaryOverview(queryInfo.getTeacherId(), queryInfo.getStartDay(), queryInfo.getEndDay(), "2021-03-01", null);
+        TeacherIncomeReviewDto teacherSalaryOverview = courseScheduleTeacherSalaryDao.getTeacherSalaryOverview(queryInfo.getTeacherId(), queryInfo.getStartDay(), queryInfo.getEndDay(), "2021-03-01", null, queryInfo.getTeachIncomeType());
         if(Objects.isNull(teacherSalaryOverview)){
             teacherSalaryOverview = new TeacherIncomeReviewDto();
         }
@@ -2068,7 +2071,7 @@ public class CourseScheduleTeacherSalaryServiceImpl extends BaseServiceImpl<Long
             teacherSalaryOverview.setThisMonthExpectIncome(BigDecimal.ZERO);
         }
 
-        List<CourseSchedule> teacherCourses = courseScheduleDao.getTeacherCourseWithClassDate(queryInfo.getTeacherId(), queryInfo.getStartDay(), queryInfo.getEndDay(), CourseStatusEnum.OVER);
+        List<CourseSchedule> teacherCourses = courseScheduleDao.getTeacherCourseWithClassDate(queryInfo.getTeacherId(), queryInfo.getStartDay(), queryInfo.getEndDay(), CourseStatusEnum.OVER, queryInfo.getTeachIncomeType());
         if(CollectionUtils.isEmpty(teacherCourses)){
             return teacherSalaryOverview;
         }
@@ -2170,6 +2173,13 @@ public class CourseScheduleTeacherSalaryServiceImpl extends BaseServiceImpl<Long
         Map<String, Object> params = new HashMap<String, Object>();
         MapUtil.populateMap(params, queryInfo);
 
+
+        if(Objects.nonNull(queryInfo)&&TeachIncomeTypeEnum.SALE_REWARD.getCode().equals(queryInfo.getTeachIncomeType())){
+            pageInfo.setTotal(0);
+            pageInfo.setRows(Collections.EMPTY_LIST);
+            return pageInfo;
+        }
+
         int count = courseScheduleDao.countTeacherCourse(params);
         pageInfo.setTotal(count);
         params.put("offset", pageInfo.getOffset());

+ 45 - 8
mec-biz/src/main/java/com/ym/mec/biz/service/impl/ExportServiceImpl.java

@@ -1,16 +1,15 @@
 package com.ym.mec.biz.service.impl;
 
 import com.ym.mec.biz.dal.dao.*;
-import com.ym.mec.biz.dal.dto.FeeFlagNumDto;
-import com.ym.mec.biz.dal.dto.PracticeCourseDto;
-import com.ym.mec.biz.dal.dto.ReplacementInstrumentActivityStatDto;
-import com.ym.mec.biz.dal.dto.StudentPaymentOrderExportDto;
+import com.ym.mec.biz.dal.dto.*;
 import com.ym.mec.biz.dal.entity.*;
 import com.ym.mec.biz.dal.enums.GroupType;
 import com.ym.mec.biz.dal.enums.KitGroupPurchaseTypeEnum;
 import com.ym.mec.biz.dal.enums.OrderTypeEnum;
 import com.ym.mec.biz.dal.enums.SporadicChargeTypeEnum;
+import com.ym.mec.biz.dal.page.EndCourseScheduleQueryInfo;
 import com.ym.mec.biz.dal.page.StudentPaymentOrderQueryInfo;
+import com.ym.mec.biz.service.CourseScheduleService;
 import com.ym.mec.biz.service.ExportService;
 import com.ym.mec.biz.service.StudentPaymentOrderService;
 import com.ym.mec.common.exception.BizException;
@@ -27,10 +26,7 @@ import org.springframework.boot.system.ApplicationHome;
 import org.springframework.scheduling.annotation.Async;
 import org.springframework.stereotype.Service;
 
-import java.io.File;
-import java.io.FileOutputStream;
-import java.io.IOException;
-import java.io.OutputStream;
+import java.io.*;
 import java.math.BigDecimal;
 import java.util.*;
 import java.util.stream.Collectors;
@@ -60,6 +56,8 @@ public class ExportServiceImpl implements ExportService {
     private CooperationOrganDao cooperationOrganDao;
     @Autowired
     private ReplacementInstrumentActivityDao replacementInstrumentActivityDao;
+    @Autowired
+    private CourseScheduleService courseScheduleService;
 
     @Override
     @Async
@@ -725,4 +723,43 @@ public class ExportServiceImpl implements ExportService {
             }
         }
     }
+
+    @Override
+    public void superFindCourseSchedules(EndCourseScheduleQueryInfo queryInfo, ManagerDownload managerDownload) throws FileNotFoundException {
+        List<CourseScheduleEndDto> rows = courseScheduleService.endFindCourseSchedules(queryInfo).getRows();
+        for (CourseScheduleEndDto row : rows) {
+            row.setIsComplaints(StringUtils.equals(row.getIsComplaints(), "1") ? "有" : "无");
+        }
+        String basePath = new ApplicationHome(this.getClass()).getSource().getParentFile().getPath();
+        File file = new File(basePath + "/" + managerDownload.getName());
+        FileOutputStream fileOutputStream = new FileOutputStream(file);
+        OutputStream ouputStream = null;
+        try {
+            HSSFWorkbook workbook = POIUtil.exportExcel(new String[]{"分部名称","乐团主管", "课程编号", "开始时间", "结束时间",
+                    "班级名称", "班级声部", "课程名称", "课程类型", "教学模式",
+                    "教学点", "课程状态", "指导老师", "学员编号", "是否点名", "是否有考勤申诉", "预计上课人数"}, new String[]{
+                    "organName","educationTeacherName", "id", "startClassTime", "endClassTime", "classGroupName", "subjectName", "name",
+                    "groupType.desc", "teachMode.msg", "schoolName", "status.msg", "teacherName", "studentId", "isCallNames.msg", "isComplaints", "studentNum"}, rows);
+            workbook.write(fileOutputStream);
+            fileOutputStream.getFD().sync();
+            fileOutputStream.close();
+
+            String folder = "download/" + UploadUtil.getFileFloder();
+            String url = storagePluginContext.uploadFile(KS3StoragePlugin.PLUGIN_NAME, folder, file);
+            //把记录插入下载表
+            managerDownload.setFileUrl(url);
+            managerDownload.setStatus(1);
+            managerDownloadDao.update(managerDownload);
+        } catch (Exception e) {
+            e.printStackTrace();
+        } finally {
+            if (ouputStream != null) {
+                try {
+                    ouputStream.close();
+                } catch (IOException e) {
+                    e.printStackTrace();
+                }
+            }
+        }
+    }
 }

+ 9 - 0
mec-biz/src/main/resources/config/mybatis/CourseScheduleMapper.xml

@@ -3751,6 +3751,7 @@
         FROM
             course_schedule cs
             LEFT JOIN course_schedule_teacher_salary csts ON csts.course_schedule_id_ = cs.id_
+            LEFT JOIN school s ON cs.schoole_id_=s.id_
         WHERE
             ( cs.del_flag_ IS NULL OR cs.del_flag_ = 0 )
             AND (cs.is_lock_=0 OR cs.is_lock_ IS NULL)
@@ -3765,6 +3766,9 @@
             <if test="courseStatus!=null">
                 AND cs.status_ = #{courseStatus, typeHandler=com.ym.mec.common.dal.CustomEnumTypeHandler}
             </if>
+            <if test="teachIncomeType!=null and teachIncomeType=='SUBSIDY'">
+                AND IF(csts.settlement_time_ IS NULL, s.subsidy_ IS NOT NULL AND s.subsidy_>0, csts.subsidy_ IS NOT NULL AND csts.subsidy_>0)
+            </if>
     </select>
 
     <sql id="queryTeacherCourseCondition">
@@ -3785,6 +3789,9 @@
             <if test="courseStatus!=null">
                 AND cs.status_ = #{courseStatus, typeHandler=com.ym.mec.common.dal.CustomEnumTypeHandler}
             </if>
+            <if test="teachIncomeType!=null and teachIncomeType=='SUBSIDY'">
+                AND IF(csts.settlement_time_ IS NULL, s.subsidy_ IS NOT NULL AND s.subsidy_>0, csts.subsidy_ IS NOT NULL AND csts.subsidy_>0)
+            </if>
         </where>
     </sql>
 
@@ -3794,6 +3801,7 @@
         FROM
             course_schedule cs
             LEFT JOIN course_schedule_teacher_salary csts ON csts.course_schedule_id_ = cs.id_
+            LEFT JOIN school s ON cs.schoole_id_=s.id_
         <include refid="queryTeacherCourseCondition"></include>
         ORDER BY cs.class_date_ DESC,cs.start_class_time_ DESC,cs.id_ DESC
         <include refid="global.limit" />
@@ -3805,6 +3813,7 @@
         FROM
         course_schedule cs
         LEFT JOIN course_schedule_teacher_salary csts ON csts.course_schedule_id_ = cs.id_
+        LEFT JOIN school s ON cs.schoole_id_=s.id_
         <include refid="queryTeacherCourseCondition"></include>
     </select>
 

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

@@ -1089,6 +1089,9 @@
 					<if test="endDay!=null and endDay!=''">
 						AND cs.class_date_ &lt;= #{endDay}
 					</if>
+			    	<if test="teachIncomeType!=null and teachIncomeType=='SUBSIDY'">
+						AND IF(csts.settlement_time_ IS NULL, s.subsidy_ IS NOT NULL AND s.subsidy_>0, csts.subsidy_ IS NOT NULL AND csts.subsidy_>0)
+					</if>
 			    THEN csts.expect_salary_ + IF(s.subsidy_ IS NULL, 0, s.subsidy_) ELSE 0 END)) thisMonthExpectIncome
 		FROM
 			course_schedule_teacher_salary csts

+ 10 - 0
mec-biz/src/main/resources/config/mybatis/MusicGroupMapper.xml

@@ -729,4 +729,14 @@
         ORDER BY mg.create_time_ DESC
         LIMIT 1
     </select>
+    <select id="queryEduNameMapByCourseId" resultType="java.util.Map">
+        SELECT cs.id_ 'key',su.real_name_ 'value' FROM course_schedule cs
+        LEFT JOIN music_group mg ON mg.id_ = cs.music_group_id_
+        LEFT JOIN sys_user su ON su.id_ = mg.educational_teacher_id_
+        WHERE cs.id_ IN
+        <foreach collection="courseIds" item="item" open="(" close=")" separator=",">
+            #{item}
+        </foreach>
+        AND mg.educational_teacher_id_ IS NOT NULL
+    </select>
 </mapper>

+ 11 - 0
mec-biz/src/main/resources/config/mybatis/PracticeGroupMapper.xml

@@ -736,4 +736,15 @@
             #{id}
         </foreach>
     </select>
+
+    <select id="queryEduNameMapByCourseId" resultType="java.util.Map">
+        SELECT cs.id_ 'key',su.real_name_ 'value' FROM course_schedule cs
+        LEFT JOIN practice_group pg ON pg.id_ = cs.music_group_id_
+        LEFT JOIN sys_user su ON su.id_ = pg.educational_teacher_id_
+        WHERE cs.id_ IN
+        <foreach collection="courseIds" item="item" open="(" close=")" separator=",">
+            #{item}
+        </foreach>
+        AND pg.educational_teacher_id_ IS NOT NULL
+    </select>
 </mapper>

+ 10 - 0
mec-biz/src/main/resources/config/mybatis/VipGroupMapper.xml

@@ -1027,4 +1027,14 @@
             #{id}
         </foreach>
     </select>
+    <select id="queryEduNameMapByCourseId" resultType="java.util.Map">
+        SELECT cs.id_ 'key',su.real_name_ 'value' FROM course_schedule cs
+        LEFT JOIN vip_group vg ON vg.id_ = cs.music_group_id_
+        LEFT JOIN sys_user su ON su.id_ = vg.educational_teacher_id_
+        WHERE cs.id_ IN
+        <foreach collection="courseIds" item="item" open="(" close=")" separator=",">
+            #{item}
+        </foreach>
+        AND vg.educational_teacher_id_ IS NOT NULL
+    </select>
 </mapper>

+ 22 - 37
mec-web/src/main/java/com/ym/mec/web/controller/ExportController.java

@@ -10,10 +10,8 @@ import com.ym.mec.common.entity.HttpResponseResult;
 import com.ym.mec.common.service.IdGeneratorService;
 import io.swagger.annotations.Api;
 import io.swagger.annotations.ApiOperation;
-
 import java.io.IOException;
 import java.io.OutputStream;
-import java.math.BigDecimal;
 import java.util.ArrayList;
 import java.util.Arrays;
 import java.util.Date;
@@ -24,9 +22,7 @@ import java.util.Map;
 import java.util.Objects;
 import java.util.Set;
 import java.util.stream.Collectors;
-
 import javax.servlet.http.HttpServletResponse;
-
 import org.apache.commons.lang3.StringUtils;
 import org.apache.poi.hssf.usermodel.HSSFWorkbook;
 import org.springframework.beans.factory.annotation.Autowired;
@@ -36,7 +32,6 @@ import org.springframework.web.bind.annotation.GetMapping;
 import org.springframework.web.bind.annotation.PostMapping;
 import org.springframework.web.bind.annotation.RequestMapping;
 import org.springframework.web.bind.annotation.RestController;
-
 import com.ym.mec.auth.api.client.SysUserFeignService;
 import com.ym.mec.auth.api.entity.SysUser;
 import com.ym.mec.common.controller.BaseController;
@@ -66,10 +61,6 @@ public class ExportController extends BaseController {
     @Autowired
     private EmployeeDao employeeDao;
     @Autowired
-    private StudentPaymentOrderService studentPaymentOrderService;
-    @Autowired
-    private StudentRegistrationDao studentRegistrationDao;
-    @Autowired
     private VipGroupDao vipGroupDao;
     @Autowired
     private MusicGroupDao musicGroupDao;
@@ -124,8 +115,6 @@ public class ExportController extends BaseController {
     @Autowired
     private CourseScheduleStudentPaymentDao courseScheduleStudentPaymentDao;
     @Autowired
-    private SellOrderDao sellOrderDao;
-    @Autowired
     private VipGroupActivityService vipGroupActivityService;
     @Autowired
     private GoodsService goodsService;
@@ -865,7 +854,7 @@ public class ExportController extends BaseController {
     @ApiOperation(value = "终课表列表导出")
     @GetMapping("export/superFindCourseSchedules")
     @PreAuthorize("@pcs.hasPermissions('export/superFindCourseSchedules')")
-    public void superFindCourseSchedules(EndCourseScheduleQueryInfo queryInfo, HttpServletResponse response) throws IOException {
+    public Object superFindCourseSchedules(EndCourseScheduleQueryInfo queryInfo) throws IOException {
         queryInfo.setPage(1);
         queryInfo.setRows(49999);
         queryInfo.setIsExport(true);
@@ -884,33 +873,29 @@ public class ExportController extends BaseController {
                 throw new BizException("非法请求");
             }
         }
-        List<CourseScheduleEndDto> rows = scheduleService.endFindCourseSchedules(queryInfo).getRows();
-        for (CourseScheduleEndDto row : rows) {
-            row.setIsComplaints(StringUtils.equals(row.getIsComplaints(), "1") ? "有" : "无");
+        Map<String, Object> params = new HashMap<>();
+        MapUtil.populateMap(params, queryInfo);
+        int count = scheduleService.endCountCourseSchedules(params);
+        if (count <= 0) {
+            return failed("没有可导出的数据");
         }
-        OutputStream ouputStream = null;
-        try {
-            HSSFWorkbook workbook = POIUtil.exportExcel(new String[]{"分部名称", "课程编号", "开始时间", "结束时间",
-                    "班级名称", "班级声部", "课程名称", "课程类型", "教学模式",
-                    "教学点", "课程状态", "指导老师", "学员编号", "是否点名", "是否有考勤申诉", "预计上课人数"}, new String[]{
-                    "organName", "id", "startClassTime", "endClassTime", "classGroupName", "subjectName", "name",
-                    "groupType.desc", "teachMode.msg", "schoolName", "status.msg", "teacherName", "studentId", "isCallNames.msg", "isComplaints", "studentNum"}, rows);
-            response.setContentType("application/octet-stream");
-            response.setHeader("Content-Disposition", "attachment;filename=lender-" + DateUtil.getDate(new Date()) + ".xls");
-            ouputStream = response.getOutputStream();
-            workbook.write(ouputStream);
-            ouputStream.flush();
-        } catch (Exception e) {
-            e.printStackTrace();
-        } finally {
-            if (ouputStream != null) {
-                try {
-                    ouputStream.close();
-                } catch (IOException e) {
-                    e.printStackTrace();
-                }
-            }
+
+        if (count > 50000) {
+            return failed("数据集太大,不能导出.最大数据集不能超过50000");
         }
+        Date nowDate = new Date();
+        String no = idGeneratorService.generatorId("download") + "";
+        String fileName = "课表列表-" + no + "-" + DateUtil.getDate(nowDate) + ".xls";
+        ManagerDownload managerDownload = new ManagerDownload();
+        managerDownload.setType(ExportTypeEnum.COURSE_SCHEDULE);
+        managerDownload.setUserId(sysUser.getId());
+        managerDownload.setName(fileName);
+        managerDownload.setFileUrl("");
+        managerDownload.setCreateTime(nowDate);
+        managerDownload.setUpdateTime(nowDate);
+        managerDownloadDao.insert(managerDownload);
+        exportService.superFindCourseSchedules(queryInfo, managerDownload);
+        return succeed(fileName+"导出申请已提交,请到【报表中心-下载列表查看】");
     }
 
 

+ 0 - 3
mec-web/src/main/java/com/ym/mec/web/controller/SysMusicScoreAccompanimentController.java

@@ -40,9 +40,6 @@ public class SysMusicScoreAccompanimentController extends BaseController {
     @GetMapping("/queryPage")
     @PreAuthorize("@pcs.hasPermissions('sysMusicScoreAccompaniment/queryPage')")
     public Object queryPage(SysExamSongQueryInfo queryInfo) {
-        if(queryInfo.getClientType() == null){
-            queryInfo.setClientType(ClientTypeEnum.NETWORK_ROOM);
-        }
         return succeed(sysMusicScoreAccompanimentService.queryAll(queryInfo));
     }
 

+ 1 - 1
mec-web/src/main/java/com/ym/mec/web/controller/TeacherAttendanceController.java

@@ -146,7 +146,7 @@ public class TeacherAttendanceController extends BaseController {
 
     @ApiOperation(value = "撤销考勤申述")
     @PostMapping("/repealComplaints")
-    @PreAuthorize("@pcs.hasPermissions('teacherAttendance/addComplaints')")
+    @PreAuthorize("@pcs.hasPermissions('teacherAttendance/repealComplaints')")
     public Object repealComplaints(Long courseScheduleId,Integer userId){
         teacherAttendanceService.repealComplaints(courseScheduleId,userId);
         return succeed();