You cannot select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
100 lines
3.6 KiB
Java
100 lines
3.6 KiB
Java
package com.engine.organization.web;
|
|
|
|
import com.alipay.oceanbase.jdbc.StringUtils;
|
|
import com.engine.common.util.ServiceUtil;
|
|
import com.engine.organization.entity.hrmresource.param.HrmResourceSearchParam;
|
|
import com.engine.organization.wrapper.ExportCommonWrapper;
|
|
import org.apache.poi.xssf.usermodel.XSSFWorkbook;
|
|
import org.ietf.jgss.GSSContext;
|
|
import weaver.hrm.HrmUserVarify;
|
|
import weaver.hrm.User;
|
|
|
|
import javax.servlet.http.HttpServletRequest;
|
|
import javax.servlet.http.HttpServletResponse;
|
|
import javax.ws.rs.GET;
|
|
import javax.ws.rs.Path;
|
|
import javax.ws.rs.Produces;
|
|
import javax.ws.rs.core.Context;
|
|
import javax.ws.rs.core.MediaType;
|
|
import javax.ws.rs.core.Response;
|
|
import javax.ws.rs.core.StreamingOutput;
|
|
import java.io.UnsupportedEncodingException;
|
|
import java.net.URLEncoder;
|
|
import java.time.LocalDate;
|
|
|
|
/**
|
|
* @Author weaver_cl
|
|
* @Description:
|
|
* @Date 2022/6/28
|
|
* @Version V1.0
|
|
**/
|
|
public class ExportCommonController {
|
|
|
|
private ExportCommonWrapper getExportCommonWrapper(User user) {
|
|
return ServiceUtil.getService(ExportCommonWrapper.class,user);
|
|
}
|
|
|
|
@GET
|
|
@Path("/resource/export")
|
|
@Produces(MediaType.APPLICATION_OCTET_STREAM)
|
|
public Response resourceExport(@Context HttpServletRequest request, @Context HttpServletResponse response) {
|
|
HrmResourceSearchParam param = buildResourceParam(request);
|
|
User user = HrmUserVarify.getUser(request, response);
|
|
XSSFWorkbook workbook = getExportCommonWrapper(user).resourceExport(param);
|
|
String time = LocalDate.now().toString();
|
|
String fileName = "人员导出" + time;
|
|
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();
|
|
}
|
|
|
|
|
|
|
|
private HrmResourceSearchParam buildResourceParam(HttpServletRequest request) {
|
|
HrmResourceSearchParam param = new HrmResourceSearchParam();
|
|
String lastName = request.getParameter("lastName");
|
|
if (StringUtils.isNotBlank(lastName)){
|
|
param.setLastName(lastName);
|
|
}
|
|
String managerId = request.getParameter("managerId");
|
|
if (StringUtils.isNotBlank(managerId)){
|
|
param.setManagerId(Long.valueOf(managerId));
|
|
}
|
|
String companyId = request.getParameter("companyId");
|
|
if (StringUtils.isNotBlank(companyId)){
|
|
param.setCompanyId(Long.valueOf(companyId));
|
|
}
|
|
String departmentId = request.getParameter("departmentId");
|
|
if (StringUtils.isNotBlank(departmentId)){
|
|
param.setDepartmentId(Long.valueOf(departmentId));
|
|
}
|
|
String mobile = request.getParameter("mobile");
|
|
if (StringUtils.isNotBlank(mobile)){
|
|
param.setMobile(mobile);
|
|
}
|
|
String telephone = request.getParameter("telephone");
|
|
if (StringUtils.isNotBlank(telephone)){
|
|
param.setTelephone(telephone);
|
|
}
|
|
String mobileCall = request.getParameter("mobileCall");
|
|
if (StringUtils.isNotBlank(mobileCall)){
|
|
param.setMobileCall(mobileCall);
|
|
}
|
|
String jobTitle = request.getParameter("jobTitle");
|
|
if (StringUtils.isNotBlank(jobTitle)){
|
|
param.setJobTitle(Long.valueOf(jobTitle));
|
|
}
|
|
return param;
|
|
}
|
|
|
|
|
|
}
|