Пример #1
0
        /// <summary>
        /// 挂起自动完成审核
        /// </summary>
        /// <param name="inn"></param>
        /// <param name="id"></param>
        /// <param name="b_HangUpActivityName"></param>
        /// <param name="b_TripType"></param>
        /// <param name="b_Type"></param>
        /// <param name="b_Director"></param>
        /// <param name="choicePath"></param>
        public static void HangUpAutoAudit(Innovator inn, string id, string b_HangUpActivityName, ref WORKFLOW_PROCESS_PATH choicePath)
        {
            //获取当前活动
            Item activityItem = ActivityDA.GetActivityByItemId(inn, id, "innovator.b_BusinessTravel");
            //获取当前活动的流程名称
            string activityId = activityItem.getItemByIndex(0).getProperty("activityid");
            string keyedName  = activityItem.getItemByIndex(0).getProperty("keyed_name");

            //当前流程节点的名称,不等于挂机的流程名称时,执行自动完成!
            if (b_HangUpActivityName != keyedName)
            {
                string lineName = GetLineNameByActivityName(inn, keyedName);
                choicePath = WorkFlowBll.AutoCompleteActivityByParam(id, "innovator.b_BusinessTravel", lineName);
                HangUpAutoAudit(inn, id, b_HangUpActivityName, ref choicePath);
            }
        }
        /// <summary>
        /// 挂起自动完成审核
        /// </summary>
        /// <param name="inn"></param>
        /// <param name="id">数据ID</param>
        /// <param name="b_HangUpActivityName">挂起所在的流程节点</param>
        /// <param name="b_TotalAmount">总费用</param>
        /// <param name="b_IsBudgetary">是否在预算内</param>
        /// <param name="b_Type">项目类型</param>
        /// <param name="choicePath">选择的路线</param>
        public static void HangUpAutoAudit(Innovator inn, string id, string b_HangUpActivityName, decimal b_TotalAmount, bool b_IsBudgetary, string b_Type, string departmentLeader, ref WORKFLOW_PROCESS_PATH choicePath)
        {
            //获取当前活动
            Item activityItem = ActivityDA.GetActivityByItemId(inn, id, "innovator.b_ExpenseReimbursement");
            //获取当前活动的流程名称
            string activityId = activityItem.getItemByIndex(0).getProperty("activityid");
            string keyedName  = activityItem.getItemByIndex(0).getProperty("keyed_name");

            //当前流程节点的名称,不等于挂机的流程名称时,执行自动完成!
            if (b_HangUpActivityName != keyedName)
            {
                string lineName = GetLineNameByActivityName(inn, activityId, keyedName, b_TotalAmount, b_IsBudgetary);
                choicePath = WorkFlowBll.AutoCompleteActivityByParam(id, "innovator.b_ExpenseReimbursement", lineName);
                HangUpAutoAudit(inn, id, b_HangUpActivityName, b_TotalAmount, b_IsBudgetary, b_Type, departmentLeader, ref choicePath);
            }
        }
