コード例 #1
0
        public string PostAddAppvalRecord([FromBody] GAppvalRecordModel gAppval)
        {
            try
            {
                SavedResult <long> result = new SavedResult <long>();
                if (gAppval == null)
                {
                    return(DCHelper.ErrorMessage("审批数据为空!"));
                }
                if (gAppval.ProcPhid == 0)
                {
                    return(DCHelper.ErrorMessage("审批流程id为空!"));
                }
                if (gAppval.PostPhid == 0)
                {
                    return(DCHelper.ErrorMessage("审批岗位id为空!"));
                }
                if (string.IsNullOrEmpty(gAppval.FBilltype))
                {
                    return(DCHelper.ErrorMessage("单据类型为空!"));
                }
                if (gAppval.NextOperators == null || gAppval.NextOperators.Count <= 0)
                {
                    return(DCHelper.ErrorMessage("单据的下一审批人不能为空!"));
                }

                result = this.GAppvalRecordService.AddAppvalRecord(gAppval);
                return(DataConverterHelper.SerializeObject(result));
            }
            catch (Exception ex)
            {
                return(DCHelper.ErrorMessage(ex.Message));
            }
        }
コード例 #2
0
        public string GetAppvalRecord([FromUri] GAppvalRecordModel recordModel)
        {
            if (recordModel == null || recordModel.RefbillPhid == 0)
            {
                return(DCHelper.ErrorMessage("申请单据ID为空!"));
            }
            if (string.IsNullOrEmpty(recordModel.FBilltype))
            {
                return(DCHelper.ErrorMessage("单据类型为空!"));
            }
            if (recordModel.ProcPhid == 0)
            {
                return(DCHelper.ErrorMessage("审批流程id为空!"));
            }

            try
            {
                List <GAppvalRecordModel> recordModels = GAppvalRecordService.GetAppvalRecord(recordModel.RefbillPhid, recordModel.ProcPhid, recordModel.FBilltype);
                return(DataConverterHelper.SerializeObject(new {
                    Status = "success",
                    Data = recordModels
                }));
            }
            catch (Exception e) {
                return(DCHelper.ErrorMessage(e.Message));
            }
        }
コード例 #3
0
        public string GetAppvalProcAndOperator([FromUri] GAppvalRecordModel recordModel)
        {
            if (recordModel == null || recordModel.ProcPhid == 0)
            {
                return(DCHelper.ErrorMessage("审批流程id为空!"));
            }
            if (recordModel.PostPhid == 0)
            {
                return(DCHelper.ErrorMessage("审批岗位id为空!"));
            }

            try
            {
                //根据审批流程id查找审批流程
                GAppvalProcModel procModel = GAppvalProcService.FindSingle(recordModel.ProcPhid);
                //根据审批流程id,当前岗位的id,查找下一岗位的审批人
                GAppvalPostModel postModel = GAppvalPostService.GetNextStepOperator(procModel.PhId, recordModel.PostPhid, recordModel.RefbillPhid, recordModel.FBilltype);

                return(DataConverterHelper.SerializeObject(new {
                    Status = "success",
                    Process = procModel,
                    AppvalPost = postModel
                }));
            }
            catch (Exception e) {
                return(DCHelper.ErrorMessage(e.Message));
            }
        }
