Browse Source

团组报表
查询 团组相关费用

leiy 1 year ago
parent
commit
d5bc0637bf

+ 5 - 3
OASystem/EntitySync/Program.cs

@@ -120,8 +120,10 @@ db.CodeFirst.SetStringDefaultLength(50).BackupTable().InitTables(new Type[]
     //typeof(Fin_PaymentRefundAndOtherMoney),
     //typeof(Grp_InsuranceCost),
     //typeof(Grp_TourClientList), //接团客户名单
-    typeof(Dis_Intercontinental), //洲
-    typeof(Dis_Country), //国家
-    typeof(Dis_City), //城市
+    //typeof(Dis_Intercontinental), //洲
+    //typeof(Dis_Country), //国家
+    //typeof(Dis_City), //城市 
+    typeof(Fin_GroupExtraCost), //超支费用 
+
 });
 Console.WriteLine("数据库结构同步完成!");

+ 112 - 22
OASystem/OASystem.Api/Controllers/StatisticsController.cs

@@ -12,6 +12,7 @@ using OASystem.Infrastructure.Repositories.Groups;
 using static OpenAI.GPT3.ObjectModels.SharedModels.IOpenAiModels;
 using System;
 using OASystem.Domain.Entities.Customer;
+using System.Collections.Generic;
 
 namespace OASystem.API.Controllers
 {
@@ -188,15 +189,30 @@ namespace OASystem.API.Controllers
 										        Where pr.IsDel = 0 and pr.Diid = {0}", _dto.DiId);
                 List<Gsd_ProceedsReceivedView> _prViews = await _sqlSugar.SqlQueryable<Gsd_ProceedsReceivedView>(_prSql).ToListAsync();
                 prTotalAmount = _prViews.Sum(it => it.Price);
-                _giView.ProceedsReceiveds = _prViews;
+                _giView.ProceedsReceivedViews = _prViews;
                 _giView.ProceedsReceivedStr = string.Format(@"已收款合计:{0} CNY(人名币)", prTotalAmount.ConvertToDecimal1().ToString("#0.00"));
 
 
                 /*
                  * 超支费用 
-                 * 未挪表
                  */
-
+                decimal exTotalAmount = 0.00M;
+                string _ecSql = string.Format(@"Select gec.Id As GECId,gec.DiId As GECDiId,gec.PriceName,ccp.PayMoney,sd1.Name As PaymentCurrency,
+                                                ccp.RMBPrice As CNYPrice,ccp.DayRate,ccp.Payee,ccp.OrbitalPrivateTransfer,sd2.Name As PayWay,
+                                                sd3.Name As CardType,ccp.IsPay,u.CnName As Applicant
+                                                From  Fin_GroupExtraCost gec
+                                                Left Join Grp_CreditCardPayment ccp On ccp.isdel = 0 And ccp.CTable = 81 And gec.Id = ccp.CId
+                                                Left Join Sys_SetData sd1 On ccp.PaymentCurrency = sd1.Id
+                                                Left Join Sys_SetData sd2 On ccp.PayDId = sd2.Id 
+                                                Left Join Sys_SetData sd3 On ccp.CTDId = sd3.Id
+                                                Left Join Sys_Users u On ccp.CreateUserId = u.Id
+                                                Where gec.IsDel = 0 And ccp.IsAuditGM = 1 And ccp.IsPay = 1 And  gec.DiId = {0}",_dto.DiId);
+
+                List<Gsd_ExtraCostsView> _ExtraCostsViews = await _sqlSugar.SqlQueryable<Gsd_ExtraCostsView>(_ecSql).ToListAsync();
+                exTotalAmount = _ExtraCostsViews.Sum(it => it.CNYPrice);
+
+                _giView.ExtraCostsViews = _ExtraCostsViews;
+                _giView.ExtraCostsStr = string.Format(@"人名币总费用:{0} CNY", exTotalAmount.ConvertToDecimal1());
                 /*
                  * 收款退还
                  */
@@ -214,8 +230,6 @@ namespace OASystem.API.Controllers
 										         And prom.DiId =   {0}", _dto.DiId);
                 var _promDatas = await _sqlSugar.SqlQueryable<Gsd_PaymentRefundAndOtherMoneyDataSource1View>(_ropSql).ToListAsync();
 
-                
-
                 foreach (var ropItem in _promDatas)
                 {
                     string thisCueencyCode = "Unknown";
@@ -264,7 +278,7 @@ namespace OASystem.API.Controllers
                 }
 
                 promTotalAmount = _promView.Sum(it => it.CNYPrice);
-                _giView.PaymentRefundAndOtherMoneys = _promView;
+                _giView.PaymentRefundAndOtherMoneyViews = _promView;
                 _giView.PaymentRefundAndOtherMoneyStr = string.Format(@"人名币总费用:{0} CNY", promTotalAmount.ConvertToDecimal1().ToString("#0.00"));
 
                 decimal BalancePayment = frTotalAmount - prTotalAmount + promTotalAmount;
@@ -284,7 +298,7 @@ namespace OASystem.API.Controllers
                                                      hr.BreakfastPrice,sd4.Name As BreakfastCurrency,hr.Isoppay,hr.GovernmentRent,
                                                      sd5.Name As GovernmentRentCurrency,hr.CityTax,sd6.Name As CityTaxCurrency,
                                                      ccp.PayMoney,ccp.RMBPrice As CNYPrice,ccp.DayRate,ccp.Payee,ccp.OrbitalPrivateTransfer,
-                                                     sd2.Name As PayWay,sd3.Name As CardType,ccp.IsPay,u.CnName As OpName
+                                                     sd2.Name As PayWay,sd3.Name As CardType,ccp.IsPay,u.CnName As Applicant
                                                      From Grp_HotelReservations  hr
                                                      Left Join Grp_CreditCardPayment ccp On hr.Id = ccp.CId
                                                      Left Join Sys_SetData sd1 On ccp.PaymentCurrency = sd1.Id
@@ -308,12 +322,9 @@ namespace OASystem.API.Controllers
 
                     string currencyRateStr = "";
                     List<string> currencys = new List<string>();
-                    if (!string.IsNullOrEmpty(item.PaymentCurrency)) currencys.Add(item.PaymentCurrency);
-
                     if (!string.IsNullOrEmpty(item.BreakfastCurrency)) currencys.Add(item.BreakfastCurrency);
-
                     if (!string.IsNullOrEmpty(item.GovernmentRentCurrency)) currencys.Add(item.GovernmentRentCurrency);
-
+                    if (!string.IsNullOrEmpty(item.CityTaxCurrency)) currencys.Add(item.CityTaxCurrency);
                     if (!string.IsNullOrEmpty(item.PaymentCurrency)) currencys.Add(item.PaymentCurrency);
 
                     currencyRateStr = await GeneralMethod.PostGroupRateByCTableAndCurrency(teamRateData, 76, currencys);
@@ -334,7 +345,7 @@ namespace OASystem.API.Controllers
                                                      sd2.name As PaymentCurrency,ccp.PayPercentage,(ccp.PayMoney * ccp.PayPercentage / 100) As AmountPaid,
                                                      (ccp.PayMoney -(ccp.PayMoney * ccp.PayPercentage / 100)) As BalancePayment,ccp.DayRate,
                                                      ccp.RMBPrice As CNYPrice,ccp.Payee,ccp.AuditGMDate,
-                                                     ccp.OrbitalPrivateTransfer,sd1.Name As PayWay,ccp.IsPay,u.CnName As OpName
+                                                     ccp.OrbitalPrivateTransfer,sd1.Name As PayWay,ccp.IsPay,u.CnName As Applicant
                                                      From Grp_CarTouristGuideGroundReservations ctggr
                                                      Left Join ( Select cggrc.CTGGRId,sd1.Name As PriceName,cggrc.Price,sd2.Name As PriceCurrency,
                                                      				   cggrc.PriceContent
@@ -375,7 +386,7 @@ namespace OASystem.API.Controllers
                 string groupAirFeeSql = string.Format(@"Select atr.Id As AirId,atr.DIId As AirDiId,atr.FlightsCode,atr.FlightsCity,sd4.Name As AirTypeName,
                                                         atr.FlightsDate,atr.FlightsTime,atr.ClientName,atr.ClientNum,ccp.PayMoney,
                                                         sd1.Name As PayMoneyCurrency,ccp.RMBPrice As CNYPrice,ccp.DayRate,ccp.Payee,ccp.AuditGMDate,
-                                                        ccp.OrbitalPrivateTransfer,sd2.Name As PayWay,sd3.Name As CardType,ccp.IsPay,u.CnName As OpName
+                                                        ccp.OrbitalPrivateTransfer,sd2.Name As PayWay,sd3.Name As CardType,ccp.IsPay,u.CnName As Applicant
                                                         From Grp_AirTicketReservations atr
                                                         Left Join Grp_CreditCardPayment ccp On ccp.isdel = 0 And ccp.CTable = 85 And atr.Id = ccp.CId
                                                         Left Join Sys_SetData sd1 On ccp.PaymentCurrency = sd1.Id
@@ -453,7 +464,7 @@ namespace OASystem.API.Controllers
                 List<GroupVisaFeeView> groupVisaFeeViews = new List<GroupVisaFeeView>();
                 string groupVisaFeeSql = string.Format(@"Select vi.Id As VisaId,vi.DIId As VisaDiId,vi.VisaClient,ccp.PayMoney,sd1.Name As PayMoneyCurrency,
                                                          ccp.DayRate,ccp.Payee,ccp.AuditGMDate,ccp.OrbitalPrivateTransfer,sd2.Name As PayWay,
-                                                         sd3.Name As CardTypeName,ccp.IsPay,u.CnName As OpName
+                                                         sd3.Name As CardTypeName,ccp.IsPay,u.CnName As Applicant
                                                          From Grp_VisaInfo vi
                                                          Left Join Grp_CreditCardPayment ccp On ccp.isdel = 0 And ccp.CTable = 80 And vi.Id = ccp.CId
                                                          Left Join Sys_SetData sd1 On ccp.PaymentCurrency = sd1.Id
@@ -479,15 +490,61 @@ namespace OASystem.API.Controllers
                 _geView.GroupVisaFeeStr = string.Format(@"人名币总费用:{0} CNY", VisaCNYTotalPirce.ConvertToDecimal1());
                 #endregion
 
-                #region 邀请/公务活动费用 InvitationalService
+                #region 邀请/公务活动费用  CTable = 81
+
+                List<GroupInvitationalFeeView> groupInvitationalFeeViews = new List<GroupInvitationalFeeView>();
+                string groupInvitationalFeeSql = string.Format(@"Select ioa.Id As IOAId,ioa.DiId As IOADiId,ioa.InviterArea,ioa.Inviter,ioa.InviteTime,
+                                                                 ioa.InviteCost,sd3.Name As InviteCurrency,ioa.SendCost,sd4.Name As SendCurrency,ioa.EventsCost,
+                                                                 sd5.Name As EventsCurrency,ioa.TranslateCost,sd6.Name As TranslateCurrency,ccp.PayMoney,
+                                                                 sd7.Name As PaymentCurrency,ccp.RMBPrice As CNYPrice,ccp.Payee,ccp.AuditGMDate,
+                                                                 ccp.OrbitalPrivateTransfer,sd2.Name As PayWay,ccp.IsPay,u.CnName As Applicant
+                                                                 From  Grp_InvitationOfficialActivities ioa
+                                                                 Left Join Grp_CreditCardPayment ccp On ccp.isdel = 0 And ccp.CTable = 81 And ioa.Id = ccp.CId
+                                                                 Left Join Sys_SetData sd1 On ccp.PaymentCurrency = sd1.Id
+                                                                 Left Join Sys_SetData sd2 On ccp.PayDId = sd2.Id
+                                                                 Left Join Sys_SetData sd3 On ioa.InviteCurrency = sd3.Id
+                                                                 Left Join Sys_SetData sd4 On ioa.SendCurrency = sd4.Id
+                                                                 Left Join Sys_SetData sd5 On ioa.EventsCurrency = sd5.Id
+                                                                 Left Join Sys_SetData sd6 On ioa.TranslateCurrency = sd6.Id
+                                                                 Left Join Sys_SetData sd7 On ccp.PaymentCurrency = sd7.Id
+                                                                 Left Join Sys_Users u On ccp.CreateUserId = u.Id
+                                                                 Where ioa.IsDel = 0 And ccp.IsAuditGM = 1 And ccp.IsPay = 1 And  ioa.Diid = {0}",_dto.DiId);
+
+                groupInvitationalFeeViews = await _sqlSugar.SqlQueryable<GroupInvitationalFeeView>(groupInvitationalFeeSql).ToListAsync();
+
+                decimal InvitationalCNYTotalPrice = 0.00M;
+
+                foreach (var item in groupInvitationalFeeViews)
+                {
+                    InvitationalCNYTotalPrice += item.CNYPrice;
+
+                    if (!string.IsNullOrEmpty(item.AuditGMDate))
+                    {
+                        item.AuditGMDate = Convert.ToDateTime(item.AuditGMDate).ToString("yyyy-MM-dd HH:mm:ss");
+                    }
+
+                    string currencyRateStr = "";
+                    List<string> currencys = new List<string>();
+                    if (!string.IsNullOrEmpty(item.InviteCurrency)) currencys.Add(item.InviteCurrency);
+                    if (!string.IsNullOrEmpty(item.SendCurrency)) currencys.Add(item.SendCurrency);
+                    if (!string.IsNullOrEmpty(item.EventsCurrency)) currencys.Add(item.EventsCurrency);
+                    if (!string.IsNullOrEmpty(item.TranslateCurrency)) currencys.Add(item.TranslateCurrency);
+                    if (!string.IsNullOrEmpty(item.PaymentCurrency)) currencys.Add(item.PaymentCurrency);
+
+                    currencyRateStr = await GeneralMethod.PostGroupRateByCTableAndCurrency(teamRateData, 81, currencys);
 
+                    item.CurrencyRateStr = currencyRateStr;
+                }
+
+                _geView.GroupInvitationalFeeViews = groupInvitationalFeeViews;
+                _geView.GroupInvitationalFeeStr = string.Format(@"人民币总费用:{0} CNY", InvitationalCNYTotalPrice);
                 #endregion
 
-                #region 保险费用 insurance
+                #region 保险费用
                 List<GroupInsuranceFeeView> groupInsuranceFeeViews = new List<GroupInsuranceFeeView>();
                 string groupInsuranceFeeSql = string.Format(@"Select ic.Id As InsuranceId,ic.Diid As InsuranceDiId,ClientName,ccp.PayMoney,ccp.RMBPrice As CNYPrice,
                                                               sd1.Name As PayMoneyCurrency,ccp.Payee,ccp.AuditGMDate,ccp.OrbitalPrivateTransfer,
-                                                              sd2.Name As PayWay,ccp.IsPay,u.CnName As OpName
+                                                              sd2.Name As PayWay,ccp.IsPay,u.CnName As Applicant
                                                               From Grp_Customers ic
                                                               Left Join Grp_CreditCardPayment ccp On ccp.isdel = 0 And ccp.CTable = 82 And ic.Id = ccp.CId
                                                               Left Join Sys_SetData sd1 On ccp.PaymentCurrency = sd1.Id
@@ -496,10 +553,10 @@ namespace OASystem.API.Controllers
                                                               Where ic.IsDel = 0 And ccp.IsAuditGM = 1 And ccp.IsPay = 1 And ic.DiId = {0}", _dto.DiId);
                 groupInsuranceFeeViews = await _sqlSugar.SqlQueryable<GroupInsuranceFeeView>(groupInsuranceFeeSql).ToListAsync();
 
-                decimal insuranceCNYTotalPrice = 0.00M;
+                decimal InsuranceCNYTotalPrice = 0.00M;
                 foreach (var item in groupInsuranceFeeViews)
                 {
-                    insuranceCNYTotalPrice += item.CNYPrice;
+                    InsuranceCNYTotalPrice += item.CNYPrice;
 
                     if (!string.IsNullOrEmpty(item.AuditGMDate))
                     {
@@ -507,17 +564,50 @@ namespace OASystem.API.Controllers
                     }
                 }
                 _geView.GroupInsuranceFeeViews = groupInsuranceFeeViews;
-                _geView.GroupInsuranceFeeStr = string.Format(@"人名币总费用:{0} CNY", insuranceCNYTotalPrice);
+                _geView.GroupInsuranceFeeStr = string.Format(@"人名币总费用:{0} CNY", InsuranceCNYTotalPrice);
                 #endregion
 
-                #region 其他款项费用 OtherMoney
+                #region 其他款项费用 
+                List<GroupDecreaseFeeView> groupDecreaseFeeViews = new List<GroupDecreaseFeeView>();
+                string groupDecreaseFeeSql = string.Format(@"Select dp.Id As DPId,dp.DiId As DPDiId,dp.PriceName,ccp.PayMoney,sd1.Name As PayMoneyCurrency,
+                                                             ccp.RMBPrice As CNYPrice,ccp.DayRate,ccp.Payee,ccp.AuditGMDate,ccp.OrbitalPrivateTransfer,
+                                                             sd2.Name As PayWay,ccp.IsPay,u.CnName As Applicant
+                                                             From Grp_DecreasePayments dp
+                                                             Left Join Grp_CreditCardPayment ccp On ccp.isdel = 0 And ccp.CTable = 98 And dp.Id = ccp.CId
+                                                             Left Join Sys_SetData sd1 On ccp.PaymentCurrency = sd1.Id
+                                                             Left Join Sys_SetData sd2 On ccp.PayDId = sd2.Id
+                                                             Left Join Sys_Users u On ccp.CreateUserId = u.Id
+                                                             Where dp.IsDel = 0 And ccp.IsAuditGM = 1 And ccp.IsPay = 1 And  dp.Diid = {0}",_dto.DiId);
+                groupDecreaseFeeViews = await _sqlSugar.SqlQueryable<GroupDecreaseFeeView>(groupDecreaseFeeSql).ToListAsync();
+                decimal DecreaseCNYTotalPrice = 0.00M;
+                foreach (var item in groupDecreaseFeeViews)
+                {
+                    DecreaseCNYTotalPrice += item.CNYPrice;
+
+                    if (!string.IsNullOrEmpty(item.AuditGMDate))
+                    {
+                        item.AuditGMDate = Convert.ToDateTime(item.AuditGMDate).ToString("yyyy-MM-dd HH:mm:ss");
+                    }
+                }
 
+                _geView.GroupDecreaseFeeViews = groupDecreaseFeeViews;
+                _geView.GroupDecreaseFeeStr = string.Format(@"人名币总费用:{0} CNY", DecreaseCNYTotalPrice);
                 #endregion
 
                 _view.GroupExpenditure = _geView;
                 #endregion
 
-
+                decimal _totalExpenditure = 0.00M; //总支出
+                decimal _amountReceivable = 0.00M; //应收金额
+                decimal _amountReceived = 0.00M;   //已收金额
+                decimal _profit = 0.00M;           //利润
+                _totalExpenditure = HotelCNYTotalPrice + CTGGRCNYTotalPrice + AirCNYTotalPrice + VisaCNYTotalPirce + InvitationalCNYTotalPrice + 
+                                    InsuranceCNYTotalPrice + DecreaseCNYTotalPrice + exTotalAmount;
+                _amountReceivable = frTotalAmount;
+                _amountReceived = prTotalAmount;
+                _profit = _amountReceived - _totalExpenditure;
+                _view.FeeTotalStr = string.Format(@"当前总支出:{0} CNY\t应收金额:{1} CNY\t已收金额:{2} CNY\t利润(收入-支出):{3} CNY\t", 
+                                    _totalExpenditure, _amountReceivable, _amountReceived, _profit);
                 return Ok(JsonView(true, "查询成功!", _view));
             }
             else

+ 65 - 0
OASystem/OASystem.Domain/Entities/Financial/Fin_GroupExtraCost.cs

@@ -0,0 +1,65 @@
+using System;
+using System.Collections.Generic;
+using System.Linq;
+using System.Text;
+using System.Threading.Tasks;
+
+namespace OASystem.Domain.Entities.Financial
+{
+    /// <summary>
+    /// 雷怡 2024-01-17 17:56
+    /// 财务 - 团组 超支费用
+    /// </summary>
+    /// </summary>
+    [SugarTable("Fin_GroupExtraCost")]
+    public class Fin_GroupExtraCost : EntityBase
+    {
+        /// <summary>
+        /// 团组Id
+        /// </summary>
+        [SugarColumn(IsNullable = true, ColumnDataType = "int")]
+        public int DiId { get; set; }
+
+        /// <summary>
+        /// 费用名称
+        /// </summary>
+        [SugarColumn(IsNullable = true, ColumnDataType = "varchar(50)")]
+        public string? PriceName { get; set; }
+
+        /// <summary>
+        /// 费用金额
+        /// </summary>
+        [SugarColumn(IsNullable = true, ColumnDataType = "decimal(10,2)")]
+        public decimal Price { get; set; }
+
+        /// <summary>
+        /// 团组Id(币种ID)
+        /// </summary>
+        [SugarColumn(IsNullable = true, ColumnDataType = "int")]
+        public int PriceCurrency { get; set; }
+
+        /// <summary>
+        /// 费用类型(类型ID)
+        /// </summary>
+        [SugarColumn(IsNullable = true, ColumnDataType = "int")]
+        public int PriceType { get; set; }
+
+        /// <summary>
+        /// 系数
+        /// </summary>
+        [SugarColumn(IsNullable = true, ColumnDataType = "decimal(10,2)")]
+        public decimal Coefficient { get; set; }
+
+        /// <summary>
+        /// 费用详细类型(类型ID)
+        /// </summary>
+        [SugarColumn(IsNullable = true, ColumnDataType = "int")]
+        public int PriceDetailType{ get; set; }
+
+        /// <summary>
+        /// 附件地址
+        /// </summary>
+        [SugarColumn(IsNullable = true, ColumnDataType = "varchar(100)")]
+        public string? FilePath { get; set; }
+    }
+}

+ 33 - 3
OASystem/OASystem.Domain/Entities/Groups/Grp_InvitationOfficialActivities.cs

@@ -46,13 +46,13 @@ namespace OASystem.Domain.Entities.Groups
         /// 邀请费用
         /// </summary>
         [SugarColumn(IsNullable = true, ColumnDataType = "decimal(10,2)")]
-        public decimal InviteCosts { get; set; }
+        public decimal InviteCost { get; set; }
 
         /// <summary>
-        /// 币种
+        /// 邀请费用币种
         /// </summary>
         [SugarColumn(IsNullable = true, ColumnDataType = "int")]
-        public int Currency { get; set; }
+        public int InviteCurrency { get; set; }
 
         /// <summary>
         /// 快递费用
@@ -60,6 +60,36 @@ namespace OASystem.Domain.Entities.Groups
         [SugarColumn(IsNullable = true, ColumnDataType = "decimal(10,2)")]
         public decimal SendCost { get; set; }
 
+        /// <summary>
+        /// 快递费用币种
+        /// </summary>
+        [SugarColumn(IsNullable = true, ColumnDataType = "int")]
+        public int SendCurrency { get; set; }
+
+        /// <summary>
+        /// 公务活动费
+        /// </summary>
+        [SugarColumn(IsNullable = true, ColumnDataType = "decimal(10,2)")]
+        public decimal EventsCost { get; set; }
+
+        /// <summary>
+        /// 公务活动费币种
+        /// </summary>
+        [SugarColumn(IsNullable = true, ColumnDataType = "int")]
+        public int EventsCurrency { get; set; }
+
+        /// <summary>
+        /// 公务翻译费
+        /// </summary>
+        [SugarColumn(IsNullable = true, ColumnDataType = "decimal(10,2)")]
+        public decimal TranslateCost { get; set; }
+
+        /// <summary>
+        /// 公务翻译费币种
+        /// </summary>
+        [SugarColumn(IsNullable = true, ColumnDataType = "int")]
+        public int TranslateCurrency { get; set; }
+
         /// <summary>
         /// 公务标识
         /// </summary>

+ 250 - 48
OASystem/OASystem.Domain/ViewModels/Statistics/GroupStatementView.cs

@@ -114,7 +114,7 @@ namespace OASystem.Domain.ViewModels.Statistics
         /// <summary>
         /// 费用总计 描述
         /// </summary>
-        public string? TotalStr { get; set; }
+        public string? FeeTotalStr { get; set; }
 
         /// <summary>
         /// 团组收入
@@ -155,7 +155,7 @@ namespace OASystem.Domain.ViewModels.Statistics
         /// <summary>
         /// 已收 Items
         /// </summary>
-        public List<Gsd_ProceedsReceivedView>? ProceedsReceiveds { get; set; }
+        public List<Gsd_ProceedsReceivedView>? ProceedsReceivedViews { get; set; }
 
         /// <summary>
         /// 已收 Str
@@ -165,17 +165,17 @@ namespace OASystem.Domain.ViewModels.Statistics
         /// <summary>
         /// 支出费用 Items
         /// </summary>
-        public List<dynamic>? IncurExpenses { get; set; } = new List<dynamic>();
+        public List<Gsd_ExtraCostsView>? ExtraCostsViews { get; set; } 
 
         /// <summary>
         /// 支出费用 Str
         /// </summary>
-        public string? IncurExpenseStr{ get; set; } = string.Empty;
+        public string? ExtraCostsStr { get; set; } 
 
         /// <summary>
         /// 收款退还 Items
         /// </summary>
-        public List<Gsd_PaymentRefundAndOtherMoneyView>? PaymentRefundAndOtherMoneys { get; set; }
+        public List<Gsd_PaymentRefundAndOtherMoneyView>? PaymentRefundAndOtherMoneyViews { get; set; }
 
         /// <summary>
         /// 收款退还 Str
@@ -200,7 +200,7 @@ namespace OASystem.Domain.ViewModels.Statistics
         /// <summary>
         /// 单价
         /// </summary>
-        public decimal Price { get; set; }
+        public decimal Price { get; set; } = 0.00M;
 
         /// <summary>
         /// 数量
@@ -230,12 +230,12 @@ namespace OASystem.Domain.ViewModels.Statistics
         /// <summary>
         /// 汇率
         /// </summary>
-        public decimal Rate { get; set; }
+        public decimal Rate { get; set; } = 1.0000M;
 
         /// <summary>
         /// 应收金额
         /// </summary>
-        public decimal ItemSumPrice { get; set; }
+        public decimal ItemSumPrice { get; set; } = 0.00M;
     }
 
     /// <summary>
@@ -255,7 +255,7 @@ namespace OASystem.Domain.ViewModels.Statistics
         /// <summary>
         /// 费用金额
         /// </summary>
-        public decimal Price { get; set; }
+        public decimal Price { get; set; } = 0.00M;
 
         /// <summary>
         /// 币种
@@ -293,6 +293,71 @@ namespace OASystem.Domain.ViewModels.Statistics
         public string? Remark { get; set; }
     }
 
+    /// <summary>
+    /// 超支费用
+    /// </summary>
+    public class Gsd_ExtraCostsView 
+    {
+        public int GECId { get; set; }
+        public int GECDiId { get; set; }
+
+        /// <summary>
+        /// 费用名称
+        /// </summary>
+        public string? PriceName { get; set; }
+
+        /// <summary>
+        /// 付款金额
+        /// </summary>
+        public decimal PayMoney { get; set; } = 0.00M;
+
+        /// <summary>
+        /// 付款币种
+        /// </summary>
+        public string? PaymentCurrency { get; set; }
+
+        /// <summary>
+        /// 当天汇率
+        /// </summary>
+        public decimal DayRate { get; set; } = 1.0000M;
+
+        /// <summary>
+        /// 人名币金额
+        /// </summary>
+        public decimal CNYPrice { get; set; } = 0.00M;
+
+        /// <summary>
+        /// 收款方
+        /// </summary>
+        public string? Payee { get; set; }
+
+        /// <summary>
+        /// 费用标识
+        /// -1 未选择 0 公转 1 私转
+        /// </summary>
+        public string? OrbitalPrivateTransfer { get; set; }
+
+        /// <summary>
+        /// 支付方式
+        /// </summary>
+        public string? PayWay { get; set; }
+
+        /// <summary>
+        /// 卡类型
+        /// </summary>
+        public string? CardType { get; set; }
+
+        /// <summary>
+        /// 付款状态
+        /// </summary>
+        public string? IsPay { get; set; }
+
+        /// <summary>
+        /// 申请人
+        /// </summary>
+        public string? Applicant { get; set; }
+    }
+
     /// <summary>
     /// 收款退还
     /// </summary>
@@ -320,17 +385,17 @@ namespace OASystem.Domain.ViewModels.Statistics
         /// <summary>
         /// 费用
         /// </summary>
-        public decimal Price { get; set; }
+        public decimal Price { get; set; } = 0.00M;
 
         /// <summary>
         /// 人名币金额
         /// </summary>
-        public decimal CNYPrice { get; set; }
+        public decimal CNYPrice { get; set; } = 0.00M;
 
         /// <summary>
         /// 当时汇率
         /// </summary>
-        public decimal ThisRate { get; set; }
+        public decimal ThisRate { get; set; } = 1.0000M;
 
         /// <summary>
         /// 收款方
@@ -375,7 +440,7 @@ namespace OASystem.Domain.ViewModels.Statistics
 
         public int PrDiId { get; set; }
         public string PrPriceName { get; set; }
-        public decimal PrPrice { get; set; }
+        public decimal PrPrice { get; set; } = 0.00M;
         public int PrCurrencyId { get; set; }
         public int PrPayType { get; set; }
         public int PrPriceType { get; set; }
@@ -431,6 +496,16 @@ namespace OASystem.Domain.ViewModels.Statistics
         /// </summary>
         public string? GroupVisaFeeStr { get; set; }
 
+        /// <summary>
+        /// 邀请/公务费用集合
+        /// </summary>
+        public List<GroupInvitationalFeeView>? GroupInvitationalFeeViews { get; set; }
+
+        /// <summary>
+        /// 邀请/公务费用描述
+        /// </summary>
+        public string? GroupInvitationalFeeStr { get; set; }
+
         /// <summary>
         /// 保险费用集合
         /// </summary>
@@ -440,6 +515,16 @@ namespace OASystem.Domain.ViewModels.Statistics
         /// 保险费用描述
         /// </summary>
         public string? GroupInsuranceFeeStr { get; set; }
+
+        /// <summary>
+        /// 增减款项费用集合
+        /// </summary>
+        public List<GroupDecreaseFeeView>? GroupDecreaseFeeViews { get; set; }
+
+        /// <summary>
+        /// 增减款项费用描述
+        /// </summary>
+        public string? GroupDecreaseFeeStr { get; set; }
     }
 
     /// <summary>
@@ -485,7 +570,7 @@ namespace OASystem.Domain.ViewModels.Statistics
         /// <summary>
         /// 单间价格
         /// </summary>
-        public decimal SingleRoomPrice { get; set; }
+        public decimal SingleRoomPrice { get; set; } = 0.00M;
 
         /// <summary>
         /// 单间数量
@@ -495,7 +580,7 @@ namespace OASystem.Domain.ViewModels.Statistics
         /// <summary>
         /// 双间价格
         /// </summary>
-        public decimal DoubleRoomPrice { get; set; }
+        public decimal DoubleRoomPrice { get; set; } = 0.00M;
 
         /// <summary>
         /// 双间数量
@@ -505,7 +590,7 @@ namespace OASystem.Domain.ViewModels.Statistics
         /// <summary>
         /// 套房价格
         /// </summary>
-        public decimal SuiteRoomPrice { get; set; }
+        public decimal SuiteRoomPrice { get; set; } = 0.00M;
 
         /// <summary>
         /// 套房数量
@@ -515,7 +600,7 @@ namespace OASystem.Domain.ViewModels.Statistics
         /// <summary>
         /// 其他房型价格
         /// </summary>
-        public decimal OtherRoomPrice { get; set; }
+        public decimal OtherRoomPrice { get; set; } = 0.00M;
 
         /// <summary>
         /// 其他房型数量
@@ -525,7 +610,7 @@ namespace OASystem.Domain.ViewModels.Statistics
         /// <summary>
         /// 早餐费用
         /// </summary>
-        public decimal BreakfastPrice { get; set; }
+        public decimal BreakfastPrice { get; set; } = 0.00M;
 
         /// <summary>
         /// 早餐币种
@@ -541,7 +626,7 @@ namespace OASystem.Domain.ViewModels.Statistics
         /// <summary>
         /// 地税
         /// </summary>
-        public decimal GovernmentRent { get; set; }
+        public decimal GovernmentRent { get; set; } = 0.00M;
 
         /// <summary>
         /// 地税币种
@@ -549,29 +634,29 @@ namespace OASystem.Domain.ViewModels.Statistics
         public string? GovernmentRentCurrency { get; set; }
 
         /// <summary>
-        /// 地税价格
+        /// 城市价格
         /// </summary>
-        public decimal CityTax { get; set; }
+        public decimal CityTax { get; set; } = 0.00M;
 
         /// <summary>
-        /// 地税币种
+        /// 城市币种
         /// </summary>
         public string? CityTaxCurrency { get; set; }
 
         /// <summary>
         /// 信用卡金额
         /// </summary>
-        public decimal PayMoney { get; set; }
+        public decimal PayMoney { get; set; } = 0.00M;
 
         /// <summary>
         /// 人名币金额
         /// </summary>
-        public decimal CNYPrice { get; set; }
-        
+        public decimal CNYPrice { get; set; } = 0.00M;
+
         /// <summary>
         /// 当天汇率
         /// </summary>
-        public decimal DayRate { get; set; }
+        public decimal DayRate { get; set; } = 1.0000M;
 
         /// <summary>
         /// 币种汇率
@@ -608,7 +693,7 @@ namespace OASystem.Domain.ViewModels.Statistics
         /// <summary>
         /// 操作人
         /// </summary>
-        public string? OpName { get; set; }
+        public string? Applicant { get; set; }
     }
 
     /// <summary>
@@ -637,7 +722,7 @@ namespace OASystem.Domain.ViewModels.Statistics
         /// <summary>
         /// 付款金额
         /// </summary>
-        public decimal PayMoney { get; set; }
+        public decimal PayMoney { get; set; } = 0.00M;
 
         /// <summary>
         /// 付款币种
@@ -647,22 +732,22 @@ namespace OASystem.Domain.ViewModels.Statistics
         /// <summary>
         /// 此次付款百分比
         /// </summary>
-        public decimal PayPercentage { get; set; }
+        public decimal PayPercentage { get; set; } = 0.00M;
 
         /// <summary>
         /// 已付款金额
         /// </summary>
-        public decimal AmountPaid { get; set; }
+        public decimal AmountPaid { get; set; } = 0.00M;
 
         /// <summary>
         /// 尾款
         /// </summary>
-        public decimal BalancePayment { get; set; }
+        public decimal BalancePayment { get; set; } = 0.00M;
 
         /// <summary>
         /// 当时汇率
         /// </summary>
-        public decimal DayRate { get; set; }
+        public decimal DayRate { get; set; } = 1.0000M;
 
         /// <summary>
         /// 付款人名币金额
@@ -699,7 +784,7 @@ namespace OASystem.Domain.ViewModels.Statistics
         /// <summary>
         /// 操作人
         /// </summary>
-        public string? OpName { get; set; }
+        public string? Applicant { get; set; }
     }
 
     /// <summary>
@@ -747,7 +832,7 @@ namespace OASystem.Domain.ViewModels.Statistics
         /// <summary>
         /// 付款金额
         /// </summary>
-        public decimal PayMoney { get; set; }
+        public decimal PayMoney { get; set; } = 0.00M;
 
         /// <summary>
         /// 付款币种
@@ -757,12 +842,12 @@ namespace OASystem.Domain.ViewModels.Statistics
         /// <summary>
         /// CNY 金额
         /// </summary>
-        public decimal CNYPrice { get; set; }
+        public decimal CNYPrice { get; set; } = 0.00M;
 
         /// <summary>
         /// 当时汇率
         /// </summary>
-        public decimal DayRate { get; set; }
+        public decimal DayRate { get; set; } = 1.0000M;
 
         /// <summary>
         /// 付款时间
@@ -799,7 +884,7 @@ namespace OASystem.Domain.ViewModels.Statistics
         /// <summary>
         /// 操作人
         /// </summary>
-        public string? OpName { get; set; }
+        public string? Applicant { get; set; }
     }
 
     /// <summary>
@@ -819,7 +904,7 @@ namespace OASystem.Domain.ViewModels.Statistics
         /// <summary>
         /// 付款金额
         /// </summary>
-        public decimal PayMoney { get; set; }
+        public decimal PayMoney { get; set; } = 0.00M;
 
         /// <summary>
         /// 付款币种
@@ -829,7 +914,7 @@ namespace OASystem.Domain.ViewModels.Statistics
         /// <summary>
         /// 当时汇率
         /// </summary>
-        public decimal DayRate { get; set; }
+        public decimal DayRate { get; set; } = 1.0000M;
 
         /// <summary>
         /// 付款时间
@@ -865,11 +950,128 @@ namespace OASystem.Domain.ViewModels.Statistics
         /// <summary>
         /// 操作人
         /// </summary>
-        public string? OpName { get; set; }
+        public string? Applicant { get; set; }
     }
 
     /// <summary>
