// // Source code recreated from a .class file by IntelliJ IDEA // (powered by FernFlower decompiler) // package com.kingdee.shr.batchAffair.web.handler; import com.kingdee.bos.BOSException; import com.kingdee.bos.Context; import com.kingdee.eas.base.core.hr.util.CnToSpell; import com.kingdee.eas.basedata.org.AdminOrgUnitCollection; import com.kingdee.eas.basedata.org.AdminOrgUnitFactory; import com.kingdee.eas.basedata.org.AdminOrgUnitInfo; import com.kingdee.eas.basedata.org.JobCollection; import com.kingdee.eas.basedata.org.JobFactory; import com.kingdee.eas.basedata.org.JobInfo; import com.kingdee.eas.basedata.org.PositionCollection; import com.kingdee.eas.basedata.org.PositionFactory; import com.kingdee.eas.basedata.org.PositionInfo; import com.kingdee.eas.common.EASBizException; import com.kingdee.eas.framework.CoreBaseInfo; import com.kingdee.eas.hr.base.HRBizDefineFactory; import com.kingdee.eas.hr.base.HRBizDefineInfo; import com.kingdee.eas.hr.emp.EmpQuickAddNewInfoInfo; import com.kingdee.eas.util.app.DbUtil; import com.kingdee.jdbc.rowset.IRowSet; import com.kingdee.shr.base.syssetting.app.osf.OSFAppUtil; import com.kingdee.shr.base.syssetting.context.SHRContext; import com.kingdee.shr.base.syssetting.exception.SHRWebException; import com.kingdee.shr.base.syssetting.exception.ShrWebBizException; import java.sql.SQLException; import java.text.SimpleDateFormat; import java.util.ArrayList; import java.util.Date; import java.util.HashMap; import java.util.Map; import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpServletResponse; import org.springframework.ui.ModelMap; public class EmpBatchEnrollConsecutiveAddNewEditHandlerEx extends EmpBatchEnrollConsecutiveAddNewEditHandler { public EmpBatchEnrollConsecutiveAddNewEditHandlerEx() { } public void getNamePinYinAction(HttpServletRequest request, HttpServletResponse response, ModelMap modelMap) throws SHRWebException { String personName = this.getIdCordsfilter(request.getParameter("personName")); String cnSpell = CnToSpell.getSpell(personName, false); StringBuffer namePinYin = new StringBuffer(); if (this.getPersonNamePinYin(cnSpell) > 0) { namePinYin.append(cnSpell).append("0").append(this.getPersonNamePinYin(cnSpell) + 1); } else { namePinYin.append(cnSpell); } this.writeSuccessData(namePinYin.toString()); } public void getLaborRelationAction(HttpServletRequest request, HttpServletResponse response, ModelMap modelMap) throws SHRWebException { String personName = this.getIdCordsfilter(request.getParameter("personName")); String cnSpell = CnToSpell.getSpell(personName, false); StringBuffer namePinYin = new StringBuffer(); StringBuffer namePinYinSX = new StringBuffer(); if (this.getPersonNamePinYin(cnSpell) > 0) { namePinYin.append(cnSpell).append("0").append(this.getPersonNamePinYin(cnSpell) + 1); } else { namePinYin.append(cnSpell); } namePinYinSX.append(namePinYin.toString()); StringBuffer nameBufSql = new StringBuffer(); nameBufSql.append("select * from T_HR_BDEmployeeType b ").append("inner join T_HR_EmpLaborRelation e on b.FID = e.FLaborRelationStateID ").append("inner join T_BD_Person p on p.FID = e.FPersonID ").append("where b.FID = '").append("2JNc5qoSR7mPF3oNZeqB/qKehbM=").append("'"); try { IRowSet rs = DbUtil.executeQuery(getContext(), nameBufSql.toString()); String size = String.valueOf(rs.size()); if (size.length() == 1) { namePinYinSX.append("00").append(size); } else if (size.length() == 2) { namePinYinSX.append("0").append(size); } else { namePinYinSX.append(size); } namePinYinSX.append("_sx"); } catch (BOSException var11) { var11.printStackTrace(); } this.writeSuccessData(namePinYinSX.toString()); } public void getPositionBolAction(HttpServletRequest request, HttpServletResponse response, ModelMap modelMap) throws SHRWebException { String personName = this.getIdCordsfilter(request.getParameter("personName")); String positionId = request.getParameter("positions"); String personNumber = request.getParameter("personNumber"); String cn =personName+"_"+personNumber; StringBuffer sql = new StringBuffer(); String state = "false"; sql.append("select * from T_ORG_Admin a inner join T_HR_PersonPosition p on a.FID = p.FPersonDep ").append("inner join T_BD_Person b on b.FID = p.FPersonID ").append("inner join T_ORG_Position s on s.FAdminOrgUnitID = a.FID ").append("inner join T_HR_BDEmployeeType t on b.FEMPLOYEETYPEID = t.FID ").append("where s.FID = '").append(positionId).append("' and b.FZDY2 = '").append(cn).append("' and t.FinService = 1"); try { IRowSet rs = DbUtil.executeQuery(getContext(), sql.toString()); if (!rs.next()) { state = "true"; } } catch (BOSException var9) { var9.printStackTrace(); } catch (SQLException var10) { var10.printStackTrace(); } this.writeSuccessData(state); } protected void afterSave(HttpServletRequest request, HttpServletResponse response, CoreBaseInfo model) throws SHRWebException { EmpQuickAddNewInfoInfo eni = this.getEmpQuickAddNewInfoInfo(request); EmpQuickAddNewInfoInfo eqaInfo = this.getEmpQuickAddNew(eni); super.afterSave(request, response, model); try { String sendAD = this.createLdapAdUser(eqaInfo); if (sendAD.indexOf("成功") != -1) { System.out.println(sendAD); this.setPersonLdapUser(eqaInfo); } else { if (sendAD.indexOf("挂靠组织") == -1) { System.out.println(sendAD); throw new ShrWebBizException(sendAD); } System.out.println(sendAD); this.setPersonLdapUser(eqaInfo); } } catch (EASBizException var7) { var7.printStackTrace(); } catch (BOSException var8) { var8.printStackTrace(); } } private EmpQuickAddNewInfoInfo getEmpQuickAddNew(EmpQuickAddNewInfoInfo info) { Map map = new HashMap(); StringBuffer sql = new StringBuffer(); JobInfo jinfo = null; JobCollection jcol = null; PositionInfo poInfo = null; PositionCollection poCol = null; sql.append("select * from T_HR_EmpQuickAddNewInfo where FID = '").append(info.getId()).append("'"); try { IRowSet rs = DbUtil.executeQuery(getContext(), sql.toString()); while(rs.next()) { map.put("jobId", rs.getString("FJobID")); map.put("positionId", rs.getString("FPositionID")); } if (map.get("jobId") != null && map.get("jobId") != " ") { jcol = JobFactory.getLocalInstance(getContext()).getJobCollection("where id = '" + (String)map.get("jobId") + "'"); if (jcol != null && jcol.size() > 0) { jinfo = jcol.get(0); info.setJob(jinfo); } } if (map.get("positionId") != null && map.get("positionId") != " ") { poCol = PositionFactory.getLocalInstance(getContext()).getPositionCollection("where id = '" + (String)map.get("positionId") + "'"); if (poCol != null && poCol.size() > 0) { poInfo = poCol.get(0); info.setPosition(poInfo); } } } catch (BOSException var9) { var9.printStackTrace(); } catch (SQLException var10) { var10.printStackTrace(); } return info; } private EmpQuickAddNewInfoInfo getEmpQuickAddNewInfoInfo(HttpServletRequest request) { return (EmpQuickAddNewInfoInfo)request.getAttribute("dynamic_model"); } private int getPersonNamePinYin(String pinyin) { Context ctx = SHRContext.getInstance().getContext(); StringBuffer sql = new StringBuffer(); int numbers = 0; sql.append("select COUNT").append("(").append("*").append(")").append(" as numbers from T_BD_Person where FFullNamePingYin = '").append(pinyin).append("'"); try { for(IRowSet rs = DbUtil.executeQuery(ctx, sql.toString()); rs.next(); numbers = rs.getInt("numbers")) { } } catch (BOSException var6) { var6.printStackTrace(); } catch (SQLException var7) { var7.printStackTrace(); } return numbers; } private void setPersonLdapUser(EmpQuickAddNewInfoInfo info) { StringBuffer sql = new StringBuffer(); sql.append("update T_BD_Person set FZDY1 = '").append(info.get("regionname")).append("'"); //String FZDY2 = info.get("name").toString()+"_"+info.get("number").toString(); int ex = this.getPersonName(info.getString("empname")); String cn = (String) info.get("empname"); if(ex>0) { if(ex<10) { cn += "0" + ex; }else { cn += ex; } } String FZDY2 = cn; sql.append(",FZDY2 = '").append(FZDY2).append("'"); sql.append(" where FNumber = '").append(info.get("number")).append("'"); if (info.getIdCardNO() != null && info.getIdCardNO() != " ") { sql.append(" and FIDCardNo = '").append(info.getIdCardNO()).append("'"); } if (info.getPassportNO() != null && info.getPassportNO() != " ") { sql.append(" and FPassportNo = '").append(info.getPassportNO()).append("'"); } try { DbUtil.execute(getContext(), sql.toString()); } catch (BOSException var4) { var4.printStackTrace(); } } private int getPersonName(String name) { Context ctx = SHRContext.getInstance().getContext(); StringBuffer sql = new StringBuffer(); int numbers = 0; sql.append(" select COUNT(fid) numbers from T_BD_Person where FEmployeeTypeID in(select fid from T_HR_BDEmployeeType where FINSERVICE in(1,4)) and FNAME_l2=?"); try { IRowSet rs = DbUtil.executeQuery(ctx, sql.toString(), new Object[]{name}); if( rs.next()) { numbers = rs.getInt("numbers"); } } catch (BOSException var6) { var6.printStackTrace(); } catch (SQLException var7) { var7.printStackTrace(); } return numbers; } private String createLdapAdUser(EmpQuickAddNewInfoInfo info) throws EASBizException, BOSException { StringBuffer bolState = new StringBuffer(); HRBizDefineInfo defInfo = info.getActionDef(); HRBizDefineFactory.getLocalInstance(getContext()).getHRBizDefineInfo(" where id = '" + defInfo.getId().toString() + "'"); ArrayList> personList = new ArrayList(); Map adminMap = getAdminOrgUnit(info); HashMap person = new HashMap(); System.out.println("adminMap:" + adminMap); if ("false".equals(adminMap.get("state"))) { bolState.append("员工入职组织属性为空,默认为挂靠组织,不同步AD!"); } else { int ex = this.getPersonName(info.getString("empname")); String cn = (String) info.get("empname"); if(ex>0) { if(ex<10) { cn += "0" + ex; }else { cn += ex; } } //String cn =(String)info.get("name")+"_"+(String)info.get("number"); if (info.get("regionname").toString().indexOf("sx") != -1) { person.put("cn", cn); } else { person.put("cn", cn); } person.put("empnumber", info.get("number")); person.put("empname", info.get("name")); person.put("sn", info.get("regionName")); person.put("regionname", info.get("regionName")); person.put("ou1", adminMap.get("ou1")); person.put("ou2", adminMap.get("ou2")); person.put("title", this.getJob(info)); person.put("company", adminMap.get("company")); person.put("department", adminMap.get("department")); person.put("adpo", adminMap.get("ad")); person.put("superior", this.getSuperior(adminMap.get("adminId").toString())); person.put("mobile", info.getTelNum()); person.put("birth", getStringDateShort(info.getBirthday())); // person.put("enrollagain", "true"); person.put("action", "add"); person.put("actions", "add"); try { personList.add(person); HashMap>> ldapMap = new HashMap(); ldapMap.put("personList", personList); String state = OSFAppUtil.callService(getContext(), "PersonLdapsService", ldapMap).toString(); bolState.append(state); } catch (EASBizException var9) { bolState.append("调用同步AD域OSF接口PersonLdapsService失败,请检查接口配置信息!"); } catch (BOSException var10) { bolState.append("调用同步AD域OSF接口PersonLdapsService失败,请检查接口配置信息!"); } } return bolState.toString(); } private String getIdCordsfilter(String str) { String[] SqlStr2 = new String[]{"*", "'", ";", "-", "--", "+", "//", "/", "%", "#"}; for(int i = 0; i < SqlStr2.length; ++i) { if (str.indexOf(SqlStr2[i]) >= 0) { str = str.replaceAll(SqlStr2[i], ""); } } return str; } private static String getStringDateShort(Date dates) { String dateString = null; if (dates != null) { SimpleDateFormat formatter = new SimpleDateFormat("yyyy-MM-dd"); dateString = formatter.format(dates); } return dateString; } private String getSuperior(String adminId) { String superiors = null; StringBuffer sql = new StringBuffer(); if (adminId != null) { sql.append("select FZDY1 from T_BD_Person WHERE FID = (").append("select TOP 1 FPersonID from T_HR_EmpOrgRelation WHERE FPositionID = ").append("(select FID from T_ORG_Position where FID = ").append("(select FResponPositionID from T_ORG_Admin where FID = '").append(adminId).append("'").append("))").append(" order by FCreateTime DESC)"); try { for(IRowSet rs = DbUtil.executeQuery(getContext(), sql.toString()); rs.next(); superiors = rs.getString("FZDY1")) { } } catch (BOSException var5) { var5.printStackTrace(); } catch (SQLException var6) { var6.printStackTrace(); } } return superiors; } private Map getAdminOrgUnit(EmpQuickAddNewInfoInfo info) throws BOSException { Map adminMap = new HashMap(); String state = null; PositionInfo poInfo = null; PositionCollection poCol = null; String ou1 = null; String ou2 = null; String ad = null; AdminOrgUnitInfo adminInfo = null; AdminOrgUnitCollection adminCol = null; poCol = PositionFactory.getLocalInstance(getContext()).getPositionCollection("where id = '" + info.getPosition().getId() + "'"); if (poCol != null && poCol.size() > 0) { poInfo = poCol.get(0); adminCol = AdminOrgUnitFactory.getLocalInstance(getContext()).getAdminOrgUnitCollection(" where id = '" + poInfo.getAdminOrgUnit().getId() + "'"); } if (adminCol != null && adminCol.size() > 0) { adminInfo = adminCol.get(0); String displayName = adminInfo.getDisplayName(); String longNumber = adminInfo.get("longNumber").toString(); String[] adminString = displayName.split("_"); if ("挂靠组织".equals(adminInfo.get("reservefieldfirst"))) { state = "false"; } else if (adminString.length >= 4) { if ("内部组织".equals(adminInfo.get("reservefieldfirst"))) { ou1 = adminString[3]; ou2 = adminString[2]; } else { ou1 = adminString[2]; } } else if (adminString.length == 3) { ou1 = adminString[2]; } else { state = "false"; } if ("true".equals(poInfo.get("isRespPosition").toString())) { if (adminString.length <= 4) { ad = "a"; } else { ad = "b"; } } adminMap.put("ad", ad); adminMap.put("department", ou1); adminMap.put("ou1", ou1); adminMap.put("ou2", ou2); adminMap.put("adminId", getAdminIdByLongNumber(longNumber)); if (ou2 != null) { adminMap.put("company", ou2); } else { adminMap.put("company", ou1); } } else { state = "false"; } adminMap.put("state", state); return adminMap; } private String getAdminIdByLongNumber(String longName) { String key = "!"; String returnVal = null; String longNumbers = null; int c = longName.indexOf(key); int i = 0; int[] d; for(d = new int[longName.split("!").length - 1]; c != -1; ++i) { d[i] = c; c = longName.indexOf(key, c + 1); } if (longName.split("!").length > 4) { longNumbers = longName.substring(0, d[3]); } else { longNumbers = longName; } try { String sql = "select FID from T_ORG_Admin WHERE FLongNumber = '" + longNumbers + "'"; for(IRowSet rs = DbUtil.executeQuery(getContext(), sql); rs.next(); returnVal = rs.getString("FID")) { } } catch (BOSException var9) { var9.printStackTrace(); } catch (SQLException var10) { var10.printStackTrace(); } return returnVal; } private String getJob(EmpQuickAddNewInfoInfo info) { PositionInfo poInfo = (PositionInfo)info.get("position"); PositionCollection poCol = null; String poName = null; if (poInfo != null) { try { poCol = PositionFactory.getLocalInstance(getContext()).getPositionCollection(" where id = '" + poInfo.get("id") + "'"); if (poCol != null && poCol.size() > 0) { PositionInfo jbInfos = poCol.get(0); poName = jbInfos.getName().toString(); return poName; } } catch (BOSException var6) { var6.printStackTrace(); } } return poName; } public Context getContext() { return SHRContext.getInstance().getContext(); } }