예제 #1
0
        /// <summary>
        /// 新增申请单
        /// </summary>
        /// <param name="paymentMstAndXm">申请单对象</param>
        /// <returns></returns>
        public SavedResult <long> AddSignle(PaymentMstAndXmModel paymentMstAndXm)
        {
            SavedResult <long> savedResultMst = new SavedResult <long>();
            SavedResult <long> savedResult    = new SavedResult <long>();

            if (paymentMstAndXm.PaymentMst != null)
            {
                paymentMstAndXm.PaymentMst.FDate           = DateTime.Now;
                paymentMstAndXm.PaymentMst.PersistentState = PersistentState.Added;
                paymentMstAndXm.PaymentMst.FCode           = GetPaymentCode();
                savedResultMst = this.PaymentMstRule.Save <long>(paymentMstAndXm.PaymentMst);
                if (savedResultMst.KeyCodes.Count > 0)
                {
                    long mstPhid = savedResultMst.KeyCodes[0];
                    if (paymentMstAndXm.PaymentXmDtl != null && paymentMstAndXm.PaymentXmDtl.Count > 0)
                    {
                        int seq = 1;
                        foreach (var paymentXmDtl in paymentMstAndXm.PaymentXmDtl)
                        {
                            //PaymentXmAndDtlModel paymentXmAndDtl = new PaymentXmAndDtlModel();
                            paymentXmDtl.PaymentXm.PersistentState = PersistentState.Added;
                            paymentXmDtl.PaymentXm.MstPhid         = mstPhid;
                            paymentXmDtl.PaymentXm.FSeq            = seq++;
                            savedResult = this.PaymentXmRule.Save <long>(paymentXmDtl.PaymentXm);
                            if (savedResult.KeyCodes.Count > 0)
                            {
                                long xmPhid = savedResult.KeyCodes[0];
                                //新增明细
                                if (paymentXmDtl.PaymentDtls != null && paymentXmDtl.PaymentDtls.Count > 0)
                                {
                                    foreach (var paymentDtl in paymentXmDtl.PaymentDtls)
                                    {
                                        paymentDtl.PersistentState = PersistentState.Added;
                                        paymentDtl.MstPhid         = mstPhid;
                                        paymentDtl.PayXmPhid       = xmPhid;
                                    }
                                }
                                //新增项目附件
                                if (paymentXmDtl.QtAttachments != null && paymentXmDtl.QtAttachments.Count > 0)
                                {
                                    foreach (var attachment in paymentXmDtl.QtAttachments)
                                    {
                                        attachment.RelPhid         = xmPhid;
                                        attachment.BTable          = "BK3_PAYMENT_XM";
                                        attachment.PersistentState = PersistentState.Added;
                                    }
                                }
                                savedResult = this.QtAttachmentRule.Save <long>(paymentXmDtl.QtAttachments);
                                savedResult = this.PaymentDtlRule.Save <long>(paymentXmDtl.PaymentDtls);
                            }
                        }
                    }
                }
            }
            return(savedResultMst);
        }
예제 #2
0
        /// <summary>
        /// 点击申请单显示详情
        /// </summary>
        /// <param name="fCode"></param>
        /// <returns></returns>
        public PaymentMstAndXmModel GetPaymentMst(string fCode)
        {
            PaymentMstAndXmModel        paymentMstAndXm = new PaymentMstAndXmModel();
            Dictionary <string, object> dic             = new Dictionary <string, object>();

            new CreateCriteria(dic)
            .Add(ORMRestrictions <long> .Eq("PhId", long.Parse(fCode)));
            var result = this.PaymentMstRule.Find(dic);

            if (result.Count > 0)
            {
                paymentMstAndXm.PaymentMst = result[0];
                dic.Clear();
                new CreateCriteria(dic)
                .Add(ORMRestrictions <long> .Eq("MstPhid", result[0].PhId));
                var result2 = this.PaymentXmRule.Find(dic, new string[] { "FSeq asc", "XmProjcode Asc" });
                if (result2.Count > 0)
                {
                    List <PaymentXmAndDtlModel> paymentXmAndDtls = new List <PaymentXmAndDtlModel>();
                    foreach (var paymentXm in result2)
                    {
                        PaymentXmAndDtlModel paymentXmAndDtl = new PaymentXmAndDtlModel();
                        paymentXmAndDtl.PaymentXm = paymentXm;
                        //根据项目获取明细数据
                        dic.Clear();
                        new CreateCriteria(dic)
                        .Add(ORMRestrictions <long> .Eq("PayXmPhid", paymentXm.PhId));
                        var result3 = this.PaymentDtlRule.Find(dic);
                        if (result3.Count > 0)
                        {
                            paymentXmAndDtl.PaymentDtls = result3;
                            //foreach (var paymentDtl in result3)
                            //{
                            //    paymentXmAndDtl.PaymentDtls.Add(paymentDtl);
                            //}
                        }
                        //根据项目获取附件信息
                        dic.Clear();
                        new CreateCriteria(dic)
                        .Add(ORMRestrictions <long> .Eq("RelPhid", paymentXm.PhId))
                        .Add(ORMRestrictions <string> .Eq("BTable", "BK3_PAYMENT_XM"));
                        var result4 = this.QtAttachmentRule.Find(dic);
                        if (result4.Count > 0)
                        {
                            paymentXmAndDtl.QtAttachments = result4;
                        }
                        paymentXmAndDtls.Add(paymentXmAndDtl);
                    }
                    paymentMstAndXm.PaymentXmDtl = paymentXmAndDtls;
                }
            }
            return(paymentMstAndXm);
        }