コード例 #4
0
ファイル: GAppvalPostService.cs プロジェクト: RaoLeigf/msyh
        /// <summary>
        /// 根据流程id获取整个流程的岗位人员
        /// </summary>
        /// <param name="refbillPhid">单据主键</param>
        /// <param name="procPhid">流程id</param>
        /// <returns></returns>
        public List <GAppvalPostModel> GetBackApprovalPost2(long refbillPhid, long procPhid)
        {
            List <GAppvalPostModel> postModels = new List <GAppvalPostModel>();

            postModels.Add(new GAppvalPostModel
            {
                PhId  = 0,
                FName = "发起人"
            });

            //当前审批流程的所有审批岗位
            List <GAppvalPostModel> allPosts = GAppvalPostFacade.FindAppvalPostByProcID(procPhid).OrderBy(t => t.Seq).ToList();

            postModels.AddRange(allPosts);

            foreach (GAppvalPostModel postModel in postModels)
            {
                if (postModel.PhId == 0)
                {
                    if (refbillPhid == 0)
                    {
                        postModel.Operators = null;
                    }
                    else
                    {
                        try
                        {
                            List <GAppvalPost4OperModel> operModels = new List <GAppvalPost4OperModel>();
                            GAppvalRecordModel           model      = GAppvalRecordFacade.Find(t => t.RefbillPhid == refbillPhid && t.PostPhid == 0 && t.FBilltype == BillType.BeginProject).Data.ToList().OrderByDescending(t => t.FSendDate).ToList()[0];
                            User2Model user = UserFacade.Find(model.OperaPhid).Data;
                            operModels.Add(new GAppvalPost4OperModel
                            {
                                PostPhid     = 0,
                                OperatorPhid = user.PhId,
                                OperatorName = user.UserName
                            });
                            postModel.Operators = operModels;
                        }
                        catch (Exception e)
                        {
                            throw new Exception("查询发起人失败!");
                        }
                    }
                }
                else
                {
                    try
                    {
                        postModel.Operators = GAppvalPost4OperFacade.GetOperatorsByPostID(postModel.PhId);
                    }
                    catch (Exception e)
                    {
                        throw new Exception("根据岗位id查找操作失败!");
                    }
                }
            }
            return(postModels);
        }
コード例 #5
0
        public string GetBackApprovalPost([FromUri] GAppvalRecordModel recordModel)
        {
            if (recordModel == null || recordModel.ProcPhid == 0)
            {
                return(DCHelper.ErrorMessage("审批流程id为空!"));
            }
            if (recordModel.PostPhid == 0)
            {
                return(DCHelper.ErrorMessage("审批岗位id为空!"));
            }

            try
            {
                List <GAppvalPostModel> postModels = GAppvalPostService.GetBackApprovalPost(recordModel);
                if (postModels != null && postModels.Count > 0)
                {
                    foreach (var post in postModels)
                    {
                        post.IsSpanBack = 0;
                    }
                }
                //如果是跨审批流回退,打上标记
                if (recordModel.IsSpanBack == 1)
                {
                    IList <GAppvalRecordModel> recordList = new List <GAppvalRecordModel>();
                    recordList = this.GAppvalRecordService.Find(t => t.RefbillPhid == recordModel.RefbillPhid && t.FBilltype == BillType.BeginProject).Data;
                    if (recordList != null && recordList.Count > 0)
                    {
                        var procPhid = recordList.ToList().OrderByDescending(t => t.FSendDate).ToList()[0].ProcPhid;
                        List <GAppvalPostModel> postModels2 = GAppvalPostService.GetBackApprovalPost2(recordModel.RefbillPhid, procPhid);
                        if (postModels2 != null && postModels2.Count > 0)
                        {
                            foreach (var post in postModels2)
                            {
                                post.IsSpanBack   = 1;
                                post.BackProcPhid = procPhid;
                            }
                        }
                        postModels2.AddRange(postModels);
                        postModels = postModels2;
                    }
                }
                return(DataConverterHelper.SerializeObject(new {
                    Status = "success",
                    Data = postModels
                }));
            }
            catch (Exception e) {
                return(DCHelper.ErrorMessage(e.Message));
            }
        }
コード例 #6
0
        public string PostAddPayMent([FromBody] GAppvalRecordModel recordModel)
        {
            if (recordModel == null || recordModel.RefbillPhid == 0)
            {
                return(DCHelper.ErrorMessage("单据id为空!"));
            }

            try
            {
                GAppvalRecordService.PostAddPayMent(recordModel);

                return(DCHelper.SuccessMessage("生成支付单成功!"));
            }
            catch (Exception e) {
                return(DCHelper.ErrorMessage(e.Message));
            }
        }