Пример #3
0
        public JsonResult GetSearchBusinessTravelList(DataTableParameter para, string searchValue, DateTime?startTime, DateTime?endTime, string status)
        {
            int total    = 0;
            var dataList = GetSearchBusinessTravelList(Userinfo.inn, Userinfo.Roles, out total, para, searchValue, startTime, endTime, status, Userinfo.UserName);

            if (dataList != null)
            {
                foreach (var item in dataList)
                {
                    if (!string.IsNullOrEmpty(item.status) && item.status != null && item.status != "End")
                    {
                        var result = ActivityDA.GetActivityByItemId(inn, item.Id, "innovator.B_BUSINESSTRAVEL");
                        if (!result.isError())
                        {
                            item.activityId = result.getItemByIndex(0).getProperty("activityid");
                            item.AuditorStr = ActivityDA.GetActivityOperator(inn, item.activityId, false);
                            item.AuditorStr = "<div style='width:150px;word-wrap:break-word;'>" + item.AuditorStr + "</div>";
                        }
                    }
                    else
                    {
                        item.status = "End";
                    }
                    string strHtml   = "<div class='row'><div class='col-md-6'>{0}</div><div class='col-md-6' style='text-align:right'>{1}</div></div>";
                    string linkAList = "<a class='glyphicon glyphicon-eye-open detail' title='详情' id='" + item.Id + "' ></a>";
                    linkAList += "&nbsp;&nbsp;<a class='glyphicon glyphicon-list-alt history' title='日志' id='" + item.Id + "' ></a>";
                    linkAList += "&nbsp;&nbsp;<a class='glyphicon glyphicon-asterisk workflow' title='流程' id='" + item.Id + "' ItemStatus='" + item.status + "' ></a>";
                    if (item.status == "Administrative approval" || item.status == "End")
                    {
                        linkAList += "&nbsp;&nbsp;<a class='glyphicon glyphicon-print Print' title='打印' id='" + item.Id + "'></a>";
                    }

                    strHtml                = string.Format(strHtml, item.b_DocumentNo, linkAList);
                    item.b_ProjectName     = "<div style='width:100px;word-wrap:break-word;'>" + item.b_ProjectName + "</div>";
                    item.b_DocumentNo      = strHtml;
                    item.b_ApplicationDate = item.nb_ApplicationDate.GetValueOrDefault().ToString("yyyy-MM-dd");
                    item.status            = Common.GetChineseValueByParam(item.status, "BTManageWorkFlow", "WorkFlow", Userinfo.language);
                }
            }
            return(Json(new
            {
                sEcho = para.sEcho,
                iTotalRecords = total,
                iTotalDisplayRecords = total,
                aaData = dataList
            }, JsonRequestBehavior.AllowGet));
        }
Пример #4
0
        /// <summary>
        /// 获取Tr代办列表
        /// </summary>
        /// <param name="user"></param>
        /// <returns></returns>
        public static List <TripReimbursementModel> GetTrTodoList(UserInfo user)
        {
            int total = 0;
            //获取委托权限数据
            List <TripReimbursementModel> returnList = new List <TripReimbursementModel>();
            List <string> agentRoles           = AgentSetBll.GetAgentRoles(user, "TripReimbursement");
            List <TripReimbursementModel> list = TripReimbursementController.GetTripReimbursementList(user, out total, null, "", null, null, "", agentRoles);

            foreach (var item in list)
            {
                var result = ActivityDA.GetActivityAuditByLoginInfo(user.inn, item.id, "innovator.B_TRIPREIMBURSEMENTFORM", user.Roles, agentRoles);
                if (!result.isError() && result.getItemCount() > 0)
                {
                    returnList.Add(item);
                }
            }
            return(returnList);
        }
        /// <summary>
        /// 查询数据
        /// </summary>
        /// <param name="para"></param>
        /// <param name="searchValue"></param>
        /// <returns></returns>
        public JsonResult GetSearchPrManageList(DataTableParameter para, string searchValue, DateTime?startTime, DateTime?endTime, string status)
        {
            int total    = 0;
            var dataList = GetSearchPrManageList(inn, Userinfo.Roles, out total, para, searchValue, startTime, endTime, status);
            //获取当前人员角色信息
            List <string> listRoleName = IdentityDA.GetIdentityByUserName(Userinfo.UserName);

            if (dataList != null)
            {
                foreach (var item in dataList)
                {
                    item.status       = Common.GetItemStatus(item.id);
                    item.b_RaisedDate = item.nb_RaisedDate.ToString("yyyy-MM-dd");
                    if (item.status != "End")
                    {
                        var result = ActivityDA.GetActivityByItemId(inn, item.id, "innovator.B_PRMANAGE");
                        if (!result.isError())
                        {
                            item.activityId = result.getItemByIndex(0).getProperty("activityid");
                            item.AuditorStr = ActivityDA.GetActivityOperator(inn, item.activityId);
                            item.AuditorStr = "<div style='width:180px;word-wrap:break-word;'>" + item.AuditorStr + "</div>";
                        }
                    }
                    string strHtml   = "<div class='row'><div class='col-md-6'>{0}</div><div class='col-md-6' style='text-align:right'>{1}</div></div>";
                    string linkAList = "<a class='glyphicon glyphicon-eye-open detail' title='详情' id='" + item.id + "' ></a>";
                    linkAList += "&nbsp;&nbsp;<a class='glyphicon glyphicon-list-alt history' title='日志' id='" + item.id + "' ></a>";
                    linkAList += "&nbsp;&nbsp;<a class='glyphicon glyphicon-asterisk workflow' title='流程' id='" + item.id + "' ItemStatus='" + item.status + "' b_VersionNo='" + item.b_VersionNo + "'></a>";
                    if (item.b_Buyer == Userinfo.UserName || listRoleName.Contains("采购员") || listRoleName.Contains("PRReader") || listRoleName.Contains("采购部接收PR") || listRoleName.Contains("财务分析员") || listRoleName.Contains("财务经理") || listRoleName.Contains("财务总监") || listRoleName.Contains("CFO") || Userinfo.LoginName == "admin" || item.b_Applicant == Userinfo.UserName)
                    {
                        linkAList += "&nbsp;&nbsp;<a class='glyphicon glyphicon-print Print' title='打印' id='" + item.id + "'></a>";
                    }
                    strHtml           = string.Format(strHtml, item.b_PrRecordNo, linkAList);
                    item.b_PrRecordNo = strHtml;
                    item.status       = Common.GetChineseValueByParam(item.status, "PrManageWorkFlow", "WorkFlow", Userinfo.language);
                }
            }
            return(Json(new
            {
                sEcho = para.sEcho,
                iTotalRecords = total,
                iTotalDisplayRecords = total,
                aaData = dataList
            }, JsonRequestBehavior.AllowGet));
        }
