浏览代码

班级列表新增班级名称和编号搜索,新增班级列表导出

zouxuan 4 年之前
父节点
当前提交
7e96f16b1a

+ 5 - 4
mec-auth/mec-auth-server/src/main/resources/config/mybatis/SysMenuMapper.xml

@@ -145,8 +145,9 @@
     </select>
     <sql id="queryTree">
         <where>
+                sm.parent_id_ IS NOT NULL
             <if test="userId != null">
-                sur.user_id_ = #{userId}
+                AND sur.user_id_ = #{userId}
             </if>
             <if test="hid != null">
                 AND sm.hidden_ = #{hid}
@@ -161,9 +162,9 @@
     </sql>
 
     <select id="findByParentId" resultMap="SysMenu">
-        SELECT sm.* FROM sys_user_role sur
-        LEFT JOIN sys_role_menu srm ON sur.role_id_ = srm.role_id_
-        LEFT JOIN sys_menu sm ON srm.menu_id_ = sm.id_
+        SELECT sm.* FROM sys_menu sm
+        LEFT JOIN sys_role_menu srm ON srm.menu_id_ = sm.id_
+        LEFT JOIN sys_user_role sur ON sur.role_id_ = srm.role_id_
         <include refid="queryTree"/>
         GROUP BY sm.id_
         ORDER BY sm.sort_ DESC,sm.id_ DESC

+ 20 - 0
mec-biz/src/main/java/com/ym/mec/biz/dal/dto/ClassGroupTeachersDto.java

