public GetAuditOrderListResponseViewModel GetAuditOrderList(GetAuditOrderListRequestViewModel request) { //1.根据Cid查询客户信息 CustomerModel customerModel = _getCustomerServiceBll.GetCustomerByCid(request.Cid); if (string.IsNullOrEmpty(customerModel.IsCheckPerson) || customerModel.IsCheckPerson.ToUpper() != "T") { throw new Exception("当前用户无权审批"); } AuditOrderListModel list = null; if (request.AuditType == 1)//待审批信息 { #region 待审批信息 list = _getCorpAduitOrderListServiceBll.GetWaitCorpAduitOrderList(new AuditOrderListQueryModel() { AuditCid = request.Cid, PageSize = request.PageSize, PageIndex = request.PageIndex, Customer = customerModel }); #endregion } else if (request.AuditType == 2)//审批通过 { #region 审批通过 list = _getCorpAduitOrderListServiceBll.GetPassCorpAduitOrderList(new AuditOrderListQueryModel() { AuditCid = request.Cid, PageSize = request.PageSize, PageIndex = request.PageIndex, Customer = customerModel }); #endregion } else if (request.AuditType == 3)//审批不通过 { #region 审批不通过 list = _getCorpAduitOrderListServiceBll.GetNoPassCorpAduitOrderList(new AuditOrderListQueryModel() { AuditCid = request.Cid, PageSize = request.PageSize, PageIndex = request.PageIndex, Customer = customerModel }); #endregion } #region 组装审批内容 if (list != null && list.DataList != null && list.DataList.Count > 0) { //查询机场信息 _getFltOrderBll.AportInfo = _getCityForFlightServiceBll.SearchAirport(new List <string>() { "N" }); _getFlightRetModApplyBll.AportInfo = _getCityForFlightServiceBll.SearchAirport(new List <string>() { "N" }); //调用查询该客户的差旅政策服务 List <ChoiceReasonModel> reasonModels = _getCustomerCorpPolicyServiceBll.GetCorpReasonByCorpId(customerModel.CorpID); _getFlightRetModApplyBll.PolicyReasonList = reasonModels; foreach (var data in list.DataList) { foreach (var detail in data.DetailList) { if (detail.OrderType == OrderSourceTypeEnum.Flt) { FltOrderInfoModel fltOrderInfoModel = _getFltOrderBll.GetFltOrderById(detail.OrderId); if (fltOrderInfoModel == null) { continue; } detail.ChoiceReason = fltOrderInfoModel.ChoiceReason; detail.CorpPolicy = fltOrderInfoModel.CorpPolicy; detail.OrderAmount = fltOrderInfoModel.Payamount; detail.PassengerNameList = fltOrderInfoModel.PassengerNameList; detail.TackOffTimeList = fltOrderInfoModel.TackOffTimeList; detail.TravelList = fltOrderInfoModel.TravelList; detail.OrderIdDes = fltOrderInfoModel.OrderId.ToString(); } else if (detail.OrderType == OrderSourceTypeEnum.FltModApply || detail.OrderType == OrderSourceTypeEnum.FltRetApply) { FltRetModApplyModel fltRetModApplyModel = _getFlightRetModApplyBll.GetRetModApply(detail.OrderId); if (fltRetModApplyModel == null) { continue; } detail.ChoiceReason = fltRetModApplyModel.ChoiceReason; detail.CorpPolicy = fltRetModApplyModel.CorpPolicy; detail.OrderAmount = fltRetModApplyModel.TotalAuditPrice; detail.PassengerNameList = fltRetModApplyModel.PassengerNameList; detail.TackOffTimeList = fltRetModApplyModel.TackOffTimeList; detail.TravelList = fltRetModApplyModel.TravelList; detail.OrderIdDes = fltRetModApplyModel.OrderId.ToString(); } else if (detail.OrderType == OrderSourceTypeEnum.Tra) { TraOrderInfoModel traOrderInfoModel = _getTraOrderServiceBll.GetTraOrderByOrderId(detail.OrderId); if (traOrderInfoModel == null) { continue; } detail.ChoiceReason = traOrderInfoModel.ChoiceReason; detail.CorpPolicy = traOrderInfoModel.CorpPolicy; detail.OrderAmount = traOrderInfoModel.Order.TotalMoney; detail.PassengerNameList = traOrderInfoModel.PassengerNameList; detail.TackOffTimeList = traOrderInfoModel.TackOffTimeList; detail.TravelList = traOrderInfoModel.TravelList; detail.OrderIdDes = traOrderInfoModel.Order.OrderId.ToString(); } } } } #endregion GetAuditOrderListResponseViewModel responseViewModel = Mapper.Map <AuditOrderListModel, GetAuditOrderListResponseViewModel>(list); return(responseViewModel); }
/// <summary> /// 根据订单号获取订单信息 /// </summary> /// <param name="orderId"></param> /// <returns></returns> public FltOrderInfoModel GetFltOrderById(int orderId) { FltOrderEntity fltOrderEntity = _fltOrderDal.Find <FltOrderEntity>(orderId); if (fltOrderEntity == null) { return(null); } //1.根据订单号 获取航段信息 List <FltFlightEntity> flightEntities = _fltFlightDal.Query <FltFlightEntity>(n => n.OrderId == orderId, true).ToList(); //2.根据订单号 获取乘机人信息 List <FltPassengerEntity> passengerEntities = _fltPassengerDal.Query <FltPassengerEntity>(n => n.OrderId == orderId, true).ToList(); //3.根据订单号 获取成本中心 FltCorpCostCenterEntity costCenterEntity = _fltCorpCostCenterDal.Query <FltCorpCostCenterEntity>(n => n.Orderid == orderId, true).FirstOrDefault(); //4.获取仓等信息 List <FltClassNameModel> classNameModels = _getClassNameBll.GetFlightClassName(); //5.获取机场信息 List <SearchCityModel> cityModels = AportInfo?.CountryList.SelectMany(n => n.CityList).ToList(); List <SearchAirportModel> airportModels = cityModels?.SelectMany(n => n.AirportList).ToList(); //6.机票订单扩展表 FltOrderUnionEntity fltOrderUnionEntity = _fltOrderUnionDal.Find <FltOrderUnionEntity>(orderId); FltOrderInfoModel result = Mapper.Map <FltOrderEntity, FltOrderInfoModel>(fltOrderEntity); if (!string.IsNullOrEmpty(costCenterEntity?.Depart)) { result.CostCenter = costCenterEntity.Depart; } if (fltOrderUnionEntity?.ProjectId != null && ProjectNameList != null) { ProjectNameModel projectNameModel = ProjectNameList.Find(n => n.ProjectId == fltOrderUnionEntity.ProjectId.Value); result.ProjectName = projectNameModel?.ProjectName; } //result.CorpPolicy = fltOrderUnionEntity?.CorpPolicy; result.PassengerList = Mapper.Map <List <FltPassengerEntity>, List <FltPassengerModel> >( passengerEntities.FindAll(n => n.OrderId == fltOrderEntity.OrderId)); result.FlightList = Mapper.Map <List <FltFlightEntity>, List <FltFlightModel> >( flightEntities.FindAll(n => n.OrderId == fltOrderEntity.OrderId)); result.PassengerList.ForEach(n => { if (n.InsCompanyId.HasValue) { n.InsuranceName = InsuranceCompanyList?.Find(x => x.CompanyID == n.InsCompanyId.Value)?.ProductName; } }); #region 行程信息 result.CorpPolicy = string.Empty; result.ChoiceReason = string.Empty; foreach (var n in result.FlightList) { if (!string.IsNullOrEmpty(n.CorpPolicy) && n.CorpPolicy.ToLower() != "undefined") { result.CorpPolicy += ";" + n.CorpPolicy; } if (!string.IsNullOrEmpty(n.ChoiceReason) && n.ChoiceReason.ToLower() != "undefined") { result.ChoiceReason += ";" + n.ChoiceReason; } SearchAirportModel airportModel = airportModels?.Find(x => x.AirportCode.ToLower() == n.Dport.ToLower()); if (airportModel != null) { n.DportName = airportModel.AirportLongName; SearchCityModel cityModel = cityModels.Find(x => x.CityCode.ToLower() == airportModel.CityCode.ToLower()); n.DportCity = cityModel.CityName; } SearchAirportModel airportModel2 = airportModels?.Find(x => x.AirportCode.ToLower() == n.Aport.ToLower()); if (airportModel2 != null) { n.AportName = airportModel2.AirportLongName; SearchCityModel cityModel2 = cityModels.Find(x => x.CityCode.ToLower() == airportModel2.CityCode.ToLower()); n.AportCity = cityModel2.CityName; } FltClassNameModel classNameModel = classNameModels.Find( x => !string.IsNullOrEmpty(x.MClass) && !string.IsNullOrEmpty(n.Class) && x.MClass.ToLower() == n.Class.ToLower() && !string.IsNullOrEmpty(x.AirlineCode) && !string.IsNullOrEmpty(n.AirlineNo) && x.AirlineCode.ToLower() == n.AirlineNo.ToLower()); if (classNameModel != null) { n.ClassName = classNameModel.ClassName; n.ClassEnName = classNameModel.ClassEnName; } } if (!string.IsNullOrEmpty(result.CorpPolicy)) { result.CorpPolicy = result.CorpPolicy.Substring(1); } if (!string.IsNullOrEmpty(result.ChoiceReason)) { result.ChoiceReason = result.ChoiceReason.Substring(1); } #endregion return(result); }