Przeglądaj źródła

Merge branch 'develop' of http://132.232.92.186:3000/jiangjc/OASystemAPI into develop

Lyyyi 3 dni temu
rodzic
commit
0dac755a52

+ 3 - 3
OASystem/OASystem.Api/Controllers/GroupsController.cs

@@ -17048,9 +17048,9 @@ Order By CreateTime",dto.GroupId);
             // var groupInfo = await _sqlSugar.Queryable<Grp_DelegationInfo>().FirstAsync(it => it.Id == dto.DiId && it.IsDel == 0);
 
             // 默认币种显示
-            var reteInfos = await GeneralMethod.EnterExitCostLiveRate();
-            var visaData = await _visaFeeInfoRep.EnterExitCostVisaTips(dto.DiId);
-            var airData = await GeneralMethod.EntryAndExitTips(dto.DiId);
+            var reteInfos = await GeneralMethod.EnterExitCostLiveRate(); //实时汇率
+            var visaData = await _visaFeeInfoRep.EnterExitCostVisaTips(dto.DiId); //签证费用提示
+            var airData = await GeneralMethod.EntryAndExitTips(dto.DiId); //三公机票费用提示
             return Ok(JsonView(true, "查询成功!", new
             {
                 //GroupNameData = groupNameData.Data,

+ 1 - 1
OASystem/OASystem.Api/OAMethodLib/GeneralMethod.cs

@@ -7009,7 +7009,7 @@ AI 必须按顺序执行:
                     if (!string.IsNullOrEmpty(x.BlackCode))
                     {
                         var redisKeyName = string.Format("AirTripDesc_{0}_{1}", x.DiId, x.Id);
-                        tripDesc = await KIMIAirTripCodeRec(redisKeyName, x.BlackCode);
+                        //tripDesc = await KIMIAirTripCodeRec(redisKeyName, x.BlackCode);
                     }
 
 

+ 1 - 1
OASystem/OASystem.Api/appsettings.json

@@ -479,7 +479,7 @@
     }
   ],
   "KiMiSetting": {
-    "Model": "kimi-k2.5",
+    "Model": "kimi-k2.6",
     "BaseUrl": "https://api.moonshot.cn/v1",
     "Key": "sk-AY1Sv4rLnSUgGGHcC8SGSWYYKzGID7leZJcFfxAYozLC8dIc"
     //"Key": "sk-b6jgRbgU4ZtIFLkgMSjtHeU67q8OHzPTqIVuKuNLG50zd5IY" //leiyi kimi key

+ 2 - 0
OASystem/OASystem.Domain/Entities/Groups/Grp_AirTicketReservations.cs

@@ -349,6 +349,8 @@ public class RefundRecord
 /// </summary>
 public class AdditionalService
 {
+    //public int Id { get; set; }
+
     /// <summary>
     /// 服务类型Id(Sys_SetData)
     /// </summary>

+ 122 - 2
OASystem/OASystem.Infrastructure/Repositories/Groups/AirTicketResRepository.cs

@@ -1419,6 +1419,8 @@ public class AirTicketResRepository : BaseRepository<Grp_AirTicketReservations,
             })
             .ToListAsync();
 
+        //创建附加服务与CreditPayment的链接查询数据List,与dbAirTicketList匹配并赋值;
+
         if (!dbAirTicketList.Any())
         {
             groupInfo.FlightsDescription = string.Empty;
@@ -1469,6 +1471,17 @@ public class AirTicketResRepository : BaseRepository<Grp_AirTicketReservations,
 
                 var clientNameIds = ParseToIntListSafe(allClientNames);
                 var allCustTicketInfos = sortedGroup.SelectMany(x => x.Air.CustTicketInfos ?? new List<CustTicketInfo>()).ToList();
+                //foreach (var cust in allCustTicketInfos.Where(c => c?.AdditionalServices != null))
+                //{
+                //    foreach (var add in cust.AdditionalServices)
+                //    {
+                //        var cardInfo = sortedGroup.FirstOrDefault(x => x.Card?.CId == add.Id);
+                //        //if (cardInfo?.Card != null)
+                //        //{
+                //        add.PaymentCurrency = cardInfo.Card.PaymentCurrency;
+                //        //}
+                //    }
+                //}
 
                 // 汇总金额
                 decimal totalPayMoney = allCustTicketInfos?.Sum(c =>
@@ -1481,6 +1494,7 @@ public class AirTicketResRepository : BaseRepository<Grp_AirTicketReservations,
                     return ticketAndServices - refundFees;
                 }) ?? 0M;
 
+
                 // 多舱位状态精炼串联
                 var auditsStr = new StringBuilder();
                 foreach (var item in sortedGroup)
@@ -1549,7 +1563,7 @@ public class AirTicketResRepository : BaseRepository<Grp_AirTicketReservations,
                     //ConsumptionPatterns = primaryItem.Card.ConsumptionPatterns,
                     //ConsumptionDate = primaryItem.Card.ConsumptionDate,
                     //PayMoney = totalPayMoney,
-                    //PaymentCurrency = primaryItem.Card.PaymentCurrency,
+                    PaymentCurrency = primaryItem.Card.PaymentCurrency,
                     //CTDId = primaryItem.Card.CTDId,
                     //BankNo = primaryItem.Card.BankNo,
                     //CardholderName = primaryItem.Card.CardholderName,
@@ -1896,6 +1910,7 @@ public class AirTicketResRepository : BaseRepository<Grp_AirTicketReservations,
                     cardEntity.UpdateDate = DateTime.Now.ToString("yyyy-MM-dd HH:mm:ss");
                     cardEntity.PayMoney = currentSegmentPrice;
                     cardEntity.PayThenMoney = cardEntity.PayMoney;
+                    cardEntity.DayRate = tempCardSource?.DayRate ?? 0M;
 
                     decimal effectiveRate = cardEntity.DayRate > 0M ? cardEntity.DayRate : (item.OriginalItem?.DayRate > 0M ? item.OriginalItem.DayRate : 1M);
                     cardEntity.RMBPrice = cardEntity.PayMoney * effectiveRate;
@@ -1942,9 +1957,30 @@ public class AirTicketResRepository : BaseRepository<Grp_AirTicketReservations,
                             cardEntity_addi.CreateUserId = currUserId;
                             cardEntity_addi.CreateTime = DateTime.Now;
                             cardEntity_addi.UpdateDate = DateTime.Now.ToString("yyyy-MM-dd HH:mm:ss");
+
                             cardEntity_addi.PayMoney = addItem.Amount;
                             cardEntity_addi.PayThenMoney = addItem.Amount;
+                            cardEntity_addi.PayDId = addItem.PayDId;
+                            cardEntity_addi.ConsumptionDate = addItem.ConsumptionDate;
+                            cardEntity_addi.PaymentCurrency = addItem.PaymentCurrency;
+                            cardEntity_addi.CTDId = addItem.CTDId;
+                            cardEntity_addi.BankNo = addItem.BankNo;
+                            cardEntity_addi.CardholderName = addItem.CardholderName;
+                            cardEntity_addi.DayRate = addItem.DayRate;
+                            cardEntity_addi.CompanyBankNo = addItem.CompanyBankNo;
+                            cardEntity_addi.Payee = addItem.Payee;
+                            cardEntity_addi.OtherBankName = addItem.OtherBankName;
+                            cardEntity_addi.OtherSideNo = addItem.OtherSideNo;
+                            cardEntity_addi.OtherSideName = addItem.OtherSideName;
+                            cardEntity_addi.OrbitalPrivateTransfer = addItem.OrbitalPrivateTransfer;
+                            cardEntity_addi.Remark = addItem.Remark;
                             cardEntity_addi.IsAuditGM = 0;
+                            cardEntity_addi.AuditGMOperate = addItem.AuditGMOperate;
+                            cardEntity_addi.AuditGMDate = addItem.AuditGMDate;
+                            cardEntity_addi.ConsumptionPatterns = addItem.ConsumptionPatterns;
+
+                            decimal effectiveRate_addi = cardEntity_addi.DayRate > 0M ? cardEntity_addi.DayRate : (addItem?.DayRate > 0M ? addItem.DayRate : 1M);
+                            cardEntity_addi.RMBPrice = cardEntity_addi.PayMoney * effectiveRate_addi;
 
                             var cardId_addi = await _sqlSugar.Insertable(cardEntity_addi).ExecuteReturnIdentityAsync();
 
@@ -1954,6 +1990,23 @@ public class AirTicketResRepository : BaseRepository<Grp_AirTicketReservations,
                 // -------------------- 分支 B:编辑覆盖 --------------------
                 else
                 {
+                    //创建ResId对应的待删除附加服务费集合(指已进入数据库的附加服务费,并且存在某航段某旅客修改票号等导致匹配不上已存在的(未审核)附加服务费数据,导致C表数据存在冗余错误)
+                    List<Grp_AirAdditionServices> sourceAddList = await _sqlSugar.Queryable<Grp_AirAdditionServices>()
+                        .Where(x => x.ResId == dbAir.Id && x.IsDel == 0)
+                        .ToListAsync(); //当前ResId的所有未删除附加服务费
+
+                    List<Grp_AirAdditionServices> waitDelList = new List<Grp_AirAdditionServices>();
+                    //待删除附加服务费集合,后续会从中移除已更新或新增的附加服务费,剩余的就是需要删除的附加服务费
+
+                    foreach (var sourceAdd in sourceAddList) { 
+                        
+                        var checkcard = await _sqlSugar.Queryable<Grp_CreditCardPayment>()
+                            .Where(x => x.CId == sourceAdd.Id && x.CTable == sourceAdd.SysTypeId && x.IsDel == 0 && x.IsAuditGM % 2 == 0)
+                            .FirstAsync();
+                        if (checkcard != null) {
+                            waitDelList.Add(sourceAdd);
+                        }
+                    }
 
                     //添加附加服务费用表数据,以及C表对应费用审核数据
                     //需要预检查数据库中是否存在附加服务数据,如果存在则更新,不存在则新增
@@ -1962,6 +2015,7 @@ public class AirTicketResRepository : BaseRepository<Grp_AirTicketReservations,
                     foreach (var custItem in custList)
                     {
                         List<AdditionalService> addList = custItem.AdditionalServices;
+
                         //检查数据库中对应的附加服务数据集合
                         List<Grp_AirAdditionServices> dbAddList = await _sqlSugar.Queryable<Grp_AirAdditionServices>()
                             .Where(x => x.ResId == dbAir.Id && x.ClientId == custItem.ClientId && x.TicketCode == custItem.TicketCode && x.IsDel == 0)
@@ -1970,6 +2024,12 @@ public class AirTicketResRepository : BaseRepository<Grp_AirTicketReservations,
                         //添加、修改附加服务数据,并统计执行操作的附加服务数据集合与dbAddList比较,检查是否有多余的附加服务数据需要删除
                         foreach (var addItem in addList)
                         {
+                            var checkDel = waitDelList.FirstOrDefault(x => x.SysTypeId == addItem.ServiceTypeId && x.ClientId == custItem.ClientId && x.TicketCode == custItem.TicketCode);
+                            if (checkDel != null)
+                            {
+                                waitDelList.Remove(checkDel);//从待删除集合中移除,表示该附加服务数据仍存在于此次提交,不需要删除
+                            }
+
                             // 先检查数据库中是否存在该附加服务数据
                             var existingAddService = await _sqlSugar.Queryable<Grp_AirAdditionServices>()
                                 .Where(x => x.ResId == dbAir.Id && x.SysTypeId == addItem.ServiceTypeId && x.ClientId == custItem.ClientId && x.TicketCode == custItem.TicketCode && x.IsDel == 0)
@@ -1994,8 +2054,29 @@ public class AirTicketResRepository : BaseRepository<Grp_AirTicketReservations,
 
                                     //更新对应的信用卡付款表数据
                                     checkCard.UpdateDate = DateTime.Now.ToString("yyyy-MM-dd HH:mm:ss");
-                                    checkCard.PayMoney = addItem.Amount;
+                                    
                                     checkCard.PayThenMoney = addItem.Amount;
+
+                                    checkCard.PayDId = addItem.PayDId;
+                                    checkCard.ConsumptionDate = addItem.ConsumptionDate;
+                                    checkCard.PayMoney = addItem.Amount;
+                                    checkCard.PaymentCurrency = addItem.PaymentCurrency;
+                                    checkCard.CTDId = addItem.CTDId;
+                                    checkCard.BankNo = addItem.BankNo;
+                                    checkCard.CardholderName = addItem.CardholderName; 
+                                    checkCard.DayRate = addItem.DayRate;
+                                    checkCard.CompanyBankNo = addItem.CompanyBankNo;
+                                    checkCard.Payee = addItem.Payee;
+                                    checkCard.OtherBankName = addItem.OtherBankName;
+                                    checkCard.OtherSideNo = addItem.OtherSideNo;
+                                    checkCard.OtherSideName = addItem.OtherSideName;
+                                    checkCard.OrbitalPrivateTransfer = addItem.OrbitalPrivateTransfer;
+                                    checkCard.Remark = addItem.Remark;
+                                    checkCard.IsAuditGM = addItem.IsAuditGM;
+                                    checkCard.AuditGMOperate = addItem.AuditGMOperate;
+                                    checkCard.AuditGMDate = addItem.AuditGMDate;
+                                    checkCard.ConsumptionPatterns = addItem.ConsumptionPatterns;
+
                                     await _sqlSugar.Updateable(checkCard).ExecuteCommandAsync();
                                 }
                             }
@@ -2022,9 +2103,30 @@ public class AirTicketResRepository : BaseRepository<Grp_AirTicketReservations,
                                 cardEntity_addi.CreateUserId = currUserId;
                                 cardEntity_addi.CreateTime = DateTime.Now;
                                 cardEntity_addi.UpdateDate = DateTime.Now.ToString("yyyy-MM-dd HH:mm:ss");
+
                                 cardEntity_addi.PayMoney = addItem.Amount;
                                 cardEntity_addi.PayThenMoney = addItem.Amount;
+                                cardEntity_addi.PayDId = addItem.PayDId;
+                                cardEntity_addi.ConsumptionDate = addItem.ConsumptionDate;
+                                cardEntity_addi.PaymentCurrency = addItem.PaymentCurrency;
+                                cardEntity_addi.CTDId = addItem.CTDId;
+                                cardEntity_addi.BankNo = addItem.BankNo;
+                                cardEntity_addi.CardholderName = addItem.CardholderName;
+                                cardEntity_addi.DayRate = addItem.DayRate;
+                                cardEntity_addi.CompanyBankNo = addItem.CompanyBankNo;
+                                cardEntity_addi.Payee = addItem.Payee;
+                                cardEntity_addi.OtherBankName = addItem.OtherBankName;
+                                cardEntity_addi.OtherSideNo = addItem.OtherSideNo;
+                                cardEntity_addi.OtherSideName = addItem.OtherSideName;
+                                cardEntity_addi.OrbitalPrivateTransfer = addItem.OrbitalPrivateTransfer;
+                                cardEntity_addi.Remark = addItem.Remark;
                                 cardEntity_addi.IsAuditGM = 0;
+                                cardEntity_addi.AuditGMOperate = addItem.AuditGMOperate;
+                                cardEntity_addi.AuditGMDate = addItem.AuditGMDate;
+                                cardEntity_addi.ConsumptionPatterns = addItem.ConsumptionPatterns;
+
+                                decimal effectiveRate_addi = cardEntity_addi.DayRate > 0M ? cardEntity_addi.DayRate : (addItem?.DayRate > 0M ? addItem.DayRate : 1M);
+                                cardEntity_addi.RMBPrice = cardEntity_addi.PayMoney * effectiveRate_addi;
 
                                 var cardId_addi = await _sqlSugar.Insertable(cardEntity_addi).ExecuteReturnIdentityAsync();
                             }
@@ -2062,6 +2164,20 @@ public class AirTicketResRepository : BaseRepository<Grp_AirTicketReservations,
                         }
                     }
 
