123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138 |
- package com.kingdee.shr.affair.web.handler.util;
- import java.sql.SQLException;
- import java.text.SimpleDateFormat;
- import java.util.Date;
- import org.apache.commons.lang3.StringUtils;
- import com.kingdee.bos.BOSException;
- import com.kingdee.bos.Context;
- import com.kingdee.eas.util.app.DbUtil;
- import com.kingdee.jdbc.rowset.IRowSet;
- import com.kingdee.shr.base.syssetting.app.io.fileImport.ImportException;
- import com.kingdee.shr.base.syssetting.context.SHRContext;
- public class EmployeeUtil {
- /**
- * 获取当前最大的员工编码
- * @return
- * @throws BOSException
- * @throws SQLException
- */
- public int getFnumber() throws BOSException, SQLException{
- int fnumber = 0;
- String fnumberSql = "SELECT max(a.number) as number FROM ( \n" +
- " SELECT max(fnumber) as number FROM T_bd_person \n" +
- " union \n" +
- " SELECT max(CFEmpNumber) as number FROM T_HR_PreEntry \n" +
- " union \n" +
- " select max(b.fempNumber) as number from T_HR_EmpEnrollBizBill as a ,\n" +
- " T_HR_EmpEnrollBizBillEntry as b where a.fid = b.FBILLID \n" +
- " ) a";
- Context ctx = SHRContext.getInstance().getContext();
- IRowSet rs = DbUtil.executeQuery(ctx, fnumberSql);
- while(rs.next()){
- fnumber = rs.getInt("number");
- fnumber = Integer.valueOf(fnumber) + 1;
- }
- return fnumber;
-
- }
-
- /**
- * 用户名唯一校验
- * @param userName
- * @param fid 非本单据ID校验
- * @return
- * @throws BOSException
- * @throws SQLException
- */
- public Boolean checkUserName(String userName,String fid,String fnumber) throws BOSException, SQLException{
- StringBuffer userNameSql = new StringBuffer();
- userNameSql.append("select * from ( ");
- userNameSql.append("select fid,fnumber from t_bd_person where Upper(CFUserName) = Upper('" + userName + "')");
- userNameSql.append(" union ");
- userNameSql.append(" select fid,null from T_HR_PreEntry where Upper(CFUserName_l1) = Upper('" + userName + "') ");
- userNameSql.append(" ) a where 1 = 1 ");
- if(StringUtils.isNotBlank(fid)){
- userNameSql.append(" and fid != '" + fid + "'");
- }
- if(StringUtils.isNotBlank(fnumber)){
- userNameSql.append(" and fnumber != '" + fnumber + "'");
- }
- System.out.print("用户名唯一校验:"+userNameSql.toString());
- Context ctx = SHRContext.getInstance().getContext();
- IRowSet rs = DbUtil.executeQuery(ctx, userNameSql.toString());
- if(rs.next()){
- return false;
- }
- return true;
- }
-
- /**
- * 再入职判断ְ
- * @param idCard
- * @param name
- * @param birthday
- * @return
- * @throws SQLException
- * @throws BOSException
- */
- public void checkIsReEntry(String idCard,String name ,Date birthday) throws SQLException, BOSException{
- SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd");
- String personBirthday = sdf.format(birthday);
- String checkSql = "select FIDCardNO,FPASSPORTNO from t_bd_person" +
- " where FIDCardNO = '" + idCard + "' " +
- " or (to_char(FBirthday,'yyyy-MM-dd') = '" + personBirthday + "' and UPPER(FName_L1) = UPPER('"+ name +"') ) ";
- Context ctx = SHRContext.getInstance().getContext();
- System.out.println("再入职校验sql" + checkSql);
- IRowSet rs = DbUtil.executeQuery(ctx, checkSql);
- if(rs.next()){
- if(StringUtils.isNotBlank(rs.getString("FIDCardNO"))){
- throw new ImportException("Employee is re-entry employee, ID number:" + rs.getString("FIDCardNO"));
- }
- if(StringUtils.isNotBlank(rs.getString("FPASSPORTNO"))){
- throw new ImportException("Employee is re-entry employee, passport number:" + rs.getString("FPASSPORTNO"));
- }
-
- }
-
-
- }
- /**
- * 工作邮箱唯一校验
- * @param email
- * @param fid
- * @param fnumber
- * @return
- * @throws BOSException
- * @throws SQLException
- */
- public Boolean checkEmail(String email,String fid,String fnumber) throws BOSException, SQLException{
- StringBuffer emailSql = new StringBuffer();
- emailSql.append("select * from ( ");
- emailSql.append("select fid,fnumber from t_bd_person where Upper(FEMail) = Upper('" + email + "')");
- emailSql.append(" union ");
- emailSql.append(" select fid,null from T_HR_PreEntry where Upper(CFWorkemail) = Upper('" + email + "') ");
- emailSql.append(" ) a where 1 = 1 ");
- if(StringUtils.isNotBlank(fid)){
- emailSql.append(" and fid != '" + fid + "'");
- }
- if(StringUtils.isNotBlank(fnumber)){
- emailSql.append(" and fnumber != '" + fnumber + "'");
- }
- Context ctx = SHRContext.getInstance().getContext();
- System.out.println("工作邮箱唯一校验:" + emailSql);
- IRowSet rs = DbUtil.executeQuery(ctx, emailSql.toString());
- if(rs.next()){
- return false;
- }
- return true;
- }
-
-
-
- }
|