Selaa lähdekoodia

Merge branch 'develop' of http://132.232.92.186:3000/XinXiBu/OA2023 into develop

Lyyyi 2 viikkoa sitten
vanhempi
commit
1fa07b875c

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

@@ -5556,7 +5556,7 @@ FROM
                     {
                         Name = item.Key
                     },
-                    Child = item.Select(x => x.CalculationContent).ToList()
+                    Child = item.Select(x => x.CalculationContent).ToList() ?? new List<string>()
                 });
             }
 

+ 1 - 1
OASystem/OASystem.Api/OASystem.API.csproj

@@ -57,7 +57,7 @@
     <PackageReference Include="Serilog.AspNetCore" Version="8.0.0" />
     <PackageReference Include="Serilog.Sinks.Console" Version="6.0.0" />
     <PackageReference Include="Serilog.Sinks.File" Version="6.0.0" />
-    <PackageReference Include="SqlSugarCore" Version="5.1.3.35" />
+    <PackageReference Include="SqlSugarCore" Version="5.1.4.193" />
     <PackageReference Include="Swashbuckle.AspNetCore" Version="6.4.0" />
     <PackageReference Include="System.Data.OleDb" Version="8.0.0" />
     <PackageReference Include="System.Security.Permissions" Version="6.0.1" />

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

