using AutoMapper; using OASystem.Domain; using OASystem.Domain.Dtos.Groups; using OASystem.Domain.Entities.Groups; using OASystem.Domain.Entities.Resource; using OASystem.Domain.ViewModels.Groups; using System; using System.Collections.Generic; using System.Linq; using System.Text; using System.Threading.Tasks; using System.Xml.Linq; namespace OASystem.Infrastructure.Repositories.Resource { public class AirTicketResRepository : BaseRepository<Grp_AirTicketReservations, Grp_AirTicketReservations> { private readonly IMapper _mapper; public AirTicketResRepository(SqlSugarClient sqlSugar, IMapper mapper) : base(sqlSugar) { _mapper = mapper; } public async Task<Result> AirTicketResList(AirTicketResListDto dto) { Result result = new Result() { Code = -2, Msg = "未知错误" }; Grp_DelegationInfo _DelegationInfo = _sqlSugar.Queryable<Grp_DelegationInfo>().First(it => it.Id == dto.DiId); if (_DelegationInfo != null) { string sql = string.Format(@"select a.*,c.IsAuditGM,(select Name from Sys_SetData where Id=a.cType) as 'CTypeName',(select Name from Sys_SetData where Id=a.PreCurrency) as 'PreCurrencyStr',(select Name from Sys_SetData where Id=a.Currency) as 'CurrencyStr' from Grp_AirTicketReservations a,Grp_CreditCardPayment c where a.id=c.CId and a.isdel={1} and a.DIId={0} Order By a.CreateTime desc", dto.DiId, 0); List<AirTicketReservationsView> _AirTicketReservations = _sqlSugar.SqlQueryable<AirTicketReservationsView>(sql).ToList(); foreach (var item in _AirTicketReservations) { if (item.FlightsDescription.Contains("\r\n")) { var spilitArr = Regex.Split(item.FlightsDescription, "\r\n"); int rowindex = 1; foreach (var spilitItem in spilitArr) { try { var spDotandEmpty = spilitItem.Split('.')[1].Split(' ').Where(x => !string.IsNullOrEmpty(x)).ToList(); var depCode = spDotandEmpty[3].Substring(0, 3); var arrCode = spDotandEmpty[3].Substring(3, 3); Res_ThreeCode depData = _sqlSugar.Queryable<Res_ThreeCode>().First(it => it.IsDel == 0 && it.Three == depCode); Res_ThreeCode arrData = _sqlSugar.Queryable<Res_ThreeCode>().First(it => it.IsDel == 0 && it.Three == arrCode); string day = spDotandEmpty[2].Substring(2, 2);//日 string monthAbbreviations = spDotandEmpty[1].Substring(4, 3).ToUpper();//月份 switch (monthAbbreviations) { case "JAN": monthAbbreviations = "1"; break; case "FEB": monthAbbreviations = "2"; break; case "MAR": monthAbbreviations = "3"; break; case "APR": monthAbbreviations = "4"; break; case "MAY": monthAbbreviations = "5"; break; case "JUN": monthAbbreviations = "6"; break; case "JUL": monthAbbreviations = "7"; break; case "AUG": monthAbbreviations = "8"; break; case "SEP": monthAbbreviations = "9"; break; case "OCT": monthAbbreviations = "10"; break; case "NOV": monthAbbreviations = "11"; break; case "DEC": monthAbbreviations = "12"; break; } string tate = $"{monthAbbreviations}月{day}日"; item.FlightDescription += rowindex + ". " + depData.AirPort + " " + arrData.AirPort + " (" + tate + ")\r\n"; } catch (Exception) { item.FlightDescription = "录入数据不规范!请检查"; break; } rowindex++; } } else { try { var spDotandEmpty = item.FlightsDescription.Split('.')[1].Split(' ').Where(x => !string.IsNullOrEmpty(x)).ToList(); var depCode = spDotandEmpty[3].Substring(0, 3); var arrCode = spDotandEmpty[3].Substring(3, 3); Res_ThreeCode depData = _sqlSugar.Queryable<Res_ThreeCode>().First(it => it.IsDel == 0 && it.Three == depCode); Res_ThreeCode arrData = _sqlSugar.Queryable<Res_ThreeCode>().First(it => it.IsDel == 0 && it.Three == arrCode); string day = spDotandEmpty[2].Substring(2, 2);//日 string monthAbbreviations = spDotandEmpty[2].Substring(4, 3).ToUpper();//月份 switch (monthAbbreviations) { case "JAN": monthAbbreviations = "1"; break; case "FEB": monthAbbreviations = "2"; break; case "MAR": monthAbbreviations = "3"; break; case "APR": monthAbbreviations = "4"; break; case "MAY": monthAbbreviations = "5"; break; case "JUN": monthAbbreviations = "6"; break; case "JUL": monthAbbreviations = "7"; break; case "AUG": monthAbbreviations = "8"; break; case "SEP": monthAbbreviations = "9"; break; case "OCT": monthAbbreviations = "10"; break; case "NOV": monthAbbreviations = "11"; break; case "DEC": monthAbbreviations = "12"; break; } string tate = $"{monthAbbreviations}月{day}日"; item.FlightDescription +=depData.AirPort + " " + arrData.AirPort + " (" + tate + ")\r\n"; } catch (Exception) { item.FlightDescription = "录入数据不规范!请检查"; } } } //团组成本预算表查询 Grp_GroupCostParameter _GroupCostParameter = _sqlSugar.Queryable<Grp_GroupCostParameter>().First(a=>a.DiId==dto.DiId); AirGroupCostParameterView _AirgroupCostParameter = _mapper.Map<AirGroupCostParameterView>(_GroupCostParameter); var data = new { DelegationInfo = _DelegationInfo, AirTicketReservations = _AirTicketReservations, AirGroupCostParameter= _AirgroupCostParameter }; return result = new Result() { Code = 0, Msg = "查询成功!", Data = data }; } else { return result = new Result() { Code = -1, Msg = "暂无团组数据!" }; } } public async Task<Result> AirTicketResSelect(AirTicketResDto dto) { Result result = new Result() { Code = -2, Msg = "未知错误" }; try { List<Grp_GroupsTaskAssignment> grp_GroupsTaskAssignment = Query<Grp_GroupsTaskAssignment>(a => a.IsDel == 0 && a.UId == dto.UserId && a.CTId == 85).ToList(); if (grp_GroupsTaskAssignment.Count != 0) { string DiId = ""; foreach (var item in grp_GroupsTaskAssignment) { DiId += item.DIId + ","; } DiId = DiId.Substring(0, DiId.Length - 1); string sql = string.Format(@"select * from Grp_DelegationInfo where Id in({0}) and IsDel={1}", DiId, 0); List<Grp_DelegationInfo> grp_Delegations = _sqlSugar.SqlQueryable<Grp_DelegationInfo>(sql).ToList(); if (grp_Delegations.Count == 0) { return result = new Result() { Code = -1, Msg = "查询失败!" }; } List<GroupNameView> grp_NameView = new List<GroupNameView>(); foreach (var item in grp_Delegations) { GroupNameView groupNameView = new GroupNameView(); groupNameView.Id = item.Id; groupNameView.GroupName = item.TeamName; grp_NameView.Add(groupNameView); } return result = new Result() { Code = 0, Msg = "查询成功!", Data = grp_NameView }; } else { return result = new Result() { Code = -1, Msg = "暂无可操作团组" }; } } catch (Exception ex) { return result = new Result() { Code = -2, Msg = "程序错误" }; throw; } } } }