Przeglądaj źródła

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

yuanrf 2 miesięcy temu
rodzic
commit
6451ba01ad

+ 8 - 159
OASystem/OASystem.Api/Controllers/GroupsController.cs

@@ -95,10 +95,8 @@ namespace OASystem.API.Controllers
         private readonly VisaFeeInfoRepository _visaFeeInfoRep;
         private readonly TicketBlackCodeRepository _ticketBlackCodeRep;
         private readonly ThreeCodeRepository _threeCodeRepository;
-
         private readonly HotelInquiryRepository _hotelInquiryRep;
         private readonly FeeAuditRepository _feeAuditRep;
-
         private readonly VisaCommissionRepository _visaCommissionRep;
         private readonly ForeignReceivablesRepository _ffrRep;  //对外收款账单仓库
         private readonly OpinionaireRepository _opinionaireRep;  //对外收款账单仓库
@@ -5330,34 +5328,7 @@ FROM
             var excelTypeData = dataSource.Where(it => it.STid == 73).ToList(); //三公费用-Excel明细类型
             List<SetDataInfoView> _ExcelTypeData = _mapper.Map<List<SetDataInfoView>>(excelTypeData);
 
-            //默认币种显示
-            List<CurrencyInfo> _currencyInfos = new List<CurrencyInfo>()
-                {
-                    new CurrencyInfo (){ CurrencyCode="USD",CurrencyName = "美元",Rate = 7.5000M },
-                    new CurrencyInfo (){ CurrencyCode="EUR",CurrencyName = "欧元",Rate = 8.0000M },
-                    new CurrencyInfo (){ CurrencyCode="GBP",CurrencyName = "英镑",Rate = 9.5000M },
-                    new CurrencyInfo (){ CurrencyCode="JPY",CurrencyName = "日元",Rate = 0.0500M },
-                    new CurrencyInfo (){ CurrencyCode="HKD",CurrencyName = "港币",Rate = 0.9500M },
-
-                };
-
-            var _currencyRate = await _juHeApi.PostItemRateAsync(_currencyInfos.Select(it => it.CurrencyCode!).ToArray());
-            if (_currencyRate.Count > 0)
-            {
-                foreach (var item in _currencyInfos)
-                {
-                    var rateInfo = _currencyRate.Where(it => it.Name.Equals(item.CurrencyName)).FirstOrDefault();
-                    if (rateInfo != null)
-                    {
-                        decimal rate1 = Convert.ToDecimal(rateInfo.FSellPri) / 100.00M;
-
-                        if (rateInfo.Name.Equals("日元")) rate1 *= 1.3700M;
-                        else rate1 *= 1.035M;
-
-                        item.Rate = Convert.ToDecimal(rate1.ToString("#0.00")) + 0.01M;
-                    }
-                }
-            }
+            List<CurrencyInfo> _currencyInfos = await GeneralMethod.EnterExitCostInitRate();
 
             var viewPermissionData = await _enterExitCostRep.PermissionViewUsersAsync();
             return Ok(JsonView(true, "查询成功!", new
@@ -5385,34 +5356,7 @@ FROM
             var groupInfo = await _sqlSugar.Queryable<Grp_DelegationInfo>().FirstAsync(it => it.Id == dto.DiId && it.IsDel == 0);
 
             //默认币种显示
-            var _currencyInfos = _currencyInit;
-            var _currencyRate = await _juHeApi.PostItemRateAsync(_currencyInfos.Select(it => it.CurrencyCode!).ToArray());
-            List<dynamic> reteInfos = new List<dynamic>();
-            if (_currencyRate.Count > 0)
-            {
-                foreach (var item in _currencyInfos)
-                {
-                    var rateInfo = _currencyRate.Where(it => it.Name.Equals(item.CurrencyName)).FirstOrDefault();
-                    if (rateInfo != null)
-                    {
-                        item.Rate = Convert.ToDecimal((Convert.ToDecimal(rateInfo.FSellPri == null ? 0.00M : rateInfo.FSellPri) / 100.00M).ToString("#0.0000"));
-
-                        decimal rate1 = item.Rate;
-                        rate1 *= 1.03M;
-
-                        decimal rate2 = Convert.ToDecimal(rate1.ToString("#0.00")) + 0.01M;
-
-                        reteInfos.Add(new
-                        {
-                            currCode = item.CurrencyCode,
-                            currName = item.CurrencyName,
-                            rate = rate2,
-                            lastUpdateDt = rateInfo.Date + " " + rateInfo.Time
-                        });
-                    }
-                }
-            }
-
+            var reteInfos = await GeneralMethod.EnterExitCostLiveRate();
             var visaData = await _visaFeeInfoRep.EntryAndExitTips(dto.DiId);
             var airData = await _ticketBlackCodeRep.EntryAndExitTips(dto.DiId);
             return Ok(JsonView(true, "查询成功!", new
@@ -7543,33 +7487,7 @@ FROM
             var _ExcelTypeData = _mapper.Map<List<SetDataInfoView>>(excelTypeData);
 
             //默认币种显示
-            List<CurrencyInfo> _currencyInfos = new List<CurrencyInfo>()
-                {
-                    new CurrencyInfo (){ CurrencyCode="USD",CurrencyName = "美元",Rate = 7.5000M },
-                    new CurrencyInfo (){ CurrencyCode="EUR",CurrencyName = "欧元",Rate = 8.0000M },
-                    new CurrencyInfo (){ CurrencyCode="GBP",CurrencyName = "英镑",Rate = 9.5000M },
-                    new CurrencyInfo (){ CurrencyCode="JPY",CurrencyName = "日元",Rate = 0.0500M },
-                    new CurrencyInfo (){ CurrencyCode="HKD",CurrencyName = "港币",Rate = 0.9500M },
-
-                };
-
-            var _currencyRate = await _juHeApi.PostItemRateAsync(_currencyInfos.Select(it => it.CurrencyCode!).ToArray());
-            if (_currencyRate.Count > 0)
-            {
-                foreach (var item in _currencyInfos)
-                {
-                    var rateInfo = _currencyRate.Where(it => it.Name.Equals(item.CurrencyName)).FirstOrDefault();
-                    if (rateInfo != null)
-                    {
-                        decimal rate1 = Convert.ToDecimal(rateInfo.FSellPri) / 100.00M;
-
-                        if (rateInfo.Name.Equals("日元")) rate1 *= 1.3700M;
-                        else rate1 *= 1.035M;
-
-                        item.Rate = Convert.ToDecimal(rate1.ToString("#0.00")) + 0.01M;
-                    }
-                }
-            }
+            List<CurrencyInfo> _currencyInfos = await GeneralMethod.EnterExitCostInitRate();
 
             var viewPermissionData = await _enterExitCostDraftRep.PermissionViewUsersAsync();
 
@@ -7595,37 +7513,6 @@ FROM
         [ProducesResponseType(typeof(JsonView), StatusCodes.Status200OK)]
         public async Task<IActionResult> EnterExitCostDraftCorrelationTips(EnterExitCostDraftCorrelationTipsDto dto)
         {
-            //var groupInfo = await _sqlSugar.Queryable<Grp_DelegationInfo>().FirstAsync(it => it.Id == dto.DiId && it.IsDel == 0);
-
-            //默认币种显示
-            var _currencyInfos = _currencyInit;
-            var _currencyRate = await _juHeApi.PostItemRateAsync(_currencyInfos.Select(it => it.CurrencyCode!).ToArray());
-            List<dynamic> reteInfos = new List<dynamic>();
-            if (_currencyRate.Count > 0)
-            {
-                foreach (var item in _currencyInfos)
-                {
-                    var rateInfo = _currencyRate.Where(it => it.Name.Equals(item.CurrencyName)).FirstOrDefault();
-                    if (rateInfo != null)
-                    {
-                        item.Rate = Convert.ToDecimal((Convert.ToDecimal(rateInfo.FSellPri == null ? 0.00M : rateInfo.FSellPri) / 100.00M).ToString("#0.0000"));
-
-                        decimal rate1 = item.Rate;
-                        rate1 *= 1.03M;
-
-                        decimal rate2 = Convert.ToDecimal(rate1.ToString("#0.00")) + 0.01M;
-
-                        reteInfos.Add(new
-                        {
-                            currCode = item.CurrencyCode,
-                            currName = item.CurrencyName,
-                            rate = rate2,
-                            lastUpdateDt = rateInfo.Date + " " + rateInfo.Time
-                        });
-                    }
-                }
-            }
-
             //var visaData = await _visaFeeInfoRep.EntryAndExitTips(dto.DiId);
             //var airData = await _ticketBlackCodeRep.EntryAndExitTips(dto.DiId);
             return Ok(JsonView(true, "查询成功!", new
@@ -7633,7 +7520,7 @@ FROM
                 //GroupNameData = groupNameData.Data,
                 //visaData = visaData.Data,
                 //airData = airData.Data,
-                reteInfos = reteInfos
+                reteInfos = await GeneralMethod.EnterExitCostLiveRate()
             }));
         }
 
@@ -9039,26 +8926,7 @@ FROM
         /// <returns></returns>
         private async Task<List<CurrencyInfo>> EnterExitCostMobileGetCurrencyInit()
         {
-            //默认币种显示
-            var _currencyInfos = _currencyInit;
-
-            var _currencyRate = await _juHeApi.PostItemRateAsync(_currencyInfos.Select(it => it.CurrencyCode!).ToArray());
-            if (_currencyRate.Count > 0)
-            {
-                foreach (var item in _currencyInfos)
-                {
-                    var rateInfo = _currencyRate.Where(it => it.Name.Equals(item.CurrencyName)).FirstOrDefault();
-                    if (rateInfo != null)
-                    {
-                        decimal rate1 = Convert.ToDecimal(rateInfo.FSellPri) / 100.00M;
-                        rate1 *= 1.035M;
-
-                        item.Rate = Convert.ToDecimal(rate1.ToString("#0.00")) + 0.01M;
-                    }
-                }
-            }
-
-            return _currencyInfos;
+            return await GeneralMethod.EnterExitCostInitRate(); 
         }
 
         /// <summary>
@@ -10485,26 +10353,7 @@ WHERE
         /// <returns></returns>
         private async Task<List<CurrencyInfo>> EnterExitCostDraftMobileGetCurrencyInit()
         {
-            //默认币种显示
-            var _currencyInfos = _currencyInit;
-
-            var _currencyRate = await _juHeApi.PostItemRateAsync(_currencyInfos.Select(it => it.CurrencyCode!).ToArray());
-            if (_currencyRate.Count > 0)
-            {
-                foreach (var item in _currencyInfos)
-                {
-                    var rateInfo = _currencyRate.Where(it => it.Name.Equals(item.CurrencyName)).FirstOrDefault();
-                    if (rateInfo != null)
-                    {
-                        decimal rate1 = Convert.ToDecimal(rateInfo.FSellPri) / 100.00M;
-                        rate1 *= 1.035M;
-
-                        item.Rate = Convert.ToDecimal(rate1.ToString("#0.00")) + 0.01M;
-                    }
-                }
-            }
-
-            return _currencyInfos;
+            return await GeneralMethod.EnterExitCostInitRate();
         }
 
         /// <summary>
@@ -11773,8 +11622,8 @@ WHERE
 
             return Ok(JsonView(true, "查询成功!", new
             {
-                DefualtRates = currencyInfos,
-                LiveRates = liveRateInfos
+                InitRates = await GeneralMethod.EnterExitCostInitRate(),
+                LiveRates = await GeneralMethod.EnterExitCostLiveRate()
             }));
         }
 

+ 89 - 0
OASystem/OASystem.Api/OAMethodLib/GeneralMethod.cs

@@ -5280,6 +5280,95 @@ namespace OASystem.API.OAMethodLib
             builder.Write(footerLabel);
         }
 
+        #endregion
+
+        #region 出入境费用
+        #region 汇率
+
+        /// <summary>
+        /// 出入境费用 初始化汇率
+        /// </summary>
+        /// <returns></returns>
+        public static async Task<List<CurrencyInfo>> EnterExitCostInitRate()
+        {
+            //默认币种显示
+            List<CurrencyInfo> currencyInfos = new List<CurrencyInfo>()
+                {
+                    new CurrencyInfo (){ CurrencyCode="USD",CurrencyName = "美元",Rate = 7.5000M },
+                    new CurrencyInfo (){ CurrencyCode="EUR",CurrencyName = "欧元",Rate = 8.0000M },
+                    new CurrencyInfo (){ CurrencyCode="GBP",CurrencyName = "英镑",Rate = 9.5000M },
+                    new CurrencyInfo (){ CurrencyCode="JPY",CurrencyName = "日元",Rate = 0.0500M },
+                    new CurrencyInfo (){ CurrencyCode="HKD",CurrencyName = "港币",Rate = 0.9500M },
+
+                };
+
+            var currencyRate = await _juHeApi.PostItemRateAsync(currencyInfos.Select(it => it.CurrencyCode!).ToArray());
+            if (currencyRate.Count > 0)
+            {
+                foreach (var item in currencyInfos)
+                {
+                    var rateInfo = currencyRate.Where(it => it.Name.Equals(item.CurrencyName)).FirstOrDefault();
+                    if (rateInfo != null)
+                    {
+                        decimal rate1 = Convert.ToDecimal(rateInfo.FSellPri) / 100.00M;
+
+                        if (rateInfo.Name.Equals("日元")) rate1 = rate1 * 1; //rate1 *= 1.3700M;
+                        else rate1 *= 1.035M;
+
+                        item.Rate = rate1.TruncDecimals(4) + 0.01M;
+                    }
+                }
+            }
+            return currencyInfos;
+        }
+
+        /// <summary>
+        /// 出入境费用 实时汇率
+        /// </summary>
+        /// <returns></returns>
+        public static async Task<List<dynamic>> EnterExitCostLiveRate()
+        {
+            List<dynamic> reteInfos = new List<dynamic>();
+            //默认币种显示
+            List<CurrencyInfo> currencyInfos = new List<CurrencyInfo>()
+                {
+                    new CurrencyInfo (){ CurrencyCode="USD",CurrencyName = "美元",Rate = 7.5000M },
+                    new CurrencyInfo (){ CurrencyCode="EUR",CurrencyName = "欧元",Rate = 8.0000M },
+                    new CurrencyInfo (){ CurrencyCode="GBP",CurrencyName = "英镑",Rate = 9.5000M },
+                    new CurrencyInfo (){ CurrencyCode="JPY",CurrencyName = "日元",Rate = 0.0500M },
+                    new CurrencyInfo (){ CurrencyCode="HKD",CurrencyName = "港币",Rate = 0.9500M },
+
+                };
+
+            var currencyRate = await _juHeApi.PostItemRateAsync(currencyInfos.Select(it => it.CurrencyCode!).ToArray());
+            if (currencyRate.Count > 0)
+            {
+                foreach (var item in currencyInfos)
+                {
+                    var rateInfo = currencyRate.Where(it => it.Name.Equals(item.CurrencyName)).FirstOrDefault();
+                    if (rateInfo != null)
+                    {
+                        item.Rate = Convert.ToDecimal((Convert.ToDecimal(rateInfo.FSellPri == null ? 0.00M : rateInfo.FSellPri) / 100.00M).ToString("#0.0000"));
+
+                        decimal rate1 = item.Rate * 1.0300M;
+                        //rate1 += 0.01M;
+
+                        reteInfos.Add(new
+                        {
+                            currCode = item.CurrencyCode,
+                            currName = item.CurrencyName,
+                            rate = rate1.TruncDecimals(4),
+                            lastUpdateDt = rateInfo.Date + " " + rateInfo.Time
+                        });
+                    }
+                }
+            }
+            return reteInfos;
+        }
+
+        #endregion
+
+
         #endregion
     }
 }