JobUserServiceImpl.java 18 KB

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