-    /// 签证费用View
+    /// 邀请/公务费用View
+    /// </summary>
+    public class GroupInvitationalFeeView
+    {
+        public int IOAId { get; set; }
+
+        public int IOADiId { get; set; }
+
+        /// <summary>
+        /// 邀请方地区
+        /// </summary>
+        public string? InviterArea { get; set; }
+
+        /// <summary>
+        /// 邀请方
+        /// </summary>
+        public string? Inviter { get; set; }
+
+        /// <summary>
+        /// 邀请时间
+        /// </summary>
+        public string? InviteTime { get; set; }
+
+        /// <summary>
+        /// 邀请函费用
+        /// </summary>
+        public decimal InviteCost { get; set; } = 0.00M;
+
+        /// <summary>
+        /// 邀请函币种
+        /// </summary>
+        public string? InviteCurrency { get; set; }
+
+        /// <summary>
+        /// 快递费用
+        /// </summary>
+        public decimal SendCost { get; set; } = 0.00M;
+
+        /// <summary>
+        /// 快递币种
+        /// </summary>
+        public string? SendCurrency { get; set; }
+
+        /// <summary>
+        /// 活动费用
+        /// </summary>
+        public decimal EventsCost { get; set; } = 0.00M;
+
+        /// <summary>
+        /// 活动币种
+        /// </summary>
+        public string? EventsCurrency { get; set; }
+
+        /// <summary>
+        /// 翻译费用
+        /// </summary>
+        public decimal TranslateCost { get; set; } = 0.00M;
+
+        /// <summary>
+        /// 翻译币种
+        /// </summary>
+        public string? TranslateCurrency { get; set; }
+
+        /// <summary>
+        /// 付款金额
+        /// </summary>
+        public decimal PayMoney { get; set; } = 0.00M;
+
+        /// <summary>
+        /// 付款币种
+        /// </summary>
+        public string? PaymentCurrency { get; set; }
+
+        /// <summary>
+        /// 人名币费用
+        /// </summary>
+        public decimal CNYPrice { get; set; } = 0.00M;
+
+        /// <summary>
+        /// 当时币种汇率
+        /// </summary>
+        public string? CurrencyRateStr { get; set; }
+
+        /// <summary>
+        /// 收款方
+        /// </summary>
+        public string? Payee { get; set; }
+
+        /// <summary>
+        /// 付款时间
+        /// </summary>
+        public string? AuditGMDate { get; set; }
+
+        /// <summary>
+        /// 费用标识
+        /// -1 未选择 0 公转 1 私转
+        /// </summary>
+        public int OrbitalPrivateTransfer { get; set; }
+
+        /// <summary>
+        /// 支付方式
+        /// </summary>
+        public string? PayWay { get; set; }
+
+        /// <summary>
+        /// 是否支付
+        /// -1 未选择 0 未付款 1 已付款 
+        /// </summary>
+        public int IsPay { get; set; }
+
+        /// <summary>
+        /// 操作人
+        /// </summary>
+        public string? Applicant { get; set; }
+    }
+
+    /// <summary>
+    /// 保险费用View
     /// </summary>
     public class GroupInsuranceFeeView
     {
@@ -885,7 +1087,7 @@ namespace OASystem.Domain.ViewModels.Statistics
         /// <summary>
         /// 付款金额
         /// </summary>
-        public decimal PayMoney { get; set; }
+        public decimal PayMoney { get; set; } = 0.00M;
 
         /// <summary>
         /// 付款币种
@@ -895,7 +1097,7 @@ namespace OASystem.Domain.ViewModels.Statistics
         /// <summary>
         /// 人名币金额
         /// </summary>
-        public decimal CNYPrice { get; set; }
+        public decimal CNYPrice { get; set; } = 0.00M;
 
         /// <summary>
         /// 付款时间
@@ -927,7 +1129,7 @@ namespace OASystem.Domain.ViewModels.Statistics
         /// <summary>
         /// 操作人
         /// </summary>
-        public string? OpName { get; set; }
+        public string? Applicant { get; set; }
     }
 
     /// <summary>
