| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456 |
- package com.uas.service.Impl;
- import com.alibaba.fastjson.JSON;
- import com.alibaba.fastjson.JSONArray;
- import com.alibaba.fastjson.JSONObject;
- import com.landray.kmss.sys.organization.webservice.in.ISysSynchroSetOrgWebService;
- import com.landray.kmss.sys.organization.webservice.in.SysSynchroSetOrgContext;
- import com.landray.kmss.sys.organization.webservice.in.SysSynchroSetResult;
- import com.uas.core.config.AddSoapHeader;
- import com.uas.core.config.WebServiceConfig;
- import com.uas.dao.BaseDao;
- import com.uas.dao.SqlRowList;
- import com.uas.service.SyncOrgElementsBaseInfoService;
- import org.apache.cxf.interceptor.LoggingInInterceptor;
- import org.apache.cxf.interceptor.LoggingOutInterceptor;
- import org.apache.cxf.jaxws.JaxWsProxyFactoryBean;
- import org.slf4j.Logger;
- import org.slf4j.LoggerFactory;
- import org.springframework.beans.factory.annotation.Autowired;
- import org.springframework.stereotype.Service;
- import sun.misc.BASE64Encoder;
- import java.util.List;
- /**
- * @author koul
- * @email koul@usoftchina.com
- * @date 2021-05-07 15:33
- */
- @Service
- public class SyncOrgElementsBaseInfoServiceImpl implements SyncOrgElementsBaseInfoService {
- private final Logger logger = LoggerFactory.getLogger(this.getClass());
- @Autowired
- BaseDao baseDao;
- /**
- * 同步所有组织架构基本信息
- * @param setOrgContext 组织架构信息接入上下文
- * @return
- * @throws Exception
- */
- private SysSynchroSetResult syncOrgElementsBaseInfo(SysSynchroSetOrgContext setOrgContext) throws
- Exception{
- return getService().syncOrgElementsBaseInfo(setOrgContext);
- }
- /**
- * 获取组织架构接入 WebService 对象
- * @return
- */
- private ISysSynchroSetOrgWebService getService(){
- // 定义组织架构接入 WebService 对象
- ISysSynchroSetOrgWebService setOrgWebService=null;
- if(setOrgWebService==null){
- // WebService 配置信息对象(读取自 client.properties 配置文件)
- WebServiceConfig serviceConfig = WebServiceConfig.getInstance();
- // 使用 Apache CXF 框架创建组织架构接入 WebService 对象
- JaxWsProxyFactoryBean factory = new JaxWsProxyFactoryBean();
- factory.getInInterceptors().add(new LoggingInInterceptor());
- factory.getOutInterceptors().add(new LoggingOutInterceptor());
- factory.getOutInterceptors().add(new AddSoapHeader());
- factory.setServiceClass(serviceConfig.getOrgServiceClass());
- // 设置服务请求的 URL 地址
- String servicePath = serviceConfig.getOrgAddress();
- factory.setAddress(servicePath);
- setOrgWebService= (ISysSynchroSetOrgWebService) factory.create();
- }
- return setOrgWebService;
- }
- /**
- * 同步组织架构信息
- * @param setOrgContext 组织架构信息接入上下文
- * @return
- * @throws Exception
- */
- private SysSynchroSetResult syncOrgElements(SysSynchroSetOrgContext setOrgContext) throws Exception{
- return getService().syncOrgElements(setOrgContext);
- }
- /**
- * 同步更新的组织架构信息
- * @param setOrgContext 组织架构信息接入上下文
- * @return
- * @throws Exception
- */
- private SysSynchroSetResult updateOrgElement(SysSynchroSetOrgContext setOrgContext) throws Exception{
- return getService().updateOrgElement(setOrgContext);
- }
- /**
- * 封装数据
- * @return
- */
- private JSONArray getOrgJsonData(){
- JSONArray resultArray = new JSONArray();
- // 《组织部门》 数据对象
- SqlRowList orgs = baseDao.queryForRowSet("select row_number() over (order by or_id) rn, case when nvl" +
- "(or_landrayid,' ')=' ' then to_char(or_id) else or_landrayid end or_id,or_code,or_name ," +
- "or_parentname,or_headmancode,or_headmanname,or_path, (select case when nvl(em_landrayemid,' ')=' ' " +
- "then to_char(em_id) else em_landrayemid end from hrorg ho left join employee on ho" +
- ".or_headmancode=em_code where ho.or_id=hr.or_subof) as superLeader,or_statuscode,or_landraysubid," +
- "to_char(or_subof) or_subof,case when nvl(em_landrayemid,' ')=' ' then to_char(em_id) else " +
- "em_landrayemid end emid from hrorg hr left join employee on hr.or_headmancode=em_code where " +
- "nvl(or_subof,0)>0 order by rn");
- while (orgs.next()) {
- JSONObject orgObj = new JSONObject();
- orgObj.put("id", orgs.getGeneralString("or_id")); // 唯一标识 (不允许为空)
- orgObj.put("lunid", orgs.getGeneralString("or_id")); // 唯一标识 (若不为空,直接作为主健存入数据库,不允许为空)
- orgObj.put("name", orgs.getGeneralString("or_name")); // 名称 (不允许为空)
- orgObj.put("type", "dept"); // 组织架构类型 (不允许为空 可选项: org(机构)、dept(部门)、group(群组)、post(岗位)、person(人员))
- orgObj.put("no", orgs.getGeneralString("or_code")); // 编号 (可为空)
- orgObj.put("order", orgs.getGeneralString("rn")); // 排序号 (可为空)
- orgObj.put("keyword", ""); // 关键字 (内容格式不限制,可为空)
- String landraysubid = orgs.getObject("or_landraysubid") == null ? orgs.getGeneralString("or_subof") : orgs.getGeneralString("or_landraysubid");
- orgObj.put("parent", landraysubid); // 父组织 (可为空)
- orgObj.put("thisLeader", orgs.getGeneralString("emid")); // 组织架构领导 (可为空)
- orgObj.put("memo", orgs.getGeneralString("or_path")); // 组织架构说明 (可为空)
- orgObj.put("superLeader", orgs.getGeneralString("superLeader")); // 组织上级上级领导 (可为空)
- String statuscode = orgs.getObject("or_statuscode") == null ? "" : orgs.getGeneralString(
- "or_statuscode");
- if ("AUDITED".equals(statuscode)) {
- orgObj.put("isAvailable", true); // 是否有效,该属性决定该部门架构是否删除
- }else {
- orgObj.put("isAvailable", false);
- }
- resultArray.add(orgObj); // 组织机构
- }
- // 《岗位》 数据对象
- SqlRowList posts = baseDao.queryForRowSet("select row_number() over (order by jo_level) rn,jo_id joid,case when nvl(jo_landrayid,' ')=' ' then to_char(jo_id) else jo_landrayid end jo_id, jo_code, jo_name, jo_orgid, jo_orgname, jo_headmancode, jo_headmanname , to_char(jo_orgid) jo_orgid, jo_parentname, jo_level, jo_emptype,jo_statuscode,jo_landrayorid," +
- "case when nvl(em_landrayemid,' ')=' ' then to_char(em_id) else em_landrayemid end emid," +
- "case when nvl(or_landrayid,' ')=' ' then to_char(or_id) else or_landrayid end or_id " +
- "from job left join employee on em_code=jo_headmancode left join hrorg on jo_orgid=or_id" +
- " order by rn");
- while (posts.next()) {
- JSONObject postObj = new JSONObject();
- postObj.put("id", posts.getGeneralString("jo_id")); // 唯一标识 (不允许为空)
- postObj.put("lunid", posts.getGeneralString("jo_id")); // 唯一标识 (若不为空,直接作为主健存入数据库,允许为空)
- postObj.put("name", posts.getGeneralString("jo_name")); // 名称 (不允许为空)
- postObj.put("type", "post"); // 组织架构类型 (不允许为空 可选项: org(机构)、dept(部门)、group(群组)、post(岗位)、person(人员))
- postObj.put("no", posts.getGeneralString("jo_code")); // 编号 (可为空)
- postObj.put("order", posts.getGeneralString("rn")); // 排序号 (可为空)
- postObj.put("keyword", ""); // 关键字 (内容格式不限制,可为空)
- postObj.put("parent", posts.getString("or_id")); // 父部门 (可为空)
- postObj.put("thisLeader", posts.getGeneralString("emid")); // 部门架构领导 (可为空)
- int level = posts.getGeneralInt("jo_level");
- String memo = posts.getObject("jo_orgname") == null ? "岗位层级" + level :
- "所属组织部门" + posts.getGeneralString("jo_orgname") + ",岗位层级" + level;
- postObj.put("memo", memo); // 岗位架构说明 (可为空)
- List<String> data = baseDao.queryForList("select case when nvl(em_landrayemid,' ')=' ' then to_char(em_id) else em_landrayemid end from employee where em_class<>'离职' and nvl(em_islandray,0)=-1 and em_defaulthsid="+posts.getGeneralInt("joid"), String.class);
- JSONArray persons=null;
- if (data != null && data.size() > 0) {
- persons =JSONArray.parseArray(JSON.toJSONString(data));
- }
- postObj.put("persons", persons); // 岗位包含人员 (可为空)
- String statuscode = posts.getObject("jo_statuscode") == null ? "" : posts.getGeneralString(
- "jo_statuscode");
- if ("AUDITED".equals(statuscode)) {
- postObj.put("isAvailable", true); // 是否有效,该属性决定该部门架构是否删除
- }else {
- postObj.put("isAvailable", false);
- }
- resultArray.add(postObj); // 岗位
- }
- // 《人员》 数据对象
- SqlRowList persons = baseDao.queryForRowSet("select row_number() over (order by em_id) rn,em_id emid,case when nvl(em_landrayemid,' ')=' ' then to_char(em_id) else em_landrayemid end em_id,em_code,em_name,em_password,em_mobile, em_email,em_cardcode," +
- "em_departmentcode,em_depart,em_position,em_defaulthsid,em_landrayemid,em_class," +
- "case when nvl(or_landrayid,' ')=' ' then to_char(or_id) else or_landrayid end or_id,case when nvl" +
- "(jo_landrayid,' ')=' ' then to_char(jo_id) else jo_landrayid end jo_id " +
- "from employee left join job on em_defaulthsid=jo_id left join hrorg on em_defaultorid=or_id where " +
- "nvl(em_islandray,0)=-1 order by rn");
- while (persons.next()) {
- JSONObject personObj = new JSONObject();
- // 唯一标识 (不允许为空)
- personObj.put("id", persons.getGeneralString("em_id"));
- personObj.put("lunid", persons.getGeneralString("em_id")); // 唯一标识 (若不为空,直接作为主健存入数据库,允许为空)
- personObj.put("name", persons.getGeneralString("em_name")); // 名称 (不允许为空)
- personObj.put("type", "person"); // 组织架构类型 (不允许为空 可选项: org(机构)、dept(部门)、group(群组)、post(岗位)、person(人员))
- personObj.put("no", persons.getGeneralString("em_code")); // 编号 (可为空)
- personObj.put("order", persons.getGeneralString("rn")); // 排序号 (可为空)
- personObj.put("keyword", persons.getGeneralString("em_name")); // 关键字 (内容格式不限制,可为空)
- String statuscode = persons.getObject("em_class") == null ? "" : persons.getGeneralString("em_class");
- if ("离职".equals(statuscode)) {
- personObj.put("isAvailable", false); // 是否有效,该属性决定该部门架构是否删除
- }else {
- personObj.put("isAvailable", true);
- }
- personObj.put("memo", persons.getGeneralString("rn")); // 人员说明 (可为空)
- personObj.put("parent", persons.getGeneralString("or_id")); // 所在部门 (可为空)
- List<String> data =
- baseDao.queryForList("select case when nvl(jo_landrayid,' ')=' ' then to_char(jo_id) else jo_landrayid end from empsjobs left join job on job_id=jo_id where emp_id=" + persons.getGeneralInt("emid"), String.class);
- data.add(persons.getString("jo_id"));
- JSONArray jobs=null;
- if (data != null && data.size() > 0) {
- jobs =JSONArray.parseArray(JSON.toJSONString(data));
- }
- personObj.put("posts", jobs); // 所属岗位
- personObj.put("loginName", persons.getGeneralString("em_mobile")); // 登录名
- String password = "";
- if (persons.getObject("em_password") != null) {
- BASE64Encoder encoder = new BASE64Encoder();
- password = encoder.encode(persons.getGeneralString("em_password").getBytes());//base64加密
- }
- personObj.put("password", password); // 密码,base64加密后的信息
- personObj.put("mobileNo", persons.getGeneralString("em_mobile")); // 手机号
- personObj.put("email", persons.getGeneralString("em_email")); // 邮件地址
- personObj.put("attendanceCardNumber", persons.getGeneralString("em_cardcode")); // 考勤号
- personObj.put("workPhone", "0755878787782"); // 办公电话 (仅当 type 为 person 时,有此信息)
- personObj.put("rtx", "952701"); // rtx 账号 (仅当 type 为 person 时,有此信息)
- resultArray.add(personObj); // 人员
- }
- return resultArray;
- }
- @Override
- public String sendSyncOrgElementsBaseInfo() {
- updateDeptElementAll();
- updatePostElementAll();
- updatePersonElementAll();
- String res = "";
- // 定义组织架构信息接入上下文
- SysSynchroSetOrgContext setOrgContext = new SysSynchroSetOrgContext();
- // 获取测试组织数据
- JSONArray orgJsonData = getOrgJsonData();
- // 将组织数据设置到组织架构信息接入上下文
- setOrgContext.setOrgJsonData(orgJsonData.toString());
- setOrgContext.setAppName("UAS");
- logger.info(orgJsonData.toString());
- logger.info(setOrgContext.toString());
- try {
- // 调用 WebService 接口,并接收请求返回的数据
- SysSynchroSetResult result = syncOrgElementsBaseInfo(setOrgContext);
- if (result.getReturnState()==0){
- res="同步蓝凌OA失败,传输错误";
- }else if (result.getReturnState()==1){
- res="同步蓝凌OA失败,失败信息:"+result.getMessage();
- }else if (result.getReturnState()==2){
- res="同步蓝凌OA成功";
- }
- } catch (Exception e) {
- res="同步蓝凌OA失败,接口异常,异常信息:"+e.getMessage();
- e.printStackTrace();
- }
- return res;
- }
- @Override
- public String sendSyncOrgElements() {
- updateDeptElementAll();
- updatePostElementAll();
- updatePersonElementAll();
- String res = "";
- // 定义组织架构信息接入上下文
- SysSynchroSetOrgContext setOrgContext = new SysSynchroSetOrgContext();
- // 获取测试组织数据
- JSONArray orgJsonData = getOrgJsonData();
- // 将组织数据设置到组织架构信息接入上下文
- setOrgContext.setOrgJsonData(orgJsonData.toString());
- setOrgContext.setAppName("UAS");
- logger.info(orgJsonData.toString());
- logger.info(setOrgContext.toString());
- try {
- // 调用 WebService 接口,并接收请求返回的数据
- SysSynchroSetResult result = syncOrgElements(setOrgContext);
- if (result.getReturnState()==0){
- res="同步蓝凌OA失败,传输错误";
- }else if (result.getReturnState()==1){
- res="同步蓝凌OA失败,失败信息:"+result.getMessage();
- }else if (result.getReturnState()==2){
- res="同步蓝凌OA成功";
- }
- } catch (Exception e) {
- res="同步蓝凌OA失败,接口异常,异常信息:"+e.getMessage();
- e.printStackTrace();
- }
- return res;
- }
- /**
- * 部门更新
- */
- @Override
- public void updateDeptElementAll(){
- SqlRowList orgs = baseDao.queryForRowSet("select row_number() over (order by or_id) rn, case when nvl" +
- "(or_landrayid,' ')=' ' then to_char(or_id) else or_landrayid end or_id,or_code,or_name ," +
- "or_parentname,or_headmancode,or_headmanname,or_path, (select case when nvl(em_landrayemid,' ')=' ' " +
- "then to_char(em_id) else em_landrayemid end from hrorg ho left join employee on ho" +
- ".or_headmancode=em_code where ho.or_id=hr.or_subof) as superLeader,or_statuscode,or_landraysubid," +
- "to_char(or_subof) or_subof,case when nvl(em_landrayemid,' ')=' ' then to_char(em_id) else " +
- "em_landrayemid end emid from hrorg hr left join employee on hr.or_headmancode=em_code where " +
- "nvl(or_subof,0)>0 order by rn");
- while (orgs.next()) {
- JSONObject orgObj = new JSONObject();
- orgObj.put("id", orgs.getGeneralString("or_id")); // 唯一标识 (不允许为空)
- orgObj.put("lunid", orgs.getGeneralString("or_id")); // 唯一标识 (若不为空,直接作为主健存入数据库,不允许为空)
- orgObj.put("name", orgs.getGeneralString("or_name")); // 名称 (不允许为空)
- orgObj.put("type", "dept"); // 组织架构类型 (不允许为空 可选项: org(机构)、dept(部门)、group(群组)、post(岗位)、person(人员))
- orgObj.put("no", orgs.getGeneralString("or_code")); // 编号 (可为空)
- orgObj.put("order", orgs.getGeneralString("rn")); // 排序号 (可为空)
- orgObj.put("keyword", ""); // 关键字 (内容格式不限制,可为空)
- String landraysubid = orgs.getObject("or_landraysubid") == null ? orgs.getGeneralString("or_subof") : orgs.getGeneralString("or_landraysubid");
- orgObj.put("parent", landraysubid); // 父组织 (可为空)
- orgObj.put("thisLeader", orgs.getGeneralString("emid")); // 组织架构领导 (可为空)
- orgObj.put("memo", orgs.getGeneralString("or_path")); // 组织架构说明 (可为空)
- orgObj.put("superLeader", orgs.getGeneralString("superLeader")); // 组织上级上级领导 (可为空)
- String statuscode = orgs.getObject("or_statuscode") == null ? "" : orgs.getGeneralString(
- "or_statuscode");
- if ("AUDITED".equals(statuscode)) {
- orgObj.put("isAvailable", true); // 是否有效,该属性决定该部门架构是否删除
- }else {
- orgObj.put("isAvailable", false);
- }
- updateOrgElement(orgObj,null,null);
- }
- }
- /**
- * 岗位更新
- */
- @Override
- public void updatePostElementAll(){
- SqlRowList posts = baseDao.queryForRowSet("select row_number() over (order by jo_level) rn,jo_id joid,case when nvl(jo_landrayid,' ')=' ' then to_char(jo_id) else jo_landrayid end jo_id, jo_code, jo_name, jo_orgid, jo_orgname, jo_headmancode, jo_headmanname , to_char(jo_orgid) jo_orgid, jo_parentname, jo_level, jo_emptype,jo_statuscode,jo_landrayorid,case when nvl(em_landrayemid,' ')=' ' then to_char(em_id) else em_landrayemid end emid,case when nvl(or_landrayid,' ')=' ' then to_char(or_id) else or_landrayid end or_id from job left join employee on em_code=jo_headmancode left join hrorg on jo_orgid=or_id order by rn");
- while (posts.next()) {
- JSONObject postObj = new JSONObject();
- postObj.put("id", posts.getGeneralString("jo_id")); // 唯一标识 (不允许为空)
- postObj.put("lunid", posts.getGeneralString("jo_id")); // 唯一标识 (若不为空,直接作为主健存入数据库,允许为空)
- postObj.put("name", posts.getGeneralString("jo_name")); // 名称 (不允许为空)
- postObj.put("type", "post"); // 组织架构类型 (不允许为空 可选项: org(机构)、dept(部门)、group(群组)、post(岗位)、person(人员))
- postObj.put("no", posts.getGeneralString("jo_code")); // 编号 (可为空)
- postObj.put("order", posts.getGeneralString("rn")); // 排序号 (可为空)
- postObj.put("keyword", ""); // 关键字 (内容格式不限制,可为空)
- postObj.put("parent", posts.getString("or_id")); // 父部门 (可为空)
- postObj.put("thisLeader", posts.getGeneralString("emid")); // 部门架构领导 (可为空)
- int level = posts.getGeneralInt("jo_level");
- String memo = posts.getObject("jo_orgname") == null ? "岗位层级" + level :
- "所属组织部门" + posts.getGeneralString("jo_orgname") + ",岗位层级" + level;
- postObj.put("memo", memo); // 岗位架构说明 (可为空)
- List<String> data = baseDao.queryForList("select case when nvl(em_landrayemid,' ')=' ' then to_char(em_id) else em_landrayemid end from employee where em_class<>'离职' and nvl(em_islandray,0)=-1 and em_defaulthsid="+posts.getGeneralInt("joid"), String.class);
- JSONArray persons=null;
- if (data != null && data.size() > 0) {
- persons =JSONArray.parseArray(JSON.toJSONString(data));
- }
- postObj.put("persons", persons); // 岗位包含人员 (可为空)
- String statuscode = posts.getObject("jo_statuscode") == null ? "" : posts.getGeneralString(
- "jo_statuscode");
- if ("AUDITED".equals(statuscode)) {
- postObj.put("isAvailable", true); // 是否有效,该属性决定该部门架构是否删除
- }else {
- postObj.put("isAvailable", false);
- }
- updateOrgElement(null,postObj,null);
- }
- }
- /**
- * 人员更新
- */
- @Override
- public void updatePersonElementAll(){
- SqlRowList persons = baseDao.queryForRowSet("select row_number() over (order by em_id) rn,em_id emid,case when nvl(em_landrayemid,' ')=' ' then to_char(em_id) else em_landrayemid end em_id,em_code,em_name,em_password,em_mobile, em_email,em_cardcode," +
- "em_departmentcode,em_depart,em_position,em_defaulthsid,em_landrayemid,em_class," +
- "case when nvl(or_landrayid,' ')=' ' then to_char(or_id) else or_landrayid end or_id,case when nvl" +
- "(jo_landrayid,' ')=' ' then to_char(jo_id) else jo_landrayid end jo_id " +
- "from employee left join job on em_defaulthsid=jo_id left join hrorg on em_defaultorid=or_id where " +
- "nvl(em_islandray,0)=-1 order by rn");
- while (persons.next()) {
- JSONObject personObj = new JSONObject();
- // 唯一标识 (不允许为空)
- personObj.put("id", persons.getGeneralString("em_id"));
- personObj.put("lunid", persons.getGeneralString("em_id")); // 唯一标识 (若不为空,直接作为主健存入数据库,允许为空)
- personObj.put("name", persons.getGeneralString("em_name")); // 名称 (不允许为空)
- personObj.put("type", "person"); // 组织架构类型 (不允许为空 可选项: org(机构)、dept(部门)、group(群组)、post(岗位)、person(人员))
- personObj.put("no", persons.getGeneralString("em_code")); // 编号 (可为空)
- personObj.put("order", persons.getGeneralString("rn")); // 排序号 (可为空)
- personObj.put("keyword", persons.getGeneralString("em_name")); // 关键字 (内容格式不限制,可为空)
- String statuscode = persons.getObject("em_class") == null ? "" : persons.getGeneralString("em_class");
- if ("离职".equals(statuscode)) {
- personObj.put("isAvailable", false); // 是否有效,该属性决定该部门架构是否删除
- }else {
- personObj.put("isAvailable", true);
- }
- personObj.put("memo", persons.getGeneralString("rn")); // 人员说明 (可为空)
- personObj.put("parent", persons.getGeneralString("or_id")); // 所在部门 (可为空)
- List<String> data =
- baseDao.queryForList("select case when nvl(jo_landrayid,' ')=' ' then to_char(jo_id) else jo_landrayid end from empsjobs left join job on job_id=jo_id where emp_id=" + persons.getGeneralInt("emid"), String.class);
- data.add(persons.getString("jo_id"));
- JSONArray jobs=null;
- if (data != null && data.size() > 0) {
- jobs =JSONArray.parseArray(JSON.toJSONString(data));
- }
- personObj.put("posts", jobs); // 所属岗位
- personObj.put("loginName", persons.getGeneralString("em_mobile")); // 登录名
- String password = "";
- if (persons.getObject("em_password") != null) {
- BASE64Encoder encoder = new BASE64Encoder();
- password = encoder.encode(persons.getGeneralString("em_password").getBytes());//base64加密
- }
- personObj.put("password", password); // 密码,base64加密后的信息
- personObj.put("mobileNo", persons.getGeneralString("em_mobile")); // 手机号
- personObj.put("email", persons.getGeneralString("em_email")); // 邮件地址
- personObj.put("attendanceCardNumber", persons.getGeneralString("em_cardcode")); // 考勤号
- personObj.put("workPhone", "0755878787782"); // 办公电话 (仅当 type 为 person 时,有此信息)
- personObj.put("rtx", "952701"); // rtx 账号 (仅当 type 为 person 时,有此信息)
- updateOrgElement(null,null,personObj);
- }
- }
- private void updateOrgElement(JSONObject deptJsonData,JSONObject postJsonData,JSONObject personJsonData) {
- try {
- // 定义组织架构信息接入上下文
- SysSynchroSetOrgContext setOrgContext = new SysSynchroSetOrgContext();
- setOrgContext.setAppName("UAS");
- if (deptJsonData!=null) {
- // 将《部门》组织数据设置到组织架构信息接入上下文
- setOrgContext.setOrgJsonData(deptJsonData.toString());
- // 调用 WebService 接口,并接收请求返回的数据
- SysSynchroSetResult deptResult = updateOrgElement(setOrgContext);
- // 0:未操作、1:失败、2:成功
- logger.info("请求状态:\n" + deptResult.getReturnState());
- }
- if (postJsonData!=null) {
- // 将《岗位》组织数据设置到组织架构信息接入上下文
- setOrgContext.setOrgJsonData(postJsonData.toString());
- // 调用 WebService 接口,并接收请求返回的数据
- SysSynchroSetResult postResult = updateOrgElement(setOrgContext);
- // 0:未操作、1:失败、2:成功
- logger.info("请求状态:\n" + postResult.getReturnState());
- }
- if (personJsonData!=null) {
- // 将《人员》组织数据设置到组织架构信息接入上下文
- setOrgContext.setOrgJsonData(personJsonData.toString());
- // 调用 WebService 接口,并接收请求返回的数据
- SysSynchroSetResult personResult = updateOrgElement(setOrgContext);
- // 0:未操作、1:失败、2:成功
- logger.info("请求状态:\n" + personResult.getReturnState());
- }
- } catch (Exception e) {
- e.printStackTrace();
- }
- }
- }
|