Beispiel #1
0
        /// <summary>
        /// 审批申请晋升路径
        /// </summary>
        /// <param name="applyId">申请ID</param>
        /// <param name="isPass">
        /// 是否通过
        /// <para>true:通过</para>
        /// <para>false:不通过</para>
        /// </param>
        /// <param name="reason">审批不通过,理由【审批通过,传了也不记】</param>
        public void ApplyPromotionWayPass(int applyId, bool isPass, string reason = "")
        {
            var apply = _dataAccess.Get <PromotionApply>(applyId);

            apply.ApproveStatus = isPass ? 2 : 1;
            if (isPass)
            {
                apply.Reason   = "";
                apply.PassTime = DateTime.Now;
            }
            else
            {
                apply.Reason = reason;
            }
            _dataAccess.UpdateEntity(apply);

            try
            {
                var t       = _dataAccess.Get <RetechWing.Models.SysPost>(apply.PostId);
                var content = string.Format(@RetechWing.LanguageResources.TalnetUI.IdpPostModel.ApprovalNotice1 + "{0}" + @RetechWing.LanguageResources.TalnetUI.IdpPostModel.ApprovalNotice2 + "{1}" + @RetechWing.LanguageResources.TalnetUI.IdpPostModel.ApprovalNotice3, apply.PromotionName, isPass ? @RetechWing.LanguageResources.TalnetUI.IdpPostModel.ApprovalNotice4 : @RetechWing.LanguageResources.TalnetUI.IdpPostModel.ApprovalNotice5);
                SysSendMessage.SendMessage(@RetechWing.LanguageResources.TalnetUI.IdpPostModel.PromotionApproval, content, new int[] { apply.UserId }, 99, t.TenantId);
            }
            catch
            {
            }
        }
 /// <summary>
 ///     移动端消息推送
 /// </summary>
 /// <param name="content">内容</param>
 protected void SendMobileMessage(string content)
 {
     SysSendMessage.SendMobileMessage(content, CurrentTenant.TenantId);
 }
 /// <summary>
 ///     移动端消息推送
 /// </summary>
 /// <param name="content">内容</param>
 /// <param name="userCustomItems">接收的一些键值对</param>
 protected void SendMobileMessage(string content, Dictionary <int, Dictionary <string, object[]> > userCustomItems)
 {
     SysSendMessage.SendMobileMessage(content, userCustomItems);
 }
 /// <summary>
 ///     系统发送 站内信、邮件、短信
 /// </summary>
 /// <param name="messageList"></param>
 /// <param name="sendFlag">
 ///     发送方式
 ///     <para>0:站内信;</para>
 ///     <para>1:邮件;</para>
 ///     <para>2:短信;</para>
 ///     <para>11:站内信、邮件;</para>
 ///     <para>22:站内信、短信;</para>
 ///     <para>33:邮件、短信;</para>
 ///     <para>99:站内信、邮件、短信;</para>
 /// </param>
 protected void SendMessage(List <SysIinstationMessage> messageList, int sendFlag)
 {
     SysSendMessage.SendMessage(messageList, sendFlag, CurrentTenant.TenantId);
 }
 /// <summary>
 ///     系统发送 站内信、邮件、短信
 /// </summary>
 /// <param name="title">标题</param>
 /// <param name="content">内容</param>
 /// <param name="recUserId">收件人</param>
 /// <param name="sendFlag">
 ///     发送方式
 ///     <para>0:站内信;</para>
 ///     <para>1:邮件;</para>
 ///     <para>2:短信;</para>
 ///     <para>11:站内信、邮件;</para>
 ///     <para>22:站内信、短信;</para>
 ///     <para>33:邮件、短信;</para>
 ///     <para>99:站内信、邮件、短信;</para>
 /// </param>
 protected void SendMessage(string title, string content, int[] recUserId, int sendFlag)
 {
     SysSendMessage.SendMessage(title, content, recUserId, sendFlag, CurrentTenant.TenantId);
 }
