EmpEnrollBizBillHrManEditHandlerEx.java 21 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516
  1. package com.kingdee.shr.affair.web.handler.hrman;
  2. import java.io.UnsupportedEncodingException;
  3. import java.net.URLDecoder;
  4. import java.sql.SQLException;
  5. import java.text.MessageFormat;
  6. import java.util.HashMap;
  7. import java.util.Map;
  8. import javax.servlet.http.HttpServletRequest;
  9. import javax.servlet.http.HttpServletResponse;
  10. import org.apache.commons.lang3.StringUtils;
  11. import org.springframework.ui.ModelMap;
  12. import com.kingdee.bos.BOSException;
  13. import com.kingdee.bos.Context;
  14. import com.kingdee.bos.dao.ormapping.ObjectUuidPK;
  15. import com.kingdee.bos.metadata.entity.EntityViewInfo;
  16. import com.kingdee.bos.metadata.entity.FilterInfo;
  17. import com.kingdee.bos.metadata.entity.FilterItemInfo;
  18. import com.kingdee.bos.metadata.entity.SelectorItemCollection;
  19. import com.kingdee.bos.metadata.entity.SelectorItemInfo;
  20. import com.kingdee.bos.util.BOSUuid;
  21. import com.kingdee.eas.basedata.org.AdminOrgUnitInfo;
  22. import com.kingdee.eas.basedata.org.HROrgUnitInfo;
  23. import com.kingdee.eas.basedata.person.PersonCollection;
  24. import com.kingdee.eas.basedata.person.PersonFactory;
  25. import com.kingdee.eas.basedata.person.PersonInfo;
  26. import com.kingdee.eas.common.EASBizException;
  27. import com.kingdee.eas.framework.CoreBaseInfo;
  28. import com.kingdee.eas.hr.affair.EmpEnrollBizBillEntryCollection;
  29. import com.kingdee.eas.hr.affair.EmpEnrollBizBillEntryInfo;
  30. import com.kingdee.eas.hr.affair.EmpEnrollBizBillFactory;
  31. import com.kingdee.eas.hr.affair.EmpEnrollBizBillInfo;
  32. import com.kingdee.eas.hr.base.EmpPosOrgRelationException;
  33. import com.kingdee.eas.hr.base.EmpPosOrgRelationInfo;
  34. import com.kingdee.eas.hr.base.EnrollAgainCodingEnum;
  35. import com.kingdee.eas.hr.base.HRBillStateEnum;
  36. import com.kingdee.eas.hr.base.HRBizDefineFactory;
  37. import com.kingdee.eas.hr.base.HRBizDefineInfo;
  38. import com.kingdee.eas.hr.base.VariationReasonCollection;
  39. import com.kingdee.eas.hr.base.VariationReasonFactory;
  40. import com.kingdee.eas.hr.base.util.HRUtilExtend;
  41. import com.kingdee.eas.hr.emp.IPersonOtherInfo;
  42. import com.kingdee.eas.hr.emp.IPersonPhoto;
  43. import com.kingdee.eas.hr.emp.PersonOtherInfoCollection;
  44. import com.kingdee.eas.hr.emp.PersonOtherInfoFactory;
  45. import com.kingdee.eas.hr.emp.PersonPhotoCollection;
  46. import com.kingdee.eas.hr.emp.PersonPhotoFactory;
  47. import com.kingdee.eas.hr.emp.PersonPhotoInfo;
  48. import com.kingdee.eas.hr.emp.app.util.SHREmpOptEmpOrgRelationTool;
  49. import com.kingdee.eas.util.app.DbUtil;
  50. import com.kingdee.jdbc.rowset.IRowSet;
  51. import com.kingdee.shr.affair.web.handler.util.EmployeeUtil;
  52. import com.kingdee.shr.base.syssetting.app.io.fileImport.ImportException;
  53. import com.kingdee.shr.base.syssetting.context.SHRContext;
  54. import com.kingdee.shr.base.syssetting.exception.SHRWebException;
  55. import com.kingdee.shr.base.syssetting.exception.ShrWebBizException;
  56. import com.kingdee.shr.base.syssetting.ml.SHRWebResource;
  57. import com.kingdee.shr.base.syssetting.web.json.JSONUtils;
  58. import com.kingdee.shr.preentry.PreEntryCollection;
  59. import com.kingdee.shr.preentry.PreEntryFactory;
  60. import com.kingdee.shr.preentry.PreEntryInfo;
  61. import com.kingdee.shr.preentry.PreEntryPersonInfo;
  62. import com.kingdee.eas.hr.base.HRBizDefineTypeEnum;
  63. import com.kingdee.eas.hr.base.util.HRParamUtil;
  64. /**
  65. * 入职单Handler扩展
  66. * @author issuser
  67. *
  68. */
  69. public class EmpEnrollBizBillHrManEditHandlerEx extends EmpEnrollBizBillHrManEditHandler{
  70. @Override
  71. protected void beforeSave(HttpServletRequest request,
  72. HttpServletResponse response, CoreBaseInfo model)
  73. throws SHRWebException {
  74. super.beforeSave(request, response, model);
  75. EmpEnrollBizBillInfo billInfo = (EmpEnrollBizBillInfo) model;
  76. if (billInfo.getBillState() == null) {
  77. billInfo.setBillState(HRBillStateEnum.SAVED);
  78. }
  79. storefields(request, billInfo);
  80. }
  81. private CoreBaseInfo storefields(HttpServletRequest request,
  82. CoreBaseInfo model) throws SHRWebException {
  83. EmpEnrollBizBillInfo billInfo = (EmpEnrollBizBillInfo) model;
  84. if (billInfo.getId() == null) {
  85. billInfo.setIsMultiEntry(Boolean.TRUE.booleanValue());
  86. }
  87. EmpEnrollBizBillEntryInfo entryInfo = billInfo.getEntrys().get(0);
  88. if ((entryInfo.getPerson() != null)
  89. && (entryInfo.getPerson().getId() == null)) {
  90. entryInfo.setPerson(null);
  91. }
  92. entryInfo.setBill(billInfo);
  93. EmpEnrollBizBillEntryCollection entryColl = null;
  94. if (!(StringUtils.isEmpty(request.getParameter("multiEntryBillId")))) {
  95. try {
  96. String multiEntryBillId = URLDecoder.decode(request
  97. .getParameter("multiEntryBillId"), "utf-8");
  98. EmpEnrollBizBillInfo multiEntryBillInfo = EmpEnrollBizBillFactory
  99. .getRemoteInstance().getEmpEnrollBizBillInfo(
  100. new ObjectUuidPK(multiEntryBillId));
  101. billInfo.setId(multiEntryBillInfo.getId());
  102. billInfo.setAdminOrg(multiEntryBillInfo.getAdminOrg());
  103. billInfo.setApplier(multiEntryBillInfo.getApplier());
  104. billInfo.setIsMulti(Boolean.TRUE.booleanValue());
  105. entryInfo.setBill(multiEntryBillInfo);
  106. //判断是否再入职
  107. //变动操作
  108. String hrBizDefineId = multiEntryBillInfo.getString("hrBizDefine");
  109. Context ctx = SHRContext.getInstance().getContext();
  110. HRBizDefineInfo hrBizDefineInfo = HRBizDefineFactory.getLocalInstance(ctx).getHRBizDefineInfo(new ObjectUuidPK(hrBizDefineId));
  111. //不是再入职,重新获取员工编码
  112. if( !"SHR02".equals(hrBizDefineInfo.getNumber())) {
  113. //员工编码
  114. EmployeeUtil employeeUtil = new EmployeeUtil();
  115. int fnumber = employeeUtil.getFnumber();
  116. entryInfo.setEmpNumber(String.valueOf(fnumber));
  117. }
  118. entryColl = multiEntryBillInfo.getEntrys();
  119. entryColl.add(entryInfo);
  120. } catch (EASBizException e) {
  121. e.printStackTrace();
  122. throw new SHRWebException(e);
  123. } catch (BOSException e) {
  124. e.printStackTrace();
  125. throw new SHRWebException(e);
  126. } catch (UnsupportedEncodingException e) {
  127. e.printStackTrace();
  128. throw new SHRWebException(e);
  129. } catch (SQLException e) {
  130. e.printStackTrace();
  131. }
  132. } else {
  133. billInfo.setAdminOrg(entryInfo.getAdminOrg());
  134. billInfo.setIsMulti(Boolean.FALSE.booleanValue());
  135. entryColl = new EmpEnrollBizBillEntryCollection();
  136. entryColl.add(entryInfo);
  137. }
  138. try {
  139. HRUtilExtend.assableCell(entryInfo, "telNum");
  140. } catch (EASBizException e) {
  141. e.printStackTrace();
  142. throw new SHRWebException(e.getMessage());
  143. }
  144. billInfo.getEntrys().clear();
  145. billInfo.getEntrys().addCollection(entryColl);
  146. return billInfo;
  147. }
  148. @Override
  149. protected void verifyModel(HttpServletRequest request,
  150. HttpServletResponse response, CoreBaseInfo model)
  151. throws SHRWebException {
  152. EmpEnrollBizBillInfo billInfo = (EmpEnrollBizBillInfo) model;
  153. EmpEnrollBizBillEntryCollection coll = billInfo.getEntrys();
  154. try {
  155. //不是再入职,校验用户名、邮箱
  156. EmployeeUtil employeeUtil = new EmployeeUtil();
  157. if ((null != coll) && (coll.size() > 0)) {
  158. int i = 0;
  159. for (int size = coll.size(); i < size; ++i) {
  160. EmpEnrollBizBillEntryInfo info = coll.get(i);
  161. HRBizDefineInfo hrBizDefineInfo = info.getHrBizDefine();
  162. System.out.print("入职hrBizDefineInfo:"+hrBizDefineInfo.getNumber());
  163. if(!"SHR02".equals(hrBizDefineInfo.getNumber())) {
  164. String fid = billInfo.getString("id");
  165. //用户名唯一校验
  166. Boolean isUniqueCheck = employeeUtil.checkUserName(
  167. info.get("userName").toString(),fid,info.getEmpNumber());
  168. if( !isUniqueCheck){
  169. throw new ImportException("This user name :"+ info.get("userName") + ",already exists");
  170. }
  171. //邮箱唯一校验
  172. Boolean emailCheck = employeeUtil.checkEmail(info.get("email").toString(),fid,info.getEmpNumber());
  173. if( !emailCheck){
  174. throw new ImportException("The user mailbox already exists. Procedure !");
  175. }
  176. }
  177. }
  178. }
  179. } catch (BOSException e1) {
  180. e1.printStackTrace();
  181. } catch (SQLException e1) {
  182. e1.printStackTrace();
  183. }
  184. super.verifyModel(request, response, model);
  185. }
  186. /**
  187. * 获取预入职单的信息
  188. * @param request
  189. * @param response
  190. * @param modelMap
  191. * @throws SHRWebException
  192. */
  193. public void getEmpPreEntryDataAction(HttpServletRequest request, HttpServletResponse response, ModelMap modelMap) throws SHRWebException{
  194. Map<String, Object> map = new HashMap<String, Object>();
  195. String preEntryId = request.getParameter("billId");
  196. String sql = " select b.fid as personTypeId , b.fname_l1 as personTypeName, " +
  197. " c.fid as wcategoryId , c.fname_l1 as wcategoryName, " +
  198. " d.fid as ftorptId , d.fname_l1 as ftorptName, " +
  199. " e.fid as lmanagerId , e.fname_l1 as lmanagerName, " +
  200. " f.fid as rmethodId , f.fname_l1 as rmethodName, " +
  201. " g.fid as jobsId , g.fname_l1 as jobsName, " +
  202. " h.fid as academictitleId , h.fname_l1 as academictitleName, " +
  203. " j.fname_l1 jobName, k.fname_l1 credentTypeName, l.fname_l1 countryName, " +
  204. " j.fid jobId, k.fid credentTypeId, l.fid countryId " +
  205. " from t_hr_preentry a " +
  206. " left join T_HR_EmployeeClassify b on a.CFPersontypeID = b.fid " +
  207. " left join CT_MP_WorkerCategory c on a.CFWcategoryID = c.fid " +
  208. " left join CT_MP_Fullorpart d on a.CFFtorptID = d.fid " +
  209. " left join t_bd_person e on a.CFLmanagerID = e.fid " +
  210. " left join CT_MP_Ratepayingmethod f on a.CFRmethodId = f.fid " +
  211. " left join CT_HR_Job2 g on a.cfjobsId = g.fid " +
  212. " left join CT_MP_AcademicTitle h on a.cfacademictitleId = h.fid " +
  213. " left join T_HR_JobGrade j on a.CFJOBGRADEID = j.fid " +
  214. " left join T_HR_CredentialsType k on a.CFDOCUMENTTYPEID = k.fid " +
  215. " left join T_HR_CountryRegion l on a.cfcountryregionid = l.fid " +
  216. " where a.fid = '" + preEntryId + "'";
  217. Context ctx = SHRContext.getInstance().getContext();
  218. try {
  219. IRowSet rs = DbUtil.executeQuery(ctx, sql);
  220. while (rs.next()) {
  221. map.put("personTypeId",rs.getString("personTypeId"));
  222. map.put("personTypeName",rs.getString("personTypeName"));
  223. map.put("wcategoryId",rs.getString("wcategoryId"));
  224. map.put("wcategoryName",rs.getString("wcategoryName"));
  225. map.put("ftorptId",rs.getString("ftorptId"));
  226. map.put("ftorptName",rs.getString("ftorptName"));
  227. map.put("lmanagerId",rs.getString("lmanagerId"));
  228. map.put("lmanagerName",rs.getString("lmanagerName"));
  229. map.put("rmethodId",rs.getString("rmethodId"));
  230. map.put("rmethodName",rs.getString("rmethodName"));
  231. map.put("jobsId",rs.getString("jobsId"));
  232. map.put("jobsName",rs.getString("jobsName"));
  233. map.put("academictitleId",rs.getString("academictitleId"));
  234. map.put("academictitleName",rs.getString("academictitleName"));
  235. map.put("jobName",rs.getString("jobName"));
  236. map.put("credentTypeName",rs.getString("credentTypeName"));
  237. map.put("countryName",rs.getString("countryName"));
  238. map.put("jobId",rs.getString("jobId"));
  239. map.put("credentTypeId",rs.getString("credentTypeId"));
  240. map.put("countryId",rs.getString("countryId"));
  241. }
  242. } catch (SQLException e) {
  243. e.printStackTrace();
  244. } catch (BOSException e) {
  245. e.printStackTrace();
  246. }
  247. JSONUtils.writeJson(response, map);
  248. }
  249. /**
  250. * 新增单据获取编码
  251. * @param request
  252. * @param response
  253. * @param modelMap
  254. * @throws SHRWebException
  255. * @throws SQLException
  256. * @throws BOSException
  257. */
  258. public void getEmpNumberAction(HttpServletRequest request, HttpServletResponse response, ModelMap modelMap) throws SHRWebException, BOSException, SQLException{
  259. Map<String, Object> map = new HashMap<String, Object>();
  260. EmployeeUtil employeeUtil = new EmployeeUtil();
  261. int fnumber = employeeUtil.getFnumber();
  262. map.put("empNumber", fnumber);
  263. JSONUtils.writeJson(response, map);
  264. }
  265. /**
  266. * 根据身份证号获取人员名称相关信息
  267. * @param request
  268. * @param response
  269. * @param modelMap
  270. * @return
  271. * @throws SHRWebException
  272. */
  273. public String getPersonNameAction(HttpServletRequest request, HttpServletResponse response, ModelMap modelMap) throws SHRWebException{
  274. Context ctx = SHRContext.getInstance().getContext();
  275. String idEnitiy = request.getParameter("idEntity");
  276. String sql = "select cfsurname,cfmiddlenames,cfgivenname,cflocalname,cfusername from T_BD_Person where fpassportno = '"+idEnitiy+"' or fidcardno = '"+idEnitiy+"' order by flastupdatetime desc";
  277. try {
  278. IRowSet rs = DbUtil.executeQuery(ctx, sql);
  279. while (rs.next()) {
  280. //姓
  281. modelMap.put("surName", rs.getString("cfsurname"));
  282. //中间名
  283. modelMap.put("middleName", rs.getString("cfmiddlenames"));
  284. //名
  285. modelMap.put("givenName", rs.getString("cfgivenname"));
  286. //本地名称
  287. modelMap.put("localName", rs.getString("cflocalname"));
  288. //用户名
  289. modelMap.put("userName", rs.getString("cfusername"));
  290. JSONUtils.writeJson(response, modelMap);
  291. return null;
  292. }
  293. } catch (BOSException e) {
  294. e.printStackTrace();
  295. } catch (SQLException e) {
  296. e.printStackTrace();
  297. }
  298. modelMap.put("surName", "");
  299. modelMap.put("middleName", "");
  300. modelMap.put("givenName", "");
  301. modelMap.put("localName", "");
  302. modelMap.put("userName", "");
  303. return null;
  304. }
  305. //******************************************重新getPreEntryInitDataAction方法****************************20250504
  306. public void getPreEntryInitDataAction(HttpServletRequest request, HttpServletResponse response, ModelMap modelMap)
  307. throws BOSException, SHRWebException {
  308. String billId = "";
  309. if (request.getParameter("billId") != null && !request.getParameter("billId").equals("")) {
  310. billId = request.getParameter("billId");
  311. }
  312. PreEntryInfo preEntryInfo = new PreEntryInfo();
  313. StringBuffer sql = new StringBuffer();
  314. sql.append("select *,talent.*").append(",position.id,position.name").append(",hrOrgUnit.id,hrOrgUnit.name").append(",empType.id,empType.name")
  315. .append(",adminOrg.id,adminOrg.name").append(",enrollSource.id,enrollSource.name,enrollSource.number")
  316. .append(",talent.folk.id,talent.folk.name,talent.zodiac.id,talent.zodiac.name,talent.constellation.id,talent.constellation.name")
  317. .append(",sourceBillType").append(" where id = '").append(billId).append("'");
  318. PreEntryCollection coll = PreEntryFactory.getRemoteInstance().getPreEntryCollection(sql.toString());
  319. String tempid;
  320. if (coll.size() > 0) {
  321. preEntryInfo = coll.get(0);
  322. if (preEntryInfo.getEnrollSource() != null && preEntryInfo.getEnrollSource().getNumber() != null) {
  323. VariationReasonCollection vrColl = VariationReasonFactory.getRemoteInstance()
  324. .getVariationReasonCollection("select id,name,number where number='"
  325. + preEntryInfo.getEnrollSource().getNumber() + "'");
  326. if (vrColl.size() > 0) {
  327. preEntryInfo.put("enrollSource", vrColl.get(0));
  328. }
  329. }
  330. try {
  331. this.assemblePreEntryEnrollAgainInfo(preEntryInfo.getTalent(), preEntryInfo.getHrOrgUnit(), modelMap);
  332. } catch (EASBizException var16) {
  333. var16.printStackTrace();
  334. throw new ShrWebBizException(var16.getMessage(), var16);
  335. }
  336. if (preEntryInfo.getTalent() != null && preEntryInfo.getTalent().getPerson() != null
  337. && preEntryInfo.getTalent().getPerson().getId() != null) {
  338. IPersonPhoto iPersonPhoto = PersonPhotoFactory.getRemoteInstance();
  339. PersonPhotoCollection phcoll = iPersonPhoto.getPersonPhotoCollection(
  340. "where person = '" + preEntryInfo.getTalent().getPerson().getId().toString() + "'");
  341. if (phcoll.size() > 0) {
  342. tempid = request.getParameter("tempId");
  343. PersonPhotoInfo personPhotoInfo = phcoll.get(0);
  344. PersonPhotoInfo addPhoto = new PersonPhotoInfo();
  345. PersonInfo pInfo = new PersonInfo();
  346. pInfo.setId(BOSUuid.read(tempid));
  347. addPhoto.setPerson(pInfo);
  348. addPhoto.setImageDataSource(personPhotoInfo.getImageDataSource());
  349. addPhoto.setImageData(personPhotoInfo.getImageData());
  350. addPhoto.setSourceImageHeight(personPhotoInfo.getSourceImageHeight());
  351. addPhoto.setSourceImageWidth(personPhotoInfo.getSourceImageWidth());
  352. addPhoto.setImageContentType(personPhotoInfo.getImageContentType());
  353. try {
  354. iPersonPhoto.addnew(addPhoto);
  355. } catch (EASBizException var15) {
  356. var15.printStackTrace();
  357. throw new ShrWebBizException(var15.getMessage(), var15);
  358. }
  359. }
  360. }
  361. }
  362. AdminOrgUnitInfo adminOrg = preEntryInfo.getAdminOrg();
  363. HROrgUnitInfo hrOrgUnit = preEntryInfo.getHrOrgUnit();
  364. tempid = request.getParameter("uipk");
  365. if (!"com.kingdee.eas.hr.affair.app.team.EmpEnrollBizBill.form".equals(tempid)) {
  366. this.checkAdminOrgUnitDataPermission(request, adminOrg.getId().toString());
  367. }
  368. this.checkHROrgUnitDataPermission(request, hrOrgUnit.getId().toString());
  369. modelMap.put("preEntryInfo", preEntryInfo);
  370. JSONUtils.writeJson(response, modelMap);
  371. }
  372. private void assemblePreEntryEnrollAgainInfo(PreEntryPersonInfo preEntryPerson, HROrgUnitInfo hrOrg,
  373. ModelMap modelMap) throws BOSException, EASBizException {
  374. if (preEntryPerson != null) {
  375. EntityViewInfo viewInfo = new EntityViewInfo();
  376. FilterInfo filter = new FilterInfo();
  377. if (!StringUtils.isEmpty(preEntryPerson.getPassportNO())) {
  378. filter.getFilterItems().add(new FilterItemInfo("passportNo", preEntryPerson.getPassportNO()));
  379. }
  380. if (!StringUtils.isEmpty(preEntryPerson.getIdCardNO())) {
  381. String maskStr = "#0 or #1";
  382. if (filter.getFilterItems().size() > 0) {
  383. maskStr = "#0 or #1 or #2";
  384. }
  385. filter.getFilterItems().add(new FilterItemInfo("idCardNO", preEntryPerson.getIdCardNO().toUpperCase()));
  386. filter.getFilterItems().add(new FilterItemInfo("idCardNO", preEntryPerson.getIdCardNO()));
  387. filter.setMaskString(maskStr);
  388. }
  389. if (filter.getFilterItems().size() > 0) {
  390. viewInfo.setFilter(filter);
  391. SelectorItemCollection selector = new SelectorItemCollection();
  392. selector.add(new SelectorItemInfo("id"));
  393. selector.add(new SelectorItemInfo("number"));
  394. selector.add(new SelectorItemInfo("employeeType.id"));
  395. selector.add(new SelectorItemInfo("employeeType.isInCount"));
  396. viewInfo.setSelector(selector);
  397. PersonCollection pColl = PersonFactory.getRemoteInstance().getPersonCollection(viewInfo);
  398. if (pColl.size() > 0) {
  399. PersonInfo pInfo = pColl.get(0);
  400. if (!pInfo.getEmployeeType().isIsInCount()) {
  401. String personId = pInfo.getId().toString();
  402. Context ctx = SHRContext.getInstance().getContext();
  403. EmpPosOrgRelationInfo empPosOrgInfo = SHREmpOptEmpOrgRelationTool
  404. .getCurrntMainEmpOrgRelationInfo(ctx, personId);
  405. if (empPosOrgInfo == null) {
  406. modelMap.put("errorMsg", (new EmpPosOrgRelationException(
  407. EmpPosOrgRelationException.PERSON_NO_EMPPOSRELATION_ENROLL)).getMessage());
  408. } else {
  409. HRBizDefineInfo actionInfo = empPosOrgInfo.getAction();
  410. if (this.judgeActionCanEnrollAgain(actionInfo)) {
  411. Map<String, Object> personOldInfo = this.fillPersonBaseInfoData(ctx, preEntryPerson,
  412. pInfo, empPosOrgInfo, hrOrg);
  413. modelMap.put("personOldInfo", personOldInfo);
  414. modelMap.put("personExist", "true");
  415. }
  416. }
  417. }
  418. }
  419. }
  420. }
  421. }
  422. private boolean judgeActionCanEnrollAgain(HRBizDefineInfo actionInfo) {
  423. return !HRBizDefineTypeEnum.ENROLL.equals(actionInfo.getBizDefineType())
  424. && !HRBizDefineTypeEnum.ENROLLAGAIN.equals(actionInfo.getBizDefineType())
  425. && !HRBizDefineTypeEnum.EMPHIRE.equals(actionInfo.getBizDefineType())
  426. && !HRBizDefineTypeEnum.FLUCTUACTION.equals(actionInfo.getBizDefineType())
  427. && !HRBizDefineTypeEnum.REINVITE.equals(actionInfo.getBizDefineType());
  428. }
  429. private Map<String, Object> fillPersonBaseInfoData(Context ctx, PreEntryPersonInfo preEntryPerson,
  430. PersonInfo personInfo, EmpPosOrgRelationInfo empPosOrgInfo, HROrgUnitInfo hrOrg)
  431. throws BOSException, EASBizException {
  432. Map<String, Object> personOldInfo = new HashMap();
  433. personOldInfo.put("empId", personInfo.getId().toString());
  434. personOldInfo.put("empNumber", personInfo.getNumber());
  435. personOldInfo.put("oldEmpType", personInfo.getEmployeeType().getId().toString());
  436. EnrollAgainCodingEnum codingEnum = EnrollAgainCodingEnum.getEnum(Integer.parseInt((String) HRParamUtil
  437. .getParamByKey(ctx, hrOrg == null ? null : hrOrg.getId().toString(), "ENROLL_AGAIN_CODING_RULE")));
  438. personOldInfo.put("useOldNumber", codingEnum.getValue());
  439. if (empPosOrgInfo != null) {
  440. personOldInfo.put("oldPersonDepId", empPosOrgInfo.getAdminOrg().getId().toString());
  441. personOldInfo.put("oldPersonPosId", empPosOrgInfo.getPosition().getId().toString());
  442. }
  443. IPersonOtherInfo iPersonOtherInfo = PersonOtherInfoFactory.getLocalInstance(ctx);
  444. PersonOtherInfoCollection personOtherInfoCollection = iPersonOtherInfo
  445. .getPersonOtherInfoCollection("where person = '" + personInfo.getId().toString() + "'");
  446. if (personOtherInfoCollection.size() > 0) {
  447. personOldInfo.put("jobStartDate", personOtherInfoCollection.get(0).getJobStartDate());
  448. }
  449. String msg = SHRWebResource.getString("com.kingdee.eas.hr.affair.EnrollResource", "personEnrollAgainNumber");
  450. if (hrOrg != null) {
  451. Object[] params;
  452. if (hrOrg != null && EnrollAgainCodingEnum.USE_NEW_NUMBER.equals(codingEnum)) {
  453. params = new Object[]{personInfo.getNumber(), preEntryPerson.getName(), hrOrg.getName(),
  454. EnrollAgainCodingEnum.USE_NEW_NUMBER.getAlias()};
  455. msg = MessageFormat.format(msg, params);
  456. } else {
  457. params = new Object[]{personInfo.getNumber(), preEntryPerson.getName(), hrOrg.getName(),
  458. EnrollAgainCodingEnum.USE_OLD_NUMBER.getAlias()};
  459. msg = MessageFormat.format(msg, params);
  460. }
  461. personOldInfo.put("personNumberMsg", msg);
  462. }
  463. return personOldInfo;
  464. }
  465. //******************************************重新getPreEntryInitDataAction方法****************************20250504********完毕
  466. }