EmpPreEntryEditHandlerEx.java 6.9 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187
  1. package com.kingdee.shr.affair.web.handler;
  2. import java.sql.SQLException;
  3. import java.text.SimpleDateFormat;
  4. import java.util.Calendar;
  5. import java.util.Date;
  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.ObjectUtils;
  11. import org.apache.commons.lang3.StringUtils;
  12. import org.apache.log4j.Logger;
  13. import org.springframework.ui.ModelMap;
  14. import com.kingdee.bos.BOSException;
  15. import com.kingdee.bos.Context;
  16. import com.kingdee.bos.dao.IObjectPK;
  17. import com.kingdee.bos.dao.ormapping.ObjectUuidPK;
  18. import com.kingdee.bos.util.BOSUuid;
  19. import com.kingdee.eas.base.permission.UserInfo;
  20. import com.kingdee.eas.basedata.org.AdminOrgUnitInfo;
  21. import com.kingdee.eas.basedata.org.PositionFactory;
  22. import com.kingdee.eas.basedata.org.PositionInfo;
  23. import com.kingdee.eas.basedata.person.Genders;
  24. import com.kingdee.eas.common.EASBizException;
  25. import com.kingdee.eas.framework.CoreBaseInfo;
  26. import com.kingdee.eas.hr.affair.EmpEnrollBizBillEntryInfo;
  27. import com.kingdee.eas.hr.affair.EmpEnrollBizBillFactory;
  28. import com.kingdee.eas.hr.affair.EmpEnrollBizBillInfo;
  29. import com.kingdee.eas.hr.base.AffairActionReasonCollection;
  30. import com.kingdee.eas.hr.base.AffairActionReasonFactory;
  31. import com.kingdee.eas.hr.base.ApproveTypeEnum;
  32. import com.kingdee.eas.hr.base.EmployeeTypeCollection;
  33. import com.kingdee.eas.hr.base.EmployeeTypeFactory;
  34. import com.kingdee.eas.hr.base.HRBillStateEnum;
  35. import com.kingdee.eas.hr.base.HRBizDefineCollection;
  36. import com.kingdee.eas.hr.base.HRBizDefineFactory;
  37. import com.kingdee.eas.hr.base.VariationReasonCollection;
  38. import com.kingdee.eas.hr.base.VariationReasonFactory;
  39. import com.kingdee.eas.hr.base.util.HRUtilExtend;
  40. import com.kingdee.eas.hr.emp.CredentialsTypeFactory;
  41. import com.kingdee.eas.hr.emp.EmployeeException;
  42. import com.kingdee.eas.hr.emp.web.util.PassPortCommonUtil;
  43. import com.kingdee.eas.util.app.ContextUtil;
  44. import com.kingdee.eas.util.app.DbUtil;
  45. import com.kingdee.jdbc.rowset.IRowSet;
  46. import com.kingdee.shr.base.syssetting.app.io.fileImport.ImportException;
  47. import com.kingdee.shr.base.syssetting.context.SHRContext;
  48. import com.kingdee.shr.base.syssetting.exception.SHRWebException;
  49. import com.kingdee.shr.base.syssetting.exception.ShrWebBizException;
  50. import com.kingdee.shr.base.syssetting.web.json.JSONUtils;
  51. import com.kingdee.shr.preentry.FileStateEnum;
  52. import com.kingdee.shr.preentry.PreEntryInfo;
  53. import com.kingdee.shr.preentry.PreEntryPersonInfo;
  54. import com.kingdee.shr.preentry.SubmitEffectSSCFacadeFactory;
  55. import com.kingdee.shr.affair.web.handler.EmpPreEntryEditHandler;
  56. import com.kingdee.shr.affair.web.handler.util.EmployeeUtil;
  57. /**
  58. * 预入职单
  59. * @author issuser
  60. *
  61. */
  62. public class EmpPreEntryEditHandlerEx extends EmpPreEntryEditHandler {
  63. private static Logger logger =
  64. Logger.getLogger("com.kingdee.shr.affair.web.handler.EmpPreEntryEditHandlerEx");
  65. @Override
  66. protected void beforeSave(HttpServletRequest request, HttpServletResponse response, CoreBaseInfo model) throws SHRWebException {
  67. PreEntryInfo billInfo = (PreEntryInfo)model;
  68. if (billInfo.getTalent().getPassportNO() != null) {
  69. PassPortCommonUtil.checkPassPortContainsChinese(billInfo.getTalent().getPassportNO());
  70. }
  71. try {
  72. Context ctx = SHRContext.getInstance().getContext();
  73. HRUtilExtend.checkGlobalRoamingExists(ctx, billInfo.getGlobalRoaming());
  74. } catch (EmployeeException var6) {
  75. throw new ShrWebBizException(var6.getMessage());
  76. } catch (BOSException var7) {
  77. var7.printStackTrace();
  78. }
  79. super.beforeSave(request, response, model);
  80. if (billInfo.getBillState() == null) {
  81. billInfo.setBillState(HRBillStateEnum.SAVED);
  82. }
  83. if (billInfo.getTalent() != null && billInfo.getTalent().getFileState() == null) {
  84. billInfo.getTalent().setFileState(FileStateEnum.TempStorage);
  85. }
  86. try {
  87. if( ObjectUtils.isEmpty(billInfo.get("empNumber")) ){
  88. EmployeeUtil employeeUtil = new EmployeeUtil();
  89. int fnumber = employeeUtil.getFnumber();
  90. billInfo.put("empNumber",fnumber);
  91. }
  92. } catch (BOSException e) {
  93. throw new RuntimeException(e);
  94. } catch (SQLException e) {
  95. throw new RuntimeException(e);
  96. }
  97. }
  98. @Override
  99. protected void verifyModel(HttpServletRequest request,
  100. HttpServletResponse response, CoreBaseInfo model)
  101. throws SHRWebException {
  102. PreEntryInfo preEntryInfo = (PreEntryInfo) model;
  103. try {
  104. EmployeeUtil employeeUtil = new EmployeeUtil();
  105. PreEntryPersonInfo prePersonInfo = preEntryInfo.getTalent();
  106. String fid = model.getString("id");
  107. //再入职校验
  108. employeeUtil.checkIsReEntry(prePersonInfo.getIdCardNO(), preEntryInfo.getName(), prePersonInfo.getBirthday());
  109. //用户名唯一校验
  110. Boolean isUniqueCheck = employeeUtil.checkUserName(
  111. preEntryInfo.get("userName").toString(),fid,null);
  112. if( !isUniqueCheck){
  113. throw new ImportException("This user name:"+ preEntryInfo.get("userName") + "already exists");
  114. }
  115. //工作邮箱唯一校验
  116. Boolean emailCheck = employeeUtil.checkEmail(preEntryInfo.get("workemail").toString(),fid,null);
  117. if( !emailCheck){
  118. throw new ImportException("The work email:"+ preEntryInfo.get("userName") + "already exists");
  119. }
  120. } catch (BOSException e1) {
  121. e1.printStackTrace();
  122. } catch (SQLException e1) {
  123. e1.printStackTrace();
  124. }
  125. super.verifyModel(request, response, model);
  126. }
  127. /**
  128. * 再入职校验
  129. * @param request
  130. * @param response
  131. * @param modelMap
  132. * @return
  133. * @throws SHRWebException
  134. */
  135. public String checkIdEntityAction(HttpServletRequest request, HttpServletResponse response, ModelMap modelMap) throws SHRWebException {
  136. //身份证号
  137. String idCardNo = request.getParameter("idCardNo");
  138. //出生日期
  139. String birthday = request.getParameter("birthday");
  140. //名称
  141. String name = request.getParameter("name");
  142. logger.error("身份证号:"+idCardNo);
  143. logger.error("出生日期:"+birthday+",名称:"+name);
  144. Context ctx = SHRContext.getInstance().getContext();
  145. try {
  146. if(StringUtils.isNotBlank(idCardNo)) {
  147. String checkSql = "select FIDCardNO from t_bd_person where FIDCardNO = '" + idCardNo + "'";
  148. logger.error("查询身份证SQL:"+checkSql);
  149. IRowSet rs = DbUtil.executeQuery(ctx, checkSql);
  150. if(rs.next()){
  151. modelMap.put("resultMessage", "Employee is re-entry employee, ID number:" + rs.getString("FIDCardNO"));
  152. }
  153. }
  154. if(StringUtils.isNotBlank(birthday) && StringUtils.isNotBlank(name)) {
  155. String checkSql = "select FPASSPORTNO from t_bd_person where to_char(FBirthday,'yyyy-MM-dd') = '" + birthday + "' and UPPER(FName_L1) = UPPER('"+ name +"')";
  156. logger.error("查询证件SQL:"+checkSql);
  157. IRowSet rs = DbUtil.executeQuery(ctx, checkSql);
  158. if(rs.next()){
  159. modelMap.put("resultMessage", "Employee is re-entry employee, passport number:" + rs.getString("FPASSPORTNO"));
  160. }
  161. }
  162. } catch (BOSException e) {
  163. e.printStackTrace();
  164. } catch (SQLException e) {
  165. e.printStackTrace();
  166. }
  167. JSONUtils.writeJson(response, modelMap);
  168. return null;
  169. }
  170. }