| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474 |
- //
- // 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<String, String> 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<HashMap<String, Object>> personList = new ArrayList();
- Map<String, Object> adminMap = getAdminOrgUnit(info);
- HashMap<String, Object> 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<String, ArrayList<HashMap<String, Object>>> 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<String, Object> getAdminOrgUnit(EmpQuickAddNewInfoInfo info) throws BOSException {
- Map<String, Object> 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();
- }
- }
|