package com.engine.organization.web; import com.alibaba.fastjson.JSON; import com.alibaba.fastjson.JSONObject; import com.api.browser.bean.SearchConditionGroup; import com.engine.common.util.ParamUtil; import com.engine.common.util.ServiceUtil; import com.engine.organization.entity.searchtree.SearchTreeParams; import com.engine.organization.util.response.ReturnResult; import com.engine.organization.wrapper.PersonnelResumeWrapper; import weaver.general.Util; 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 java.util.ArrayList; import java.util.HashMap; import java.util.List; import javax.ws.rs.core.Response; import java.io.*; import java.net.URLEncoder; import java.util.Map; /** * @author:dxfeng * @createTime: 2022/12/28 * @version: 1.0 */ public class PersonnelResumeController { public PersonnelResumeWrapper getPersonnelResumeWrapper(User user) { return ServiceUtil.getService(PersonnelResumeWrapper.class, user); } /** * 左侧树接口 * * @param request * @param response * @return */ @GET @Path("/getSearchTree") @Produces(MediaType.APPLICATION_JSON) public Map getSearchTree(@Context HttpServletRequest request, @Context HttpServletResponse response) { User user = HrmUserVarify.getUser(request, response); Map map = ParamUtil.request2Map(request); SearchTreeParams params = JSONObject.toJavaObject((JSON) JSONObject.toJSON(map), SearchTreeParams.class); return getPersonnelResumeWrapper(user).getSearchTree(params); } @GET @Path("/hasRight") @Produces(MediaType.APPLICATION_JSON) public ReturnResult hasRight(@Context HttpServletRequest request, @Context HttpServletResponse response) { try { User user = HrmUserVarify.getUser(request, response); return ReturnResult.successed(getPersonnelResumeWrapper(user).hasRight()); } catch (Exception e) { return ReturnResult.exceptionHandle(e); } } @GET @Path("/getResumeList") @Produces(MediaType.APPLICATION_JSON) public ReturnResult getResumeList(@Context HttpServletRequest request, @Context HttpServletResponse response) { try { User user = HrmUserVarify.getUser(request, response); Map map = ParamUtil.request2Map(request); Integer uId = Integer.parseInt(Util.null2String(map.get("id"))); return ReturnResult.successed(getPersonnelResumeWrapper(user).getResumeList(uId)); } catch (Exception e) { return ReturnResult.exceptionHandle(e); } } @GET @Path("/personnelScreening") @Produces(MediaType.APPLICATION_JSON) public ReturnResult personnelScreening(@Context HttpServletRequest request, @Context HttpServletResponse response) { try { User user = HrmUserVarify.getUser(request, response); Map returnMap = new HashMap<>(); List addGroups = new ArrayList<>(); addGroups.add(new SearchConditionGroup("高级搜索条件", true, getPersonnelResumeWrapper(user).personnelScreening())); returnMap.put("conditions",addGroups); return ReturnResult.successed(returnMap); } catch (Exception e) { return ReturnResult.exceptionHandle(e); } } /** * 人员简历下载 * * @param request * @param response * @return */ @GET @Path("/downloadPerResume") @Produces(MediaType.APPLICATION_OCTET_STREAM) public Response downloadPerResume(@Context HttpServletRequest request, @Context HttpServletResponse response) throws Exception { User user = HrmUserVarify.getUser(request, response); Map map = ParamUtil.request2Map(request); // type: 0:合并 1:不合并 Integer type = Integer.parseInt(Util.null2String(map.get("type"))); String realPath = getPersonnelResumeWrapper(user).downloadPerResume(type,response); File file = new File(realPath); // 如果文件不存在,提示404 if (!file.exists()) { return Response.status(Response.Status.NOT_FOUND).build(); } String fileName = URLEncoder.encode(file.getName(), "UTF-8"); return Response .ok(file) .header("Content-disposition", "attachment;filename=" + fileName) .header("Cache-Control", "no-cache").build(); } }