@@ -1,7 +1,7 @@
 {
   "ConnectionStrings": {
-    "OA2023DB": "server=132.232.92.186;uid=sa;pwd=Yjx@158291;database=OA2023DB;MultipleActiveResultSets=True;Connect Timeout=30;",
-    "OA2014DB": "server=132.232.92.186;uid=sa;pwd=Yjx@158291;database=OA2014;MultipleActiveResultSets=True;Connect Timeout=30;"
+    "OA2023DB": "server=132.232.92.186;uid=sa;pwd=Yjx@158291;database=OA2023DB;MultipleActiveResultSets=True;Connect Timeout=30;Encrypt=True;TrustServerCertificate=True",
+    "OA2014DB": "server=132.232.92.186;uid=sa;pwd=Yjx@158291;database=OA2014;MultipleActiveResultSets=True;Connect Timeout=30;Encrypt=True;TrustServerCertificate=True"
   },
   "ApiAccessTime": {
     "StartTime": "2025-01-09 15:00:00",

+ 186 - 45
OASystem/OASystem.Infrastructure/Repositories/Groups/DecreasePaymentsRepository.cs

@@ -157,6 +157,7 @@ namespace OASystem.Infrastructure.Repositories.Groups
             BeginTran();
             int id = 0;
             var grp_Decrease = _mapper.Map<Grp_DecreasePayments>(dto);
+
             //处理费用总计
             if (grp_Decrease.FeeTotal == 0.00M)
             {
@@ -164,25 +165,18 @@ namespace OASystem.Infrastructure.Repositories.Groups
             }
 
             List<TeamRateDescAddCurrencyIdView> teamRates = await _teamRateRep.PostGroupTeamRateItemByDiIdAndCTableId(1, dto.DiId, 98);
+            var teamRate = teamRates.Where(it => it.CurrencyId == grp_Decrease.Currency).FirstOrDefault();
+            if (teamRate == null)
+            {
+                return new JsonView() { Code = 400, Msg = $"添加失败!团组汇率未设置{_sqlSugar.Queryable<Sys_SetData>().First(it => it.IsDel == 0 && it.Id == grp_Decrease.Currency)?.Name ?? ""}该币种汇率!" };
+            }
+
             if (dto.Status == 1)//添加
             {
-                string selectSql = string.Format(@"select * from Grp_DecreasePayments where PriceName='{0}' and IsDel={1} and DiId={2}"
-                                                , dto.PriceName, 0, dto.DiId);
-                //var DecreasePayments = await _sqlSugar.SqlQueryable<Grp_DecreasePayments>(selectSql).FirstAsync();//查询是否存在
-                //if (DecreasePayments != null)
-                //{
-                //    return new JsonView() { Code = 400, Msg = "该数据已存在,请勿重复添加!" };
-                //}
-                //else//不存在,可添加
-                //{
                 id = await AddAsyncReturnId(grp_Decrease);
-                if (id < 1)
-                {
-                    RollbackTran();
-                    return new JsonView() { Code = 400, Msg = "添加失败!" };
-                }
 
-                //进行C表添加
+                #region C表赋值
+
                 Grp_CreditCardPayment C = new Grp_CreditCardPayment();
                 C.PayDId = dto.PayDId;
                 C.ConsumptionPatterns = "";
@@ -192,11 +186,7 @@ namespace OASystem.Infrastructure.Repositories.Groups
                 C.CardholderName = "";
                 C.PayMoney = grp_Decrease.FeeTotal;
                 C.PaymentCurrency = grp_Decrease.Currency;
-                //当天汇率
-                //if (!string.IsNullOrEmpty(hfRate.Value))
-                //    C.DayRate = hfRate.Value;
-                //else
-                //C.DayRate = "";
+               
                 C.CompanyBankNo = "";
                 C.OtherBankName = dto.OtherBankName;
                 C.OtherSideNo = dto.OtherSideNo;
@@ -231,27 +221,19 @@ namespace OASystem.Infrastructure.Repositories.Groups
                 C.ExceedBudget = 0;
                 //C.RMBPrice = 0.00f;
 
-                //设置该团组的汇率
-                var teamRate = teamRates.Where(it => it.CurrencyId == grp_Decrease.Currency).FirstOrDefault();
-                //Grp_TeamRate _TeamRate = _sqlSugar.Queryable<Grp_TeamRate>().First(a => a.DiId == grp_Decrease.DiId && a.IsDel == 0 && a.CTable == 98);
-                if (teamRate != null)
+                if (teamRate.CurrencyCode.Equals("CNY"))
                 {
-                    if (teamRate.CurrencyCode.Equals("CNY"))
-                    {
-                        C.DayRate = 1.0000M;
-                        C.RMBPrice = C.PayMoney;
-                    }
-                    else
-                    {
-                        C.DayRate = teamRate.Rate;
-                        C.RMBPrice = C.PayMoney * C.DayRate;
-                    }
+                    C.DayRate = 1.0000M;
+                    C.RMBPrice = C.PayMoney;
                 }
                 else
                 {
-                    RollbackTran();
-                    return new JsonView() { Code = 400, Msg = $"添加失败!团组汇率未设置{_sqlSugar.Queryable<Sys_SetData>().First(it => it.IsDel == 0 && it.Id == grp_Decrease.Currency)?.Name ?? ""}该币种汇率!" };
+                    C.DayRate = teamRate.Rate;
+                    C.RMBPrice = C.PayMoney * C.DayRate;
                 }
+
+                #endregion 
+
                 int cId = await _sqlSugar.Insertable(C).ExecuteReturnIdentityAsync();
                 if (cId > 1)
                 {
@@ -283,6 +265,89 @@ namespace OASystem.Infrastructure.Repositories.Groups
 
                     #endregion
 
+                    #region 世运会自动审核处理
+                    if (dto.DiId == 2590)
+                    {
+                        bool isAuto = false;
+                        var spPriceName = dto.PriceName.Split('-').ToArray();
+                        var expression = Expressionable.Create<Grp_GamesBudgetMaster>()
+                                                        .And(x => x.IsDel == 0);
+
+                        if (spPriceName.Length >= 2)
+                        {
+                            expression.And(x => x.T0 == spPriceName[0])
+                                      .And(x => x.CalculationContent == spPriceName[1]);
+
+                            var setting = _sqlSugar.Queryable<Grp_GamesBudgetMaster>()
+                                                    .First(expression.ToExpression());
+
+                            if (setting != null)
+                            {
+                                var dbList = _sqlSugar.Queryable<Grp_DecreasePayments>()
+                                            .LeftJoin<Grp_CreditCardPayment>((x, a) => x.Id == a.CId && a.IsDel == 0 && a.CTable == 98 && a.DIId == dto.DiId)
+                                            .Where((x, a) => x.IsDel == 0 && x.PriceName.Contains(spPriceName[0]) && x.PriceName.Contains(spPriceName[1]) && x.Id != id)
+                                            .Select((x, a) => new
+                                            {
+                                                x,
+                                                a.RMBPrice,
+                                            })
+                                            .ToList();
+
+                                //币种问题 (836 CNY)
+                                if (dto.Currency != 836)
+                                {
+                                    var rate = teamRates.Where(it => it.CurrencyId == grp_Decrease.Currency).FirstOrDefault();
+                                    if (rate != null)
+                                    {
+                                        //dto.Price *= rate.Rate;
+                                        dto.FeeTotal *= rate.Rate;
+                                    }
+                                }
+
+                                //现有金额
+                                var sumPrice = dbList.Sum(x => x.RMBPrice);
+
+                                //现有数量
+                                //var sumCount = dbList.Sum(x => x.Quantity);
+
+                                var availableAmount = setting.ItemTotal - sumPrice;
+                                //var availableQuantity = setting.Quantity - sumCount;
+
+                                if (availableAmount > 0)  // && availableQuantity > 0
+                                {
+
+                                    //单价计算
+                                    //var settingPrice = setting.UnitPrice;
+                                    //if (int.TryParse(setting.CycleUnit, out int cycleUnit))
+                                    //{
+                                    //    settingPrice *= cycleUnit;
+                                    //}
+
+                                    if (dto.FeeTotal <= availableAmount) //dto.Price <= settingPrice &&  && dto.Quantity <= setting.Quantity
+                                    {
+                                        isAuto = true;
+                                    }
+
+                                }
+                            }
+                        }
+
+                        if (isAuto)
+                        {
+                            _sqlSugar.Updateable<Grp_CreditCardPayment>()
+                                .SetColumns(a => new Grp_CreditCardPayment
+                                {
+                                    IsAuditGM = 3, //自动审核通过
+                                    AuditGMOperate = 4,
+                                    AuditGMDate = DateTime.Now.ToString("yyyy-MM-dd HH:mm:ss")
+                                })
+                                .Where(a => a.CId == id && a.CTable == 98 && a.DIId == 2590)
+                                .ExecuteCommand();
+                        }
+
+                    }
+                    #endregion
+
                     CommitTran();
                     var data = new { ccpId = cId, sign = 1, dataId = id };
                     return new JsonView() { Code = 200, Msg = "添加成功!", Data = data };
@@ -290,7 +355,6 @@ namespace OASystem.Infrastructure.Repositories.Groups
 
                 RollbackTran();
                 return new JsonView() { Code = 400, Msg = "添加失败!" };
-                // }
             }
             else if (dto.Status == 2)
             {
@@ -326,9 +390,6 @@ namespace OASystem.Infrastructure.Repositories.Groups
                 });
                 if (res)
                 {
-                    //设置该团组的汇率
-                    var teamRate = teamRates.Where(it => it.CurrencyId == grp_Decrease.Currency).FirstOrDefault();
-
                     if (teamRate != null)
                     {
                         if (teamRate.CurrencyCode.Equals("CNY"))
@@ -342,11 +403,6 @@ namespace OASystem.Infrastructure.Repositories.Groups
                             grp_CreditCardPayment.RMBPrice = grp_CreditCardPayment.PayMoney * grp_CreditCardPayment.DayRate;
                         }
                     }
-                    else
-                    {
-                        RollbackTran();
-                        return new JsonView() { Code = 400, Msg = "修改失败!" };
-                    }
 
                     //2025-04-07 第四次更改 PayDId == 72(刷卡) IsPay == 1
                     int isPay = 0;
@@ -370,8 +426,92 @@ namespace OASystem.Infrastructure.Repositories.Groups
                             //IsAuditGM = auto ? 3 : grp_CreditCardPayment.IsAuditGM
                         })
                         .ExecuteCommandAsync();
