Kaynağa Gözat

简化代码并优化格式

这些更改主要集中在代码格式的改进和优化上,以提高代码的可读性和一致性。具体来说:

1. 删除不必要的命名空间引用,例如 `EyeSoft.Collections.Generic`、`Microsoft.AspNetCore.SignalR` 等。
2. 修复了多处代码格式问题,包括空格、缩进、拼写错误等。
3. 将 `ToString("#0.00")` 替换为更简洁的 `$"{变量:#0.00}"` 格式。
4. 使用 C# 8.0 的索引和范围操作符 `[^1]` 替换了 `Substring` 方法。
5. 调整了多个 SQL 查询的格式,使代码更整洁。
6. 删除了多余的空行和注释,调整了注释的位置和内容。
7. 调整了变量声明和初始化的格式,修复了方法参数列表和返回值的格式问题。

在 `TaskNotification.cs` 中,移除了 `using ILogger = Microsoft.Extensions.Logging.ILogger;`。
在 `YouDaoApiTools.cs` 中:
  * 将 `HttpClient` 的初始化简化为 `new()`。
  * 移除了不必要的字符串初始化。
  * 使用简化的对象初始化语法。
  * 使用模式匹配简化了 `SHA256EncryptByte` 方法。
  * 使用简化的字符串截取语法。
  * 使用简化的集合初始化语法。
  * 将 `TransSync` 方法改为静态方法。
  * 简化了流的读取和写入操作。
在 `AirTicketResRepository.cs` 中:
  * 移除了 `using System.Net;`。
  * 将多个 `Result` 对象的初始化简化为 `var`。
  * 使用简化的字符串截取语法。
  * 使用简化的集合初始化语法。
  * 使用简化的对象初始化语法。
  * 将多个 `List` 对象的初始化简化为 `var`。
  * 将多个 `GroupNameView` 对象的初始化简化为 `var`。
  * 将多个 `HttpClient` 的初始化简化为 `var`。
  * 将 `TransSync` 方法改为静态方法。
  * 简化了流的读取和写入操作。
  * 简化了 `GetBeijingTime` 方法中的 `HttpClient` 初始化。
LEIYI 3 ay önce
ebeveyn
işleme
319cb4ce6c

+ 146 - 139
OASystem/OASystem.Api/Controllers/GroupsController.cs

@@ -3,11 +3,8 @@ using Aspose.Words;
 using Aspose.Words.Drawing;
 using Aspose.Words.Tables;
 using DiffMatchPatch;
-using EyeSoft.Collections.Generic;
 using Microsoft.AspNetCore.SignalR;
-using Microsoft.EntityFrameworkCore.Query.Internal;
 using NPOI.HSSF.UserModel;
-using NPOI.SS.Formula.Functions;
 using NPOI.SS.UserModel;
 using NPOI.SS.Util;
 using NPOI.XSSF.UserModel;
@@ -33,9 +30,6 @@ using OASystem.Domain.ViewModels.Groups;
 using OASystem.Infrastructure.Repositories.CRM;
 using OASystem.Infrastructure.Repositories.Financial;
 using OASystem.Infrastructure.Repositories.Groups;
-using OfficeOpenXml;
-using Org.BouncyCastle.Asn1.Ocsp;
-using Org.BouncyCastle.Utilities.Encoders;
 using Quartz.Util;
 using SqlSugar.Extensions;
 using System.Collections;
@@ -45,7 +39,6 @@ using System.Globalization;
 using System.IO.Compression;
 using static OASystem.API.OAMethodLib.JWTHelper;
 using static OASystem.Infrastructure.Repositories.Groups.AirTicketResRepository;
-using static OpenAI.GPT3.ObjectModels.SharedModels.IOpenAiModels;
 using Bookmark = Aspose.Words.Bookmark;
 using Cell = Aspose.Words.Tables.Cell;
 using Table = Aspose.Words.Tables.Table;
@@ -417,7 +410,7 @@ namespace OASystem.API.Controllers
                 .Where((di) => di.IsDel == 0 && !string.IsNullOrWhiteSpace(di.TeamName))
                 .WhereIF(!string.IsNullOrEmpty(dto.Search), (di) => di.TeamName.Contains(dto.Search))
                 .OrderBy((di) => new { id = SqlFunc.Desc(di.Id) })
-                .Select((di) => new { id = di.Id, name = di.TeamName, di.ClientName, di.VisitPNumber, di.VisitCountry, di.VisitDays, di.VisitStartDate, di.VisitEndDate,di.TourCode })
+                .Select((di) => new { id = di.Id, name = di.TeamName, di.ClientName, di.VisitPNumber, di.VisitCountry, di.VisitDays, di.VisitStartDate, di.VisitEndDate, di.TourCode })
                 .Distinct()
                 .ToPageListAsync(dto.PageIndex, dto.PageSize, total);
             watch.Stop();
@@ -436,14 +429,14 @@ namespace OASystem.API.Controllers
             var depDatas = await GeneralMethod.GroupOpAffiliationBranchInit();
 
             var rankDatas = await _sqlSugar.Queryable<Sys_SetData>().Where(x => x.IsDel == 0 && x.STid == 56).Select(x => new { x.Id, x.Name }).ToListAsync();
-            rankDatas.Insert(0, new { Id=0, Name ="全部" });
+            rankDatas.Insert(0, new { Id = 0, Name = "全部" });
             var _view = new
             {
                 depData = depDatas,
                 rankData = rankDatas
             };
             return Ok(JsonView(true, "查询成功!", _view));
-           
+
         }
 
         /// <summary>
@@ -486,12 +479,12 @@ namespace OASystem.API.Controllers
                        tj, tj, tj, tj, tj);
                 }
 
-                if (int.TryParse(dto.Rank,out int rankId))
+                if (int.TryParse(dto.Rank, out int rankId))
                 {
                     if (rankId > 0) sqlWhere += string.Format("And gdi.TeamLevSId = {0}", rankId);
                 }
 
