Browse Source

申请付款
文件下载

leiy 11 months ago
parent
commit
7d8b80dc1c

+ 97 - 8
OASystem/OASystem.Api/Controllers/FinancialController.cs

@@ -28,6 +28,8 @@ using Google.Protobuf;
 using NPOI.SS.Formula.Functions;
 using System.Globalization;
 using NPOI.POIFS.Properties;
+using SixLabors.ImageSharp.ColorSpaces;
+using OASystem.Domain.ViewModels.QiYeWeChat;
 
 namespace OASystem.API.Controllers
 {
@@ -1979,6 +1981,7 @@ Where c.CTable = 1015 And c.IsPay = 1 And f.IsDel = 0 And c.IsDel = 0 And f.DiId
                         Payee = payInfo.Payee,
                         RowNumber = rouNumber,
                         Applicant = userDatas.Find(it => it.Id == payInfo.CreateUserId)?.CnName ??  "",
+                        ApplicantDt = payInfo.CreateTime.ToString("yyyy-MM-dd HH:mm:ss"),
                         PayType = setDatas.Find(it => it.Id == payInfo.PayDId)?.Name ?? "",
                         TransferMark = payInfo.OrbitalPrivateTransfer == 0 ? "公转": payInfo.OrbitalPrivateTransfer == 1 ? "私转" :"-",
                         PriceName = priName,
@@ -1987,7 +1990,7 @@ Where c.CTable = 1015 And c.IsPay = 1 And f.IsDel = 0 And c.IsDel = 0 And f.DiId
                         PaymentAmount = payInfo.PayMoney,
                         PayRate = payInfo.DayRate,
                         CNYTotalAmount = ((payInfo.DayRate * payInfo.PayMoney) / 100) * payInfo.PayPercentage //此次付款金额
-                    }); 
+                    });; 
                     rouNumber++;
                 }
 
@@ -2352,7 +2355,7 @@ Where c.CTable = 1015 And c.IsPay = 1 And f.IsDel = 0 And c.IsDel = 0 And f.DiId
 
         /// <summary>
         /// 付款申请 (PageId=51)
-        /// 文件下载
+        /// File Down
         /// </summary>
         /// <param name="dto"></param>
         /// <returns></returns>
@@ -2413,33 +2416,119 @@ Where c.CTable = 1015 And c.IsPay = 1 And f.IsDel = 0 And c.IsDel = 0 And f.DiId
                 tree_Fin_DailyFeePaymentResult dailyResult = PayRequest_DailyByDateRange(2, checkedView.DailyPaymentIds, dto.beginDt, dto.endDt);
                 tree_Group_DailyFeePaymentResult groupResult = PayRequest_GroupPaymentByDateRange(2, checkedView.GroupIds, dto.beginDt, dto.endDt);
 
-                string _requestPayment = DateTime.Now.ToString("yyyy-MM-dd");//申请付款日期
+                string _requestPaymentDt = DateTime.Now.ToString("yyyy-MM-dd"),//申请付款日期
+                       _appliedAmount = "", //申请付款金额
+                       _GZStr = "",    //公转价格描述
+                       _SZStr = "";    //私转价格描述
+
+
+                List<tree_Group_DailyFeePaymentPageListView> _GroupData = new List<tree_Group_DailyFeePaymentPageListView>();
+                List<tree_Fin_DailyFeePaymentPageListView> _DailyData = new List<tree_Fin_DailyFeePaymentPageListView>();
+
+                decimal groupGZAmout = 0.00M, groupSZAmout = 0.00M;
+                decimal dailyGZAmout = 0.00M, dailySZAmout = 0.00M;
+                string dailyGZStr = "", dailySZStr = "", groupGZStr = "", groupSZStr = "";
+
+                WorkbookDesigner designer = new WorkbookDesigner();
+                designer.Workbook = new Workbook(AppSettingsHelper.Get("ExcelBasePath") + "Template/付款申请书.xls");
 
                 //1	成都泛美商务有限公司
-                if (dto.ConpanyId == 1) 
+                if (dto.ConpanyId == 1)
                 {
-
+                    _GroupData = groupResult.dataList.Where(it => it.CompanyId == 1).ToList();
+                    _DailyData = dailyResult.dataList.Where(it => it.CompanyId == 1).ToList();
                 }
                 //2	四川泛美交流有限公司
                 else if (dto.ConpanyId == 2)
                 {
-
+                    _GroupData = groupResult.dataList.Where(it => it.CompanyId == 2).ToList();
+                    _DailyData = dailyResult.dataList.Where(it => it.CompanyId == 2).ToList();
                 }
                 //3 成都纽茵教育科技有限公司
                 else if (dto.ConpanyId == 3)
                 {
 
+                    _GroupData = groupResult.dataList.Where(it => it.CompanyId == 3).ToList();
+                    _DailyData = dailyResult.dataList.Where(it => it.CompanyId == 3).ToList();
                 }
                 //4 成都鸿企中元科技有限公司
                 else if (dto.ConpanyId == 4)
                 {
-
+                    return Ok(JsonView(false, "暂未开放该类型!"));
                 }
                 else
                 {
                     return Ok(JsonView(false, "参数ConpanyId不可使用!"));
                 }