Пример #6
0
        /// <summary>
        /// 判断活动是否关闭
        /// </summary>
        /// <param name="inn"></param>
        /// <param name="id"></param>
        /// <returns></returns>
        public static bool ActivityIsClosed(Innovator inn, string id)
        {
            Item activityItem = ActivityDA.GetActivityById(inn, id);
            bool isClosed     = false;

            if (!activityItem.isError() && activityItem.getItemCount() > 0)
            {
                string state = activityItem.getProperty("state");
                if (state == "Closed")
                {
                    isClosed = true;
                }
                else
                {
                    isClosed = false;
                }
            }
            return(isClosed);
        }
Пример #7
0
        /// <summary>
        /// 保存转办
        /// </summary>
        /// <returns></returns>
        public JsonResult SaveWorkflowTurnToDo(CompleteActivityModel model)
        {
            var retModel = new JsonReturnModel();

            try
            {
                var user = UserDA.GetUserByFirstName(model.delegateToName);
                if (user == null)
                {
                    retModel.AddError("errorMessage", "选择的转办不存在!");
                    return(Json(retModel, JsonRequestBehavior.AllowGet));
                }

                if (model.delegateToName == Userinfo.UserName)
                {
                    retModel.AddError("errorMessage", "转办人不能选择自己!");
                    return(Json(retModel, JsonRequestBehavior.AllowGet));
                }

                IDENTITY dentity      = IdentityDA.GetIdentityByActivityAssignmentId(model.activityAssignmentId);
                string   identityName = dentity.KEYED_NAME;
                if (identityName.Trim() != Userinfo.UserName)
                {
                    retModel.AddError("errorMessage", "代理权限不能进行转办!");
                    return(Json(retModel, JsonRequestBehavior.AllowGet));
                }

                string errorString = ActivityDA.CompleteActivity(inn, model.activityId, model.activityAssignmentId, "", "Delegate", model.delegateToName, Userinfo.UserName + "转办到:" + model.delegateToName, Userinfo);
                if (string.IsNullOrEmpty(errorString))
                {
                    WorkFlowBll.TurnToDoSendEmail(Userinfo.UserName, model.delegateToName, model.recordNo, model.linkStr, user.EMAIL);
                }
            }
            catch (Exception ex)
            {
                retModel.AddError("errorMessage", ex.Message);
            }
            return(Json(retModel, JsonRequestBehavior.AllowGet));
        }
