/// <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));
        }
Exemple #2
0
        /// <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));
        }
Exemple #4
0
        /// <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));
        }