+
                     if (CTable > 0)
                     {
+                        #region 世运会自动审核处理
+                        if (dto.DiId == 2590)
+                        {
+                            bool isAuto = false;
+                            var spPriceName = dto.PriceName.Split('-').ToArray();
+                            var expression = Expressionable.Create<Grp_GamesBudgetMaster>()
+                                                            .And(x => x.IsDel == 0);
+
+                            if (spPriceName.Length >= 2)
+                            {
+                                expression.And(x => x.T0 == spPriceName[0])
+                                          .And(x => x.CalculationContent == spPriceName[1]);
+
+                                var setting = _sqlSugar.Queryable<Grp_GamesBudgetMaster>()
+                                                        .First(expression.ToExpression());
+
+                                if (setting != null)
+                                {
+                                    var dbList = _sqlSugar.Queryable<Grp_DecreasePayments>()
+                                                .LeftJoin<Grp_CreditCardPayment>((x,a) => x.Id == a.CId && a.IsDel == 0 && a.CTable == 98 && a.DIId == dto.DiId )
+                                                .Where((x, a) => x.IsDel == 0 && x.PriceName.Contains(spPriceName[0]) && x.PriceName.Contains(spPriceName[1]) && x.Id != dto.Id)
+                                                .Select((x, a) => new
+                                                {
+                                                    x,
+                                                    a.RMBPrice,
+                                                })
+                                                .ToList();
+
+                                    //币种问题 (836 CNY)
+                                    if (dto.Currency != 836)
+                                    {
+                                        var rate = teamRates.Where(it => it.CurrencyId == grp_Decrease.Currency).FirstOrDefault();
+                                        if (rate != null)
+                                        {
+                                            //dto.Price *= rate.Rate;
+                                            dto.FeeTotal *= rate.Rate;
+                                        }
+                                    }
+
+                                    //现有金额
+                                    var sumPrice = dbList.Sum(x => x.RMBPrice);
+                                    
+                                    //现有数量
+                                    //var sumCount = dbList.Sum(x => x.Quantity);
+
+                                    var availableAmount = setting.ItemTotal - sumPrice;
+                                    //var availableQuantity = setting.Quantity - sumCount;
+
+                                    if (availableAmount > 0)  // && availableQuantity > 0
+                                    {
+
+                                        //单价计算
+                                        //var settingPrice = setting.UnitPrice;
+                                        //if (int.TryParse(setting.CycleUnit, out int cycleUnit))
+                                        //{
+                                        //    settingPrice *= cycleUnit;
+                                        //}
+
+                                        if (dto.FeeTotal <= availableAmount) //dto.Price <= settingPrice &&  && dto.Quantity <= setting.Quantity
+                                        {
+                                            isAuto = true;
+                                        }
+
+                                    }
+                                }
+                            }
+
+                            if (isAuto)
+                            {
+                                _sqlSugar.Updateable<Grp_CreditCardPayment>()
+                                    .SetColumns(a => new Grp_CreditCardPayment
+                                    {
+                                        IsAuditGM = 3, //自动审核通过
+                                        AuditGMOperate = 4,
+                                        AuditGMDate = DateTime.Now.ToString("yyyy-MM-dd HH:mm:ss")
+                                    })
+                                    .Where(a => a.CId == dto.Id && a.CTable == 98 && a.DIId == 2590)
+                                    .ExecuteCommand();
+                            }
+
+                        }
+                        #endregion
+
                         CommitTran();
 
                         var data = new { ccpId = grp_CreditCardPayment.Id, sign = 2, dataId = grp_Decrease.Id };
@@ -380,6 +520,7 @@ namespace OASystem.Infrastructure.Repositories.Groups
                     }
                 }
             }
+
             RollbackTran();
             return new JsonView() { Code = 400, Msg = MsgTips.Fail };
         }