123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581582583584585586587588589590591592593594595596597598599600601602603604605606607608609610611612613614615616617618619620621622623624625626627628629630631632633634635636637638639640641642643644645646647648649650651652653654655656657658659660661662663664665666667668669670671672673674675676677678679680681682683684685686687688689690691692693694695696697698699700701702703704705706707708709710711712713714715716717718719720721722723724725726727728729730731732733734735736737738739740741742743744745746747748749750751752753754755756757758759760761762763764765766767768769770771772773774775776777778779780781782783784785786787788789790791792793794795796797798799800801802803804805806807808809810811812813814815816817818819820821822823824825826827828829830831832833834835836837838839840841842843844845846847848849850851852853854855856857858859860861862863864865866867868869870871872873874875876877878879880881882883884885886887888889890891892893894895896897898899900901902903904905906907908909910911912913914915916917918919920921922923924925 |
- /*
- * resources.getEntityManagerContainer() // 实体管理容器.
- * resources.getContext() //上下文根.
- * resources.getOrganization() //组织访问接口.
- * requestText //请求内容.
- * request //请求对象.
- */
- /*
- {
- "action": "add",
- "genderType": "m",
- "signature": "",
- "description": "",
- "name": "",
- "employee": "",
- "unique": "",
- "distinguishedName": "",
- "orderNumber": "",
- "controllerList": "",
- "superior": "",
- "mail": "",
- "weixin": "",
- "qq": "",
- "mobile": "",
- "officePhone": "",
- "boardDate": "",
- "birthday": "",
- "age": "",
- "dingdingId": "",
- "dingdingHash": "",
- "attributeList": [
- {
- "name": "",
- "value": "",
- "description": "",
- "orderNumber": ""
- }
- ],
- "unitList": [
- {
- "flag": "",
- "orderNumber": "",
- "description": "",
- "duty": "",
- "position": ""
- }
- ]
- }
- */
- print("运行人员同步接口");
- var File = Java.type('java.io.File');
- var Config = {
- localPath : File.separator + "data" + File.separator + "OrganizationSyncRequest" + File.separator + "person" + File.separator,
- ignoreDuty : ["部门积分管理员","公司积分管理员","市、县公司普通员工"],
- ignorAttribute : ["市、县公司普通员工"]
- };
- var applications = resources.getContext().applications();
- var archiveFlag = false;
- var Utils = {
- getUserFlag : function( json ){
- return json.flag || json.unique || json.distinguishedName || json.employee || json.mobile || json.id;
- },
- getKeyEqualObjFromArray : function( sourceArray, sourceKey, value ){
- for( var i=0; i<sourceArray.length; i++ ){
- if( sourceArray[i][sourceKey] === value ){
- return sourceArray[i];
- }
- }
- return null;
- },
- parseResp : function( resp ){
- if( !resp || resp === null ){
- return {
- "type": "error",
- message : "服务响应是null,需要管理员查看后台日志"
- }
- }else{
- var json = JSON.parse( resp.toString() );
- return json;
- }
- },
- getFailText : function( json ){
- //{
- // "type": "error",
- // "message": "手机号错误:15268803358, 手机号已有值重复.",
- // "date": "2018-08-05 02:51:35",
- // "spent": 5,
- // "size": -1,
- // "count": 0,
- // "position": 0,
- // "prompt": "com.x.organization.assemble.control.jaxrs.person.ExceptionMobileDuplicate"
- //}
- var text;
- if( json.message ){
- text = json.message + ( json.prompt ? "("+json.prompt + ")" : "" );
- }else if( json.prompt ){
- text = json.prompt;
- }else{
- text = "未知异常";
- }
- print(text);
- return text;
- },
- processError : function( e, text ){
- e.printStackTrace();
- var errorText = text + " " + e.name + ": " + e.message;
- print(errorText);
- return errorText;
- },
- arrayIndexOf : function( array, target ){
- for( var i=0; i<array.length; i++ ){
- if( array[i] == target )return i;
- }
- return -1;
- },
- arrayErase : function(array, target){
- for (var i = array.length; i--;){
- if (array[i] === target) array.splice(i, 1);
- }
- return array;
- },
- objectClone : function (obj) {
- if (null == obj || "object" != typeof obj) return obj;
- if ( typeof obj.length==='number'){ //数组
- var copy = [];
- for (var i = 0, len = obj.length; i < len; ++i) {
- copy[i] = Utils.objectClone(obj[i]);
- }
- return copy;
- }else{
- var copy = {};
- for (var attr in obj) {
- copy[attr] = Utils.objectClone(obj[attr]);
- }
- return copy;
- }
- },
- typeOf : function( item ){
- if (item === null) return 'null';
- if( !item ){
- return typeof item;
- }
- if (item.$family != null) return item.$family();
- if (item.constructor == Array) return 'array';
- if (item.nodeName){
- if (item.nodeType == 1) return 'element';
- if (item.nodeType == 3) return (/\S/).test(item.nodeValue) ? 'textnode' : 'whitespace';
- } else if (typeof item.length == 'number'){
- if (item.callee) return 'arguments';
- //if ('item' in item) return 'collection';
- }
- return typeof item;
- //if( obj === null )return "null";
- //if( "object" !== typeof obj )return typeof obj;
- //return typeof obj.length==='number' ? 'array' : 'object';
- },
- saveToLocal : function( json ){
- if( json.saveFlag && json.saveFlag == "no" ){
- print( "不保存文件" );
- return;
- }
- print( "保存文件开始" );
- if( File == null )File = Java.type('java.io.File');
- var dir = new File( Config.localPath );
- if (!dir.exists()) {
- if(!dir.mkdirs()){
- print( "创建文件夹失败:"+ recordPath );
- return null;
- }
- }
- //var Date = Java.type( "java.util.Date" );
- //var now = new Date();
- //var nowStr = new java.text.SimpleDateFormat("yyyyMMddHHmmss").format(now);
- var name = json.name ? json.name : Utils.getUserFlag(json);
- var unique = json.unique ? json.unique : "";
- var path = Config.localPath + name + '_' + unique + '.json';
- var file = new File(path);
- if (file.exists()) { // 如果已存在,删除旧文件
- file.delete();
- }
- if(!file.createNewFile()){
- print("不能创建文件:"+path);
- return null;
- }
- var pw = new java.io.PrintWriter(file, "GBK");
- pw.write( JSON.stringify(json) );
- pw.close();
- print( "保存文件结束 path="+path );
- }
- };
- var AttributeAction = function( json ){
- var attribute_new = json.attributeList; //传入的用户属性
- this.errorText = "";
- var flag = Utils.getUserFlag( json );
- if( flag ){
- try{
- var resp = applications.getQuery('x_organization_assemble_control', 'personattribute/list/person/'+flag );
- var json_attribute_old = Utils.parseResp( resp );
- var attribute_old;
- if( json_attribute_old.type && json_attribute_old.type == "success" ){
- attribute_old = json_attribute_old.data;
- }else{
- attribute_old = [];
- //return Utils.getFailText(json_attribute_old);
- }
- for( var i=0; i<attribute_old.length; i++ ){
- if( Utils.arrayIndexOf( Config.ignorAttribute, attribute_old[i].name ) == -1 ){
- var obj_new = Utils.getKeyEqualObjFromArray( attribute_new, "name", attribute_old[i].name );
- if( obj_new == null ){ //老的不在了,要删除
- this.errorText = this.remove( attribute_old[i] )
- }else{ //已经存在,要修改
- this.errorText = this.update( flag, obj_new, attribute_old[i] );
- }
- }
- }
- for( var i=0; i<attribute_new.length; i++ ){
- if( Utils.arrayIndexOf( Config.ignorAttribute, attribute_new[i].name ) == -1 ) {
- var obj_old = Utils.getKeyEqualObjFromArray(attribute_old, "name", attribute_new[i].name);
- if (obj_old == null) { //需要新增
- this.errorText = this.add(flag, attribute_new[i]);
- }
- }
- }
- }catch(e){
- this.errorText = Utils.processError( e, "处理用户属性AttributeAction.new() 出错: " );
- }
- }
- };
- AttributeAction.prototype.add = function( flag, data ){
- //name string single 属性名称 级别
- //description string single 属性描述 级别描述
- //value string/array multi 属性值 1 / [ "1" ]
- //orderNumber string single 排序号,升序排列,为空在最后 18315158
- data.person = flag;
- var valueList = typeof( data.value ) == "string" ? [data.value] : data.value;
- for( var i=0; i<valueList.length; i++ ){
- valueList[i] = valueList[i].replace("@","-");
- }
- data.attributeList = valueList;
- try {
- var resp = applications.postQuery('x_organization_assemble_control', 'personattribute', JSON.stringify( data ));
- var json = Utils.parseResp( resp );
- if( json.type && json.type == "success" ){
- return "";
- }else{
- return Utils.getFailText( json );
- }
- }catch(e){
- return Utils.processError( e, "新增用户属性AttributeAction.add() 出错: " );
- }
- };
- AttributeAction.prototype.remove = function( data ){
- try {
- var resp = applications.deleteQuery('x_organization_assemble_control', 'personattribute/'+data.id );
- var json = Utils.parseResp( resp );
- if( json.type && json.type == "success" ){
- return "";
- }else{
- return Utils.getFailText( json );
- }
- }catch(e){
- return Utils.processError( e, "删除用户属性AttributeAction.remove() 出错: " );
- }
- };
- AttributeAction.prototype.update = function( flag, data_new, data_old ){
- for( var key in data_new ){
- if( key != "distinguishedName" ){
- data_old[key] = data_new[key];
- }
- }
- data_old.person = flag;
- data_old.attributeList = typeof( data_new.value ) == "string" ? [data_new.value] : data_new.value;
- try {
- var resp = applications.putQuery('x_organization_assemble_control', 'personattribute/'+data_old.id, JSON.stringify(data_old) );
- var json = Utils.parseResp( resp );
- if( json.type && json.type == "success" ){
- return "";
- }else{
- return Utils.getFailText( json );
- }
- }catch(e){
- return Utils.processError( e, "修改用户属性AttributeAction.update() 出错: " );
- }
- };
- var DutyAction = function( identity, unit, dutyNameList ){
- try {
- this.errorText = "";
- this.identity = identity;
- this.unit = unit;
- this.dutyNameList = dutyNameList;
- var resp_old = applications.getQuery('x_organization_assemble_control', 'unitduty/list/unit/'+unit);
- var json_old = Utils.parseResp( resp_old );
- if( json_old.type === "success" && json_old.data ) {
- var existDutyList = [];
- var dutyObject = {};
- for( var i=0; i<json_old.data.length; i++ ){
- var oldDuty = json_old.data[i];
- dutyObject[ oldDuty.name ] = oldDuty;
- if( this.identityEquals( oldDuty.woIdentityList, identity ) ){
- existDutyList.push( oldDuty.name );
- }
- }
- for( var i=0; i<dutyNameList.length; i++ ){
- var dutyName = dutyNameList[i];
- if( Utils.arrayIndexOf( existDutyList, dutyName ) == -1 && Utils.arrayIndexOf( Config.ignoreDuty, dutyName ) == -1 ){ //需要添加职务
- if( dutyObject[ dutyName ] ){
- this.errorText = this.update( dutyObject[dutyName] );
- }else{
- this.errorText = this.add( dutyName )
- }
- }
- }
- for( var i=0; i<existDutyList.length; i++ ){
- var existDutyName = existDutyList[i];
- if( Utils.arrayIndexOf( dutyNameList, existDutyName ) == -1 && Utils.arrayIndexOf( Config.ignoreDuty, existDutyName ) == -1){ //需要删除
- this.errorText = this.remove( dutyObject[ existDutyName ] )
- }
- }
- }
- }catch(e){
- this.errorText = Utils.processError( e, "处理用户职位new() 出错: " );
- }
- };
- DutyAction.prototype.add = function( dutyName ){
- try {
- var data = {
- name : dutyName,
- unit : this.unit,
- identityList : [this.identity]
- }
- var resp = applications.postQuery('x_organization_assemble_control', 'unitduty', JSON.stringify( data ));
- var json = Utils.parseResp( resp );
- return json.type === "success" ? "" : Utils.getFailText( json );
- }catch(e){
- return Utils.processError( e, "新增用户职位add() 出错: " );
- }
- };
- DutyAction.prototype.update = function( dutyData ){
- try {
- if( dutyData.identityList ){
- dutyData.identityList.push( this.identity )
- }else{
- dutyData.identityList = [this.identity];
- }
- var resp = applications.putQuery('x_organization_assemble_control', 'unitduty/'+dutyData.id, JSON.stringify( dutyData ));
- var json = Utils.parseResp( resp );
- return json.type === "success" ? "" : Utils.getFailText( json );
- }catch(e){
- return Utils.processError( e, "修改用户职位add() 出错: " );
- }
- };
- DutyAction.prototype.remove = function( dutyData ){
- try {
- if( !dutyData.identityList || !dutyData.identityList.length )return;
- dutyData.identityList = Utils.arrayErase( dutyData.identityList, this.identityId );
- var resp = applications.putQuery('x_organization_assemble_control', 'unitduty/'+dutyData.id, JSON.stringify( dutyData ));
- var json = Utils.parseResp( resp );
- return json.type === "success" ? "" : Utils.getFailText( json );
- }catch(e){
- return Utils.processError( e, "修改用户职位remove() 出错: " );
- }
- };
- DutyAction.prototype.identityEquals = function( source, target ) {
- var sourceList = Utils.typeOf( source ) === "array" ? source : [source];
- for( var i=0; i<sourceList.length; i++ ){
- var s = sourceList[i];
- if( Utils.arrayIndexOf([s.unique, s.distinguishedName, s.id], target) > -1 ) {
- this.identityId = s.id;
- return true;
- }
- }
- return false;
- };
- //identityEquals: function( source, target ) {
- // var flag = false;
- // var sourceList = Utils.typeOf( source ) === "array" ? source : [source];
- // var targetList = Utils.typeOf( target ) === "array" ? target : [target];
- // for( var i=0; i<sourceList.length; i++ ){
- // var s = sourceList[i];
- // var s_type = Utils.typeOf( s );
- // for( var j=0; j<targetList.length;j++ ){
- // var t = targetList[j];
- // var t_type = Utils.typeOf( t );
- // if( s_type === "string" && t_type === "string" ){
- // if( s == t )return true;
- // }else if( s_type === "string" && t_type === "object" ){
- // if( Utils.arrayIndexOf([ t.unique, t.distinguishedName, t.id], s) > -1 )return true;
- // }else if( s_type === "object" && t_type === "string" ){
- // if( Utils.arrayIndexOf([s.unique, s.distinguishedName, s.id], t) > -1 )return true;
- // }else if( s_type === "object" && t_type === "object" ){
- // if (t.id && t.id == s.id)return true;
- // if (t.unique && t.unique == s.unique)return true;
- // if (t.distinguishedName && t.distinguishedName == s.distinguishedName)return true;
- // }
- // }
- // }
- // return false;
- //}
- var IdentityAction = function( json ){
- this.errorText = "";
- var unit_new = []; //传入的用户所在部门
- var unit_new_obj = this.unit_new_obj = {};
- for( var i=0; i<json.unitList.length; i++ ){
- var unit = json.unitList[i];
- if( !unit_new_obj[ unit.flag ] ){
- var obj = unit_new_obj[ unit.flag ] = Utils.objectClone(unit);
- obj.dutyList = unit.duty ? [ unit.duty ] : [];
- }else{
- if( unit.duty )unit_new_obj[ unit.flag].dutyList.push( unit.duty )
- }
- }
- for( var flag in unit_new_obj ){
- unit_new.push( unit_new_obj[flag] );
- }
- var flag = Utils.getUserFlag( json );
- if( !flag ){
- this.errorText = "处理用户身份IdentityAction.new() 出错: 未能找到用户标志";
- return;
- }
- try{
- var resp = applications.getQuery('x_organization_assemble_control', 'identity/list/person/'+flag );
- var json_identityList = Utils.parseResp( resp );
- var identityList;
- if( json_identityList.type == "success" ){
- identityList = json_identityList.data || [];
- }else{
- identityList = [];
- //return Utils.getFailText( json_identityList );
- }
- var req = {"personList":[flag]};
- var unitResq = applications.postQuery('x_organization_assemble_express', 'unit/list/person/object', JSON.stringify( req ) );
- var json_unit_old = Utils.parseResp( unitResq );
- var unit_old;
- if( json_unit_old.type == "success" ){
- unit_old = json_unit_old.data || [];
- }else{
- this.errorText = Utils.getFailText( json_unit_old );
- return;
- }
- for( var i=0; i<unit_old.length; i++ ){
- var obj_new = this.getEqualUnitFromArray( unit_new, unit_old[i] );
- if( obj_new == null ){ //老的不在了,要删除
- print("删除身份");
- var identity = this.getIdentityByUnit( identityList, unit_old[i] );
- this.errorText = this.remove( identity )
- }else{ //已经存在,要修改
- print("修改身份");
- var identity = this.getIdentityByUnit( identityList, unit_old[i] );
- this.errorText = this.update( identity, obj_new, unit_old[i] );
- }
- }
- for( var i=0; i<unit_new.length; i++ ){
- if( !unit_new[i].flag || unit_new[i].flag == "" )continue;
- var obj_old = this.getEqualUnitFromArray( unit_old, unit_new[i] );
- if( obj_old == null ){ //需要新增
- print("新增身份");
- this.errorText = this.add( flag, unit_new[i], json.name, json.ignoreFlag );
- }
- }
- if( !this.errorText ){
- for( var flag in unit_new_obj ){
- var unit = unit_new_obj[flag];
- if(unit.identity){
- var dutyAction = new DutyAction( unit.identity, unit.flag, unit.dutyList );
- this.errorText = dutyAction.errorText;
- }
- }
- }
- }catch(e){
- this.errorText = Utils.processError( e, "处理用户身份IdentityAction.new() 出错: " );
- }
- };
- IdentityAction.prototype.add = function( flag, unit, personName, ignoreFlag ){
- //flag: "", //组织唯一编码unique/组织的distinguishedName/组织id
- // orderNumber: "", //在组织里的排序号,升序排列,为空在最后
- // description: "", //描述
- // duty : "", //用户在该组织的职务
- // position : "" //用户在该组织的岗位
- var data = {
- name : personName,
- person : flag,
- unit : unit.flag,
- description : unit.description
- };
- try {
- var resp = applications.postQuery('x_organization_assemble_control', 'identity', JSON.stringify( data ));
- var json = Utils.parseResp( resp );
- if( json.type === "success" ){
- this.unit_new_obj[ unit.flag].identity = json.data.id;
- return "";
- }else{
- if( ignoreFlag != "no" ){
- archiveFlag = true;
- }else{
- return Utils.getFailText( json );
- }
- //if( json.prompt == "com.x.organization.assemble.control.jaxrs.identity.ExceptionUnitNotExist" ){ //组织不存在,创建组织
- //var u_data = { name : unit.flag, unique : unit.flag };
- //var json = Utils.parseResp( applications.postQuery('x_organization_assemble_control', 'unit', JSON.stringify( u_data )));
- //if( json.type == "success" ){
- // return IdentityAction.add( flag, unit );
- //}
- //}else{
- // return Utils.getFailText( json );
- //}
- }
- return "";
- }catch(e){
- return Utils.processError( e, "新增用户身份IdentityAction.add() 出错: " );
- }
- };
- IdentityAction.prototype.remove = function( data ){
- try {
- var resp = applications.deleteQuery('x_organization_assemble_control', 'identity/'+data.id );
- var json = Utils.parseResp( resp );
- if( json.type && json.type == "success" ){
- return "";
- }else{
- return Utils.getFailText( json );
- }
- }catch(e){
- return Utils.processError( e, "删除用户身份IdentityAction.remove() 出错: " );
- }
- };
- IdentityAction.prototype.update = function( identity, unit_new, unit_old ){
- //flag: "", //组织唯一编码unique/组织的distinguishedName/组织id
- // orderNumber: "", //在组织里的排序号,升序排列,为空在最后
- // description: "", //描述
- // duty : "", //用户在该组织的职务
- // position : "" //用户在该组织的岗位
- if( !identity )return;
- this.unit_new_obj[ unit_new.flag].identity = identity.id || identity.unique || identity.distinguishedName;
- if( identity.orderNumber != unit_new.orderNumber || identity.description != unit_new.description ){
- identity.orderNumber = unit_new.orderNumber;
- identity.description = unit_new.description;
- try {
- var resp = applications.putQuery('x_organization_assemble_control', 'identity/'+identity.id, JSON.stringify(identity) );
- var json = Utils.parseResp( resp );
- if( json.type && json.type == "success" ){
- return "";
- }else{
- return Utils.getFailText( json );
- }
- }catch(e){
- return Utils.processError( e, "修改用户身份IdentityAction.update() 出错: " );
- }
- }else{
- return "";
- }
- };
- IdentityAction.prototype.getIdentityByUnit= function(identityList, unit){
- for( var i = 0; i<identityList.length; i++ ){
- var identity = identityList[i];
- if( identity.unitLevelName === unit.levelName ){
- return identity;
- }
- }
- };
- IdentityAction.prototype.getEqualUnitFromArray = function( sourceUnitArray, targetUnit ){
- for( var i=0; i<sourceUnitArray.length; i++ ){
- if( this.unitEquals( sourceUnitArray[i], targetUnit ) ){
- return sourceUnitArray[i];
- }
- }
- return null;
- };
- IdentityAction.prototype.unitEquals= function( source, target ) {
- if( !source || !target )return false;
- if (target.flag && (Utils.arrayIndexOf([source.flag, source.unique, source.distinguishedName, source.levelName, source.id], target.flag) > -1))return true;
- if (source.flag && (Utils.arrayIndexOf([target.flag, target.unique, target.distinguishedName, target.levelName, target.id], source.flag) > -1))return true;
- if (target.id && target.id == source.id)return true;
- if (target.unique && target.unique == source.unique)return true;
- if (target.distinguishedName && target.distinguishedName == source.distinguishedName)return true;
- if (target.levelName && target.levelName == source.levelName)return true;
- return false;
- };
- function get( json ){
- var errorText = "";
- var flag = Utils.getUserFlag(json);
- var resp;
- var person_old;
- if( flag ){
- try{
- resp = applications.getQuery('x_organization_assemble_control', "person/"+flag ); //先获取人员信息
- var json_old = Utils.parseResp( resp );
- if( json_old.type && json_old.type == "success" ){
- person_old = json_old.data;
- }else{
- return Utils.getFailText( json_old );
- }
- }catch(e){
- return Utils.processError( e, "get() 出错: " );
- }
- delete person_old.woIdentityList;
- delete person_old.woRoleList;
- delete person_old.woGroupList;
- delete person_old.woPersonAttributeList;
- //delete person_old.control;
- //delete person_old.controllerList;
- return person_old;
- //applications.putQuery('x_organization_assemble_control', "person/"+json.unique, json );
- }else{
- errorText = "参数中没有个人标志:distinguishedName , unique, employee, mobile 或 id, 不能获取用户";
- print(errorText);
- return errorText;
- }
- }
- function add( requestJson ){
- print("添加个人");
- var json = Utils.objectClone(requestJson);
- var errorText;
- var response;
- var resp;
- try{
- if( json.orderNumber ){
- try{ json.orderNumber = parseInt( json.orderNumber).toString() }catch(e){}
- }
- if( json.superior && json.superior != "" && json.ignoreFlag != "no" ){ //判断汇报对象在不在
- var superiorData = get({ flag : json.superior });
- if( typeof( superiorData ) != "object" ){ //不在则新建
- archiveFlag = true;
- delete json.superior;
- }
- }
- var personData = get(json);
- if( typeof personData == "object" ){
- if( json.forceFlag && json.forceFlag == "yes" ){
- for( var key in json){
- if( key !== "action" && key !== "attributeList" && key !== "unitList" ){
- if( key == "orderNumber" && (!json[key] || json[key]=="") ){
- }else if( key == "id" || key == "unique" || key == "distinguishedName" || key == "changePasswordTime"){
- }else{
- personData[key] = json[key];
- }
- }
- }
- if( !personData.controllerList || personData.controllerList == null )personData.controllerList = [];
- resp = applications.putQuery('x_organization_assemble_control', "person/"+personData.id, JSON.stringify(personData) )
- }else{
- errorText = "人员“"+ Utils.getUserFlag(json) +"”已经在系统内存在";
- }
- }else{
- if( json.controllerList === null )json.controllerList = [];
- var data = Utils.objectClone(json);
- if(data.attributeList)delete data.attributeList;
- if(data.unitList)delete data.unitList;
- data.controllerList = [];
- resp = applications.postQuery( "x_organization_assemble_control", 'person', JSON.stringify(data));
- }
- if( resp && !errorText ){
- response = Utils.parseResp( resp );
- if( response.type && response.type == "success" ){
- if( !json.attributeList )json.attributeList = [];
- var attributeAction = new AttributeAction( json );
- errorText = attributeAction.errorText;
- if( !json.unitList )json.unitList = [];
- var identityAction = new IdentityAction( json );
- errorText = identityAction.errorText;
- }else{
- errorText = Utils.getFailText( response );
- }
- }
- if( archiveFlag && !errorText ){
- Utils.saveToLocal( requestJson ); //保存到本地
- }
- }catch(e){
- errorText = Utils.processError( e, "添加个人 add() 出错:" );
- }finally{
- var result = {
- "result" : errorText ? "error" : "success",
- "description" : errorText || ""
- };
- if( response && response.data ){
- result.id = response.data.id;
- }
- return result;
- }
- }
- function update(requestJson){
- print("修改个人");
- var json = Utils.objectClone(requestJson);
- var errorText;
- var response;
- try{
- if( json.orderNumber ){
- try{ json.orderNumber = parseInt( json.orderNumber ).toString() }catch(e){}
- }
- if( json.superior && json.superior != "" && json.ignoreFlag != "no" ){ //判断汇报对象在不在
- var superiorData = get({ flag : json.superior });
- if( typeof( superiorData ) != "object" ){ //不在则新建
- archiveFlag = true;
- delete json.superior;
- }
- }
- var personData = get(json);
- if( typeof personData == "object" ){
- for( var key in json){
- if( key !== "action" && key !== "attributeList" && key !== "unitList" ){
- if( key == "orderNumber" && (!json[key] || json[key]=="") ){
- }else if( key == "id" || key == "unique" || key == "distinguishedName" || key == "changePasswordTime"){
- }else{
- personData[key] = json[key];
- }
- }
- }
- if( !personData.controllerList || personData.controllerList == null )personData.controllerList = [];
- var resp = applications.putQuery('x_organization_assemble_control', "person/"+personData.id, JSON.stringify(personData) );
- var response = Utils.parseResp( resp );
- if( response.type && response.type == "success" ){
- if( !json.attributeList )json.attributeList = [];
- var attributeAction = new AttributeAction( json );
- errorText = attributeAction.errorText;
- if( !json.unitList )json.unitList = [];
- var identityAction = new IdentityAction( json );
- errorText = identityAction.errorText;
- }else{
- errorText = Utils.getFailText( response );
- }
- }else{
- errorText = personData;
- }
- if( archiveFlag && !errorText){
- Utils.saveToLocal( requestJson ); //保存到本地
- }
- }catch(e){
- errorText = Utils.processError( e, "修改个人 update() 出错:" );
- }finally{
- var result = {
- "result" : errorText ? "error" : "success",
- "description" : errorText || ""
- };
- if( response && response.data ){
- result.id = response.data.id;
- }
- return result;
- }
- }
- function updatePassword(json){
- print("修改用户密码");
- var errorText = "";
- var response;
- var flag = Utils.getUserFlag(json);
- if( flag ){
- try{
- var data = { "value": json.password };
- var resp = applications.putQuery('x_organization_assemble_control', "person/"+flag+"/set/password", JSON.stringify(data) ); //修改密码
- response = Utils.parseResp( resp );
- if( response.type && response.type == "success" ){
- }else{
- errorText = Utils.getFailText( response );
- }
- }catch(e){
- errorText = Utils.processError( e, "修改用户密码出错 " + flag + " updatePassword() 出错:" );
- }
- }else{
- errorText = "参数中没有个人标志:distinguishedName , unique, employee, mobile 或 id, 不能获取用户";
- print(errorText);
- }
- var result = {
- "result" : errorText ? "error" : "success",
- "description" : errorText || ""
- };
- //if( response && response.data ){
- // result.id = response.data.id;
- //}
- return result;
- }
- function updateSuperior(json){
- print("修改个人汇报对象");
- var errorText;
- var response;
- try{
- var personData = get(json);
- if( typeof personData == "object" ){
- personData.superior = json.superior;
- if( !personData.controllerList )personData.controllerList = [];
- var resp = applications.putQuery('x_organization_assemble_control', "person/"+personData.id, JSON.stringify(personData) );
- response = Utils.parseResp( resp );
- if( response.type && response.type == "success" ){
- }else{
- errorText = Utils.getFailText( response );
- }
- }else{
- errorText = personData;
- }
- }catch(e){
- errorText = Utils.processError( e, "修改个人 updateSuperior() 出错:" );
- }finally{
- var result = {
- "result" : errorText ? "error" : "success",
- "description" : errorText || ""
- };
- if( response && response.data ){
- result.id = response.data.id;
- }
- return result;
- }
- }
- function remove(json){
- print("删除个人");
- var errorText;
- var response;
- try{
- var person = get(json);
- if( typeof person == "object" ){
- var resp = applications.deleteQuery('x_organization_assemble_control', "person/"+person.id ); //s人员信息
- response = Utils.parseResp( resp );
- if( response.type && response.type == "success" ){
- }else{
- errorText = Utils.getFailText( response );
- }
- }else{
- errorText = person;
- }
- }catch(e){
- errorText = Utils.processError( e, "删除个人 remove() 出错:" );
- }finally{
- var result = {
- "result" : errorText ? "error" : "success",
- "description" : errorText || ""
- };
- if( response && response.data ){
- result.id = response.data.id;
- }
- return result;
- }
- }
- function init(){
- var result ="";
- var responseText = "";
- try{
- //print( "requestText="+requestText );
- var requestJson = JSON.parse(requestText);
- //print( "type of requestJson = " + typeof( requestJson ));
- if( typeof(requestJson) === "string" ){
- requestJson = JSON.parse(requestJson);
- }
- var action = requestJson.action;
- print("action="+action);
- switch( action ){
- case "add":
- result = add( requestJson );
- break;
- case "update":
- result = update( requestJson );
- break;
- case "updatepwd":
- result = updatePassword( requestJson );
- break;
- case "updateSuperior":
- result = updateSuperior( requestJson );
- break;
- case "delete" :
- result = remove( requestJson );
- break;
- default :
- result = {
- "result" : "error",
- "description" : "requestText未设置action,不执行操作"
- };
- break;
- }
- }catch(e){
- e.printStackTrace();
- result = {
- "result" : "error",
- "description" : e.name + ": " + e.message
- };
- }finally{
- print("responseText="+JSON.stringify(result));
- return result;
- }
- }
- init();
|