Browse Source

接团客户名单导出-英文版

jiangjc 10 months ago
parent
commit
36473d4d1d

+ 213 - 120
OASystem/OASystem.Api/Controllers/GroupsController.cs

@@ -63,6 +63,7 @@ using System.Xml;
 using OASystem.Domain.Dtos.QiYeWeChat;
 using static NPOI.POIFS.Crypt.CryptoFunctions;
 using Aspose.Words.Lists;
+using OASystem.API.OAMethodLib.YouDaoAPI;
 
 namespace OASystem.API.Controllers
 {
@@ -802,7 +803,7 @@ namespace OASystem.API.Controllers
 
             return Ok(JsonView(groupData.Data));
         }
-       
+
         /// <summary>
         /// 根据CTable类型返回对应的团组名称及简单数据(APP端)
         /// </summary>
@@ -1287,7 +1288,7 @@ namespace OASystem.API.Controllers
                 List<Grp_VisaInfo> _VisaInfos = await _groupRepository
                                                       .Query<Grp_VisaInfo>(s => s.DIId == _dto.DiId && s.IsDel == 0)
                                                       .ToListAsync();
-                
+
                 /*
                  *81: //邀请/公务活动
                  */
@@ -1300,7 +1301,7 @@ namespace OASystem.API.Controllers
                  */
                 List<Grp_Customers> _Customers = await _groupRepository.Query<Grp_Customers>(s => s.DiId == _dto.DiId && s.IsDel == 0).ToListAsync();
 
-               
+
                 /*
                  *  Lable = 85 机票预订
                  */
@@ -1488,7 +1489,8 @@ namespace OASystem.API.Controllers
 
 
                                     var currencyData = currencyItems.Where(s => s.Id == item.Currency && s.IsDel == 0).FirstOrDefault();
-                                    if (currencyData != null) {
+                                    if (currencyData != null)
+                                    {
                                         carCurrencyCode = currencyData.Name;
                                         carCurrencyName = currencyData.Remark;
                                     }
@@ -1604,7 +1606,8 @@ namespace OASystem.API.Controllers
                             break;
                         case 1015://超支费用
                             Fin_GroupExtraCost groupExtraCost = _GroupExtraCosts.Where(s => s.Id == entity.CId).FirstOrDefault();
-                            if (groupExtraCost != null) {
+                            if (groupExtraCost != null)
+                            {
                                 _detail.PriceNameContent = groupExtraCost.PriceName;
                                 _detail.PriceMsgContent = "备注:" + groupExtraCost.Remark;
                             }
@@ -1968,7 +1971,7 @@ namespace OASystem.API.Controllers
                 throw;
             }
         }
-        
+
         /// <summary>
         /// 根据舱位类型查询接团客户名单信息
         /// </summary>
@@ -2027,30 +2030,36 @@ namespace OASystem.API.Controllers
             return Ok(jw);
         }
 
