/// <summary> /// 获取审核对象根据委托 /// </summary> /// <param name="userInfo"></param> /// <param name="activityAssignmentId"></param> public static ACTIVITY_ASSIGNMENT GetInnvatorByAgent(Innovator inn, UserInfo userInfo, string activityId, string activityAssignmentId, ref string delegateName) { ACTIVITY_ASSIGNMENT obj = null; AgentAuthEntity agentAuth = null; IDENTITY dentity = IdentityDA.GetIdentityByActivityAssignmentId(activityAssignmentId); if (userInfo.AgentAuth != null) { agentAuth = userInfo.AgentAuth.Where(x => x.agentRoles.Contains(dentity.ID)).FirstOrDefault(); if (agentAuth != null) { delegateName = agentAuth.delegateName; } } //当人员信息权限中没有当前Identity权限 并且 Identity在委托的的权限中存在时!则为委托审核 if (!userInfo.Roles.Contains(dentity.ID) && agentAuth != null) { //获取当前人员的Id Item identity = IdentityDA.GetIdentityByKeyedName(inn, userInfo.UserName); string identityId = identity.getProperty("id"); var ActivityAssignmentItem = ActivityAssignmentDA.GetActivityAssignmentById(inn, activityAssignmentId); int voting_weight = int.Parse(ActivityAssignmentItem.getItemByIndex(0).getProperty("voting_weight")); //修改当前审核权限为0 ActivityAssignmentDA.UpdateActivityAssignmentVotingWeight(inn, activityAssignmentId, 0); //插入委托人员权限 ActivityAssignmentDA.AddActivityAssignment(inn, activityId, identityId, voting_weight); //获取插入权限的ID obj = ActivityAssignmentDA.GetActivity_AssignmentByCondition(activityId, identityId); } return(obj); }
///// <summary> ///// 完成任务 ///// </summary> //public static string CompleteActivity(Innovator inn, string strAML) //{ // Item resItem = inn.applyAML(strAML); // if (resItem.isError()) return resItem.getErrorString(); // return ""; //} /// <summary> /// 完成任务 /// </summary> /// <param name="activityId">任务ID</param> /// <param name="activityAssignmentId">权限ID</param> /// <param name="path">选择路线</param> /// <param name="delegateTo">委托到</param> /// <returns></returns> public static string CompleteActivity(Innovator inn, string activityId, string activityAssignmentId, string pathId, string pathName, string delegateTo, string comments, UserInfo userInfo = null) { if (userInfo != null && string.IsNullOrEmpty(delegateTo)) { string delegateName = ""; ACTIVITY_ASSIGNMENT activity_assignment = WorkFlowDA.GetInnvatorByAgent(inn, userInfo, activityId, activityAssignmentId, ref delegateName); if (activity_assignment != null) { activityAssignmentId = activity_assignment.ID; comments = "使用 " + delegateName + " 代理权限审核完成。备注:" + comments; } } //获取委托的ID string delegateToId = ""; if (!string.IsNullOrEmpty(delegateTo)) { delegateToId = UserDA.GetUserByKeyedName(delegateTo).ID; } string MD5Auth = ""; string AuthMode = ""; var strAML = "<AML><Item type='Activity' action='EvaluateActivity'>"; strAML += "<Activity>" + activityId + "</Activity>"; strAML += "<ActivityAssignment>" + activityAssignmentId + "</ActivityAssignment>"; strAML += "<Paths>"; strAML += "<Path id='" + pathId + "'>" + pathName + "</Path>"; strAML += "</Paths>"; strAML += "<DelegateTo>" + delegateToId + "</DelegateTo>"; strAML += "<Tasks>"; strAML += "</Tasks>"; strAML += "<Variables></Variables>"; strAML += "<Authentication mode='" + AuthMode + "'>" + MD5Auth + "</Authentication>"; strAML += "<Comments>" + comments + "</Comments>"; strAML += "<Complete>1</Complete>"; strAML += "</Item></AML>"; Item resItem = inn.applyAML(strAML); if (resItem.isError()) { return(resItem.getErrorString()); } return(""); }