Переглянути джерело

add 导出在读学生人数

周箭河 5 роки тому
батько
коміт
ebf52c0e8b

+ 4 - 2
mec-biz/src/main/java/com/ym/mec/biz/dal/dao/MusicGroupDao.java

@@ -7,6 +7,8 @@ import com.ym.mec.biz.dal.dto.RegisterSubjectDto;
 import com.ym.mec.biz.dal.entity.MusicGroup;
 import com.ym.mec.biz.dal.entity.School;
 import com.ym.mec.biz.dal.enums.ClassGroupTypeEnum;
+import com.ym.mec.biz.dal.enums.MusicGroupStatusEnum;
+import com.ym.mec.biz.dal.enums.StudentMusicGroupStatusEnum;
 import com.ym.mec.common.dal.BaseDAO;
 import com.ym.mec.common.entity.ImGroupModel;
 import org.apache.ibatis.annotations.Param;
@@ -241,9 +243,9 @@ public interface MusicGroupDao extends BaseDAO<String, MusicGroup> {
      */
     List<Map<Integer, String>> queryUserMusicStatus(@Param("userIds") Set<Integer> userIds);
 
-    List<MusicGroupRegisterDto> getMusicGroupRegister(@Param("organIds") String organIds);
+    List<MusicGroupRegisterDto> getMusicGroupRegister(@Param("musicGroupStatusList") List<MusicGroupStatusEnum> musicGroupStatusList, @Param("organIds") String organIds);
 
-    List<RegisterSubjectDto> getRegisterSubjectNum(@Param("musicGroupIds") List<String> musicGroupIds);
+    List<RegisterSubjectDto> getRegisterSubjectNum(@Param("musicGroupIds") List<String> musicGroupIds, @Param("studentMusicGroupStatus") StudentMusicGroupStatusEnum studentMusicGroupStatus);
 
     List<MusicGroupRegisterDto> getMusicGroupRegisterOrder(@Param("musicGroupIds") List<String> musicGroupIds);
 

+ 9 - 0
mec-biz/src/main/java/com/ym/mec/biz/dal/dto/MusicGroupRegisterDto.java

@@ -16,6 +16,8 @@ public class MusicGroupRegisterDto {
 
     private Integer registerNum=0;
 
+    private Integer normalNum = 0;
+
     private Integer GroupBuyMusicalNum = 0;
 
     private Integer registerPayNum = 0;
@@ -87,4 +89,11 @@ public class MusicGroupRegisterDto {
         this.totalMoney = totalMoney;
     }
 
+    public Integer getNormalNum() {
+        return normalNum;
+    }
+
+    public void setNormalNum(Integer normalNum) {
+        this.normalNum = normalNum;
+    }
 }

+ 19 - 8
mec-biz/src/main/resources/config/mybatis/MusicGroupMapper.xml

@@ -68,7 +68,7 @@
          bill_start_date_, improvent_classes_num_, enroll_classes_, payment_expire_date_, is_extra_class_,
          settlement_type_, cooperation_organ_id_, enlightenment_course_time_,
          parent_meeting_time_, img_, director_user_id_, is_classroom_lessons_, memo_, expect_start_group_date_,
-         ownership_type_, repair_user_id_, fee_type_,del_flag_)
+         ownership_type_, repair_user_id_, fee_type_, del_flag_)
         VALUES (#{id}, #{name}, #{organId}, #{schoolId}, #{applyExpireDate}, #{teamTeacherId}, #{educationalTeacherId},
                 #{chargeTypeId}, #{courseForm}, now(), now(),
                 #{status, typeHandler=com.ym.mec.common.dal.CustomEnumTypeHandler}, #{billStartDate},
@@ -78,7 +78,7 @@
                 #{cooperationOrganId}, #{enlightenmentCourseTime}, #{parentMeetingTime}, #{img}, #{directorUserId},
                 #{isClassroomLessons}, #{memo}, #{expectStartGroupDate},
                 #{ownershipType,typeHandler=com.ym.mec.common.dal.CustomEnumTypeHandler}, #{repairUserId},
-                #{feeType, typeHandler=com.ym.mec.common.dal.CustomEnumTypeHandler},#{delFlag})
+                #{feeType, typeHandler=com.ym.mec.common.dal.CustomEnumTypeHandler}, #{delFlag})
     </insert>
 
     <!-- 根据主键查询一条记录 -->
@@ -187,7 +187,7 @@
 
     <sql id="musicGroupQueryPageSql">
         <where>
-        	del_flag_ = 0
+            del_flag_ = 0
             <if test="organId != null">
                 AND FIND_IN_SET(organ_id_,#{organId})
             </if>
@@ -507,14 +507,22 @@
 
     <select id="getMusicGroupRegister" resultType="com.ym.mec.biz.dal.dto.MusicGroupRegisterDto">
         SELECT mg.id_ musicGroupId ,o.name_ organName, mg.name_ musicGroupName, mg.status_ musicGroupStatus,
-        COUNT(sr.id_) registerNum
+        COUNT(sr.id_) registerNum,SUM(IF(sr.music_group_status_='NORMAL',1,0)) normalNum
         FROM student_registration sr
         LEFT JOIN music_group mg ON mg.id_ = sr.music_group_id_
         LEFT JOIN organization o on o.id_ = mg.organ_id_
-        WHERE mg.status_ IN ('APPLY', 'PAY')
-        <if test="organIds != null">
-            AND FIND_IN_SET (mg.organ_id_,#{organIds})
-        </if>
+        <where>
+            <if test="musicGroupStatusList != null">
+                mg.status_ IN
+                <foreach collection="musicGroupStatusList" item="musicGroupStatus" open="(" close=")"
+                         separator=",">
+                    #{musicGroupStatus}
+                </foreach>
+            </if>
+            <if test="organIds != null">
+                AND FIND_IN_SET (mg.organ_id_,#{organIds})
+            </if>
+        </where>
         GROUP BY sr.music_group_id_
     </select>
 
@@ -526,6 +534,9 @@
         <foreach collection="musicGroupIds" item="musicGroupId" open="(" close=")" separator=",">
             #{musicGroupId}
         </foreach>
+        <if test="studentMusicGroupStatus != null">
+            AND sr.music_group_status_ = #{studentMusicGroupStatus,typeHandler=com.ym.mec.common.dal.CustomEnumTypeHandler}
+        </if>
         AND sr.payment_status_ = 2
         GROUP BY sr.music_group_id_,sr.actual_subject_id_
     </select>

+ 18 - 0
mec-thirdparty/src/main/java/com/ym/mec/thirdparty/adapay/CorpMember.java

@@ -173,5 +173,23 @@ public class CorpMember extends ConfigInit {
         return member;
     }
 
+    /**
+     * 创建 CorpMember
+     *
+     * @return 创建的CorpMember 对象
+     * @throws Exception 异常
+     */
+    public Map<String, Object> executeCreateMember(Map<String,Object> info,File file) throws Exception {
+        System.out.println("=======execute Create CorpMember begin=======");
+        Map<String, Object> memberParams = new HashMap<String, Object>();
+        memberParams.put("app_id", appId);
+        memberParams.putAll(info);
+
+        System.out.println("创建企业用户,请求参数:" + JSON.toJSONString(memberParams) );
+        Map<String, Object> member = com.huifu.adapay.model.CorpMember.create(memberParams, file);
+        System.out.println("创建企业用户,返回参数:" + JSON.toJSONString(member) );
+        return member;
+    }
+
 
 }

+ 143 - 48
mec-web/src/main/java/com/ym/mec/web/controller/ExportController.java

@@ -279,7 +279,7 @@ public class ExportController extends BaseController {
         OutputStream outputStream = response.getOutputStream();
         try {
             HSSFWorkbook workbook = POIUtil.exportExcel(new String[]{"课时编号", "老师编号", "老师姓名", "老师分部", "工作类别",
-                    "课程分部", "课程组编号", "课程班名称", "乐团模式", "vip活动名称","Vip课程类型", "阶梯奖励名称", "线上课/线下课", "线上课单价", "线下课单价",
+                    "课程分部", "课程组编号", "课程班名称", "乐团模式", "vip活动名称", "Vip课程类型", "阶梯奖励名称", "线上课/线下课", "线上课单价", "线下课单价",
                     "课程类别", "课时时长", "实际上课时长", "上课日期",
                     "上课时间", "教师签到状态", "教师签退状态", "教师签到时间", "教师签退时间",
                     "主辅", "上课地点", "应到学员", "学员签到时间", "学员签退时间", "课时课酬", "阶梯奖励"}, new String[]{
@@ -601,12 +601,12 @@ public class ExportController extends BaseController {
         List<SporadicChargeInfo> rows = sporadicChargeInfoService.queryDetailPage(queryInfo).getRows();
         for (SporadicChargeInfo row : rows) {
             row.setOpenFlagStr(row.getOpenFlag().equals(0) ? "开启" : "关闭");
-            row.setOrderType(row.getUserId() ==null ? "公用" : "个人");
+            row.setOrderType(row.getUserId() == null ? "公用" : "个人");
         }
         OutputStream outputStream = response.getOutputStream();
         try {
-            HSSFWorkbook workbook = POIUtil.exportExcel(new String[]{"分部", "收费类型", "标题", "收费状态", "金额", "时间", "学生姓名","订单类型", "创建人"}, new String[]{
-                    "organName", "chargeType.msg", "title", "openFlagStr", "amount", "createTime", "userName", "orderType","operatorName"}, rows);
+            HSSFWorkbook workbook = POIUtil.exportExcel(new String[]{"分部", "收费类型", "标题", "收费状态", "金额", "时间", "学生姓名", "订单类型", "创建人"}, new String[]{
+                    "organName", "chargeType.msg", "title", "openFlagStr", "amount", "createTime", "userName", "orderType", "operatorName"}, rows);
             response.setContentType("application/octet-stream");
             response.setHeader("Content-Disposition", "attachment;filename=lender-" + DateUtil.getDate(new Date()) + ".xls");
             response.flushBuffer();
@@ -1705,7 +1705,11 @@ public class ExportController extends BaseController {
                 organIds = employee.getOrganIdList();
             }
         }
-        List<MusicGroupRegisterDto> musicGroupRegisters = musicGroupDao.getMusicGroupRegister(organIds);
+        List<MusicGroupStatusEnum> musicGroupStatusList = new ArrayList<>();
+        musicGroupStatusList.add(MusicGroupStatusEnum.APPLY);
+        musicGroupStatusList.add(MusicGroupStatusEnum.PAY);
+
+        List<MusicGroupRegisterDto> musicGroupRegisters = musicGroupDao.getMusicGroupRegister(musicGroupStatusList,organIds);
 
         if (musicGroupRegisters.size() <= 0) {
             response.setStatus(200);
@@ -1716,7 +1720,7 @@ public class ExportController extends BaseController {
         }
         List<String> musicGroupIds = musicGroupRegisters.stream().map(MusicGroupRegisterDto::getMusicGroupId).collect(Collectors.toList());
 
-        List<RegisterSubjectDto> registerSubjects = musicGroupDao.getRegisterSubjectNum(musicGroupIds);
+        List<RegisterSubjectDto> registerSubjects = musicGroupDao.getRegisterSubjectNum(musicGroupIds,null);
         List<MusicGroupRegisterDto> musicGroupRegisterOrders = musicGroupDao.getMusicGroupRegisterOrder(musicGroupIds);
         List<MusicGroupRegisterDto> musicGroupRegisterTotalMoneys = musicGroupDao.getMusicGroupRegisterTotalMoney(musicGroupIds);
 
@@ -1980,46 +1984,137 @@ public class ExportController extends BaseController {
     @ApiOperation(value = "老师默认课酬导出")
     @RequestMapping("export/teacherDefaultSalary")
     @PreAuthorize("@pcs.hasPermissions('export/teacherDefaultSalary')")
-	public void exportTeacherDefaultSalary(String organIdList, HttpServletResponse response) throws IOException {
-		SysUser sysUser = sysUserFeignService.queryUserInfo();
-		if (sysUser == null) {
-			throw new IOException("用户信息获取失败");
-		}
-		List<TeacherDefaultSalaryDto> pageList = teacherService.queryTeacherDefaultSalary(organIdList);
-		if (pageList.size() <= 0) {
-			response.setStatus(200);
-			response.setContentType("Content-Type: application/json;charset=UTF-8");
-			response.getOutputStream().write("{\"data\": null, \"code\": 500, \"status\": false, \"msg\": \"没有可导出的记录\"}".getBytes());
-			response.flushBuffer();
-			return;
-		}
-		OutputStream outputStream = response.getOutputStream();
-		try {
-
-			String[] header = { "老师编号", "姓名", "分部", "工作类型", "在职状态", "老师状态", "1v1", "1v2", "1v3", "1v4", "1v5", "1v6", "1v7", "网管课", "单技课2.0", "合奏课2.0", "综合课2.0", "集训单技课2.0", "集训合奏课2.0",
-					"基础技能课2.0", "课堂课2.0", "单技课3.0", "合奏课3.0", "综合课3.0", "集训单技课3.0", "集训合奏课3.0",
-					"基础技能课3.0", "课堂课3.0", "线上基础技能课1v3", "线上基础技能课1v4", "线上基础技能课1v5", "乐团网管课1v1" };
-			String[] body = { "userId", "realName", "organName", "jobNature", "demissionStatus", "status", "vip1", "vip2", "vip3", "vip4", "vip5", "vip6", "vip7",
-					"practiceSalary", "singleSalary2", "mixSalary2", "comprehensiveSalary2", "traningSigleSalary2", "traningMixSalary2", "highSalary2",
-					"classroomSalary2", "singleSalary", "mixSalary", "comprehensiveSalary", "traningSigleSalary", "traningMixSalary", "highSalary",
-					"classroomSalary", "highOnline3Salary", "highOnline4Salary", "highOnline5Salary", "musicNetwork1Salary" };
-			HSSFWorkbook workbook = POIUtil.exportExcel(header, body, pageList);
-			response.setContentType("application/octet-stream");
-			response.setHeader("Content-Disposition", "attachment;filename=teacherDefaultSalary-" + DateUtil.getDate(new Date()) + ".xls");
-			response.flushBuffer();
-			outputStream = response.getOutputStream();
-			workbook.write(outputStream);
-			outputStream.flush();
-		} catch (Exception e) {
-			e.printStackTrace();
-		} finally {
-			if (outputStream != null) {
-				try {
-					outputStream.close();
-				} catch (IOException e) {
-					e.printStackTrace();
-				}
-			}
-		}
-	}
+    public void exportTeacherDefaultSalary(String organIdList, HttpServletResponse response) throws IOException {
+        SysUser sysUser = sysUserFeignService.queryUserInfo();
+        if (sysUser == null) {
+            throw new IOException("用户信息获取失败");
+        }
+        List<TeacherDefaultSalaryDto> pageList = teacherService.queryTeacherDefaultSalary(organIdList);
+        if (pageList.size() <= 0) {
+            response.setStatus(200);
+            response.setContentType("Content-Type: application/json;charset=UTF-8");
+            response.getOutputStream().write("{\"data\": null, \"code\": 500, \"status\": false, \"msg\": \"没有可导出的记录\"}".getBytes());
+            response.flushBuffer();
+            return;
+        }
+        OutputStream outputStream = response.getOutputStream();
+        try {
+
+            String[] header = {"老师编号", "姓名", "分部", "工作类型", "在职状态", "老师状态", "1v1", "1v2", "1v3", "1v4", "1v5", "1v6", "1v7", "网管课", "单技课2.0", "合奏课2.0", "综合课2.0", "集训单技课2.0", "集训合奏课2.0",
+                    "基础技能课2.0", "课堂课2.0", "单技课3.0", "合奏课3.0", "综合课3.0", "集训单技课3.0", "集训合奏课3.0",
+                    "基础技能课3.0", "课堂课3.0", "线上基础技能课1v3", "线上基础技能课1v4", "线上基础技能课1v5", "乐团网管课1v1"};
+            String[] body = {"userId", "realName", "organName", "jobNature", "demissionStatus", "status", "vip1", "vip2", "vip3", "vip4", "vip5", "vip6", "vip7",
+                    "practiceSalary", "singleSalary2", "mixSalary2", "comprehensiveSalary2", "traningSigleSalary2", "traningMixSalary2", "highSalary2",
+                    "classroomSalary2", "singleSalary", "mixSalary", "comprehensiveSalary", "traningSigleSalary", "traningMixSalary", "highSalary",
+                    "classroomSalary", "highOnline3Salary", "highOnline4Salary", "highOnline5Salary", "musicNetwork1Salary"};
+            HSSFWorkbook workbook = POIUtil.exportExcel(header, body, pageList);
+            response.setContentType("application/octet-stream");
+            response.setHeader("Content-Disposition", "attachment;filename=teacherDefaultSalary-" + DateUtil.getDate(new Date()) + ".xls");
+            response.flushBuffer();
+            outputStream = response.getOutputStream();
+            workbook.write(outputStream);
+            outputStream.flush();
+        } catch (Exception e) {
+            e.printStackTrace();
+        } finally {
+            if (outputStream != null) {
+                try {
+                    outputStream.close();
+                } catch (IOException e) {
+                    e.printStackTrace();
+                }
+            }
+        }
+    }
+
+
+    @ApiOperation(value = "乐团声部在读人数导出")
+    @RequestMapping("export/musicGroupNormalStudentNum")
+    @PreAuthorize("@pcs.hasPermissions('export/musicGroupNormalStudentNum')")
+    public void musicGroupNormalStudentNum(String organIds, HttpServletResponse response) throws IOException {
+        SysUser sysUser = sysUserFeignService.queryUserInfo();
+        if (!sysUser.getIsSuperAdmin()) {
+            Employee employee = employeeDao.get(sysUser.getId());
+            if (StringUtils.isBlank(organIds)) {
+                organIds = employee.getOrganIdList();
+            }
+        }
+        List<MusicGroupRegisterDto> musicGroupRegisters = musicGroupDao.getMusicGroupRegister(null,organIds);
+
+        if (musicGroupRegisters.size() <= 0) {
+            response.setStatus(200);
+            response.setContentType("Content-Type: application/json;charset=UTF-8");
+            response.getOutputStream().write("{\"data\": null, \"code\": 500, \"status\": false, \"msg\": \"没有可导出的记录\"}".getBytes());
+            response.flushBuffer();
+            return;
+        }
+        List<String> musicGroupIds = musicGroupRegisters.stream().map(MusicGroupRegisterDto::getMusicGroupId).collect(Collectors.toList());
+
+        List<RegisterSubjectDto> registerSubjects = musicGroupDao.getRegisterSubjectNum(musicGroupIds,StudentMusicGroupStatusEnum.NORMAL);
+
+        HashSet<Integer> added = new HashSet<>();
+        List<String> header = new ArrayList<>();
+        header.add("分部");
+        header.add("乐团名称");
+        header.add("乐团状态");
+        header.add("在读总人数");
+        List<String> body = new ArrayList<>();
+        body.add("organName");
+        body.add("musicGroupName");
+        body.add("musicGroupStatus");
+        body.add("normalNum");
+        for (RegisterSubjectDto registerSubject : registerSubjects) {
+            if (!added.contains(registerSubject.getSubjectId())) {
+                added.add(registerSubject.getSubjectId());
+                header.add(registerSubject.getSubjectName());
+                body.add("subject" + registerSubject.getSubjectId());
+            }
+        }
+
+        List<Map<String, Object>> data = new ArrayList<>();
+        for (MusicGroupRegisterDto musicGroupRegister : musicGroupRegisters) {
+            added.clear();
+            HashMap<String, Object> musicGroupRegisterMap = new HashMap<>();
+
+            musicGroupRegisterMap.put("organName", musicGroupRegister.getOrganName());
+            musicGroupRegisterMap.put("musicGroupName", musicGroupRegister.getMusicGroupName());
+            musicGroupRegisterMap.put("musicGroupStatus", musicGroupRegister.getMusicGroupStatus().getMsg());
+            musicGroupRegisterMap.put("normalNum", musicGroupRegister.getNormalNum());
+
+            for (RegisterSubjectDto registerSubject : registerSubjects) {
+                if (registerSubject.getMusicGroupId().equals(musicGroupRegister.getMusicGroupId())) {
+                    added.add(registerSubject.getSubjectId());
+                    musicGroupRegisterMap.put("subject" + registerSubject.getSubjectId(), registerSubject.getNum());
+                }
+                if (!added.contains(registerSubject.getSubjectId())) {
+                    musicGroupRegisterMap.put("subject" + registerSubject.getSubjectId(), 0);
+                }
+            }
+            data.add(musicGroupRegisterMap);
+        }
+
+        OutputStream outputStream = response.getOutputStream();
+        try {
+            String[] headerStr = header.toArray(new String[header.size()]);
+            String[] bodyStr = body.toArray(new String[body.size()]);
+
+            HSSFWorkbook workbook = POIUtil.exportExcel(headerStr, bodyStr, data);
+            response.setContentType("application/octet-stream");
+            response.setHeader("Content-Disposition", "attachment;filename=lender-" + DateUtil.getDate(new Date()) + ".xls");
+            response.flushBuffer();
+            outputStream = response.getOutputStream();
+            workbook.write(outputStream);
+            outputStream.flush();
+        } catch (Exception e) {
+            e.printStackTrace();
+        } finally {
+            if (outputStream != null) {
+                try {
+                    outputStream.close();
+                } catch (IOException e) {
+                    e.printStackTrace();
+                }
+            }
+        }
+    }
 }