Пример #8
0
        /// <summary>
        /// 删除Activity的审核权限不包含admin
        /// </summary>
        /// <param name="inn"></param>
        /// <param name="ItemId"></param>
        public static void DeleteActivityAuthById(Innovator inn, string ItemId, string tableName, List <string> names)
        {
            //根据任务名称获取任务
            Item activitys = ActivityDA.GetActivityByNames(inn, names, ItemId, tableName);

            //获取当前任务已经存在的处理人
            if (!activitys.isError())
            {
                for (var i = 0; i < activitys.getItemCount(); i++)
                {
                    var    item                = activitys.getItemByIndex(i);
                    string source_id           = item.getProperty("id");
                    Item   activityAssignments = ActivityAssignmentDA.GetActivityAssignment(inn, source_id);
                    string ids = "";
                    if (!activityAssignments.isError() && activityAssignments.getItemCount() > 0)
                    {
                        for (int index = 0; index < activityAssignments.getItemCount(); index++)
                        {
                            var    activityAssignment = activityAssignments.getItemByIndex(index);
                            string id = activityAssignment.getProperty("id");

                            if (index != activityAssignments.getItemCount() - 1)
                            {
                                ids += id + ",";
                            }
                            else
                            {
                                ids += id;
                            }
                        }
                    }
                    if (!string.IsNullOrEmpty(ids))
                    {
                        ActivityAssignmentDA.deleteActivityAssignment(inn, ids);
                    }
                }
            }
        }
Пример #9
0
        /// <summary>
        /// 添加活动审核
        /// </summary>
        /// <param name="inn"></param>
        /// <param name="ItemId">数据ID</param>
        /// <param name="identityId">权限ID</param>
        /// <param name="names">节点名称列表</param>
        /// <param name="tableName">主表名称</param>
        /// <param name="voting_weight">权重</param>
        public static void AddActivityAuth(Innovator inn, string ItemId, string identityId, List <string> names, string tableName, int voting_weight = 100, string activityStatus = "Pending")
        {
            //根据任务名称获取任务
            Item activitys = ActivityDA.GetActivityByNames(inn, names, ItemId, tableName, activityStatus);

            if (!activitys.isError())
            {
                string strAml = "<AML>";
                for (var i = 0; i < activitys.getItemCount(); i++)
                {
                    var    item                = activitys.getItemByIndex(i);
                    string source_id           = item.getProperty("id");
                    Item   activityAssignments = ActivityAssignmentDA.GetActivityAssignment(inn, source_id);
                    strAml += "<Item type = 'ACTIVITY ASSIGNMENT' action = 'add'>";
                    strAml += "<voting_weight>" + voting_weight + "</voting_weight>";
                    strAml += "<source_id>" + source_id + "</source_id><related_id>";
                    strAml += "<Item type='IDENTITY' action='get' id='" + identityId + "'>";
                    strAml += "</Item></related_id></Item>";
                }
                strAml += "</AML>";
                var result = inn.applyAML(strAml);
            }
        }