예제 #3
0
 public string PostAdd([FromBody] BaseInfoModel <PaymentMstAndXmModel> paramters)
 {
     try
     {
         if (paramters.infoData != null)
         {
             PaymentMstAndXmModel paymentMstAndXm = paramters.infoData;
             var result = this.PaymentMstService.AddSignle(paymentMstAndXm);
             return(DataConverterHelper.SerializeObject(result));
         }
         else
         {
             throw new Exception("参数传递有误!");
         }
     }
     catch (Exception ex)
     {
         return(DCHelper.ErrorMessage(ex.Message));
     }
 }
예제 #4
0
        /// <summary>
        /// 修改申请单
        /// </summary>
        /// <param name="paymentMstAndXm">新的申请单</param>
        /// <returns></returns>
        public SavedResult <long> UpdateSignle(PaymentMstAndXmModel paymentMstAndXm)
        {
            SavedResult <long>          savedResultMst = new SavedResult <long>();
            SavedResult <long>          savedResult    = new SavedResult <long>();
            Dictionary <string, object> dic            = new Dictionary <string, object>();

            if (paymentMstAndXm.PaymentMst != null)
            {
                paymentMstAndXm.PaymentMst.PersistentState = PersistentState.Modified;
                if (string.IsNullOrEmpty(paymentMstAndXm.PaymentMst.FCode))
                {
                    paymentMstAndXm.PaymentMst.FCode = GetPaymentCode();
                }
                savedResultMst = this.PaymentMstRule.Save <long>(paymentMstAndXm.PaymentMst);
                if (savedResultMst.KeyCodes.Count > 0)
                {
                    long mstPhid = savedResultMst.KeyCodes[0];
                    //先删除该申请单下原有的项目与明细(包括附件)
                    int deletedResult = 0;
                    dic.Clear();
                    new CreateCriteria(dic)
                    .Add(ORMRestrictions <long> .Eq("MstPhid", mstPhid));
                    var result2 = this.PaymentXmRule.Find(dic);
                    if (result2 != null && result2.Count > 0)
                    {
                        //删除单据对应项目表数据
                        deletedResult = this.PaymentXmRule.Delete(dic);
                        var xmIdList = result2.ToList().Select(t => t.PhId).ToList();
                        //删除明细表数据
                        dic.Clear();
                        new CreateCriteria(dic)
                        .Add(ORMRestrictions <List <long> > .In("PayXmPhid", xmIdList));
                        var result3 = this.PaymentDtlRule.Find(dic);
                        if (result3 != null && result3.Count > 0)
                        {
                            deletedResult = this.PaymentDtlRule.Delete(dic);
                        }
                        //删除附件数据
                        dic.Clear();
                        new CreateCriteria(dic)
                        .Add(ORMRestrictions <List <long> > .In("RelPhid", xmIdList))
                        .Add(ORMRestrictions <string> .Eq("BTable", "BK3_PAYMENT_XM"));
                        var result4 = this.QtAttachmentRule.Find(dic);
                        if (result4 != null && result4.Count > 0)
                        {
                            deletedResult = this.QtAttachmentRule.Delete(dic);
                        }
                    }

                    //接着新增修改后的项目与明细
                    if (paymentMstAndXm.PaymentXmDtl != null && paymentMstAndXm.PaymentXmDtl.Count > 0)
                    {
                        int seq = 1;
                        foreach (var paymentXmDtl in paymentMstAndXm.PaymentXmDtl)
                        {
                            //新增单据对应项目
                            //PaymentXmAndDtlModel paymentXmAndDtl = new PaymentXmAndDtlModel();
                            paymentXmDtl.PaymentXm.PersistentState = PersistentState.Added;
                            paymentXmDtl.PaymentXm.MstPhid         = mstPhid;
                            paymentXmDtl.PaymentXm.FSeq            = seq++;

                            savedResult = this.PaymentXmRule.Save <long>(paymentXmDtl.PaymentXm);
                            if (savedResult.KeyCodes.Count > 0)
                            {
                                long xmPhid = savedResult.KeyCodes[0];
                                //新增明细
                                if (paymentXmDtl.PaymentDtls != null && paymentXmDtl.PaymentDtls.Count > 0)
                                {
                                    foreach (var paymentDtl in paymentXmDtl.PaymentDtls)
                                    {
                                        paymentDtl.PersistentState = PersistentState.Added;
                                        paymentDtl.MstPhid         = mstPhid;
                                        paymentDtl.PayXmPhid       = xmPhid;
                                    }
                                }
                                //新增项目附件
                                if (paymentXmDtl.QtAttachments != null && paymentXmDtl.QtAttachments.Count > 0)
                                {
                                    foreach (var attachment in paymentXmDtl.QtAttachments)
                                    {
                                        attachment.RelPhid         = xmPhid;
                                        attachment.BTable          = "BK3_PAYMENT_XM";
                                        attachment.PersistentState = PersistentState.Added;
                                    }
                                }
                                savedResult = this.QtAttachmentRule.Save <long>(paymentXmDtl.QtAttachments);
                                savedResult = this.PaymentDtlRule.Save <long>(paymentXmDtl.PaymentDtls);
                            }
                        }
                    }
                }
            }

            return(savedResultMst);
        }
