|
@@ -12211,6 +12211,26 @@ And (UnitName != '' Or UnitName != null) {sqlWhere}");
|
|
|
return Ok(jw);
|
|
|
}
|
|
|
|
|
|
+ var data = new
|
|
|
+ {
|
|
|
+ groupList = groupList.Select(x => new
|
|
|
+ {
|
|
|
+ x.TeamName,
|
|
|
+ x.Id
|
|
|
+ }),
|
|
|
+ content = new ArrayList(),
|
|
|
+ groupInfo = new
|
|
|
+ {
|
|
|
+ group.VisitDays,
|
|
|
+ group.TourCode,
|
|
|
+ group.VisitPNumber,
|
|
|
+ group.TeamName,
|
|
|
+ group.Id,
|
|
|
+ visitStartDate = group.VisitStartDate.ToString("yyyy-MM-dd"),
|
|
|
+ visitEndDate = group.VisitEndDate.ToString("yyyy-MM-dd")
|
|
|
+ },
|
|
|
+ };
|
|
|
+
|
|
|
var resultArr = new ArrayList();
|
|
|
var content = _sqlSugar.Queryable<Grp_ApprovalTravel>().Where(x => x.Diid == diid && x.IsDel == 0).ToList();
|
|
|
if (content.Count == 0)
|
|
@@ -12222,24 +12242,34 @@ And (UnitName != '' Or UnitName != null) {sqlWhere}");
|
|
|
//黑屏代码数据
|
|
|
DataTable dtBlack = GeneralMethod.GetTableByBlackCode(group.Id);
|
|
|
|
|
|
- DateTime StartDate = (group.VisitStartDate);
|
|
|
- DateTime EndDate = (group.VisitEndDate);
|
|
|
- TimeSpan t3 = EndDate - StartDate; //两个时间相减 。默认得到的是 两个时间之间的天数 得到:365.00:00:00
|
|
|
- var getDay = t3.Days;
|
|
|
- if (getDay == 0) getDay = 1;
|
|
|
+ if (dtBlack.Rows.Count == 0 || string.IsNullOrWhiteSpace(dtBlack.Rows[0][1].ToString()))
|
|
|
+ {
|
|
|
+ jw = JsonView(true, "黑屏代码有误!", data);
|
|
|
+ return Ok(jw);
|
|
|
+ }
|
|
|
|
|
|
- //获取时间区间
|
|
|
-
|
|
|
+ foreach (DataRow row in dtBlack.Rows)
|
|
|
+ {
|
|
|
+ if (!string.IsNullOrWhiteSpace(row["Error"].ToString()))
|
|
|
+ {
|
|
|
+ jw = JsonView(true, "黑屏代码有误!" + row["Error"].ToString(), data);
|
|
|
+ return Ok(jw);
|
|
|
+ }
|
|
|
+ }
|
|
|
+
|
|
|
+ //黑屏代码获取时间区间
|
|
|
+ var timeArr = GeneralMethod.GetTimeListByDataTable(dtBlack);
|
|
|
|
|
|
string[] Day = new string[] { "星期日", "星期一", "星期二", "星期三", "星期四", "星期五", "星期六" };
|
|
|
+
|
|
|
_sqlSugar.BeginTran();
|
|
|
- for (int i = 0; i < getDay; i++)
|
|
|
+ for (int i = 0; i < timeArr.Count; i++)
|
|
|
{
|
|
|
|
|
|
stay = "-";
|
|
|
cityPath = "-";
|
|
|
|
|
|
- DateTime NewData = StartDate.AddDays(i);
|
|
|
+ DateTime NewData = DateTime.Parse(timeArr[i]);
|
|
|
string week = Day[Convert.ToInt32(NewData.DayOfWeek.ToString("d"))].ToString();
|
|
|
Grp_ApprovalTravel appro = new Grp_ApprovalTravel();
|
|
|
|
|
@@ -12276,12 +12306,14 @@ And (UnitName != '' Or UnitName != null) {sqlWhere}");
|
|
|
var last = threeCodeStr.Last();
|
|
|
foreach (var item in threeCodeStr)
|
|
|
{
|
|
|
- cityPath += threeCodeList.Keys.Contains(item) ? threeCodeList[item].City : "【未知三字码】";
|
|
|
+ cityPath += (threeCodeList.Keys.Contains(item) ? threeCodeList[item].City : "【未知三字码】") + "-";
|
|
|
if(item.Equals(last))
|
|
|
{
|
|
|
stay = threeCodeList.Keys.Contains(item) ? threeCodeList[item].City : "【未知三字码】";
|
|
|
}
|
|
|
}
|
|
|
+
|
|
|
+ cityPath = cityPath.Trim('-');
|
|
|
}
|
|
|
|
|
|
appro.Date = "第" + intToString(i + 1) + "天 " + NewData.Month + "月" + NewData.Day + "日(" + week + ") " + cityPath + " 宿:" + stay;
|
|
@@ -12321,24 +12353,9 @@ And (UnitName != '' Or UnitName != null) {sqlWhere}");
|
|
|
});
|
|
|
}
|
|
|
|
|
|
- var data = new
|
|
|
+ data = data with
|
|
|
{
|
|
|
- groupList = groupList.Select(x => new
|
|
|
- {
|
|
|
- x.TeamName,
|
|
|
- x.Id
|
|
|
- }),
|
|
|
- content = resultArr,
|
|
|
- groupInfo = new
|
|
|
- {
|
|
|
- group.VisitDays,
|
|
|
- group.TourCode,
|
|
|
- group.VisitPNumber,
|
|
|
- group.TeamName,
|
|
|
- group.Id,
|
|
|
- visitStartDate = group.VisitStartDate.ToString("yyyy-MM-dd"),
|
|
|
- visitEndDate = group.VisitEndDate.ToString("yyyy-MM-dd")
|
|
|
- },
|
|
|
+ content = resultArr,
|
|
|
};
|
|
|
|
|
|
jw = JsonView(true,"获取成功!",data);
|
|
@@ -12501,11 +12518,23 @@ And (UnitName != '' Or UnitName != null) {sqlWhere}");
|
|
|
return Ok(jw);
|
|
|
}
|
|
|
|
|
|
- DateTime StartDate = (group.VisitStartDate);
|
|
|
- DateTime EndDate = (group.VisitEndDate);
|
|
|
- TimeSpan t3 = EndDate - StartDate;
|
|
|
- var getDay = t3.Days;
|
|
|
- if (getDay == 0) getDay = 1;
|
|
|
+ //黑屏代码数据
|
|
|
+ DataTable dtBlack = GeneralMethod.GetTableByBlackCode(group.Id);
|
|
|
+
|
|
|
+ if (dtBlack.Rows.Count == 0 || string.IsNullOrWhiteSpace(dtBlack.Rows[0][1].ToString()))
|
|
|
+ {
|
|
|
+ jw.Msg = "黑屏代码有误!";
|
|
|
+ return Ok(jw);
|
|
|
+ }
|
|
|
+
|
|
|
+ foreach (DataRow row in dtBlack.Rows)
|
|
|
+ {
|
|
|
+ if (!string.IsNullOrWhiteSpace(row["Error"].ToString()))
|
|
|
+ {
|
|
|
+ jw.Msg = "黑屏代码有误!" + row["Error"].ToString();
|
|
|
+ return Ok(jw);
|
|
|
+ }
|
|
|
+ }
|
|
|
|
|
|
var officialActivitiesArr = _sqlSugar.Queryable<Res_OfficialActivities>().Where(x => x.DiId == dto.Diid && x.IsDel == 0).ToList();
|
|
|
var resultArr = new ArrayList();
|
|
@@ -12531,16 +12560,174 @@ And (UnitName != '' Or UnitName != null) {sqlWhere}");
|
|
|
var cityPath = "-";
|
|
|
|
|
|
//添加城市路径以及住宿地
|
|
|
- //黑屏代码数据
|
|
|
- DataTable dtBlack = GeneralMethod.GetTableByBlackCode(group.Id);
|
|
|
|
|
|
+ //黑屏代码获取时间区间
|
|
|
+ var timeArr = GeneralMethod.GetTimeListByDataTable(dtBlack);
|
|
|
+ var empty = "【未收入该三字码!请机票同事录入】";
|
|
|
string[] Day = new string[] { "星期日", "星期一", "星期二", "星期三", "星期四", "星期五", "星期六" };
|
|
|
- for (int i = 0; i < getDay; i++)
|
|
|
+
|
|
|
+ for (int i = 0; i < timeArr.Count; i++)
|
|
|
{
|
|
|
+ stay = "-";
|
|
|
+ cityPath = "-";
|
|
|
+
|
|
|
+ var chiarr = new List<Grp_ApprovalTravelDetails>();
|
|
|
|
|
|
- DateTime NewData = StartDate.AddDays(i);
|
|
|
+ DateTime NewData = DateTime.Parse(timeArr[i]);
|
|
|
var gwinfo = officialActivitiesArr.Where(x => DateTime.TryParse(x.Date, out DateTime gwData) && gwData.ToString("yyyy-MM-dd") == NewData.ToString("yyyy-MM-dd")).OrderBy(x => x.Time).ToList();
|
|
|
|
|
|
+ var tbSelect = dtBlack.Select(string.Format("Day = '{0}'", NewData.ToString("yyyy-MM-dd")));
|
|
|
+ if (tbSelect.Length > 0)
|
|
|
+ {
|
|
|
+ List<string> threeCodeStr = new List<string>();
|
|
|
+
|
|
|
+ bool isTrade = false;
|
|
|
+ string trip = string.Empty;
|
|
|
+
|
|
|
+ var rowLast = tbSelect.Last();
|
|
|
+ var rowFirst = tbSelect.First();
|
|
|
+ var airStartTime = rowFirst["StartTime"].ToString() ?? "0000";
|
|
|
+ var airEndTime = rowLast["EndTime"].ToString() ?? "0000";
|
|
|
+ var takeOffTime = DateTime.Parse(timeArr[i]);
|
|
|
+ var fallToTime = DateTime.Parse(timeArr[i]);
|
|
|
+ takeOffTime = takeOffTime.AddHours(int.Parse(airStartTime.Substring(0, 2)));
|
|
|
+ takeOffTime = takeOffTime.AddMinutes(int.Parse(airStartTime.Substring(2, 2)));
|
|
|
+ fallToTime = fallToTime.AddHours(int.Parse(airEndTime.Substring(0, 2)));
|
|
|
+ fallToTime = fallToTime.AddMinutes(int.Parse(airEndTime.Substring(2, 2)));
|
|
|
+
|
|
|
+ foreach (var item in tbSelect)
|
|
|
+ {
|
|
|
+ var start = string.Empty;
|
|
|
+ var end = string.Empty;
|
|
|
+ var threeCode = item["Three"].ToString() ?? "";
|
|
|
+ if (threeCode.Length == 6)
|
|
|
+ {
|
|
|
+ start = threeCode.Substring(0, 3);
|
|
|
+ end = threeCode.Substring(3, 3);
|
|
|
+ if (threeCodeStr.Count == 0)
|
|
|
+ {
|
|
|
+ threeCodeStr.Add(start);
|
|
|
+ threeCodeStr.Add(end);
|
|
|
+ }
|
|
|
+ else
|
|
|
+ {
|
|
|
+ if (threeCodeStr[threeCodeStr.Count - 1] == start)
|
|
|
+ {
|
|
|
+ threeCodeStr.Add(end);
|
|
|
+ }
|
|
|
+ else
|
|
|
+ {
|
|
|
+ threeCodeStr.Add(start);
|
|
|
+ threeCodeStr.Add(end);
|
|
|
+ }
|
|
|
+ }
|
|
|
+ }
|
|
|
+
|
|
|
+ //处理机票信息
|
|
|
+ var start_Object = _sqlSugar.Queryable<Res_ThreeCode>().First(x => x.Three.ToUpper() == start.ToUpper());
|
|
|
+ var end_Object = _sqlSugar.Queryable<Res_ThreeCode>().First(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 airModel = item["AirModel"].ToString();
|
|
|
+ airModel = GeneralMethod.GetLonger(airModel!.Substring(0, 1)) + airModel;
|
|
|
+
|
|
|
+ string flightTime = item["FlightTime"].ToString();
|
|
|
+ if (flightTime!.Contains(":"))
|
|
|
+ {
|
|
|
+ flightTime = flightTime.Replace(":", "小时");
|
|
|
+ flightTime += "分钟";
|
|
|
+ }
|
|
|
+ if (flightTime.Contains("H"))
|
|
|
+ {
|
|
|
+ flightTime = flightTime.Replace("H", "小时");
|
|
|
+ }
|
|
|
+ if (flightTime.Contains("M"))
|
|
|
+ {
|
|
|
+ flightTime = flightTime.Replace("M", "分钟");
|
|
|
+ }
|
|
|
+
|
|
|
+ //航班号
|
|
|
+ string flightcode = item["Fliagtcode"].ToString();
|
|
|
+
|
|
|
+ var aircompany = _sqlSugar.Queryable<Res_AirCompany>().First(x => x.ShortCode.ToUpper() == flightcode!.Substring(0, 2).ToUpper() && x.IsDel == 0);
|
|
|
+
|
|
|
+ var hsEmpty = "【此航司" + flightcode!.Substring(0, 2).ToUpper() + "未收录,请机票同事录入】";
|
|
|
+ if (aircompany == null)
|
|
|
+ {
|
|
|
+ aircompany = new Res_AirCompany
|
|
|
+ {
|
|
|
+ CnName = hsEmpty,
|
|
|
+ EnName = hsEmpty,
|
|
|
+ ShortCode = hsEmpty,
|
|
|
+ };
|
|
|
+ }
|
|
|
+
|
|
|
+ //从成都天府国际机场搭乘四川航空公司3U3961飞往东京
|
|
|
+ trip += $" 从{start_Object.AirPort}搭乘{aircompany.CnName} {flightcode} 飞往 {end_Object.City};\r\n ({start_Object.AirPort}/{end_Object.AirPort} 机型:{airModel} 飞行时间{flightTime});\r\n";
|
|
|
+
|
|
|
+ isTrade = Convert.ToBoolean(item["isTransitShipment"]);
|
|
|
+
|
|
|
+ if (isTrade)
|
|
|
+ {
|
|
|
+ trip += $"抵达{end_Object.AirPort}{item["EndBuilding"].ToString().Trim()}航站楼(中转时间: 行李直达)";
|
|
|
+ }
|
|
|
+ else
|
|
|
+ {
|
|
|
+ trip += $"抵达{end_Object.AirPort}{item["EndBuilding"].ToString().Trim()}航站楼,办理入境手续,之后前往提取行李\r\n";
|
|
|
+ }
|
|
|
+
|
|
|
+ }
|
|
|
+
|
|
|
+ chiarr.Add(new Grp_ApprovalTravelDetails
|
|
|
+ {
|
|
|
+ Time = takeOffTime.ToString("HH:mm") + "-" + fallToTime.ToString("HH:mm"),
|
|
|
+ CreateTime = DateTime.Now,
|
|
|
+ CreateUserId = dto.Userid,
|
|
|
+ ParentId = 0,
|
|
|
+ Details = trip
|
|
|
+ }) ;
|
|
|
+
|
|
|
+ var threeCodeList = _threeCodeRepository.QueryThreeCodeArray(threeCodeStr);
|
|
|
+ var last = threeCodeStr.Last();
|
|
|
+ foreach (var item in threeCodeStr)
|
|
|
+ {
|
|
|
+ cityPath += (threeCodeList.Keys.Contains(item) ? threeCodeList[item].City : "【未知三字码】") + "-";
|
|
|
+ if (item.Equals(last))
|
|
|
+ {
|
|
|
+ stay = threeCodeList.Keys.Contains(item) ? threeCodeList[item].City : "【未知三字码】";
|
|
|
+ }
|
|
|
+ }
|
|
|
+
|
|
|
+ cityPath = cityPath.Trim('-');
|
|
|
+
|
|
|
+
|
|
|
+ }
|
|
|
+
|
|
|
string week = Day[Convert.ToInt32(NewData.DayOfWeek.ToString("d"))].ToString();
|
|
|
Grp_ApprovalTravel appro = new Grp_ApprovalTravel();
|
|
|
appro.Date = "第" + intToString(i + 1) + "天 " + NewData.Month + "月" + NewData.Day + "日(" + week + ") " + cityPath + " 宿:" + stay;
|
|
@@ -12550,14 +12737,6 @@ And (UnitName != '' Or UnitName != null) {sqlWhere}");
|
|
|
appro.CreateUserId = dto.Userid;
|
|
|
appro.CreateTime = DateTime.Now;
|
|
|
|
|
|
- var chiarr = new List<Grp_ApprovalTravelDetails>();
|
|
|
-
|
|
|
- var tbSelect = dtBlack.Select(string.Format("Day = '{0}'", NewData.ToString("yyyy-MM-dd")));
|
|
|
- if (tbSelect.Length > 0)
|
|
|
- {
|
|
|
-
|
|
|
- }
|
|
|
-
|
|
|
foreach (var item in gwinfo)
|
|
|
{
|
|
|
Grp_ApprovalTravelDetails chi = new Grp_ApprovalTravelDetails();
|