| 1 |
- print("运行人员同步接口");var File=Java.type("java.io.File");var Config={localPath:"D:"+File.separator+"OrganizationSyncRequest"+File.separator+"person"+File.separator};var applications=resources.getContext().applications();var archiveFlag=false;var Utils={getUserFlag:function(e){return e.flag||e.distinguishedName||e.unique||e.employee||e.mobile||e.id},getKeyEqualObjFromArray:function(e,t,r){for(var i=0;i<e.length;i++){if(e[i][t]===r){return e[i]}}return null},parseResp:function(e){if(e===null){return{type:"error",message:"服务响应是null,需要管理员查看后台日志"}}else{var t=JSON.parse(e.toString());return t}},getFailText:function(e){var t;if(e.message&&e.message){t=e.message+(e.prompt?"("+e.prompt+")":"")}else if(e.prompt){t=e.prompt}else{t="未知异常"}print(t);return t},processError:function(e,t){e.printStackTrace();var r=t+" "+e.name+": "+e.message;print(r);return r},arrayIndexOf:function(e,t){for(var r=0;r<e.length;r++){if(e[r]==t)return r}return-1},objectClone:function(e){if(null==e||"object"!=typeof e)return e;if(typeof e.length==="number"){var t=[];for(var r=0,i=e.length;r<i;++r){t[r]=Utils.objectClone(e[r])}return t}else{var t={};for(var a in e){t[a]=Utils.objectClone(e[a])}return t}},saveToLocal:function(e){print("保存文件开始");if(File==null)File=Java.type("java.io.File");var t=new File(Config.localPath);if(!t.exists()){if(!t.mkdirs()){print("创建文件夹失败:"+recordPath);return null}}var r=new java.text.SimpleDateFormat("yyyyMMddHHmmss").format(now);var i=e.name?e.name:Utils.getUnitFlag(e);var a=Config.localPath+File.separator+r+"_"+i+".json";var s=new File(a);if(s.exists()){s.delete()}if(!s.createNewFile()){print("不能创建文件:"+a);return null}var n=new java.io.PrintWriter(s,"GBK");n.write(e);n.close();print("保存文件结束 path="+a)}};var AttributeAction={add:function(e,t){t.person=e;t.attributeList=typeof(t.value=="string")?[t.value]:t.value;try{var r=applications.postQuery("x_organization_assemble_control","personattribute",JSON.stringify(t));var i=Utils.parseResp(r);if(i.type&&i.type=="success"){return""}else{return Utils.getFailText(i)}}catch(e){return Utils.processError(e,"新增用户属性AttributeAction.add() 出错: ")}},remove:function(e){try{var t=applications.deleteQuery("x_organization_assemble_control","personattribute/"+e.id);var r=Utils.parseResp(t);if(r.type&&r.type=="success"){return""}else{return Utils.getFailText(r)}}catch(e){return Utils.processError(e,"删除用户属性AttributeAction.remove() 出错: ")}},update:function(e,t,r){for(var i in t){if(i!="distinguishedName"){r[i]=t[i]}}r.person=e;r.attributeList=typeof(t.value=="string")?[t.value]:t.value;try{var a=applications.putQuery("x_organization_assemble_control","personattribute/"+r.id,JSON.stringify(r));var s=Utils.parseResp(a);if(s.type&&s.type=="success"){return""}else{return Utils.getFailText(s)}}catch(e){return Utils.processError(e,"修改用户属性AttributeAction.update() 出错: ")}},compare:function(e){var t=e.attributeList;var r="";var i=Utils.getUserFlag(e);if(i){try{var a=applications.getQuery("x_organization_assemble_control","personattribute/list/person/"+i);var s=Utils.parseResp(a);var n;if(s.type&&s.type=="success"){n=s.data}else{n=[]}for(var o=0;o<n.length;o++){var l=Utils.getKeyEqualObjFromArray(t,"name",n[o].name);if(l==null){r=AttributeAction.remove(n[o])}else{r=AttributeAction.update(i,l,n[o])}}for(var o=0;o<t.length;o++){var u=Utils.getKeyEqualObjFromArray(n,"name",t[o].name);if(u==null){r=AttributeAction.add(i,t[o])}}return r}catch(e){return Utils.processError(e,"修改用户属性AttributeAction.compare() 出错: ")}}}};var IdentityAction={add:function(e,t,r){var i={name:r,person:e,unit:t.flag,description:t.description};try{var a=applications.postQuery("x_organization_assemble_control","identity",JSON.stringify(i));var s=Utils.parseResp(a);if(s.type==="success"){return""}else{archiveFlag=true}return true}catch(e){return Utils.processError(e,"新增用户身份IdentityAction.add() 出错: ")}},remove:function(e){try{var t=applications.deleteQuery("x_organization_assemble_control","identity/"+e.id);var r=Utils.parseResp(t);if(r.type&&r.type=="success"){return""}else{return Utils.getFailText(r)}}catch(e){return Utils.processError(e,"删除用户身份IdentityAction.remove() 出错: ")}},update:function(e,t,r){if(e.orderNumber!=t.orderNumber||e.description!=t.description){e.orderNumber=t.orderNumber;e.description=t.description;try{var i=applications.putQuery("x_organization_assemble_control","identity/"+e.id,JSON.stringify(e));var a=Utils.parseResp(i);if(a.type&&a.type=="success"){return""}else{return Utils.getFailText(a)}}catch(e){return Utils.processError(e,"修改用户身份IdentityAction.update() 出错: ")}}},compare:function(e){var t="";var r=e.unitList;var i=Utils.getUserFlag(e);if(!i)return"修改用户身份IdentityAction.compare() 出错: 未能找到用户标志";try{var a=applications.getQuery("x_organization_assemble_control","identity/list/person/"+i);var s=Utils.parseResp(a);var n;if(s.type=="success"){n=s.data||[]}else{n=[]}var o={personList:[i]};var l=applications.postQuery("x_organization_assemble_express","unit/list/person/object",JSON.stringify(o));var u=Utils.parseResp(l);var p;if(u.type=="success"){p=u.data||[]}else{return Utils.getFailText(u)}for(var c=0;c<p.length;c++){var f=IdentityAction.getEqualUnitFromArray(r,p[c]);if(f==null){print("删除身份");var d=IdentityAction.getIdentityByUnit(n,p[c]);t=IdentityAction.remove(d)}else{print("修改身份");var d=IdentityAction.getIdentityByUnit(n,p[c]);t=IdentityAction.update(d,f,p[c])}}for(var c=0;c<r.length;c++){var v=IdentityAction.getEqualUnitFromArray(p,r[c]);if(v==null){print("新增身份");t=IdentityAction.add(i,r[c],e.name)}}return t}catch(e){return Utils.processError(e,"修改用户身份IdentityAction.compare() 出错: ")}},getIdentityByUnit:function(e,t){for(var r=0;r<e.length;r++){var i=e[r];if(i.unitLevelName===t.levelName){return i}}},getEqualUnitFromArray:function(e,t){for(var r=0;r<e.length;r++){if(IdentityAction.unitEquals(e[r],t)){return e[r]}}return null},unitEquals:function(e,t){if(t.flag&&Utils.arrayIndexOf([e.flag,e.unique,e.distinguishedName,e.levelName,e.id],t.flag)>-1)return true;if(e.flag&&Utils.arrayIndexOf([t.flag,t.unique,t.distinguishedName,t.levelName,t.id],e.flag)>-1)return true;if(t.id&&t.id==e.id)return true;if(t.unique&&t.unique==e.unique)return true;if(t.distinguishedName&&t.distinguishedName==e.distinguishedName)return true;if(t.levelName&&t.levelName==e.levelName)return true;return false}};function get(e){var t="";var r=Utils.getUserFlag(e);var i;var a;if(r){try{i=applications.getQuery("x_organization_assemble_control","person/"+r);var s=Utils.parseResp(i);if(s.type&&s.type=="success"){a=s.data}else{return Utils.getFailText(e)}}catch(e){return Utils.processError(e,"get() 出错: ")}delete a.woIdentityList;delete a.woRoleList;delete a.woGroupList;delete a.woPersonAttributeList;return a}else{t="参数中没有个人标志:distinguishedName , unique, employee, mobile 或 id, 不能获取用户";print(t);return t}}function add(e){print("添加个人");var t;var r;var i;try{if(e.superior&&e.superior!=""){var a=get({flag:e.superior});if(typeof a!="object"){archiveFlag=true}}var s=get(e);if(typeof s=="object"){if(e.forceFlag&&e.forceFlag=="yes"){for(var n in e){if(n!=="action"&&n!=="attributeList"&&n!=="unitList"){if(n=="orderNumber"&&(!e[n]||e[n]=="")){}else{s[n]=e[n]}}}if(!s.controllerList||s.controllerList==null)s.controllerList=[];i=applications.putQuery("x_organization_assemble_control","person/"+s.id,JSON.stringify(s))}else{t="人员"+Utils.getUnitFlag(e)+"已经在系统内存在"}}else{if(e.controllerList===null)e.controllerList=[];var o=Utils.objectClone(e);if(o.attributeList)delete o.attributeList;if(o.unitList)delete o.unitList;o.controllerList=[];var i=applications.postQuery("x_organization_assemble_control","person",JSON.stringify(o))}r=Utils.parseResp(i);if(r.type&&r.type=="success"){if(!e.attributeList)e.attributeList=[];t=AttributeAction.compare(e);if(!e.unitList)e.unitList=[];t=IdentityAction.compare(e)}else{t=Utils.getFailText(r)}}catch(e){t=Utils.processError(e,"添加个人 add() 出错:")}finally{if(archiveFlag){Utils.saveToLocal(e)}var l={result:t?"error":"success",description:t||""};if(r&&r.data){l.id=r.data.id}return l}}function update(e){print("修改个人");var t;var r;try{if(e.superior&&e.superior!=""){var i=get({flag:e.superior});if(typeof i!="object"){archiveFlag=true}}var a=get(e);if(typeof a=="object"){for(var s in e){if(s!=="action"&&s!=="attributeList"&&s!=="unitList"){if(s=="orderNumber"&&(!e[s]||e[s]=="")){}else{a[s]=e[s]}}}if(!a.controllerList||a.controllerList==null)a.controllerList=[];var n=applications.putQuery("x_organization_assemble_control","person/"+a.id,JSON.stringify(a));var r=Utils.parseResp(n);if(r.type&&r.type=="success"){if(!e.attributeList)e.attributeList=[];t=AttributeAction.compare(e);if(!e.unitList)e.unitList=[];t=IdentityAction.compare(e)}else{t=Utils.getFailText(r)}}else{t=a}}catch(e){t=Utils.processError(e,"修改个人 update() 出错:")}finally{if(archiveFlag){Utils.saveToLocal(e)}var o={result:t?"error":"success",description:t||""};if(r&&r.data){o.id=r.data.id}return o}}function updatePassword(e){print("修改用户密码");var t="";var r;var i=Utils.getUserFlag(e);if(i){try{var a={value:e.password};var s=applications.putQuery("x_organization_assemble_control","person/"+i+"/set/password",JSON.stringify(a));r=Utils.parseResp(s);if(r.type&&r.type=="success"){}else{t=Utils.getFailText(r)}}catch(e){t=Utils.processError(e,"修改用户密码出错 "+i+" updatePassword() 出错:")}}else{t="参数中没有个人标志:distinguishedName , unique, employee, mobile 或 id, 不能获取用户";print(t)}var n={result:t?"error":"success",description:t||""};return n}function updateSuperior(e){print("修改个人汇报对象");var t;var r;try{var i=get(e);if(typeof i=="object"){i.superior=e.superior;if(!i.controllerList)i.controllerList=[];var a=applications.putQuery("x_organization_assemble_control","person/"+i.id,JSON.stringify(i));r=Utils.parseResp(a);if(r.type&&r.type=="success"){}else{t=Utils.getFailText(r)}}else{t=i}}catch(e){t=Utils.processError(e,"修改个人 updateSuperior() 出错:")}finally{var s={result:t?"error":"success",description:t||""};if(r&&r.data){s.id=r.data.id}return s}}function remove(e){print("删除个人");var t;var r;try{var i=get(e);if(typeof i=="object"){var a=applications.deleteQuery("x_organization_assemble_control","person/"+i.id);r=Utils.parseResp(a);if(r.type&&r.type=="success"){}else{t=Utils.getFailText(r)}}else{t=i}}catch(e){t=Utils.processError(e,"删除个人 remove() 出错:")}finally{var s={result:t?"error":"success",description:t||""};if(r&&r.data){s.id=r.data.id}return s}}function init(){var t="";var e="";try{print("requestText="+requestText);var r=JSON.parse(requestText);print("type of requestJson = "+typeof r);if(typeof r==="string"){r=JSON.parse(r)}var i=r.action;print("action="+i);switch(i){case"add":t=add(r);break;case"update":t=update(r);break;case"updatepwd":t=updatePassword(r);break;case"updateSuperior":t=updateSuperior(r);break;case"delete":t=remove(r);break;default:t={result:"error",description:"requestText未设置action,不执行操作"};break}}catch(e){e.printStackTrace();t={result:"error",description:e.name+": "+e.message}}finally{print("responseText="+JSON.stringify(t));return t}}init();
|