@GetMapping(value = '/exportList')
public void exportList(HttpServletResponse response, @RequestParam('listType') Integer listType, @RequestParam(value = 'userName', required = false) String userName, @RequestParam(value = 'collegeCode', required = false) Integer collegeCode, @RequestParam(value = 'sex', required = false) Integer sex, @RequestParam(value = 'stuType', required = false) Integer stuType, @RequestParam(value = 'allocateTime', required = false) String allocateTime, @RequestParam(value = 'className', required = false) String className, @RequestParam(value = 'major', required = false) String major, @RequestParam(value = 'applyHosDis', required = false) Integer applyHosDis, @RequestParam(value = 'gradeName', required = false) String gradeName, @RequestParam(value = 'ids', required = false) String ids, @RequestParam(value = 'hosDisId', required = false) Integer hosDisId) throws Exception {
AssertUtil.isNotNull(listType, '列表类型不能为空');
Integer roleId = tokenService.getUserRoleId();
DormitoryRoomUserRequest dormitoryRoomUserRequest = new DormitoryRoomUserRequest();
dormitoryRoomUserRequest.setListType(listType);
dormitoryRoomUserRequest.setUserName(userName);
dormitoryRoomUserRequest.setCollegeCode(collegeCode);
dormitoryRoomUserRequest.setSex(sex);
dormitoryRoomUserRequest.setStuType(stuType);
dormitoryRoomUserRequest.setAllocateTime(allocateTime);
dormitoryRoomUserRequest.setClassName(className);
dormitoryRoomUserRequest.setMajor(major);
dormitoryRoomUserRequest.setApplyHosDis(applyHosDis);
dormitoryRoomUserRequest.setGradeName(gradeName);
dormitoryRoomUserRequest.setHosDisId(hosDisId);
/* List resultList = dormitoryRoomUserService.selectList(dormitoryRoomUserRequest, Integer.valueOf(ids));*/
List resultList=dormitoryRoomUserService.exportList(listType,userName,collegeCode,sex, stuType,allocateTime,className, major,hosDisId);
String name = '';
String[] head = new String[]{};
String[] context = new String[]{};
if (listType == 3) {
name = '已入住学生信息';
head = new String[]{'学生类型', '姓名', '学号', '手机号码', '性别', '职务', '专业信息', '院区', '楼名/楼号', '楼层', '房间号', '入住时间', '被访问次数'};
context = new String[]{'userTypeName', 'userName', 'stuNumber', 'mobile', 'sexStr', 'position', 'major', 'hosDisName', 'buildingName', 'buildingLevel', 'roomNumber', 'stayTime', 'interviewNumber'};
} else if (listType == 1) {
name = '待分配学生信息';
head = new String[]{'学生类型', '姓名', '学号', '手机号', '性别', '院区', '职务', '专业信息'};
context = new String[]{'userTypeName', 'userName', 'stuNumber', 'mobile', 'sexStr', 'hosDisName', 'position', 'major'};
} else if (listType == 2) {
name = '待入住学生信息';
head = new String[]{'学生类型', '姓名', '学号', '手机号码', '性别', '职务', '专业信息', '分配到', '分配时间'};
context = new String[]{'userTypeName', 'userName', 'stuNumber', 'mobile', 'sexStr', 'position', 'major', 'info', 'allocateTime'};
} else if (listType == 4) {
name = '转宿学生信息';
head = new String[]{'学生类型', '姓名', '学号', '手机号码', '性别', '专业信息', '原院区', '楼名/楼号', '楼层', '房间号', '宿检分数', '转科院区', '是否违规', '执行时间'};
context = new String[]{'userTypeName', 'userName', 'stuNumber', 'mobile', 'sexStr', 'major', 'hosDisName', 'buildingName', 'buildingLevel', 'roomNumber', 'score', 'exchangeHosDisName', 'violation', 'executionTime'};
} else {
name = '学生信息';
}
if (ObjectUtils.isNotNull(ids)) {
String[] split = ids.split(',');
List integers = new ArrayList<>();
for (String s : split) {
integers.add(Integer.valueOf(s));
}
List userListResults = resultList.stream().filter(e -> integers.contains(e.getUserId())).collect(Collectors.toList());
ExcelExportUtils.exportView2007(response, userListResults, head, context, name);
} else {
ExcelExportUtils.exportView2007(response, resultList, head, context, name);
}
}
// Postman测试方法:
// 1. 使用 GET 请求方法
// 2. 在 URL 中添加参数 listType、userName、collegeCode 等,例如:/exportList?listType=3&userName=张三
// 3. 设置请求头为 application/json
// 4. 发送请求
// 5. 查看响应结果,是否成功生成 Excel 文件