コード例 #7
0
ファイル: GAppvalPostService.cs プロジェクト: RaoLeigf/msyh
        /// <summary>
        /// 根据审批岗位获取审批人(包括岗位id为0的发起人)
        /// </summary>
        /// <param name="recordModel"></param>
        /// <returns></returns>
        public List <GAppvalPost4OperModel> GetOperators(GAppvalRecordModel recordModel)
        {
            List <GAppvalPost4OperModel> operModels = new List <GAppvalPost4OperModel>();

            if (recordModel == null)
            {
                return(operModels);
            }


            if (recordModel.PostPhid == 0)
            {
                if (recordModel.RefbillPhid == 0)
                {
                    return(operModels);
                }
                else
                {
                    try
                    {
                        GAppvalRecordModel model = GAppvalRecordFacade.Find(t => t.RefbillPhid == recordModel.RefbillPhid && t.PostPhid == 0).Data[0];
                        User2Model         user  = UserFacade.Find(model.OperaPhid).Data;
                        operModels.Add(new GAppvalPost4OperModel {
                            PostPhid     = 0,
                            OperatorPhid = user.PhId,
                            OperatorName = user.UserName
                        });
                    }
                    catch (Exception e) {
                        throw new Exception("查询发起人失败!");
                    }
                }
            }
            else
            {
                try
                {
                    operModels = GAppvalPost4OperFacade.GetOperatorsByPostID(recordModel.PostPhid);
                }
                catch (Exception e) {
                    throw new Exception("根据岗位id查找操作失败!");
                }
            }

            return(operModels);
        }
コード例 #8
0
        public string GetApprovalPost([FromUri] GAppvalRecordModel recordModel)
        {
            if (recordModel == null || recordModel.ProcPhid == 0)
            {
                return(DCHelper.ErrorMessage("流程id为空!"));
            }

            try
            {
                List <GAppvalPostModel> postModels = GAppvalPostService.GetApprovalPost(recordModel.ProcPhid);
                return(DataConverterHelper.SerializeObject(new {
                    Status = "success",
                    Data = postModels
                }));
            }
            catch (Exception e) {
                return(DCHelper.ErrorMessage(e.Message));
            }
        }
コード例 #9
0
        /// <summary>
        /// 修改主表审批状态
        /// </summary>
        /// <param name="recordModel">传参对象</param>
        /// <param name="fApproval">审批状态</param>
        /// <returns></returns>
        public SavedResult <long> UpdateExpense(GAppvalRecordModel recordModel, string fApproval)
        {
            if (recordModel.RefbillPhid == 0)
            {
                return(null);
            }
            SavedResult <long> savedResult = new SavedResult <long>();
            ExpenseMstModel    expense     = this.ExpenseMstRule.Find(recordModel.RefbillPhid);

            if (expense != null)
            {
                expense.FApprovestatus   = fApproval;
                expense.FApprovedate     = DateTime.Now;
                expense.FApprover        = recordModel.OperaPhid;
                expense.FApprover_EXName = recordModel.OperaName;
                expense.PersistentState  = PersistentState.Modified;
                savedResult = ExpenseMstRule.Save <Int64>(expense);
            }
            return(savedResult);
        }