-                
+
                 string sqlWhere1 = string.Empty;
                 if (!string.IsNullOrEmpty(dto.Department) && !dto.Department.Equals("全部"))
                 {
@@ -1264,7 +1257,7 @@ namespace OASystem.API.Controllers
         public async Task<IActionResult> GroupDel(GroupDelDto dto)
         {
             var diId = dto.Id;
-            if (diId < 1) return Ok(JsonView(false,MsgTips.Id));
+            if (diId < 1) return Ok(JsonView(false, MsgTips.Id));
             #region 删除 验证 (费用录入、出入境费用、收款账单)
             //var feeCount = _sqlSugar.Queryable<Grp_CreditCardPayment>().Where(x => x.IsDel == 0 && x.DIId == diId).Count();
             //var eccCount = _sqlSugar.Queryable<Grp_EnterExitCost>().Where(x => x.IsDel == 0 && x.DiId == diId).Count();
@@ -1676,7 +1669,7 @@ FROM
                 foreach (var item in dto.base64DataList)
                 {
                     string imageName = dto.imageName + ((DateTime.Now.Ticks - dt1970.Ticks) / 10000).ToString();
-                    string result = decodeBase64ToImage(item, imageName);
+                    string result = DecodeBase64ToImage(item, imageName);
 
                     if (!string.IsNullOrEmpty(result))
                     {
@@ -1705,7 +1698,7 @@ FROM
             return Ok(JsonView(true, msg));
         }
 
-        private string decodeBase64ToImage(string base64DataURL, string imgName)
+        private string DecodeBase64ToImage(string base64DataURL, string imgName)
         {
             string filename = "";//声明一个string类型的相对路径
 
@@ -2033,7 +2026,7 @@ FROM
                 exp.AndIF(_dto.AuditStatus != -1, it => it.IsAuditGM == _dto.AuditStatus);
                 exp.AndIF(_dto.Label != -1, it => it.CTable == _dto.Label);
 
-                var entityList = _groupRepository .Query<Grp_CreditCardPayment>(s => s.DIId == _dto.DiId && s.IsDel == 0 && s.CreateUserId > 0).Where(exp.ToExpression()).ToList();
+                var entityList = _groupRepository.Query<Grp_CreditCardPayment>(s => s.DIId == _dto.DiId && s.IsDel == 0 && s.CreateUserId > 0).Where(exp.ToExpression()).ToList();
 
                 var detailList = new List<Grp_CreditCardPaymentDetailView>();
 
@@ -2297,7 +2290,7 @@ FROM
                                 {
                                     var fee = hotelReservations.DoubleRoomPrice * hotelReservations.DoubleRoomCount * (int)hotel_days;
                                     roomFeestr1 += $"<span style='width:70px;display: inline-block;'></span>双人间:{hotelReservations.DoubleRoomPrice.ToString("#0.00")} * {hotelReservations.DoubleRoomCount}间 * {(int)hotel_days}晚 = {fee.ToString("#0.00")}<br/>";
-                                   // __isDouble = true;
+                                    // __isDouble = true;
                                     roomTotal += fee;
                                 }
                                 if (hotelReservations.SuiteRoomPrice > 0)
@@ -2315,7 +2308,7 @@ FROM
                                     roomTotal += fee;
                                 }
 
-                                if (roomFeestr1.Length > 0) roomFeeStr += roomFeestr1 + $"<span style='width:70px;display: inline-block;'></span>房费总金额:{roomTotal.ToString("#0.00")}"; 
+                                if (roomFeestr1.Length > 0) roomFeeStr += roomFeestr1 + $"<span style='width:70px;display: inline-block;'></span>房费总金额:{roomTotal.ToString("#0.00")}";
                                 else roomFeeStr += "  0.00 * 0";
 
 
@@ -2831,13 +2824,12 @@ FROM
                     }
                 }
 
-                _view.TotalStr1 = amountPayableStr.Substring(0, amountPayableStr.Length - 1);
-                _view.TotalStr2 = thisPaymentStr.Substring(0, thisPaymentStr.Length - 1);
-                _view.TotalStr3 = balancePaymentStr.Substring(0, balancePaymentStr.Length - 1);
-                _view.TotalStr4 = $"{auditedFundsStr.Substring(0, auditedFundsStr.Length - 1)}<br/>{unAuditedFundsStr.Substring(0, unAuditedFundsStr.Length - 1)}";
+                _view.TotalStr1 = amountPayableStr[..^1];
+                _view.TotalStr2 = thisPaymentStr[..^1];
+                _view.TotalStr3 = balancePaymentStr[..^1];
+                _view.TotalStr4 = $"{auditedFundsStr[..^1]}<br/>{unAuditedFundsStr[..^1]}";
                 //_view.TotalStr5 = unAuditedFundsStr.Substring(0, unAuditedFundsStr.Length - 1);
 
-
                 var _view1 = new
                 {
                     PageFuncAuth = pageFunAuthView,
@@ -5305,7 +5297,7 @@ FROM
         #endregion
 
         #region 团组经理模块 出入境费用
-        
+
         /// <summary>
         /// 团组模块 - 出入境费用 - 子项 地区更改为 nationalTravelFee 的id
         /// </summary>
@@ -5495,7 +5487,7 @@ FROM
         [ProducesResponseType(typeof(JsonView), StatusCodes.Status200OK)]
         public async Task<IActionResult> EnterExitCostSetViewPermissiion(EnterExitCostSetViewPermissiionDto dto)
         {
-            if (dto.CurrUserId < 1) return Ok(JsonView(false,MsgTips.UserId));
+            if (dto.CurrUserId < 1) return Ok(JsonView(false, MsgTips.UserId));
             if (dto.GroupId < 1) return Ok(JsonView(false, MsgTips.DiId));
             if (dto.UserIds.Length < 1) return Ok(JsonView(false, "请传入有效的userId;"));
 
@@ -5694,13 +5686,14 @@ FROM
                     .ToList();                                               //其他款项费用
 
                 var peiceItemCurrencys = new List<string>();
-                if (_DayAndCosts.Any()) {
-                    var currencyIds =  _DayAndCosts.Select(x => x.Currency).Distinct().ToList();
+                if (_DayAndCosts.Any())
+                {
+                    var currencyIds = _DayAndCosts.Select(x => x.Currency).Distinct().ToList();
                     if (currencyIds.Any()) peiceItemCurrencys.AddRange(currencyInit.Where(x => currencyIds.Contains(x.Id)).Select(x => x.Name).ToList());
                 }
                 if (dac5.Any()) peiceItemCurrencys.AddRange(dac5.Select(x => x.CurrencyStr).Distinct().ToList());
 
-                var peiceItemCurrencyInfos= new List<CurrencyInfo>();
+                var peiceItemCurrencyInfos = new List<CurrencyInfo>();
                 if (enterExitCostCurrencys.Any() && peiceItemCurrencys.Any())
                 {
                     peiceItemCurrencyInfos = enterExitCostCurrencys.Where(x => peiceItemCurrencys.Contains(x.CurrencyCode)).ToList();
@@ -7271,7 +7264,7 @@ FROM
         [HttpPost]
         public IActionResult DeleteOtherExpenses(EnterExitCostSubItemDelDto dto)
         {
-            var jw = JsonView(false,"删除失败!");
+            var jw = JsonView(false, "删除失败!");
 
             var data = new Grp_DayOtherPrice()
             {
@@ -7914,7 +7907,7 @@ FROM
                                 rateStr += $"{item.CurrencyName}({item.CurrencyCode}):{item.Rate.ToString("#0.0000")}  ";
                             }
                         }
-                        
+
                         string twoItemRemark = "备注:";
                         if (!string.IsNullOrEmpty(_EnterExitCosts.TwoItemRemark)) twoItemRemark += _EnterExitCosts.TwoItemRemark;
 
@@ -8263,7 +8256,7 @@ FROM
 
                         dic.Add("ReturnCodeAir", returnCodeLabel);
                         dic.Add("VisitStartDate", "-");
-                        dic.Add("VisitEndDate", "-"); 
+                        dic.Add("VisitEndDate", "-");
                         dic.Add("Day", "-");
                         dic.Add("VisitCountry", countryLabel);
                         dic.Add("ClientUnit", "-");
@@ -8494,7 +8487,7 @@ FROM
                         designer.SetDataSource("Group", "-");
                         designer.SetDataSource("ClientUnitTitle", "-");
                         designer.SetDataSource("Name", "-");
-                        designer.SetDataSource("VisitStartDate",  "-" );
+                        designer.SetDataSource("VisitStartDate", "-");
                         designer.SetDataSource("Day", "0");
                         designer.SetDataSource("ReturnCode", returnCodeLabel);
                         designer.SetDataSource("ReturnCodeAir", "-");
@@ -8592,29 +8585,29 @@ FROM
 
                         designer.SetDataSource("dac1totalPrice", dac1totalPrice.ToString("#0.00"));
                         designer.SetDataSource("dac2totalPrice", dac2totalPrice);
-                        designer.SetDataSource("cityTranffic", @$"其中:国外城市间机票费: {_EnterExitCosts.CityTranffic.ToString("#0.00")} 元");
-                        designer.SetDataSource("sumCityTranffic", @$"{_EnterExitCosts.CityTranffic.ToString("#0.00")} ");
+                        designer.SetDataSource("cityTranffic", @$"其中:国外城市间机票费: {_EnterExitCosts.CityTranffic:#0.00} 元");
+                        designer.SetDataSource("sumCityTranffic", @$"{_EnterExitCosts.CityTranffic:#0.00} ");
 
                         string cell4Str1 = string.Empty;
-                        if (_EnterExitCosts.SumJJC == 1) cell4Str1 += $"经济舱:{_EnterExitCosts.AirJJ.ToString("#0.00")} 元/人;";
-                        if (_EnterExitCosts.SumGWC == 1) cell4Str1 += $"公务舱:{_EnterExitCosts.AirGW.ToString("#0.00")} 元/人;";
-                        if (_EnterExitCosts.SumTDC == 1) cell4Str1 += $"公务舱:{_EnterExitCosts.AirTD.ToString("#0.00")} 元/人;";
+                        if (_EnterExitCosts.SumJJC == 1) cell4Str1 += $"经济舱:{_EnterExitCosts.AirJJ:#0.00} 元/人;";
+                        if (_EnterExitCosts.SumGWC == 1) cell4Str1 += $"公务舱:{_EnterExitCosts.AirGW:#0.00} 元/人;";
+                        if (_EnterExitCosts.SumTDC == 1) cell4Str1 += $"公务舱:{_EnterExitCosts.AirTD:#0.00} 元/人;";
                         string cell4Str = $"  4.国际旅费:{cell4Str1}";
 
                         string cellStr = $"  5.其他费用(";
-                        if (_EnterExitCosts.Visa > 0) cellStr += $"签证费:{_EnterExitCosts.Visa.ToString("#0.00")}元,";
-                        if (_EnterExitCosts.YiMiao > 0) cellStr += $"疫苗费:{_EnterExitCosts.YiMiao.ToString("#0.00")}元,";
-                        if (_EnterExitCosts.HeSuan > 0) cellStr += $"核酸费:{_EnterExitCosts.HeSuan.ToString("#0.00")}元,";
-                        if (_EnterExitCosts.Safe > 0) cellStr += $"保险费:{_EnterExitCosts.Safe.ToString("#0.00")}元,";
-                        if (_EnterExitCosts.Ticket > 0) cellStr += $"参展门票费:{_EnterExitCosts.Ticket.ToString("#0.00")}元,";
-                        if (_EnterExitCosts.Service > 0) cellStr += $"服务费:{_EnterExitCosts.Service.ToString("#0.00")}元,";
+                        if (_EnterExitCosts.Visa > 0) cellStr += $"签证费:{_EnterExitCosts.Visa:#0.00}元,";
+                        if (_EnterExitCosts.YiMiao > 0) cellStr += $"疫苗费:{_EnterExitCosts.YiMiao:#0.00}元,";
+                        if (_EnterExitCosts.HeSuan > 0) cellStr += $"核酸费:{_EnterExitCosts.HeSuan:#0.00}元,";
+                        if (_EnterExitCosts.Safe > 0) cellStr += $"保险费:{_EnterExitCosts.Safe:#0.00}元,";
+                        if (_EnterExitCosts.Ticket > 0) cellStr += $"参展门票费:{_EnterExitCosts.Ticket:#0.00}元,";
+                        if (_EnterExitCosts.Service > 0) cellStr += $"服务费:{_EnterExitCosts.Service:#0.00}元,";
 
                         #region 其他款项费用 增加位置:模板第5项其他费用字符串追加
 
                         var otherPriceTotal = dac5.Sum(x => x.SubTotal);
                         foreach (var otherInfo in dac5)
                         {
-                            cellStr += $"{otherInfo.itemName}:{otherInfo.SubTotal.ToString("#0.00")} 元,";
+                            cellStr += $"{otherInfo.itemName}:{otherInfo.SubTotal:#0.00} 元,";
                         }
 
                         #endregion
@@ -8632,11 +8625,11 @@ FROM
                         decimal pxFee = dac4.Sum(it => it.Cost);
                         decimal glvFee = _EnterExitCosts.OutsideJJPay + _EnterExitCosts.OutsideGWPay;
                         string celllastStr1 = "";
-                        if (dac1totalPrice > 0) celllastStr1 += $"住宿费 {dac1totalPrice.ToString("#0.00")} 元";
-                        if (dac2totalPrice > 0) celllastStr1 += $",伙食费和公杂费 {dac2totalPrice.ToString("#0.00")} 元";
-                        if (pxFee > 0) celllastStr1 += $",培训费 {pxFee.ToString("#0.00")} 元";
+                        if (dac1totalPrice > 0) celllastStr1 += $"住宿费 {dac1totalPrice:#0.00} 元";
+                        if (dac2totalPrice > 0) celllastStr1 += $",伙食费和公杂费 {dac2totalPrice:#0.00} 元";
+                        if (pxFee > 0) celllastStr1 += $",培训费 {pxFee:#0.00} 元";
                         celllastStr1 += $",国际旅费       元";
-                        if (otherFee > 0) celllastStr1 += $",其他费用 {otherFee.ToString("#0.00")} 元";
+                        if (otherFee > 0) celllastStr1 += $",其他费用 {otherFee:#0.00} 元";
 
                         string celllastStr = $"    经审核,{celllastStr1},本次出国经费预算合计为         元。其中:市本级安排      。";
 
@@ -8703,7 +8696,7 @@ FROM
                         //string missionLeader = "";  //团负责人默认接团客户名单第一个人
                         //string missionLeaderJob = "";//负责人job
                         //int groupNumber = 0; //团人数
-                        
+
                         dic.Add("MissionLeader", "-"); //团负责人
                         dic.Add("MissionLeaderJob", "-"); //团负责人job
                         dic.Add("GroupNumber", "0"); //团人数
@@ -8716,7 +8709,7 @@ FROM
                         NodeCollection allTables = doc.GetChildNodes(NodeType.Table, true);
                         Aspose.Words.Tables.Table table1 = allTables[0] as Aspose.Words.Tables.Table;
 
-                        
+
                         decimal hotelFeeTotal = dac1.Sum(it => it.SubTotal);//住宿费
                         dic.Add("HotelFeeTotal", hotelFeeTotal.ToString("#0.00"));
                         decimal mealsFeeTotal = dac2.Sum(it => it.SubTotal);//伙食费
@@ -8756,9 +8749,9 @@ FROM
 
                         if (_EnterExitCosts.SumJJC == 1 && _EnterExitCosts.SumGWC == 1)
                         {
-                            string airFeeTotalStr = string.Format(@$"经济舱:{_EnterExitCosts.AirJJ.ToString("#0.00")} 公务舱:{_EnterExitCosts.AirGW.ToString("#0.00")}");
+                            string airFeeTotalStr = string.Format(@$"经济舱:{_EnterExitCosts.AirJJ:#0.00} 公务舱:{_EnterExitCosts.AirGW:#0.00}");
                             dic.Add("AirFeeTotal", airFeeTotalStr);
-                            string feeTotalStr = string.Format(@$"经济舱:{_jjcFeeToatal.ToString("#0.00")} 公务舱:{_gwcFeeToatal.ToString("#0.00")}");
+                            string feeTotalStr = string.Format(@$"经济舱:{_jjcFeeToatal:#0.00} 公务舱:{_gwcFeeToatal:#0.00}");
                             dic.Add("FeeTotal", feeTotalStr);
                         }
 
@@ -8817,7 +8810,7 @@ FROM
             return _city;
         }
 
-        
+
         /// <summary>
         /// 团组模块 - 出入境费用-草稿 - 一键清空
         /// </summary>
@@ -8830,7 +8823,7 @@ FROM
             if (dto.Id < 1) return Ok(JsonView(false, "请传入有效的Id参数;"));
 
             var _view = await _enterExitCostDraftRep.OneClickEmpty(dto.Id, dto.UserId);
-            
+
             if (_view.Code == 0)
             {
                 return Ok(JsonView(true, "操作成功"));
@@ -8896,10 +8889,10 @@ FROM
             var jw = JsonView(false);
 
             var groupNameDatas = await _groupRepository.EnterExitCostGroupNameAsync();
-            var draftDatas = await _sqlSugar.Queryable<Grp_EnterExitCostDraft>().Where(x => x.IsDel == 0).OrderByDescending(x => x.CreateTime).Select(x => new {x.Id,x.DraftName }).ToListAsync();
+            var draftDatas = await _sqlSugar.Queryable<Grp_EnterExitCostDraft>().Where(x => x.IsDel == 0).OrderByDescending(x => x.CreateTime).Select(x => new { x.Id, x.DraftName }).ToListAsync();
             jw.Code = StatusCodes.Status200OK;
             jw.Msg = "操作成功!";
-            jw.Data = new { groupNameDatas= groupNameDatas.Data, draftNames = draftDatas };
+            jw.Data = new { groupNameDatas = groupNameDatas.Data, draftNames = draftDatas };
             return Ok(jw);
         }
 
@@ -8909,7 +8902,7 @@ FROM
         /// <param name="dto"></param>
         /// <returns></returns>
         [HttpPost]
-        public  async  Task<IActionResult> EnterExitCostDraftImportData(EnterExitCostDraftImportDataDto dto)
+        public async Task<IActionResult> EnterExitCostDraftImportData(EnterExitCostDraftImportDataDto dto)
         {
             int userId = dto.UserId,
               portId = dto.PortType,
@@ -8956,7 +8949,8 @@ FROM
                 {
                     foreach (var userId1 in userIds)
                     {
-                        permissions.Add(new Grp_EnterExitCostPermission() { 
+                        permissions.Add(new Grp_EnterExitCostPermission()
+                        {
                             GroupId = groupId,
                             UserId = userId1,
                             CreateUserId = dto.UserId
@@ -9031,7 +9025,7 @@ FROM
 
                 //发送通知
                 string fileUrl = (string)fileView.Data.GetType().GetProperty("Url").GetValue(fileView.Data, null);
-                
+
                 string md5Sign = GeneralMethod.Encrypt($"{insertId}&fileName={fileUrl}");
                 string url = string.Format("http://oa.pan-american-intl.com:4399/#/Sankunginfo?sign={0}&fileName={1}", insertId, fileUrl);
                 await AppNoticeLibrary.SendUserMsg_GroupShare_ToGM(groupId, new List<string>() { "208", "233", "21" }, dto.UserId, url);
@@ -9042,7 +9036,7 @@ FROM
             catch (Exception ex)
             {
                 _sqlSugar.RollbackTran();
-                return Ok(JsonView(false,ex.Message));
+                return Ok(JsonView(false, ex.Message));
             }
         }
 
@@ -9175,7 +9169,7 @@ FROM
 FROM
   Grp_DelegationInfo di
 WHERE
-  di.Isdel = 0 ",dto.CurrUserId);
+  di.Isdel = 0 ", dto.CurrUserId);
 
 
             var data = await _sqlSugar.SqlQueryable<EnterExitCostMobileGroupView>(sql)
@@ -9201,7 +9195,7 @@ WHERE
             RefAsync<int> total = 0;
             var data = await _sqlSugar.Queryable<Sys_SetData>()
                 .Where(x => x.IsDel == 0 && x.STid == 66)
-                .WhereIF(!string.IsNullOrEmpty(dto.CurrencyName), x => x.Name.ToLower().Contains(dto.CurrencyName)  || x.Remark.Contains(dto.CurrencyName))
+                .WhereIF(!string.IsNullOrEmpty(dto.CurrencyName), x => x.Name.ToLower().Contains(dto.CurrencyName) || x.Remark.Contains(dto.CurrencyName))
                 .Select(x => new
                 {
                     id = x.Id,
@@ -9235,7 +9229,8 @@ WHERE
             var eecRateData = (List<CurrencyInfo>?)CommonFun.GetCurrencyChinaToList(enterExitCostInfo.CurrencyRemark);
 
             groupOtherRateData = groupOtherRateData
-                .Select(x => new TeamRateDescAddCurrencyIdView {
+                .Select(x => new TeamRateDescAddCurrencyIdView
+                {
                     CurrencyId = x.CurrencyId,
                     CurrencyName = x.CurrencyName,
                     CurrencyCode = x.CurrencyCode,
@@ -9245,7 +9240,7 @@ WHERE
 
             var otherFeeTypeData = await _sqlSugar.Queryable<Sys_SetData>().Where(x => x.IsDel == 0 && x.STid == 92).Select(x => new { x.Id, x.Name }).ToListAsync();
 
-            return Ok(JsonView(true, "查询成功!", new { groupOtherRateData= groupOtherRateData, otherFeeTypeData = otherFeeTypeData }));
+            return Ok(JsonView(true, "查询成功!", new { groupOtherRateData = groupOtherRateData, otherFeeTypeData = otherFeeTypeData }));
         }
 
         /// <summary>
@@ -9258,7 +9253,7 @@ WHERE
         {
             if (!_portTypeData.Contains(dto.PortType)) return Ok(JsonView(false, MsgTips.Port));
             if (dto.GroupId < 1) return Ok(JsonView(false, MsgTips.DiId));
-            var tipsData = new List<int>() {1,2,3 };
+            var tipsData = new List<int>() { 1, 2, 3 };
             if (!tipsData.Contains(dto.TipsType)) return Ok(JsonView(false, $"请传入有效的TipsType参数;1 实时汇率;2 签证费用;3 机票费用;"));
 
             if (dto.TipsType == 1)
@@ -9344,8 +9339,8 @@ WHERE
                 .ToPageListAsync(dto.PageIndex, dto.PageSize, total);
 
             sw.Stop();
-            return Ok(JsonView(true, "查询成功!耗时:" + sw.ElapsedMilliseconds + "ms", data,total));
-           
+            return Ok(JsonView(true, "查询成功!耗时:" + sw.ElapsedMilliseconds + "ms", data, total));
+
         }
 
         /// <summary>
@@ -9394,18 +9389,18 @@ WHERE
                 .LeftJoin<Sys_SetData>((dac, ntf, sd) => dac.Currency == sd.Id)
                 .Where((dac, ntf, sd) => dac.IsDel == 0 && dac.DiId == dto.DiId)
                 .Select((dac, ntf, sd) => new DayAndCostMobileInfoView
-                        {
-                            SubId = dac.Id,
-                            DiId = dac.DiId,
-                            Type = dac.Type,
-                            Days = dac.Days,
-                            NationalTravelFeeId = dac.NationalTravelFeeId,
-                            Arae = $"{ntf.Country}-{ntf.City}",
-                            Cost = dac.Cost,
-                            Currency = dac.Currency,
-                            CurrencyName = sd.Name,
-                            SubTotal = dac.SubTotal,
-                        })
+                {
+                    SubId = dac.Id,
+                    DiId = dac.DiId,
+                    Type = dac.Type,
+                    Days = dac.Days,
+                    NationalTravelFeeId = dac.NationalTravelFeeId,
+                    Arae = $"{ntf.Country}-{ntf.City}",
+                    Cost = dac.Cost,
+                    Currency = dac.Currency,
+                    CurrencyName = sd.Name,
+                    SubTotal = dac.SubTotal,
+                })
                 .ToList();
 
             mobileInfo.ChoiceOneTotalCost = eecInfo.InsidePay;
@@ -9492,7 +9487,7 @@ WHERE
 
             if (eecInfo == null) return Ok(JsonView(false, $"出入境费用明细未录入!"));
             var subType = dto.SubType;
-                
+
             if (subType == 1) //1:境内费用
             {
                 var oneData = new ChoiceOneMobileSubInfoView()
@@ -9513,7 +9508,8 @@ WHERE
             }
             else if (subType == 2) //2:国际旅费
             {
-                var twoData = new ChoiceTwoMobileSubInfoView() {
+                var twoData = new ChoiceTwoMobileSubInfoView()
+                {
                     Id = eecInfo.Id,
                     ChoiceTwoJJ = eecInfo.SumJJC,
                     OutsideJJPay = eecInfo.OutsideJJPay,
@@ -9550,7 +9546,8 @@ WHERE
                     })
                      .ToArray();
 
-                var data = new ChoiceMobileSubInfo3To6View() {
+                var data = new ChoiceMobileSubInfo3To6View()
+                {
                     ParentId = eecInfo.Id,
                     Choice = eecInfo.ChoiceThree,
                     TotalCost = dayAndCostDatas.Sum(x => x.SubTotal),
@@ -9694,7 +9691,7 @@ WHERE
         /// <param name="diid"></param>
         /// <param name="id"></param>
         /// <param name="currUserId"></param>
-        private async Task EnterExitCostMobileOpNotice(int diid, int id,int currUserId)
+        private async Task EnterExitCostMobileOpNotice(int diid, int id, int currUserId)
         {
             try
             {
@@ -9729,12 +9726,13 @@ WHERE
         /// <param name="currUserId"></param>
         /// <returns></returns>
         /// <exception cref="CustomException"></exception>
-        private async Task<int> EnterExitCostVerifyIsNull(int diId,int currUserId)
+        private async Task<int> EnterExitCostVerifyIsNull(int diId, int currUserId)
         {
             var parentId = 0;
 
             var info = await _sqlSugar.Queryable<Grp_EnterExitCost>().Where(x => x.IsDel == 0 && x.DiId == diId).OrderByDescending(x => x.CreateTime).FirstAsync();
-            if (info != null) {
+            if (info != null)
+            {
 
                 parentId = info.Id;
             }
@@ -9835,9 +9833,10 @@ WHERE
             var eecCurrencys = dto.Currencys.Select(x => x.CurrencyCode.ToUpper()).ToList();
 
             var dayCosts = _sqlSugar.Queryable<Grp_DayAndCost>()
-                .LeftJoin<Sys_SetData>((dac,sd) => dac.Currency == sd.Id)
+                .LeftJoin<Sys_SetData>((dac, sd) => dac.Currency == sd.Id)
                 .Where((dac, sd) => dac.IsDel == 0 && dac.DiId == dto.DiId)
-                .Select((dac, sd) => new { 
+                .Select((dac, sd) => new
+                {
                     dac.Id,
                     dac.DiId,
                     CurrencyCode = sd.Name,
@@ -9847,7 +9846,8 @@ WHERE
             var dayOtherCosts = _sqlSugar.Queryable<Grp_DayOtherPrice>()
                 .LeftJoin<Sys_SetData>((dop, sd) => dop.Currency == sd.Id)
                 .Where((dop, sd) => dop.IsDel == 0 && dop.Diid == dto.DiId)
-                .Select((dop, sd) => new {
+                .Select((dop, sd) => new
+                {
                     dop.Id,
                     dop.Diid,
                     CurrencyCode = sd.Name,
@@ -9865,7 +9865,8 @@ WHERE
 
                     foreach (var dcSub in dc)
                     {
-                        opDayCosts.Add(new Grp_DayAndCost() { 
+                        opDayCosts.Add(new Grp_DayAndCost()
+                        {
                             Id = dcSub.Id,
                             DiId = dcSub.DiId,
                             Cost = dcSub.Cost,
@@ -9897,7 +9898,7 @@ WHERE
                             Diid = dcSub.Diid,
                             Cost = dcSub.Cost,
                             SubTotal = dcSub.Cost * thisRate,
-                           // Remark = $"[移动端->汇率变更时费用变更][变更信息:currency:{thisCurrency}、opDatetime:{DateTime.Now.ToString("yyyy-MM-dd HH:mm:ss")}、opUserId:{dto.CurrUserId}]"
+                            // Remark = $"[移动端->汇率变更时费用变更][变更信息:currency:{thisCurrency}、opDatetime:{DateTime.Now.ToString("yyyy-MM-dd HH:mm:ss")}、opUserId:{dto.CurrUserId}]"
                         });
                     }
                 }
@@ -9910,7 +9911,7 @@ WHERE
             #endregion
 
             //消息通知
-            await EnterExitCostMobileOpNotice(dto.DiId, id,dto.CurrUserId);
+            await EnterExitCostMobileOpNotice(dto.DiId, id, dto.CurrUserId);
             //汇率信息记录
             await GeneralMethod.RateRecordSave(dto.CurrUserId, id, "出入境费用");
 
@@ -9947,7 +9948,8 @@ WHERE
                 if (!isEdit) return Ok(JsonView(false, msg));
 
                 var upd = await _sqlSugar.Updateable(checkboxInfo)
-                    .UpdateColumns(x => new { 
+                    .UpdateColumns(x => new
+                    {
                         x.ChoiceOne,
                         x.ChoiceTwo,
                         x.SumJJC,
@@ -9975,7 +9977,7 @@ WHERE
         [ProducesResponseType(typeof(JsonView), StatusCodes.Status200OK)]
         public async Task<IActionResult> EnterExitCostMobileOpSingleCheckbox(EnterExitCostMobileOpSingleCheckboxDto dto)
         {
-            int itemTypeId = dto.ItemType, id = dto.Id, currUserId = dto.CurrUserId, diId = dto.DiId,isSelected = dto.IsSelected;
+            int itemTypeId = dto.ItemType, id = dto.Id, currUserId = dto.CurrUserId, diId = dto.DiId, isSelected = dto.IsSelected;
             var itemTypes = new List<int>() { 3, 4, 5, 6, 7 };
 
             if (!_portTypeData.Contains(dto.PortType)) return Ok(JsonView(false, MsgTips.Port));
@@ -9983,7 +9985,8 @@ WHERE
             if (currUserId < 1) return Ok(JsonView(false, MsgTips.UserId));
             if (!itemTypes.Contains(itemTypeId)) return Ok(JsonView(false, $"请传入要修改的项类型;3:住宿费; 4:伙食费; 5:公杂费; 6:培训费;7:其他;"));
 
-            var checkboxInfo = new Grp_EnterExitCost() {
+            var checkboxInfo = new Grp_EnterExitCost()
+            {
                 Id = id,
                 DiId = diId,
                 CreateUserId = currUserId
@@ -10057,7 +10060,8 @@ WHERE
                 if (!isEdit) return Ok(JsonView(false, msg));
 
                 var upd = await _sqlSugar.Updateable(info)
-                    .UpdateColumns(x => new {
+                    .UpdateColumns(x => new
+                    {
                         x.ChoiceOne,
                         x.InsidePay,
                         x.VisaRemark,
@@ -10111,7 +10115,7 @@ WHERE
             if (id <= 0) //add 
             {
                 info.CreateUserId = dto.CurrUserId;
-                info.CurrencyRemark = JsonConvert.SerializeObject(await EnterExitCostMobileGetCurrencyInit()); 
+                info.CurrencyRemark = JsonConvert.SerializeObject(await EnterExitCostMobileGetCurrencyInit());
                 var addId = await _sqlSugar.Insertable(info).ExecuteReturnIdentityAsync();
 
                 if (addId <= 0) return Ok(JsonView(false));
@@ -10124,7 +10128,8 @@ WHERE
                 if (!isEdit) return Ok(JsonView(false, msg));
 
                 var upd = await _sqlSugar.Updateable(info)
-                    .UpdateColumns(x => new {
+                    .UpdateColumns(x => new
+                    {
                         x.SumJJC,
                         x.OutsideJJPay,
                         x.SumGWC,
@@ -10139,7 +10144,7 @@ WHERE
                     })
                     .Where(x => x.Id == id)
                     .ExecuteCommandAsync();
-                if (upd <1) return Ok(JsonView(false));
+                if (upd < 1) return Ok(JsonView(false));
             }
 
             jjcItemTotal = info.AirJJ + info.CityTranffic;
@@ -10179,17 +10184,17 @@ WHERE
 
             var infos1 = _mapper.Map<List<Grp_DayAndCost>>(dto.Infos);
             var infos = infos1.Select(x => new Grp_DayAndCost
-                {
-                    Id = x.Id,
-                    DiId = dto.DiId,
-                    Type = dto.FeeType,
-                    Days = x.Days,
-                    NationalTravelFeeId = x.NationalTravelFeeId,
-                    Cost = x.Cost,
-                    Currency = x.Currency,
-                    SubTotal = x.SubTotal,
-                    CreateUserId = dto.CurrUserId
-                })
+            {
+                Id = x.Id,
+                DiId = dto.DiId,
+                Type = dto.FeeType,
+                Days = x.Days,
+                NationalTravelFeeId = x.NationalTravelFeeId,
+                Cost = x.Cost,
+                Currency = x.Currency,
+                SubTotal = x.SubTotal,
+                CreateUserId = dto.CurrUserId
+            })
                 .ToList();
 
             var adds = infos.Where(x => x.Id <= 0).ToList();
@@ -10199,7 +10204,7 @@ WHERE
             {
                 var add = await _sqlSugar.Insertable(adds).ExecuteCommandAsync();
                 if (add < 1) return Ok(JsonView(false));
-                
+
             }
             if (upds.Count > 0)
             {
@@ -10242,7 +10247,7 @@ WHERE
             if (dto.CurrUserId < 1) return Ok(JsonView(false, MsgTips.UserId));
 
             if (!feeTypeIds.Contains(dto.FeeType)) return Ok(JsonView(false, "请传入有效的费用类型!"));
-           
+
             var subInfo = _mapper.Map<Grp_DayAndCost>(dto);
             subInfo.Id = subId;
             subInfo.DiId = dto.DiId;
@@ -10282,7 +10287,7 @@ WHERE
                     .ExecuteCommandAsync();
                 if (subUpd < 1) return Ok(JsonView(false));
             }
-           
+
             var itemTotal = _sqlSugar.Queryable<Grp_DayAndCost>().Where(x => x.IsDel == 0 && x.DiId == dto.DiId && x.Type == feeType).Sum(x => x.SubTotal);
 
             await EnterExitCostMobileOpNotice(dto.DiId, parentId, dto.CurrUserId);
@@ -10444,9 +10449,9 @@ WHERE
 
             var del = _sqlSugar.Updateable(data).UpdateColumns(it => new { it.IsDel, it.DeleteUserId, it.DeleteTime }).ExecuteCommand();
 
-            if (del > 0) return Ok(JsonView(true,"删除成功!"));
+            if (del > 0) return Ok(JsonView(true, "删除成功!"));
 
-            return Ok(JsonView(false,"删除失败!"));
+            return Ok(JsonView(false, "删除失败!"));
         }
 
         #endregion
@@ -10511,7 +10516,7 @@ WHERE
                 WordTypeData = _WordTypeData,
                 ExcelTypeData = _ExcelTypeData,
                 CurrencyInit = _currencyInfos,
-                viewPermissionData= viewPermissionData
+                viewPermissionData = viewPermissionData
             }));
         }
 
@@ -11144,7 +11149,7 @@ WHERE
                             ParentId = dcSub.ParentId,
                             Cost = dcSub.Cost,
                             SubTotal = dcSub.Cost * thisRate,
-                            Remark = $"[移动端->汇率变更时费用变更][变更信息:currency:{thisCurrency}、opDatetime:{DateTime.Now.ToString("yyyy-MM-dd HH:mm:ss")}、opUserId:{dto.CurrUserId}]"
+                            Remark = $"[移动端->汇率变更时费用变更][变更信息:currency:{thisCurrency}、opDatetime:{DateTime.Now:yyyy-MM-dd HH:mm:ss}、opUserId:{dto.CurrUserId}]"
                         });
                     }
                 }
@@ -11299,7 +11304,7 @@ WHERE
         [ProducesResponseType(typeof(JsonView), StatusCodes.Status200OK)]
         public async Task<IActionResult> EnterExitCostDraftMobileOpStep1(PostEnterExitCostDraftMobileOpStep1Dto dto)
         {
-            int id = dto.DraftId,currUserId = dto.CurrUserId;
+            int id = dto.DraftId, currUserId = dto.CurrUserId;
             if (!_portTypeData.Contains(dto.PortType)) return Ok(JsonView(false, MsgTips.Port));
             if (id < 1) return Ok(JsonView(false, MsgTips.DiId));
             if (currUserId < 1) return Ok(JsonView(false, MsgTips.UserId));
@@ -11614,7 +11619,7 @@ WHERE
         [ProducesResponseType(typeof(JsonView), StatusCodes.Status200OK)]
         public async Task<IActionResult> EnterExitCostDraftMobileOpSingleStep7(PostEnterExitCostDraftMobileOpSingleStep7Dto dto)
         {
-            int subId = dto.SubId,id = dto.DarftId;
+            int subId = dto.SubId, id = dto.DarftId;
             if (!_portTypeData.Contains(dto.PortType)) return Ok(JsonView(false, MsgTips.Port));
             if (id < 1) return Ok(JsonView(false, MsgTips.Id));
             if (dto.CurrUserId < 1) return Ok(JsonView(false, MsgTips.UserId));
@@ -11851,8 +11856,8 @@ WHERE
                 var diId = dto.DiId;
                 var groupInfo = await _groupRepository.Query(x => x.Id == diId).FirstAsync();
                 var ccpInfo = await _sqlSugar.Queryable<Grp_CreditCardPayment>().Where(x => x.Id == ccpId).FirstAsync();
-                if (dto.Status == 1) content = $"[新增-签证费用录入({groupInfo?.TeamName ?? "-"})]一项费用:{(ccpInfo.PayMoney * ccpInfo.DayRate).ToString("#0.00")} CNY;";
-                else if (dto.Status == 2) content = $"[更新-签证费用录入({groupInfo?.TeamName ?? "-"})]一项费用:{(ccpInfo.PayMoney * ccpInfo.DayRate).ToString("#0.00")} CNY;";
+                if (dto.Status == 1) content = $"[新增-签证费用录入({groupInfo?.TeamName ?? "-"})]一项费用:{(ccpInfo.PayMoney * ccpInfo.DayRate):#0.00} CNY;";
+                else if (dto.Status == 2) content = $"[更新-签证费用录入({groupInfo?.TeamName ?? "-"})]一项费用:{(ccpInfo.PayMoney * ccpInfo.DayRate):#0.00} CNY;";
 
                 await GeneralMethod.MessageIssueAndNotification(MessageTypeEnum.GroupBusinessOperations, title, content, userIds, diId);
                 PageParam_PriceAuditH5 h5 = new PageParam_PriceAuditH5() { diid = diId.ToString(), uid = "21" };
@@ -12225,7 +12230,7 @@ WHERE
                     var diId = dto.DiId;
                     var groupInfo = await _groupRepository.Query(x => x.Id == diId).FirstAsync();
                     var ccpInfo = await _sqlSugar.Queryable<Grp_CreditCardPayment>().Where(x => x.Id == ccpId).FirstAsync();
-                    string content = $"[更新-OP费用录入填写详情({groupInfo?.TeamName ?? "-"})]一项费用:{(((ccpInfo.PayMoney * ccpInfo.DayRate) / 100) * ccpInfo.PayPercentage).ToString("#0.00")} CNY;";
+                    string content = $"[更新-OP费用录入填写详情({groupInfo?.TeamName ?? "-"})]一项费用:{(((ccpInfo.PayMoney * ccpInfo.DayRate) / 100) * ccpInfo.PayPercentage):#0.00} CNY;";
 
                     await GeneralMethod.MessageIssueAndNotification(MessageTypeEnum.GroupBusinessOperations, title, content, userIds, diId);
                     PageParam_PriceAuditH5 h5 = new PageParam_PriceAuditH5() { diid = diId.ToString(), uid = "21" };
@@ -12966,7 +12971,7 @@ WHERE
                 try
                 {
                     var travelList_DB = _sqlSugar.Queryable<Grp_TravelList>()
-                                                 .Where(x => dto.Arr.Select(x=>x.Id).Contains(x.Id))
+                                                 .Where(x => dto.Arr.Select(x => x.Id).Contains(x.Id))
                                                  .ToList();
 
                     _sqlSugar.BeginTran();
@@ -12983,7 +12988,7 @@ WHERE
                         {
                             item.Trip = item.Trip.Replace("[++]", string.Empty);
                             findTravel.Trip = findTravel.Trip.Replace("[++]", string.Empty);
-                            item.Trip = CheckStr(findTravel.Trip,item.Trip);
+                            item.Trip = CheckStr(findTravel.Trip, item.Trip);
                         }
 
                         _sqlSugar.Updateable<Grp_TravelList>().Where(x => x.Id == item.Id)
@@ -13166,7 +13171,7 @@ WHERE
 
                 item.Trip = item.Trip.Replace(tagContent.TagFormat.Item1, string.Empty)
                     .Replace(tagContent.TagFormat.Item2, string.Empty)
-                    .Replace("[++]", string.Empty); 
+                    .Replace("[++]", string.Empty);
 
                 DataRow dr = dtSource.NewRow();
                 dr["Days"] = item.Days;
@@ -15784,7 +15789,7 @@ ORDER by  gctggrc.id DESC
             #endregion
 
             #endregion
-            
+
             return Ok(await _hotelPriceRep._ItemsByDiId(_dto.PortType, _dto.DiId));
         }
 
@@ -15995,7 +16000,7 @@ ORDER by  gctggrc.id DESC
 
             if (extraCostList.Any())
             {
-                 await _carTouristGuideGroundRep.GroupExtraCost_OperatorList(extraCostList);
+                await _carTouristGuideGroundRep.GroupExtraCost_OperatorList(extraCostList);
             }
             _sqlSugar.CommitTran();
 
@@ -16020,14 +16025,15 @@ ORDER by  gctggrc.id DESC
 
                 #region 操作记录
 
-                var opInfo = new Crm_TableOperationRecord() { 
+                var opInfo = new Crm_TableOperationRecord()
+                {
                     TableName = "Grp_HotelReservations",
                     PortType = _dto.PortType,
                     DataId = hotelId,
                     CreateUserId = _dto.UserId
                 };
                 //var opStatus = OperationEnum.NoOperation;
-                if (_dto.Id<1) //添加操作
+                if (_dto.Id < 1) //添加操作
                 {
                     opInfo.OperationItem = OperationEnum.Add;
                 }
@@ -16063,7 +16069,7 @@ ORDER by  gctggrc.id DESC
                     //var iosRes = await APNsTools.iOS_PushNotifications("051", title, "", content);
                     //Logs($"【iOS推送通知PostHotelReservationsAddOrEdit】End Response:[{JsonConvert.SerializeObject(iosRes)}]");
                 }
-                catch (Exception ex )
+                catch (Exception ex)
                 {
 
                     Logs($"【iOS推送通知-PostHotelReservationsAddOrEdit-Exception】[{ex.Message}]");
@@ -16105,7 +16111,7 @@ ORDER by  gctggrc.id DESC
                 else if (_dto.Id > 0) content = $"[更新-酒店费用录入({groupInfo?.TeamName ?? "-"})]一项费用:{(ccpInfo.PayMoney * ccpInfo.DayRate).ToString("#0.00")} CNY;";
 
                 await GeneralMethod.MessageIssueAndNotification(MessageTypeEnum.GroupBusinessOperations, title, content, userIds, diId);
-                            }
+            }
             catch (Exception ex)
             {
             }
@@ -18722,12 +18728,13 @@ ORDER by  gctggrc.id DESC
                     continue;
                 }
 
-                infos.Add(new TourClientListInfo() {
-                    IsAccompany =  1,
+                infos.Add(new TourClientListInfo()
+                {
+                    IsAccompany = 1,
                     LastName = lastName,
                     FirstName = firstName,
                     Pinyin = lastNameEn + @"/" + firstNameEn,
-                    Sex = data.Sex.Equals("男") ? 0 : data.Sex.Equals("女")? 1:2,
+                    Sex = data.Sex.Equals("男") ? 0 : data.Sex.Equals("女") ? 1 : 2,
                     CompanyFullName = data.CompanyFullName,
                     Job = data.Job
                 });
@@ -19268,7 +19275,7 @@ ORDER by  gctggrc.id DESC
             }
 
             var groupInfo = await _sqlSugar.Queryable<Grp_DelegationInfo>().FirstAsync(x => x.Id == dto.GroupId);
-            if (groupInfo == null) return Ok(JsonView(false,$"该团组信息未填写!"));
+            if (groupInfo == null) return Ok(JsonView(false, $"该团组信息未填写!"));
 
             //时间根据团组出访日期-接团录入日期的天数来判断用哪个模板
             var days = groupInfo.VisitDate.Subtract(groupInfo.CreateTime).Days;
@@ -21447,10 +21454,10 @@ ORDER BY
         {
             int portType = dto.PortType,
                 groupId = dto.GroupId;
-            if (!SharingStaticData.PortTypes.Contains(portType)) return Ok(JsonView(false,MsgTips.Port));
+            if (!SharingStaticData.PortTypes.Contains(portType)) return Ok(JsonView(false, MsgTips.Port));
             if (groupId < 1) return Ok(JsonView(false, MsgTips.DiId));
 
-            return Ok(await _restaurantRep.ItemAsync(portType,groupId));
+            return Ok(await _restaurantRep.ItemAsync(portType, groupId));
         }
 
         /// <summary>
@@ -21532,7 +21539,7 @@ ORDER BY
         {
             if (dto.CurrUserId < 1) return Ok(JsonView(false, MsgTips.UserId));
             if (dto.GroupId < 1) return Ok(JsonView(false, MsgTips.DiId));
-            if ( string.IsNullOrEmpty(dto.Name)) return Ok(JsonView(false, "餐厅名称为空!"));
+            if (string.IsNullOrEmpty(dto.Name)) return Ok(JsonView(false, "餐厅名称为空!"));
 
             return Ok(await _restaurantRep.OpAsync(dto));
         }
@@ -21550,7 +21557,7 @@ ORDER BY
             int userId = dto.DeleteUserId;
             var id = dto.Id;
 
-            if (userId < 1) return Ok( JsonView(false, MsgTips.UserId));
+            if (userId < 1) return Ok(JsonView(false, MsgTips.UserId));
             if (id < 1) return Ok(JsonView(false, MsgTips.Id));
 
             return Ok(await _restaurantRep.DelAsync(dto));
@@ -21756,7 +21763,7 @@ ORDER BY
                                                 Location = x.Location,
                                             })
                                             .ToList();
-                var ids =  clientList.Where(x => !string.IsNullOrEmpty(x.Client) &&  x.Client.Contains("重庆")).Select(x=>x.Id).ToList();
+                var ids = clientList.Where(x => !string.IsNullOrEmpty(x.Client) && x.Client.Contains("重庆")).Select(x => x.Id).ToList();
                 _sqlSugar.Queryable<Crm_NewClientData>().Where(x => ids.Contains(x.Id)).ToList();
 
                 Stopwatch stopwatch = new Stopwatch();

+ 1 - 2
OASystem/OASystem.Api/OAMethodLib/Quartz/Business/TaskNotification.cs

@@ -5,7 +5,6 @@ using OASystem.API.OAMethodLib.SignalR.Hubs;
 using OASystem.Domain.Entities.Groups;
 using OASystem.Domain.Entities.PersonnelModule;
 using OASystem.Infrastructure.Repositories.PersonnelModule;
-using ILogger = Microsoft.Extensions.Logging.ILogger;
 
 namespace OASystem.API.OAMethodLib.Quartz.Business
 {
@@ -122,7 +121,7 @@ namespace OASystem.API.OAMethodLib.Quartz.Business
                         if (msgAuthAddId < 0)
                         {
                             _taskAllocationRep._sqlSugar.RollbackTran();
-                           // _logger.LogError("任务通知消息推送失败!");
+                            // _logger.LogError("任务通知消息推送失败!");
                             return;
                         }
                         userIds.Add(subItem.UserId);

+ 16 - 18
OASystem/OASystem.Api/OAMethodLib/YouDaoAPI/YouDaoApiTools.cs

@@ -5,7 +5,7 @@
     /// </summary>
     public static class YouDaoApiTools
     {
-        private static readonly HttpClient _httpClient = new HttpClient { BaseAddress = new Uri("https://openapi.youdao.com") };
+        private static readonly HttpClient _httpClient = new() { BaseAddress = new Uri("https://openapi.youdao.com") };
         //private static readonly IHttpClientFactory _httpClientFactory;
         private static readonly string _appKey = "0fe3bc01e109ed36";    //应用ID
         private static readonly string _appSecret = "1f2x9TrqJfSBEJ8iH9GEFGgTyaYGjEry"; //应用密钥
@@ -14,7 +14,7 @@
         public static async Task<string> GetOCR_ReTrans(string txt)
         {
             var data = await GetReTrans(txt);
-            string str = "";
+            string str;
             if (data == null && data.Code != 0)
                 str = txt;
             else
@@ -61,15 +61,15 @@
             var reqData = new FormUrlEncodedContent(
                             new List<KeyValuePair<string, string>>()
                             {
-                                //new KeyValuePair<string, string>("q",System.Web.HttpUtility.UrlEncode(q, Encoding.UTF8)),//待翻译文本  必须是UTF-8编码
-                                new KeyValuePair<string, string>("q",q),             //待翻译文本  必须是UTF-8编码
-                                new KeyValuePair<string, string>("from",from),       //源语言
-                                new KeyValuePair<string, string>("to",to),           //目标语言
-                                new KeyValuePair<string, string>("appKey",_appKey),  //应用ID
-                                new KeyValuePair<string, string>("salt",salt),       //UUID
-                                new KeyValuePair<string, string>("sign",sign),       //签名 
-                                new KeyValuePair<string, string>("signType","v3"),   //签名类型
-                                new KeyValuePair<string, string>("curtime",curtime), //TUC 时间戳
+                                //new("q",System.Web.HttpUtility.UrlEncode(q, Encoding.UTF8)),//待翻译文本  必须是UTF-8编码
+                                new("q",q),             //待翻译文本  必须是UTF-8编码
+                                new("from",from),       //源语言
+                                new("to",to),           //目标语言
+                                new("appKey",_appKey),  //应用ID
+                                new("salt",salt),       //UUID
+                                new("sign",sign),       //签名 
+                                new("signType","v3"),   //签名类型
+                                new("curtime",curtime), //TUC 时间戳
                             });
 
             var reTransReq = await _httpClient.PostAsync(url, reqData);
@@ -126,13 +126,11 @@
         /// <returns>加密数组</returns>
         public static Byte[] SHA256EncryptByte(string StrIn)
         {
-            using (var sha256 = SHA256.Create())
-            {
-                var Asc = new ASCIIEncoding();
-                var tmpByte = Asc.GetBytes(StrIn);
-                var EncryptBytes = sha256.ComputeHash(tmpByte);
-                return EncryptBytes;
-            }
+            using var sha256 = SHA256.Create();
+            var Asc = new ASCIIEncoding();
+            var tmpByte = Asc.GetBytes(StrIn);
+            var EncryptBytes = sha256.ComputeHash(tmpByte);
+            return EncryptBytes;
         }
         #endregion
 

+ 58 - 65
OASystem/OASystem.Infrastructure/Repositories/Groups/AirTicketResRepository.cs

@@ -9,7 +9,6 @@ using OASystem.Domain.Entities.Financial;
 using OASystem.Domain.Entities.Groups;
 using OASystem.Domain.Entities.Resource;
 using OASystem.Domain.ViewModels.Groups;
-using System.Net;
 using System.Security.Cryptography;
 
 namespace OASystem.Infrastructure.Repositories.Groups
@@ -24,7 +23,7 @@ namespace OASystem.Infrastructure.Repositories.Groups
 
         public async Task<Result> AirTicketResById(AirTicketResByIdDto dto)
         {
-            Result result = new Result() { Code = -2, Msg = "未知错误" };
+            var result = new Result() { Code = -2, Msg = "未知错误" };
             try
             {
                 Grp_AirTicketReservations grp_AirTicket = _sqlSugar.Queryable<Grp_AirTicketReservations>().First(a => a.Id == dto.Id && a.IsDel == 0);
@@ -34,7 +33,7 @@ namespace OASystem.Infrastructure.Repositories.Groups
                 }
                 else
                 {
-                    Grp_CreditCardPayment grp_CreditCard = _sqlSugar.Queryable<Grp_CreditCardPayment>().First(a => a.CId == grp_AirTicket.Id && a.IsDel == 0 && a.CTable==85);
+                    Grp_CreditCardPayment grp_CreditCard = _sqlSugar.Queryable<Grp_CreditCardPayment>().First(a => a.CId == grp_AirTicket.Id && a.IsDel == 0 && a.CTable == 85);
                     if (grp_CreditCard == null) { return result = new Result() { Code = -1, Msg = "暂无数据" }; }
                     return result = new Result()
                     {
@@ -57,19 +56,19 @@ namespace OASystem.Infrastructure.Repositories.Groups
 
         public async Task<Result> AirTicketResList(AirTicketResDto dto)
         {
-            Result result = new Result() { Code = -2, Msg = "未知错误" };
+            var result = new Result() { Code = -2, Msg = "未知错误" };
 
             Grp_DelegationInfo _DelegationInfo = _sqlSugar.Queryable<Grp_DelegationInfo>().First(it => it.Id == dto.DiId);
             if (_DelegationInfo != null)
             {
                 string UserId = "";
-                List<Grp_GroupsTaskAssignment> gtaUIdList = _sqlSugar.Queryable<Grp_GroupsTaskAssignment>().Where(a=>a.DIId==dto.DiId && a.IsDel==0 && a.CTId==85).ToList();
+                List<Grp_GroupsTaskAssignment> gtaUIdList = _sqlSugar.Queryable<Grp_GroupsTaskAssignment>().Where(a => a.DIId == dto.DiId && a.IsDel == 0 && a.CTId == 85).ToList();
                 foreach (Grp_GroupsTaskAssignment gta in gtaUIdList)
                     UserId += gta.UId + ",";
 
                 if (!string.IsNullOrWhiteSpace(UserId))
                 {
-                    UserId = UserId.Substring(0, UserId.Length - 1);
+                    UserId = UserId[..^1];
                 }
                 else
                 {
@@ -219,13 +218,13 @@ namespace OASystem.Infrastructure.Repositories.Groups
                     }
                 }
                 //团组成本预算表查询
-                Grp_GroupCostParameter _GroupCostParameter = _sqlSugar.Queryable<Grp_GroupCostParameter>().First(a => a.DiId == dto.DiId && a.IsDel==0 && a.CostType =="A" && a.IsShare == 1);
+                Grp_GroupCostParameter _GroupCostParameter = _sqlSugar.Queryable<Grp_GroupCostParameter>().First(a => a.DiId == dto.DiId && a.IsDel == 0 && a.CostType == "A" && a.IsShare == 1);
 
                 AirGroupCostParameterView _AirgroupCostParameter = _mapper.Map<AirGroupCostParameterView>(_GroupCostParameter);
-                for (int i = 0; i <_AirTicketReservations.Count; i++)
+                for (int i = 0; i < _AirTicketReservations.Count; i++)
                 {
-                  string [] ClientArr=  _AirTicketReservations[i].ClientName.Split(',').Where(x=>!string.IsNullOrWhiteSpace(x)).ToArray();
-                    
+                    string[] ClientArr = _AirTicketReservations[i].ClientName.Split(',').Where(x => !string.IsNullOrWhiteSpace(x)).ToArray();
+
 
 
                     foreach (var item in ClientArr)
@@ -250,16 +249,16 @@ namespace OASystem.Infrastructure.Repositories.Groups
                             _AirTicketReservations[i].ClientNameStr += item;
                         }
 
-                        
+
                     }
                     if (_AirTicketReservations[i].ClientNameStr is not null)
                     {
                         _AirTicketReservations[i].ClientNameStr = _AirTicketReservations[i].ClientNameStr.Substring(0, _AirTicketReservations[i].ClientNameStr.Length - 1);
                     }
-                    
+
                 }
 
-                if (dto.PortType==1)
+                if (dto.PortType == 1)
                 {
                     var data = new
                     {
@@ -269,14 +268,14 @@ namespace OASystem.Infrastructure.Repositories.Groups
                     };
                     return result = new Result() { Code = 0, Msg = "查询成功!", Data = data };
                 }
-                else if(dto.PortType == 2 || dto.PortType==3)
+                else if (dto.PortType == 2 || dto.PortType == 3)
                 {
                     int count = _AirTicketReservations.Count;
                     float totalPage = (float)count / dto.PageSize;//总页数
                     if (totalPage == 0) totalPage = 1;
                     else totalPage = (int)Math.Ceiling((double)totalPage);
 
-                    List<AirTicketReservationsView> grp_AirTickets = new List<AirTicketReservationsView>();
+                    var grp_AirTickets = new List<AirTicketReservationsView>();
                     for (int i = 0; i < dto.PageSize; i++)
                     {
                         var RowIndex = i + (dto.PageIndex - 1) * dto.PageSize;
@@ -289,33 +288,35 @@ namespace OASystem.Infrastructure.Repositories.Groups
                             break;
                         }
                     }
-                    ListViewBase<AirTicketReservationsView> rst = new ListViewBase<AirTicketReservationsView>();
-                    rst.DataList = grp_AirTickets;
-                    rst.DataCount = count;
-                    rst.CurrPageIndex = dto.PageIndex;
-                    rst.CurrPageSize = dto.PageSize;
+                    var rst = new ListViewBase<AirTicketReservationsView>
+                    {
+                        DataList = grp_AirTickets,
+                        DataCount = count,
+                        CurrPageIndex = dto.PageIndex,
+                        CurrPageSize = dto.PageSize
+                    };
                     var data = new
                     {
-                        AirData= rst,
+                        AirData = rst,
                         AirGroupCostParameter = _AirgroupCostParameter
                     };
-                    return result = new Result() { Code = 0, Msg = "查询成功!", Data = data };
+                    return new Result() { Code = 0, Msg = "查询成功!", Data = data };
                 }
                 else
                 {
-                    return result = new Result() { Code = -1, Msg = "请传入PortType参数!1:Web,2:Android,3:IOS!" };
+                    return new Result() { Code = -1, Msg = "请传入PortType参数!1:Web,2:Android,3:IOS!" };
                 }
             }
             else
             {
-                return result = new Result() { Code = -1, Msg = "暂无团组数据!" };
+                return new Result() { Code = -1, Msg = "暂无团组数据!" };
             }
 
         }
 
         public async Task<Result> AirTicketResSelect(AirTicketResDto dto)
         {
-            Result result = new Result() { Code = -2, Msg = "未知错误" };
+            var result = new Result() { Code = -2, Msg = "未知错误" };
             try
             {
                 if (dto.DiId < 1)
@@ -326,13 +327,13 @@ namespace OASystem.Infrastructure.Repositories.Groups
                 #region 团组下拉框
 
                 List<Grp_GroupsTaskAssignment> grp_GroupsTaskAssignment = Query<Grp_GroupsTaskAssignment>(a => a.IsDel == 0 && a.UId == dto.UserId && a.CTId == 85).ToList();
-                List<GroupNameView> grp_NameView = new List<GroupNameView>();
+                var grp_NameView = new List<GroupNameView>();
                 string DiId = "";
                 foreach (var item in grp_GroupsTaskAssignment)
                 {
                     DiId += item.DIId + ",";
                 }
-                if (DiId.Length>1)
+                if (DiId.Length > 1)
                 {
                     DiId = DiId.Substring(0, DiId.Length - 1);
 
@@ -346,9 +347,11 @@ namespace OASystem.Infrastructure.Repositories.Groups
 
                     foreach (var item in grp_Delegations)
                     {
-                        GroupNameView groupNameView = new GroupNameView();
-                        groupNameView.Id = item.Id;
-                        groupNameView.GroupName = item.TeamName;
+                        var groupNameView = new GroupNameView
+                        {
+                            Id = item.Id,
+                            GroupName = item.TeamName
+                        };
                         grp_NameView.Add(groupNameView);
                     }
                 }
@@ -403,9 +406,9 @@ namespace OASystem.Infrastructure.Repositories.Groups
             }
         }
 
-        public async Task<Result> OpAirTicketRes(AirTicketResOpDto dto,Func<int,int,int,Task<Result>> fn)
+        public async Task<Result> OpAirTicketRes(AirTicketResOpDto dto, Func<int, int, int, Task<Result>> fn)
         {
-            Result result = new Result() { Code = -2, Msg = "未知错误" };
+            var result = new Result() { Code = -2, Msg = "未知错误" };
             try
             {
                 BeginTran();
@@ -872,7 +875,7 @@ namespace OASystem.Infrastructure.Repositories.Groups
         /// <exception cref="NotImplementedException"></exception>
         public async Task<Result> DeriveAirTicketRes(AirTicketResDto dto)
         {
-            Result result = new Result() { Code = -2, Msg = "未知错误" };
+            var result = new Result() { Code = -2, Msg = "未知错误" };
             try
             {
                 string sql = string.Format(@"Select atr.*,ccp.IsAuditGM,sd1.Name As 'CTypeName',sd2.Name As 'PreCurrencyStr',sd3.Name  As CurrencyStr
@@ -903,7 +906,6 @@ namespace OASystem.Infrastructure.Repositories.Groups
 
         public async Task<Result> ItineraryAirTicketRes(ItineraryAirTicketResDto dto)
         {
-            Result result = new Result() { Code = -2, Msg = "未知错误" };
             try
             {
                 string sql = string.Format(@"select a.*,c.IsAuditGM,(select Name from Sys_SetData where Id=a.cType) as 'CTypeName',(select Name from 
@@ -913,24 +915,23 @@ namespace OASystem.Infrastructure.Repositories.Groups
                 List<AirTicketReservationsView> _AirTicketReservations = _sqlSugar.SqlQueryable<AirTicketReservationsView>(sql).ToList();
                 if (_AirTicketReservations.Count == 0)
                 {
-                    return result = new Result() { Code = -1, Msg = "暂无数据", Data = null };
+                    return new Result() { Code = -1, Msg = "暂无数据", Data = null };
                 }
                 else
                 {
-                    return result = new Result() { Code = 0, Msg = "查询成功", Data = _AirTicketReservations };
+                    return new Result() { Code = 0, Msg = "查询成功", Data = _AirTicketReservations };
                 }
             }
             catch (Exception)
             {
-                return result = new Result() { Code = -2, Msg = "未知错误" };
-                throw;
+                return new Result() { Code = -2, Msg = "未知错误" };
             }
         }
 
         public async Task<List<TranslateResult>> ReTransBatch(List<string> list, string aimlanguage)
         {
 
-            List<TranslateResult> reultStr = new List<TranslateResult>();
+           var reultStr = new List<TranslateResult>();
             if (list.Count < 0)
             {
                 return reultStr;
@@ -947,10 +948,10 @@ namespace OASystem.Infrastructure.Repositories.Groups
 
             if (Qtext.Length > 0)
             {
-                Qtext = Qtext.Substring(0, Qtext.Length - 1);
+                Qtext = Qtext[..^1];
             }
 
-            Dictionary<string, string> dic = new Dictionary<string, string>();
+           var dic = new Dictionary<string, string>();
 
             string url = "https://openapi.youdao.com/v2/api";
 
@@ -972,18 +973,14 @@ namespace OASystem.Infrastructure.Repositories.Groups
             string signStr = appKey + Truncate(q) + salt + curtime + appSecret; ;
             string sign = ComputeHash(signStr, SHA256.Create());
 
-
             dic.Add("q", Qtext);
             dic.Add("appKey", appKey);
             dic.Add("salt", salt);
             dic.Add("sign", sign);
-            string jsonStr = "";
-
             try
             {
                 //Thread.Sleep(500);
-                jsonStr = await TransSync(url, dic);
-
+                string jsonStr = await TransSync(url, dic);
                 JObject trans = (JObject)JsonConvert.DeserializeObject(jsonStr);
                 string errorCode = trans["errorCode"].ToString();
                 if (errorCode == "0")
@@ -993,19 +990,17 @@ namespace OASystem.Infrastructure.Repositories.Groups
 
                 return reultStr;
             }
-            catch (Exception ex)
+            catch (Exception)
             {
-                string msg = ex.Message;
                 return reultStr;
             }
         }
-        public string Processing(string str)//处理这段英文的方法
+        public  string Processing(string str)//处理这段英文的方法
         {
 
             if (string.IsNullOrEmpty(str)) { return ""; }
 
-            string[] strArray = new string[] { };
-
+            string[] strArray;
             if (str.Contains(" ")) strArray = str.Split(" ".ToCharArray());
             else if (str.Contains(",")) strArray = str.Split(",".ToCharArray());
             else if (str.Contains(" ") && str.Contains(",")) strArray = str.Split(",".ToCharArray());
@@ -1016,15 +1011,15 @@ namespace OASystem.Infrastructure.Repositories.Groups
             foreach (string s in strArray)//循环处理数组里面每一个字符串
             {
                 //result += System.Threading.Thread.CurrentThread.CurrentCulture.TextInfo.ToTitleCase(s) + " ";
-                result += s.Substring(0, 1).ToUpper() + s.Substring(1) + " ";
+                result += string.Concat(s[..1].ToUpper(), s.AsSpan(1), " ");
                 //.Substring(0, 1).ToUpper()把循环到的字符串第一个字母截取并转换为大写,并用s.Substring(1)得到循环到的字符串除第一个字符后的所有字符拼装到首字母后面。
             }
             return result;
         }
-        protected async Task<string> TransSync(string url, Dictionary<string, string> dic)
+        protected static async Task<string> TransSync(string url, Dictionary<string, string> dic)
         {
             string result = "";
-            using (HttpClient client = new HttpClient())
+            using (var client = new HttpClient())
             {
                 var content = new FormUrlEncodedContent(dic);
                 HttpResponseMessage response = await client.PostAsync(url, content);
@@ -1050,18 +1045,16 @@ namespace OASystem.Infrastructure.Repositories.Groups
             {
                 if (File.Exists(FilePath))
                     File.Delete(FilePath);
-                using (Stream outStream = File.Create(FilePath))
-                using (Stream inStream = await response.Content.ReadAsStreamAsync())
+                using Stream outStream = File.Create(FilePath);
+                using Stream inStream = await response.Content.ReadAsStreamAsync();
+                int l;
+                do
                 {
-                    int l;
-                    do
-                    {
-                        l = await inStream.ReadAsync(buffer, 0, buffer.Length);
-                        if (l > 0)
-                            await outStream.WriteAsync(buffer, 0, l);
-                    }
-                    while (l > 0);
+                    l = await inStream.ReadAsync(buffer);
+                    if (l > 0)
+                        await outStream.WriteAsync(buffer.AsMemory(0, l));
                 }
+                while (l > 0);
             }
             catch
             {
@@ -1089,7 +1082,7 @@ namespace OASystem.Infrastructure.Repositories.Groups
             string datetime = string.Empty;
             try
             {
-                using (HttpClient client = new HttpClient())
+                using (var client = new HttpClient())
                 {
                     client.Timeout = TimeSpan.FromSeconds(3);
                     HttpResponseMessage response = client.GetAsync("https://www.baidu.com").Result;