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.mapper.PcSiteMapper; import com.hz.employmentsite.mapper.PcSiteUserMapper; import com.hz.employmentsite.model.PcCompany; import com.hz.employmentsite.model.PcSite; import com.hz.employmentsite.model.PcSiteExample; import com.hz.employmentsite.model.PcSiteUserExample; import com.hz.employmentsite.services.service.AccountService; import com.hz.employmentsite.services.service.companyService.CompanyService; import com.hz.employmentsite.util.DateUtils; import com.hz.employmentsite.util.ExcelHelper; import com.hz.employmentsite.vo.companyService.AppCompanyPostVo; import com.hz.employmentsite.vo.companyService.CompanyVo; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.web.bind.annotation.*; import javax.servlet.http.HttpServletResponse; import java.util.*; @RestController @RequestMapping("/api/companyService/company") public class CompanyController { @Autowired private AccountService accountService; @Autowired private CompanyService companyService; @Autowired private PcSiteUserMapper pcSiteUserMapper; @Autowired private PcSiteMapper pcSiteMapper; @Autowired private DateUtils dateUtils; @ResponseBody @GetMapping("/getList") public BaseResponse> getList(@RequestParam("pageIndex") int pageIndex, @RequestParam("pageSize") int pageSize, @RequestParam(required = false) List companyIDList, @RequestParam(required = false) String companyName, @RequestParam(required = false) String companyCode, @RequestParam(required = false) String recordStatus, @RequestParam(required = false) String regionCode, @RequestParam(required = false) String streetCode, @RequestParam(required = false) String createUserId, @RequestParam(required = false) String workTime) { PageInfo result = companyService.getList(pageIndex, pageSize, companyIDList, companyName, companyCode, recordStatus, regionCode, streetCode, createUserId, workTime); return RespGenerstor.success(result); } @ResponseBody @GetMapping("/getCompanyBySiteIDList") public BaseResponse> getCompanyBySiteIDList(@RequestParam(required = false) String siteID) { return RespGenerstor.success(companyService.getCompanyBySiteIDList(siteID)); } @GetMapping("/getCompanyByID") public BaseResponse getCompanyById(String id,String loginUserID) { var data = companyService.getDataById(id); if (data == null) { data = new CompanyVo(); data.companyID = UUID.randomUUID().toString(); data.recordStatus = 1; data.validDate = dateUtils.StrToDate("2099-12-31 00:00:00"); data.establishmentTime = new Date(); data.isShortage = 1; PcSiteUserExample siteUserExp = new PcSiteUserExample(); PcSiteUserExample.Criteria siteUserCro = siteUserExp.createCriteria(); siteUserCro.andUserIDEqualTo(loginUserID); //siteUserCro.andUserIDEqualTo(accountService.getLoginUserID()); var curSiteUserInfo = pcSiteUserMapper.selectByExample(siteUserExp).stream().findFirst().orElse(null); if (curSiteUserInfo != null) { data.setSiteID(curSiteUserInfo.getSiteID()); PcSiteExample siteExp = new PcSiteExample(); PcSiteExample.Criteria siteCro = siteExp.createCriteria(); siteCro.andSiteIDEqualTo(curSiteUserInfo.getSiteID()); var curSiteInfo = pcSiteMapper.selectByExample(siteExp).stream().findFirst().orElse(null); if (curSiteInfo != null) { data.setRegionCode(curSiteInfo.getRegionCode()); data.setStreetCode(curSiteInfo.getStreetCode()); } } } return RespGenerstor.success(data); } @PostMapping("/save") public BaseResponse save(@RequestBody CompanyVo data) { String loginUserID = data.loginUserID; try { loginUserID = accountService.getLoginUserID(); } catch (Exception e){ } var result = companyService.save(data, loginUserID); return RespGenerstor.success(result); } @ResponseBody @PostMapping("/delete") public BaseResponse delete(@RequestBody List ids) { var result = companyService.delete(ids); if (result <= 0) { throw new BaseException(BaseErrorEnum.DELETE_NOT_DATA_ERROR); } return RespGenerstor.success(result); } @GetMapping("/getSiteList") public BaseResponse getSiteList(){ List siteList = companyService.getSiteList(); return RespGenerstor.success(siteList); } @GetMapping("/export") public BaseResponse export(HttpServletResponse response, @RequestParam(required = false) Boolean isExport, @RequestParam("pageIndex") int pageIndex, @RequestParam("pageSize") Integer pageSize, @RequestParam(required = false) List companyIDList, @RequestParam(required = false) String companyName, @RequestParam(required = false) String companyCode, @RequestParam(required = false) String recordStatus, @RequestParam(required = false) String regionCode, @RequestParam(required = false) String streetCode ) throws Exception { PageInfo result = companyService.getList(pageIndex, pageSize, companyIDList, companyName, companyCode, recordStatus, regionCode, streetCode, null, null); 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> rowDatas = new ArrayList(); for (CompanyVo item : result.getList()) { List row = new ArrayList(); String recordName = item.recordStatus == 1 ? "在营" : "关闭"; ++i; row.add(i); row.add(item.companyName); row.add(item.regionName); row.add(item.streetName); row.add(item.companyCode); row.add(recordName); row.add(item.insuredCount); row.add(item.companyModelType); row.add(item.postCount); row.add(item.createUserName); row.add(dateUtils.dateToStr(item.createTime)); rowDatas.add(row); } data.setRows(rowDatas); excelHelper.exportExcel(response, data); return null; } } @PostMapping("/importCompany") public BaseResponse importCompany(@RequestBody List data) { List result = companyService.importCompany(data, accountService.getLoginUserID()); if (result != null && result.size() > 0) { return RespGenerstor.fail(BaseErrorEnum.IMPORT_DATA_ERROR, result); } else { return RespGenerstor.success(true); } } @PostMapping("/saveAppCompanyPost") public BaseResponse saveAppCompanyPost(@RequestBody AppCompanyPostVo companyPostVo){ var result = companyService.saveAppCompanyPost(companyPostVo, accountService.getLoginUserID()); return RespGenerstor.success(result); } }