コード例 #1
0
ファイル: WorkFlowDA.cs プロジェクト: jiangzhouhui/oademo
        /// <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);
        }
コード例 #2
0
        ///// <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("");
        }