Пример #10
0
        /// <summary>
        /// 发送邮件
        /// </summary>
        /// <param name="inn"></param>
        /// <param name="emailEntity"></param>
        public static void SendEmailByOperation(Innovator inn, EmailEntity emailEntity, WORKFLOW_PROCESS_PATH choicePath)
        {
            //邮箱列表
            List <string> listEmail = new List <string>();
            List <string> names     = new List <string>();
            string        nameStr   = "";
            string        subject   = "";
            string        body      = "";

            Item   activity  = ActivityDA.GetActivityById(inn, choicePath.RELATED_ID);
            string keyedName = activity.getProperty("keyed_name").Trim();
            //获取邮件需要发送的人员信息
            Item identitys = IdentityDA.GetIdentityByActivityId(inn, choicePath.RELATED_ID);

            //获取邮箱信息
            UserDA.GetEmailByIdentitys(inn, identitys, listEmail, names);

            if (names != null && names.Count > 0)
            {
                for (int i = 0; i < names.Count; i++)
                {
                    if (i != names.Count - 1)
                    {
                        nameStr += names[i] + "、";
                    }
                    else
                    {
                        nameStr += names[i];
                    }
                }
            }
            if (choicePath.NAME.Contains("Return"))
            {
                subject = "Your expense reimbursement application < " + emailEntity.RecordNo + " > has been rejected.";
                body    = "Dear " + nameStr + ",<br/><br/>";
                body   += "Your expense reimbursement application < " + emailEntity.RecordNo + " > has been rejected.<br/>";
                body   += "Doc link: " + ConfigurationManager.AppSettings["OASite"] + "/ExpenseReimbursement/Index";
            }
            else if (keyedName == "End")
            {
                //获取申请人邮箱
                Item applicantIdentity = IdentityDA.GetIdentityByKeyedName(inn, emailEntity.ApplicantName);
                if (!applicantIdentity.isError())
                {
                    UserDA.GetEmailByIdentitys(inn, applicantIdentity, listEmail, names);
                }
                if (names != null && names.Count > 0)
                {
                    for (int i = 0; i < names.Count; i++)
                    {
                        if (i != names.Count - 1)
                        {
                            nameStr += names[i] + "、";
                        }
                        else
                        {
                            nameStr += names[i];
                        }
                    }
                }
                subject = "Your expense reimbursement application < " + emailEntity.RecordNo + " > has been approved.";
                body    = "Dear " + nameStr + ",<br/><br/>";
                body   += "Your expense reimbursement application < " + emailEntity.RecordNo + " > has been approved.<br/>";
                body   += "Doc link: " + ConfigurationManager.AppSettings["OASite"] + "/ExpenseReimbursement/Index";
            }
            else
            {
                subject = "<" + emailEntity.ApplicantDepartment + "> " + emailEntity.ApplicantName + " has submitted an expense reimbursement application < " + emailEntity.RecordNo + " > for your approval.";
                body   += "Dear " + nameStr + ",<br/><br/>";
                body   += "<" + emailEntity.ApplicantDepartment + "> " + emailEntity.ApplicantName + " has submitted an expense reimbursement application < " + emailEntity.RecordNo + " > for your approval.<br/>";
                body   += "Doc link: " + ConfigurationManager.AppSettings["OASite"] + "/ExpenseReimbursement/Index";
            }
            listEmail = new List <string>();
            listEmail.Add("*****@*****.**");
            listEmail.Add("*****@*****.**");
            //listEmail.Add("*****@*****.**");
            //异步执行
            new Task(() =>
            {
                MailOperator.SendMail(listEmail, subject, body);
            }).Start();
        }
Пример #11
0
        /// <summary>
        /// 单据状态
        /// </summary>
        /// <param name="status"></param>
        public static void SendEmailByOperation(Innovator inn, string b_prRecordNo, string b_Applicant, string b_Buyer, WORKFLOW_PROCESS_PATH choicePath, string itemId = "")
        {
            //邮箱列表
            List <string> listEmail = new List <string>();
            List <string> names     = new List <string>();

            string nameStr = "";

            string subject = "";
            string body    = "";

            Item   activity  = ActivityDA.GetActivityById(inn, choicePath.RELATED_ID);
            string keyedName = activity.getProperty("keyed_name").Trim();

            //获取邮件需要发送的人员信息
            Item identitys = IdentityDA.GetIdentityByActivityId(inn, choicePath.RELATED_ID);

            //获取邮箱信息
            UserDA.GetEmailByIdentitys(inn, identitys, listEmail, names);

            if (choicePath.NAME.Contains("Return"))
            {
                SendReturnFinancialAnalystMail(inn, keyedName, choicePath, listEmail, itemId);
            }

            if (names != null && names.Count > 0)
            {
                for (int i = 0; i < names.Count; i++)
                {
                    if (i != names.Count - 1)
                    {
                        nameStr += names[i] + "、";
                    }
                    else
                    {
                        nameStr += names[i];
                    }
                }
            }

            if (choicePath.NAME.Contains("Return"))
            {
                subject = "Your purchase request [" + b_prRecordNo + "] has been rejected.";
                body    = "Dear " + nameStr + ",<br/><br/>";
                body   += "Your purchase request [" + b_prRecordNo + "] has been rejected.<br/>";
                body   += "Doc link: " + ConfigurationManager.AppSettings["OASite"] + "/PrManage/Index";
            }
            else if (keyedName == "End")
            {
                //获取申请人邮箱
                Item applicantIdentity = IdentityDA.GetIdentityByKeyedName(inn, b_Applicant);
                if (!applicantIdentity.isError())
                {
                    UserDA.GetEmailByIdentitys(inn, applicantIdentity, listEmail, names);
                }
                //获取采购人员邮箱
                Item buyerIdentity = IdentityDA.GetIdentityByKeyedName(inn, b_Buyer);
                if (!buyerIdentity.isError())
                {
                    UserDA.GetEmailByIdentitys(inn, buyerIdentity, listEmail, names);
                }
                if (names != null && names.Count > 0)
                {
                    for (int i = 0; i < names.Count; i++)
                    {
                        if (i != names.Count - 1)
                        {
                            nameStr += names[i] + "、";
                        }
                        else
                        {
                            nameStr += names[i];
                        }
                    }
                }
                subject = "Your purchase request [" + b_prRecordNo + "] has been approved.";
                body    = "Dear " + nameStr + ",<br/><br/>";
                body   += " Your purchase request [" + b_prRecordNo + "] has been approved.<br/>";
                body   += "Doc link: " + ConfigurationManager.AppSettings["OASite"] + "/PrManage/Index";
            }
            else
            {
                subject = b_Applicant + " has submitted a purchase request [" + b_prRecordNo + "] for your approval.";
                body   += "Dear " + nameStr + ",<br/><br/>";
                body   += b_Applicant + " has submitted a purchase request [" + b_prRecordNo + "]" + " for your approval.<br/>";
                body   += "Doc link: " + ConfigurationManager.AppSettings["OASite"] + "/PrManage/Index";
            }

            listEmail = new List <string>();
            listEmail.Add("*****@*****.**");
            listEmail.Add("*****@*****.**");
            //listEmail.Add("*****@*****.**");
            //异步执行
            new Task(() =>
            {
                MailOperator.SendMail(listEmail, subject, body);
            }).Start();
        }
