东方骏驰人事花名册导出功能

东方骏驰
Chengliang 7 months ago
parent 97f0edc056
commit b487fd6087

@ -1,9 +1,11 @@
package com.engine.kqsolution.service; package com.engine.kqsolution.service;
import com.engine.kqsolution.entity.HistoryResourcePO;
import org.apache.poi.xssf.usermodel.XSSFWorkbook; import org.apache.poi.xssf.usermodel.XSSFWorkbook;
import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse; import javax.servlet.http.HttpServletResponse;
import java.util.List;
import java.util.Map; import java.util.Map;
/** /**
@ -40,5 +42,14 @@ public interface ResourceSnipService {
* @param: [companyStartDate] * @param: [companyStartDate]
* @return: java.util.Map<java.lang.String,java.lang.Object> * @return: java.util.Map<java.lang.String,java.lang.Object>
*/ */
Map<String,Object> hrResource(String companyStartDate); Map<String, List<HistoryResourcePO>> hrResource(String companyStartDate);
/**
* @Description
* @Author: liang.cheng
* @Date: 2024/9/11 3:18 PM
* @param: [request, response, companyStartDate]
* @return: org.apache.poi.xssf.usermodel.XSSFWorkbook
*/
XSSFWorkbook hrResourceExport(HttpServletRequest request, HttpServletResponse response, String companyStartDate);
} }

@ -214,9 +214,9 @@ public class ResourceSnipServiceImpl extends Service implements ResourceSnipServ
} }
@Override @Override
public Map<String, Object> hrResource(String companyStartDate) { public Map<String, List<HistoryResourcePO>> hrResource(String companyStartDate) {
Map<String, Object> resultMap = new HashMap<>(4); Map<String, List<HistoryResourcePO>> resultMap = new HashMap<>(4);
RecordSet rs = new RecordSet(); RecordSet rs = new RecordSet();
BaseBean bb = new BaseBean(); BaseBean bb = new BaseBean();
String account = bb.getPropValue("jcsecond", "account"); String account = bb.getPropValue("jcsecond", "account");
@ -338,6 +338,55 @@ public class ResourceSnipServiceImpl extends Service implements ResourceSnipServ
return resultMap; return resultMap;
} }
@Override
public XSSFWorkbook hrResourceExport(HttpServletRequest request, HttpServletResponse response, String companyStartDate) {
BaseBean bb = new BaseBean();
//全字段导出
List<Object> headerList = Arrays.asList("编号","姓名","出生日期","性别","分部","部门","岗位","直接上级","入职日期","离职日期","状态","创建日期","公积金账户","工资账户","工资银行","首次参保时间",
"合同开始日期","合同结束日期","学历","电话","身份证号","籍贯","户口所在地");
Map<String, List<HistoryResourcePO>> stringMap = hrResource(companyStartDate);
List<HistoryResourcePO> historyResourcePOS = stringMap.get("data");
List<List<Object>> rows = new LinkedList<>();
for (HistoryResourcePO hr : historyResourcePOS) {
List<Object> row = new LinkedList<>();
row.add(hr.getWorkcode());
row.add(hr.getLastName());
row.add(hr.getBirthday());
row.add(hr.getSex());
row.add(hr.getSubCompany());
row.add(hr.getDepartment());
row.add(hr.getJobTitle());
row.add(hr.getManagerId());
row.add(hr.getCompanyStartDate());
row.add(hr.getAccountId());
row.add(hr.getStatus());
row.add(hr.getCreateDate());
row.add(hr.getAccumfundAccount());
row.add(hr.getBankName());
row.add(hr.getFirstEnrollmentDate());
row.add(hr.getStartdate());
row.add(hr.getEndDate());
row.add(hr.getEducationlevel());
row.add(hr.getMobile());
row.add(hr.getCertificatenum());
row.add(hr.getNativeplace());
row.add(hr.getRegresidentplace());
rows.add(row);
}
List<List<Object>> excelSheetData = new ArrayList<>();
excelSheetData.add(headerList);
excelSheetData.addAll(rows);
String sheetName = "花名册快照"+companyStartDate;
return ExcelUtil.genWorkbookV2(excelSheetData, sheetName);
}
private List<HrmStatusPO> filterList(List<HrmStatusPO> list) { private List<HrmStatusPO> filterList(List<HrmStatusPO> list) {
return list.stream() return list.stream()
.collect(Collectors.groupingBy( .collect(Collectors.groupingBy(

@ -90,4 +90,25 @@ public class ResourceSnipAction {
} }
return JSONObject.toJSONString(data, SerializerFeature.DisableCircularReferenceDetect); return JSONObject.toJSONString(data, SerializerFeature.DisableCircularReferenceDetect);
} }
@GET
@Path("/hrResource/export")
@Produces(MediaType.APPLICATION_OCTET_STREAM)
public Response hrResourceExport(@Context HttpServletRequest request, @Context HttpServletResponse response,
@QueryParam("companyStartDate") String companyStartDate) {
User user = HrmUserVarify.getUser(request, response);
XSSFWorkbook workbook = getService(user).hrResourceExport(request, response, companyStartDate);
String fileName = "人事花名册";
try {
fileName = URLEncoder.encode(fileName + ".xlsx", "UTF-8");
} catch (UnsupportedEncodingException e) {
e.printStackTrace();
}
StreamingOutput output = outputStream -> {
workbook.write(outputStream);
outputStream.flush();
};
response.setContentType("application/octet-stream");
return Response.ok(output).header("Content-disposition", "attachment;filename=" + fileName).header("Cache-Control", "no-cache").build();
}
} }

Loading…
Cancel
Save