+                    //待删除附加服务费
+                    foreach (var waitDelItem in waitDelList)
+                    {
+                        await _sqlSugar.Updateable<Grp_AirAdditionServices>()
+                            .SetColumns(x => new Grp_AirAdditionServices { IsDel = 1, DeleteUserId = currUserId, DeleteTime = DateTime.Now.ToString() })
+                            .Where(x => x.Id == waitDelItem.Id)
+                            .ExecuteCommandAsync();
+                        //删除对应的信用卡付款表数据
+                        await _sqlSugar.Updateable<Grp_CreditCardPayment>()
+                            .SetColumns(x => new Grp_CreditCardPayment { IsDel = 1, DeleteUserId = currUserId, DeleteTime = DateTime.Now.ToString() })
+                            .Where(x => x.CId == waitDelItem.Id && x.CTable == waitDelItem.SysTypeId)
+                            .ExecuteCommandAsync();
+                    }
+
 
                     var dbCard = dbCardList.FirstOrDefault(x => x.CId == dbAir.Id);
 
@@ -2119,6 +2235,10 @@ public class AirTicketResRepository : BaseRepository<Grp_AirTicketReservations,
                         dbCard.Payee = submitCardInfo?.Payee;
                         dbCard.OrbitalPrivateTransfer = submitCardInfo?.OrbitalPrivateTransfer ?? 0;
                         dbCard.Remark = submitCardInfo?.Remark;
+                        dbCard.DayRate = submitCardInfo?.DayRate ?? 0M;
+
+                        decimal effectiveRate_addi = dbCard.DayRate > 0M ? dbCard.DayRate : (submitCardInfo?.DayRate > 0M ? submitCardInfo.DayRate : 1M);
+                        dbCard.RMBPrice = dbCard.PayMoney * effectiveRate_addi;
 
                         await _sqlSugar.Updateable(dbCard).ExecuteCommandAsync();