-                return Ok(JsonView(false, "操作失败!"));
+
+                #region 数据处理
+                //团组费用相关
+                foreach (var item in _GroupData)
+                {
+                    string groupGZSubStr = "";
+                    string groupSZSubStr = "";
+
+                    foreach (var subItem in item.ChildList)
+                    {
+                        if (subItem.TransferMark.Equals("公转"))
+                        {
+                            groupGZAmout += subItem.CNYTotalAmount;
+                            groupGZSubStr += $"\t【{subItem.PayType}】[{subItem.ModuleName}]{subItem.RowNumber}、[申请人:{subItem.Applicant}][收款方:{subItem.Payee}]{subItem.PriceName}:支付币种及价格 {subItem.PayCurrCode} {subItem.PaymentAmount.ToString("#0.00")} 人名币价格 CNY {subItem.CNYTotalAmount.ToString("#0.00")}\r\n";
+                        }
+                        else if (subItem.TransferMark.Equals("私转"))
+                        {
+                            groupSZAmout += subItem.CNYTotalAmount;
+                            groupSZSubStr += $"\t【{subItem.PayType}】[{subItem.ModuleName}]{subItem.RowNumber}、[申请人:{subItem.Applicant}][收款方:{subItem.Payee}]{subItem.PriceName}:支付币种及价格 {subItem.PayCurrCode} {subItem.PaymentAmount.ToString("#0.00")} 人名币价格 CNY {subItem.CNYTotalAmount.ToString("#0.00")}【申请人:{subItem.Applicant}  申请时间:{subItem.ApplicantDt}】\r\n";
+                        }
+
+                        groupGZSubStr += $"\t";
+                    }
+
+                    if (!string.IsNullOrEmpty(groupGZSubStr)) groupGZStr += $"团组:{item.GroupName}\r\n{groupGZSubStr}\r\n";
+                    if (!string.IsNullOrEmpty(groupSZSubStr)) groupSZStr += $"团组:{item.GroupName}\r\n{groupSZSubStr}\r\n";
+
+
+                }
+
+                //日常费用相关
+                foreach (var item in _DailyData)
+                {
+                    foreach (var subItem in item.childList)
+                    {
+                        if (item.transferParentId == 62) //公转
+                        {
+
+                            dailyGZAmout += item.SumPrice ?? 0.00M;
+                            dailyGZStr += $"{item.RowNumber}、【{item.CompanyName}】【公转】【{item.priceTypeStr}】{subItem.PriceName}:CNY {subItem.ItemTotal.ToString("#0.00")} (单价:CNY {subItem.Price.ToString("#0.00")} * {subItem.Quantity})【申请人:{item.CreateUser} 申请时间:{item.CreateTime.ToString("yyyy-MM-dd HH:mm:ss")}】\r\n";
+
+                        }
+                        else if (item.transferParentId == 63) //私转
+                        {
+                            dailySZAmout += item.SumPrice ?? 0.00M;
+                            dailySZStr += $"{item.RowNumber}、【{item.CompanyName}】【公转】【{item.priceTypeStr}】({item.Instructions}){subItem.PriceName}:CNY {subItem.ItemTotal.ToString("#0.00")} (单价:CNY {subItem.Price.ToString("#0.00")} * {subItem.Quantity})【申请人:{item.CreateUser} 申请时间:{item.CreateTime.ToString("yyyy-MM-dd HH:mm:ss")}】\r\n";
+                        }
+                    }
+                }
+
+                _GZStr = $"【公转】团组相关费用(合计:CNY {groupGZAmout.ToString("#0.00")}):\r\n{groupGZStr}【公转】日常付款费用(合计:CNY {dailyGZAmout.ToString("#0.00")}):\r\n{dailyGZStr}";
+                _SZStr = $"【私转】团组相关费用(合计:CNY {groupSZAmout.ToString("#0.00")}):\r\n{groupSZStr}【私转】日常付款费用(合计:CNY {dailySZAmout.ToString("#0.00")}):\r\n{dailySZStr}";
+                _appliedAmount = $"公转:CNY {(groupGZAmout + dailyGZAmout).ToString("#0.00")}\r\n私转:CNY {(groupSZAmout + dailySZAmout).ToString("#0.00")}";
+                #endregion
+
+
+                designer.SetDataSource("Date", _requestPaymentDt);
+                designer.SetDataSource("Price", _appliedAmount);
+                designer.SetDataSource("Content", _GZStr);
+                designer.SetDataSource("Content1", _SZStr);
+
+                //根据数据源处理生成报表内容
+                designer.Process();
+
+                string fileName = ("PayRequest/付款申请(" + dto.beginDt + "~" + dto.endDt + ").xlsx");
+                designer.Workbook.Save(AppSettingsHelper.Get("ExcelBasePath") + fileName);
+                string rst = AppSettingsHelper.Get("ExcelBaseUrl") + AppSettingsHelper.Get("ExcelFtpPath") + fileName;
+                return Ok(JsonView(true, "操作成功!", new { url = rst }));
+
             }
             catch (Exception ex)
             {

+ 6 - 0
OASystem/OASystem.Domain/ViewModels/Financial/Fin_DailyFeePaymentView.cs

@@ -430,6 +430,12 @@ namespace OASystem.Domain.ViewModels.Financial
         /// </summary>
         public string Applicant { get; set; }
 
+
+        /// <summary>
+        /// 申请时间
+        /// </summary>
+        public string ApplicantDt { get; set; }
+
         /// <summary>
         /// 收款方
         /// </summary>