| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173 |
- package com.kingdee.eas.hr.org.web.handler;
- import com.kingdee.bos.BOSException;
- import com.kingdee.bos.Context;
- import com.kingdee.eas.common.EASBizException;
- import com.kingdee.eas.hr.org.web.handler.OrgAdjustHandler;
- 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.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 OrgAdjustHandlerEx extends OrgAdjustHandler {
- Context ctx = SHRContext.getInstance().getContext();
- public OrgAdjustHandlerEx() {
- }
- public String beforeEffectAction(HttpServletRequest request, HttpServletResponse response, ModelMap modelMap) throws SHRWebException {
- String schemeId = request.getParameter("schemeId");
- Map<String, String> OrgRecMap = this.getOrgRecValue(schemeId);
- new HashMap();
- String sendAD = null;
- if (((String)OrgRecMap.get("state")).equals("1")) {
- sendAD = this.createLdapAdmin(OrgRecMap);
- System.out.println("sendAD:" + sendAD);
- }
- if (sendAD.indexOf("成功") != -1) {
- System.out.println(sendAD);
- return super.beforeEffectAction(request, response, modelMap);
- } else if (sendAD.indexOf("挂靠组织") != -1) {
- System.out.println(sendAD);
- return super.beforeEffectAction(request, response, modelMap);
- } else {
- System.out.println(sendAD);
- throw new ShrWebBizException(sendAD);
- }
- }
- private String createLdapAdmin(Map<String, String> OrgRecMap) {
- StringBuffer bolState = new StringBuffer();
- ArrayList<HashMap<String, Object>> orgList = new ArrayList();
- HashMap<String, Object> orgs = new HashMap();
- Map ouMap = this.getOu(OrgRecMap);
- System.out.println("ouMap:" + ouMap);
- orgs.put("ou1", ouMap.get("ou").toString());
- orgs.put("ou2", "深圳市标准技术研究院");
- orgs.put("actions", ouMap.get("actions").toString());
- orgList.add(orgs);
- HashMap<String, ArrayList<HashMap<String, Object>>> ldapMap = new HashMap();
- ldapMap.put("orgList", orgList);
- try {
- String eroState = OSFAppUtil.callService(this.ctx, "OrganizationLdapsService", ldapMap).toString();
- bolState.append(eroState);
- } catch (EASBizException var8) {
- bolState.append("调用同步AD域OSF接口OrganizationLdapsService失败," + var8.getMessage() + "!");
- } catch (BOSException var9) {
- bolState.append(var9.getMessage());
- }
- return bolState.toString();
- }
- private Map getOu(Map adminMap) {
- Map ouVal = new HashMap();
- String state = null;
- Map beforeMovMap = this.getAdminValById(adminMap.get("beforeMov").toString());
- beforeMovMap.get("adminType").toString();
- String[] beforAdminString = beforeMovMap.get("displayName").toString().split("_");
- Map afterMovMap = this.getAdminValById(adminMap.get("afterMov").toString());
- String afterAdminType = afterMovMap.get("adminType").toString();
- if (afterAdminType != null && afterAdminType != " ") {
- afterMovMap.get("displayName").toString().split("_");
- Map adminsMap = this.getAdminValById(adminMap.get("id").toString());
- String[] adminsString = adminsMap.get("displayName").toString().split("_");
- if (afterAdminType.equals("民非组织") && adminsString.length == 2) {
- this.createReserveFieldFirst(adminMap.get("id").toString(), beforeMovMap.get("adminType").toString());
- if (beforAdminString.length > 2) {
- ouVal.put("ou", adminsString[adminsString.length - 1].toString());
- ouVal.put("actions", "add");
- }
- }
- if (afterAdminType.equals("内部组织") && adminsString.length == 3) {
- this.createReserveFieldFirst(adminMap.get("id").toString(), beforeMovMap.get("adminType").toString());
- if (beforAdminString.length > 3) {
- ouVal.put("ou", adminsString[adminsString.length - 1].toString());
- ouVal.put("actions", "add");
- }
- }
- if (afterAdminType.equals("内部组织") && adminsString.length > 3) {
- this.createReserveFieldFirst(adminMap.get("id").toString(), beforeMovMap.get("adminType").toString());
- if (beforAdminString.length <= 3) {
- ouVal.put("ou", adminsString[adminsString.length - 1].toString());
- ouVal.put("actions", "delete");
- }
- }
- } else {
- state = "false";
- }
- ouVal.put("state", state);
- return ouVal;
- }
- private Map<String, String> getAdminValById(String adminID) {
- Map<String, String> adminVal = new HashMap();
- StringBuffer sql = new StringBuffer();
- sql.append("select * from T_ORG_Admin WHERE FID = '").append(adminID).append("'");
- try {
- IRowSet rs = DbUtil.executeQuery(this.ctx, sql.toString());
- while(rs.next()) {
- adminVal.put("name", rs.getString("FName_L2"));
- adminVal.put("displayName", rs.getString("FDisplayName_L2"));
- adminVal.put("adminType", rs.getString("FReserveFieldFirst"));
- }
- } catch (BOSException var6) {
- var6.printStackTrace();
- } catch (SQLException var7) {
- var7.printStackTrace();
- }
- return adminVal;
- }
- private Map<String, String> getOrgRecValue(String schemeId) {
- Map<String, String> orgRecMap = new HashMap();
- StringBuffer sql = new StringBuffer();
- sql.append("SELECT orgRec.fEnableStatus as state,orgRec.fBeforeMovParentID as BeforeMov,orgRec.fAfterMovParentID as AfterMov,admin.FID as idFROM T_HR_AdminOrgUnitVer orgVer INNER JOIN T_HR_OrgVerAdjRec orgRec ON orgVer.FID = orgRec.fOrgVerId INNER JOIN T_ORG_Admin admin ON orgVer.FAdminOrgUnitID = admin.FID WHERE orgRec.fOrgAdjSchm = '" + schemeId + "'");
- try {
- IRowSet rs = DbUtil.executeQuery(this.ctx, sql.toString());
- while(rs.next()) {
- orgRecMap.put("id", rs.getString("id"));
- orgRecMap.put("state", "state");
- orgRecMap.put("beforeMov", "BeforeMov");
- orgRecMap.put("afterMov", "AfterMov");
- }
- } catch (BOSException var5) {
- var5.printStackTrace();
- } catch (SQLException var6) {
- var6.printStackTrace();
- }
- return orgRecMap;
- }
- private void createReserveFieldFirst(String id, String reserveFieldFirst) {
- StringBuffer sql = new StringBuffer();
- sql.append("update T_ORG_Admin set FReserveFieldFirst = '").append(reserveFieldFirst).append("'").append(" where FID = '").append(id).append("'");
- try {
- DbUtil.execute(this.ctx, sql.toString());
- } catch (BOSException var5) {
- var5.printStackTrace();
- }
- }
- }
|