@@ -946,7 +1148,7 @@ namespace OASystem.Domain.ViewModels.Statistics
         /// <summary>
         /// 付款金额
         /// </summary>
-        public decimal PayMoney { get; set; }
+        public decimal PayMoney { get; set; } = 0.00M;
 
         /// <summary>
         /// 付款币种
@@ -956,12 +1158,12 @@ namespace OASystem.Domain.ViewModels.Statistics
         /// <summary>
         /// 当时汇率
         /// </summary>
-        public decimal DayRate { get; set; }
+        public decimal DayRate { get; set; } = 1.0000M;
 
         /// <summary>
         /// 人名币金额
         /// </summary>
-        public decimal CNYPrice { get; set; }
+        public decimal CNYPrice { get; set; } = 0.00M;
 
         /// <summary>
         /// 付款时间
@@ -993,7 +1195,7 @@ namespace OASystem.Domain.ViewModels.Statistics
         /// <summary>
         /// 操作人
         /// </summary>
-        public string? OpName { get; set; }
+        public string? Applicant { get; set; }
 
     }
     #endregion

+ 1 - 0
OASystem/OASystem.Infrastructure/Repositories/Groups/HotelPriceRepository.cs

@@ -930,6 +930,7 @@ namespace OASystem.Infrastructure.Repositories.Groups
                     if (checkNoRes.Code == 0) 
                     {
                         checkNo = checkNoRes.Data;
+                        _HotelReservations.CheckNumber = checkNo;
                     }
                 }