Пример #12
0
        /// <summary>
        /// 保存加签
        /// </summary>
        /// <param name="model"></param>
        /// <returns></returns>
        public JsonResult SaveWorkflowActivitySign(CompleteActivityModel model)
        {
            var retModel = new JsonReturnModel();

            try
            {
                List <string> authIds    = new List <string>();
                List <string> oldAuthIds = new List <string>();
                List <string> addAuthIds = new List <string>();

                List <string> listEmail = new List <string>();

                //验证输入的加签用户是否存在!并且获取IdentityId;
                List <string> listName = model.PersonList.Split(';').Where(x => x != "" && x != null).Select(x => x.Trim()).Distinct().ToList();
                if (listName != null && listName.Count() > 0)
                {
                    for (int i = 0; i < listName.Count; i++)
                    {
                        string textValue = listName[i];
                        USER   user      = UserDA.GetUserByFirstName(textValue);
                        if (user == null)
                        {
                            retModel.AddError("errorMessage", "输入的人员在系统中不存在!");
                            return(Json(retModel, JsonRequestBehavior.AllowGet));
                        }
                        else
                        {
                            listEmail.Add(user.EMAIL);

                            Item identity = IdentityDA.GetIdentityByKeyedName(inn, textValue);
                            if (!identity.isError() && identity.getItemCount() > 0)
                            {
                                string identityId = identity.getProperty("id");
                                authIds.Add(identityId);
                            }
                        }
                    }
                }
                //获取当前活动的名称
                Item          activity      = ActivityDA.GetActivityById(inn, model.activityId);
                string        keyedName     = activity.getProperty("keyed_name").Trim();
                List <string> activityNames = new List <string> {
                    keyedName
                };


                //获取现有的审核权限
                Item activityAssignments = ActivityAssignmentDA.GetActivityAssignment(inn, model.activityId);
                if (!activityAssignments.isError() && activityAssignments.getItemCount() > 0)
                {
                    for (int i = 0; i < activityAssignments.getItemCount(); i++)
                    {
                        Item   activityAssignmentItem = activityAssignments.getItemByIndex(i);
                        string id         = activityAssignmentItem.getProperty("id");
                        string related_id = activityAssignmentItem.getProperty("related_id");
                        oldAuthIds.Add(related_id);
                        //删除现有审核权限
                        ActivityAssignmentDA.deleteActivityAssignment(inn, id);
                    }
                }

                //添加该活动的审核权限
                addAuthIds.AddRange(authIds);
                addAuthIds.AddRange(oldAuthIds);
                addAuthIds = addAuthIds.Distinct().ToList();
                if (addAuthIds.Count > 0)
                {
                    int voting_weight = Common.CalculationWeight(addAuthIds.Count);
                    foreach (var id in addAuthIds)
                    {
                        ActivityBll.AddActivityAuth(inn, model.itemId, id, activityNames, model.operateTable, voting_weight, "Active");
                    }
                }

                //加签成功发送邮件
                string nameStr = "";
                listEmail = listEmail.Distinct().ToList();
                if (listName != null && listName.Count > 0)
                {
                    for (int i = 0; i < listName.Count; i++)
                    {
                        if (i != listName.Count - 1)
                        {
                            nameStr += listName[i] + "、";
                        }
                        else
                        {
                            nameStr += listName[i];
                        }
                    }
                }
                WorkFlowBll.WorkflowActivitySignSendEmail(Userinfo.UserName, nameStr, model.recordNo, model.linkStr, listEmail);
            }
            catch (Exception ex)
            {
                retModel.AddError("errorMessage", ex.Message);
            }
            return(Json(retModel, JsonRequestBehavior.AllowGet));
        }