コード例 #10
0
        public string GetAppvalRecordList([FromUri] GAppvalRecordModel recordModel)
        {
            if (recordModel == null || recordModel.RefbillPhid == 0)
            {
                return(DCHelper.ErrorMessage("申请单据ID为空!"));
            }
            if (string.IsNullOrEmpty(recordModel.FBilltype))
            {
                return(DCHelper.ErrorMessage("单据类型为空!"));
            }
            try
            {
                List <GAppvalRecordModel> recordModels = GAppvalRecordService.GetAppvalRecordList(recordModel.RefbillPhid, recordModel.FBilltype);
                if (recordModels.Count > 0)
                {
                    recordModels[0].SortNum = 0;
                    for (int j = 1; j < recordModels.Count; j++)
                    {
                        recordModels[j].SortNum = j;
                        if (recordModels[j].PostPhid == recordModels[j - 1].PostPhid && recordModels[j].PostPhid != 0)
                        {
                            recordModels[j].SortNum = recordModels[j - 1].SortNum;
                        }
                    }

                    for (int i = 0; i < recordModels.Count; i++)
                    {
                        recordModels[i].SameNum = recordModels.FindAll(t => t.SortNum == i).Count;
                    }
                }
                return(DataConverterHelper.SerializeObject(new
                {
                    Status = "success",
                    Data = recordModels
                }));
            }
            catch (Exception e)
            {
                return(DCHelper.ErrorMessage(e.Message));
            }
        }
コード例 #11
0
 public string PostCancelAppvalRecord([FromBody] GAppvalRecordModel gAppval)
 {
     try
     {
         if (string.IsNullOrEmpty(gAppval.FBilltype))
         {
             return(DCHelper.ErrorMessage("单据类型不能为空!"));
         }
         if (gAppval.RefbillPhidList == null || gAppval.RefbillPhidList.Count < 1)
         {
             return(DCHelper.ErrorMessage("单据不能为空!"));
         }
         SavedResult <long> savedResult = new SavedResult <long>();
         savedResult = this.GAppvalRecordService.PostCancelAppvalRecord(gAppval);
         return(DataConverterHelper.SerializeObject(savedResult));
     }
     catch (Exception ex)
     {
         return(DCHelper.ErrorMessage(ex.Message));
     }
 }
コード例 #12
0
        public string GetOperators([FromUri] GAppvalRecordModel recordModel)
        {
            if (recordModel == null)
            {
                return(DCHelper.ErrorMessage("请求参数为空!"));
            }

            try
            {
                List <GAppvalPost4OperModel> operModels = GAppvalPostService.GetOperators(recordModel);

                return(DataConverterHelper.SerializeObject(new
                {
                    Status = "success",
                    Data = operModels
                }));
            }
            catch (Exception e) {
                return(DCHelper.ErrorMessage(e.Message));
            }
        }
コード例 #13
0
        public string PostApprovalRecord([FromBody] GAppvalRecordModel recordModel)
        {
            if (recordModel == null)
            {
                return(DCHelper.ErrorMessage("审批数据为空!"));
            }
            if (recordModel.ProcPhid == 0)
            {
                return(DCHelper.ErrorMessage("审批流程id为空!"));
            }
            if (recordModel.PostPhid == 0)
            {
                return(DCHelper.ErrorMessage("审批岗位id为空!"));
            }
            if (string.IsNullOrEmpty(recordModel.FBilltype))
            {
                return(DCHelper.ErrorMessage("单据类型为空!"));
            }
            if (recordModel.RefbillPhid == 0)
            {
                return(DCHelper.ErrorMessage("关联单据为空!"));
            }
            if (recordModel.PhId == 0)
            {
                return(DCHelper.ErrorMessage("审批记录的id为空!"));
            }

            try
            {
                GAppvalRecordService.PostApprovalRecord(recordModel);

                return(DCHelper.SuccessMessage("审批成功!"));
            }
            catch (Exception e) {
                return(DCHelper.ErrorMessage(e.Message));
            }
        }
