PostServiceImpl.java 11 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232
  1. package com.hz.employmentsite.services.impl.companyService;
  2. import com.github.pagehelper.PageInfo;
  3. import com.hz.employmentsite.filter.exception.BaseException;
  4. import com.hz.employmentsite.mapper.PcCompanyMapper;
  5. import com.hz.employmentsite.mapper.PcPostMapper;
  6. import com.hz.employmentsite.mapper.cquery.PostCQuery;
  7. import com.hz.employmentsite.model.*;
  8. import com.hz.employmentsite.services.service.companyService.PostService;
  9. import com.hz.employmentsite.services.service.system.DictionaryService;
  10. import com.hz.employmentsite.util.StringUtils;
  11. import com.hz.employmentsite.vo.companyService.CompanyVo;
  12. import com.hz.employmentsite.vo.companyService.PostVo;
  13. import org.springframework.beans.factory.annotation.Autowired;
  14. import org.springframework.boot.SpringApplicationRunListener;
  15. import org.springframework.stereotype.Service;
  16. import java.util.ArrayList;
  17. import java.util.Date;
  18. import java.util.List;
  19. import java.util.UUID;
  20. import java.util.stream.Collectors;
  21. @Service("PostService")
  22. public class PostServiceImpl implements PostService {
  23. @Autowired
  24. private PostCQuery postCQuery;
  25. @Autowired
  26. private StringUtils stringUtils;
  27. @Autowired
  28. private PcPostMapper pcPostMapper;
  29. @Autowired
  30. private PcCompanyMapper companyMapper;
  31. @Autowired
  32. private DictionaryService dictionaryService;
  33. @Override
  34. public PageInfo<PostVo> getList(Integer page, Integer rows, String postID, String postName, Integer minCount, Integer maxCount, String companyName, String recordStatus, String WorkName) {
  35. List<PostVo> list = postCQuery.selectPostList(postID, postName, minCount, maxCount, companyName, recordStatus, WorkName);
  36. PageInfo<PostVo> result = new PageInfo(list);
  37. return result;
  38. }
  39. @Override
  40. public Integer save(PostVo data, String userId) {
  41. int result = 0;
  42. PcPost dbData = null;
  43. Boolean isExist = data.getPostID() != null;
  44. PcPostExample exp = new PcPostExample();
  45. PcPostExample.Criteria cro = exp.createCriteria();
  46. if (isExist) {
  47. cro.andPostIDEqualTo(data.getPostID());
  48. dbData = pcPostMapper.selectByExample(exp).stream().findFirst().orElse(null);
  49. }
  50. if (dbData == null) {
  51. dbData = new PcPost();
  52. dbData.setPostID(UUID.randomUUID().toString());
  53. dbData.setWorkCode(data.getWorkCode());
  54. dbData.setWorkName(data.getWorkName());
  55. dbData.setValidTime(data.getValidTime());
  56. dbData.setRecruitCount(data.getRecruitCount());
  57. dbData.setCompanyID(data.getCompanyID());
  58. dbData.setPostName(data.getPostName());
  59. dbData.setRecordStatus(data.getRecordStatus());
  60. dbData.setWorkNature(data.getWorkNature());
  61. dbData.setValidDay(data.getValidDay());
  62. dbData.setWorkYear(data.getWorkYear());
  63. dbData.setWorkNature(data.getWorkNature());
  64. dbData.setCultureRank(data.getCultureRank());
  65. dbData.setPostDesc(data.getPostDesc());
  66. dbData.setMaxSalary(data.getMaxSalary());
  67. dbData.setMinSalary(data.getMinSalary());
  68. dbData.setWelfare(data.getWelfare());
  69. dbData.setUserName(data.getUserName());
  70. dbData.setUserMobile(data.getUserMobile());
  71. dbData.setPostEmail(data.getPostEmail());
  72. dbData.setWorkTime(data.getWorkTime());
  73. dbData.setIsTrail(data.getIsTrail());
  74. dbData.setTrailtime(data.getTrailtime());
  75. dbData.setTrailMaxSalary(data.getTrailMaxSalary());
  76. dbData.setTrailMinSalary(data.getTrailMinSalary());
  77. dbData.setCreateTime(new Date());
  78. dbData.setCreateUserID(userId);
  79. result = pcPostMapper.insert(dbData);
  80. } else {
  81. dbData.setWorkCode(data.getWorkCode());
  82. dbData.setValidTime(data.getValidTime());
  83. dbData.setWorkName(data.getWorkName());
  84. dbData.setRecruitCount(data.getRecruitCount());
  85. dbData.setCompanyID(data.getCompanyID());
  86. dbData.setPostName(data.getPostName());
  87. dbData.setRecordStatus(data.getRecordStatus());
  88. dbData.setWorkNature(data.getWorkNature());
  89. dbData.setValidDay(data.getValidDay());
  90. dbData.setWorkYear(data.getWorkYear());
  91. dbData.setWorkNature(data.getWorkNature());
  92. dbData.setCultureRank(data.getCultureRank());
  93. dbData.setPostDesc(data.getPostDesc());
  94. dbData.setMaxSalary(data.getMaxSalary());
  95. dbData.setMinSalary(data.getMinSalary());
  96. dbData.setWelfare(data.getWelfare());
  97. dbData.setUserName(data.getUserName());
  98. dbData.setUserMobile(data.getUserMobile());
  99. dbData.setPostEmail(data.getPostEmail());
  100. dbData.setWorkTime(data.getWorkTime());
  101. dbData.setIsTrail(data.getIsTrail());
  102. dbData.setTrailtime(data.getTrailtime());
  103. dbData.setTrailMaxSalary(data.getTrailMaxSalary());
  104. dbData.setTrailMinSalary(data.getTrailMinSalary());
  105. dbData.setModifyTime(new Date());
  106. dbData.setModifyUserID(userId);
  107. result = pcPostMapper.updateByPrimaryKeySelective(dbData);
  108. }
  109. return result;
  110. }
  111. @Override
  112. public int delete(String id) {
  113. int result = 0;
  114. PcPostExample exp = new PcPostExample();
  115. PcPostExample.Criteria cro = exp.or();
  116. cro.andPostIDEqualTo(id);
  117. result = pcPostMapper.deleteByExample(exp);
  118. return result;
  119. }
  120. @Override
  121. public PostVo getDataById(String id) {
  122. if (stringUtils.IsNullOrEmpty(id)) {
  123. return null;
  124. }
  125. return postCQuery.selectPostList(id, null, null, null, null, null, null).stream().findFirst().orElse(null);
  126. }
  127. @Override
  128. public List<PostVo> importPost(List<PostVo> dataList, String userID) {
  129. if (dataList.size() <= 0)
  130. throw new BaseException("", "请添加导入数据!");
  131. //所属企业
  132. PcCompanyExample companyExp = new PcCompanyExample();
  133. companyExp.or().andRecordStatusEqualTo(1);
  134. List<PcCompany> companyList = companyMapper.selectByExample(companyExp);
  135. //文化程度
  136. List<SysDictionaryItem> dicDataList = dictionaryService.getDictionaryItemList("CultureLevel");
  137. List<PostVo> resultList = new ArrayList<>();
  138. dataList.forEach(item -> {
  139. String errorInfo = "";
  140. if (stringUtils.IsNullOrEmpty(item.postName))
  141. errorInfo += "请填写岗位名称!";
  142. if (stringUtils.IsNullOrEmpty(String.valueOf(item.validTime)) || item.validTime == null)
  143. errorInfo += "请填写有效开始时间!";
  144. if (stringUtils.IsNullOrEmpty(String.valueOf(item.validDay)) || item.validDay == 0)
  145. errorInfo += "请填写有效期(天)!";
  146. if (stringUtils.IsNullOrEmpty(item.recordStatusName))
  147. errorInfo += "请填写岗位状态!";
  148. else {
  149. if (item.recordStatusName.equals("启用")) item.recordStatus = 1;
  150. else item.recordStatus = 0;
  151. }
  152. if (stringUtils.IsNullOrEmpty(item.companyName))
  153. errorInfo += "请填写所属企业!";
  154. else {
  155. item.companyID = companyList.stream().filter(it -> it.getCompanyName().equals(item.getCompanyName().trim()))
  156. .findFirst().orElse(new PcCompany()).getCompanyID();
  157. if (item.companyID == null)
  158. errorInfo += "企业不存在!";
  159. }
  160. if (stringUtils.IsNullOrEmpty(item.workNature))
  161. errorInfo += "请填写工作性质!";
  162. if (item.workYear == null)
  163. errorInfo += "请填写工作年限!";
  164. if (stringUtils.IsNullOrEmpty(String.valueOf(item.recruitCount)) || item.recruitCount == null)
  165. errorInfo += "请填写招聘人数!";
  166. if (stringUtils.IsNullOrEmpty(item.cultureLevelName))
  167. errorInfo += "请填写文化程度!";
  168. else {
  169. item.cultureRank = dicDataList.stream().filter(it -> it.getName().equals(item.cultureLevelName.trim()))
  170. .findFirst().orElse(new SysDictionaryItem()).getValue();
  171. if (item.cultureRank == null || item.cultureRank == 0)
  172. errorInfo += "输入文化程度不存在!";
  173. }
  174. if (stringUtils.IsNullOrEmpty(String.valueOf(item.maxSalary)) || item.maxSalary == null)
  175. errorInfo += "请填写最高薪酬!";
  176. if (stringUtils.IsNullOrEmpty(String.valueOf(item.minSalary)) || item.minSalary == null)
  177. errorInfo += "请填写最低薪酬!";
  178. if (stringUtils.IsNullOrEmpty(item.welfare))
  179. errorInfo += "请填写福利待遇!";
  180. if (stringUtils.IsNullOrEmpty(item.userName))
  181. errorInfo += "请填写联系人!";
  182. if (stringUtils.IsNullOrEmpty(item.userMobile))
  183. errorInfo += "请填写联系电话!";
  184. if (stringUtils.IsNullOrEmpty(item.postEmail))
  185. errorInfo += "请填写邮箱!";
  186. if (stringUtils.IsNullOrEmpty(String.valueOf(item.workTime)) || item.workTime == 0 || item.workTime == null)
  187. errorInfo += "请填写工作时长!";
  188. if (stringUtils.IsNullOrEmpty(item.isTrailName))
  189. errorInfo += "请填写是否试用期!";
  190. else {
  191. if (item.isTrailName.trim().equals("是")) item.isTrail = true;
  192. else item.isTrail = false;
  193. }
  194. if (stringUtils.IsNullOrEmpty(String.valueOf(item.trailtime)) || item.trailtime == 0 || item.trailtime == null)
  195. errorInfo += "请填写试用期时长(月)!";
  196. if (stringUtils.IsNullOrEmpty(String.valueOf(item.trailMaxSalary)) || item.trailMaxSalary == null)
  197. errorInfo += "请填写试用期最高薪酬!";
  198. if (stringUtils.IsNullOrEmpty(String.valueOf(item.trailMinSalary)) || item.trailMinSalary == null)
  199. errorInfo += "请填写试用期最低薪酬!";
  200. if (stringUtils.IsNullOrEmpty(item.postDesc))
  201. errorInfo += "请填写岗位描述!";
  202. if (stringUtils.IsNullOrEmpty(errorInfo)) {
  203. resultList.add(item);
  204. } else {
  205. item.setErrorMessage(errorInfo);
  206. }
  207. });
  208. if (dataList.stream().filter(it -> !stringUtils.IsNullOrEmpty(it.errorMessage)).collect(Collectors.toList()).size() > 0)
  209. return dataList;
  210. resultList.forEach(item -> {
  211. save(item, userID);
  212. });
  213. return null;
  214. }
  215. }