Beispiel #6
0
        /// <summary>
        /// 添加审批流程
        /// </summary>
        /// <param name="model"></param>
        /// <param name="currentUserId"></param>
        /// <param name="currentTenantId"></param>
        /// <returns></returns>
        public int AddApproveWay(ApproveWay model, int currentUserId, int currentTenantId)
        {
            List <ApproveStep> approveStepListOut;
            List <ApproveDept> approveDeptListOut;
            bool canUpdateOut;
            var  wayId = GetApproveWay(model.DeptId, model.WayType, out approveStepListOut, out approveDeptListOut,
                                       out canUpdateOut);

            if (wayId.WayId != 0)
            {
                if (canUpdateOut)
                {
                    DeleteApproveWay(wayId.WayId, currentUserId);
                }
                else
                {
                    return(0);
                }
            }

            //设置必要属性,添加实例
            model.CreateUser     = currentUserId;
            model.CreateTime     = DateTime.Now;
            model.LastUpdateUser = currentUserId;
            model.LastUpdateTime = DateTime.Now;
            model.IsDelete       = 0;
            var id = _dataAccess.AddEntity(model);

            //添加步骤
            model.ApproveStepList.ForEach(p => p.WayId = id);
            foreach (var approveStep in model.ApproveStepList)
            {
                _dataAccess.AddEntity(approveStep);
            }

            //添加部门
            foreach (var approveDept in model.ApproveDeptList)
            {
                //找到部门以前的流程
                var approvedepts =
                    _dataAccess.GetList <ApproveDept>("Ap_ApproveDept.DeptId=" + approveDept.DeptId +
                                                      " and Ap_ApproveWay.WayType=" + model.WayType +
                                                      " and Ap_ApproveDept.IsDelete=0 and Ap_ApproveWay.IsDelete=0");
                if (approvedepts.Count > 1)
                {
                    throw new Exception(RetechWing.LanguageResources.Other.MultipleApprovalProcess);
                }
                var originalApprovedept = approvedepts.FirstOrDefault();
                //没找到
                if (originalApprovedept == null)
                {
                    approveDept.WayId          = id;
                    approveDept.CreateUser     = currentUserId;
                    approveDept.CreateTime     = DateTime.Now;
                    approveDept.LastUpdateUser = currentUserId;
                    approveDept.LastUpdateTime = DateTime.Now;
                    approveDept.IsDelete       = 0;
                    _dataAccess.AddEntity(approveDept);

                    //使那些挂起的申请(暂时没有审批流程的)重新能够审批,收到站内信
                    foreach (
                        var record in
                        _dataAccess.GetList <ApproveRecord>(
                            "Ap_ApproveRecord.WayId=0 and Ap_ApproveRecord.ObjectDeptId=" +
                            approveDept.DeptId + " and Ap_ApproveRecord.WayType=" + model.WayType))
                    {
                        var receiver = GetMessageReceiver(model.ApproveStepList[0].ApproverType,
                                                          model.ApproveStepList[0].ApproverId,
                                                          record.ObjectUserId);

                        if (model.WayType == 1)
                        {
                            try
                            {
                                var    apply     = _dataAccess.Get <PromotionApply>(record.ObjectId);
                                var    t         = _dataAccess.Get <SysUser>(apply.UserId);
                                string sendtitle = string.Format("审批通知-{0}申请的{1}晋升路径中的{2}岗位", apply.UserRealName,
                                                                 apply.PromotionName, apply.PostName);
                                string sendmessage =
                                    string.Format(
                                        "你好,{0}申请的{1}晋升路径中的{2}岗位,已经提交了!请<a href=\"/[urllanguage]{3}\">进入</a>审批!",
                                        apply.UserRealName, apply.PromotionName, apply.PostName,
                                        "/Approve/ApprovePromotion?keep=1");
                                SysSendMessage.SendMessage(sendtitle, sendmessage, receiver, 99, t.TenantId);
                            }
                            catch
                            {
                            }
                        }
                    }

                    //使那些挂起的申请(暂时没有审批流程的)重新能够审批
                    _dataAccess.UpdateFields("Ap_ApproveRecord", new List <KeyValuePair <string, string> >
                    {
                        new KeyValuePair <string, string>("CurrentStepId",
                                                          model.ApproveStepList[0].StepId.ToString(
                                                              CultureInfo.InvariantCulture)),
                        new KeyValuePair <string, string>("CurrentStepOrderNum",
                                                          model.ApproveStepList[0].OrderNum.ToString(
                                                              CultureInfo.InvariantCulture)),
                        new KeyValuePair <string, string>("WayId", id.ToString(CultureInfo.InvariantCulture))
                    }, "Ap_ApproveRecord.WayId=0 and Ap_ApproveRecord.ObjectDeptId=" +
                                             approveDept.DeptId + " and Ap_ApproveRecord.WayType=" + model.WayType);
                }
                //找到并且,当前部门级别 > 老部门级别
                else if (compareDeptLevel(currentTenantId, model.DeptId, originalApprovedept.ApproveWay_DeptId))
                {
                    //如果老流程是部门自己新建的
                    if (originalApprovedept.DeptId == originalApprovedept.ApproveWay_DeptId)
                    {
                        //删除老流程 original_approvedept.WayId
                        DeleteApproveWay(originalApprovedept.WayId, model.CreateUser);
                    }

                    //修改部门跟新流程的关联
                    originalApprovedept.IsDelete       = 0;
                    originalApprovedept.WayId          = id;
                    originalApprovedept.LastUpdateTime = DateTime.Now;
                    originalApprovedept.LastUpdateUser = model.CreateUser;
                    _dataAccess.UpdateEntity(originalApprovedept);
                }
            }
            return(id);
        }
Beispiel #7
0
 /// <summary>
 /// 系统发送 站内信、邮件、短信
 /// </summary>
 /// <param name="title">标题</param>
 /// <param name="content">内容</param>
 /// <param name="recUserId">收件人</param>
 /// <param name="sendFlag">发送方式
 /// <para>0:站内信;</para>
 /// <para>1:邮件;</para>
 /// <para>2:短信;</para>
 /// <para>11:站内信、邮件;</para>
 /// <para>22:站内信、短信;</para>
 /// <para>33:邮件、短信;</para>
 /// <para>99:站内信、邮件、短信;</para>
 /// </param>
 protected void SendMessage(int tenantId, List <SysIinstationMessage> messageList, int sendFlag)
 {
     SysSendMessage.SendMessage(messageList, sendFlag, tenantId);
 }