/// <summary> /// 判断是否要发送当前所有权历史的前一条记录 /// </summary> /// <param name="aircraft"></param> /// <param name="currentOwnershipHistory"></param> /// <returns></returns> public static OwnershipHistory GetOwnershipHistory(Aircraft aircraft, OwnershipHistory currentOwnershipHistory, FleetEntities dbContext) { if (aircraft == null || aircraft.OwnershipHistorys.Count <= 1) { return null; } else { //当前飞机所有权人历史的前一条记录 var oh = dbContext.OwnershipHistories.Where( o => o.OwnershipHistoryID != currentOwnershipHistory.OwnershipHistoryID && o.AircraftID == aircraft.AircraftID).OrderByDescending( o => o.StartDate).FirstOrDefault(); if (oh != null && currentOwnershipHistory.StartDate != null) { return oh; } else { return null; } } }
/// <summary> /// 判断是否要发送当前商业数据的前一条记录 /// </summary> /// <param name="aircraft"></param> /// <param name="currentAircraftBusiness"></param> /// <returns></returns> public static AircraftBusiness GetAircraftBusiness(Aircraft aircraft, AircraftBusiness currentAircraftBusiness, FleetEntities dbContext) { if (aircraft == null || aircraft.AircraftBusinesses.Count <= 1) { return null; } else { //当前商业数据的前一条记录 var ab = dbContext.AircraftBusinesses.Where( o => o.AircraftBusinessID != currentAircraftBusiness.AircraftBusinessID && o.AircraftID == aircraft.AircraftID).OrderByDescending( o => o.StartDate).FirstOrDefault(); if (ab != null && currentAircraftBusiness.StartDate != null) { return ab; } else { return null; } } }
/// <summary> /// 创建新的运营历史 /// </summary> /// <param name="approvalHistory">批文明细</param> /// <param name="aircraft">飞机</param> /// <param name="service"></param> private static void CreateOperationHistory(PlanHistory planDetail, Aircraft aircraft, IFleetService service) { var operationHistory = new OperationHistory { ApprovalHistory = planDetail.ApprovalHistory, Airlines = service.CurrentAirlines, Aircraft = aircraft, ImportCategory = planDetail.ApprovalHistory.ImportCategory, Status = (int)OpStatus.Draft, }; if (planDetail is OperationPlan) (planDetail as OperationPlan).OperationHistory = operationHistory; service.EntityContainer.GetEntitySet<OperationHistory>().Add(operationHistory); // 更改运营历史状态 operationHistory.Status = (int)OpStatus.Draft; }
/// <summary> /// 创建新的商业数据历史 /// </summary> /// <param name="aircraft">飞机</param> /// <param name="service"></param> private static void CreateAircraftBusiness(PlanHistory planDetail, Aircraft aircraft, IFleetService service) { var aircraftBusiness = new AircraftBusiness { AircraftBusinessID = Guid.NewGuid(), Aircraft = aircraft, AircraftType = aircraft.AircraftType, ImportCategory = aircraft.ImportCategory, SeatingCapacity = aircraft.SeatingCapacity, CarryingCapacity = aircraft.CarryingCapacity, Status = (int)OpStatus.Draft, }; if (planDetail is ChangePlan) (planDetail as ChangePlan).AircraftBusiness = aircraftBusiness; service.EntityContainer.GetEntitySet<AircraftBusiness>().Add(aircraftBusiness); // 更改商业数据历史状态 aircraftBusiness.Status = (int)OpStatus.Draft; }
/// <summary> /// 创建新飞机 /// </summary> /// <param name="planDetail">计划明细</param> /// <param name="service"></param> private static void CreateAircraft(PlanHistory planDetail, IFleetService service) { var aircraft = new Aircraft { AircraftID = Guid.NewGuid(), AircraftType = planDetail.PlanAircraft.AircraftType, Airlines = service.CurrentAirlines, CreateDate = DateTime.Now, IsOperation = true, SeatingCapacity = planDetail.SeatingCapacity, CarryingCapacity = planDetail.CarryingCapacity, }; planDetail.PlanAircraft.Aircraft = aircraft; service.EntityContainer.GetEntitySet<Aircraft>().Add(aircraft); CreateOperationHistory(planDetail, aircraft, service); CreateAircraftBusiness(planDetail, aircraft, service); }
/// <summary> /// 创建新的所有权历史记录 /// </summary> /// <param name="aircraft"></param> /// <param name="service"></param> /// <returns></returns> internal OwnershipHistory CreateNewOwnership(Aircraft aircraft, IFleetService service) { var ownership = new OwnershipHistory { OwnershipHistoryID = Guid.NewGuid(), Aircraft = aircraft, Owner = service.CurrentAirlines, StartDate = DateTime.Now, Status = (int)OpStatus.Draft, }; service.EntityContainer.GetEntitySet<OwnershipHistory>().Add(ownership); return ownership; }
/// <summary> /// 设置前一条的商业数据的结束时间为当前商业数据的开始时间减去一天 /// </summary> /// <param name="aircraft"></param> /// <param name="currentAircraftBusiness"></param> public static void SetPreviousrAircraftBusiness(Aircraft aircraft, AircraftBusiness currentAircraftBusiness, FleetEntities dbContext) { if (currentAircraftBusiness != null && currentAircraftBusiness.StartDate != null) { //获取前一条商业数据 var formerAircraftBusiness = GetAircraftBusiness(aircraft, currentAircraftBusiness, dbContext); if (formerAircraftBusiness == null) return; //设置前一条商业数据的结束时间为当前商业数据的开始时间减去一天 formerAircraftBusiness.EndDate = currentAircraftBusiness.StartDate.Value.AddDays(-1); } }
/// <summary> /// 设置前一条的所有权历史的结束时间为当前所有权历史的开始时间减去一天 /// </summary> /// <param name="aircraft"></param> /// <param name="currentOwnershipHistory"></param> public static void SetPreviousOwershipHistory(Aircraft aircraft, OwnershipHistory currentOwnershipHistory, FleetEntities dbContext) { if (currentOwnershipHistory != null && currentOwnershipHistory.StartDate != null) { //获取前一条所有权历史 var formerOwershipHistory = GetOwnershipHistory(aircraft, currentOwnershipHistory, dbContext); if (formerOwershipHistory == null) return; //设置前一条所有权历史的结束时间为当前所有权历史的开始时间减去一天 formerOwershipHistory.EndDate = currentOwnershipHistory.StartDate.Value.AddDays(-1); } }
/// <summary> /// 设置前一条的商业数据的结束时间为当前商业数据的开始时间减去一天 /// </summary> /// <param name="aircraft"></param> /// <param name="currentOperationHistory"> </param> public static void SetPreviousOperationHistory(Aircraft aircraft, OperationHistory currentOperationHistory, FleetEntities dbContext) { if (currentOperationHistory != null && currentOperationHistory.StartDate != null) { //获取前一条商业数据 var formerOperationHistory = GetOperationHistory(aircraft, currentOperationHistory, dbContext); if (formerOperationHistory == null) return; //设置前一条商业数据的结束时间为当前商业数据的开始时间减去一天 formerOperationHistory.EndDate = currentOperationHistory.StartDate.Value.AddDays(-1); } }
//更新飞机 private void UpdateAircraft(Aircraft NewAircraft) { if (NewAircraft != null) { Aircraft OriginAircraft = this._FE.Aircrafts.Where(q => q.AircraftID == NewAircraft.AircraftID).FirstOrDefault(); //原来为空,新增 if (OriginAircraft == null) { this._FE.Aircrafts.Add(NewAircraft); } //原来已有,更新 else { this._FE.Update<Aircraft>(OriginAircraft, NewAircraft); } } }