Browse Source

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

jiangjc 10 months ago
parent
commit
b16e8a5702

+ 29 - 11
OASystem/OASystem.Api/Controllers/ResourceController.cs

@@ -1835,9 +1835,7 @@ Inner Join Sys_Department as d With(Nolock) On u.DepId=d.Id Where m.Id={0} ", _m
 
             //团组公务信息
             var obDatas = _sqlSugar.Queryable<Res_OfficialActivities>().Where(it => it.IsDel == 0 && it.DiId == dto.DiId).OrderBy(it => it.Date).ToList();
-            if (obDatas.Count < 1) return Ok(JsonView(false, "请先录入公务信息!"));
-
-            //请示数据库范例数据
+            //if (obDatas.Count < 1) return Ok(JsonView(false, "请先录入公务信息!"));
 
             //团组客户名单
             var guestResult = _tourClientListRep._ItemByDiId(1, dto.DiId);
@@ -1953,18 +1951,38 @@ Inner Join Sys_Department as d With(Nolock) On u.DepId=d.Id Where m.Id={0} ", _m
                 //scheduling //行程安排
                 string schedulingStr = $"[OP行程单暂未生成]";
 
-                var tripInfo = _sqlSugar.Queryable<Grp_TravelList>().Where(it => it.IsDel == 0 && it.Diid == groupInfo.Id).OrderBy(it => it.Days).ToList();
+                #region op行程 数据库读取
+                //var tripInfo = _sqlSugar.Queryable<Grp_TravelList>().Where(it => it.IsDel == 0 && it.Diid == groupInfo.Id).OrderBy(it => it.Days).ToList();
 
