/// <summary> /// 申请列表 /// </summary> /// <param name="id">业务类型fid</param> /// <returns></returns> public PartialViewResult Apply(string fid) { WfBusiness business = _dbContext.Get <WfBusiness>(fid); WfProcess wfProcess = _dbContext.Get <WfProcess>(business.WfProcessUid); ViewBag.WfProcess = wfProcess; ViewBag.WfBusiness = business; var model = this.GetJqGridModel(business.BillEntity, (qs) => { qs.GlobalWhere = "(BillEmpUid=@EmpUid or AppEmpUid=@EmpUid)"; qs.AddParameter("EmpUid", _applicationContext.EmpUid); }); return(PartialView(model)); }
/// <summary> /// 发送催办邮件消息 /// </summary> /// <param name="bizUid">业务Fid</param> /// <param name="bizTypeUid">业务类型</param> public string SendUrgeMessage(string billUid, string businessUid) { DynamicParameters param = new DynamicParameters(); param.Add("BillUid", billUid); param.Add("BusinessUid", businessUid); var receiver = _dataAccessor.Query("select WfTask.ExecutorEmpUid,WfTask.TaskStartTime from WfTask,WfActivityInstance where WfTask.ActivityInsUid=WfActivityInstance.Fid and WfTask.TaskState='Handling' and WfActivityInstance.BillUid=@BillUid and WfActivityInstance.BusinessUid=@BusinessUid and (WfActivityInstance.ActivityState='Ready' or WfActivityInstance.ActivityState='Running')", param); if (receiver == null || !receiver.Any()) return "没有要催办的人。"; var reciverIds = receiver.Select(r => r.ExecutorEmpUid); var receipants = _dataAccessor.Query<Employee>("select * from Employee where Fid in @Fids",new DynamicParameters(new { Fids= reciverIds })); List<string> receipantIds = new List<string>(); //收件人Fid List<string> receipantNames = new List<string>(); //收件人姓名 List<string> receipantMailboxes = new List<string>(); //收件人邮箱 foreach (var receipant in receipants) { receipantIds.Add(receipant.Fid); receipantNames.Add(receipant.EmpName); receipantMailboxes.Add($"{receipant.EmpName}<{receipant.Mailbox}>"); } WfBusiness biz = _dataAccessor.Get<WfBusiness>(businessUid); if (biz == null) return "未找到业务,催办失败!"; string tableName = biz.BillEntity; dynamic bizData = _dataAccessor.QueryFirstOrDefault($"select * from {tableName} where Fid=@BillUid", param, true); string content = string.Format("您有一条:{0}的催办任务,制单人:{1},任务到达时间为:{2},请及时处理。", biz.BizName, bizData.BillEmpUidMC, receiver.First().TaskStartTime); string title = string.Format("{0}的催办任务", biz.BizName); try { //邮件 SendMailToAssignee(title, receipantNames, receipantMailboxes, content); //站内信 SendInmsgToAssignee(receipantIds, content); return "发送成功。"; } catch (System.Exception ex) { _logger.LogError(ex.Message); return ex.Message; } }
/// <summary> /// 申请列表管理 /// </summary> /// <param name="id">业务类型fid</param> /// <returns></returns> public ActionResult Manage(string fid) { WfBusiness wfb = _dbContext.Get <WfBusiness>(fid); if (wfb == null) { return(Content("业务未关联流程")); } WfProcess wfProcess = _dbContext.Get <WfProcess>(wfb.WfProcessUid); ViewBag.WfProcess = wfProcess; ViewBag.WfBusiness = wfb; var model = this.GetJqGridModel(wfb.BillEntity, (qs) => { qs.GlobalWhere = "BillStatus<>'DRAFT' and BillStatus<>'CANCELED' and BillStatus<>'ENDED' and BillStatus<>'CLOSED'"; qs.AddOrderBy("Id", "desc"); }); return(PartialView(model)); }
/// <summary> /// 申请单 /// </summary> /// <param name="processUid">流程</param> /// <param name="billUid">单据</param> /// <returns></returns> public IActionResult ApplyBill(string businessUid, string billUid = "") { WfBusiness business = _dbContext.Get <WfBusiness>(businessUid); WfProcess process = _dbContext.Get <WfProcess>(business.WfProcessUid); FormViewModel model = GetFormViewModel(business.BillEntity, business.BillEntity, billUid); if (process.BillTable.EqualsWithIgnoreCase("TmTravelApply")) { //设置子表默认值 SubTableDefaultValue sub = new SubTableDefaultValue() { TableName = "TmTravelBudget", Data = new Dictionary <string, string> { ["Currency"] = "fcdc11e5828cc236d2ab", ["CurrencyMC"] = "人民币" } }; model.SubDefaultDataList.AsList().Add(sub); } //关联的业务类型Uid ViewBag.Business = business; //当前流程 ViewBag.Process = process; return(View(model)); }