@@ -17,6 +17,26 @@ public class ClassGroupTeachersDto extends ClassGroup {
 	/** 班级老师课酬 */
 	private List<ClassGroupTeacherSalary> classGroupTeacherSalaryList;
 
+	private String teachingTeacherName;
+
+	private String bishopTeacherName;
+
+	public String getTeachingTeacherName() {
+		return teachingTeacherName;
+	}
+
+	public void setTeachingTeacherName(String teachingTeacherName) {
+		this.teachingTeacherName = teachingTeacherName;
+	}
+
+	public String getBishopTeacherName() {
+		return bishopTeacherName;
+	}
+
+	public void setBishopTeacherName(String bishopTeacherName) {
+		this.bishopTeacherName = bishopTeacherName;
+	}
+
 	//合奏班名称
 	private String mixClassName;
 

+ 1 - 1
mec-biz/src/main/resources/config/mybatis/ClassGroupMapper.xml

@@ -1416,7 +1416,7 @@
                 AND FIND_IN_SET(mg.organ_id_,#{organIdList})
             </if>
             <if test="search != null and search != ''">
-                AND (mg.name_ LIKE CONCAT('%',#{search},'%') OR cg.music_group_id_ LIKE CONCAT('%',#{search},'%'))
+                AND (cg.id_ = #{search} OR cg.name_ LIKE CONCAT('%',#{search},'%') OR mg.name_ LIKE CONCAT('%',#{search},'%') OR cg.music_group_id_ LIKE CONCAT('%',#{search},'%'))
             </if>
             <if test="classGroupIds != null and classGroupIds.size()>0">
                 AND cg.id_ IN

+ 67 - 11
mec-web/src/main/java/com/ym/mec/web/controller/ExportController.java

@@ -3,6 +3,7 @@ package com.ym.mec.web.controller;
 import com.ym.mec.biz.dal.dao.*;
 import com.ym.mec.biz.dal.dto.*;
 import com.ym.mec.biz.dal.entity.*;
+import com.ym.mec.biz.dal.enums.*;
 import com.ym.mec.biz.dal.page.*;
 import com.ym.mec.biz.service.*;
 import io.swagger.annotations.Api;
@@ -38,17 +39,6 @@ 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.biz.dal.enums.AccountType;
-import com.ym.mec.biz.dal.enums.CourseStatusEnum;
-import com.ym.mec.biz.dal.enums.GroupType;
-import com.ym.mec.biz.dal.enums.KitGroupPurchaseTypeEnum;
-import com.ym.mec.biz.dal.enums.MusicGroupStatusEnum;
-import com.ym.mec.biz.dal.enums.OrderDetailTypeEnum;
-import com.ym.mec.biz.dal.enums.OrderTypeEnum;
-import com.ym.mec.biz.dal.enums.PaymentChannelEnum;
-import com.ym.mec.biz.dal.enums.SporadicChargeTypeEnum;
-import com.ym.mec.biz.dal.enums.StudentMusicGroupStatusEnum;
-import com.ym.mec.biz.dal.enums.YesOrNoEnum;
 import com.ym.mec.common.controller.BaseController;
 import com.ym.mec.common.exception.BizException;
 import com.ym.mec.common.page.PageInfo;
@@ -137,6 +127,72 @@ public class ExportController extends BaseController {
     private VipGroupActivityService vipGroupActivityService;
     @Autowired
     private GoodsService goodsService;
+    @Autowired
+    private ClassGroupService classGroupService;
+
+    @ApiOperation(value = "班级列表导出")
+    @PostMapping("export/classGroup")
+    @PreAuthorize("@pcs.hasPermissions('export/classGroup')")
+    public void exportClassGroup(HttpServletResponse response, ClassGroupQueryInfo queryInfo) throws IOException {
+        queryInfo.setPage(1);
+        queryInfo.setRows(49999);
+        SysUser sysUser = sysUserFeignService.queryUserInfo();
+        if (sysUser == null) {
+            throw new BizException("用户信息获取失败");
+        }
+        if(!sysUser.getIsSuperAdmin()){
+            Employee employee = employeeDao.get(sysUser.getId());
+            if (org.apache.commons.lang3.StringUtils.isEmpty(queryInfo.getOrganIdList())) {
+                queryInfo.setOrganIdList(employee.getOrganIdList());
+            }else if(org.apache.commons.lang3.StringUtils.isEmpty(employee.getOrganIdList())){
+                throw new BizException("用户所在分部异常");
+            }else {
+                List<String> list = Arrays.asList(employee.getOrganIdList().split(","));
+                if(!list.containsAll(Arrays.asList(queryInfo.getOrganIdList().split(",")))){
+                    throw new BizException("非法请求");
+                }
+            }
+        }
+        List<ClassGroupTeachersDto> rows = classGroupService.queryClassGroupPage(queryInfo).getRows();
+        for (ClassGroupTeachersDto row : rows) {
+            List<ClassGroupTeacherMapper> classGroupTeacherMapperList = row.getClassGroupTeacherMapperList();
+            if(classGroupTeacherMapperList.size() > 0){
+                List<ClassGroupTeacherMapper> teachingTeachers = classGroupTeacherMapperList.stream().filter(e -> e.getTeacherRole() == TeachTypeEnum.TEACHING).collect(Collectors.toList());
+                if(teachingTeachers.size() > 0){
+                    row.setTeachingTeacherName(StringUtils.join(teachingTeachers.stream().map(e->e.getUserName()).collect(Collectors.toList()), ","));
+                }
+                List<ClassGroupTeacherMapper> bishopTeachers = classGroupTeacherMapperList.stream().filter(e -> e.getTeacherRole() == TeachTypeEnum.BISHOP).collect(Collectors.toList());
+                if(bishopTeachers.size() > 0){
+                    row.setBishopTeacherName(StringUtils.join(bishopTeachers.stream().map(e->e.getUserName()).collect(Collectors.toList()),","));
+                }
+            }
+        }
+        OutputStream outputStream = response.getOutputStream();
+        try {
+            HSSFWorkbook workbook = POIUtil.exportExcel(new String[]{"课程组编号", "课程组名称", "分部名称", "班级名称",
+                    "班级类型", "班级人数", "主教老师", "助教老师", "已上课时", "总课数"}, new String[]{
+                    "musicGroupId", "musicGroupName", "organName", "name",
+                    "type.msg", "studentNum", "bishopTeacherName", "teachingTeacherName", "currentClassTimes",
+                    "totalClassTimes"}, rows);
+            response.setContentType("application/octet-stream");
+            response.setHeader("Content-Disposition", "attac:wq" +
+                    "hment;filename=goods-" + 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 = "商品列表导出")
     @PostMapping("export/goods")