JobUserServiceImpl.java 16 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364
  1. package com.hz.employmentsite.services.impl.jobUserManager;
  2. import com.github.pagehelper.PageHelper;
  3. import com.github.pagehelper.PageInfo;
  4. import com.hz.employmentsite.filter.exception.BaseException;
  5. import com.hz.employmentsite.mapper.PcEducationMapper;
  6. import com.hz.employmentsite.mapper.PcExperienceMapper;
  7. import com.hz.employmentsite.mapper.PcJobuserMapper;
  8. import com.hz.employmentsite.mapper.PcJobhuntMapper;
  9. import com.hz.employmentsite.mapper.PcPostMapper;
  10. import com.hz.employmentsite.mapper.cquery.JobUserCQuery;
  11. import com.hz.employmentsite.model.*;
  12. import com.hz.employmentsite.services.service.jobUserManager.JobUserService;
  13. import com.hz.employmentsite.util.StringUtils;
  14. import com.hz.employmentsite.vo.jobUserManager.JobUserVo;
  15. import org.springframework.beans.factory.annotation.Autowired;
  16. import org.springframework.stereotype.Service;
  17. import java.text.ParseException;
  18. import java.text.SimpleDateFormat;
  19. import java.util.ArrayList;
  20. import java.util.Date;
  21. import java.util.List;
  22. import java.util.UUID;
  23. @Service("JobUserService")
  24. public class JobUserServiceImpl implements JobUserService {
  25. @Autowired
  26. private JobUserCQuery jobUserCQuery;
  27. @Autowired
  28. private StringUtils stringUtils;
  29. @Autowired
  30. private PcEducationMapper pcEducationMapper;
  31. @Autowired
  32. private PcJobuserMapper pcJobuserMapper;
  33. @Autowired
  34. private PcExperienceMapper pcExperienceMapper;
  35. @Autowired
  36. private PcJobhuntMapper pcJobhuntMapper;
  37. @Autowired
  38. private PcPostMapper pcPostMapper;
  39. @Override
  40. public PageInfo<JobUserVo> getList(Integer pageIndex, Integer pageSize, List<String> jobUserIDList, String name, String siteId, String jobStatus, Integer sexId, Integer educationTypeId, Integer emphasisTypeId) {
  41. PageHelper.startPage(pageIndex, pageSize);
  42. List<JobUserVo> list = jobUserCQuery.selectJobUserList(stringUtils.ListToInSql(jobUserIDList), name, siteId, jobStatus, sexId, educationTypeId, emphasisTypeId);
  43. PageInfo<JobUserVo> result = new PageInfo(list);
  44. return result;
  45. }
  46. @Override
  47. public List<SelectProps> getDataList() {
  48. var dataList = getList(1,99999,null,null,null,null,null,null,null).getList();
  49. List<SelectProps> dataResult = new ArrayList<>();
  50. for (var item: dataList) {
  51. SelectProps itemResult = new SelectProps();
  52. itemResult.setText(item.getName());
  53. itemResult.setValue(item.getJobUserID());
  54. dataResult.add(itemResult);
  55. }
  56. return dataResult;
  57. }
  58. @Override
  59. public JobUserVo getDataById(String id) {
  60. List<String> ids = new ArrayList<>();
  61. if (stringUtils.IsNullOrEmpty(id)) {
  62. return null;
  63. }else{
  64. ids.add(id);
  65. }
  66. return jobUserCQuery.selectJobUserList(stringUtils.ListToInSql(ids), null, null, null, null, null, null).stream().findFirst().orElse(null);
  67. }
  68. @Override
  69. public List<PcEducation> getJobUserEducationList(String jobuserID) {
  70. PcEducationExample exp = new PcEducationExample();
  71. PcEducationExample.Criteria cro = exp.or();
  72. cro.andJobuserIDEqualTo(jobuserID);
  73. List<PcEducation> educationList = pcEducationMapper.selectByExample(exp);
  74. return educationList;
  75. }
  76. @Override
  77. public List<PcExperience> getJobUserPcExperienceList(String jobuserID) {
  78. PcExperienceExample exp = new PcExperienceExample();
  79. PcExperienceExample.Criteria cro = exp.or();
  80. cro.andJobuserIDEqualTo(jobuserID);
  81. List<PcExperience> educationList = pcExperienceMapper.selectByExample(exp);
  82. return educationList;
  83. }
  84. @Override
  85. public List<PcPost> getUserHuntList(String jobuserID) {
  86. PcJobhuntExample huntExp = new PcJobhuntExample();
  87. PcJobhuntExample.Criteria huntCro = huntExp.or();
  88. huntCro.andJobUserIDEqualTo(jobuserID);
  89. List<PcJobhunt> jobHuntList = pcJobhuntMapper.selectByExample(huntExp);
  90. List<String> professionIDList = new ArrayList<>();
  91. if (jobHuntList.size()>0){
  92. jobHuntList.stream().forEach(item->{
  93. professionIDList.add(item.getProfessionID());
  94. });
  95. PcPostExample postExp = new PcPostExample();
  96. PcPostExample.Criteria postCro = postExp.or();
  97. postCro.andPostIDIn(professionIDList);
  98. List<PcPost> curPostList = pcPostMapper.selectByExample(postExp);
  99. return curPostList;
  100. }else{
  101. return null;
  102. }
  103. }
  104. private int deleteEducation(List<String> ids) {
  105. int educationRows = 0;
  106. PcEducationExample expEducation = new PcEducationExample();
  107. PcEducationExample.Criteria croEducation = expEducation.or();
  108. croEducation.andJobuserIDIn(ids);
  109. educationRows = pcEducationMapper.deleteByExample(expEducation);
  110. return educationRows;
  111. }
  112. private int deleteExperience(List<String> ids) {
  113. int experienceRows = 0;
  114. PcExperienceExample expExperi = new PcExperienceExample();
  115. PcExperienceExample.Criteria croExperi = expExperi.or();
  116. croExperi.andJobuserIDIn(ids);
  117. experienceRows = pcExperienceMapper.deleteByExample(expExperi);
  118. return experienceRows;
  119. }
  120. @Override
  121. public int delete(List<String> ids) {
  122. deleteEducation(ids);
  123. deleteExperience(ids);
  124. int result = 0;
  125. for(String curJobUserID: ids){
  126. PcJobhuntExample jobHuntExample = new PcJobhuntExample();
  127. jobHuntExample.or().andJobUserIDEqualTo(curJobUserID);
  128. var curJobUserHuntList = pcJobhuntMapper.selectByExample(jobHuntExample).stream().toList();
  129. if( curJobUserHuntList != null && curJobUserHuntList.size()>0){
  130. throw new BaseException("10004","所选求职人员已有关联的求职意向,不允许删除!");
  131. }else{
  132. PcJobuserExample jobuserExp = new PcJobuserExample();
  133. jobuserExp.or().andJobuserIDIn(ids);
  134. result += pcJobuserMapper.deleteByExample(jobuserExp);
  135. }
  136. }
  137. return result;
  138. }
  139. @Override
  140. public int save(JobUserVo data, String userId) {
  141. int result = 0;
  142. PcJobuser dbData = pcJobuserMapper.selectByPrimaryKey(data.getJobUserID());
  143. if (dbData == null) {
  144. dbData = new PcJobuser();
  145. dbData.setJobuserID(data.getJobUserID());
  146. dbData.setSiteID(data.getSiteID());
  147. dbData.setIdentityNumber(data.getIdentityNumber());
  148. dbData.setName(data.getName());
  149. dbData.setPyName(data.getPyName());
  150. dbData.setEngName(data.getEngName());
  151. dbData.setJobStatusID(data.getJobStatusID());
  152. dbData.setSex(data.getSex());
  153. dbData.setNation(data.getNation());
  154. dbData.setPoliticsStatusID(data.getPoliticsStatusID());
  155. dbData.setBirthplace(data.getBirthPlace());
  156. dbData.setBirthDay(data.getBirthDay());
  157. dbData.setFamilyNatureID(data.getFamilyNatureID());
  158. dbData.setFamilyAddress(data.getFamilyAddress());
  159. dbData.setCultureRank(data.getCultureRank());
  160. dbData.setHealthID(data.getHealthID());
  161. dbData.setHeight(data.getHeight());
  162. dbData.setBloodTypeID(data.getBloodTypeID());
  163. dbData.setVision(data.getVision());
  164. dbData.setWeight(data.getWeight());
  165. dbData.setMaritalStatusID(data.getMaritalStatusID());
  166. dbData.setProvinceCode(data.getProvinceCode());
  167. dbData.setRegionCode(data.getRegionCode());
  168. dbData.setStreetCode(data.getStreetCode());
  169. dbData.setUserName(data.getUserName());
  170. dbData.setUserMobile(data.getUserMobile());
  171. dbData.setAddress(data.getAddress());
  172. dbData.setPostalCode(data.getPostalCode());
  173. dbData.setEmail(data.getEmail());
  174. dbData.setHobby(data.getHobby());
  175. dbData.setKeyPersonTypeID(data.getKeyPersonTypeID());
  176. dbData.setPersonalSkills(data.getPersonalSkills());
  177. dbData.setCreateTime(new Date());
  178. dbData.setCreateUserID(userId);
  179. result = pcJobuserMapper.insert(dbData);
  180. } else {
  181. dbData.setJobuserID(data.getJobUserID());
  182. dbData.setSiteID(data.getSiteID());
  183. dbData.setIdentityNumber(data.getIdentityNumber());
  184. dbData.setName(data.getName());
  185. dbData.setPyName(data.getPyName());
  186. dbData.setEngName(data.getEngName());
  187. dbData.setSex(data.getSex());
  188. dbData.setJobStatusID(data.getJobStatusID());
  189. dbData.setNation(data.getNation());
  190. dbData.setPoliticsStatusID(data.getPoliticsStatusID());
  191. dbData.setBirthplace(data.getBirthPlace());
  192. dbData.setBirthDay(data.getBirthDay());
  193. dbData.setFamilyNatureID(data.getFamilyNatureID());
  194. dbData.setFamilyAddress(data.getFamilyAddress());
  195. dbData.setCultureRank(data.getCultureRank());
  196. dbData.setHealthID(data.getHealthID());
  197. dbData.setHeight(data.getHeight());
  198. dbData.setBloodTypeID(data.getBloodTypeID());
  199. dbData.setVision(data.getVision());
  200. dbData.setWeight(data.getWeight());
  201. dbData.setMaritalStatusID(data.getMaritalStatusID());
  202. dbData.setProvinceCode(data.getProvinceCode());
  203. dbData.setRegionCode(data.getRegionCode());
  204. dbData.setStreetCode(data.getStreetCode());
  205. dbData.setUserName(data.getUserName());
  206. dbData.setUserMobile(data.getUserMobile());
  207. dbData.setAddress(data.getAddress());
  208. dbData.setPostalCode(data.getPostalCode());
  209. dbData.setEmail(data.getEmail());
  210. dbData.setHobby(data.getHobby());
  211. dbData.setKeyPersonTypeID(data.getKeyPersonTypeID());
  212. dbData.setPersonalSkills(data.getPersonalSkills());
  213. dbData.setModifyTime(new Date());
  214. dbData.setModifyUserID(userId);
  215. result = pcJobuserMapper.updateByPrimaryKeySelective(dbData);
  216. }
  217. if (result >= 1) {
  218. SimpleDateFormat dateFormat = new SimpleDateFormat("yyyy-MM-dd");
  219. String jobUserId = dbData.getJobuserID();
  220. List<String> ids = new ArrayList<>();
  221. ids.add(jobUserId);
  222. deleteEducation(ids);
  223. deleteExperience(ids);
  224. data.getJobEducation().stream().forEach(x -> {
  225. PcEducation education = new PcEducation();
  226. education.setEducationID(UUID.randomUUID().toString());
  227. education.setJobuserID(jobUserId);
  228. education.setCultureRank(Integer.parseInt(x.get("cultureRank") + ""));
  229. education.setSchoolName(x.get("schoolName").toString());
  230. try {
  231. education.setSchoolTime(dateFormat.parse(x.get("schoolTime").toString()));
  232. education.setOverTime(dateFormat.parse(x.get("overTime").toString()));
  233. } catch (ParseException e) {
  234. e.printStackTrace();
  235. }
  236. education.setMajor(x.get("major").toString());
  237. education.setCreateTime(new Date());
  238. education.setCreateUserID(userId);
  239. pcEducationMapper.insert(education);
  240. });
  241. data.getJobExperience().stream().forEach(x -> {
  242. PcExperience experience = new PcExperience();
  243. experience.setExperienceID(UUID.randomUUID().toString());
  244. experience.setJobuserID(jobUserId);
  245. try {
  246. experience.setStartTime(dateFormat.parse(x.get("startTime").toString()));
  247. experience.setEndTime(dateFormat.parse(x.get("endTime").toString()));
  248. } catch (ParseException e) {
  249. e.printStackTrace();
  250. }
  251. experience.setDuties(x.get("duties").toString());
  252. experience.setWorkAddress(x.get("workAddress").toString());
  253. experience.setCreateTime(new Date());
  254. experience.setCreateUserID(userId);
  255. pcExperienceMapper.insert(experience);
  256. });
  257. }
  258. return result;
  259. }
  260. @Override
  261. public int baseInfoSave(JobUserVo data, String userId) {
  262. int result = 0;
  263. PcJobuser dbData = pcJobuserMapper.selectByPrimaryKey(data.getJobUserID());
  264. if (dbData == null) {
  265. dbData = new PcJobuser();
  266. dbData.setJobuserID(data.getJobUserID());
  267. dbData.setSiteID(data.getSiteID());
  268. dbData.setIdentityNumber(data.getIdentityNumber());
  269. dbData.setName(data.getName());
  270. dbData.setPyName(data.getPyName());
  271. dbData.setEngName(data.getEngName());
  272. dbData.setJobStatusID(data.getJobStatusID());
  273. dbData.setSex(data.getSex());
  274. dbData.setNation(data.getNation());
  275. dbData.setPoliticsStatusID(data.getPoliticsStatusID());
  276. dbData.setBirthplace(data.getBirthPlace());
  277. dbData.setBirthDay(data.getBirthDay());
  278. dbData.setFamilyNatureID(data.getFamilyNatureID());
  279. dbData.setFamilyAddress(data.getFamilyAddress());
  280. dbData.setCultureRank(data.getCultureRank());
  281. dbData.setHealthID(data.getHealthID());
  282. dbData.setHeight(data.getHeight());
  283. dbData.setBloodTypeID(data.getBloodTypeID());
  284. dbData.setVision(data.getVision());
  285. dbData.setWeight(data.getWeight());
  286. dbData.setMaritalStatusID(data.getMaritalStatusID());
  287. dbData.setProvinceCode(data.getProvinceCode());
  288. dbData.setRegionCode(data.getRegionCode());
  289. dbData.setStreetCode(data.getStreetCode());
  290. dbData.setUserName(data.getUserName());
  291. dbData.setUserMobile(data.getUserMobile());
  292. dbData.setAddress(data.getAddress());
  293. dbData.setPostalCode(data.getPostalCode());
  294. dbData.setEmail(data.getEmail());
  295. dbData.setHobby(data.getHobby());
  296. dbData.setKeyPersonTypeID(data.getKeyPersonTypeID());
  297. dbData.setPersonalSkills(data.getPersonalSkills());
  298. dbData.setCreateTime(new Date());
  299. dbData.setCreateUserID(userId);
  300. result = pcJobuserMapper.insert(dbData);
  301. } else {
  302. dbData.setJobuserID(data.getJobUserID());
  303. dbData.setSiteID(data.getSiteID());
  304. dbData.setIdentityNumber(data.getIdentityNumber());
  305. dbData.setName(data.getName());
  306. dbData.setPyName(data.getPyName());
  307. dbData.setEngName(data.getEngName());
  308. dbData.setSex(data.getSex());
  309. dbData.setJobStatusID(data.getJobStatusID());
  310. dbData.setNation(data.getNation());
  311. dbData.setPoliticsStatusID(data.getPoliticsStatusID());
  312. dbData.setBirthplace(data.getBirthPlace());
  313. dbData.setBirthDay(data.getBirthDay());
  314. dbData.setFamilyNatureID(data.getFamilyNatureID());
  315. dbData.setFamilyAddress(data.getFamilyAddress());
  316. dbData.setCultureRank(data.getCultureRank());
  317. dbData.setHealthID(data.getHealthID());
  318. dbData.setHeight(data.getHeight());
  319. dbData.setBloodTypeID(data.getBloodTypeID());
  320. dbData.setVision(data.getVision());
  321. dbData.setWeight(data.getWeight());
  322. dbData.setMaritalStatusID(data.getMaritalStatusID());
  323. dbData.setProvinceCode(data.getProvinceCode());
  324. dbData.setRegionCode(data.getRegionCode());
  325. dbData.setStreetCode(data.getStreetCode());
  326. dbData.setUserName(data.getUserName());
  327. dbData.setUserMobile(data.getUserMobile());
  328. dbData.setAddress(data.getAddress());
  329. dbData.setPostalCode(data.getPostalCode());
  330. dbData.setEmail(data.getEmail());
  331. dbData.setHobby(data.getHobby());
  332. dbData.setKeyPersonTypeID(data.getKeyPersonTypeID());
  333. dbData.setPersonalSkills(data.getPersonalSkills());
  334. dbData.setModifyTime(new Date());
  335. dbData.setModifyUserID(userId);
  336. result = pcJobuserMapper.updateByPrimaryKeySelective(dbData);
  337. }
  338. return result;
  339. }
  340. }