提交 fb2ee305 authored 作者: wangmenglong's avatar wangmenglong

增加导出功能

上级 d14c52aa
package excel;
import com.alibaba.excel.annotation.ExcelProperty;
import com.alibaba.excel.annotation.write.style.ColumnWidth;
import com.alibaba.excel.annotation.write.style.HeadFontStyle;
import com.alibaba.excel.annotation.write.style.HeadRowHeight;
import com.alibaba.excel.annotation.write.style.HeadStyle;
import lombok.Data;
import org.apache.poi.ss.usermodel.FillPatternType;
import java.math.BigDecimal;
/**
* @author wangmenglong
* @description: 报名导出
* @date 2024/6/21 16:45
*/
@Data
@HeadRowHeight(20)
@HeadStyle(fillPatternType = FillPatternType.SOLID_FOREGROUND, fillForegroundColor = 22)
@HeadFontStyle(fontHeightInPoints = 11)
@ColumnWidth(25)
public class ExportRecruit {
@ExcelProperty("报名时间")
private String rtTime;
@ExcelProperty("报名企业")
private String orgName;
@ExcelProperty("报名职位")
private String name;
@ExcelProperty("姓名")
private String personName;
@ExcelProperty("联系电话")
private String personPhoneNumber;
@ExcelProperty("性别")
private String personSex;
@ExcelProperty("身份证号")
private String personIdNo;
@ExcelProperty("状态")
private String recordState;
@ExcelProperty("岗位发布人")
private String userName;
@ExcelProperty("创建时间")
private String createTime;
}
......@@ -2,6 +2,9 @@ package com.jfb.recruit.controller;
import base.controller.BaseController;
import base.result.BaseResult;
import com.alibaba.excel.EasyExcel;
import com.alibaba.excel.ExcelWriter;
import com.alibaba.excel.write.metadata.WriteSheet;
import com.github.pagehelper.PageInfo;
import com.jfb.recruit.bean.auth.UserContext;
import com.jfb.recruit.service.SignRecordService;
......@@ -9,12 +12,20 @@ import com.jfb.recruit.service.RecruitService;
import com.jfb.recruit.util.auth.UserUtils;
import data.recruit.SignRecord;
import data.recruit.Recruit;
import excel.ExportRecruit;
import org.apache.commons.lang3.time.DateFormatUtils;
import org.springframework.web.bind.annotation.*;
import javax.annotation.Resource;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import java.net.URLEncoder;
import java.util.ArrayList;
import java.util.Date;
import java.util.List;
import static org.reflections.Reflections.log;
/**
* @author wangmenglong
* @description: 报名管理
......@@ -65,6 +76,94 @@ public class SignRecordController extends BaseController {
return BaseResult.success(pageInfo);
}
/**
* 导出明细
* @param: [req]
* @return: util.Paging
* @author: wangmenglong
* @date: 2021/7/13
*/
@RequestMapping(value = "/admin/list/export", method = RequestMethod.POST)
@ResponseBody
public void export(HttpServletRequest req, HttpServletResponse response) {
PageInit(req);
String personIdno = req.getParameter("personIdno");
String personName = req.getParameter("personName");
String name = req.getParameter("name");
String userName = req.getParameter("userName");
List<Recruit> list = recruitService.listBySignRecordAdmin(pageNum,pageSize,personIdno,personName,name,userName);
try {
//导出数据
String now = DateFormatUtils.format(new Date(), "yyyyMMddHHmmss");
response.setHeader("Access-Control-Allow-Origin", "*");
if (req.getMethod().equals("OPTIONS")) {
response.addHeader("Access-Control-Allow-Methods", "GET,HEAD,POST,PUT,DELETE,TRACE,OPTIONS,PATCH");
response.addHeader("Access-Control-Allow-Headers", "dnt,Origin, X-Requested-With,Content-Type, Accept, Authorization");
}
response.setCharacterEncoding("utf-8");
response.setContentType("application/vnd.openxmlformats-officedocument.spreadsheetml.sheet");
String encodedFileName = URLEncoder.encode("求职报名"+now, "UTF-8").replaceAll("\\+", "%20");
response.setHeader("Content-Disposition", "attachment; filename*=UTF-8''" + encodedFileName);
ExcelWriter excelWriter = EasyExcel.write(response.getOutputStream()).build();
List<ExportRecruit> result = new ArrayList<>();
list.stream().forEach(item->{
ExportRecruit exportRecruit = new ExportRecruit();
exportRecruit.setRtTime(item.getRtTime());
exportRecruit.setOrgName(item.getOrgName());
exportRecruit.setName(item.getName());
exportRecruit.setPersonName(item.getPerson().getName());
exportRecruit.setPersonPhoneNumber(item.getPerson().getPhoneNumber());
if (item.getPerson().getSex() != null){
if (item.getPerson().getSex()){
exportRecruit.setPersonSex("男");
} else {
exportRecruit.setPersonSex("女");
}
}
exportRecruit.setPersonIdNo(item.getPerson().getIdNo());
switch (item.getRecordState()){
case "INTERVIEW":
exportRecruit.setRecordState("面试中");
break;
case "APPLY_FAILED":
exportRecruit.setRecordState("未录取");
break;
case "APPLY_SUCCESS":
exportRecruit.setRecordState("已录取");
break;
case "ON_BOARDING":
exportRecruit.setRecordState("已入职");
break;
case "INVITING_INTERVIEW":
exportRecruit.setRecordState("邀请面试");
break;
case "APPLYING":
exportRecruit.setRecordState("提交简历");
break;
}
exportRecruit.setUserName(item.getUserName());
exportRecruit.setCreateTime(item.getCreateTime());
result.add(exportRecruit);
});
WriteSheet bill = EasyExcel.writerSheet(0,"求职报名").head(ExportRecruit.class)
.build();
excelWriter.write(result, bill);
excelWriter.finish();
} catch (Exception e) {
log.error("附加扣除导出数据失败", e);
}
}
/**
* @description: 新增报名
......
Markdown 格式
0%
您添加了 0 到此讨论。请谨慎行事。
请先完成此评论的编辑!
注册 或者 后发表评论