/// <summary> /// 撤销单据 /// </summary> /// <param name="docCode"></param> public void withdrew(string docCode, string wechatUserId) { var travelApply = _unitWork.FindSingle <TravelApply>(u => u.DocCode.Equals(docCode)); travelApply.Status = "草稿"; travelApply.Level = -1; _unitWork.Update(travelApply); // 保存审批记录 var record = new ApprovalRecord { DocCode = docCode, Level = -1, ApprovalResult = "撤销", WechatUserId = wechatUserId, DocumentTableName = "差旅申请" }; _unitWork.Add(record); // 清空审批人 _unitWork.Delete <ApprovalApprover>(u => u.DocCode.Equals(docCode) && u.DocumentTableName.Equals("差旅申请")); _unitWork.Save(); }
private void btnremove_Click(object sender, EventArgs e) { if (DialogResult.Yes == MessageBox.Show("是否删除该数据?", "是否删除该数据", MessageBoxButtons.YesNo, MessageBoxIcon.Question)) { if ((TabType)tabs.SelectedIndex == TabType.apply && dataGridApply.SelectedRows.Count > 0) { string applyid = dataGridApply.SelectedRows[0].Cells["申请ID"].Value.ToString(); ApplyInfo.deleteApplyInfo(applyid); bindApplyInfo(); } if ((TabType)tabs.SelectedIndex == TabType.approval && dataGridApproval.SelectedRows.Count > 0) { string applyid = dataGridApproval.SelectedRows[0].Cells["申请ID"].Value.ToString(); ApprovalRecord.deleteApprovalInfo(applyid); bindApprovalInfo(); } if ((TabType)tabs.SelectedIndex == TabType.user && dataGridUser.SelectedRows.Count > 0) { string userid = dataGridUser.SelectedRows[0].Cells["ID"].Value.ToString(); UserInfo.deleteUserInfo(userid); UserRelation.deleteUserFrelationInfo(userid); bindUserInfo(); } } }
/// <summary> /// 给表WF_Approval_Record插入数据 /// </summary> /// <param name="currentActiveName"></param> /// <param name="LoginName"></param> /// <param name="WFInstanceId"></param> public static void InsertWF_Approval_RecordByInstanceID(string currentActiveName, string LoginName, string WFInstanceId) { ApprovalRecord appRecord = new ApprovalRecord(); SqlParameter[] parameters = { new SqlParameter("@WfInstanceID", SqlDbType.NVarChar, 100), new SqlParameter("@CurrentActiveName", SqlDbType.NVarChar, 200), new SqlParameter("@LoginName", SqlDbType.NVarChar, 50) }; parameters[0].Value = WFInstanceId; parameters[1].Value = currentActiveName; parameters[2].Value = LoginName; DataTable datatable = DBHelper.ExecutedProcedure("Biz.WF_Approval_Record_Insert", parameters); }
/// <summary> /// 修改申请表并插入审批记录 /// </summary> /// <param name="approve_status">审批状态</param> /// <param name="reason">拒绝原因</param> private void ChangeApproveStatus(string approve_status, string reason = "") { applyinfo_grid.SelectedRows[0].Cells["apply_status"].Value = approve_status; applyinfo_grid.SelectedRows[0].Cells["reject_reason"].Value = reason; string list_id = applyinfo_grid.SelectedRows[0].Cells["list_id"].Value.ToString(); btn_approve.Enabled = false; btn_reject.Enabled = false; string applyid = applyinfo_grid.SelectedRows[0].Cells["apply_id"].Value.ToString(); ApplyInfo apply = ApplyInfo.getApplyInfo(applyid); if (apply != null) { ApprovalRecord approval = new ApprovalRecord(); approval.approvalStatus = apply.applyStatus = approve_status; approval.approvalContent = apply.rejectReason = reason; approval.approvalUserId = apply.lastApprovalUserId = currentUser.UserId; approval.ApprovalDate = apply.lastApprovalDate = DateTime.Now.ToString(); approval.applyId = apply.applyId; approval.ApprovalUserType = currentUser.UserType; approval.applyUserId = apply.applyUserId; if (!approve_status.Contains("拒绝")) { ApplyList list = new ApplyList(); list.insertUserId = apply.applyUserId; list.insertDate = DateTime.Now.ToString(); list.expirationDate = DateTime.Now.AddMonths(3).ToString(); list.ListId = applyinfo_grid.SelectedRows[0].Cells["list_id"].Value.ToString(); HandleApplyList(list); } if (ApplyInfo.updateApplyInfo(apply) > 0 && ApprovalRecord.addApprovalInfo(approval) > 0) { bindApplyGrid(); MessageBox.Show("操作成功!", "提示", MessageBoxButtons.OK, MessageBoxIcon.Information); } else { MessageBox.Show("操作失败,请重试!", "警告", MessageBoxButtons.OK, MessageBoxIcon.Warning); } } }
/// <summary> /// 审批差旅申请单 /// </summary> /// <param name="docCode"></param> /// <param name="wechatUserId"></param> public Response approval(string docCode, string wechatUserId, string result, string opinion, WxHelper wx, User user) { var travelApply = _unitWork.FindSingle <TravelApply>(u => u.DocCode.Equals(docCode)); // 首先判断该审批人是否有权限 防止重复点击 var rightApprover = _unitWork.Find <ApprovalApprover>(u => u.DocCode.Equals(docCode) && u.Level == travelApply.Level + 1 && u.WechatUserId.Equals(wechatUserId)); if (rightApprover == null) { return(new Response { code = 500, message = "暂无权限审批" }); } if ("同意".Equals(result)) { agree(travelApply, docCode, wx, user); } else { reject(travelApply, wx, opinion, user); } // 保存审批记录 var record = new ApprovalRecord { DocCode = docCode, Level = travelApply.Level + 1, ApprovalOpinions = opinion, ApprovalResult = result, WechatUserId = wechatUserId, DocumentTableName = "差旅申请" }; _unitWork.Add(record); _unitWork.Save(); return(new Response()); }
/// <summary> /// Saves the record. /// </summary> /// <param name="record">The record.</param> /// <returns></returns> public ApprovalRecord SaveRecord(ApprovalRecord record) { return(GetRecordDao().Update(record)); }
/// <summary> /// 插入审批记录 /// </summary> /// <param name="record"></param> /// <returns></returns> public ApprovalRecord InsertRecord(ApprovalRecord record) { return(GetRecordDao().Save(record)); }
/// <summary> /// 差旅申请 新增或保存草稿 /// </summary> /// <param name="travelApply"></param> /// <returns></returns> public TravelApply addOrDraft(TravelApply travelApply, JArray approverJArray, User userInfo, WxHelper wx) { if (string.IsNullOrEmpty(travelApply.DocCode)) { travelApply.DocCode = Encrypt.GenerateDocCode(); } travelApply.WechatUserId = userInfo.WechatUserId; travelApply.UserName = userInfo.UserName; // 找部门id if (!string.IsNullOrEmpty(travelApply.DepartmentName)) { travelApply.DepartmentId = _unitWork.FindSingle <Department>(u => u.Name.Equals(travelApply.DepartmentName)).Id; } // 处理总金额 travelApply.TotalMoney = travelApply.AccomodationFee + travelApply.TicketFee + travelApply.TollFee + travelApply.TravelAllowance; if (!_unitWork.IsExist <TravelApply>(u => u.DocCode.Equals(travelApply.DocCode))) { _unitWork.Add(travelApply); } else { _unitWork.Update(travelApply); } if (travelApply.Status.Equals("已提交")) { // 新增记录到审批人表 var approverList = new List <ApprovalApprover>(); foreach (var jarray in approverJArray) { var approver = new ApprovalApprover { DocumentTableName = "差旅申请", DocCode = travelApply.DocCode, Level = int.Parse(jarray["level"].ToString()), WechatUserId = jarray["wechatUserId"].ToString() }; approverList.Add(approver); } ; _unitWork.BatchAdd(approverList.ToArray()); // 新增记录到审批记录表 var record = new ApprovalRecord { DocumentTableName = "差旅申请", DocCode = travelApply.DocCode, Level = 0, WechatUserId = userInfo.WechatUserId, ApprovalResult = "单据提交", ApprovalOpinions = "单据提交" }; _unitWork.Add(record); // 给下级审批人发消息 WxTextCardMessage msg = new WxTextCardMessage(Convert.ToInt32(wx.AgentId), "审批通知", "你有一笔差旅申请待审批!", "http://yelioa.top:8080/#/travel_apply/pending", ""); msg.touser = _unitWork.FindSingle <ApprovalApprover>(u => u.DocCode.Equals(travelApply.DocCode) && u.DocumentTableName.Equals("差旅申请") && u.Level == travelApply.Level + 1).WechatUserId; wx.SendWxTextCardMessage(msg); // 给提交人发消息 msg = new WxTextCardMessage(Convert.ToInt32(wx.AgentId), "审批通知", $"你的差旅申请已提交,请耐心等待审批!", "http://yelioa.top:8080/#/travel_apply/mine", ""); msg.touser = travelApply.WechatUserId; wx.SendWxTextCardMessage(msg); } _unitWork.Save(); return(travelApply); }
private void bindApprovalInfo() { currentTable = ApprovalRecord.getAllApprovalInfo(); this.dataGridApproval.DataSource = currentTable; }