コード例 #14
0
        public async Task <string> PostAddAppvalRecords()
        {
            List <QtAttachmentModel> attachmentModels = new List <QtAttachmentModel>();

            try
            {
                GAppvalRecordModel recordModel = new GAppvalRecordModel();
                recordModel.PersistentState = PersistentState.Added;
                //判断form表单类型是否正确
                if (!Request.Content.IsMimeMultipartContent())
                {
                    var data1 = new
                    {
                        Status = ResponseStatus.Error,
                        Msg    = "请求数据不是multipart/form-data类型",
                        Data   = ""
                    };
                    return(DataConverterHelper.SerializeObject(data1));
                }
                //I6WebAppInfo i6AppInfo = (I6WebAppInfo)HttpContext.Current.Session["NGWebAppInfo"] ?? null;
                //获取AppInfo值 头部信息记录
                var base64EncodedBytes = Convert.FromBase64String(HttpContext.Current.Request.Headers.GetValues("AppInfo").First());
                var jsonText           = Encoding.UTF8.GetString(base64EncodedBytes);
                var AppInfo            = JsonConvert.DeserializeObject <AppInfoBase>(jsonText);


                //如果路径不存在,创建路径
                var    root     = System.Web.Hosting.HostingEnvironment.MapPath("~/UpLoadFiles/ApprovalRecord/");
                string date     = DateTime.Now.ToString("yyyy-MM-dd");
                string filePath = Path.Combine(root, date);
                if (!Directory.Exists(filePath))
                {
                    Directory.CreateDirectory(filePath);
                }

                var multipartMemoryStreamProvider = await Request.Content.ReadAsMultipartAsync();

                var contentsList = multipartMemoryStreamProvider.Contents;

                foreach (var content in contentsList)
                {
                    //通过判断fileName是否为空,是否为文件
                    if (!string.IsNullOrEmpty(content.Headers.ContentDisposition.FileName))
                    {
                        //处理文件名字符串
                        string fileName = content.Headers.ContentDisposition.FileName.Replace("\"", string.Empty);
                        using (Stream stream = await content.ReadAsStreamAsync())
                        {
                            //文件如果大于100MB  提示不允许
                            if (stream.Length > 104857600)
                            {
                                return(DCHelper.ErrorMessage("上传的文件不能大于100MB!"));
                            }
                            byte[] bytes = new byte[stream.Length];
                            stream.Read(bytes, 0, bytes.Length);
                            stream.Seek(0, SeekOrigin.Begin);

                            //获取对应文件后缀名
                            string extension = Path.GetExtension(fileName);
                            //获取文件名
                            string b_name = Path.GetFileName(fileName);

                            //修改文件名
                            string newFileName = Guid.NewGuid().ToString("N") + extension;
                            string uploadPath  = Path.Combine(filePath, newFileName);

                            //保存文件
                            MemoryStream ms = new MemoryStream(bytes);
                            FileStream   fs = new FileStream(uploadPath, FileMode.Create);
                            ms.WriteTo(fs);
                            ms.Close();
                            fs.Close();

                            string b_urlpath = "/UpLoadFiles/ApprovalRecord/" + date + "/" + newFileName;

                            QtAttachmentModel attachmentModel = new QtAttachmentModel();
                            attachmentModel.BName           = b_name;
                            attachmentModel.BSize           = decimal.Round((decimal)stream.Length / 1024, 2);
                            attachmentModel.BTable          = "SP3_APPVAL_RECORD";
                            attachmentModel.BType           = extension;
                            attachmentModel.BUrlpath        = b_urlpath;
                            attachmentModel.PersistentState = PersistentState.Added;
                            attachmentModels.Add(attachmentModel);
                        }
                    }
                    else
                    {
                        //获取键值对值,并通过反射获取对象中的属性
                        string key   = content.Headers.ContentDisposition.Name.Replace("\"", string.Empty);
                        string value = await content.ReadAsStringAsync();

                        var item = typeof(GAppvalRecordModel).GetProperty(key);
                        if (item != null && value != "")
                        {
                            //获取数据的类型
                            var    propertyType = item.PropertyType;
                            object v;
                            if (key == "NextOperators" || key == "RefbillPhidList")
                            {
                                var value2 = JsonConvert.DeserializeObject <List <long> >(value);
                                v = Convert.ChangeType(value2, propertyType);
                            }
                            else
                            {
                                //转换数据的类型
                                v = Convert.ChangeType(value, propertyType);
                            }

                            item.SetValue(recordModel, v);
                        }
                    }
                }

                if (AppInfo != null)
                {
                    MultiDelegatingDbProvider.CurrentDbProviderName = AppInfo.DbName;
                }

                SavedResult <long> result = new SavedResult <long>();
                if (recordModel == null)
                {
                    return(DCHelper.ErrorMessage("审批数据为空!"));
                }
                if (recordModel.ProcPhid == 0)
                {
                    return(DCHelper.ErrorMessage("审批流程id为空!"));
                }
                if (recordModel.PostPhid == 0)
                {
                    return(DCHelper.ErrorMessage("审批岗位id为空!"));
                }
                if (string.IsNullOrEmpty(recordModel.FBilltype))
                {
                    return(DCHelper.ErrorMessage("单据类型为空!"));
                }
                if (recordModel.NextOperators == null || recordModel.NextOperators.Count <= 0)
                {
                    return(DCHelper.ErrorMessage("单据的下一审批人不能为空!"));
                }
                recordModel.QtAttachments = attachmentModels;
                result = this.GAppvalRecordService.AddAppvalRecord(recordModel);
                return(DataConverterHelper.SerializeObject(result));
            }
            catch (Exception e)
            {
                return(DCHelper.ErrorMessage(e.Message));
            }
        }