-        private List<SimplClientInfo> getSimplClientList(int diId) {
+        private List<SimplClientInfo> getSimplClientList(int diId)
+        {
             string sql = string.Format("select b.Id,b.Pinyin,b.lastName,b.firstName,b.phone from  Grp_TourClientList a, Crm_DeleClient b where a.clientid = b.id and a.isdel = 0 and a.diid = {0}", diId);
             List<SimplClientInfo> arr = _sqlSugar.SqlQueryable<SimplClientInfo>(sql).ToList();
             return arr;
         }
 
-        private string getClientNameStr(List<SimplClientInfo> list, string origin) {
+        private string getClientNameStr(List<SimplClientInfo> list, string origin)
+        {
             string result = origin;
 
-            if (Regex.Match(origin, @"\d+,?").Value.Length > 0) {
+            if (Regex.Match(origin, @"\d+,?").Value.Length > 0)
+            {
                 string[] temparr = origin.Split(',');
                 string fistrStr = temparr[0];
                 int count = temparr.Count();
 
                 int tempId;
                 bool success = int.TryParse(fistrStr, out tempId);
-                if (success) {
+                if (success)
+                {
                     SimplClientInfo tempInfo = list.FirstOrDefault(s => s.Id == tempId);
-                    if (tempInfo != null) {
+                    if (tempInfo != null)
+                    {
                         if (count > 1)
                         {
                             result = string.Format(@"{0}{1}等{2}人", tempInfo.LastName, tempInfo.FirstName, count);
                         }
-                        else { 
+                        else
+                        {
                             result = string.Format(@"{0}{1}", tempInfo.LastName, tempInfo.FirstName);
                         }
                     }
@@ -3073,7 +3082,7 @@ namespace OASystem.API.Controllers
                 throw;
             }
         }
-        
+
         /// <summary>
         /// 商邀费用录入操作(Status:1.新增,2.修改)
         /// </summary>
@@ -3085,7 +3094,7 @@ namespace OASystem.API.Controllers
         {
             try
             {
-                Result groupData = await _InvitationOfficialActivitiesRep.OpInvitationOfficialActivities(dto,_setDataRep.PostCurrencyByDiid);
+                Result groupData = await _InvitationOfficialActivitiesRep.OpInvitationOfficialActivities(dto, _setDataRep.PostCurrencyByDiid);
                 if (groupData.Code != 0)
                 {
                     return Ok(JsonView(false, groupData.Msg));
@@ -3123,7 +3132,7 @@ namespace OASystem.API.Controllers
                 {
                     int _diId = 0;
                     var _ioaInfo = _sqlSugar.Queryable<Grp_InvitationOfficialActivities>().Where(it => it.Id == dto.Id).First();
-                    if (_ioaInfo!=null)
+                    if (_ioaInfo != null)
                     {
                         _diId = _ioaInfo.DiId;
                     }
@@ -3135,7 +3144,7 @@ namespace OASystem.API.Controllers
                                               DeleteUserId = dto.DeleteUserId,
                                               DeleteTime = DateTime.Now.ToString("yyyy-MM-dd HH:mm:ss")
                                           })
-                                          .Where(a => a.CId == dto.Id && a.DIId == _diId && a.CTable == 81 )
+                                          .Where(a => a.CId == dto.Id && a.DIId == _diId && a.CTable == 81)
                                           .ExecuteCommand();
 
                     if (res2 > 0)
@@ -3555,7 +3564,7 @@ namespace OASystem.API.Controllers
 
                 //默认币种显示
                 List<CurrencyInfo> _currencyInfos = new List<CurrencyInfo>()
-                { 
+                {
                     new CurrencyInfo (){ CurrencyCode="USD",CurrencyName = "美元",Rate = 0.0000M },
                     new CurrencyInfo (){ CurrencyCode="EUR",CurrencyName = "欧元",Rate = 0.0000M },
                     new CurrencyInfo (){ CurrencyCode="GBP",CurrencyName = "英镑",Rate = 0.0000M },
@@ -3662,7 +3671,7 @@ namespace OASystem.API.Controllers
                     return Ok(JsonView(false, "请传入有效的DiId参数;"));
                 }
 
-                if (dto.ExportType <1)
+                if (dto.ExportType < 1)
                 {
                     return Ok(JsonView(false, "请传入有效的ExportType参数; 1 明细表 2 表格"));
                 }
@@ -3692,7 +3701,7 @@ namespace OASystem.API.Controllers
                 var _DelegationInfo = _sqlSugar.Queryable<Grp_DelegationInfo>().Where(it => it.IsDel == 0 && it.Id == dto.DiId).First();
                 var DeleClientList = _sqlSugar.Queryable<Grp_TourClientList>()
                                                       .LeftJoin<Crm_DeleClient>((tcl, dc) => tcl.ClientId == dc.Id && dc.IsDel == 0)
-                                                      .LeftJoin<Crm_CustomerCompany>((tcl, dc,cc) => dc.CrmCompanyId == cc.Id && dc.IsDel == 0)
+                                                      .LeftJoin<Crm_CustomerCompany>((tcl, dc, cc) => dc.CrmCompanyId == cc.Id && dc.IsDel == 0)
                                                       .Where((tcl, dc, cc) => tcl.IsDel == 0 && tcl.DiId == dto.DiId)
                                                       .Select((tcl, dc, cc) => new
                                                       {
@@ -4073,7 +4082,7 @@ namespace OASystem.API.Controllers
                             builder.MoveToCell(0, foodandotherStartIndex, 1, 0);
                             builder.Write(placeData.Find(it => it.Id == dac.NationalTravelFeeId)?.Country ?? "Unknown");//城市
                             builder.MoveToCell(0, foodandotherStartIndex, 2, 0);
-                            string currency = _CurrDatas.Find(it => it.Id == dac.Currency)?.Name ?? "Unknown" ;
+                            string currency = _CurrDatas.Find(it => it.Id == dac.Currency)?.Name ?? "Unknown";
                             builder.Write(currency);//币种
                             builder.MoveToCell(0, foodandotherStartIndex, 3, 0);
                             builder.Write(dac.Cost.ToString("#0.00"));//标准
@@ -4578,7 +4587,7 @@ namespace OASystem.API.Controllers
                     }
                 }
 
-                return Ok(JsonView(false,"操作失败!"));
+                return Ok(JsonView(false, "操作失败!"));
             }
             catch (Exception ex)
             {
@@ -5133,7 +5142,7 @@ namespace OASystem.API.Controllers
         {
             try
             {
-                Result groupData =  _carTouristGuideGroundRep.CarTouristGuideGroundContent(dto);
+                Result groupData = _carTouristGuideGroundRep.CarTouristGuideGroundContent(dto);
                 if (groupData.Code != 0)
                 {
                     return Ok(JsonView(false, groupData.Msg));
@@ -5156,7 +5165,7 @@ namespace OASystem.API.Controllers
         {
             try
             {
-                Result groupData =  _carTouristGuideGroundRep.OpCarTouristGuideGroundContentById(dto);
+                Result groupData = _carTouristGuideGroundRep.OpCarTouristGuideGroundContentById(dto);
                 if (groupData.Code != 0)
                 {
                     return Ok(JsonView(false, groupData.Msg));
@@ -5200,7 +5209,7 @@ namespace OASystem.API.Controllers
         public IActionResult OpCarCityResult()
         {
             var jw = JsonView(false);
-            var data = _sqlSugar.Queryable<Grp_NationalTravelFee>().Where(x=>x.IsDel == 0).Select(x => new
+            var data = _sqlSugar.Queryable<Grp_NationalTravelFee>().Where(x => x.IsDel == 0).Select(x => new
             {
                 x.Id,
                 x.Country,
@@ -5250,11 +5259,11 @@ namespace OASystem.API.Controllers
 
             string city = string.Empty;
             var blackCode = _sqlSugar.Queryable<Air_TicketBlackCode>().Where(x => x.IsDel == 0 && x.DiId == diid).ToList();
-            if (blackCode.Count > 0) 
+            if (blackCode.Count > 0)
             {
                 var black = blackCode.First();
                 black.BlackCode = black.BlackCode == null ? "" : black.BlackCode;
-                var blackSp =  Regex.Split(black.BlackCode, "\\d+\\.", RegexOptions.IgnoreCase).Where(x=>!string.IsNullOrWhiteSpace(x)).ToArray();
+                var blackSp = Regex.Split(black.BlackCode, "\\d+\\.", RegexOptions.IgnoreCase).Where(x => !string.IsNullOrWhiteSpace(x)).ToArray();
                 if (blackSp.Length > 0)
                 {
                     try
@@ -5278,7 +5287,7 @@ namespace OASystem.API.Controllers
                             {
                                 cityArrCode.Add(startCity.ToUpper());
                             }
-                            
+
                             var endCity = IndexSelect.Substring(3, 3);
                             cityArrCode.Add(endCity.ToUpper());
                         }
@@ -5296,7 +5305,7 @@ namespace OASystem.API.Controllers
                         var cityArr = _sqlSugar.SqlQueryable<Res_ThreeCode>(sql).ToList();
                         foreach (var item in cityArrCode)
                         {
-                            var find =  cityArr.Find(x => x.Three.ToUpper() == item.ToUpper());
+                            var find = cityArr.Find(x => x.Three.ToUpper() == item.ToUpper());
                             if (find != null)
                             {
                                 city += find.City + "/";
@@ -5314,13 +5323,13 @@ namespace OASystem.API.Controllers
                     }
                 }
 
-            } 
+            }
             else
             {
                 city = "未录入黑屏代码";
             }
 
-            var OpTravelList =  _sqlSugar.Queryable<Grp_TravelList>().Where(x=>x.Diid == diid && x.IsDel == 0).OrderBy(x=>x.Date).Select(x=> new TravelArrView
+            var OpTravelList = _sqlSugar.Queryable<Grp_TravelList>().Where(x => x.Diid == diid && x.IsDel == 0).OrderBy(x => x.Date).Select(x => new TravelArrView
             {
                 Date = x.Date,
                 Days = x.Days,
@@ -5330,7 +5339,7 @@ namespace OASystem.API.Controllers
                 Traffic_Second = x.Traffic_Second,
                 Trip = x.Trip,
                 WeekDay = x.WeekDay,
-                 Id = x.Id
+                Id = x.Id
             }).ToList();
 
             jw.Data = new
@@ -5374,11 +5383,11 @@ namespace OASystem.API.Controllers
 
             var isTrue = _sqlSugar.Updateable<Grp_TravelList>().Where(x => x.Diid == dto.Diid && x.IsDel == 0)
                 .SetColumns(x => new Grp_TravelList
-            {
-                DeleteTime = DateTime.Now.ToString("yyyy-MM-dd"),
-                DeleteUserId = dto.UserId,
-                IsDel = 1,
-            }).ExecuteCommand();
+                {
+                    DeleteTime = DateTime.Now.ToString("yyyy-MM-dd"),
+                    DeleteUserId = dto.UserId,
+                    IsDel = 1,
+                }).ExecuteCommand();
             jw = JsonView(true);
             return Ok(jw);
         }
@@ -5391,7 +5400,7 @@ namespace OASystem.API.Controllers
         public IActionResult TravelSave(TravelSaveDto dto)
         {
             var jw = JsonView(false);
-            if(dto.Arr.Count > 0)
+            if (dto.Arr.Count > 0)
             {
                 try
                 {
@@ -5439,7 +5448,7 @@ namespace OASystem.API.Controllers
             //数据源
             List<Grp_TravelList> _travelList = new List<Grp_TravelList>();
             int diid = 0;
-            var Find =  _sqlSugar.Queryable<Grp_DelegationInfo>().First(x=>x.Id == dto.Diid);
+            var Find = _sqlSugar.Queryable<Grp_DelegationInfo>().First(x => x.Id == dto.Diid);
             if (Find == null)
             {
                 jw.Msg = "请选择正确的团组!";
@@ -5653,7 +5662,7 @@ namespace OASystem.API.Controllers
 
             //模板路径
             string tempPath = AppSettingsHelper.Get("WordBasePath") + "Travel/日行程3.docx";
-            
+
             //载入模板
             Document doc = null;
             DocumentBuilder builder = null;
@@ -5752,7 +5761,7 @@ namespace OASystem.API.Controllers
             try
             {
                 doc.Save(path, Aspose.Words.SaveFormat.Doc);
-                jw = JsonView(true,"导出成功", path);
+                jw = JsonView(true, "导出成功", path);
             }
             catch (Exception)
             {
@@ -6039,7 +6048,7 @@ namespace OASystem.API.Controllers
         /// </summary>
         /// <param name="num"></param>
         /// <returns></returns>
-         string GetNum(string num)
+        string GetNum(string num)
         {
 
             string str = "";
@@ -6121,7 +6130,7 @@ namespace OASystem.API.Controllers
             return str;
         }
 
-         List<Crm_DeleClient> GetByDiidClient(int DIID)
+        List<Crm_DeleClient> GetByDiidClient(int DIID)
         {
             return _sqlSugar.Queryable<Crm_DeleClient>().Where(x => x.DiId == DIID && x.IsDel == 0).ToList();
         }
@@ -6135,7 +6144,7 @@ namespace OASystem.API.Controllers
         /// <param name="startDate"></param>
         /// <param name="endDate"></param>
         /// <returns></returns>
-         string GetLonger(string temp)
+        string GetLonger(string temp)
         {
             string str = "";
             switch (temp.ToUpper())
@@ -6289,7 +6298,7 @@ namespace OASystem.API.Controllers
         /// </summary>
         /// <param name="temp"></param>
         /// <returns></returns>
-         string GetDaysByMonth(string Month, int year)
+        string GetDaysByMonth(string Month, int year)
         {
             string str = "";
             //判断是否是闰年
@@ -6494,9 +6503,9 @@ namespace OASystem.API.Controllers
                     spArr = countryArr.Split("、");
                 }
 
-                foreach (var item in spArr.Where(x=>!string.IsNullOrWhiteSpace(x)).ToList())
+                foreach (var item in spArr.Where(x => !string.IsNullOrWhiteSpace(x)).ToList())
                 {
-                   var dbQueryCountry = _sqlSugar.Queryable<Res_CountryFeeCost>().First(x => x.VisaCountry.Contains(item));
+                    var dbQueryCountry = _sqlSugar.Queryable<Res_CountryFeeCost>().First(x => x.VisaCountry.Contains(item));
                     if (dbQueryCountry != null)
                     {
                         visaCountryInfoArr.Add(dbQueryCountry);
@@ -6659,7 +6668,7 @@ namespace OASystem.API.Controllers
                 if (GroupCostParameter.IsShare == 0) IsShare = 1;
                 else if (GroupCostParameter.IsShare == 1) IsShare = 0;
 
-                bool isTrue = await _GroupCostParameterRepository.UpdateIsShareById(GroupCostParameter.Id,IsShare);
+                bool isTrue = await _GroupCostParameterRepository.UpdateIsShareById(GroupCostParameter.Id, IsShare);
                 string msg = string.Empty;
 
                 if (isTrue)
@@ -6730,9 +6739,9 @@ namespace OASystem.API.Controllers
                 airSouer.Add("GWCSUITE", "公务舱及酒店套房");
                 airSouer.Add("JJCSUITE", "经济舱及酒店套房");
 
-                var groupCostType = dto.airs.GroupBy(x => x.costType).OrderBy(x=>x.Key);
+                var groupCostType = dto.airs.GroupBy(x => x.costType).OrderBy(x => x.Key);
 
-                foreach(var cost in groupCostType)
+                foreach (var cost in groupCostType)
                 {
                     var List = cost.ToList();
 
@@ -6766,11 +6775,11 @@ namespace OASystem.API.Controllers
                             {
                                 if (ListItem.code.Contains("TBR"))
                                 {
-                                    itemStr += "团费(" + airSouer[ListItem.code] + ")    RMB " + ListItem.price.ToString("F2")  + "/人*" + ListItem.number + "(" + (ListItem.number / 2) + "间( ............合计 RMB " + (ListItem.number * ListItem.price).ToString("#0.00") + "\n";
+                                    itemStr += "团费(" + airSouer[ListItem.code] + ")    RMB " + ListItem.price.ToString("F2") + "/人*" + ListItem.number + "(" + (ListItem.number / 2) + "间( ............合计 RMB " + (ListItem.number * ListItem.price).ToString("#0.00") + "\n";
                                 }
                                 else
                                 {
-                                    itemStr += "团费(" + airSouer[ListItem.code] + ")    RMB " + ListItem.price.ToString("F2")  + "/人*" + ListItem.number + "(" + ListItem.number + "间( ............合计 RMB " + (ListItem.number * ListItem.price).ToString("#0.00") + "\n";
+                                    itemStr += "团费(" + airSouer[ListItem.code] + ")    RMB " + ListItem.price.ToString("F2") + "/人*" + ListItem.number + "(" + ListItem.number + "间( ............合计 RMB " + (ListItem.number * ListItem.price).ToString("#0.00") + "\n";
                                 }
 
                                 TotalPrice += (ListItem.number * ListItem.price);
@@ -6778,7 +6787,7 @@ namespace OASystem.API.Controllers
                         }
                     }
                 }
-                
+
 
                 #region 替换Word模板书签内容
 
@@ -6822,7 +6831,7 @@ namespace OASystem.API.Controllers
 
                 //doc.Save((AppSettingsHelper.Get("WordBasePath") + "Template/") + strFileName);
 
-                return Ok(JsonView(true,"",new
+                return Ok(JsonView(true, "", new
                 {
                     Data = bytes,
                     strFileName,
@@ -6830,7 +6839,7 @@ namespace OASystem.API.Controllers
             }
             else
             {
-                return Ok(JsonView(false,"团组信息不存在!"));
+                return Ok(JsonView(false, "团组信息不存在!"));
             }
         }
 
@@ -6843,7 +6852,7 @@ namespace OASystem.API.Controllers
         public async Task<IActionResult> ExportGroupCostExcelFile(GroupCostExportExcelFile dto)
         {
 
-             var jw =  JsonView(false);
+            var jw = JsonView(false);
 
             if (dto.Diid == 0)
             {
@@ -6968,18 +6977,18 @@ namespace OASystem.API.Controllers
             int HideRows = 0;
             List<int> hideRowsList = new List<int>();
             decimal TzZCB2 = 0.00M, TzZLR2 = 0.00M, TzZBJ2 = 0.00M;
-             
+
 
             #region A段left数据
             var left = dto.leftInfo.Find(x => x.Type == "A");
             if (left == null)
             {
-                  return Ok(jw);
+                return Ok(jw);
             }
             var leftBindData = left.leftinfoNumber.Find(x => x.title.Contains("签证"));
             if (leftBindData != null)
             {
-               
+
                 designer.SetDataSource("VisaDRCB", leftBindData.cb);
                 designer.SetDataSource("VisaRS", leftBindData.rs);
                 designer.SetDataSource("VisaXS", leftBindData.xs);
@@ -6989,7 +6998,8 @@ namespace OASystem.API.Controllers
                 designer.SetDataSource("VisaDRLR", decimal.Parse(leftBindData.cb) * decimal.Parse(leftBindData.xs) - decimal.Parse(leftBindData.cb));
                 designer.SetDataSource("VisaZLR", ((decimal.Parse(leftBindData.cb) * decimal.Parse(leftBindData.xs)) - decimal.Parse(leftBindData.cb)) * decimal.Parse(leftBindData.rs));
             }
-            else {
+            else
+            {
                 hideRowsList.Add(Row + startIndex + HideRows);
                 //ws.Cells.HideRows((Row + startIndex + HideRows), 2);
             }
@@ -6998,7 +7008,7 @@ namespace OASystem.API.Controllers
             leftBindData = left.leftinfoNumber.Find(x => x.title.Contains("保险"));
             if (leftBindData != null)
             {
-               
+
                 designer.SetDataSource("BXDRCB", leftBindData.cb);
                 designer.SetDataSource("BXRS", leftBindData.rs);
                 designer.SetDataSource("BXXS", leftBindData.xs);
@@ -7037,7 +7047,7 @@ namespace OASystem.API.Controllers
             leftBindData = left.leftinfoNumber.Find(x => x.title.Contains("经济舱"));
             if (leftBindData != null)
             {
-               
+
                 designer.SetDataSource("JPJJCCB", leftBindData.cb);
                 designer.SetDataSource("JPJJCPnum", leftBindData.rs);
                 designer.SetDataSource("JPJJCXS", leftBindData.xs);
@@ -7057,7 +7067,7 @@ namespace OASystem.API.Controllers
             leftBindData = left.leftinfoNumber.Find(x => x.title.Contains("公务舱"));
             if (leftBindData != null)
             {
-                
+
                 designer.SetDataSource("JPGWCCB", leftBindData.cb);
                 designer.SetDataSource("JPGWCPNum", leftBindData.rs);
                 designer.SetDataSource("JPGWCXS", leftBindData.xs);
@@ -7210,7 +7220,7 @@ namespace OASystem.API.Controllers
                 hideRowsList.Add(Row + startIndex + HideRows);
                 //ws.Cells.HideRows((Row + startIndex + HideRows), 2);
             }
-            
+
 
             HideRows += 2;
             leftBindData = left.leftinfoNumber.Find(x => x.title.Contains("公务单人"));
@@ -7262,7 +7272,7 @@ namespace OASystem.API.Controllers
 
             HideRows += 4;
             var rightBindData = right.rightInfoNumber.Find(x => x.title.Contains("经济舱 TBR"));
-            if (rightBindData!= null)
+            if (rightBindData != null)
             {
                 //经济舱 + 双人间 TBR
                 designer.SetDataSource("lblJJCTBRDRCB", rightBindData.cb);
@@ -7451,7 +7461,7 @@ namespace OASystem.API.Controllers
                 leftBindData = left.leftinfoNumber.Find(x => x.title.Contains("经济舱"));
                 if (leftBindData != null)
                 {
-                   
+
                     designer.SetDataSource("BJPJJCCB", leftBindData.cb);
                     designer.SetDataSource("BJPJJCPnum", leftBindData.rs);
                     designer.SetDataSource("BJPJJCXS", leftBindData.xs);
@@ -7582,7 +7592,7 @@ namespace OASystem.API.Controllers
                     designer.SetDataSource("BGWDRLR", decimal.Parse(leftBindData.cb) * decimal.Parse(leftBindData.xs) - decimal.Parse(leftBindData.cb));
                     designer.SetDataSource("BGWZLR", ((decimal.Parse(leftBindData.cb) * decimal.Parse(leftBindData.xs)) - decimal.Parse(leftBindData.cb)) * decimal.Parse(leftBindData.rs));
                 }
-                   
+
 
                 #region 优化方案
                 //Dictionary<string, object> excelBind = new Dictionary<string, object>();
@@ -7610,14 +7620,14 @@ namespace OASystem.API.Controllers
 
                 #region B段Right信息
 
-                 right = dto.rightInfo.Find(x => x.Type == "B");
+                right = dto.rightInfo.Find(x => x.Type == "B");
                 if (right == null)
                 {
                     return Ok(jw);
                 }
 
                 rightBindData = right.rightInfoNumber.Find(x => x.title.Contains("经济舱 TBR"));
-                if (rightBindData!= null)
+                if (rightBindData != null)
                 {
                     //经济舱 + 双人间 TBR
                     designer.SetDataSource("BlblJJCTBRDRCB", rightBindData.cb);
@@ -7939,7 +7949,7 @@ namespace OASystem.API.Controllers
                             continue;
                         }
 
-                        TzAirDesc += "(" + index + ".) "+item+"    " + (decimal.Parse(Ainfo.cb) * decimal.Parse(Ainfo.xs)).ToString("#0.00") + "/人  共" + Ainfo.rs + "  ........小计RMB  " + (decimal.Parse(Ainfo.cb) * decimal.Parse(Ainfo.xs) * decimal.Parse(Ainfo.rs)).ToString("#0.00") + "\n";
+                        TzAirDesc += "(" + index + ".) " + item + "    " + (decimal.Parse(Ainfo.cb) * decimal.Parse(Ainfo.xs)).ToString("#0.00") + "/人  共" + Ainfo.rs + "  ........小计RMB  " + (decimal.Parse(Ainfo.cb) * decimal.Parse(Ainfo.xs) * decimal.Parse(Ainfo.rs)).ToString("#0.00") + "\n";
                         index++;
                     }
                 }
@@ -8138,13 +8148,13 @@ namespace OASystem.API.Controllers
                         }
                     }
                 }
-                
+
                 GroupCostModulePromptView _view = new GroupCostModulePromptView();
-;
+                ;
                 List<GroupCostModulePromptInfo> _ModulePromptInfos = new List<GroupCostModulePromptInfo>(); //机票存储多段
 
                 //op,酒店单段模式存储
-                GroupCostModulePromptInfo _ModulePromptInfo = new GroupCostModulePromptInfo() 
+                GroupCostModulePromptInfo _ModulePromptInfo = new GroupCostModulePromptInfo()
                 {
                     CurrencyCode = _GroupCostParameters[0].Currency,
                     Rate = _GroupCostParameters[0].Rate,
@@ -8190,7 +8200,7 @@ namespace OASystem.API.Controllers
                     if (_GroupCostParameters.Count > 1)
                     {
                         modulePromptInfo.CostTypeNumber = item.CostTypenumber;
-                       
+
                     }
                     else
                     {
@@ -8203,14 +8213,14 @@ namespace OASystem.API.Controllers
                         modulePromptInfo.TotalCost = item.DJCB;
                     }
 
-                    List<string> costTypes = new List<string>() { "A","B" };
+                    List<string> costTypes = new List<string>() { "A", "B" };
 
                     List<Grp_GroupCost> _GroupCostsTypeData = new List<Grp_GroupCost>();
                     var _GroupCostsDuplicates = _GroupCostParameters.GroupBy(x => x.CostType).Select(y => y.FirstOrDefault());
                     if (_GroupCostsDuplicates.Count() == 1)
                     {
                         _GroupCostsTypeData = _GroupCosts;
-                        
+
                     }
                     else
                     {
@@ -8255,7 +8265,7 @@ namespace OASystem.API.Controllers
                                 {
                                     Date = it.Date,  //日期
                                     CarFee = (it.CarCost + it.CFM + it.CFOF) * _rate * _scale, //车费用
-                                    GuideFee = (it.TGS + it.TGOF + it.TGM+ it.TGA + it.TGTF + it.TGEF) * _rate * _scale, //导游费用
+                                    GuideFee = (it.TGS + it.TGOF + it.TGM + it.TGA + it.TGTF + it.TGEF) * _rate * _scale, //导游费用
                                     MealFee = (it.B + it.L + it.D) * _rate * _scale,  //餐食费
                                     TicketFee = it.EF * _rate * _scale,  //门票费 
                                     TipFee = (it.TGTips + it.DRVTips) * _rate * _scale, //小费
@@ -8307,10 +8317,10 @@ namespace OASystem.API.Controllers
                     _ModulePromptInfo.Data = _ModuleSubPromptInfo;
                     _ModulePromptInfos.Add(_ModulePromptInfo);
                 }
-                
+
                 _view.ModulePromptInfos = _ModulePromptInfos;
 
-                return Ok(JsonView(true,"操作成功!", _view));
+                return Ok(JsonView(true, "操作成功!", _view));
             }
             catch (Exception ex)
             {
@@ -8930,7 +8940,7 @@ namespace OASystem.API.Controllers
                 {
                     return Ok(JsonView(false, _view.Msg));
                 }
-                
+
                 return Ok(JsonView(true, _view.Msg, _view.Data));
             }
             catch (Exception ex)
@@ -8982,7 +8992,7 @@ namespace OASystem.API.Controllers
             }
             catch (Exception ex)
             {
-                return Ok(JsonView(false, "Catch:"+ex.Message));
+                return Ok(JsonView(false, "Catch:" + ex.Message));
             }
         }
 
@@ -9065,7 +9075,7 @@ namespace OASystem.API.Controllers
 
                 #endregion
 
-                Result data = await _hotelPriceRep._Details(_dto.PortType,_dto.Id);
+                Result data = await _hotelPriceRep._Details(_dto.PortType, _dto.Id);
                 if (data.Code != 0)
                 {
                     return Ok(JsonView(false, data.Msg));
@@ -9107,9 +9117,9 @@ namespace OASystem.API.Controllers
 
                 if (_dto.Id == 0) // Add
                     if (pageFunAuthView.AddAuth == 0) return Ok(JsonView(false, "您没有添加权限!"));
-                else if (_dto.Id > 0) // Edit
-                    if (pageFunAuthView.EditAuth == 0) return Ok(JsonView(false, "您没有编辑权限!"));
-                else return Ok(JsonView(false, "请输入正确的数据Id!"));
+                    else if (_dto.Id > 0) // Edit
+                        if (pageFunAuthView.EditAuth == 0) return Ok(JsonView(false, "您没有编辑权限!"));
+                        else return Ok(JsonView(false, "请输入正确的数据Id!"));
 
                 #endregion
 
@@ -9336,7 +9346,7 @@ namespace OASystem.API.Controllers
                             }
                             if (clientIds_int.Count > 0)
                             {
-                                var _clientDatas =  _sqlSugar.Queryable<Crm_DeleClient>().Where(it => it.IsDel == 0 && clientIds_int.Contains(it.Id)).ToList();
+                                var _clientDatas = _sqlSugar.Queryable<Crm_DeleClient>().Where(it => it.IsDel == 0 && clientIds_int.Contains(it.Id)).ToList();
                                 foreach (var client in _clientDatas)
                                 {
                                     //男
@@ -9344,9 +9354,9 @@ namespace OASystem.API.Controllers
                                     //女
                                     else if (client.Sex == 1) guestName += $"Ms.";
 
-                                    if (!String.IsNullOrEmpty(client.FirstName+ client.LastName))
+                                    if (!String.IsNullOrEmpty(client.FirstName + client.LastName))
                                     {
-                                        guestName += $"{string.Join("",client.FirstName.GetTotalPingYin()).ToUpper()} {string.Join("", client.LastName.GetTotalPingYin()).ToUpper()},";
+                                        guestName += $"{string.Join("", client.FirstName.GetTotalPingYin()).ToUpper()} {string.Join("", client.LastName.GetTotalPingYin()).ToUpper()},";
                                     }
 
                                     //guestName += $"{client.Pinyin},";
@@ -9439,7 +9449,7 @@ namespace OASystem.API.Controllers
                 return Ok(JsonView(false, ex.Message));
             }
 
-           
+
 
         }
 
@@ -9572,11 +9582,11 @@ namespace OASystem.API.Controllers
                     tableOne.Rows.RemoveAt(dt.Rows.Count + 1);
                 }
                 string strFileName = di.TeamName + "酒店确认单.doc";
-               
+
                 doc.Save(AppSettingsHelper.Get("WordBasePath") + "HotelStatement/" + strFileName);
                 string url = AppSettingsHelper.Get("WordBaseUrl") + "Office/Word/HotelStatement/" + strFileName;
                 return Ok(JsonView(true, "成功", url));
-                
+
             }
             catch (Exception ex)
             {
@@ -9939,7 +9949,7 @@ namespace OASystem.API.Controllers
 
             #endregion
 
-            var viewData = await _tourClientListRep._ItemByDiId(_dto.PortType,_dto.DiId);
+            var viewData = await _tourClientListRep._ItemByDiId(_dto.PortType, _dto.DiId);
             if (viewData.Code != 0)
             {
                 return Ok(JsonView(false, viewData.Msg));
@@ -10038,7 +10048,8 @@ namespace OASystem.API.Controllers
             if (_dto.Id == 0) //添加
             {
                 if (pageFunAuthView.AddAuth == 0) return Ok(JsonView(false, "您没有添加权限!"));
-            }else if (_dto.Id >= 0) //修改
+            }
+            else if (_dto.Id >= 0) //修改
             {
                 if (pageFunAuthView.EditAuth == 0) return Ok(JsonView(false, "您没有编辑权限!"));
             }
@@ -10075,9 +10086,9 @@ namespace OASystem.API.Controllers
             #region 页面操作权限验证
             pageFunAuthView = await GeneralMethod.PostUserPageFuncDatas(_dto.UserId, _dto.PageId);
 
-           
+
             if (pageFunAuthView.AddAuth == 0) return Ok(JsonView(false, "您没有添加权限!"));
-           
+
 
             #endregion
 
@@ -10164,13 +10175,17 @@ namespace OASystem.API.Controllers
 	                                                   Left Join Crm_CustomerCert cc2 On dc.Id = cc2.DcId And cc2.SdId = 774 And cc2.IsDel = 0
 	                                                   Where dc.IsDel = 0) temp 
                                                On temp.DcId =tcl.ClientId  
-                                               Where tcl.IsDel = 0 And tcl.DiId = {0}",_dto.DiId);
+                                               Where tcl.IsDel = 0 And tcl.DiId = {0}", _dto.DiId);
             List<TourClientListDetailsView> DcList = await _sqlSugar.SqlQueryable<TourClientListDetailsView>(clientSql).ToListAsync();
 
             if (DcList.Count < 0) return Ok(JsonView(false, "该团未录入客户名单!"));
 
             //载入模板
             string tempPath = AppSettingsHelper.Get("WordBasePath") + "Template/dwon_团组人员列表模板.doc";
+            if (_dto.Language == 1)
+            {
+                tempPath = AppSettingsHelper.Get("WordBasePath") + "Template/EN_Down_团组人员列表模板.doc";
+            }
 
             //载入模板
             var doc = new Document(tempPath);
@@ -10184,36 +10199,114 @@ namespace OASystem.API.Controllers
 
             var rowStart = tableOne.Rows[0]; //获取第1行
 
-            //循环赋值
-            for (int i = 0; i < DcList.Count; i++)
+            if (_dto.Language == 0)
             {
-                builder.MoveToCell(0, i + 1, 0, 0);
-                builder.Write(DcList[i].LastName + DcList[i].FirstName);
+                //循环赋值
+                for (int i = 0; i < DcList.Count; i++)
+                {
+                    builder.MoveToCell(0, i + 1, 0, 0);
+                    builder.Write(DcList[i].LastName + DcList[i].FirstName);
 
-                builder.MoveToCell(0, i + 1, 1, 0);
-                int sex = DcList[i].Sex;
-                string sexStr = string.Empty;
-                if (sex == 0) sexStr = "男";
-                else if (sex == 1) sexStr = "女";
-                else sexStr = "未设置";
-                builder.Write(sexStr);
+                    builder.MoveToCell(0, i + 1, 1, 0);
+                    int sex = DcList[i].Sex;
+                    string sexStr = string.Empty;
+                    if (sex == 0) sexStr = "男";
+                    else if (sex == 1) sexStr = "女";
+                    else sexStr = "未设置";
+                    builder.Write(sexStr);
 
-                builder.MoveToCell(0, i + 1, 2, 0);
-                string birthDay = DcList[i].BirthDay;
-                string birthDayStr = string.Empty;
-                if (!string.IsNullOrEmpty(birthDay))
-                {
-                    birthDayStr = Convert.ToDateTime(birthDay).ToString("yyyy-MM-dd");
-                }
-                builder.Write(birthDayStr);
+                    builder.MoveToCell(0, i + 1, 2, 0);
+                    string birthDay = DcList[i].BirthDay;
+                    string birthDayStr = string.Empty;
+                    if (!string.IsNullOrEmpty(birthDay))
+                    {
+                        birthDayStr = Convert.ToDateTime(birthDay).ToString("yyyy-MM-dd");
+                    }
+                    builder.Write(birthDayStr);
 
-                builder.MoveToCell(0, i + 1, 3, 0);
-                builder.Write(DcList[i].CompanyFullName);
+                    builder.MoveToCell(0, i + 1, 3, 0);
+                    builder.Write(DcList[i].CompanyFullName);
+
+                    builder.MoveToCell(0, i + 1, 4, 0);
+                    builder.Write(DcList[i].Job);
+                }
 
-                builder.MoveToCell(0, i + 1, 4, 0);
-                builder.Write(DcList[i].Job);
             }
+            else if (_dto.Language == 1)
+            {
+                List<Res_PositionEnglishComparison> listPEC = _setDataRep.Query<Res_PositionEnglishComparison>(s => s.IsDel == 0).ToList();
+                List<Res_CompanyEnglishComparison> listCEC = _setDataRep.Query<Res_CompanyEnglishComparison>(s => s.IsDel == 0).ToList();
+
+                //循环赋值
+                for (int i = 0; i < DcList.Count; i++)
+                {
+                    string PY_Last = DcList[i].Pinyin.Split('/')[0];
+                    string PY_First = DcList[i].Pinyin.Split('/')[1];
+                    string PYName = PY_First + " " + PY_Last;
+                    builder.MoveToCell(0, i + 1, 0, 0);
+                    builder.Write(PYName);
+
+                    string sex = DcList[i].Sex == 0 ? "Male" : DcList[i].Sex == 1 ? "Female" : "";
+                    builder.MoveToCell(0, i + 1, 1, 0);
+                    builder.Write(sex);
+
+                    DateTime birthDt;
+                    bool b_birth = DateTime.TryParse(DcList[i].BirthDay, out birthDt);
+                    string birthday = b_birth ? birthDt.ToString("yyyy-MM-dd") : "";
+                    builder.MoveToCell(0, i + 1, 2, 0);
+                    builder.Write(birthday);
+
+                    string company = "";
+                    try
+                    {
+                        if (!string.IsNullOrEmpty(DcList[i].CompanyFullName.ToString()))
+                        {
+                            //查询对照表
+                            Res_CompanyEnglishComparison tempCec = listCEC.FirstOrDefault(s => s.zhName.Contains(DcList[i].CompanyFullName.ToString().Trim()));
+                            if (tempCec != null)
+                            {
+                                company = tempCec.enName;
+                            }
+                            //翻译
+                            else
+                            {
+                                company = await YouDaoApiTools.GetOCR_ReTrans(DcList[i].CompanyFullName.ToString().Trim());
+                            }
+                        }
+                    }
+                    catch (Exception)
+                    {
+
+                    }
+                    builder.MoveToCell(0, i + 1, 3, 0);
+                    builder.Write(company);
+
+                    string job = "";
+                    try
+                    {
+                        if (!string.IsNullOrEmpty(DcList[i].Job.ToString()))
+                        {
+                            //查询对照表
+                            Res_PositionEnglishComparison tempPec = listPEC.FirstOrDefault(s => s.zhName == DcList[i].Job.ToString().Trim());
+                            if (tempPec != null)
+                            {
+                                job = tempPec.enName;
+                            }
+                            //翻译
+                            else
+                            {
+                                job = await YouDaoApiTools.GetOCR_ReTrans(DcList[i].Job.ToString().Trim());
+                            }
+                        }
+                    }
+                    catch (Exception)
+                    {
 
+                    }
+                    builder.MoveToCell(0, i + 1, 4, 0);
+                    builder.Write(job);
+                }
+            }
 
             //删除多余行
             while (tableOne.Rows.Count > DcList.Count + 1)
@@ -10282,7 +10375,7 @@ namespace OASystem.API.Controllers
         [ProducesResponseType(typeof(JsonView), StatusCodes.Status200OK)]
         public async Task<IActionResult> PostInvertedListCreate(InvertedListCreateDto dto)
         {
-            var viewData = await _invertedListRep._Create(dto.PortType,dto.DiId);
+            var viewData = await _invertedListRep._Create(dto.PortType, dto.DiId);
             if (viewData.Code != 0)
             {
                 return Ok(JsonView(false, viewData.Msg));
@@ -10378,7 +10471,7 @@ namespace OASystem.API.Controllers
             #endregion
 
             var fileDir = AppSettingsHelper.Get("WordBasePath");
-            string fileName = $"{teamName}团出行准备流程表.doc";  
+            string fileName = $"{teamName}团出行准备流程表.doc";
             string filePath = fileDir + $@"InvertedList/{fileName}";
             doc.Save(filePath);
             string Url = $@"{AppSettingsHelper.Get("WordBaseUrl")}Office/Word/InvertedList/{fileName}";

+ 6 - 0
OASystem/OASystem.Domain/Dtos/Groups/TourClientListDto.cs

@@ -318,5 +318,11 @@ namespace OASystem.Domain.Dtos.Groups
     public class PostTourClientListDownloadFile: UserPageFuncDtoBase
     {
         public int DiId { get; set; }
+
+
+        /// <summary>
+        /// 语言 0:中文,1:英文
+        /// </summary>
+        public int Language { get; set; } = 0;
     }
 }

+ 26 - 0
OASystem/OASystem.Domain/Entities/Resource/Res_CompanyEnglishComparison.cs

@@ -0,0 +1,26 @@
+using System;
+using System.Collections.Generic;
+using System.Linq;
+using System.Text;
+using System.Threading.Tasks;
+
+namespace OASystem.Domain.Entities.Resource
+{
+    /// <summary>
+    /// 单位机构中英对照表
+    /// </summary>
+    [SugarTable("Res_CompanyEnglishComparison")]
+    public class Res_CompanyEnglishComparison: EntityBase
+    {
+        /// <summary>
+        /// 中文名称
+        /// </summary>
+        [SugarColumn(IsNullable = true, ColumnDataType = "varchar(500)")]
+        public string zhName { get; set; }
+        /// <summary>
+        /// 英文名称
+        /// </summary>
+        [SugarColumn(IsNullable = true, ColumnDataType = "nvarchar(500)")]
+        public string enName { get; set; }
+    }
+}

+ 27 - 0
OASystem/OASystem.Domain/Entities/Resource/Res_PositionEnglishComparison.cs

@@ -0,0 +1,27 @@
+using System;
+using System.Collections.Generic;
+using System.Linq;
+using System.Text;
+using System.Threading.Tasks;
+
+namespace OASystem.Domain.Entities.Resource
+{
+
+    /// <summary>
+    /// 职务中英对照表
+    /// </summary>
+    [SugarTable("Res_PositionEnglishComparison")]
+    public class Res_PositionEnglishComparison:EntityBase
+    {
+        /// <summary>
+        /// 中文名称
+        /// </summary>
+        [SugarColumn(IsNullable = true, ColumnDataType = "varchar(200)")]
+        public string zhName { get; set; }
+        /// <summary>
+        /// 英文名称
+        /// </summary>
+        [SugarColumn(IsNullable = true, ColumnDataType = "varchar(500)")]
+        public string enName { get; set; }
+    }
+}