-                if (tripInfo.Count > 0 )
-                {
-                    schedulingStr = "";
+                //if (tripInfo.Count > 0)
+                //{
+                //    schedulingStr = "";
 
-                    foreach (var item in tripInfo)
-                    {
-                        schedulingStr += $"{item.Date}({item.WeekDay})\r\n{item.Trip}\r\n";
-                    }
+                //    foreach (var item in tripInfo)
+                //    {
+                //        schedulingStr += $"{item.Date}({item.WeekDay})\r\n{item.Trip}\r\n";
+                //    }
+                //}
+
+                #endregion
+
+                #region op行程 根据黑屏代码录入
+
+                var opTripView = GeneralMethod.GetBriefStroke(groupInfo.Id);
+                if (opTripView.Code != 0) schedulingStr = $"[{opTripView.Msg}]";
+
+                schedulingStr = "";
+
+                List<Grp_TravelList> travelList = new List<Grp_TravelList>();
+                travelList = opTripView.Data as List<Grp_TravelList>;
+
+                foreach (var item in travelList)
+                {
+                    schedulingStr += $"{item.Date}({item.WeekDay})\r\n{item.Trip}\r\n";
                 }
 
+                #endregion
+
                 dic.Add("Scheduling", schedulingStr);
 
                 #region 填充word模板书签内容

+ 581 - 29
OASystem/OASystem.Api/OAMethodLib/GeneralMethod.cs

@@ -1,6 +1,7 @@
 
 using Microsoft.AspNetCore.SignalR;
 using Microsoft.International.Converters.PinYinConverter;
+using Microsoft.VisualBasic;
 using NPOI.HSSF.Util;
 using OASystem.API.OAMethodLib.Hub.HubClients;
 using OASystem.API.OAMethodLib.Hub.Hubs;
@@ -34,13 +35,13 @@ namespace OASystem.API.OAMethodLib
         private readonly static TableOperationRecordRepository _tableOperationRecordRep = AutofacIocManager.Instance.GetService<TableOperationRecordRepository>();
         private readonly static MessageRepository _messageRep = AutofacIocManager.Instance.GetService<MessageRepository>();
         private readonly static IHubContext<ChatHub, IChatClient> _hubContext = AutofacIocManager.Instance.GetService<IHubContext<ChatHub, IChatClient>>();
-
+        private readonly static string[] weekdays = new string[] { "星期日", "星期一", "星期二", "星期三", "星期四", "星期五", "星期六" };
         #region 员工注册默认添加基础页面
 
         /// <summary>
         /// 默认职位权限
         /// </summary>
-        public static bool DefaultPostAuth(int depId,int postId, int userId,int createUserId)
+        public static bool DefaultPostAuth(int depId, int postId, int userId, int createUserId)
         {
             if (depId < 1) return false;
             if (postId < 1) return false;
@@ -67,7 +68,7 @@ namespace OASystem.API.OAMethodLib
 
                 if (depId == 7) //国交部特殊处理
                 {
-                    List<string> postNames = new List<string>() { "主管","经理" };
+                    List<string> postNames = new List<string>() { "主管", "经理" };
                     //岗位页面
                     if (jobPublicPageData != null)
                     {
@@ -91,9 +92,9 @@ namespace OASystem.API.OAMethodLib
             if (pageData.Count > 0)
             {
                 //页面操作权限数据(添加修改等...)
-                var pageFunctionData = _dirRep._sqlSugar.Queryable<Sys_SystemMenuAndFunction>().Where(it => pageData.Contains(it.SmId) && it.IsDel == 0 ).ToList();
+                var pageFunctionData = _dirRep._sqlSugar.Queryable<Sys_SystemMenuAndFunction>().Where(it => pageData.Contains(it.SmId) && it.IsDel == 0).ToList();
 
-                var defaultPageData = pageFunctionData.Select(it => new Sys_UserAuthority() { 
+                var defaultPageData = pageFunctionData.Select(it => new Sys_UserAuthority() {
                     UId = userId,
                     SmId = it.SmId,
                     FId = it.FId,
@@ -438,7 +439,7 @@ namespace OASystem.API.OAMethodLib
             string sql = string.Format(@"Select Id,TeamName,TourCode,ClientName,VisitCountry,VisitStartDate,VisitEndDate,VisitDays,VisitPNumber 
                                             From Grp_DelegationInfo Where Id In({0}) And IsDel = 0 Order By Id Desc", diIds);
             _ShareGroupInfoViews = await _dirRep._sqlSugar.SqlQueryable<Web_ShareGroupInfoView>(sql).ToListAsync();
-                
+
             return _ShareGroupInfoViews;
         }
 
@@ -515,7 +516,7 @@ namespace OASystem.API.OAMethodLib
                         {
                             currRate = Convert.ToDecimal(MSellPri) / 100M;
                         }
-                        
+
                         rateInit += $@"|{currencyName}({code}):{currRate.ToString("#0.0000")}";
                     }
                 }
@@ -587,10 +588,10 @@ namespace OASystem.API.OAMethodLib
 
             var userDatas = await _teamRateRep._sqlSugar
                                               .Queryable<Sys_Users>()
-                                              .LeftJoin<Sys_Department>((su,sd) => su.DepId == sd.Id && sd.IsDel == 0)
-                                              .LeftJoin<Sys_JobPost>((su,sd,sjp) => su.JobPostId == sjp.Id && sjp.IsDel == 0)
+                                              .LeftJoin<Sys_Department>((su, sd) => su.DepId == sd.Id && sd.IsDel == 0)
+                                              .LeftJoin<Sys_JobPost>((su, sd, sjp) => su.JobPostId == sjp.Id && sjp.IsDel == 0)
                                               .Where(su => su.IsDel == 0)
-                                              .Select((su,sd,sjp) => new {
+                                              .Select((su, sd, sjp) => new {
                                                   su.DepId,
                                                   sd.DepName,
                                                   su.JobPostId,
@@ -664,7 +665,7 @@ namespace OASystem.API.OAMethodLib
                     CreateUserId = userId
                 }).ToList()
             );
-            
+
             //80  签证  --> 国交部门(7) 签证(26) 岗位
             _GroupsTaskAssignments.AddRange(
                 userDatas
@@ -707,18 +708,18 @@ namespace OASystem.API.OAMethodLib
 
 
             //98  其他款项  --> 总经办部门(1) 总经理(1) 岗位/国交部门(7)(ALL) 岗位/财务部门(3)(ALL) 岗位/策划部门(5)(ALL) 岗位/人事部门(4) 采购(74) 岗位
-            List<int> depIds = new List<int>() { 7,3,5 };
-            List<int> jobIds = new List<int>() { 1,74};
+            List<int> depIds = new List<int>() { 7, 3, 5 };
+            List<int> jobIds = new List<int>() { 1, 74 };
             _GroupsTaskAssignments.AddRange(
                 userDatas
                 .Where(it => depIds.Contains(it.DepId) || jobIds.Contains(it.JobPostId))
                 .Select(it => new Grp_GroupsTaskAssignment()
-                    {
-                        DIId = diId,
-                        CTId = 98,
-                        UId = it.Id,
-                        CreateUserId = userId
-                    }).ToList()
+                {
+                    DIId = diId,
+                    CTId = 98,
+                    UId = it.Id,
+                    CreateUserId = userId
+                }).ToList()
             );
 
             //1015 超支费用,285 收款退还  --> 财务部门(ALL)岗位
@@ -761,7 +762,7 @@ namespace OASystem.API.OAMethodLib
 
             if (_GroupsTaskAssignments.Count > 0)
             {
-                var addId =_teamRateRep._sqlSugar.Insertable(_GroupsTaskAssignments).ExecuteCommand();
+                var addId = _teamRateRep._sqlSugar.Insertable(_GroupsTaskAssignments).ExecuteCommand();
             }
 
             result.Code = 0;
@@ -849,7 +850,7 @@ namespace OASystem.API.OAMethodLib
         /// </summary>
         /// <param name="rateRemark"></param>
         /// <returns></returns>
-        public static async Task<List<TeamRateDescAddCurrencyIdView>> SplitExchangeRate(this string rateRemark) 
+        public static async Task<List<TeamRateDescAddCurrencyIdView>> SplitExchangeRate(this string rateRemark)
         {
             List<TeamRateDescAddCurrencyIdView> _view = new List<TeamRateDescAddCurrencyIdView>();
 
@@ -1399,7 +1400,7 @@ namespace OASystem.API.OAMethodLib
             return months;
         }
 
-        
+
         /// <summary>
         /// 获取季度对应的起始天数
         /// </summary>
@@ -1409,7 +1410,7 @@ namespace OASystem.API.OAMethodLib
         {
             List<MonthInfo> months = new List<MonthInfo>();
 
-            months.Add(new MonthInfo() { Month = 1, Days = new DaysInfo() { BeginDays = 1, EndDays = 31 }});  //1.1 - 3.31
+            months.Add(new MonthInfo() { Month = 1, Days = new DaysInfo() { BeginDays = 1, EndDays = 31 } });  //1.1 - 3.31
             months.Add(new MonthInfo() { Month = 2, Days = new DaysInfo() { BeginDays = 1, EndDays = 31 } }); //4.1 - 6.30
             months.Add(new MonthInfo() { Month = 3, Days = new DaysInfo() { BeginDays = 1, EndDays = 31 } }); //7.1 - 9.31
             months.Add(new MonthInfo() { Month = 4, Days = new DaysInfo() { BeginDays = 1, EndDays = 31 } }); //10.1 - 12.31
@@ -1434,12 +1435,12 @@ namespace OASystem.API.OAMethodLib
 
         #region op行程单,黑屏幕代码
 
-        public static string GetCountryStandingTime(int diId) 
+        public static string GetCountryStandingTime(int diId)
         {
-            DataTable datas =  GetTableByBlackCode(diId);
+            DataTable datas = GetTableByBlackCode(diId);
 
             string countryStr = "[黑屏代码未录入].";
-            if (datas.Rows.Count > 0 )
+            if (datas.Rows.Count > 0)
             {
                 var airDatas = from row in datas.AsEnumerable()
                                select new
@@ -1456,7 +1457,7 @@ namespace OASystem.API.OAMethodLib
                 int index = 0;
                 List<string> cityCodes = new List<string>();
                 //去掉开始和结束城市
-                foreach (var row in airDatas) 
+                foreach (var row in airDatas)
                 {
                     if (!string.IsNullOrEmpty(row.Three))
                     {
@@ -1498,7 +1499,7 @@ namespace OASystem.API.OAMethodLib
         /// </summary>
         /// <param name="diid"></param>
         /// <returns></returns>
-        public static  DataTable GetTableByBlackCode(int diid)
+        public static DataTable GetTableByBlackCode1(int diid)
         {
             //黑屏代码信息
             List<Air_TicketBlackCode> listcode = _dirRep._sqlSugar.Queryable<Air_TicketBlackCode>().Where(x => x.DiId == diid && x.IsDel == 0).ToList();
@@ -1727,6 +1728,135 @@ namespace OASystem.API.OAMethodLib
 
             return dt;
         }
+        
+        private readonly static string[] excludeArr = new string[] { "[中转]", };
+
+        /// <summary>
+        ///根据机票黑屏代码整理DataTable
+        /// </summary>
+        /// <param name="diid"></param>
+        /// <returns></returns>
+        public static DataTable GetTableByBlackCode(int diid)
+        {
+            //黑屏代码信息
+            List<Air_TicketBlackCode> listcode = _dirRep._sqlSugar.Queryable<Air_TicketBlackCode>().Where(x => x.DiId == diid && x.IsDel == 0).ToList();
+
+            //测试数据为序号,航班号,起飞日期,三字码,起飞时刻,到达时刻,出发航站楼,到达航站楼,机型,飞行时间
+            //1.3U8391   TU17NOV CTUCAI  0220 0715   T1 T2  330  10H55M
+            DataTable dt = new DataTable();
+            dt.Columns.Add("Fliagtcode", typeof(string)); //航班号
+            dt.Columns.Add("Date", typeof(string));//起飞日期
+            dt.Columns.Add("Three", typeof(string));//三字码
+            dt.Columns.Add("StartTime", typeof(string));//起飞时刻
+            dt.Columns.Add("EndTime", typeof(string));//到达时刻
+            dt.Columns.Add("StartBuilding", typeof(string));//出发航站楼
+            dt.Columns.Add("EndBuilding", typeof(string));//到达航站楼
+            dt.Columns.Add("AirModel", typeof(string)); //机型
+            dt.Columns.Add("FlightTime", typeof(string));//飞行时间
+            dt.Columns.Add("Day", typeof(string));//整理的起飞日期;作为排序依据 
+            dt.Columns.Add("ArrivedDate", typeof(string));//整理的到达日期
+            dt.Columns.Add("Error", typeof(string));//整理的到达日期
+            dt.Columns.Add("Sign", typeof(string));//标识:0表示为原生黑屏代码、1表示“+1”新增的黑屏代码
+
+            //添加转机标识
+            dt.Columns.Add("isTransitShipment", typeof(bool));
+
+            //判断是否录入黑屏代码
+            if (listcode.Count() == 0 || listcode == null)
+            {
+                dt.Rows.Add(null, null, null, null, null, null, null, null, null, null, null, "黑屏代码未录入!", null, false);
+            }
+            else
+            {
+                //读取单段黑屏代码
+                for (int i = 0; i < listcode.Count; i++)
+                {
+                    //去除序号
+                    string[] CodeList = Regex.Split(listcode[i].BlackCode, "\\d+\\.", RegexOptions.IgnoreCase);
+                    //去除多余空格,方法一Linq扩展方法
+                    CodeList = CodeList.Where(str => !string.IsNullOrWhiteSpace(str)).ToArray();
+
+                    //读取单条黑屏代码
+                    for (int j = 0; j < CodeList.Count(); j++)
+                    {
+                        //去除多余空格,方法二使用Split()方法进行分割,分割有一个选项是RemoveEmptyEntries
+                        CodeList[j] = CodeList[j].Replace("\r\n", string.Empty).Replace("\\r\\n", string.Empty).TrimStart().TrimEnd();
+                        string[] Info = CodeList[j].Split(new char[] { ' ' }, StringSplitOptions.RemoveEmptyEntries);
+
+                        //去除多余空格
+                        Info = Info.Where(str => !string.IsNullOrWhiteSpace(str)).ToArray();
+
+                        //判断黑屏代码是否正确拆分; 理应拆成9段
+                        if (Info.TakeWhile((x) =>
+                        {
+                            return !excludeArr.Contains(x);
+                        }).Count() != 9)
+                        {
+                            dt.Rows.Add(null, null, null, null, null, null, null, null, null, null, null, "本团组第" + (i + 1) + "段黑屏代码中第" + (j + 1) + " 条有误,请联系机票同事核对", null, false);
+                            //MessageBoxEx.Show("第" + (i + 1) + "段黑屏代码中第" + (j + 1) + " 条有误, 请联系机票同事核对");
+                            return dt;
+                        }
+                        else
+                        {
+                            try
+                            {
+                                var monthEn = Info[1].Substring(4, 3);
+
+                                //月                  
+                                int month = Convert.ToInt32(GetLonger(monthEn));
+                                //日
+                                int day = Convert.ToInt32(Info[1].Substring(2, 2));
+
+                                var time = new DateTime(2023, month, day); //
+
+                                var isExist = Info.Contains("[中转]");
+
+                                //dt.Columns.Add("Fliagtcode", typeof(string)); //航班号
+                                //dt.Columns.Add("Date", typeof(string));//起飞日期
+                                //dt.Columns.Add("Three", typeof(string));//三字码
+                                //dt.Columns.Add("StartTime", typeof(string));//起飞时刻
+                                //dt.Columns.Add("EndTime", typeof(string));//到达时刻
+                                //dt.Columns.Add("StartBuilding", typeof(string));//出发航站楼
+                                //dt.Columns.Add("EndBuilding", typeof(string));//到达航站楼
+                                //dt.Columns.Add("AirModel", typeof(string)); //机型
+                                //dt.Columns.Add("FlightTime", typeof(string));//飞行时间
+                                //dt.Columns.Add("Day", typeof(string));//整理的起飞日期;作为排序依据 
+                                //dt.Columns.Add("ArrivedDate", typeof(string));//整理的到达日期
+                                //dt.Columns.Add("Error", typeof(string));//整理的到达日期
+                                //dt.Columns.Add("Sign", typeof(string));//标识:0表示为原生黑屏代码、1表示“+1”新增的黑屏代码
+                                dt.Rows.Add(Info[0],
+                                       Info[1],
+                                       Info[2],
+                                       Info[3],
+                                       Info[4],
+                                       Info[5],
+                                       Info[6],
+                                       Info[7],
+                                       Info[8],
+                                       time.ToString("yyyy-MM-dd"),
+                                       time.ToString("yyyy-MM-dd"),
+                                       "",
+                                       "0",
+                                       isExist
+                                       );
+
+                            }
+                            catch (Exception ex)
+                            {
+                                string exstr = ex.Message.ToString();
+                            }
+                        }
+
+                    }
+
+                    //排序
+                    dt.DefaultView.Sort = "Day asc";
+                    dt = dt.DefaultView.ToTable();
+                }
+            }
+
+            return dt;
+        }
 
         /// <summary>
         /// 根据星期,月份的缩写,转换成数字或者全称
@@ -2059,7 +2189,7 @@ namespace OASystem.API.OAMethodLib
         /// <param name="diid">团组Id</param>
         /// <param name="separator">分隔符</param>
         /// <returns></returns>
-        public static string GetGroupCityLine(int diid,string separator)
+        public static string GetGroupCityLine(int diid, string separator)
         {
             string city = string.Empty;
             var blackCode = _dirRep._sqlSugar.Queryable<Air_TicketBlackCode>().Where(x => x.IsDel == 0 && x.DiId == diid).ToList();
@@ -2131,6 +2261,428 @@ namespace OASystem.API.OAMethodLib
             return city;
         }
 
+        /// <summary>
+        /// 获取黑屏代码日期列表
+        /// </summary>
+        /// <param name="dt"></param>
+        /// <returns></returns>
+        public static List<string> GetTimeListByDataTable(DataTable dt)
+        {
+            DateTime datestart = Convert.ToDateTime(dt.Rows[0]["Day"].ToString());
+            DateTime dateend = Convert.ToDateTime(dt.Rows[dt.Rows.Count - 1]["ArrivedDate"].ToString());
+
+            List<string> timeList = new List<string>();
+            while (datestart <= dateend)
+            {
+                timeList.Add(datestart.ToString("yyyy-MM-dd"));
+                datestart = datestart.AddDays(1);
+            }
+            return timeList;
+        }
+
+        const decimal conversion = 1.61M;
+
+        /// <summary>
+        /// 简要行程
+        /// </summary>
+        /// <param name="diid"></param>
+        /// <returns></returns>
+        public static Result GetBriefStroke (int diid)
+        {
+            DataTable resultTable = GetTableByBlackCode(diid);
+
+            if (resultTable == null)
+            {
+                return new Result { Code = -1, Msg = "黑屏代码有误或黑屏代码未录入" };
+            }
+
+            if (resultTable.Rows.Count == 0 || string.IsNullOrWhiteSpace(resultTable.Rows[0][1].ToString()))
+            {
+                string msg = string.Empty;
+                if (resultTable.Rows.Count > 0)
+                {
+                    msg = resultTable.Rows[0]["Error"].ToString();
+                }
+                return new Result { Code = -1, Msg = $"黑屏代码有误;{msg}" };
+
+            }
+
+
+            var timeArr = GetTimeListByDataTable(resultTable);
+            var threeCodes = _dirRep._sqlSugar.Queryable<Res_ThreeCode>().Where(it => it.IsDel == 0).ToList();   //三字码
+            var airCompanys = _dirRep._sqlSugar.Queryable<Res_AirCompany>().Where(it => it.IsDel == 0).ToList(); //航司公司
+            var obDatas = _dirRep._sqlSugar.Queryable<Res_OfficialActivities>().Where(it => it.IsDel == 0 && it.DiId == diid).ToList(); //公务信息
+
+            var NewListTravel = new List<Grp_TravelList>();
+            var index = 0;
+            var stopCity = string.Empty;
+
+            foreach (var item in timeArr)
+            {
+                string trip = string.Empty;
+                string weekDay = string.Empty;
+                DateTime time = DateTime.Now;
+                if (DateTime.TryParse(item, out time))
+                {
+                    weekDay = weekdays[(int)time.DayOfWeek];
+                }
+                else
+                {
+                    weekDay = "日期格式不正确!";
+                }
+
+                var empty = "【未收入该三字码!请机票同事录入】";
+                var tabSelect = resultTable.Select(string.Format("Day = '{0}'", item));
+                var isMoreTraffic = false;
+                if (tabSelect.Length > 0)
+                {
+                    isMoreTraffic = true;
+                    var takeOffTime = DateTime.Parse(item);
+                    var fallToTime = DateTime.Parse(item);
+
+                    Res_ThreeCode start_Object = null;
+                    Res_ThreeCode end_Object = null;
+
+                    bool isTrade = false;
+
+                    //air 处理
+                    foreach (var tabRow in tabSelect)
+                    {
+
+                        takeOffTime = DateTime.Parse(item);
+                        fallToTime = DateTime.Parse(item);
+
+                        var takeOff = tabRow["StartTime"].ToString();
+                        var fallTo = tabRow["EndTime"].ToString();
+
+                        takeOffTime = takeOffTime.AddHours(int.Parse(takeOff.Substring(0, 2)));
+                        takeOffTime = takeOffTime.AddMinutes(int.Parse(takeOff.Substring(2, 2)));
+
+                        fallToTime = fallToTime.AddHours(int.Parse(fallTo.Substring(0, 2)));
+                        fallToTime = fallToTime.AddMinutes(int.Parse(fallTo.Substring(2, 2)));
+
+                        var threeCode = tabRow["Three"].ToString();
+                        var start = threeCode.Substring(0, 3);
+                        var end = threeCode.Substring(3, 3);
+                        stopCity = end;
+                        start_Object = threeCodes.Find(x => x.Three.ToUpper() == start.ToUpper());
+                        end_Object = threeCodes.Find(x => x.Three.ToUpper() == end.ToUpper());
+                        if (start_Object == null)
+                        {
+                            start_Object = new Res_ThreeCode()
+                            {
+                                AirPort = empty,
+                                AirPort_En = empty,
+                                City = empty,
+                                Country = empty,
+                                Four = empty,
+                                Three = empty,
+                            };
+                        }
+                        if (end_Object == null)
+                        {
+                            end_Object = new Res_ThreeCode()
+                            {
+                                AirPort = empty,
+                                AirPort_En = empty,
+                                City = empty,
+                                Country = empty,
+                                Four = empty,
+                                Three = empty,
+                            };
+                        }
+
+                        //航班号
+                        string flightcode = tabRow["Fliagtcode"].ToString();
+                        trip += $"{takeOffTime.ToString("HH:mm")}—{fallToTime.ToString("HH:mm")} {start_Object.City}—{end_Object.City} 航班号:{flightcode}\r\n";
+                    }
+
+                    //var airArrive = fallToTime;      //航班落地时间
+                    time = fallToTime.AddHours(1.5); //出机场一个半小时
+
+                    string Time = string.Empty;
+                    string Distance = string.Empty;
+                    int GetGoogleResult = 0;
+                    int GetDistResult = 0;
+                    JObject Result = null;
+                    try
+                    {
+                        Time = Result["routes"][0]["legs"][0]["duration"]["text"].ToString().Replace(" ", "").Trim();
+                        Distance = Result["routes"][0]["legs"][0]["distance"]["text"].ToString().Replace(" ", "").Trim();
+
+                        if (Time.Contains("hours"))
+                        {
+                            Time = Time.Replace("hours", "小时");
+                        }
+                        if (Time.Contains("hour"))
+                        {
+                            Time = Time.Replace("hour", "小时");
+                        }
+                        Time = Time.Replace("mins", "分钟");
+
+                        if (Distance.Contains("mi"))
+                        {
+                            var distSp = Regex.Split(Distance, "mi");
+                            if (distSp.Length > 0)
+                            {
+                                Distance = (decimal.Parse(distSp[0]) * conversion).ToString("#0.00") + " 公里";
+                            }
+                        }
+                        if (Distance.Contains("km"))
+                        {
+                            Distance = Distance.Replace("km", "公里");
+                        }
+
+                        if (Time.Contains("小时"))
+                        {
+                            var xs = Regex.Split(Time, "小时");
+                            var xsValue = int.Parse(xs[0]);
+                            var fz = Regex.Split(xs[1], "分钟");
+                            var fzValue = int.Parse(fz[0]);
+                            GetGoogleResult = xsValue * 60;
+                            GetGoogleResult += fzValue;
+
+                        }
+                        else if (Time.Contains("分钟"))
+                        {
+                            GetGoogleResult = int.Parse(Regex.Split(Time, "分钟")[0]);
+                        }
+                        if (Distance.Contains("公里"))
+                        {
+                            GetDistResult = (int)decimal.Parse(Regex.Split(Distance, "公里")[0]);
+                        }
+
+                        if (GetGoogleResult > 0 && GetGoogleResult % 5 != 0)
+                        {
+                            while (GetGoogleResult % 5 != 0)
+                            {
+                                GetGoogleResult++;
+                            }
+                        }
+                        if (GetDistResult % 5 != 0 && GetDistResult > 0)
+                        {
+                            while (GetDistResult % 5 != 0)
+                            {
+                                GetDistResult++;
+                            }
+                        }
+
+                        int H = (GetGoogleResult / 60);
+                        int m = (GetGoogleResult % 60);
+                        string TimeStr = string.Empty;
+                        if (H != 0)
+                        {
+                            if (H < 10)
+                            {
+                                TimeStr += "0" + H + "小时";
+                            }
+                            else
+                            {
+                                TimeStr += H + "小时";
+                            }
+                        }
+                        if (m < 10)
+                        {
+                            TimeStr += "0" + m + "分钟";
+                        }
+                        else
+                        {
+                            TimeStr += m + "分钟";
+                        }
+
+                        Time = TimeStr;
+                        Distance = GetDistResult.ToString() + "公里";
+                    }
+                    catch (Exception ex)
+                    {
+                        Time = "未知!";
+                        Distance = "未知!";
+                    }
+
+                    //trip += $"{time.ToString("HH:mm")} 搭乘专车前往市区({end_Object.AirPort} - {end_Object.City}市区 路程{Distance},耗时{Time})";
+                    //trip += $"{time.ToString("HH:mm")} 搭乘专车前往市区({end_Object.AirPort} - {end_Object.City}市区)";
+
+                    time = time.AddMinutes(GetGoogleResult);  //到达市区时间
+
+                    string tripDate = Convert.ToDateTime(item).ToString("M月d日");
+                    if (index == timeArr.Count - 1)
+                    {
+                        NewListTravel.Add(new Grp_TravelList
+                        {
+                            CreateTime = DateTime.Now,
+                            CreateUserId = 0,
+                            Diid = diid,
+                            Date = tripDate,
+                            Trip = trip,
+                            WeekDay = weekDay,
+                            Days = index + 1,
+                            Traffic_First = "飞机",
+                            Traffic_Second = "汽车",
+                            Diffgroup = 1,
+                            Issel = 1,
+                            IsDel = 0,
+                        });
+                        continue;
+                    }
+
+                    if (time.Day != fallToTime.Day)  //超出一天
+                    {
+                        NewListTravel.Add(new Grp_TravelList
+                        {
+                            CreateTime = DateTime.Now,
+                            CreateUserId = 0,
+                            Diid = diid,
+                            Date = tripDate,
+                            Trip = trip,
+                            WeekDay = weekDay,
+                            Days = index + 1,
+                            Traffic_First = "飞机",
+                            Traffic_Second = "汽车",
+                            Diffgroup = 1,
+                            Issel = 1,
+                            IsDel = 0,
+                        });
+                        continue;
+                    }
+
+                    var obInfo = obDatas.Find(it => Convert.ToDateTime(it.Date).ToString("M月d日").Equals(tripDate));
+                    string obtime = "";
+                    string obcontent = "";
+
+                    if (obInfo != null)
+                    {
+                        obtime = obInfo.Time;
+                        obcontent = $"拜访{obInfo.Client ?? "公务出访单位未录入"}{obInfo.Job ?? "公务出访联系人职务未录入"}{obInfo.Contact ?? "公务出访联系人职务未录入"}";
+                    }
+
+                    bool obTime_bool = DateTime.TryParse(obtime, out DateTime obTimeDt);
+
+                    if (time.Hour < 9)  // && (airArrive < new DateTime(airArrive.Year,airArrive.Month,airArrive.Day,6, 30, 0))
+                    {
+                        if (obTime_bool)
+                        {
+                            if (obTimeDt.Hour < 9)
+                            {
+                                trip += $"{obTimeDt.ToString("HH:mm")}—10:30 {obcontent};\r\n";
+                            }
+                        }
+                        else
+                        {
+                            trip += "09:00—10:30 公务活动;\r\n";
+                        }
+                    }
+                    else if (time.Hour < 10)
+                    {
+                        if (obTime_bool)
+                        {
+                            if (obTimeDt.Hour < 10)
+                            {
+                                trip += $"{obTimeDt.ToString("HH:mm")}—12:00 {obcontent};\r\n";
+                            }
+                        }
+                        else
+                        {
+                            trip += "10:30—12:00 公务活动;\r\n";
+                        }
+                    }
+
+                    if (time.Hour < 13)
+                    {
+                        //trip += $"\r\n{time.ToString("HH:mm")}         午餐于当地餐厅;";
+                    }
+
+                    if (time < new DateTime(time.Year, time.Month, time.Day, 14, 30, 0))
+                    {
+                        if (obTime_bool)
+                        {
+                            if (obTimeDt < new DateTime(time.Year, time.Month, time.Day, 14, 30, 0))
+                            {
+                                trip += $"{obTimeDt.ToString("HH:mm")}—16:00 {obcontent};\r\n";
+                            }
+                        }
+                        else
+                        {
+                            trip += "14:00—16:00 公务活动;\r\n";
+                        }
+                    }
+                    else if (time.Hour < 16)
+                    {
+                        if (obTime_bool)
+                        {
+                            if (obTimeDt.Hour < 16)
+                            {
+                                trip += $"{obTimeDt.ToString("HH:mm")}—17:30 {obcontent};\r\n";
+                            }
+                        }
+                        else
+                        {
+                            trip += "16:00—17:30 公务活动;\r\n";
+                        }
+
+                        
+                    }
+
+                    //if (time.Hour < 18)
+                    //{
+                    //    trip += $"\r\n18:00        晚餐于当地餐厅;";
+                    //}
+
+                    //time = time.AddHours(1);
+                    //trip += $"\r\n{time.ToString("HH:mm")} 搭乘专车前往酒店,抵达后办理入住;";
+                }
+                else
+                {
+                    var end_Object = threeCodes.Find(x => x.Three.ToUpper() == stopCity.ToUpper());
+                    if (end_Object == null)
+                    {
+                        end_Object = new Res_ThreeCode()
+                        {
+                            AirPort = empty,
+                            AirPort_En = empty,
+                            City = empty,
+                            Country = empty,
+                            Four = empty,
+                            Three = empty,
+                        };
+                    }
+                    //trip += $"{end_Object.City}\r\n";
+//                    trip += @"08:00        早餐于酒店;
+//09:00—10:30 公务活动;
+//12:00        午餐于当地餐厅;
+//14:00—16:00 公务活动;
+//18:00        晚餐于当地餐厅;
+//19:00        入住酒店休息;";
+                    trip += "09:00—10:30 公务活动;\r\n14:00—16:00 公务活动;\r\n";
+
+                }
+
+                string[] traffic = new string[] { "飞机", "汽车" };
+                if (!isMoreTraffic)
+                {
+                    traffic = new string[] { "汽车", "" };
+                }
+
+                NewListTravel.Add(new Grp_TravelList
+                {
+                    CreateTime = DateTime.Now,
+                    CreateUserId = 0,
+                    Diid = diid,
+                    Date = Convert.ToDateTime(item).ToString("M月d日"),
+                    Trip = trip,
+                    WeekDay = weekDay,
+                    Days = index + 1,
+                    Traffic_First = traffic[0],
+                    Traffic_Second = traffic[1],
+                    Diffgroup = 1,
+                    Issel = 1,
+                    IsDel = 0,
+                });
+
+                index++;
+            }
+
+            return new Result() { Code = 0, Msg = "获取成功!", Data = NewListTravel };
+        }
         #endregion
 
     }