/// <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="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); }
/// <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); }
/// <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); }