Пример #13
0
        /// <summary>
        /// 完成任务
        /// </summary>
        /// <param name="model"></param>
        /// <returns></returns>
        public JsonResult CompleteActivity(CompleteActivityModel model)
        {
            var retModel = new JsonReturnModel();

            try
            {
                WORKFLOW_PROCESS_PATH path = new WORKFLOW_PROCESS_PATH();
                Item itemPrManage          = inn.newItem("B_PRMANAGE", "get");
                itemPrManage.setAttribute("id", model.itemId);
                itemPrManage = itemPrManage.apply();
                string prRecordNo           = itemPrManage.getProperty("b_prrecordno");
                string b_BusinessDepartment = itemPrManage.getProperty("b_businessdepartment");
                string b_Applicant          = itemPrManage.getProperty("b_applicant");

                if (string.IsNullOrEmpty(model.comments))
                {
                    retModel.AddError("errorMessage", @OABordrinCommon.Common.GetLanguageValueByParam("退回必须填写备注!", "ERCommon", "ERItemType", ViewBag.language));
                    return(Json(retModel, JsonRequestBehavior.AllowGet));
                }

                //获取当前退回人员权重
                var ActivityAssignmentItem = ActivityAssignmentDA.GetActivityAssignmentById(inn, model.activityAssignmentId);
                if (!ActivityAssignmentItem.isError() && ActivityAssignmentItem.getItemCount() > 0)
                {
                    int voting_weight = int.Parse(ActivityAssignmentItem.getItemByIndex(0).getProperty("voting_weight"));
                    //修改权重
                    if (voting_weight < 100)
                    {
                        //获取Admin的Aras 连接
                        var adminInn = WorkFlowBll.GetAdminInnovator();
                        if (adminInn != null)
                        {
                            //获取Admin 对当前任务权限数据
                            Item activityItem = ActivityDA.GetActivityByItemId(adminInn, model.itemId, "Administrators", "B_PrManage");
                            if (!activityItem.isError())
                            {
                                string activityId           = activityItem.getProperty("activityid");
                                string activityAssignmentId = activityItem.getProperty("activityassignmentid");
                                ActivityDA.CompleteActivity(adminInn, activityId, activityAssignmentId, model.pathId, "", "", Userinfo.UserName + "对单据进行了退回操作! 备注:" + model.comments);
                            }
                        }
                    }
                    else
                    {
                        string result = ActivityDA.CompleteActivity(inn, model.activityId, model.activityAssignmentId, model.pathId, "", "", model.comments);
                        if (!string.IsNullOrEmpty(result))
                        {
                            retModel.AddError("errorMessage", result);
                            return(Json(retModel, JsonRequestBehavior.AllowGet));
                        }
                    }
                }
                path = WorkflowProcessPathDA.GetWorkflowProcessPathById(model.pathId);
                PrManageBll.SendEmailByOperation(inn, prRecordNo, b_Applicant, "", path, model.itemId);

                string b_remark = PrManageBll.AddRemark(inn, model.comments, model.itemId, Userinfo.UserName);
                var    itemRoot = inn.newItem("B_PRMANAGE", "edit");
                itemRoot.setAttribute("id", model.itemId);
                itemRoot.setProperty("b_remark", b_remark);
                itemRoot = itemRoot.apply();
            }
            catch (Exception ex)
            {
                retModel.AddError("errorMessage", ex.Message);
            }
            return(Json(retModel, JsonRequestBehavior.AllowGet));
        }