コード例 #15
0
ファイル: GAppvalPostService.cs プロジェクト: RaoLeigf/msyh
        /// <summary>
        /// 回退时,获取之前的所有岗位,包括发起人(岗位id为0)
        /// </summary>
        /// <param name="recordModel"></param>
        /// <returns></returns>
        public List <GAppvalPostModel> GetBackApprovalPost(GAppvalRecordModel recordModel)
        {
            List <GAppvalPostModel> postModels = new List <GAppvalPostModel>();

            if (recordModel == null || recordModel.ProcPhid == 0 || recordModel.PostPhid == 0)
            {
                return(postModels);
            }

            postModels.Add(new GAppvalPostModel {
                PhId  = 0,
                FName = "发起人"
            });

            //当前审批流程的所有审批岗位
            List <GAppvalPostModel> allPosts = GAppvalPostFacade.FindAppvalPostByProcID(recordModel.ProcPhid).OrderBy(t => t.Seq).ToList();
            //当前岗位
            GAppvalPostModel presentPost = allPosts.Find(t => t.PhId == recordModel.PostPhid);
            //当前岗位之前的岗位
            List <GAppvalPostModel> beforePosts = allPosts.FindAll(t => t.Seq < presentPost.Seq);

            postModels.AddRange(beforePosts);

            foreach (GAppvalPostModel postModel in postModels)
            {
                if (postModel.PhId == 0)
                {
                    if (recordModel.RefbillPhid == 0)
                    {
                        postModel.Operators = null;
                    }
                    else
                    {
                        try
                        {
                            List <GAppvalPost4OperModel> operModels = new List <GAppvalPost4OperModel>();
                            GAppvalRecordModel           model      = GAppvalRecordFacade.Find(t => t.RefbillPhid == recordModel.RefbillPhid && t.PostPhid == 0).Data[0];
                            User2Model user = UserFacade.Find(model.OperaPhid).Data;
                            operModels.Add(new GAppvalPost4OperModel
                            {
                                PostPhid     = 0,
                                OperatorPhid = user.PhId,
                                OperatorName = user.UserName
                            });
                            postModel.Operators = operModels;
                        }
                        catch (Exception e)
                        {
                            throw new Exception("查询发起人失败!");
                        }
                    }
                }
                else
                {
                    try
                    {
                        postModel.Operators = GAppvalPost4OperFacade.GetOperatorsByPostID(postModel.PhId);
                    }
                    catch (Exception e)
                    {
                        throw new Exception("根据岗位id查找操作失败!");
                    }
                }
            }


            return(postModels);
        }