近期,项目要对接人力资源管理系统,获取对应的组织架构、人员信息等相关内容,特此整理一下,以备不时之需。
口包含两部分,获取所有组织架构基本信息(getElementsBaseInfo)以及获取需要更新的组织架构信息(getUpdatedElements)等2个接口, 接口getElementsBaseInfo的作用是暴露本系统所有组织架构唯一标示信息,以便于异构系统做组织架构关系对应,另外也方便异构系统做组织架构架构删除检测。 接口getUpdatedElements的作用是返回此次组织架构同步,以下是对上述接口参数的具体说明:
1.1 获取所有组织架构基本信息(getElementsBaseInfo) |
参数信息 | 组织架构基本信息接出上下文(SysSynchroGetOrgBaseInfoContext),详细说明如下: 程序名描述类型可否为空备注说明returnOrgType设置需要返回的组织架构信息类型String(json数组)允许为空为空,表示获取所有组织架构类型的数据。不为空,表示获取设置的组织架构类型,格式为:[{"type":"person"},..]。可供设置的组织类型有:org(机构),dept(部门),group(群组),post(岗位),person(人员)。returnType设置需要返回的基本信息字段列表String(json数组)允许为空为空,返回的基本信息仅包含:id(唯一标识),lunid(唯一标示,可作为数据主健),name(名称),type(组织架构类型)信息。不为空,则表示返回的基本信息中处理id,name,type,lunid外,还包含设置的字段列表内容。 格式为:[{"type":"no"},..]。可供设置的字段名称有:no(编号),keyword(关键字)。 |
返回信息 | 返回信息(SysSynchroOrgResult),详细说明如下: 程序名描述类型可否为空备注说明returnState返回状态数字(int)不允许为空0:表示未操作。1:表示操作失败。2:表示操作成功。message返回信息字符串(String)可为空返回状态值为0时,该值返回空。返回状态值为1时,该值返回错误信息。返回状态值为2时,该值返回所有组织架构的基本信息json数组。说明如下:返回值格式和参数returnType的设置有关。1、returnType为空时,返回信息格式为:[{"id":"13425","name":"测试部","type":"dept","lunid":"13425"},...]。2、returnType不为空时,返回的信息格式和returnType的设置对应,如returnType设置为 [{"type":"no"},{"type":"keyword"}]时,则对应返回信息格式为:[{"id":"13425","name":"测试部","type":"dept","lunid":"13425","no":"CSDL01","keyword":"dept_01"},...]。count返回数据的条目数数字(int)可为0返回数据的条目数。 |


// 设置服务请求的URL地址String servicePath = serviceConfig.getAddress();factory.setAddress(servicePath);getOrgWebService = (ISysSynchroGetOrgWebService) factory.create();}return getOrgWebService;}public static void main(String[] args) {Test test = new Test();// 定义组织架构信息接出上下文SysSynchroGetOrgInfoTokenContext orgContext = new SysSynchroGetOrgInfoTokenContext();// 参数:组织类型JSON数组字符串( 可选项: org(机构)、dept(部门)、group(群组)、post(岗位)、person(人员))// 按需增减参数,如仅需要人员数据时: String returnOrgType = "[{\"type\":\"person\"}]";String returnOrgType = "[{\"type\":\"org\"},{\"type\":\"dept\"},{\"type\":\"group\"},{\"type\":\"post\"},{\"type\":\"person\"}]";orgContext.setReturnOrgType(returnOrgType);// 设置此次同步需要获取组织架构条目数int pageSize = 5;orgContext.setCount(pageSize);// 设置同步的时间戳,返回指定的时间之后的数据,为空时不限制(时间戳格式要求:yyyy-MM-dd HH:mm:ss.SSS)//orgContext.setBeginTimeStamp("2018-12-20 18:50:17.000");try {int pageNo = 1; // 页码String token = null;while(true){orgContext.setPageNo(pageNo);if(pageNo!=1){orgContext.setToken(token);}// 调用WebService接口,并接收请求返回的数据SysSynchroOrgTokenResult result = test.getUpdatedElementsByToken(orgContext);System.out.println("调用webservice请求第 "+pageNo+" 页数据");System.out.println("请求状态:\n"+result.getReturnState()); // 0:未操作、1:失败、2:成功System.out.println("本次请求返回的记录条数:\n"+result.getCount());System.out.println("token:\n"+result.getToken());System.out.println("组织架构数据:\n"+result.getMessage());if(result.getCount()<pageSize){break;}token = result.getToken();pageNo++;}} catch (Exception e) {e.printStackTrace();}}}









