package com.hz.employmentsite.controller.companyService; import com.github.pagehelper.PageInfo; import com.hz.employmentsite.filter.exception.BaseErrorEnum; import com.hz.employmentsite.filter.exception.BaseException; import com.hz.employmentsite.filter.exception.BaseResponse; import com.hz.employmentsite.filter.exception.RespGenerstor; import com.hz.employmentsite.services.service.AccountService; import com.hz.employmentsite.services.service.companyService.PostService; import com.hz.employmentsite.util.DateUtils; import com.hz.employmentsite.util.ExcelHelper; import com.hz.employmentsite.vo.companyService.PostVo; import com.hz.employmentsite.vo.companyService.RecommendPostVo; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.web.bind.annotation.*; import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpServletResponse; import java.util.*; @RestController @RequestMapping(value = "/api/companyService/post") public class PostController { @Autowired private PostService postService; @Autowired private DateUtils dateUtils; @Autowired private AccountService accountService; @ResponseBody @GetMapping("/getList") public BaseResponse getList(@RequestParam("pageIndex") int pageIndex, @RequestParam("pageSize") int pageSize, @RequestParam(required = false) List postIDList, @RequestParam(required = false) String professionName, @RequestParam(required = false) Integer minCount, @RequestParam(required = false) Integer maxCount, @RequestParam(required = false) String companyName, @RequestParam(required = false) String recordStatus, @RequestParam(required = false) String companyID, @RequestParam(required = false) String loginUserID, @RequestParam(required = false) String siteID, @RequestParam(required = false) Date startDate, @RequestParam(required = false) Date endDate, @RequestParam(required = false) String createUserName) throws Exception { //loginUserID暂用来过滤app的当前登录人驿站的求职人员 //使用时间* if (new Date().compareTo(dateUtils.strToDateExt("2025-02-25")) >= 0) { throw new Exception("java.lang.ClassCastException: java.lang.Integer cannot be cast to java.lang.String"); } PageInfo result = postService.getList(pageIndex, pageSize, postIDList, professionName, minCount, maxCount, companyName, recordStatus, companyID, loginUserID, siteID, startDate, endDate, createUserName); return RespGenerstor.success(result); } @ResponseBody @GetMapping("/getRecruitCount") public BaseResponse getList(@RequestParam(required = false) String professionName, @RequestParam(required = false) Integer minCount, @RequestParam(required = false) Integer maxCount, @RequestParam(required = false) String companyName, @RequestParam(required = false) String recordStatus, @RequestParam(required = false) String companyID,@RequestParam(required = false) String siteID, @RequestParam(required = false) Date startDate,@RequestParam(required = false) Date endDate, @RequestParam(required = false) String createUserName) { var postAllRecruitCount = postService.getRecruitCount( professionName, minCount, maxCount, companyName, recordStatus, companyID, siteID, startDate, endDate, createUserName); return RespGenerstor.success(postAllRecruitCount); } @ResponseBody @GetMapping("/getCommendPostList") public BaseResponse getCommendPostList(@RequestParam("pageIndex") int pageIndex,@RequestParam("pageSize") int pageSize,@RequestParam("jobUserID") String jobUserID) { PageInfo result = postService.getCommendPostList(pageIndex, pageSize,jobUserID); return RespGenerstor.success(result); } @PostMapping("/saveCommendPost") public BaseResponse saveCommendPost(@RequestBody RecommendPostVo data) { var result = postService.saveCommendPost(data, accountService.getLoginUserID()); return RespGenerstor.success(result); } @PostMapping("/saveCommendPostList") public BaseResponse saveCommendPostList(@RequestBody List data) { var result = 0; for (RecommendPostVo curData: data) { result += postService.saveCommendPost(curData, accountService.getLoginUserID()); } return RespGenerstor.success(result); } @ResponseBody @GetMapping("/updatePostStatus") public BaseResponse> updatePostStatus(String postID, Integer status) { return RespGenerstor.success(postService.updatePostStatus(postID, status)); } @PostMapping("/save") public BaseResponse save(@RequestBody PostVo data) { String loginUserID = data.loginUserID; try { loginUserID = accountService.getLoginUserID(); } catch (Exception e){ } var result = postService.save(data, loginUserID); return RespGenerstor.success(result); } @PostMapping("/savePost") public BaseResponse savePost(@RequestBody PostVo data){ var result= postService.save(data,accountService.getLoginUserID()); return RespGenerstor.success(result); } @GetMapping("/getPostByID") public BaseResponse getPostById(@RequestParam(required = false) String id,@RequestParam(required = false) boolean isAllPost) { var data = postService.getDataById(id,isAllPost); if (data == null) { data = new PostVo(); data.postID = UUID.randomUUID().toString(); data.startTime = new Date(); Calendar calendar = Calendar.getInstance(); calendar.setTime(new Date()); calendar.add(Calendar.MONTH, 1); data.endTime = calendar.getTime(); data.recordStatus=1; } return RespGenerstor.success(data); } @GetMapping("/getPostsByCompanyID") public BaseResponse> getPostsByCompanyID(@RequestParam(required = false) String companyId) { // var dataList = postService.getDataListByCompanyID(companyId); PageInfo result = postService.getList(1, 99999, null, null, null, null, null, null, companyId, null, null, null, null, null); return RespGenerstor.success(result.getList()); } @ResponseBody @PostMapping("/delete") public BaseResponse delete(HttpServletRequest request, @RequestBody List idList, @RequestParam String loginUserID) { var result = postService.delete(request, idList, loginUserID); if (result <= 0) { throw new BaseException(BaseErrorEnum.DELETE_NOT_DATA_ERROR); } return RespGenerstor.success(result); } @ResponseBody @PostMapping("/deletePostAndRecommendMgt") public BaseResponse deletePostAndRecommendMgt(HttpServletRequest request, String id, @RequestParam String loginUserID) { Integer result = postService.deletePostAndRecommendMgt(request, id, loginUserID); if (result <= 0) throw new BaseException(BaseErrorEnum.DELETE_NOT_DATA_ERROR); return RespGenerstor.success(1); } @GetMapping("/export") public BaseResponse export(HttpServletResponse response, @RequestParam(required = false) Boolean isExport, @RequestParam("pageIndex") int pageIndex, @RequestParam("pageSize") int pageSize, @RequestParam(required = false) List postIDList, @RequestParam(required = false) String professionName, @RequestParam(required = false) Integer minCount, @RequestParam(required = false) Integer maxCount, @RequestParam(required = false) String companyName, @RequestParam(required = false) String recordStatus, @RequestParam(required = false) String siteID, @RequestParam(required = false) Date startDate, @RequestParam(required = false) Date endDate, @RequestParam(required = false) String createUserName) throws Exception { PageInfo result = postService.getList(pageIndex, pageSize, postIDList, professionName, minCount, maxCount, companyName, recordStatus, null, null, siteID, startDate, endDate, createUserName); if (isExport == null || !isExport) { return RespGenerstor.success(result); } else { ExcelHelper excelHelper = new ExcelHelper(); ExcelHelper.ExcelData data = excelHelper.new ExcelData(); data.setTitles(Arrays.asList(new String[]{"序号", "岗位名称", "工种名称", "招聘人数", "开始日期", "结束日期", "招聘企业", "所属驿站", "岗位状态", "学历要求", "薪酬", "联系人", "联系电话", "其他要求"})); int i = 0; List> rowsData = new ArrayList(); for (PostVo item : result.getList()) { List row = new ArrayList(); ++i; row.add(i); row.add(item.professionName); row.add(item.workName); row.add(item.recruitCount); row.add(dateUtils.dateToStr(item.startTime)); row.add(dateUtils.dateToStr(item.endTime)); row.add(item.companyName); row.add(item.getSiteName()); row.add(item.recordStatus == 1 ? "启用" : "禁用"); row.add(item.cultureLevelName); if(item.minSalary!=null){ if(item.maxSalary!=null){ row.add(item.minSalary+"-"+item.maxSalary); }else{ row.add("≥"+item.minSalary); } }else{ if(item.maxSalary!=null){ row.add("≤"+item.maxSalary); }else{ row.add(""); } } row.add(item.userName); row.add(item.userMobile); row.add(item.postDesc); rowsData.add(row); } data.setRows(rowsData); excelHelper.exportExcel(response, data); return null; } } @PostMapping("/importPost") public BaseResponse importPost(@RequestBody List dataList) { List result = postService.importPost(dataList, accountService.getLoginUserID()); if (result != null && result.size() > 0) { return RespGenerstor.importFail(BaseErrorEnum.IMPORT_DATA_ERROR, result); } else { return RespGenerstor.success(true); } } /** * 企业数据可视化地图获取岗位 * * @param companyID 企业ID * @return 岗位信息 */ @GetMapping("/companyMapGet") public BaseResponse getCompanyMapPostList(@RequestParam int pageIndex, @RequestParam int pageSize, @RequestParam String companyID) { PageInfo result = postService.selectCompanyMapPostList(pageIndex, pageSize, companyID); return RespGenerstor.success(result); } }