print( "积分分发:------------------------------------------" ); var Config = { personPointCategoryAlias : "积分-个人积分", unitPointCategoryAlias : "积分-部门积分", pointLogCategoryAlias : "积分-积分记录", query : "pointManagerQuery", unitPointView : "unitPointView", companyLevel : 1, departmentLevel_1 : 2 }; var _self = this; var applications = this.Action.applications; var Utils = { getUserFlag : function( json ){ return json.flag || json.distinguishedName || json.unique || json.employee || json.mobile || json.id; }, getKeyEqualObjFromArray : function( sourceArray, sourceKey, value ){ for( var i=0; i 0 ){ this.profileId = json.data.grid[0].bundle; }else{ this.profileId = null; this.profile = null; } } if( this.profileId ){ var o1 = applications.getQuery('x_cms_assemble_control', "data/document/"+this.profileId ); //只获取数据 var json1 = Utils.parseResp( o1 ); this.profile = json1.data; } return this.profile; }; UPD.prototype.saveProfile = function( data ){ // data = { // pointType // getedPoint // projectText // } this.getProfile(); if( !this.profile ){ this.createProfile( data ); }else{ this.updateProfile( data ); } }; UPD.prototype.createProfile = function( data ){ var categoryData = this.getCategory(); var doc = { //"id" : this.documentAction.getUUID(), "isNewDocument" : true, "title": this.unitDn.split("@")[0]+"部门积分", "creatorIdentity": this.identityDn, "appId" : categoryData.appId, "attachmentList" : [], "form" : categoryData.formId, "formName" :categoryData.formName, //"docStatus" : "draft", "categoryName" : categoryData.name || categoryData.categoryName, "categoryId" : categoryData.id, "categoryAlias" : Config.unitPointCategoryAlias, "docData" : { "unit" : this.unit, "unitDn" : this.unitDn, "annualPoint" : data.getedPoint, "permanentPoint" : data.getedPoint, "currentYear" : this.currentYear, "currentMonth" : this.currentMonth, "companyDn" : Org.getSuperUnitByLevel( this.unitDn, Config.companyLevel ) } }; this.updatePointTypeData( doc.docData, data, true, true ); var o = applications.putQuery('x_cms_assemble_control', "document/publish/content", JSON.stringify(doc) ); var json = Utils.parseResp( o ); this.profileId = json.data.id; }; UPD.prototype.updateProfile = function( data, operation ){ //只保存数据 var doc = this.profile; var isCurrentMonth = doc.currentMonth === this.currentMonth; if( !isCurrentMonth ){ doc.annualPoint_preMonth = doc.annualPoint || 0; doc.permanentPoint_preMonth = doc.permanentPoint || 0; doc.currentMonth = this.currentMonth; doc.preMonth = this.preMonth; } doc.permanentPoint = ( doc.permanentPoint ? parseInt( doc.permanentPoint ) : 0 ) + parseInt( data.getedPoint ); if( parseInt(doc.currentYear) !== this.currentYear ){ doc.annualPoint = data.getedPoint; this.updatePointTypeData( doc, data, false, isCurrentMonth ); doc.currentYear = this.currentYear; }else{ doc.annualPoint = ( doc.annualPoint ? parseInt( doc.annualPoint ) : 0 ) + parseInt( data.getedPoint ); this.updatePointTypeData( doc, data, true, isCurrentMonth ); } var o = applications.putQuery('x_cms_assemble_control', "data/document/"+this.profileId, JSON.stringify(doc) ); var json = Utils.parseResp( o ); }; UPD.prototype.updatePointTypeData = function( docData, data, isCurrentYear, isCurrentMonth ){ var typeJson = docData[ "typeJson" ] = docData[ "typeJson" ] || {}; var typeData = typeJson[ data.pointType ] = typeJson[ data.pointType ] || {}; this.updatePoint( typeData, data.getedPoint, isCurrentYear, isCurrentMonth ); this.updateProjectData( typeData, data, isCurrentYear, isCurrentMonth ) }; UPD.prototype.updateProjectData = function( typeData, data, isCurrentYear, isCurrentMonth ){ var projectJson = typeData[ "projectJson" ] = typeData[ "projectJson" ] || {}; var projectData = projectJson[ data.projectText ] = projectJson[ data.projectText ] || {}; this.updatePoint( projectData, data.getedPoint, isCurrentYear, isCurrentMonth ); }; UPD.prototype.updatePoint = function( d, getedPoint, isCurrentYear, isCurrentMonth ){ var point = parseInt(data.getedPoint); if( !isCurrentMonth ){ //if( !isCurrentYear ){ // d.annualPoint_preMonth = d.annualPoint || 0; //}else{ // d.annualPoint_preMonth = 0; //} d.annualPoint_preMonth = d.annualPoint || 0; d.permanentPoint_preMonth = d.permanentPoint || 0; } if( !isCurrentYear ){ d.annualPoint = point; }else{ d.annualPoint = ( d.annualPoint ? parseInt( d.annualPoint ) : 0 ) + point; } d.permanentPoint = ( d.permanentPoint ? parseInt( d.permanentPoint ) : 0 ) + point; }; //部门积分分发 end:------------------------------------------" print( "部门积分分发 end:------------------------------------------" ); print( "积分记录 start:------------------------------------------" ); //"积分记录 start:------------------------------------------" var PointLog = { getCategory : function(){ if( !_self.unitPointCategory ){ var o = applications.putQuery('x_cms_assemble_control', "categoryinfo/alias/" + Config.pointLogCategoryAlias ); var json = Utils.parseResp( o ); _self.unitPointCategory = json.data; } return _self.unitPointCategory; }, saveDoc : function( data, identity, unit, company ){ var identityDn = Utils.typeOf( identity ) === "string" ? identity : identity.distinguishedName; var personDn, unitDn, companyDn; if( Utils.typeOf( identity ) === "object" )personDn = identity.person; if( !personDn ){ var personList = _self.org.listPersonWithIdentity( identity ); if( personList && personList.length > 0 )personDn = personList[0].distinguishedName; } if( unit ){ unitDn = Utils.typeOf( unit ) === "string" ? unit : unit.distinguishedName; }else{ unit = _self.org.getUnitByIdentity( identityDn, Config.departmentLevel_1 ); if(unit && unit.length > 0)unitDn = unit[0].distinguishedName } if( company ) { companyDn = Utils.typeOf(company) === "string" ? company : company.distinguishedName; }else{ company = _self.org.getUnitByIdentity( identityDn, Config.companyLevel ); if(company && company.length > 0)companyDn = company[0].distinguishedName; } var Date = Java.type( "java.util.Date" ); var nowStr = new java.text.SimpleDateFormat("yyyy-MM-dd").format(new Date()); var categoryData = PointLog.getCategory(); var doc = { //"id" : this.documentAction.getUUID(), "isNewDocument" : true, "title": "积分记录", "creatorIdentity": identityDn, "appId" : categoryData.appId, "attachmentList" : [], "form" : categoryData.formId, "formName" :categoryData.formName, //"docStatus" : "draft", "categoryName" : categoryData.name || categoryData.categoryName, "categoryId" : categoryData.id, "categoryAlias" : Config.unitPointCategoryAlias, "docData" : { "personDn" : personDn, "unitDn" : unitDn, "companyDn" : companyDn, "projectText" : data.projectText, "projectName" : data.projectName, "getedPoint" : "getedPoint", "date" : nowStr } }; var o = applications.putQuery('x_cms_assemble_control', "document/publish/content", JSON.stringify(doc) ); var json = Utils.parseResp( o ); this.profileId = json.data.id; } }; //"积分记录 end:------------------------------------------" print( "积分记录 end:------------------------------------------" ) this.define("dispachPersonFlow", function(){ var identityDn = this.workContext.getWork().creatorIdentity; var ppd = new PersonPointDispatch( identityDn ); ppd.saveProfile( { pointType : this.data.pointType, projectText : this.data.projectText, getedPoint : this.data.getedPoint }); var upd = new UnitPointDispatch( identityDn ); upd.saveProfile({ pointType : this.data.pointType, projectText : this.data.projectText, getedPoint : this.data.getedPoint }); PointLog.saveDoc({ pointType : this.data.pointType, projectText : this.data.projectText, getedPoint : this.data.getedPoint }, identityDn ) }.bind(this));