예제 #5
0
 /// <summary>
 /// 修改申请单
 /// </summary>
 /// <param name="paymentMstAndXm">新的申请单</param>
 /// <returns></returns>
 public SavedResult <long> UpdateSignle(PaymentMstAndXmModel paymentMstAndXm)
 {
     return(this.PaymentMstFacade.UpdateSignle(paymentMstAndXm));
 }
예제 #6
0
        public async Task <string> PostAddfj()
        {
            List <QtAttachmentModel> attachmentModels = new List <QtAttachmentModel>();

            try
            {
                PaymentMstAndXmModel paymentMstAndXm = new PaymentMstAndXmModel();
                //判断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/BKPayment/");
                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/BKPayment/" + date + "/" + newFileName;

                            //如果上传文件为封面图片,将图片信息设置到新闻对象中
                            //if (".jpg".CompareTo(extension) == 0 || ".gif".CompareTo(extension) == 0 || ".png".CompareTo(extension) == 0 || ".jpeg".CompareTo(extension) == 0 || ".bmp".CompareTo(extension) == 0)
                            //{
                            //    newsModel.AttachmentName = b_name;
                            //    newsModel.AttachmentSize = decimal.Round((decimal)stream.Length / 1024, 2);
                            //    newsModel.Picpath = b_urlpath;

                            //}
                            //else {
                            QtAttachmentModel attachmentModel = new QtAttachmentModel();
                            attachmentModel.BName           = b_name;
                            attachmentModel.BSize           = decimal.Round((decimal)stream.Length / 1024, 2);
                            attachmentModel.BTable          = "BK3_PAYMENT_MST";
                            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(PaymentMstAndXmModel).GetProperty(key);
                        if (item != null)
                        {
                            //获取数据的类型
                            var propertyType = item.PropertyType;
                            //转换数据的类型
                            object v = Convert.ChangeType(value, propertyType);
                            item.SetValue(paymentMstAndXm, v);
                        }
                    }
                }

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

                //SavedResult<Int64> savedResult = SysNewsService.SaveSysNews(newsModel, attachmentModels);
                //if (savedResult != null && savedResult.KeyCodes.Count > 0)
                //{
                //    return DCHelper.SuccessMessage("新增成功!");
                //    return DataConverterHelper.SerializeObject(savedResult);
                //}
                //else
                //{
                //    return DCHelper.ErrorMessage("新增失败!");
                //}
                return(DCHelper.ErrorMessage("ceshiceshi!"));
            }
            catch (Exception ex)
            {
                return(DCHelper.ErrorMessage(ex.Message));
            }
        }