// // Source code recreated from a .class file by IntelliJ IDEA // (powered by FernFlower decompiler) // package com.kingdee.eas.hr.org.web.handler; import com.kingdee.bos.BOSException; import com.kingdee.bos.Context; import com.kingdee.bos.dao.IObjectPK; import com.kingdee.bos.dao.ormapping.ObjectUuidPK; 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.common.EASBizException; import com.kingdee.eas.framework.CoreBaseInfo; import com.kingdee.eas.util.app.DbUtil; import com.kingdee.shr.base.syssetting.MSFServiceFacadeFactory; 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.util.ArrayList; 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 OrgUnitEditHandlerEx extends OrgUnitEditHandler { Context ctx = SHRContext.getInstance().getContext(); public OrgUnitEditHandlerEx() { } protected IObjectPK runSaveData(HttpServletRequest request, HttpServletResponse response, CoreBaseInfo model) throws SHRWebException, EASBizException { String adminType = model.get("reservefieldfirst").toString(); String historyOperateState = request.getParameter("historyOperateState"); String actions = null; String oldname = null; if (model instanceof AdminOrgUnitInfo) { AdminOrgUnitInfo fullOrg = (AdminOrgUnitInfo)model; if (model.getId() != null) { try { oldname = AdminOrgUnitFactory.getRemoteInstance().getAdminOrgUnitInfo(new ObjectUuidPK(model.getId())).getName(); } catch (BOSException var14) { var14.printStackTrace(); } } } if (!"revise".equals(historyOperateState) && !"change".equals(historyOperateState)) { actions = "add"; } else { actions = "update"; } IObjectPK pk = super.runSaveData(request, response, model); this.createReserveFieldFirst(pk.toString(), adminType); AdminOrgUnitInfo adminInfo = null; AdminOrgUnitCollection adminCol = null; try { adminCol = AdminOrgUnitFactory.getLocalInstance(this.ctx).getAdminOrgUnitCollection(" where id = '" + pk + "'"); if (adminCol != null && adminCol.size() > 0) { adminInfo = adminCol.get(0); } Map createAdminMap = this.getOu(adminInfo); if (createAdminMap.get("ou1") != null) { String sendAD = this.createLdapAdmins(createAdminMap, actions, oldname); System.out.println("sendAD:" + sendAD); if (sendAD.indexOf("成功") == -1) { throw new ShrWebBizException(sendAD); } System.out.println(sendAD); } } catch (BOSException var13) { var13.printStackTrace(); } return pk; } private Map getOu(AdminOrgUnitInfo adminInfo) { Map ouMap = new HashMap(); String ou1 = null; String ou2 = null; String displayName = adminInfo.getDisplayName(); String adminType = adminInfo.getReserveFieldFirst(); String[] adminString = displayName.split("_"); if (adminType.equals("挂靠组织")) { if (adminString.length == 3) { ou1 = adminString[2]; ou2 = adminString[1]; } if (adminString.length == 2) { ou1 = adminString[1]; } } else { if (adminString.length == 4 && adminType.equals("内部组织")) { ou1 = adminString[3]; ou2 = adminString[2]; } if (adminString.length == 3) { ou1 = adminString[2]; } } ouMap.put("ou1", ou1); ouMap.put("ou2", ou2); return ouMap; } private void createReserveFieldFirst(String id, String type) { StringBuffer sql = new StringBuffer(); sql.append("update T_ORG_Admin set FReserveFieldFirst = '").append(type).append("'").append(" where FID = '").append(id).append("'"); try { DbUtil.execute(this.ctx, sql.toString()); } catch (BOSException var5) { var5.printStackTrace(); } } private String createLdapAdmins(Map createAdminMap, String actions, String oldName) { StringBuffer bolState = new StringBuffer(); ArrayList> orgList = new ArrayList(); HashMap orgs = new HashMap(); orgs.put("ou1", createAdminMap.get("ou1")); orgs.put("ou2", createAdminMap.get("ou2")); orgs.put("oldName", oldName); orgs.put("actions", actions); orgList.add(orgs); Map>> ldapMap = new HashMap(); ldapMap.put("orgList", orgList); try { //String sendAD = MSFServiceFacadeFactory.getLocalInstance(this.ctx).processService("OrganizationLdapsService", ldapMap).toString(); String sendAD = OSFAppUtil.callService(this.ctx, "OrganizationLdapsService", ldapMap).toString(); bolState.append(sendAD); } catch (EASBizException var9) { bolState.append("调用同步AD域OSF接口OrganizationLdapsService失败,请检查接口配置信息!"); } catch (BOSException var10) { bolState.append("调用同步AD域OSF接口OrganizationLdapsService失败,请检查接口配置信息!"); } return bolState.toString(); } public void getAdminPropertyAction(HttpServletRequest request, HttpServletResponse response, ModelMap modelMap) throws SHRWebException { String parentid = request.getParameter("parentid"); String returnVal = null; if (parentid != null) { try { AdminOrgUnitInfo info = AdminOrgUnitFactory.getRemoteInstance().getAdminOrgUnitInfo(new ObjectUuidPK(parentid)); returnVal = info.getReserveFieldFirst(); } catch (EASBizException var7) { var7.printStackTrace(); } catch (BOSException var8) { var8.printStackTrace(); } } this.writeSuccessData(returnVal); } }