package cn.com.goldenwater.dcproj.controller.tac; import cn.com.goldenwater.dcproj.dto.TacCountDto; import cn.com.goldenwater.dcproj.model.TacExprRcmm; import cn.com.goldenwater.dcproj.param.TacExprRcmmParam; import cn.com.goldenwater.dcproj.service.OlBisInspOrgService; import cn.com.goldenwater.dcproj.service.TacExprRcmmService; import cn.com.goldenwater.core.web.BaseController; import cn.com.goldenwater.core.web.BaseResponse; import cn.com.goldenwater.dcproj.utils.AdLevelUtil; import cn.com.goldenwater.dcproj.utils.InspUtils; import cn.com.goldenwater.dcproj.utils.expExcel.ExportUtil; import cn.com.goldenwater.id.util.UuidUtil; import io.swagger.annotations.Api; import io.swagger.annotations.ApiOperation; import io.swagger.annotations.ApiParam; import org.apache.commons.collections.map.HashedMap; import org.apache.commons.lang3.StringUtils; import com.github.pagehelper.PageInfo; import org.slf4j.Logger; import org.slf4j.LoggerFactory; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.beans.factory.annotation.Value; import org.springframework.web.bind.annotation.PathVariable; import org.springframework.web.bind.annotation.RequestBody; import org.springframework.web.bind.annotation.RequestMapping; import org.springframework.web.bind.annotation.RequestMethod; import org.springframework.web.bind.annotation.RequestParam; import org.springframework.web.bind.annotation.RestController; import org.springframework.web.multipart.MultipartFile; import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpServletResponse; import java.io.File; import java.io.IOException; import java.util.ArrayList; import java.util.Date; import java.util.List; import java.util.Map; import static cn.com.goldenwater.dcproj.utils.FormatFieldUtil.*; /** * @author lune * @date 2019-11-13 */ @Api(value = "TAC 专家推荐名单管理", tags = "TAC 专家推荐名单管理") @RestController @RequestMapping("/tac/expr/rcmm") public class TacExprRcmmController extends BaseController { private Logger logger = LoggerFactory.getLogger(getClass()); @Autowired private TacExprRcmmService tacExprRcmmService; @Value("${export.templatePath}") private String templatePath; @Autowired private OlBisInspOrgService olBisInspOrgService; @ApiOperation(value = "添加/修改专家推荐名单") @RequestMapping(value = "", method = RequestMethod.POST) public BaseResponse insert(@ApiParam(name = "tacExprRcmm", value = "TacExprRcmm", required = true) @RequestBody TacExprRcmm tacExprRcmm) { if (StringUtils.isBlank(tacExprRcmm.getId())) { tacExprRcmm.setIntm(new Date()); tacExprRcmm.setUptm(new Date()); String uuid = UuidUtil.uuid(); // 生成uuid tacExprRcmm.setId(uuid); tacExprRcmmService.insert(tacExprRcmm); } else { tacExprRcmm.setUptm(new Date()); tacExprRcmmService.update(tacExprRcmm); } return buildSuccessResponse(tacExprRcmm); } @ApiOperation(value = "根据ID删除专家推荐名单") @RequestMapping(value = "/del/{id}", method = RequestMethod.GET) public BaseResponse delete(@ApiParam(name = "id", value = "id", required = true) @PathVariable String id) { int ret = tacExprRcmmService.delete(id); return buildSuccessResponse(); } @ApiOperation(value = "根据ID获取专家推荐名单(单表)") @RequestMapping(value = "/{id}", method = RequestMethod.GET) public BaseResponse get(@ApiParam(name = "id", value = "id", required = true) @PathVariable String id) { TacExprRcmm tacExprRcmm = tacExprRcmmService.get(id); return buildSuccessResponse(tacExprRcmm); } @ApiOperation(value = "获取专家推荐名单(列表所有)") @RequestMapping(value = "/list", method = RequestMethod.POST) public BaseResponse> list(@ApiParam(name = "tacExprRcmmParam", value = "tacExprRcmmParam", required = true) @RequestBody TacExprRcmmParam tacExprRcmmParam) { List tacExprRcmmList = tacExprRcmmService.findList(tacExprRcmmParam); return buildSuccessResponse(tacExprRcmmList); } @ApiOperation(value = "获取专家推荐名单(列表--分页)") @RequestMapping(value = "/page", method = RequestMethod.POST) public BaseResponse> page(@ApiParam(name = "tacExprRcmmParam", value = "tacExprRcmmParam", required = true) @RequestBody TacExprRcmmParam tacExprRcmmParam) { if (StringUtils.isNotBlank(tacExprRcmmParam.getState()) && StringUtils.isNotBlank(tacExprRcmmParam.getIsAppro())) { if ("0".equals(tacExprRcmmParam.getState())) { return buildSuccessResponse(new PageInfo<>()); } else if ("1".equals(tacExprRcmmParam.getState())) { tacExprRcmmParam.setState(tacExprRcmmParam.getIsAppro()); } } PageInfo tacExprRcmmList = tacExprRcmmService.findPageInfo(tacExprRcmmParam); return buildSuccessResponse(tacExprRcmmList); } @ApiOperation(value = "导出基本信息") @RequestMapping(value = "/downRcmmExcel", method = RequestMethod.GET) public BaseResponse downRcmmExcel(TacExprRcmmParam tacExprRcmmParam, HttpServletResponse response) { List tacExprRcmmList = tacExprRcmmService.findList(tacExprRcmmParam); try { if (tacExprRcmmList.size() > 0) { fieldFormat(tacExprRcmmList); List> map = listToMap(tacExprRcmmList); ExportUtil.download(response, map, templatePath + File.separator + "rcmmList.xls"); } else { ExportUtil.download(response, new ArrayList>(), templatePath + File.separator + "rcmmList.xls"); } } catch (IOException e) { return buildFailResponse(); } return buildSuccessResponse(); } private List> listToMap(List list) { List> mapList = new ArrayList<>(); if (list == null || list.size() == 0) { return mapList; } list.forEach(tacExprRcmm -> { Map map = ExportUtil.objToMap(tacExprRcmm, true); if (map != null) { mapList.add(map); } }); return mapList; } private void fieldFormat(List list) { for (TacExprRcmm workerB : list) { workerB.setGroupType(groupFormat(workerB.getGroupType())); workerB.setRoleType(roleFormat(workerB.getRoleType())); workerB.setEducation(educationFormat(workerB.getEducation())); workerB.setUnitRanks(unitRanksFormat(workerB.getUnitRanks())); workerB.setTitles(titlesFormat(workerB.getTitles())); workerB.setIsOffice(commonFormat(workerB.getIsOffice())); workerB.setIsTraining(commonFormat(workerB.getIsTraining())); } } @ApiOperation(value = "导入人员") @RequestMapping(value = "insertList", method = RequestMethod.POST) public BaseResponse> insertList(MultipartFile file, TacExprRcmmParam tacExprRcmmParam, HttpServletRequest request) { tacExprRcmmParam.setProvince(olBisInspOrgService.getRlProvince(getCurrentOrgId())); Map map = tacExprRcmmService.insertList(file, tacExprRcmmParam); return buildSuccessResponse(map); } @ApiOperation(value = "批量关联简历") @RequestMapping(value = "/uploadBio", method = RequestMethod.POST) public BaseResponse uploadBip(@RequestParam("file") MultipartFile file, TacExprRcmmParam tacExprRcmmParam) { try { tacExprRcmmParam.setProvince(olBisInspOrgService.getRlProvince(getCurrentOrgId())); int a = tacExprRcmmService.uploadBio(file, tacExprRcmmParam); } catch (Exception e) { e.printStackTrace(); return buildFailResponse("上传失败"); } return buildSuccessResponse(); } @ApiOperation(value = "获取推荐的人员信息列表") @RequestMapping(value = "/getRcmmList", method = RequestMethod.POST) public BaseResponse> getRcmmList(@RequestBody TacExprRcmmParam tacExprRcmmParam, HttpServletResponse response) { tacExprRcmmParam.setOrgCode(InspUtils.setOrgIds(tacExprRcmmParam.getOrgCode())); tacExprRcmmParam.setWorkAd(InspUtils.setOrgIds(tacExprRcmmParam.getWorkAd())); tacExprRcmmParam.setRoleType(InspUtils.setOrgIds(tacExprRcmmParam.getRoleType())); tacExprRcmmParam.setRcmmIds(InspUtils.setOrgIds(tacExprRcmmParam.getRcmmIds())); List list = null; if (StringUtils.isNotBlank(tacExprRcmmParam.getState()) && StringUtils.isNotBlank(tacExprRcmmParam.getIsAppro())) { if ("0".equals(tacExprRcmmParam.getState())) { list = new ArrayList<>(); } else if ("1".equals(tacExprRcmmParam.getState())) { tacExprRcmmParam.setState(tacExprRcmmParam.getIsAppro()); tacExprRcmmParam.setState(InspUtils.setOrgIds(tacExprRcmmParam.getState())); list = tacExprRcmmService.getRcmmList(tacExprRcmmParam); } } else { tacExprRcmmParam.setState(InspUtils.setOrgIds(tacExprRcmmParam.getState())); list = tacExprRcmmService.getRcmmList(tacExprRcmmParam); } if ("1".equals(tacExprRcmmParam.getIsExport())) { try { if (list.size() > 0) { fieldFormat(list); List> map = listToMap(list); ExportUtil.download(response, map, templatePath + File.separator + "rcmmList.xls"); } else { ExportUtil.download(response, new ArrayList>(), templatePath + File.separator + "rcmmList.xls"); } } catch (IOException e) { return buildFailResponse(); } } return buildSuccessResponse(list); } @ApiOperation(value = "获取推荐的人员信息列表") @RequestMapping(value = "/getRcmmPage", method = RequestMethod.POST) public BaseResponse> getRcmmPage(@RequestBody TacExprRcmmParam tacExprRcmmParam, HttpServletResponse response) { tacExprRcmmParam.setOrgCode(InspUtils.setOrgIds(tacExprRcmmParam.getOrgCode())); tacExprRcmmParam.setWorkAd(InspUtils.setOrgIds(tacExprRcmmParam.getWorkAd())); tacExprRcmmParam.setProvince(AdLevelUtil.getAddvcd(olBisInspOrgService.getRlProvince(getCurrentOrgId()))); tacExprRcmmParam.setRoleType(InspUtils.setOrgIds(tacExprRcmmParam.getRoleType())); tacExprRcmmParam.setState(InspUtils.setOrgIds(tacExprRcmmParam.getState())); if (tacExprRcmmParam.getRcmms() != null && tacExprRcmmParam.getRcmms().size() > 0) { StringBuilder sb = new StringBuilder(""); String splitChar = "'"; tacExprRcmmParam.getRcmms().forEach(rcmm -> { sb.append(splitChar).append(rcmm.getId()).append(splitChar).append(","); }); if (sb.length() > 0) { tacExprRcmmParam.setRcmmIds(sb.substring(0, sb.length() - 1)); } } if ("1".equals(tacExprRcmmParam.getIsExport())) { try { List list = tacExprRcmmService.getRcmmList(tacExprRcmmParam); if (list.size() > 0) { fieldFormat(list); if (StringUtils.isNotBlank(tacExprRcmmParam.getWorkAd()) || StringUtils.isNotBlank(tacExprRcmmParam.getOrgCode())) { Map> map = listToMap(list, tacExprRcmmParam.getWorkAd(), tacExprRcmmParam.getOrgCode()); List columns = new ArrayList<>(); columns.add("id"); columns.add("depCode"); columns.add("orgCode"); columns.add("state"); columns.add("persId"); columns.add("intm"); columns.add("uptm"); columns.add("dataStat"); ExportUtil.exportExcel(map, response, "人员列表", columns); } else { List> map = listToMap(list); ExportUtil.download(response, map, templatePath + File.separator + "rcmmList.xls"); } } else { ExportUtil.download(response, new ArrayList>(), templatePath + File.separator + "rcmmList.xls"); } } catch (IOException e) { return buildFailResponse(); } } PageInfo pageInfo = tacExprRcmmService.getRcmmPage(tacExprRcmmParam); return buildSuccessResponse(pageInfo); } private Map> listToMap(List list, String workAd, String orgCode) { Map> result = new HashedMap(); if (list == null) { return result; } if (list.size() > 0) { list.forEach(rcmm -> { StringBuilder sb = new StringBuilder(); if (StringUtils.isNotBlank(workAd) && StringUtils.isNotBlank(orgCode)) { sb.append(rcmm.getOrgNm()).append("(").append(rcmm.getWorkAdNm()).append(")"); } else if (StringUtils.isNotBlank(workAd)) { sb.append(rcmm.getWorkDpNm()); } else if (StringUtils.isNotBlank(orgCode)) { sb.append(rcmm.getOrgNm()); } if (result.containsKey(sb.toString())) { result.get(sb.toString()).add(rcmm); } else { List rcmmList = new ArrayList<>(); rcmmList.add(rcmm); result.put(sb.toString(), rcmmList); } }); } return result; } @ApiOperation(value = "移入推荐库") @RequestMapping(value = "/insertRcmmToWorker", method = RequestMethod.POST) public BaseResponse insertRcmmToWorkerList(@RequestBody TacExprRcmmParam tacExprRcmmParam) { tacExprRcmmParam.setProvince(olBisInspOrgService.getRlProvince(getCurrentOrgId())); int a = tacExprRcmmService.insertRcmmToWorkerList(tacExprRcmmParam); return buildSuccessResponse(); } @ApiOperation(value = "回绝接口") @RequestMapping(value = "/removeRvmmList", method = RequestMethod.POST) public BaseResponse removeRvmmList(@RequestBody TacExprRcmmParam tacExprRcmmParam) { int a = tacExprRcmmService.removeRvmmList(tacExprRcmmParam); return buildSuccessResponse(); } @ApiOperation(value = "根据推荐时间获取人员列表") @RequestMapping(value = "/getRcmmListByTime", method = RequestMethod.POST) public BaseResponse> getRcmmListByTime(@RequestBody TacExprRcmmParam tacExprRcmmParam) { tacExprRcmmParam.setRoleType(InspUtils.setOrgIds(tacExprRcmmParam.getRoleType())); List list = tacExprRcmmService.getRcmmListByTime(tacExprRcmmParam); return buildSuccessResponse(list); } @ApiOperation("导出推荐人员列表") @RequestMapping(value = "/exportRcmmExcel", method = RequestMethod.POST) public BaseResponse exportRcmmExcel(@RequestBody TacExprRcmmParam tacExprRcmmParam, HttpServletResponse response) { try { if (tacExprRcmmParam.getRcmms()!= null) { fieldFormat(tacExprRcmmParam.getRcmms()); List> map = listToMap(tacExprRcmmParam.getRcmms()); ExportUtil.download(response,map,templatePath+ File.separator +"rcmmList.xls"); } else { ExportUtil.download(response,new ArrayList>(),templatePath+ File.separator +"rcmmList.xls"); } } catch (IOException e) { return buildFailResponse(); } return buildSuccessResponse(); } @ApiOperation(value = "根据职称统计人数") @RequestMapping(value = "/countRcmmByTitles", method = RequestMethod.POST) public BaseResponse> countRcmmByTitles(@RequestBody TacExprRcmmParam tacExprRcmmParam) { if (StringUtils.isNotBlank(tacExprRcmmParam.getState()) && StringUtils.isNotBlank(tacExprRcmmParam.getIsAppro())) { if ("0".equals(tacExprRcmmParam.getState())) { tacExprRcmmParam.setState("9"); } else { tacExprRcmmParam.setState(tacExprRcmmParam.getIsAppro()); } } else { if ("1".equals(tacExprRcmmParam.getState())) { tacExprRcmmParam.setState("1,2,3"); } if ("0".equals(tacExprRcmmParam.getIsAppro())) { tacExprRcmmParam.setState("3"); } else if ("1".equals(tacExprRcmmParam.getIsAppro())) { tacExprRcmmParam.setState("2"); } } tacExprRcmmParam.setState(InspUtils.setOrgIds(tacExprRcmmParam.getState())); List result = tacExprRcmmService.countRcmmByTitles(tacExprRcmmParam); return buildSuccessResponse(result); } @ApiOperation(value = "根据角色分类统计人数") @RequestMapping(value = "/countRcmmByRoleType", method = RequestMethod.POST) public BaseResponse> countRcmmByRoleType(@RequestBody TacExprRcmmParam tacExprRcmmParam) { if (StringUtils.isNotBlank(tacExprRcmmParam.getState()) && StringUtils.isNotBlank(tacExprRcmmParam.getIsAppro())) { if ("0".equals(tacExprRcmmParam.getState())) { tacExprRcmmParam.setState("9"); } else { if ("0".equals(tacExprRcmmParam.getIsAppro())) { tacExprRcmmParam.setState("3"); } else if ("1".equals(tacExprRcmmParam.getIsAppro())) { tacExprRcmmParam.setState("2"); } else { tacExprRcmmParam.setState(tacExprRcmmParam.getIsAppro()); } } } else { if ("1".equals(tacExprRcmmParam.getState())) { tacExprRcmmParam.setState("1,2,3"); } if ("0".equals(tacExprRcmmParam.getIsAppro())) { tacExprRcmmParam.setState("3"); } else if ("1".equals(tacExprRcmmParam.getIsAppro())) { tacExprRcmmParam.setState("2"); } } tacExprRcmmParam.setState(InspUtils.setOrgIds(tacExprRcmmParam.getState())); List result = tacExprRcmmService.countRcmmByRoleType(tacExprRcmmParam); return buildSuccessResponse(result); } @ApiOperation(value = "根据学历统计人数") @RequestMapping(value = "/countRcmmByEducation", method = RequestMethod.POST) public BaseResponse> countRcmmByEducation(@RequestBody TacExprRcmmParam tacExprRcmmParam) { if (StringUtils.isNotBlank(tacExprRcmmParam.getState()) && StringUtils.isNotBlank(tacExprRcmmParam.getIsAppro())) { if ("0".equals(tacExprRcmmParam.getState())) { tacExprRcmmParam.setState("9"); } else { if ("0".equals(tacExprRcmmParam.getIsAppro())) { tacExprRcmmParam.setState("3"); } else if ("1".equals(tacExprRcmmParam.getIsAppro())) { tacExprRcmmParam.setState("2"); } else { tacExprRcmmParam.setState(tacExprRcmmParam.getIsAppro()); } } } else { if ("1".equals(tacExprRcmmParam.getState())) { tacExprRcmmParam.setState("1,2,3"); } if ("0".equals(tacExprRcmmParam.getIsAppro())) { tacExprRcmmParam.setState("3"); } else if ("1".equals(tacExprRcmmParam.getIsAppro())) { tacExprRcmmParam.setState("2"); } } tacExprRcmmParam.setState(InspUtils.setOrgIds(tacExprRcmmParam.getState())); List result = tacExprRcmmService.countRcmmByEducation(tacExprRcmmParam); return buildSuccessResponse(result); } @ApiOperation(value = "根据在职情况统计人数") @RequestMapping(value = "/countRcmmByIsOffice", method = RequestMethod.POST) public BaseResponse> countRcmmByIsOffice(@RequestBody TacExprRcmmParam tacExprRcmmParam) { if (StringUtils.isNotBlank(tacExprRcmmParam.getState()) && StringUtils.isNotBlank(tacExprRcmmParam.getIsAppro())) { if ("0".equals(tacExprRcmmParam.getState())) { tacExprRcmmParam.setState("9"); } else { if ("0".equals(tacExprRcmmParam.getIsAppro())) { tacExprRcmmParam.setState("3"); } else if ("1".equals(tacExprRcmmParam.getIsAppro())) { tacExprRcmmParam.setState("2"); } else { tacExprRcmmParam.setState(tacExprRcmmParam.getIsAppro()); } } } else { if ("1".equals(tacExprRcmmParam.getState())) { tacExprRcmmParam.setState("1,2,3"); } if ("0".equals(tacExprRcmmParam.getIsAppro())) { tacExprRcmmParam.setState("3"); } else if ("1".equals(tacExprRcmmParam.getIsAppro())) { tacExprRcmmParam.setState("2"); } } tacExprRcmmParam.setState(InspUtils.setOrgIds(tacExprRcmmParam.getState())); List result = tacExprRcmmService.countRcmmByIsOffice(tacExprRcmmParam); return buildSuccessResponse(result); } }