PerServiceImpl.java 94 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182838485868788899091929394959697989910010110210310410510610710810911011111211311411511611711811912012112212312412512612712812913013113213313413513613713813914014114214314414514614714814915015115215315415515615715815916016116216316416516616716816917017117217317417517617717817918018118218318418518618718818919019119219319419519619719819920020120220320420520620720820921021121221321421521621721821922022122222322422522622722822923023123223323423523623723823924024124224324424524624724824925025125225325425525625725825926026126226326426526626726826927027127227327427527627727827928028128228328428528628728828929029129229329429529629729829930030130230330430530630730830931031131231331431531631731831932032132232332432532632732832933033133233333433533633733833934034134234334434534634734834935035135235335435535635735835936036136236336436536636736836937037137237337437537637737837938038138238338438538638738838939039139239339439539639739839940040140240340440540640740840941041141241341441541641741841942042142242342442542642742842943043143243343443543643743843944044144244344444544644744844945045145245345445545645745845946046146246346446546646746846947047147247347447547647747847948048148248348448548648748848949049149249349449549649749849950050150250350450550650750850951051151251351451551651751851952052152252352452552652752852953053153253353453553653753853954054154254354454554654754854955055155255355455555655755855956056156256356456556656756856957057157257357457557657757857958058158258358458558658758858959059159259359459559659759859960060160260360460560660760860961061161261361461561661761861962062162262362462562662762862963063163263363463563663763863964064164264364464564664764864965065165265365465565665765865966066166266366466566666766866967067167267367467567667767867968068168268368468568668768868969069169269369469569669769869970070170270370470570670770870971071171271371471571671771871972072172272372472572672772872973073173273373473573673773873974074174274374474574674774874975075175275375475575675775875976076176276376476576676776876977077177277377477577677777877978078178278378478578678778878979079179279379479579679779879980080180280380480580680780880981081181281381481581681781881982082182282382482582682782882983083183283383483583683783883984084184284384484584684784884985085185285385485585685785885986086186286386486586686786886987087187287387487587687787887988088188288388488588688788888989089189289389489589689789889990090190290390490590690790890991091191291391491591691791891992092192292392492592692792892993093193293393493593693793893994094194294394494594694794894995095195295395495595695795895996096196296396496596696796896997097197297397497597697797897998098198298398498598698798898999099199299399499599699799899910001001100210031004100510061007100810091010101110121013101410151016101710181019102010211022102310241025102610271028102910301031103210331034103510361037103810391040104110421043104410451046104710481049105010511052105310541055105610571058105910601061106210631064106510661067106810691070107110721073107410751076107710781079108010811082108310841085108610871088108910901091109210931094109510961097109810991100110111021103110411051106110711081109111011111112111311141115111611171118111911201121112211231124112511261127112811291130113111321133113411351136113711381139114011411142114311441145114611471148114911501151115211531154115511561157115811591160116111621163116411651166116711681169117011711172117311741175117611771178117911801181118211831184118511861187118811891190119111921193119411951196119711981199120012011202120312041205120612071208120912101211121212131214121512161217121812191220122112221223122412251226122712281229123012311232123312341235123612371238123912401241124212431244124512461247124812491250125112521253125412551256125712581259126012611262126312641265126612671268126912701271127212731274127512761277127812791280128112821283128412851286128712881289129012911292129312941295129612971298129913001301130213031304130513061307130813091310131113121313131413151316131713181319132013211322132313241325132613271328132913301331133213331334133513361337133813391340134113421343134413451346134713481349135013511352135313541355135613571358135913601361136213631364136513661367136813691370137113721373137413751376137713781379138013811382138313841385138613871388138913901391139213931394139513961397139813991400140114021403140414051406140714081409141014111412141314141415141614171418141914201421142214231424142514261427142814291430143114321433143414351436143714381439144014411442144314441445144614471448144914501451145214531454145514561457145814591460146114621463146414651466146714681469147014711472147314741475147614771478147914801481148214831484148514861487148814891490149114921493149414951496149714981499150015011502150315041505150615071508150915101511151215131514151515161517151815191520152115221523152415251526152715281529153015311532153315341535153615371538153915401541154215431544154515461547154815491550155115521553155415551556155715581559156015611562156315641565156615671568156915701571157215731574157515761577157815791580158115821583158415851586158715881589159015911592159315941595159615971598159916001601160216031604160516061607160816091610161116121613161416151616161716181619162016211622162316241625162616271628162916301631163216331634163516361637163816391640164116421643164416451646164716481649165016511652165316541655165616571658165916601661166216631664166516661667166816691670167116721673167416751676167716781679168016811682168316841685168616871688168916901691169216931694169516961697169816991700170117021703170417051706170717081709171017111712171317141715171617171718171917201721172217231724172517261727172817291730173117321733173417351736173717381739174017411742174317441745174617471748174917501751175217531754175517561757175817591760176117621763176417651766176717681769177017711772177317741775177617771778177917801781178217831784178517861787178817891790179117921793179417951796179717981799180018011802180318041805180618071808180918101811181218131814181518161817181818191820182118221823182418251826182718281829183018311832183318341835183618371838183918401841184218431844184518461847184818491850185118521853185418551856185718581859186018611862186318641865186618671868186918701871187218731874187518761877187818791880188118821883188418851886188718881889189018911892189318941895189618971898189919001901190219031904190519061907190819091910191119121913191419151916191719181919192019211922192319241925192619271928192919301931193219331934193519361937193819391940194119421943194419451946194719481949195019511952195319541955195619571958195919601961196219631964196519661967196819691970197119721973197419751976197719781979198019811982198319841985198619871988198919901991199219931994199519961997199819992000200120022003200420052006200720082009201020112012201320142015201620172018201920202021202220232024202520262027202820292030203120322033203420352036203720382039204020412042204320442045204620472048204920502051205220532054205520562057205820592060206120622063206420652066206720682069207020712072207320742075207620772078207920802081208220832084208520862087208820892090209120922093209420952096209720982099210021012102210321042105210621072108210921102111211221132114211521162117211821192120212121222123212421252126212721282129213021312132213321342135213621372138213921402141214221432144214521462147214821492150215121522153215421552156215721582159216021612162216321642165216621672168216921702171217221732174217521762177217821792180218121822183218421852186218721882189219021912192219321942195219621972198219922002201
  1. package com.sprivacy.pms.service.impl;
  2. import com.alibaba.fastjson.JSON;
  3. import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
  4. import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
  5. import com.sprivacy.pms.exception.PmsException;
  6. import com.sprivacy.pms.form.count.*;
  7. import com.sprivacy.pms.form.per.*;
  8. import com.sprivacy.pms.mapper.*;
  9. import com.sprivacy.pms.model.*;
  10. import com.sprivacy.pms.service.*;
  11. import com.sprivacy.pms.util.CompareUtils;
  12. import com.sprivacy.pms.util.DateUtils;
  13. import com.sprivacy.pms.util.ExportExcelUtil;
  14. import com.sprivacy.pms.util.TextUtils;
  15. import org.apache.commons.collections4.CollectionUtils;
  16. import org.apache.commons.lang3.StringUtils;
  17. import org.slf4j.Logger;
  18. import org.slf4j.LoggerFactory;
  19. import org.springframework.beans.factory.annotation.Autowired;
  20. import org.springframework.beans.factory.annotation.Value;
  21. import org.springframework.stereotype.Service;
  22. import org.springframework.transaction.annotation.Transactional;
  23. import java.io.IOException;
  24. import java.util.ArrayList;
  25. import java.util.HashMap;
  26. import java.util.List;
  27. import java.util.Map;
  28. /**
  29. * @author fanglang
  30. * @date 2018-11-01 13:29
  31. * @desc 人员业务实现类
  32. */
  33. @Service
  34. @Transactional(rollbackFor = PmsException.class)
  35. public class PerServiceImpl extends ServiceImpl<PerMapper, Per> implements PerService {
  36. private final static Logger log = LoggerFactory.getLogger(PerServiceImpl.class);
  37. @Value("${pms.common.saved-dir}")
  38. private String savedDir;
  39. @Value("${pms.common.model-dir}")
  40. private String modelDir;
  41. @Autowired
  42. private EduRecService eduRecService;
  43. @Autowired
  44. private WorkRecService workRecService;
  45. @Autowired
  46. private FamRelService famRelService;
  47. @Autowired
  48. private SocRelService socRelService;
  49. @Autowired
  50. private RewRecService rewRecService;
  51. @Autowired
  52. private PerMapper perMapper;
  53. @Autowired
  54. private EduRecMapper eduRecMapper;
  55. @Autowired
  56. private FamRelMapper famRelMapper;
  57. @Autowired
  58. private WorkRecMapper workRecMapper;
  59. @Autowired
  60. private RewRecMapper rewRecMapper;
  61. @Autowired
  62. private SocRelMapper socRelMapper;
  63. @Autowired
  64. private TempFileResultMapper tempFileResultMapper;
  65. @Autowired
  66. private BirthRemindMapper birthRemindMapper;
  67. @Autowired
  68. private DepartureRemindMapper departureRemindMapper;
  69. private static final int RELATION_TYPE_FAM = 1;
  70. private static final int RELATION_TYPE_SOC = 2;
  71. private static final int RELATION_TYPE_FRI = 3;
  72. /**
  73. * TODO 批量上传接口。
  74. * @param forms
  75. * @return
  76. * @throws IOException
  77. */
  78. @Override
  79. public List<Long> savePersonnelForms(List<PerForm> forms) throws IOException {
  80. log.info("savePersonnelForms>>>"+JSON.toJSONString(forms));
  81. List<Long> results = new ArrayList<>();
  82. if (null != forms && forms.size() > 0) {
  83. for (PerForm form : forms) {
  84. Map<String, Object> map = new HashMap<>();
  85. map.put("idNumber", form.getPer().getIdNumber());
  86. List<Per> pers = perMapper.countByParam(map);
  87. if (pers.size() > 0) {
  88. log.info("重复数据,不执行{" + form.getPer().getId() + "}入库操作。");
  89. results.add(-1L);
  90. } else {
  91. log.info("未重复数据,{" + form.getPer().getId() + "}已入库。");
  92. results.add(savePersonnelForm(form));
  93. }
  94. }
  95. }
  96. return results;
  97. }
  98. /**
  99. * TODO 入库方法。
  100. * @param form
  101. * @return
  102. * @throws IOException
  103. */
  104. @Override
  105. public long savePersonnelForm(PerForm form) throws IOException {
  106. log.info("savePersonnelForm>>>"+JSON.toJSONString(form));
  107. Per personnel = form.getPer();
  108. log.info("savePersonnelForm> 1 personnel>>"+personnel.getId());
  109. List<PerEduRec> eduRecords = form.getEduRecords();
  110. List<PerWorkRec> workRecords = form.getWorkRecords();
  111. List<PerFamRel> familyRelations = form.getFamRelations();
  112. List<PerSocRel> socialRelations = form.getSocRelations();
  113. List<PerRewRec> rewards = form.getRewRecords();
  114. personnel.setCreateTime(DateUtils.getCurrentFromatTime());
  115. if (null != form.getPer().getIdNumber() && !"".equals(form.getPer().getIdNumber()) && (form.getPer().getIdNumber().trim()).length() >= 18){
  116. String tempBirthStr = StringUtils.substring(form.getPer().getIdNumber(),6,14);
  117. String yearStr = StringUtils.substring(tempBirthStr,0,4);
  118. String monthStr = StringUtils.substring(tempBirthStr,4,6);
  119. String dayStr = StringUtils.substring(tempBirthStr,6,8);
  120. String birthStr = yearStr + "-" + monthStr +"-" + dayStr;
  121. personnel.setBirthday(birthStr);
  122. String departureTime = getDepartureTime(form.getPer().getBirthday(),form.getPer().getSex(),form.getPer().getPerNature());
  123. personnel.setDepartureTime(departureTime);
  124. }else {
  125. String departureTime = getDepartureTime(form.getPer().getBirthday(),form.getPer().getSex(),form.getPer().getPerNature());
  126. personnel.setDepartureTime(departureTime);
  127. }
  128. baseMapper.insert(personnel);
  129. if (null != personnel) {
  130. if (eduRecords.size() > 0) {
  131. for (PerEduRec eduRecord : eduRecords) {
  132. eduRecord.setCreateTime(DateUtils.getCurrentFromatTime());
  133. eduRecord.setPid(personnel.getId());
  134. }
  135. eduRecService.saveBatch(eduRecords);
  136. }
  137. if (workRecords.size() > 0) {
  138. for (PerWorkRec workRecord : workRecords) {
  139. workRecord.setCreateTime(DateUtils.getCurrentFromatTime());
  140. workRecord.setPid(personnel.getId());
  141. }
  142. workRecService.saveBatch(workRecords);
  143. }
  144. if (familyRelations.size() > 0) {
  145. for (PerFamRel familyRelation : familyRelations) {
  146. familyRelation.setPid(personnel.getId());
  147. familyRelation.setCreateTime(DateUtils.getCurrentFromatTime());
  148. }
  149. famRelService.saveBatch(familyRelations);
  150. }
  151. if (socialRelations.size() > 0) {
  152. for (PerSocRel socialRelation : socialRelations) {
  153. socialRelation.setPid(personnel.getId());
  154. socialRelation.setCreateTime(DateUtils.getCurrentFromatTime());
  155. }
  156. socRelService.saveBatch(socialRelations);
  157. }
  158. if (rewards.size() > 0) {
  159. for (PerRewRec reward : rewards) {
  160. reward.setPid(personnel.getId());
  161. reward.setCreateTime(DateUtils.getCurrentFromatTime());
  162. }
  163. rewRecService.saveBatch(rewards);
  164. }
  165. // todo 插入数据库后,写入磁盘内
  166. List<PerForm> perForms = getPerForms(personnel.getId());
  167. ExportExcelUtil.writeExcelFile(savedDir,modelDir,perForms);
  168. // 更新temp file 表
  169. TempFileResult tempFileResult = tempFileResultMapper.selectById(personnel.getFileId());
  170. log.info("savePersonnelForm> 2 personnel>>"+personnel.getId());
  171. tempFileResult.setPerId(personnel.getId());
  172. tempFileResult.setUpdated(true);
  173. if (tempFileResultMapper.updateById(tempFileResult) > 0){
  174. return personnel.getId();
  175. }else {
  176. return 0;
  177. }
  178. }
  179. return 0;
  180. }
  181. /**
  182. * TODO 根据id获取人员信息&查询详情展示方法。
  183. * @param id
  184. * @return
  185. */
  186. @Override
  187. public Map<String, Object> getPersonnelForm(long id) {
  188. Map<String, Object> form = new HashMap<>();
  189. List<Per> pers = perMapper.selectByPId(String.valueOf(id));
  190. Per tempedPersonnel = pers.get(pers.size() - 1);
  191. if (null != tempedPersonnel){
  192. List<Per> personnels = perMapper.selectByFileId(String.valueOf(tempedPersonnel.getFileId()));
  193. Per personnel = personnels.get(personnels.size() - 1);
  194. if (null != personnel) {
  195. form.put("per", personnel);
  196. }else {
  197. form.put("per", personnel);
  198. }
  199. List<PerEduRec> eduRecords = eduRecService.findByPid(id);
  200. if (CollectionUtils.isNotEmpty(eduRecords)) {
  201. form.put("eduRecords", eduRecords);
  202. }else {
  203. form.put("eduRecords", eduRecords);
  204. }
  205. List<PerWorkRec> workRecords = workRecService.findByPid(id);
  206. if (CollectionUtils.isNotEmpty(workRecords)) {
  207. form.put("workRecords", workRecords);
  208. }else {
  209. form.put("workRecords", workRecords);
  210. }
  211. List<PerFamRel> familyRelations = famRelService.findByPid(id);
  212. if (CollectionUtils.isNotEmpty(familyRelations)) {
  213. form.put("famRelations", familyRelations);
  214. }else {
  215. form.put("famRelations", familyRelations);
  216. }
  217. List<PerSocRel> socialRelations = socRelService.findByPid(id);
  218. if (CollectionUtils.isNotEmpty(socialRelations)) {
  219. form.put("socRelations", socialRelations);
  220. }else {
  221. form.put("socRelations", socialRelations);
  222. }
  223. List<PerRewRec> rewards = rewRecService.findByPid(id);
  224. if (CollectionUtils.isNotEmpty(rewards)) {
  225. form.put("rewRecords", rewards);
  226. }else {
  227. form.put("rewRecords", rewards);
  228. }
  229. log.info("getPersonnelForm>根据id:{"+id+"},data>>>" + JSON.toJSONString(form));
  230. }
  231. log.info("getPersonnelForm>根据id:{"+id+"},data>>>" + JSON.toJSONString(form));
  232. return form;
  233. }
  234. /**
  235. * TODO 弃用。
  236. * @param eduRecords
  237. */
  238. @Override
  239. public void addEduRecords(List<PerEduRec> eduRecords) {
  240. if (null != eduRecords && eduRecords.size() > 0) {
  241. eduRecService.saveBatch(eduRecords);
  242. }
  243. }
  244. /**
  245. * TODO 弃用。
  246. * @param workRecords
  247. */
  248. @Override
  249. public void addWorkRecords(List<PerWorkRec> workRecords) {
  250. if (null != workRecords && workRecords.size() > 0) {
  251. workRecService.saveBatch(workRecords);
  252. }
  253. }
  254. /**
  255. * TODO 弃用。
  256. * @param familyRelations
  257. */
  258. @Override
  259. public void addFamilyRelations(List<PerFamRel> familyRelations) {
  260. if (null != familyRelations && familyRelations.size() > 0) {
  261. famRelService.saveBatch(familyRelations);
  262. }
  263. }
  264. /**
  265. * TODO 弃用。
  266. * @param socialRelations
  267. */
  268. @Override
  269. public void addSocialRelations(List<PerSocRel> socialRelations) {
  270. if (null != socialRelations && socialRelations.size() > 0) {
  271. socRelService.saveBatch(socialRelations);
  272. }
  273. }
  274. /**
  275. * TODO 弃用。
  276. * @param rewards
  277. */
  278. @Override
  279. public void addRewards(List<PerRewRec> rewards) {
  280. if (null != rewards && rewards.size() > 0) {
  281. rewRecService.saveBatch(rewards);
  282. }
  283. }
  284. /**
  285. * TODO 弃用。
  286. * @param param
  287. * @return
  288. */
  289. @Override
  290. public List<Per> query(QueryParam param) {
  291. QueryWrapper<Per> wrapper = new QueryWrapper<>();
  292. wrapper.like(param.getColumn(), param.getParam());
  293. return baseMapper.selectList(wrapper);
  294. }
  295. /**
  296. * TODO 弃用。
  297. * @param id
  298. * @return
  299. */
  300. @Override
  301. public List<PerRelation> getPersonnelRelations(long id) {
  302. List<PerRelation> personnelRelations = new ArrayList<>();
  303. Per target = baseMapper.selectById(id);
  304. if (null != target) {
  305. // 家庭关系
  306. List<PerFamRel> familyRelations = famRelService.findByPid(id);
  307. if (null != familyRelations && familyRelations.size() > 0) {
  308. PerRelation relation;
  309. for (PerFamRel familyRelation : familyRelations) {
  310. relation = new PerRelation();
  311. relation.setTarget(target.getName());
  312. relation.setSource(familyRelation.getName());
  313. relation.setName(familyRelation.getRelation());
  314. relation.setType(RELATION_TYPE_FAM);
  315. personnelRelations.add(relation);
  316. }
  317. }
  318. // 社会关系
  319. List<PerSocRel> socialRelations = socRelService.findByPid(id);
  320. if (null != socialRelations && socialRelations.size() > 0) {
  321. PerRelation relation;
  322. for (PerSocRel socialRelation : socialRelations) {
  323. relation = new PerRelation();
  324. relation.setTarget(target.getName());
  325. relation.setSource(socialRelation.getName());
  326. relation.setName(socialRelation.getRelation());
  327. relation.setType(RELATION_TYPE_SOC);
  328. personnelRelations.add(relation);
  329. }
  330. }
  331. }
  332. return personnelRelations;
  333. }
  334. /**
  335. * TODO 弃用。
  336. * @param id
  337. * @return
  338. */
  339. @Override
  340. public Map<String, Object> getPersonnelRecords(long id) {
  341. Map<String, Object> map = new HashMap<>();
  342. List<PerEduRec> eduRecs = eduRecService.findByPid(id);
  343. if (null != eduRecs && eduRecs.size() > 0) {
  344. map.put("edu", eduRecs);
  345. }
  346. List<PerWorkRec> workRecs = workRecService.findByPid(id);
  347. if (null != workRecs && workRecs.size() > 0) {
  348. map.put("work", workRecs);
  349. }
  350. return map;
  351. }
  352. /**
  353. * TODO 多条件查询方法。
  354. * @param perQueryParam
  355. * @return
  356. */
  357. @Override
  358. public List<PerForm> multipleQuery(PerQueryParam perQueryParam) {
  359. // 封装查询参数
  360. QueryWrapper<Per> perQueryWrapper = new QueryWrapper<>();
  361. if(!perQueryParam.getName().isEmpty()){
  362. perQueryWrapper.like("name",perQueryParam.getName());
  363. }
  364. if (!perQueryParam.getSex().isEmpty()){
  365. perQueryWrapper.like("sex", perQueryParam.getSex());
  366. }
  367. if (!perQueryParam.getStartBirthday().isEmpty() && !perQueryParam.getEndBirthday().isEmpty()){
  368. perQueryWrapper.between("birthday",perQueryParam.getStartBirthday(),perQueryParam.getEndBirthday());
  369. }
  370. if (!perQueryParam.getWorkingTime().isEmpty()){
  371. perQueryWrapper.like("working_time", perQueryParam.getWorkingTime());
  372. }
  373. if (!perQueryParam.getJoiningPartyTime().isEmpty()){
  374. perQueryWrapper.like("joining_party_time", perQueryParam.getJoiningPartyTime());
  375. }
  376. if (!perQueryParam.getEducation().isEmpty()){
  377. perQueryWrapper.like("education", perQueryParam.getEducation());
  378. }
  379. if (!perQueryParam.getIdNumber().isEmpty()){
  380. perQueryWrapper.eq("id_number", perQueryParam.getIdNumber());
  381. }
  382. if (!perQueryParam.getHealthStatus().isEmpty()){
  383. perQueryWrapper.like("health_status", perQueryParam.getHealthStatus());
  384. }
  385. if (!perQueryParam.getTitleAcqTime().isEmpty()){
  386. perQueryWrapper.like("title_acq_time", perQueryParam.getTitleAcqTime());
  387. }
  388. if (!perQueryParam.getGraTimeSchoolMajor().isEmpty()){
  389. perQueryWrapper.like("gra_time_school_major", perQueryParam.getGraTimeSchoolMajor());
  390. }
  391. if (!perQueryParam.getPoliticsStatus().isEmpty()){
  392. perQueryWrapper.like("politics_status", perQueryParam.getPoliticsStatus());
  393. }
  394. if (!perQueryParam.getPerNature().isEmpty()){
  395. perQueryWrapper.like("per_nature",perQueryParam.getPerNature());
  396. }
  397. if (!perQueryParam.getJobTitle().isEmpty()){
  398. perQueryWrapper.like("job_title", perQueryParam.getJobTitle());
  399. }
  400. if (!perQueryParam.getCurrentJob().isEmpty()){
  401. perQueryWrapper.like("current_job", perQueryParam.getCurrentJob());
  402. }
  403. if (!perQueryParam.getContactPhone().isEmpty()){
  404. perQueryWrapper.like("contact_phone",perQueryParam.getContactPhone());
  405. }
  406. if (!perQueryParam.getAddress().isEmpty()){
  407. perQueryWrapper.like("address",perQueryParam.getAddress());
  408. }
  409. if (!perQueryParam.getWorkUnit().isEmpty()){
  410. perQueryWrapper.like("work_unit",perQueryParam.getWorkUnit());
  411. }
  412. if (!perQueryParam.getNation().isEmpty()){
  413. perQueryWrapper.like("nation", perQueryParam.getNation());
  414. }
  415. if (!perQueryParam.getBirthplace().isEmpty()){
  416. perQueryWrapper.like("birthplace", perQueryParam.getBirthplace());
  417. }
  418. // 个人
  419. List<Per> pers = perMapper.selectList(perQueryWrapper);
  420. List<PerForm> perForms = new ArrayList<>();
  421. PerForm perForm;
  422. if (null != pers) {
  423. for (Per per : pers) {
  424. perForm = new PerForm();
  425. perForm.setPer(per);
  426. // todo 家庭关系
  427. List<PerFamRel> famRels = famRelService.findByPid(per.getId());
  428. List<PerFamRel> finalPerFamRel = new ArrayList<>();
  429. if (null != famRels && famRels.size() > 0) {
  430. PerFamRel perFamRel;
  431. for (PerFamRel famRel : famRels) {
  432. perFamRel = new PerFamRel();
  433. perFamRel.setId(famRel.getId());
  434. perFamRel.setPid(per.getId());
  435. perFamRel.setRelation(famRel.getRelation());
  436. perFamRel.setName(famRel.getName());
  437. perFamRel.setBirthday(famRel.getBirthday());
  438. perFamRel.setPoliticalStatus(famRel.getPoliticalStatus());
  439. perFamRel.setDeptJob(famRel.getDeptJob());
  440. finalPerFamRel.add(perFamRel);
  441. }
  442. perForm.setFamRelations(finalPerFamRel);
  443. } else {
  444. perForm.setFamRelations(finalPerFamRel);
  445. }
  446. // todo 教育关系
  447. List<PerEduRec> perEduRecs = eduRecService.findByPid(per.getId());
  448. List<PerEduRec> finalPerEduRec = new ArrayList<>();
  449. if (null != perEduRecs && perEduRecs.size() > 0) {
  450. PerEduRec perEduRec;
  451. for (PerEduRec eduRec : perEduRecs) {
  452. perEduRec = new PerEduRec();
  453. perEduRec.setId(eduRec.getId());
  454. perEduRec.setPid(per.getId());
  455. perEduRec.setTime(eduRec.getTime());
  456. perEduRec.setSchool(eduRec.getSchool());
  457. perEduRec.setMajor(eduRec.getMajor());
  458. finalPerEduRec.add(perEduRec);
  459. }
  460. perForm.setEduRecords(finalPerEduRec);
  461. } else {
  462. perForm.setEduRecords(finalPerEduRec);
  463. }
  464. // todo 奖惩关系
  465. List<PerRewRec> perRewRecs = rewRecService.findByPid(per.getId());
  466. List<PerRewRec> finalPerRewRec = new ArrayList<>();
  467. if (null != perRewRecs && perRewRecs.size() > 0) {
  468. PerRewRec perRewRec;
  469. for (PerRewRec rewRec : perRewRecs) {
  470. perRewRec = new PerRewRec();
  471. perRewRec.setId(rewRec.getId());
  472. perRewRec.setPid(per.getId());
  473. perRewRec.setTime(rewRec.getTime());
  474. perRewRec.setContent(rewRec.getContent());
  475. finalPerRewRec.add(perRewRec);
  476. }
  477. perForm.setRewRecords(finalPerRewRec);
  478. } else {
  479. perForm.setRewRecords(finalPerRewRec);
  480. }
  481. // todo 社会关系
  482. List<PerSocRel> perSocRels = socRelService.findByPid(per.getId());
  483. List<PerSocRel> finalPerSocRel = new ArrayList<>();
  484. if (null != perSocRels && perSocRels.size() > 0) {
  485. PerSocRel perSocRel;
  486. for (PerSocRel socRel : perSocRels) {
  487. perSocRel = new PerSocRel();
  488. perSocRel.setId(socRel.getId());
  489. perSocRel.setPid(per.getId());
  490. perSocRel.setRelation(socRel.getRelation());
  491. perSocRel.setName(socRel.getName());
  492. perSocRel.setAge(socRel.getAge());
  493. perSocRel.setPoliticalStatus(socRel.getPoliticalStatus());
  494. perSocRel.setDeptJob(socRel.getDeptJob());
  495. finalPerSocRel.add(perSocRel);
  496. }
  497. perForm.setSocRelations(finalPerSocRel);
  498. } else {
  499. perForm.setSocRelations(finalPerSocRel);
  500. }
  501. // todo 工作关系
  502. List<PerWorkRec> perWorkRecs = workRecService.findByPid(per.getId());
  503. List<PerWorkRec> finalPerWorkRec = new ArrayList<>();
  504. if (null != perWorkRecs && perWorkRecs.size() > 0) {
  505. PerWorkRec perWorkRec;
  506. for (PerWorkRec workRec : perWorkRecs) {
  507. perWorkRec = new PerWorkRec();
  508. perWorkRec.setId(workRec.getId());
  509. perWorkRec.setPid(per.getId());
  510. perWorkRec.setTime(workRec.getTime());
  511. perWorkRec.setDepartment(workRec.getDepartment());
  512. perWorkRec.setJob(workRec.getJob());
  513. finalPerWorkRec.add(perWorkRec);
  514. }
  515. perForm.setWorkRecords(finalPerWorkRec);
  516. } else {
  517. perForm.setWorkRecords(finalPerWorkRec);
  518. }
  519. perForms.add(perForm);
  520. }
  521. }
  522. log.info("multipleQuery多条件查询-->" + JSON.toJSONString(perForms));
  523. return perForms;
  524. }
  525. /**
  526. * TODO 排序方法。
  527. * @param sortParam
  528. * @return
  529. */
  530. @Override
  531. public List<PerForm> sorting(SortParam sortParam) {
  532. // 封装排序参数
  533. /**
  534. * endWorkingTime -离职时间-> endWorkingTime
  535. * startJoiningPartyTime -入党时间-> startJoiningPartyTime
  536. * titleAcqTime -职称获得时间-> titleAcqTime
  537. *
  538. * joiningWorkAge -杠龄-> startWithJoiningWorkAge-endWithJoiningWorkAge
  539. * joiningPartyTime -党龄-> startWithJoiningPartyTime endWithJoiningPartyTime
  540. */
  541. Map<String, Object> sortMap = new HashMap<>();
  542. // 岗龄 --》 工龄
  543. if (null != sortParam.getStartWithJoiningWorkAge() && !sortParam.getStartWithJoiningWorkAge().equals("") && null != sortParam.getEndWithJoiningWorkAge() && !sortParam.getEndWithJoiningWorkAge().equals("")) {
  544. if (sortParam.getStartWithJoiningWorkAge().equals("40") && sortParam.getEndWithJoiningWorkAge().equals("-1")) {
  545. String startTime = getSqlTime(sortParam.getStartWithJoiningWorkAge());
  546. String startWorkingTime = startTime + "-01-01";
  547. String endWorkingTime = "gte";
  548. sortMap.put("startWithJoiningWorkAge", startWorkingTime);
  549. sortMap.put("endWithJoiningWorkAge", endWorkingTime);
  550. } else {
  551. String startTime = getSqlTime(sortParam.getStartWithJoiningWorkAge());
  552. String endTime = getSqlTime(sortParam.getEndWithJoiningWorkAge());
  553. String startWorkingTime = endTime + "-01-01";
  554. String endWorkingTime = startTime + "-12-31";
  555. sortMap.put("startWithJoiningWorkAge", startWorkingTime);
  556. sortMap.put("endWithJoiningWorkAge", endWorkingTime);
  557. }
  558. } else {
  559. // todo 二期配合前端,下部分代码暂搁置不用。
  560. System.err.println("工龄 else");
  561. }
  562. // 党龄
  563. if (null != sortParam.getStartWithJoiningPartyTime() && !sortParam.getStartWithJoiningPartyTime().equals("") && null != sortParam.getEndWithJoiningPartyTime() && !sortParam.getEndWithJoiningPartyTime().equals("")) {
  564. if (sortParam.getStartWithJoiningPartyTime().equals("50") && sortParam.getEndWithJoiningPartyTime().equals("-1")) {
  565. String startTime = getSqlTime(sortParam.getStartWithJoiningPartyTime());
  566. String startWithJoiningPartyTime = startTime + "-01-01";
  567. String endWithJoiningPartyTime = "gte";
  568. sortMap.put("startWithJoiningPartyTime", startWithJoiningPartyTime);
  569. sortMap.put("endWithJoiningPartyTime", endWithJoiningPartyTime);
  570. } else {
  571. String startTime = getSqlTime(sortParam.getStartWithJoiningPartyTime());
  572. String endTime = getSqlTime(sortParam.getEndWithJoiningPartyTime());
  573. String startWithJoiningPartyTime = endTime + "-01-01";
  574. String endWithJoiningPartyTime = startTime + "-12-31";
  575. sortMap.put("startWithJoiningPartyTime", startWithJoiningPartyTime);
  576. sortMap.put("endWithJoiningPartyTime", endWithJoiningPartyTime);
  577. }
  578. } else {
  579. // todo 二期配合前端,下部分代码暂搁置不用。
  580. System.err.println("党龄 else");
  581. }
  582. // 离职时间
  583. if (StringUtils.endsWith(sortParam.getEndWorkingTime(), "1")) {
  584. sortMap.put("endWorkingTime", StringUtils.substring(sortParam.getEndWorkingTime(), 0, 4));
  585. } else if (StringUtils.endsWith(sortParam.getEndWorkingTime(), "0")) {
  586. // todo 二期配合前端,下部分代码暂搁置不用。
  587. // sortMap.put("endWorkingTime", "");
  588. }
  589. // 入党时间
  590. if (StringUtils.endsWith(sortParam.getStartJoiningPartyTime(), "1")) {
  591. sortMap.put("startJoiningPartyTime", StringUtils.substring(sortParam.getStartJoiningPartyTime(), 0, 4));
  592. } else if (StringUtils.endsWith(sortParam.getStartJoiningPartyTime(), "0")) {
  593. // todo 二期配合前端,下部分代码暂搁置不用。
  594. // sortMap.put("startJoiningPartyTime", "");
  595. }
  596. // 职称获得时间
  597. if (StringUtils.endsWith(sortParam.getTitleAcqTime(), "1")) {
  598. sortMap.put("titleAcqTime", StringUtils.substring(sortParam.getTitleAcqTime(), 0, 4));
  599. } else if (StringUtils.endsWith(sortParam.getTitleAcqTime(), "0")) {
  600. // todo 二期配合前端,下部分代码暂搁置不用。
  601. // sortMap.put("titleAcqTime", "");
  602. }
  603. List<Per> pers = perMapper.sorting(sortMap);
  604. List<PerForm> perForms = new ArrayList<>();
  605. PerForm perForm;
  606. if (null != pers) {
  607. for (Per per : pers) {
  608. perForm = new PerForm();
  609. perForm.setPer(per);
  610. // todo 家庭关系
  611. List<PerFamRel> famRels = famRelService.findByPid(per.getId());
  612. List<PerFamRel> finalPerFamRel = new ArrayList<>();
  613. if (null != famRels && famRels.size() > 0) {
  614. PerFamRel perFamRel;
  615. for (PerFamRel famRel : famRels) {
  616. perFamRel = new PerFamRel();
  617. perFamRel.setId(famRel.getId());
  618. perFamRel.setPid(per.getId());
  619. perFamRel.setRelation(famRel.getRelation());
  620. perFamRel.setName(famRel.getName());
  621. perFamRel.setBirthday(famRel.getBirthday());
  622. perFamRel.setPoliticalStatus(famRel.getPoliticalStatus());
  623. perFamRel.setDeptJob(famRel.getDeptJob());
  624. finalPerFamRel.add(perFamRel);
  625. }
  626. perForm.setFamRelations(finalPerFamRel);
  627. } else {
  628. perForm.setFamRelations(finalPerFamRel);
  629. }
  630. // todo 教育关系
  631. List<PerEduRec> perEduRecs = eduRecService.findByPid(per.getId());
  632. List<PerEduRec> finalPerEduRec = new ArrayList<>();
  633. if (null != perEduRecs && perEduRecs.size() > 0) {
  634. PerEduRec perEduRec;
  635. for (PerEduRec eduRec : perEduRecs) {
  636. perEduRec = new PerEduRec();
  637. perEduRec.setId(eduRec.getId());
  638. perEduRec.setPid(per.getId());
  639. perEduRec.setTime(eduRec.getTime());
  640. perEduRec.setSchool(eduRec.getSchool());
  641. perEduRec.setMajor(eduRec.getMajor());
  642. finalPerEduRec.add(perEduRec);
  643. }
  644. perForm.setEduRecords(finalPerEduRec);
  645. } else {
  646. perForm.setEduRecords(finalPerEduRec);
  647. }
  648. // todo 奖惩关系
  649. List<PerRewRec> perRewRecs = rewRecService.findByPid(per.getId());
  650. List<PerRewRec> finalPerRewRec = new ArrayList<>();
  651. if (null != perRewRecs && perRewRecs.size() > 0) {
  652. PerRewRec perRewRec;
  653. for (PerRewRec rewRec : perRewRecs) {
  654. perRewRec = new PerRewRec();
  655. perRewRec.setId(rewRec.getId());
  656. perRewRec.setPid(per.getId());
  657. perRewRec.setTime(rewRec.getTime());
  658. perRewRec.setContent(rewRec.getContent());
  659. finalPerRewRec.add(perRewRec);
  660. }
  661. perForm.setRewRecords(finalPerRewRec);
  662. } else {
  663. perForm.setRewRecords(finalPerRewRec);
  664. }
  665. // todo 社会关系
  666. List<PerSocRel> perSocRels = socRelService.findByPid(per.getId());
  667. List<PerSocRel> finalPerSocRel = new ArrayList<>();
  668. if (null != perSocRels && perSocRels.size() > 0) {
  669. PerSocRel perSocRel;
  670. for (PerSocRel socRel : perSocRels) {
  671. perSocRel = new PerSocRel();
  672. perSocRel.setId(socRel.getId());
  673. perSocRel.setPid(per.getId());
  674. perSocRel.setRelation(socRel.getRelation());
  675. perSocRel.setName(socRel.getName());
  676. perSocRel.setAge(socRel.getAge());
  677. perSocRel.setPoliticalStatus(socRel.getPoliticalStatus());
  678. perSocRel.setDeptJob(socRel.getDeptJob());
  679. finalPerSocRel.add(perSocRel);
  680. }
  681. perForm.setSocRelations(finalPerSocRel);
  682. } else {
  683. perForm.setSocRelations(finalPerSocRel);
  684. }
  685. // todo 工作关系
  686. List<PerWorkRec> perWorkRecs = workRecService.findByPid(per.getId());
  687. List<PerWorkRec> finalPerWorkRec = new ArrayList<>();
  688. if (null != perWorkRecs && perWorkRecs.size() > 0) {
  689. PerWorkRec perWorkRec;
  690. for (PerWorkRec workRec : perWorkRecs) {
  691. perWorkRec = new PerWorkRec();
  692. perWorkRec.setId(workRec.getId());
  693. perWorkRec.setPid(per.getId());
  694. perWorkRec.setTime(workRec.getTime());
  695. perWorkRec.setDepartment(workRec.getDepartment());
  696. perWorkRec.setJob(workRec.getJob());
  697. finalPerWorkRec.add(perWorkRec);
  698. }
  699. perForm.setWorkRecords(finalPerWorkRec);
  700. } else {
  701. perForm.setWorkRecords(finalPerWorkRec);
  702. }
  703. perForms.add(perForm);
  704. }
  705. }
  706. log.info("sorting排序-->" + JSON.toJSONString(perForms));
  707. return perForms;
  708. }
  709. /**
  710. * TODO 统计方法。
  711. * @return
  712. */
  713. @Override
  714. public List<CountInfo> getCountInfo() {
  715. List<CountInfo> countInfos = new ArrayList<>();
  716. CountInfo countInfo = new CountInfo();
  717. // 人员性质
  718. CountByPoliticsStatus countByPoliticsStatus = new CountByPoliticsStatus();
  719. countByPoliticsStatus.setCrowdNum(getCountByPerNatureAndEducation("群众", "-1"));
  720. countByPoliticsStatus.setLeagueMemberNum(getCountByPerNatureAndEducation("团员", "-1"));
  721. countByPoliticsStatus.setPartyMembernNum(getCountByPerNatureAndEducation("党员", "-1"));
  722. countInfo.setCountByPoliticsStatus(countByPoliticsStatus);
  723. // 学历
  724. CountByEducation countByEducation = new CountByEducation();
  725. countByEducation.setCollegeNum(getCountByPerNatureAndEducation("-1", "大专"));
  726. countByEducation.setUndergraduateCourseNum(getCountByPerNatureAndEducation("-1", "本科"));
  727. countByEducation.setShuoNum(getCountByPerNatureAndEducation("-1", "硕士"));
  728. countByEducation.setBoNum(getCountByPerNatureAndEducation("-1", "博士"));
  729. countByEducation.setHighSchoolNum(getCountByPerNatureAndEducation("-1", "高中"));
  730. countByEducation.setTechnicalSecondarySchoolNum(getCountByPerNatureAndEducation("-1", "中专"));
  731. countByEducation.setOtherEducationNum(getCountByPerNatureAndEducation("-1", "其他"));
  732. countInfo.setCountByEducation(countByEducation);
  733. // 年龄
  734. CountByAge countByAge = new CountByAge();
  735. countByAge.setTwentyOneAndThirtyNum(getAge(21, 30, 0));
  736. countByAge.setThirtyOneAndFortyNum(getAge(31, 40, 0));
  737. countByAge.setFortyOneAndFiftyNum(getAge(41, 50, 0));
  738. countByAge.setFiftyOneAndSixtyNum(getAge(51, 60, 0));
  739. countByAge.setGreaterThanSixtyOneNum(getAge(61, 0, 0));
  740. countInfo.setCountByAge(countByAge);
  741. // 岗龄 --》工龄
  742. CountByWorkAge countByWorkAge = new CountByWorkAge();
  743. countByWorkAge.setLessThanFiveYearsNum(getAge(1, 5, -1));
  744. countByWorkAge.setFiveYearsNum(getAge(6, 10, -1));
  745. countByWorkAge.setTenYearsNum(getAge(11, 15, -1));
  746. countByWorkAge.setFifteenYearsNum(getAge(16, 20, -1));
  747. countByWorkAge.setTwentyYearsNum(getAge(21, 25, -1));
  748. countByWorkAge.setTwentyFiveYearsNum(getAge(26, 30, -1));
  749. countByWorkAge.setThirtyOneYearsNum(getAge(31, -1, -1));
  750. countInfo.setCountByWorkAge(countByWorkAge);
  751. // todo 职级job_rank
  752. CountByJobRank countByJobRank = new CountByJobRank();
  753. countByJobRank.setClerkPerNum(getCountByJobRank("办事员", "-1", "-1"));
  754. countByJobRank.setSubUnitSectionMemberNotNum(getCountByJobRank("科员(副股)", "-1", "-1"));
  755. countByJobRank.setSubUnitSectionMemberNum(getCountByJobRank("科员(正股)", "-1", "-1"));
  756. countByJobRank.setRegularUnitSectionMemberNotNum(getCountByJobRank("副科非", "-1", "-1"));
  757. countByJobRank.setRegularUnitSectionMemberNum(getCountByJobRank("副科", "-1", "-1"));
  758. countByJobRank.setAreStaffNotNum(getCountByJobRank("正科非", "-1", "-1"));
  759. countByJobRank.setAreStaffNum(getCountByJobRank("正科", "-1", "-1"));
  760. countByJobRank.setDeputyDirectorNum(getCountByJobRank("副处", "-1", "-1"));
  761. countInfo.setCountByJobRank(countByJobRank);
  762. // todo 职称 job_title
  763. CountByJobTitle countByJobTitle = new CountByJobTitle();
  764. countByJobTitle.setAssistantEngineerNum(getCountByJobRank("-1", "助理工程师", "-1"));
  765. countByJobTitle.setSeniorEconomistNum(getCountByJobRank("-1", "高级经济师", "-1"));
  766. countByJobTitle.setAdvancedWorkerNum(getCountByJobRank("-1", "高级工这种", "-1"));
  767. countInfo.setCountByJobTitle(countByJobTitle);
  768. // todo 人员性质
  769. CountByPerNature countByPerNature = new CountByPerNature();
  770. countByPerNature.setAdministrativeNum(getCountByJobRank("-1", "-1", "行政"));
  771. countByPerNature.setCareerNum(getCountByJobRank("-1", "-1", "事业"));
  772. countByPerNature.setSmallGroupNum(getCountByJobRank("-1", "-1", "机关小集体"));
  773. countByPerNature.setRuralNum(getCountByJobRank("-1", "-1", "农村"));
  774. countByPerNature.setCommunityNum(getCountByJobRank("-1", "-1", "社区"));
  775. countByPerNature.setOtherEmployeesNum(getCountByJobRank("-1", "-1", "其他聘用人员"));
  776. countInfo.setCountByPerNature(countByPerNature);
  777. // todo 工资级别 需求未定,待开发
  778. countInfos.add(countInfo);
  779. log.info("getCountInfo获取统计信息-->" + JSON.toJSONString(countInfos));
  780. return countInfos;
  781. }
  782. /**
  783. * TODO 个人详情修改&删除方法。
  784. *
  785. * @param form
  786. * @return
  787. */
  788. @Override
  789. public int editPerInfo(PerForm form) throws IOException {
  790. if (null != form.getPer()) {
  791. int edited = 0;
  792. form.getPer().setUpdateTime(DateUtils.getCurrentFromatTime());
  793. String departureTime = getDepartureTime(form.getPer().getBirthday(),form.getPer().getSex(),form.getPer().getPerNature());
  794. form.getPer().setDepartureTime(departureTime);
  795. int editPer = perMapper.updateById(form.getPer());
  796. Per per = perMapper.selectById(form.getPer().getId());
  797. boolean editPerEduRec = false;
  798. boolean editPerWorkRec = false;
  799. boolean editPerFamRel = false;
  800. boolean editPerSocRel = false;
  801. boolean editPerRewRec = false;
  802. if (editPer > 0) {
  803. PerForm selectedPerForm = getPerFormInfo(form.getPer().getId());
  804. if(form.getEduRecords().size() == 0){
  805. if (null != selectedPerForm.getWorkRecords()){
  806. for (PerEduRec perEduRec : selectedPerForm.getEduRecords()) {
  807. if (null != perEduRec.getId() && !"".equals(perEduRec.getId())){
  808. int deletedId = eduRecMapper.deleteById(perEduRec.getId());
  809. if (deletedId > 0){
  810. editPerEduRec = true;
  811. }
  812. }else {
  813. editPerEduRec = false;
  814. }
  815. }
  816. }else {
  817. editPerEduRec = false;
  818. }
  819. }
  820. if (form.getEduRecords().size() > 0) {
  821. if (selectedPerForm.getEduRecords() == null || form.getEduRecords().size() != selectedPerForm.getEduRecords().size()){
  822. if (editAddEduRecords(form,selectedPerForm) > 0){
  823. editPerEduRec = true;
  824. }
  825. }else {
  826. for (PerEduRec perEduRec : form.getEduRecords()) {
  827. if (eduRecService.updateById(perEduRec)) {
  828. int deletedId = deletedEduRecords(form);
  829. if (deletedId > 0){
  830. editPerEduRec = true;
  831. }
  832. }
  833. }
  834. }
  835. // 更新操作
  836. for (PerEduRec perEduRec : form.getEduRecords()) {
  837. perEduRec.setUpdateTime(DateUtils.getCurrentFromatTime());
  838. eduRecService.updateById(perEduRec);
  839. }
  840. }else {
  841. editPerEduRec = true;
  842. }
  843. if(form.getWorkRecords().size() == 0){
  844. if (null != selectedPerForm.getWorkRecords()){
  845. for (PerWorkRec perWorkRec : selectedPerForm.getWorkRecords()) {
  846. if (null != perWorkRec.getId() && !"".equals(perWorkRec.getId())){
  847. int deletedId = workRecMapper.deleteById(perWorkRec.getId());
  848. if (deletedId > 0){
  849. editPerWorkRec = true;
  850. }
  851. }else {
  852. editPerWorkRec = false;
  853. }
  854. }
  855. }else {
  856. editPerWorkRec = false;
  857. }
  858. }
  859. if (form.getWorkRecords().size() > 0) {
  860. if (selectedPerForm.getWorkRecords() == null || form.getWorkRecords().size() != selectedPerForm.getWorkRecords().size()){
  861. if (editAddPerWorkRecs(form,selectedPerForm) > 0){
  862. editPerWorkRec = true;
  863. }
  864. }else {
  865. for (PerWorkRec perWorkRec : form.getWorkRecords()) {
  866. if (workRecService.updateById(perWorkRec)) {
  867. int deletedId = deletedWorkRecords(form);
  868. if (deletedId > 0){
  869. editPerWorkRec = true;
  870. }
  871. }
  872. }
  873. }
  874. // 更新操作
  875. for (PerWorkRec perWorkRec : form.getWorkRecords()) {
  876. perWorkRec.setUpdateTime(DateUtils.getCurrentFromatTime());
  877. workRecService.updateById(perWorkRec);
  878. }
  879. }else {
  880. editPerWorkRec = true;
  881. }
  882. if(form.getFamRelations().size() == 0){
  883. if (null != selectedPerForm.getFamRelations()){
  884. for (PerFamRel perFamRel : selectedPerForm.getFamRelations()) {
  885. if (null != perFamRel.getId() && !"".equals(perFamRel.getId())){
  886. int deletedId = famRelMapper.deleteById(perFamRel.getId());
  887. if (deletedId > 0){
  888. editPerFamRel = true;
  889. }
  890. }else {
  891. editPerFamRel = false;
  892. }
  893. }
  894. }else {
  895. editPerFamRel = false;
  896. }
  897. }
  898. if (form.getFamRelations().size() > 0) {
  899. if (selectedPerForm.getFamRelations() == null || form.getFamRelations().size() != selectedPerForm.getFamRelations().size()){
  900. if (editAddPerFamRels(form,selectedPerForm) > 0){
  901. editPerFamRel = true;
  902. }
  903. }else {
  904. for (PerFamRel perFamRel : form.getFamRelations()) {
  905. if (famRelService.updateById(perFamRel)) {
  906. int deletedId = deletedFamRelations(form);
  907. if (deletedId > 0){
  908. editPerFamRel = true;
  909. }
  910. }
  911. }
  912. }
  913. // 更新操作
  914. for (PerFamRel perFamRel : form.getFamRelations()) {
  915. perFamRel.setUpdateTime(DateUtils.getCurrentFromatTime());
  916. famRelService.updateById(perFamRel);
  917. }
  918. }else {
  919. editPerFamRel = true;
  920. }
  921. if(form.getSocRelations().size() == 0){
  922. if (null != selectedPerForm.getSocRelations()){
  923. for (PerSocRel perSocRel : selectedPerForm.getSocRelations()) {
  924. if (null != perSocRel.getId() && !"".equals(perSocRel.getId())){
  925. int deletedId = socRelMapper.deleteById(perSocRel.getId());
  926. if (deletedId > 0){
  927. editPerSocRel = true;
  928. }
  929. }else {
  930. editPerSocRel = false;
  931. }
  932. }
  933. }else {
  934. editPerSocRel = false;
  935. }
  936. }
  937. if (form.getSocRelations().size() > 0) {
  938. if (selectedPerForm.getSocRelations() == null || form.getSocRelations().size() != selectedPerForm.getSocRelations().size()){
  939. if (editAddPerSocRels(form,selectedPerForm) > 0){
  940. editPerSocRel = true;
  941. }
  942. }else {
  943. for (PerSocRel perSocRel : form.getSocRelations()) {
  944. if (socRelService.updateById(perSocRel)) {
  945. int deletedId = deletedSocRelations(form);
  946. if (deletedId > 0){
  947. editPerSocRel = true;
  948. }
  949. }
  950. }
  951. }
  952. // 更新操作
  953. for (PerSocRel perSocRel : form.getSocRelations()) {
  954. perSocRel.setUpdateTime(DateUtils.getCurrentFromatTime());
  955. socRelService.updateById(perSocRel);
  956. }
  957. }else {
  958. editPerSocRel = true;
  959. }
  960. if(form.getRewRecords().size() == 0){
  961. if (null != selectedPerForm.getRewRecords()){
  962. for (PerRewRec perRewRec : selectedPerForm.getRewRecords()) {
  963. if (null != perRewRec.getId() && !"".equals(perRewRec.getId())){
  964. int deletedId = rewRecMapper.deleteById(perRewRec.getId());
  965. if (deletedId > 0){
  966. editPerRewRec = true;
  967. }
  968. }else {
  969. editPerRewRec = false;
  970. }
  971. }
  972. }else {
  973. editPerRewRec = false;
  974. }
  975. }
  976. if (form.getRewRecords().size() > 0) {
  977. // TODO bug
  978. if (selectedPerForm.getRewRecords() == null || form.getRewRecords().size() != selectedPerForm.getRewRecords().size()){
  979. if (editAddPerRewRecs(form,selectedPerForm) > 0){
  980. editPerRewRec = true;
  981. }
  982. }else {
  983. for (PerRewRec perRewRec : form.getRewRecords()) {
  984. if (rewRecService.updateById(perRewRec)) {
  985. int deletedId = deletedRewRecords(form);
  986. if (deletedId > 0){
  987. editPerRewRec = true;
  988. }
  989. }
  990. }
  991. }
  992. // 更新操作
  993. for (PerRewRec perRewRec : form.getRewRecords()) {
  994. perRewRec.setUpdateTime(DateUtils.getCurrentFromatTime());
  995. rewRecService.updateById(perRewRec);
  996. }
  997. }else {
  998. editPerRewRec = true;
  999. }
  1000. log.info("editPer>"+editPer+","+"editPerEduRec>"+editPerEduRec+"editPerWorkRec>"+editPerWorkRec+","+"editPerFamRel>"+editPerFamRel+","+"editPerSocRel>"+editPerSocRel+","+"editPerRewRec>"+editPerRewRec);
  1001. if (editPerEduRec && editPerWorkRec && editPerFamRel && editPerSocRel && editPerRewRec) {
  1002. edited = 1;
  1003. // todo 查找excel文件,然后做更新。
  1004. log.info("edit & write excel START");
  1005. List<PerForm> perForms = getPerForms(form.getPer().getId());
  1006. ExportExcelUtil.writeExcelFile(savedDir,modelDir,perForms);
  1007. log.info("edit & write excel END" + edited);
  1008. return 1;
  1009. }
  1010. }
  1011. }
  1012. return 0;
  1013. }
  1014. /**
  1015. * TODO 删除方法暂时弃用。
  1016. *
  1017. * @param form
  1018. * @return
  1019. */
  1020. @Override
  1021. public int deletePerInfo(PerForm form) throws IOException {
  1022. log.info("deletePerInfo--->" + JSON.toJSONString(form));
  1023. if (null != form) {
  1024. Per per = perMapper.selectById(form.getPer().getId());
  1025. PerForm selectPerForm = getPerFormInfo(form.getPer().getId());
  1026. if (null != per) {
  1027. boolean perFlag = false;
  1028. int eduRecordsFlag = 0;
  1029. int workRecordsFlag = 0;
  1030. int famRelationsFlag = 0;
  1031. int socRelationsFlag = 0;
  1032. int rewRecordsFlag = 0;
  1033. if (null != form.getPer()){
  1034. perFlag = deleteWithPer(form,per);
  1035. if (perFlag){
  1036. log.info("deleteWithPer SUCCESS");
  1037. }
  1038. }
  1039. if (null != form.getEduRecords()){
  1040. eduRecordsFlag = deleteWithEduRecords(form,selectPerForm);
  1041. if (eduRecordsFlag > 0){
  1042. log.info("deleteWithEduRecords SUCCESS");
  1043. }
  1044. }
  1045. if (null != form.getWorkRecords()){
  1046. workRecordsFlag = deleteWithWorkRecords(form,selectPerForm);
  1047. if (workRecordsFlag > 0){
  1048. log.info("deleteWithWorkRecords SUCCESS");
  1049. }
  1050. }
  1051. if (null != form.getFamRelations()){
  1052. famRelationsFlag = deleteWithFamRelations(form,selectPerForm);
  1053. if (famRelationsFlag > 0){
  1054. log.info("deleteWithFamRelations SUCCESS");
  1055. }
  1056. }
  1057. if (null != form.getSocRelations()){
  1058. socRelationsFlag = deleteWithSocRelations(form,selectPerForm);
  1059. if (socRelationsFlag > 0){
  1060. log.info("deleteWithSocRelations SUCCESS");
  1061. }
  1062. }
  1063. if (null != form.getRewRecords()){
  1064. rewRecordsFlag = deleteWithRewRecords(form,selectPerForm);
  1065. if (rewRecordsFlag > 0){
  1066. log.info("deleteWithRewRecords SUCCESS");
  1067. }
  1068. }
  1069. if (perFlag && eduRecordsFlag > 0 && workRecordsFlag > 0 && famRelationsFlag > 0 && socRelationsFlag > 0 && rewRecordsFlag > 0){
  1070. // todo 更新excel文件,为导出excel文件做文件保存操作。
  1071. log.info("deletePerInfo & write excel START");
  1072. List<PerForm> perForms = getPerForms(form.getPer().getId());
  1073. ExportExcelUtil.writeExcelFile(savedDir,modelDir,perForms);
  1074. log.info("deletePerInfo & write excel END");
  1075. return 1;
  1076. }
  1077. return 0;
  1078. } else {
  1079. return -2;
  1080. }
  1081. } else {
  1082. return -1;
  1083. }
  1084. }
  1085. @Override
  1086. public int deletedById(List<Long> ids) {
  1087. int deleted = 0;
  1088. for (Long id : ids) {
  1089. int deletedByPer = perMapper.deleteById(id);
  1090. List<PerEduRec> eduRecords = eduRecMapper.findByPid(id);
  1091. List<PerWorkRec> workRecords = workRecMapper.findByPid(id);
  1092. List<PerFamRel> famRelations = famRelMapper.findByPid(id);
  1093. List<PerSocRel> socRelations = socRelMapper.findByPid(id);
  1094. List<PerRewRec> rewRecords = rewRecMapper.findByPid(id);
  1095. List<BirthRemind> birthReminds = birthRemindMapper.findByPId(id);
  1096. List<DepartureRemind> departureReminds = departureRemindMapper.findByPId(id);
  1097. Map<String,Object> map = new HashMap<>();
  1098. map.put("pId",id);
  1099. if (deletedByPer > 0){
  1100. if (eduRecords.size() > 0){
  1101. int deletedByEdu = eduRecMapper.deleteByPId(map);
  1102. }
  1103. if (workRecords.size() > 0){
  1104. int deletedByWork = workRecMapper.deleteByPId(map);
  1105. }
  1106. if (famRelations.size() > 0){
  1107. int deletedByFam = famRelMapper.deleteByPId(map);
  1108. }
  1109. if (socRelations.size() > 0){
  1110. int deletedBySoc = socRelMapper.deleteByPId(map);
  1111. }
  1112. if (rewRecords.size() > 0){
  1113. int deletedByRew = rewRecMapper.deleteByPId(map);
  1114. }
  1115. if (birthReminds.size() > 0){
  1116. int deletedBirthRemind = birthRemindMapper.deleteByPId(map);
  1117. }
  1118. if (departureReminds.size() > 0){
  1119. int deletedDepartureReminds = departureRemindMapper.deleteByPId(map);
  1120. }
  1121. deleted = 1;
  1122. }
  1123. }
  1124. return deleted;
  1125. }
  1126. /**
  1127. * TODO 个人详情删除独立方法。
  1128. * @param form
  1129. * @return
  1130. * @throws IOException
  1131. */
  1132. public int deletedPerInfos(PerForm form) throws IOException {
  1133. log.info("deletedPerInfos--->" + JSON.toJSONString(form));
  1134. if (null != form) {
  1135. Per per = perMapper.selectById(form.getPer().getId());
  1136. PerForm selectPerForm = getPerFormInfo(form.getPer().getId());
  1137. if (null != per) {
  1138. boolean perFlag = false;
  1139. int eduRecordsFlag = 0;
  1140. int workRecordsFlag = 0;
  1141. int famRelationsFlag = 0;
  1142. int socRelationsFlag = 0;
  1143. int rewRecordsFlag = 0;
  1144. if (null != form.getPer()){
  1145. perFlag = deleteWithPer(form,per);
  1146. }
  1147. if (null != form.getEduRecords()){
  1148. eduRecordsFlag = deleteWithEduRecords(form,selectPerForm);
  1149. }
  1150. if (null != form.getWorkRecords()){
  1151. workRecordsFlag = deleteWithWorkRecords(form,selectPerForm);
  1152. }
  1153. if (null != form.getFamRelations()){
  1154. famRelationsFlag = deleteWithFamRelations(form,selectPerForm);
  1155. }
  1156. if (null != form.getSocRelations()){
  1157. socRelationsFlag = deleteWithSocRelations(form,selectPerForm);
  1158. }
  1159. if (null != form.getRewRecords()){
  1160. rewRecordsFlag = deleteWithRewRecords(form,selectPerForm);
  1161. }
  1162. if (perFlag && eduRecordsFlag > 0 && workRecordsFlag > 0 && famRelationsFlag > 0 && socRelationsFlag > 0 && rewRecordsFlag > 0){
  1163. // todo 更新excel文件,为导出excel文件做文件保存操作。
  1164. log.info("deletedPerInfos & write excel START");
  1165. List<PerForm> perForms = getPerForms(form.getPer().getId());
  1166. ExportExcelUtil.writeExcelFile(savedDir,modelDir,perForms);
  1167. log.info("deletedPerInfos & write excel END");
  1168. return 1;
  1169. }
  1170. return 0;
  1171. } else {
  1172. return -2;
  1173. }
  1174. } else {
  1175. return -1;
  1176. }
  1177. }
  1178. public int deletedEduRecords(PerForm form) throws IOException {
  1179. log.info("deletedPerInfos--->" + JSON.toJSONString(form));
  1180. if (null != form) {
  1181. Per per = perMapper.selectById(form.getPer().getId());
  1182. PerForm selectPerForm = getPerFormInfo(form.getPer().getId());
  1183. if (null != per) {
  1184. boolean perFlag = false;
  1185. int eduRecordsFlag = 0;
  1186. if (null != form.getPer()){
  1187. perFlag = deleteWithPer(form,per);
  1188. }
  1189. if (null != form.getEduRecords()){
  1190. eduRecordsFlag = deleteWithEduRecords(form,selectPerForm);
  1191. }
  1192. if (perFlag && eduRecordsFlag > 0){
  1193. // todo 更新excel文件,为导出excel文件做文件保存操作。
  1194. log.info("deletedPerInfos & write excel START");
  1195. List<PerForm> perForms = getPerForms(form.getPer().getId());
  1196. ExportExcelUtil.writeExcelFile(savedDir,modelDir,perForms);
  1197. log.info("deletedPerInfos & write excel END");
  1198. return 1;
  1199. }
  1200. return 0;
  1201. } else {
  1202. return -2;
  1203. }
  1204. } else {
  1205. return -1;
  1206. }
  1207. }
  1208. public int deletedWorkRecords(PerForm form) throws IOException {
  1209. log.info("deletedPerInfos--->" + JSON.toJSONString(form));
  1210. if (null != form) {
  1211. Per per = perMapper.selectById(form.getPer().getId());
  1212. PerForm selectPerForm = getPerFormInfo(form.getPer().getId());
  1213. if (null != per) {
  1214. boolean perFlag = false;
  1215. int workRecordsFlag = 0;
  1216. if (null != form.getPer()){
  1217. perFlag = deleteWithPer(form,per);
  1218. }
  1219. if (null != form.getWorkRecords()){
  1220. workRecordsFlag = deleteWithWorkRecords(form,selectPerForm);
  1221. }
  1222. if (perFlag && workRecordsFlag > 0){
  1223. // todo 更新excel文件,为导出excel文件做文件保存操作。
  1224. log.info("deletedPerInfos & write excel START");
  1225. List<PerForm> perForms = getPerForms(form.getPer().getId());
  1226. ExportExcelUtil.writeExcelFile(savedDir,modelDir,perForms);
  1227. log.info("deletedPerInfos & write excel END");
  1228. return 1;
  1229. }
  1230. return 0;
  1231. } else {
  1232. return -2;
  1233. }
  1234. } else {
  1235. return -1;
  1236. }
  1237. }
  1238. public int deletedFamRelations(PerForm form) throws IOException {
  1239. log.info("deletedPerInfos--->" + JSON.toJSONString(form));
  1240. if (null != form) {
  1241. Per per = perMapper.selectById(form.getPer().getId());
  1242. PerForm selectPerForm = getPerFormInfo(form.getPer().getId());
  1243. if (null != per) {
  1244. boolean perFlag = false;
  1245. int famRelationsFlag = 0;
  1246. if (null != form.getPer()){
  1247. perFlag = deleteWithPer(form,per);
  1248. }
  1249. if (null != form.getFamRelations()){
  1250. famRelationsFlag = deleteWithFamRelations(form,selectPerForm);
  1251. }
  1252. if (perFlag && famRelationsFlag > 0 ){
  1253. // todo 更新excel文件,为导出excel文件做文件保存操作。
  1254. log.info("deletedPerInfos & write excel START");
  1255. List<PerForm> perForms = getPerForms(form.getPer().getId());
  1256. ExportExcelUtil.writeExcelFile(savedDir,modelDir,perForms);
  1257. log.info("deletedPerInfos & write excel END");
  1258. return 1;
  1259. }
  1260. return 0;
  1261. } else {
  1262. return -2;
  1263. }
  1264. } else {
  1265. return -1;
  1266. }
  1267. }
  1268. public int deletedSocRelations(PerForm form) throws IOException {
  1269. log.info("deletedPerInfos--->" + JSON.toJSONString(form));
  1270. if (null != form) {
  1271. Per per = perMapper.selectById(form.getPer().getId());
  1272. PerForm selectPerForm = getPerFormInfo(form.getPer().getId());
  1273. if (null != per) {
  1274. boolean perFlag = false;
  1275. int socRelationsFlag = 0;
  1276. if (null != form.getPer()){
  1277. perFlag = deleteWithPer(form,per);
  1278. }
  1279. if (null != form.getSocRelations()){
  1280. socRelationsFlag = deleteWithSocRelations(form,selectPerForm);
  1281. }
  1282. if (perFlag && socRelationsFlag > 0){
  1283. // todo 更新excel文件,为导出excel文件做文件保存操作。
  1284. log.info("deletedPerInfos & write excel START");
  1285. List<PerForm> perForms = getPerForms(form.getPer().getId());
  1286. ExportExcelUtil.writeExcelFile(savedDir,modelDir,perForms);
  1287. log.info("deletedPerInfos & write excel END");
  1288. return 1;
  1289. }
  1290. return 0;
  1291. } else {
  1292. return -2;
  1293. }
  1294. } else {
  1295. return -1;
  1296. }
  1297. }
  1298. public int deletedRewRecords(PerForm form) throws IOException {
  1299. log.info("deletedPerInfos--->" + JSON.toJSONString(form));
  1300. if (null != form) {
  1301. Per per = perMapper.selectById(form.getPer().getId());
  1302. PerForm selectPerForm = getPerFormInfo(form.getPer().getId());
  1303. if (null != per) {
  1304. boolean perFlag = false;
  1305. int rewRecordsFlag = 0;
  1306. if (null != form.getPer()){
  1307. perFlag = deleteWithPer(form,per);
  1308. }
  1309. if (null != form.getRewRecords()){
  1310. rewRecordsFlag = deleteWithRewRecords(form,selectPerForm);
  1311. }
  1312. if (perFlag && rewRecordsFlag > 0){
  1313. // todo 更新excel文件,为导出excel文件做文件保存操作。
  1314. log.info("deletedPerInfos & write excel START");
  1315. List<PerForm> perForms = getPerForms(form.getPer().getId());
  1316. ExportExcelUtil.writeExcelFile(savedDir,modelDir,perForms);
  1317. log.info("deletedPerInfos & write excel END");
  1318. return 1;
  1319. }
  1320. return 0;
  1321. } else {
  1322. return -2;
  1323. }
  1324. } else {
  1325. return -1;
  1326. }
  1327. }
  1328. /**
  1329. * TODO 删除per个人信息方法。
  1330. * @param form
  1331. * @param per
  1332. * @return boolean
  1333. */
  1334. public boolean deleteWithPer(PerForm form, Per per) {
  1335. if (!TextUtils.isEmpty(form.getPer().getName())) {
  1336. per.setName(form.getPer().getName());
  1337. }
  1338. if (!TextUtils.isEmpty(form.getPer().getSex())) {
  1339. per.setSex(form.getPer().getSex());
  1340. }
  1341. if (!TextUtils.isEmpty(form.getPer().getNation())) {
  1342. per.setNation(form.getPer().getNation());
  1343. }
  1344. if (!TextUtils.isEmpty(form.getPer().getBirthplace())) {
  1345. per.setBirthplace(form.getPer().getBirthplace());
  1346. }
  1347. if (!TextUtils.isEmpty(form.getPer().getAvatar())) {
  1348. per.setAvatar(form.getPer().getAvatar());
  1349. }
  1350. if (!TextUtils.isEmpty(form.getPer().getBirthday())) {
  1351. per.setBirthday(form.getPer().getBirthday());
  1352. }
  1353. if (!TextUtils.isEmpty(form.getPer().getWorkUnit())) {
  1354. per.setWorkUnit(form.getPer().getWorkUnit());
  1355. }
  1356. if (!TextUtils.isEmpty(form.getPer().getWorkingTime())) {
  1357. per.setWorkingTime(form.getPer().getWorkingTime());
  1358. }
  1359. if (!TextUtils.isEmpty(form.getPer().getJoiningPartyTime())) {
  1360. per.setJoiningPartyTime(form.getPer().getJoiningPartyTime());
  1361. }
  1362. if (!TextUtils.isEmpty(form.getPer().getHealthStatus())) {
  1363. per.setHealthStatus(form.getPer().getHealthStatus());
  1364. }
  1365. if (!TextUtils.isEmpty(form.getPer().getEducation())) {
  1366. per.setEducation(form.getPer().getEducation());
  1367. }
  1368. if (!TextUtils.isEmpty(form.getPer().getGraTimeSchoolMajor())) {
  1369. per.setGraTimeSchoolMajor(form.getPer().getGraTimeSchoolMajor());
  1370. }
  1371. if (!TextUtils.isEmpty(form.getPer().getPoliticsStatus())) {
  1372. per.setPoliticsStatus(form.getPer().getPoliticsStatus());
  1373. }
  1374. if (!TextUtils.isEmpty(form.getPer().getPerNature())) {
  1375. per.setPerNature(form.getPer().getPerNature());
  1376. }
  1377. if (!TextUtils.isEmpty(form.getPer().getJobTitle())) {
  1378. per.setJobTitle(form.getPer().getJobTitle());
  1379. }
  1380. if (!TextUtils.isEmpty(form.getPer().getTitleAcqTime())) {
  1381. per.setTitleAcqTime(form.getPer().getTitleAcqTime());
  1382. }
  1383. if (!TextUtils.isEmpty(form.getPer().getCurrentJob())) {
  1384. per.setCurrentJob(form.getPer().getCurrentJob());
  1385. }
  1386. if (!TextUtils.isEmpty(form.getPer().getJobRank())) {
  1387. per.setJobRank(form.getPer().getJobRank());
  1388. }
  1389. if (!TextUtils.isEmpty(form.getPer().getContactPhone())) {
  1390. per.setContactPhone(form.getPer().getContactPhone());
  1391. }
  1392. if (!TextUtils.isEmpty(form.getPer().getAddress())) {
  1393. per.setAddress(form.getPer().getAddress());
  1394. }
  1395. if (!TextUtils.isEmpty(form.getPer().getIdNumber())) {
  1396. per.setIdNumber(form.getPer().getIdNumber());
  1397. }
  1398. per.setUpdateTime(DateUtils.getCurrentFromatTime());
  1399. int deletedPer = perMapper.updateById(per);
  1400. if (deletedPer > 0) {
  1401. return true;
  1402. }
  1403. return false;
  1404. }
  1405. public int deleteWithEduRecords(PerForm form, PerForm selectedPerForm){
  1406. if (form.getEduRecords().size() > 0){
  1407. // 开始删除
  1408. if(form.getEduRecords().size() != selectedPerForm.getEduRecords().size()){
  1409. // 删除
  1410. List<String> listOne = new ArrayList<>();
  1411. for (PerEduRec perEduRec : form.getEduRecords()) {
  1412. if (perEduRec.getId() != null){
  1413. listOne.add(perEduRec.getId().toString());
  1414. }else {
  1415. listOne.add("");
  1416. }
  1417. }
  1418. List<String> listTwo = new ArrayList<>();
  1419. for (PerEduRec perEduRec : selectedPerForm.getEduRecords()) {
  1420. if (perEduRec.getId() != null){
  1421. listTwo.add(perEduRec.getId().toString());
  1422. }else {
  1423. listTwo.add("");
  1424. }
  1425. }
  1426. List<String> deletedIds = CompareUtils.getDifferentNum(listOne,listTwo);
  1427. for (String deletedId : deletedIds) {
  1428. if (null != deletedId && !"".equals(deletedId)){
  1429. eduRecService.deleteByPid(Long.valueOf(deletedId));
  1430. }
  1431. }
  1432. }
  1433. }
  1434. return 1;
  1435. }
  1436. public int deleteWithWorkRecords(PerForm form, PerForm selectedPerForm){
  1437. if (form.getWorkRecords().size() > 0){
  1438. // 开始删除
  1439. if(form.getWorkRecords().size() != selectedPerForm.getWorkRecords().size()){
  1440. // 删除
  1441. List<String> listOne = new ArrayList<>();
  1442. for (PerWorkRec perWorkRec : form.getWorkRecords()) {
  1443. listOne.add(perWorkRec.getId().toString());
  1444. }
  1445. List<String> listTwo = new ArrayList<>();
  1446. for (PerWorkRec perWorkRec : selectedPerForm.getWorkRecords()) {
  1447. listTwo.add(perWorkRec.getId().toString());
  1448. }
  1449. List<String> deletedIds = CompareUtils.getDifferentNum(listOne,listTwo);
  1450. for (String deletedId : deletedIds) {
  1451. workRecService.deleteByPid(Long.valueOf(deletedId));
  1452. }
  1453. }
  1454. }
  1455. return 1;
  1456. }
  1457. public int deleteWithFamRelations(PerForm form, PerForm selectedPerForm){
  1458. if (form.getFamRelations().size() > 0){
  1459. // 开始删除
  1460. if(form.getFamRelations().size() != selectedPerForm.getFamRelations().size()){
  1461. // 删除
  1462. List<String> listOne = new ArrayList<>();
  1463. for (PerFamRel perFamRel : form.getFamRelations()) {
  1464. listOne.add(perFamRel.getId().toString());
  1465. }
  1466. List<String> listTwo = new ArrayList<>();
  1467. for (PerFamRel perFamRel : selectedPerForm.getFamRelations()) {
  1468. listTwo.add(perFamRel.getId().toString());
  1469. }
  1470. List<String> deletedIds = CompareUtils.getDifferentNum(listOne,listTwo);
  1471. for (String deletedId : deletedIds) {
  1472. famRelService.deleteByPid(Long.valueOf(deletedId));
  1473. }
  1474. }
  1475. }
  1476. return 1;
  1477. }
  1478. public int deleteWithSocRelations(PerForm form, PerForm selectedPerForm){
  1479. if (form.getSocRelations().size() > 0){
  1480. // 开始删除
  1481. if(form.getSocRelations().size() != selectedPerForm.getSocRelations().size()){
  1482. // 删除
  1483. List<String> listOne = new ArrayList<>();
  1484. for (PerSocRel perSocRel : form.getSocRelations()) {
  1485. listOne.add(perSocRel.getId().toString());
  1486. }
  1487. List<String> listTwo = new ArrayList<>();
  1488. for (PerSocRel perSocRel : selectedPerForm.getSocRelations()) {
  1489. listTwo.add(perSocRel.getId().toString());
  1490. }
  1491. List<String> deletedIds = CompareUtils.getDifferentNum(listOne,listTwo);
  1492. for (String deletedId : deletedIds) {
  1493. socRelService.deleteByPid(Long.valueOf(deletedId));
  1494. }
  1495. }
  1496. }
  1497. return 1;
  1498. }
  1499. public int deleteWithRewRecords(PerForm form, PerForm selectedPerForm){
  1500. if (form.getRewRecords().size() > 0){
  1501. // 开始删除
  1502. if(form.getRewRecords().size() != selectedPerForm.getRewRecords().size()){
  1503. // 删除
  1504. List<String> listOne = new ArrayList<>();
  1505. for (PerRewRec perRewRec : form.getRewRecords()) {
  1506. listOne.add(perRewRec.getId().toString());
  1507. }
  1508. List<String> listTwo = new ArrayList<>();
  1509. for (PerRewRec perRewRec : selectedPerForm.getRewRecords()) {
  1510. listTwo.add(perRewRec.getId().toString());
  1511. }
  1512. List<String> deletedIds = CompareUtils.getDifferentNum(listOne,listTwo);
  1513. for (String deletedId : deletedIds) {
  1514. rewRecService.deleteByPid(Long.valueOf(deletedId));
  1515. }
  1516. }
  1517. }
  1518. return 1;
  1519. }
  1520. /**
  1521. * TODO 修改per信息方法。
  1522. * @param form
  1523. * @param selectedPerForm
  1524. * @return
  1525. */
  1526. public int editAddEduRecords(PerForm form, PerForm selectedPerForm){
  1527. if (form.getEduRecords().size() > 0){
  1528. // 开始删除
  1529. if(selectedPerForm.getEduRecords() == null || form.getEduRecords().size() != selectedPerForm.getEduRecords().size()){
  1530. // 删除
  1531. List<String> listOne = new ArrayList<>();
  1532. List<PerEduRec> perEduRecs = new ArrayList<>();
  1533. PerEduRec tempedPerEduRec;
  1534. for (PerEduRec perEduRec : form.getEduRecords()) {
  1535. if (null != perEduRec.getId() && !"".equals(perEduRec.getId())){
  1536. listOne.add(perEduRec.getId().toString());
  1537. }else {
  1538. listOne.add("");
  1539. tempedPerEduRec = new PerEduRec();
  1540. tempedPerEduRec.setPid(form.getPer().getId());
  1541. tempedPerEduRec.setTime(perEduRec.getTime());
  1542. tempedPerEduRec.setSchool(perEduRec.getSchool());
  1543. tempedPerEduRec.setMajor(perEduRec.getMajor());
  1544. tempedPerEduRec.setCreateTime(DateUtils.getCurrentFromatTime());
  1545. tempedPerEduRec.setOperator(form.getPer().getOperator());
  1546. perEduRecs.add(tempedPerEduRec);
  1547. }
  1548. }
  1549. if (perEduRecs.size() > 0){
  1550. // 添加新增教育信息入库
  1551. PerEduRec savedPerEduRec;
  1552. int updatedPerEduRec = 0;
  1553. for (PerEduRec perEduRec : perEduRecs) {
  1554. if (null != perEduRec){
  1555. savedPerEduRec = new PerEduRec();
  1556. savedPerEduRec.setPid(form.getPer().getId());
  1557. savedPerEduRec.setTime(perEduRec.getTime());
  1558. savedPerEduRec.setSchool(perEduRec.getSchool());
  1559. savedPerEduRec.setMajor(perEduRec.getMajor());
  1560. savedPerEduRec.setCreateTime(DateUtils.getCurrentFromatTime());
  1561. savedPerEduRec.setUpdateTime(DateUtils.getCurrentFromatTime());
  1562. savedPerEduRec.setOperator(form.getPer().getOperator());
  1563. if (eduRecMapper.insert(savedPerEduRec) > 0){
  1564. updatedPerEduRec++;
  1565. }
  1566. }
  1567. }
  1568. if (updatedPerEduRec > 0){
  1569. return 1;
  1570. }
  1571. }else {
  1572. if (deleteWithEduRecords(form,selectedPerForm) > 0){
  1573. return 1;
  1574. }
  1575. }
  1576. }
  1577. }
  1578. return 0;
  1579. }
  1580. public int editAddPerFamRels(PerForm form, PerForm selectedPerForm){
  1581. if (form.getFamRelations().size() > 0){
  1582. // 开始删除
  1583. if(selectedPerForm.getFamRelations() == null || form.getFamRelations().size() != selectedPerForm.getFamRelations().size()){
  1584. // 删除
  1585. List<String> listOne = new ArrayList<>();
  1586. List<PerFamRel> perFamRels = new ArrayList<>();
  1587. PerFamRel tempedPerFamRel;
  1588. for (PerFamRel perFamRel : form.getFamRelations()) {
  1589. if (null != perFamRel.getId() && !"".equals(perFamRel.getId())){
  1590. listOne.add(perFamRel.getId().toString());
  1591. }else {
  1592. listOne.add("");
  1593. tempedPerFamRel = new PerFamRel();
  1594. tempedPerFamRel.setPid(form.getPer().getId());
  1595. tempedPerFamRel.setRelation(perFamRel.getRelation());
  1596. tempedPerFamRel.setName(perFamRel.getName());
  1597. tempedPerFamRel.setBirthday(perFamRel.getBirthday());
  1598. tempedPerFamRel.setPoliticalStatus(perFamRel.getPoliticalStatus());
  1599. tempedPerFamRel.setDeptJob(perFamRel.getDeptJob());
  1600. tempedPerFamRel.setCreateTime(DateUtils.getCurrentFromatTime());
  1601. tempedPerFamRel.setOperator(form.getPer().getOperator());
  1602. perFamRels.add(tempedPerFamRel);
  1603. }
  1604. }
  1605. if(perFamRels.size() > 0){
  1606. PerFamRel savedPerFamRel;
  1607. int updatedPerEduRec = 0;
  1608. for (PerFamRel perFamRel : perFamRels) {
  1609. // 做添加加操作
  1610. savedPerFamRel = new PerFamRel();
  1611. savedPerFamRel.setPid(form.getPer().getId());
  1612. savedPerFamRel.setRelation(perFamRel.getRelation());
  1613. savedPerFamRel.setName(perFamRel.getName());
  1614. savedPerFamRel.setBirthday(perFamRel.getBirthday());
  1615. savedPerFamRel.setPoliticalStatus(perFamRel.getPoliticalStatus());
  1616. savedPerFamRel.setDeptJob(perFamRel.getDeptJob());
  1617. savedPerFamRel.setCreateTime(DateUtils.getCurrentFromatTime());
  1618. savedPerFamRel.setUpdateTime(DateUtils.getCurrentFromatTime());
  1619. savedPerFamRel.setOperator(form.getPer().getOperator());
  1620. if (famRelMapper.insert(savedPerFamRel) > 0){
  1621. updatedPerEduRec++;
  1622. }
  1623. }
  1624. if (updatedPerEduRec > 0){
  1625. return 1;
  1626. }
  1627. }else {
  1628. if (deleteWithFamRelations(form,selectedPerForm) > 0){
  1629. return 1;
  1630. }
  1631. }
  1632. }
  1633. }
  1634. return 0;
  1635. }
  1636. public int editAddPerRewRecs(PerForm form, PerForm selectedPerForm){
  1637. if (form.getRewRecords().size() > 0){
  1638. // 开始删除
  1639. // TODO bug
  1640. if(selectedPerForm.getRewRecords() == null || form.getRewRecords().size() != selectedPerForm.getRewRecords().size()){
  1641. // 删除
  1642. List<String> listOne = new ArrayList<>();
  1643. List<PerRewRec> perRewRecs = new ArrayList<>();
  1644. PerRewRec tempedPerRewRec;
  1645. for (PerRewRec perRewRec : form.getRewRecords()) {
  1646. if (null != perRewRec.getId() && !"".equals(perRewRec.getId())){
  1647. listOne.add(perRewRec.getId().toString());
  1648. }else {
  1649. tempedPerRewRec = new PerRewRec();
  1650. tempedPerRewRec.setPid(form.getPer().getId());
  1651. tempedPerRewRec.setTime(perRewRec.getTime());
  1652. tempedPerRewRec.setContent(perRewRec.getContent());
  1653. tempedPerRewRec.setCreateTime(DateUtils.getCurrentFromatTime());
  1654. tempedPerRewRec.setOperator(form.getPer().getOperator());
  1655. perRewRecs.add(tempedPerRewRec);
  1656. }
  1657. }
  1658. if (perRewRecs.size() > 0){
  1659. PerRewRec savedPerRewRec;
  1660. int updatedPerRewRec = 0;
  1661. for (PerRewRec perRewRec : perRewRecs) {
  1662. // 做添加加操作
  1663. savedPerRewRec = new PerRewRec();
  1664. savedPerRewRec.setPid(form.getPer().getId());
  1665. savedPerRewRec.setTime(perRewRec.getTime());
  1666. savedPerRewRec.setContent(perRewRec.getContent());
  1667. savedPerRewRec.setCreateTime(DateUtils.getCurrentFromatTime());
  1668. savedPerRewRec.setUpdateTime(DateUtils.getCurrentFromatTime());
  1669. savedPerRewRec.setOperator(form.getPer().getOperator());
  1670. if (rewRecMapper.insert(savedPerRewRec) > 0){
  1671. updatedPerRewRec++;
  1672. }
  1673. }
  1674. if (updatedPerRewRec > 0){
  1675. return 1;
  1676. }
  1677. }else {
  1678. if (deleteWithRewRecords(form,selectedPerForm) > 0){
  1679. return 1;
  1680. }
  1681. }
  1682. }
  1683. }
  1684. return 0;
  1685. }
  1686. public int editAddPerSocRels(PerForm form, PerForm selectedPerForm){
  1687. if (form.getSocRelations().size() > 0){
  1688. // 开始删除
  1689. if(selectedPerForm.getSocRelations() == null || form.getSocRelations().size() != selectedPerForm.getSocRelations().size()){
  1690. // 删除
  1691. List<String> listOne = new ArrayList<>();
  1692. List<PerSocRel> perSocRels = new ArrayList<>();
  1693. PerSocRel tempedPerSocRel;
  1694. for (PerSocRel perSocRel : form.getSocRelations()) {
  1695. if (null != perSocRel.getId() && !"".equals(perSocRel.getId())){
  1696. listOne.add(perSocRel.getId().toString());
  1697. }else {
  1698. tempedPerSocRel = new PerSocRel();
  1699. tempedPerSocRel.setPid(form.getPer().getId());
  1700. tempedPerSocRel.setRelation(perSocRel.getRelation());
  1701. tempedPerSocRel.setName(perSocRel.getName());
  1702. tempedPerSocRel.setAge(perSocRel.getAge());
  1703. tempedPerSocRel.setPoliticalStatus(perSocRel.getPoliticalStatus());
  1704. tempedPerSocRel.setDeptJob(perSocRel.getDeptJob());
  1705. tempedPerSocRel.setCreateTime(DateUtils.getCurrentFromatTime());
  1706. tempedPerSocRel.setOperator(form.getPer().getOperator());
  1707. perSocRels.add(tempedPerSocRel);
  1708. }
  1709. }
  1710. if (perSocRels.size() > 0){
  1711. PerSocRel savedPerSocRel;
  1712. int updatedPerSocRel = 0;
  1713. for (PerSocRel socRel : perSocRels) {
  1714. // 做添加加操作
  1715. savedPerSocRel = new PerSocRel();
  1716. savedPerSocRel.setPid(form.getPer().getId());
  1717. savedPerSocRel.setRelation(socRel.getRelation());
  1718. savedPerSocRel.setName(socRel.getName());
  1719. savedPerSocRel.setAge(socRel.getAge());
  1720. savedPerSocRel.setPoliticalStatus(socRel.getPoliticalStatus());
  1721. savedPerSocRel.setDeptJob(socRel.getDeptJob());
  1722. savedPerSocRel.setCreateTime(DateUtils.getCurrentFromatTime());
  1723. savedPerSocRel.setUpdateTime(DateUtils.getCurrentFromatTime());
  1724. savedPerSocRel.setOperator(form.getPer().getOperator());
  1725. if (socRelMapper.insert(savedPerSocRel) > 0){
  1726. updatedPerSocRel++;
  1727. }
  1728. }
  1729. if (updatedPerSocRel > 0){
  1730. return 1;
  1731. }
  1732. }else {
  1733. if (deleteWithSocRelations(form,selectedPerForm) > 0){
  1734. return 1;
  1735. }
  1736. }
  1737. }
  1738. }
  1739. return 0;
  1740. }
  1741. public int editAddPerWorkRecs(PerForm form, PerForm selectedPerForm){
  1742. if (form.getWorkRecords().size() > 0){
  1743. // 开始删除
  1744. if(selectedPerForm.getWorkRecords() == null || form.getWorkRecords().size() != selectedPerForm.getWorkRecords().size()){
  1745. // 删除
  1746. List<String> listOne = new ArrayList<>();
  1747. List<PerWorkRec> perWorkRecs = new ArrayList<>();
  1748. PerWorkRec tempedPerWorkRec;
  1749. for (PerWorkRec perWorkRec : form.getWorkRecords()) {
  1750. if (null != perWorkRec.getId() && !"".equals(perWorkRec.getId())){
  1751. listOne.add(perWorkRec.getId().toString());
  1752. }else {
  1753. tempedPerWorkRec = new PerWorkRec();
  1754. tempedPerWorkRec.setPid(form.getPer().getId());
  1755. tempedPerWorkRec.setTime(perWorkRec.getTime());
  1756. tempedPerWorkRec.setDepartment(perWorkRec.getDepartment());
  1757. tempedPerWorkRec.setJob(perWorkRec.getJob());
  1758. tempedPerWorkRec.setCreateTime(DateUtils.getCurrentFromatTime());
  1759. tempedPerWorkRec.setOperator(form.getPer().getOperator());
  1760. perWorkRecs.add(tempedPerWorkRec);
  1761. }
  1762. }
  1763. if (perWorkRecs.size() > 0){
  1764. PerWorkRec savedPerWorkRec;
  1765. int updatedPerWorkRec = 0;
  1766. for (PerWorkRec perWorkRec : perWorkRecs) {
  1767. // 做添加加操作
  1768. savedPerWorkRec = new PerWorkRec();
  1769. savedPerWorkRec.setPid(form.getPer().getId());
  1770. savedPerWorkRec.setTime(perWorkRec.getTime());
  1771. savedPerWorkRec.setDepartment(perWorkRec.getDepartment());
  1772. savedPerWorkRec.setJob(perWorkRec.getJob());
  1773. savedPerWorkRec.setCreateTime(DateUtils.getCurrentFromatTime());
  1774. savedPerWorkRec.setUpdateTime(DateUtils.getCurrentFromatTime());
  1775. savedPerWorkRec.setOperator(form.getPer().getOperator());
  1776. if (workRecMapper.insert(savedPerWorkRec) > 0){
  1777. updatedPerWorkRec++;
  1778. }
  1779. }
  1780. if (updatedPerWorkRec > 0){
  1781. return 1;
  1782. }
  1783. }else {
  1784. if (deleteWithWorkRecords(form,selectedPerForm) > 0){
  1785. return 1;
  1786. }
  1787. }
  1788. }
  1789. }
  1790. return 0;
  1791. }
  1792. /**
  1793. * TODO 根据岗龄/党龄转换时间
  1794. *
  1795. * @param chooseAge
  1796. * @return String
  1797. */
  1798. public static String getSqlTime(String chooseAge) {
  1799. String currentTime = DateUtils.getCurrentFromatDate();
  1800. String timeFormatYear;
  1801. String time;
  1802. if (null != chooseAge) {
  1803. timeFormatYear = StringUtils.substring(currentTime, 0, 4);
  1804. time = String.valueOf(Integer.valueOf(timeFormatYear) - Integer.valueOf(chooseAge));
  1805. } else {
  1806. time = "";
  1807. }
  1808. return time;
  1809. }
  1810. /**
  1811. * TODO 统计人员性质和教育。
  1812. * @param politicsStatus
  1813. * @param education
  1814. * @return
  1815. */
  1816. public int getCountByPerNatureAndEducation(String politicsStatus, String education) {
  1817. Map<String, Object> map = new HashMap<>();
  1818. List<Per> pers = new ArrayList<>();
  1819. if (null != politicsStatus && "-1".equals(education)) {
  1820. map.put("politicsStatus", politicsStatus);
  1821. pers = perMapper.countByParam(map);
  1822. } else if (null != education && "-1".equals(politicsStatus)) {
  1823. map.put("education", education);
  1824. pers = perMapper.countByParam(map);
  1825. }
  1826. return pers.size();
  1827. }
  1828. /**
  1829. * TODO 获取年龄方法。
  1830. * @param minAge
  1831. * @param maxAge
  1832. * @param flag
  1833. * @return
  1834. */
  1835. public int getAge(int minAge, int maxAge, int flag) {
  1836. String minAgeStr;
  1837. String maxAgeStr;
  1838. List<Per> pers = new ArrayList<>();
  1839. if (0 != minAge && maxAge > 0 && flag != -1) {
  1840. String currentTime = DateUtils.getCurrentFromatDate();
  1841. String timeFormatYear;
  1842. timeFormatYear = StringUtils.substring(currentTime, 0, 4);
  1843. maxAgeStr = String.valueOf(Integer.valueOf(timeFormatYear) - minAge) + "-12-31";
  1844. minAgeStr = String.valueOf(Integer.valueOf(timeFormatYear) - maxAge) + "-01-01";
  1845. Map<String, Object> birthdayMap = new HashMap<>();
  1846. birthdayMap.put("startBirthday", minAgeStr);
  1847. birthdayMap.put("endBirthday", maxAgeStr);
  1848. pers = perMapper.countByParam(birthdayMap);
  1849. } else if (0 != minAge && maxAge > 0 && flag == -1) {
  1850. String currentTime = DateUtils.getCurrentFromatDate();
  1851. String timeFormatYear;
  1852. timeFormatYear = StringUtils.substring(currentTime, 0, 4);
  1853. maxAgeStr = String.valueOf(Integer.valueOf(timeFormatYear) - minAge) + "-12-31";
  1854. minAgeStr = String.valueOf(Integer.valueOf(timeFormatYear) - maxAge) + "-01-01";
  1855. Map<String, Object> workingTimeMap = new HashMap<>();
  1856. workingTimeMap.put("startWorkingTime", minAgeStr);
  1857. workingTimeMap.put("endWorkingTime", maxAgeStr);
  1858. pers = perMapper.countByParam(workingTimeMap);
  1859. } else if (minAge == 61 && maxAge == 0 && flag != -1) {
  1860. String currentTime = DateUtils.getCurrentFromatDate();
  1861. String timeFormatYear;
  1862. timeFormatYear = StringUtils.substring(currentTime, 0, 4);
  1863. minAgeStr = String.valueOf(Integer.valueOf(timeFormatYear) - minAge) + "-12-31";
  1864. Map<String, Object> birthdayMap = new HashMap<>();
  1865. birthdayMap.put("finalBirthday", minAgeStr);
  1866. pers = perMapper.countBySpecialParam(birthdayMap);
  1867. } else if (minAge == 31 && maxAge == -1 && flag == -1) {
  1868. String currentTime = DateUtils.getCurrentFromatDate();
  1869. String timeFormatYear;
  1870. timeFormatYear = StringUtils.substring(currentTime, 0, 4);
  1871. String ageStr = String.valueOf(Integer.valueOf(timeFormatYear) - minAge);
  1872. minAgeStr = ageStr + "-12-31";
  1873. Map<String, Object> workingTimeMap = new HashMap<>();
  1874. workingTimeMap.put("finalWorkingTime", minAgeStr);
  1875. pers = perMapper.countByParam(workingTimeMap);
  1876. }
  1877. return pers.size();
  1878. }
  1879. /**
  1880. * TODO 职级转换方法。
  1881. * @param jobRank
  1882. * @param jobTitle
  1883. * @param perNature
  1884. * @return
  1885. */
  1886. public int getCountByJobRank(String jobRank, String jobTitle, String perNature) {
  1887. List<Per> pers = new ArrayList<>();
  1888. Map<String, Object> map = new HashMap<>();
  1889. if (null != jobRank && "-1".equals(jobTitle) && "-1".equals(perNature)) {
  1890. map.put("jobRank", jobRank);
  1891. pers = perMapper.countByParam(map);
  1892. } else if (null != jobTitle && "-1".equals(jobRank) && "-1".equals(perNature)) {
  1893. map.put("jobTitle", jobTitle);
  1894. pers = perMapper.countByParam(map);
  1895. } else if (null != perNature && "-1".equals(jobRank) && "-1".equals(jobTitle)) {
  1896. map.put("perNature", perNature);
  1897. pers = perMapper.countByParam(map);
  1898. }
  1899. return pers.size();
  1900. }
  1901. /**
  1902. * TODO 根据id获取信息列表方法。
  1903. * @param id
  1904. * @return
  1905. */
  1906. public PerForm getPerFormInfo(long id) {
  1907. PerForm perForm = new PerForm();
  1908. Per personnel = perMapper.selectById(id);
  1909. if (null != personnel) {
  1910. perForm.setPer(personnel);
  1911. }
  1912. List<PerEduRec> eduRecords = eduRecService.findByPid(id);
  1913. if (CollectionUtils.isNotEmpty(eduRecords)) {
  1914. perForm.setEduRecords(eduRecords);
  1915. }
  1916. List<PerWorkRec> workRecords = workRecService.findByPid(id);
  1917. if (CollectionUtils.isNotEmpty(workRecords)) {
  1918. perForm.setWorkRecords(workRecords);
  1919. }
  1920. List<PerFamRel> familyRelations = famRelService.findByPid(id);
  1921. if (CollectionUtils.isNotEmpty(familyRelations)) {
  1922. perForm.setFamRelations(familyRelations);
  1923. }
  1924. List<PerSocRel> socialRelations = socRelService.findByPid(id);
  1925. if (CollectionUtils.isNotEmpty(socialRelations)) {
  1926. perForm.setSocRelations(socialRelations);
  1927. }
  1928. List<PerRewRec> rewards = rewRecService.findByPid(id);
  1929. if (CollectionUtils.isNotEmpty(rewards)) {
  1930. perForm.setRewRecords(rewards);
  1931. }
  1932. log.info("getPerFormInfo-->" + JSON.toJSONString(perForm));
  1933. return perForm;
  1934. }
  1935. /**
  1936. * TODO 根据id获取信息列表方法。
  1937. * @param id
  1938. * @return
  1939. */
  1940. public List<PerForm> getPerForms(long id) {
  1941. List<PerForm> form = new ArrayList<>();
  1942. PerForm perForm = new PerForm();
  1943. Per personnel = perMapper.selectById(id);
  1944. if (null != personnel) {
  1945. perForm.setPer(personnel);
  1946. }
  1947. List<PerEduRec> eduRecords = eduRecService.findByPid(id);
  1948. if (CollectionUtils.isNotEmpty(eduRecords)) {
  1949. perForm.setEduRecords(eduRecords);
  1950. }
  1951. List<PerWorkRec> workRecords = workRecService.findByPid(id);
  1952. if (CollectionUtils.isNotEmpty(workRecords)) {
  1953. perForm.setWorkRecords(workRecords);
  1954. }
  1955. List<PerFamRel> familyRelations = famRelService.findByPid(id);
  1956. if (CollectionUtils.isNotEmpty(familyRelations)) {
  1957. perForm.setFamRelations(toFamilyRelations(familyRelations));
  1958. }
  1959. List<PerSocRel> socialRelations = socRelService.findByPid(id);
  1960. if (CollectionUtils.isNotEmpty(socialRelations)) {
  1961. perForm.setSocRelations(socialRelations);
  1962. }
  1963. List<PerRewRec> rewards = rewRecService.findByPid(id);
  1964. if (CollectionUtils.isNotEmpty(rewards)) {
  1965. perForm.setRewRecords(rewards);
  1966. }
  1967. form.add(perForm);
  1968. log.info("getPerForms-->" + JSON.toJSONString(form));
  1969. return form;
  1970. }
  1971. public List<PerFamRel> toFamilyRelations(List<PerFamRel> familyRelations){
  1972. if (null != familyRelations && familyRelations.size() > 0) {
  1973. if (!familyRelations.get(0).getRelation().contains("配偶")){
  1974. log.info("配偶调整。");
  1975. for (int index = 0, length = familyRelations.size(); index < length; index++) {
  1976. if ("配偶".equals(familyRelations.get(index).getRelation())) {
  1977. PerFamRel temp = familyRelations.get(0);
  1978. familyRelations.set(0, familyRelations.get(index));
  1979. familyRelations.set(index, temp);
  1980. }
  1981. }
  1982. }
  1983. }
  1984. return familyRelations;
  1985. }
  1986. public String getDepartureTime(String birthday, String sex, String perNature) {
  1987. if (!TextUtils.isEmpty(birthday) && !TextUtils.isEmpty(sex)){
  1988. if (sex.trim().equals("男")) {
  1989. // 国干 非国干 60
  1990. if (StringUtils.countMatches(birthday, "-") >= 1) {
  1991. String departureTime = getRemindDate(birthday, 60);
  1992. return departureTime;
  1993. }
  1994. } else if (sex.trim().equals("女")) {
  1995. if (perNature.trim().equals("国干")) {
  1996. // 国干 55
  1997. if (StringUtils.countMatches(birthday, "-") >= 1) {
  1998. String departureTime = getRemindDate(birthday, 55);
  1999. return departureTime;
  2000. }
  2001. } else {
  2002. // 非国干 50
  2003. if (StringUtils.countMatches(birthday, "-") >= 1) {
  2004. String departureTime = getRemindDate(birthday, 50);
  2005. return departureTime;
  2006. }
  2007. }
  2008. }
  2009. }else {
  2010. return "";
  2011. }
  2012. return "";
  2013. }
  2014. public String getRemindDate(String workingTime, Integer addParam) {
  2015. String subYearStr = StringUtils.substring(workingTime, 0, 4);
  2016. String subMonthStr = StringUtils.substring(workingTime, 5, 7);
  2017. String subDayStr = StringUtils.substring(workingTime, 8, 10);
  2018. String yearStr = String.valueOf(Integer.parseInt(subYearStr) + addParam);
  2019. String remindDate = yearStr + "-" + subMonthStr + "-" + subDayStr;
  2020. return remindDate;
  2021. }
  2022. }