public void Test_DeleteVagonsToNaturList() { RC_VagonsOperations vo = new RC_VagonsOperations(); int nat = -777; DateTime dt_amkr = DateTime.Now; VAGON_OPERATIONS vo1 = new VAGON_OPERATIONS() { id_oper = 0, dt_amkr = dt_amkr, n_natur = nat, id_vagon = 889213, id_stat = 4, dt_from_stat = null, dt_on_stat = DateTime.Now, id_way = 51, dt_from_way = null, dt_on_way = DateTime.Now, num_vag_on_way = 0, is_present = 0, id_locom = null, id_locom2 = null, id_cond2 = null, id_gruz = null, id_gruz_amkr = null, id_shop_gruz_for = null, weight_gruz = null, id_tupik = null, id_nazn_country = null, id_gdstait = null, id_cond = null, note = null, is_hist = 0, id_oracle = null, lock_id_way = null, lock_order = null, lock_side = null, lock_id_locom = null, st_lock_id_stat = null, st_lock_order = null, st_lock_train = null, st_lock_side = null, st_gruz_front = null, st_shop = null, oracle_k_st = null, st_lock_locom1 = null, st_lock_locom2 = null, id_oper_parent = null, grvu_SAP = null, ngru_SAP = null, id_ora_23_temp = null, edit_user = null, edit_dt = null, IDSostav = 0, }; int res_ov1 = vo.SaveVagonsOperations(vo1); Test_RC_VagonsOperations(res_ov1); Console.WriteLine("Удалено : {0}", vo.DeleteVagonsToNaturList(nat, dt_amkr)); }
/// <summary> /// Поставить вагон в прибитие на станции АМКР из станций Кривого Рога /// </summary> /// <param name="IDSostav"></param> /// <param name="id_vagon"></param> /// <param name="dt_amkr"></param> /// <param name="id_station_from"></param> /// <param name="position"></param> /// <param name="id_gruz"></param> /// <param name="weight_gruz"></param> /// <param name="id_station_in"></param> /// <param name="num_train"></param> /// <returns></returns> public int InsertVagon(int IDSostav, int id_vagon, int num_vagon, DateTime dt_uz_on, DateTime dt_uz_from, int id_station_from, int position, int?id_gruz, decimal weight_gruz, int id_station_in, int num_train, int id_cond2, int way_from) { //TODO: !!ДОРАБОТАТЬ (ДОБАВИТЬ В ПРИБЫТИЕ С УЗ) - убрать id_vagon,id_gruz,weight_gruz (эти данные берутся из справочника САП входящие поставки по (dt_uz)dt_amkr и num_vagon) VAGON_OPERATIONS vo = new VAGON_OPERATIONS() { id_oper = 0, dt_uz = dt_uz_from, dt_amkr = null, // dt_out_amkr = null, n_natur = null, id_vagon = id_vagon, id_stat = id_station_from, dt_from_stat = dt_uz_from, dt_on_stat = dt_uz_on, id_way = way_from, dt_from_way = dt_uz_from, dt_on_way = dt_uz_on, num_vag_on_way = position, is_present = 0, id_locom = null, id_locom2 = null, id_cond2 = id_cond2, // 15 id_gruz = id_gruz, id_gruz_amkr = id_gruz, id_shop_gruz_for = null, weight_gruz = weight_gruz, id_tupik = null, id_nazn_country = null, id_gdstait = null, id_cond = null, note = null, is_hist = 0, id_oracle = null, lock_id_way = null, lock_order = null, lock_side = null, lock_id_locom = null, st_lock_id_stat = id_station_in, st_lock_order = position, st_lock_train = num_train, st_lock_side = null, st_gruz_front = null, st_shop = null, oracle_k_st = null, st_lock_locom1 = null, st_lock_locom2 = null, id_oper_parent = null, grvu_SAP = null, ngru_SAP = null, id_ora_23_temp = null, edit_user = null, edit_dt = null, IDSostav = IDSostav, num_vagon = num_vagon, }; return(SaveVagonsOperations(vo)); }
/// <summary> /// Поставить вагон на путь станции по данным КИС (копирование по внутреним станциям по отправке) /// </summary> /// <param name="IDSostav"></param> /// <param name="doc"></param> /// <param name="natur"></param> /// <param name="id_vagon"></param> /// <param name="num_vagon"></param> /// <param name="dt_uz"></param> /// <param name="dt_amkr"></param> /// <param name="dt_out"></param> /// <param name="id_station_from"></param> /// <param name="position"></param> /// <param name="id_gruz"></param> /// <param name="id_tupik"></param> /// <param name="id_nazn_country"></param> /// <param name="id_station_nazn"></param> /// <param name="id_station_in"></param> /// <param name="num_train"></param> /// <param name="id_cond"></param> /// <param name="note"></param> /// <param name="id_ways"></param> /// <returns></returns> public int InsertOutputVagon(int IDSostav, int doc, int natur, int id_vagon, int num_vagon, DateTime dt_uz, DateTime dt_amkr, DateTime dt_out, int id_station_from, int position, int?id_gruz, int?id_tupik, int?id_nazn_country, int id_station_nazn, int id_station_in, int num_train, int?id_cond, string note, int?id_ways) { VAGON_OPERATIONS vo = new VAGON_OPERATIONS() { id_oper = 0, dt_uz = dt_uz, dt_amkr = dt_amkr, // dt_out_amkr = null, n_natur = natur, id_vagon = id_vagon, id_stat = id_station_from, dt_from_stat = dt_out, dt_on_stat = null, id_way = id_ways, dt_from_way = dt_out, dt_on_way = null, num_vag_on_way = position, is_present = 0, id_locom = null, id_locom2 = null, id_cond2 = 14, id_gruz = id_gruz, id_gruz_amkr = id_gruz, id_shop_gruz_for = null, weight_gruz = null, id_tupik = id_tupik, id_nazn_country = id_nazn_country, id_gdstait = id_station_nazn, id_cond = id_cond, note = note, is_hist = 0, id_oracle = doc, lock_id_way = null, lock_order = null, lock_side = null, lock_id_locom = null, st_lock_id_stat = id_station_in, st_lock_order = position, st_lock_train = num_train, st_lock_side = null, st_gruz_front = null, st_shop = null, oracle_k_st = null, st_lock_locom1 = null, st_lock_locom2 = null, id_oper_parent = null, grvu_SAP = null, ngru_SAP = null, id_ora_23_temp = null, IDSostav = IDSostav, num_vagon = num_vagon, }; return(SaveVagonsOperations(vo)); }
/// <summary> /// Операция над вагоном с указаным id состава МТ и датой захода существует? /// </summary> /// <param name="id_sostav"></param> /// <param name="dt_amkr"></param> /// <param name="id_vagon"></param> /// <returns></returns> public bool IsVagonOperationMT(int id_sostav, DateTime dt_amkr, int id_vagon) { VAGON_OPERATIONS vo = GetVagonsOperationsToMTSostav(id_sostav, dt_amkr, id_vagon); if (vo != null) { return(true); } return(false); }
/// <summary> /// Операция над вагоном с указаным натуральным листом и датой захода существует? /// </summary> /// <param name="natur"></param> /// <param name="dt_amkr"></param> /// <param name="num_vagon"></param> /// <returns></returns> public bool IsVagonOperationKIS(int natur, DateTime dt_amkr, int num_vagon) { VAGON_OPERATIONS vo = GetVagonsOperationsToNatur(natur, dt_amkr, num_vagon); if (vo != null) { return(true); } return(false); }
/// <summary> /// Принять вагон на станцию АМКР из станции УЗ /// </summary> /// <param name="id_mtsostav"></param> /// <param name="num"></param> /// <param name="idstation_uz"></param> /// <param name="natur"></param> /// <param name="dt_amkr"></param> /// <param name="id_stations"></param> /// <param name="id_ways"></param> /// <returns></returns> public int TakeVagonOfUZ(int id_mtsostav, int num, int[] idstation_uz, int natur, DateTime dt_amkr, int id_stations, int id_ways, int id_cond) { int res = 0; VAGON_OPERATIONS vagon = GetVagonsOfArrivalUZ(id_mtsostav, num, idstation_uz, id_stations); if (vagon != null) { res = TakeVagonOfUZ(vagon, natur, dt_amkr, id_stations, id_ways, id_cond); // Примем вагон на станцию АМКР DeleteVagonsOfArrival(id_mtsostav, num, idstation_uz); // Удалим с прибытия вагоны кроме принятого } return(res); }
/// <summary> /// Установить вагон с признаком для маневра /// </summary> /// <param name="wag"></param> /// <param name="lock_id_way"></param> /// <param name="lock_order"></param> /// <param name="lock_side"></param> /// <param name="lock_id_locom"></param> /// <param name="dt_from_way"></param> /// <returns></returns> public int AddCancelManeuverCar(VAGON_OPERATIONS wag, int?lock_id_way, int?lock_order, int?lock_side, int?lock_id_locom, DateTime?dt_from_way) { if (wag == null) { return((int)errorManeuvers.no_string_wagon_operations); } wag.lock_id_way = lock_id_way; wag.lock_order = lock_order; wag.lock_side = lock_side; wag.lock_id_locom = lock_id_locom; wag.dt_from_way = dt_from_way; return(rc_vo.SaveVagonsOperations(wag)); }
public void WL(VAGON_OPERATIONS t) { Console.WriteLine("id_oper: {0}", t.id_oper); Console.WriteLine("dt_amkr: {0}", t.dt_amkr); Console.WriteLine("n_natur: {0}", t.n_natur); Console.WriteLine("id_vagon: {0}", t.id_vagon); Console.WriteLine("id_stat: {0}", t.id_stat); Console.WriteLine("dt_from_stat: {0}", t.dt_from_stat); Console.WriteLine("dt_on_stat: {0}", t.dt_on_stat); Console.WriteLine("id_way: {0}", t.id_way); Console.WriteLine("dt_from_way: {0}", t.dt_from_way); Console.WriteLine("dt_on_way: {0}", t.dt_on_way); Console.WriteLine("num_vag_on_way: {0}", t.num_vag_on_way); Console.WriteLine("is_present: {0}", t.is_present); Console.WriteLine("id_locom: {0}", t.id_locom); Console.WriteLine("id_locom2: {0}", t.id_locom2); Console.WriteLine("id_cond2: {0}", t.id_cond2); Console.WriteLine("id_gruz: {0}", t.id_gruz); Console.WriteLine("id_gruz_amkr: {0}", t.id_gruz_amkr); Console.WriteLine("id_shop_gruz_for: {0}", t.id_shop_gruz_for); Console.WriteLine("weight_gruz: {0}", t.weight_gruz); Console.WriteLine("id_tupik: {0}", t.id_tupik); Console.WriteLine("id_nazn_country: {0}", t.id_nazn_country); Console.WriteLine("id_gdstait: {0}", t.id_gdstait); Console.WriteLine("id_cond: {0}", t.id_cond); Console.WriteLine("note: {0}", t.note); Console.WriteLine("is_hist: {0}", t.is_hist); Console.WriteLine("id_oracle: {0}", t.id_oracle); Console.WriteLine("lock_id_way: {0}", t.lock_id_way); Console.WriteLine("lock_order: {0}", t.lock_order); Console.WriteLine("lock_side: {0}", t.lock_side); Console.WriteLine("lock_id_locom: {0}", t.lock_id_locom); Console.WriteLine("st_lock_id_stat: {0}", t.st_lock_id_stat); Console.WriteLine("st_lock_order: {0}", t.st_lock_order); Console.WriteLine("st_lock_train: {0}", t.st_lock_train); Console.WriteLine("st_lock_side: {0}", t.st_lock_side); Console.WriteLine("st_gruz_front: {0}", t.st_gruz_front); Console.WriteLine("st_shop: {0}", t.st_shop); Console.WriteLine("oracle_k_st: {0}", t.oracle_k_st); Console.WriteLine("st_lock_locom1: {0}", t.st_lock_locom1); Console.WriteLine("st_lock_locom2: {0}", t.st_lock_locom2); Console.WriteLine("id_oper_parent: {0}", t.id_oper_parent); Console.WriteLine("grvu_SAP: {0}", t.grvu_SAP); Console.WriteLine("ngru_SAP: {0}", t.ngru_SAP); Console.WriteLine("id_ora_23_temp: {0}", t.id_ora_23_temp); Console.WriteLine("edit_user: {0}", t.edit_user); Console.WriteLine("edit_dt: {0}", t.edit_dt); Console.WriteLine("IDSostav: {0}", t.IDSostav); Console.WriteLine("num_vagon: {0}", t.num_vagon); }
/// <summary> /// Удалить /// </summary> /// <param name="id_way"></param> /// <returns></returns> public VAGON_OPERATIONS DeleteVAGONOPERATIONS(int id_oper) { VAGON_OPERATIONS dbEntry = context.VAGON_OPERATIONS.Find(id_oper); if (dbEntry != null) { context.VAGON_OPERATIONS.Remove(dbEntry); try { context.SaveChanges(); } catch (Exception e) { LogRW.LogError(e, "DeleteVAGONOPERATIONS", eventID); return(null); } } return(dbEntry); }
/// <summary> /// Принять вагон на станцию АМКР из станции УЗ /// </summary> /// <param name="vagon"></param> /// <param name="natur"></param> /// <param name="dt_amkr"></param> /// <param name="id_stations"></param> /// <param name="id_ways"></param> /// <returns></returns> public int TakeVagonOfUZ(VAGON_OPERATIONS vagon, int natur, DateTime dt_amkr, int id_stations, int id_ways, int id_cond) { int?position = MaxPositionWay(id_ways); if (position != null) { position++; } else { position = 1; } VAGON_OPERATIONS new_vagon = new VAGON_OPERATIONS() { id_oper = 0, dt_uz = vagon.dt_uz, dt_amkr = dt_amkr, dt_out_amkr = null, n_natur = natur, id_vagon = vagon.id_vagon, id_stat = id_stations, dt_from_stat = null, dt_on_stat = dt_amkr, id_way = id_ways, dt_from_way = null, dt_on_way = dt_amkr, num_vag_on_way = position, is_present = 1, id_locom = null, id_locom2 = null, id_cond2 = 15, id_gruz = vagon.id_gruz, id_gruz_amkr = vagon.id_gruz_amkr, id_shop_gruz_for = null, weight_gruz = vagon.weight_gruz, id_tupik = null, id_nazn_country = null, id_gdstait = null, id_cond = id_cond, note = null, is_hist = 0, id_oracle = null, lock_id_way = null, lock_order = null, lock_side = null, lock_id_locom = null, st_lock_id_stat = null, st_lock_order = null, st_lock_train = null, st_lock_side = null, st_gruz_front = null, st_shop = null, oracle_k_st = null, st_lock_locom1 = null, st_lock_locom2 = null, id_oper_parent = null, grvu_SAP = null, ngru_SAP = null, id_ora_23_temp = null, IDSostav = vagon.IDSostav, num_vagon = vagon.num_vagon }; int res = SaveVagonsOperations(new_vagon); if (res > 0) { vagon.is_hist = 1; vagon.st_lock_id_stat = null; vagon.st_lock_order = null; vagon.st_lock_train = null; vagon.st_lock_side = null; vagon.st_lock_locom1 = null; vagon.st_lock_locom2 = null; vagon.n_natur = natur; SaveVagonsOperations(vagon); } return(res); }
public void Test_SUD_RC_VagonsOperations() { RC_VagonsOperations vo = new RC_VagonsOperations(); VAGON_OPERATIONS vo1 = new VAGON_OPERATIONS() { id_oper = 0, dt_amkr = DateTime.Now, n_natur = -777, id_vagon = 889213, id_stat = 4, dt_from_stat = null, dt_on_stat = DateTime.Now, id_way = 51, dt_from_way = null, dt_on_way = DateTime.Now, num_vag_on_way = 0, is_present = 0, id_locom = null, id_locom2 = null, id_cond2 = null, id_gruz = null, id_gruz_amkr = null, id_shop_gruz_for = null, weight_gruz = null, id_tupik = null, id_nazn_country = null, id_gdstait = null, id_cond = null, note = null, is_hist = 0, id_oracle = null, lock_id_way = null, lock_order = null, lock_side = null, lock_id_locom = null, st_lock_id_stat = null, st_lock_order = null, st_lock_train = null, st_lock_side = null, st_gruz_front = null, st_shop = null, oracle_k_st = null, st_lock_locom1 = null, st_lock_locom2 = null, id_oper_parent = null, grvu_SAP = null, ngru_SAP = null, id_ora_23_temp = null, edit_user = null, edit_dt = null, IDSostav = 0, }; int res_ov1 = vo.SaveVagonsOperations(vo1); Test_RC_VagonsOperations(res_ov1); VAGON_OPERATIONS vo2 = new VAGON_OPERATIONS() { id_oper = res_ov1, dt_amkr = DateTime.Now, n_natur = -888, id_vagon = 889213, id_stat = 4, dt_from_stat = null, dt_on_stat = DateTime.Now, id_way = 51, dt_from_way = null, dt_on_way = DateTime.Now, num_vag_on_way = 0, is_present = 0, id_locom = null, id_locom2 = null, id_cond2 = null, id_gruz = null, id_gruz_amkr = null, id_shop_gruz_for = null, weight_gruz = null, id_tupik = null, id_nazn_country = null, id_gdstait = null, id_cond = null, note = null, is_hist = 0, id_oracle = null, lock_id_way = null, lock_order = null, lock_side = null, lock_id_locom = null, st_lock_id_stat = null, st_lock_order = null, st_lock_train = null, st_lock_side = null, st_gruz_front = null, st_shop = null, oracle_k_st = null, st_lock_locom1 = null, st_lock_locom2 = null, id_oper_parent = null, grvu_SAP = null, ngru_SAP = null, id_ora_23_temp = null, edit_user = null, edit_dt = null, IDSostav = 0, }; int res_ov2 = vo.SaveVagonsOperations(vo2); Test_RC_VagonsOperations(res_ov2); VAGON_OPERATIONS del = vo.DeleteVagonsOperations(res_ov2); WL(del); }
/// <summary> /// Поставить вагон на станцию по данным КИС /// </summary> /// <param name="natur"></param> /// <param name="dt_amkr"></param> /// <param name="id_vagon"></param> /// <param name="id_station"></param> /// <param name="id_way"></param> /// <param name="id_stat_kis"></param> /// <returns></returns> public int InsertVagon(int natur, DateTime dt_amkr, int id_vagon, int num_vagon, int?id_sostav, DateTime?dt_uz, int id_station, int id_way, int id_stat_kis, int?id_cond, int?id_cond2) { int?position = MaxPositionWay(id_way); if (position != null) { position++; } else { position = 1; } VAGON_OPERATIONS vo = new VAGON_OPERATIONS() { id_oper = 0, dt_uz = dt_uz, dt_amkr = dt_amkr, dt_out_amkr = null, n_natur = natur, id_vagon = id_vagon, id_stat = id_station, dt_from_stat = null, dt_on_stat = dt_amkr, id_way = id_way, dt_from_way = null, dt_on_way = dt_amkr, num_vag_on_way = position, is_present = 1, id_locom = null, id_locom2 = null, id_cond2 = id_cond2, id_gruz = null, id_gruz_amkr = null, id_shop_gruz_for = null, weight_gruz = null, id_tupik = null, id_nazn_country = null, id_gdstait = null, id_cond = id_cond, note = null, is_hist = 0, id_oracle = null, lock_id_way = null, lock_order = null, lock_side = null, lock_id_locom = null, st_lock_id_stat = null, st_lock_order = null, st_lock_train = null, st_lock_side = null, st_gruz_front = null, st_shop = null, oracle_k_st = null, st_lock_locom1 = null, st_lock_locom2 = null, id_oper_parent = null, grvu_SAP = null, ngru_SAP = null, id_ora_23_temp = null, edit_user = null, edit_dt = null, IDSostav = id_sostav, num_vagon = num_vagon, }; return(SaveVagonsOperations(vo)); }
/// <summary> /// Принять поезд целиком /// </summary> public void performAdmissTrain() { try { if (view.listWaitAdmiss.Count == 0) { return; } bool isStat = view.hasSelFromStatVag; bool isGF = view.hasSelFromGfVag; bool isShop = view.hasSelFromShopVag; if (view.getDialogTrainResult(main.selectedStation, view.getSelTrain(isGF, isShop).SendingPoint, isStat || main.selectedStation.ID == 17)) { string mess_accept = String.Format("Пользователь принял состав целиком на станцию {0}, путь {1}", main.selectedStation.Name, view.wayPerformAdmissTrain.NumName); string status = ""; List <VagWaitAdmiss> list = view.listWaitAdmiss; bool leftVagOnGf = false; // Оставить вагон на вагонаопрокиде if (isGF) { if (list.Count > 1 && main.showQuestMessage("Оставить один вагон на опрокиде?")) { list.RemoveAt(list.Count - 1); leftVagOnGf = true; } } //TODO: RW-ОПЕРАЦИИ Включил логирование rw-операций принятия на станцию VAGON_OPERATIONS vag = rc_vo.GetVagonsOperations(list[0].id_oper); rwoperation.ReceptionCars( list.Select(s => (int)s.num_vag).ToArray(), (int)vag.id_stat, vag.st_gruz_front > 0 ? vag.st_gruz_front : null, vag.st_shop > 0 ? vag.st_shop : null, main.selectedStation.ID, view.wayPerformAdmissTrain.ID, new int[] { view.getSelTrain(isGF, isShop).St_lock_locom1, view.getSelTrain(isGF, isShop).St_lock_locom2 } ); foreach (VagWaitAdmiss item in list) { if (!isStat) { changeGruz(item, isShop, view.getSelTrain(isGF, isShop).SendingPoint, view.getSelTrain(isGF, isShop).DateFromStat); mainPresenter.changeLoadCondAfter(item); } // Установили путь mainPresenter.changeConditionWayOn(item, view.wayPerformAdmissTrain); // Определение четной нечетной стороны sidePerformAdmissTrain (диалоговое окно) //log.Info("sidePerformAdmissTrain: " + view.sidePerformAdmissTrain.ToString()); //if (main.numSide == view.sidePerformAdmissTrain || !isStat) if (main.numSide == view.sidePerformAdmissTrain || view.sidePerformAdmissTrain == Side.Empty) { if (main.selectedStation.ID == 17 && isShop) { item.num_vag_on_way = list.IndexOf(item) + 1; } else { item.num_vag_on_way = list.Count - list.IndexOf(item); } //log.Info("item.num_vag_on_way:" + item.num_vag_on_way.ToString()); } else { item.num_vag_on_way = view.wayPerformAdmissTrain.Vag_amount + list.IndexOf(item) + 1; //log.Info("item.num_vag_on_way:" + item.num_vag_on_way.ToString()); } int ins_result = vagWaitAdmissDB.execAdmissOthStat(item, main.selectedStation, view.wayPerformAdmissTrain, item.dt_on_stat /*view.dtArriveAdmissTrain*/, view.getSelTrain(isGF, isShop).St_lock_locom1, view.getSelTrain(isGF, isShop).St_lock_locom2); //if (ins_result != null) ((VagWaitAdmiss)bs1P2.List[bs1P2.IndexOf(item)]).id_oper = Convert.ToInt32(ins_result); if (ins_result != -1) { item.id_oper = ins_result; //log.Info("ins_result: " + ins_result); } else { return; } status += String.Format("[состав:{0}, №:{1}, дата АМКР:{2}]; ", item.id_sostav, item.num_vag, item.dt_amkr); } //if (main.numSide == view.sidePerformAdmissTrain || !isStat) if (main.numSide == view.sidePerformAdmissTrain || view.sidePerformAdmissTrain == Side.Empty) // изменить нумерацию вагонов на пути назначения //new VagOperationsDB().changeVagNumsWayOn(list.Count, ((VagWaitAdmiss)bs1P2.List[bs1P2.IndexOf(list[0])]).id_oper, vagAcceptForm.getWay()); { vagOperationsDB.changeVagNumsWayOn(list.Count, list[0].id_oper, view.wayPerformAdmissTrain); //log.Info("list[0].id_oper" + list[0].id_oper); } if (!isGF || !leftVagOnGf) { view.removeTrain(isGF, isShop, view.getSelTrain(isGF, isShop)); } else { view.getSelTrain(isGF, isShop).Vag_amount = 1; view.refreshTrains(true, false); } loadVagWaitAdmiss(isGF, isShop); main.showInfoMessage("Вагоны успешно зачислены на путь!"); mess_accept.SaveLogEvents(status, service.DesktopRailCars); } } catch (Exception ex) { main.showErrorMessage(ex.Message); } }
/// <summary> /// Добавить удалить /// </summary> /// <param name="vagons"></param> /// <returns></returns> public int SaveVagonsOperations(VAGON_OPERATIONS vagonsoperations) { return(rep_vo.SaveVAGONOPERATIONS(vagonsoperations)); }
/// <summary> /// Принять партию вагонов /// </summary> public void performAdmissVagPart() { try { bool isStat = view.hasSelFromStatVag; bool isGF = view.hasSelFromGfVag; bool isShop = view.hasSelFromShopVag; if (view.getDialogTrainResult(main.selectedStation, view.getSelTrain(isGF, isShop).SendingPoint, isStat || main.selectedStation.ID == 17)) { string mess_accept = String.Format("Пользователь принял партию вагонов состава на станцию {0}, путь {1}", main.selectedStation.Name, view.wayPerformAdmissTrain.NumName); string status = ""; //try //{ List <VagWaitAdmiss> list = view.listToAdmiss(); //TODO: RW-ОПЕРАЦИИ Включил логирование rw-операций принятия на станцию VAGON_OPERATIONS vag = rc_vo.GetVagonsOperations(list[0].id_oper); rwoperation.ReceptionCars( list.Select(s => (int)s.num_vag).ToArray(), (int)vag.id_stat, vag.st_gruz_front > 0 ? vag.st_gruz_front : null, vag.st_shop > 0 ? vag.st_shop : null, main.selectedStation.ID, view.wayPerformAdmissTrain.ID, new int[] { view.getSelTrain(isGF, isShop).St_lock_locom1, view.getSelTrain(isGF, isShop).St_lock_locom2 } ); foreach (VagWaitAdmiss item in list) { if (!isStat) { // определение состояния вагона changeGruz(item, isShop, view.getSelTrain(isGF, isShop).SendingPoint, view.getSelTrain(isGF, isShop).DateFromStat); mainPresenter.changeLoadCondAfter(item); } mainPresenter.changeConditionWayOn(item, view.wayPerformAdmissTrain); // ----------------------------- //log.Info("sidePerformAdmissTrain: " + view.sidePerformAdmissTrain.ToString()); //if (main.numSide == view.sidePerformAdmissTrain) if (main.numSide == view.sidePerformAdmissTrain || view.sidePerformAdmissTrain == Side.Empty) { if (main.selectedStation.ID == 17 && isShop) { item.num_vag_on_way = list.IndexOf(item) + 1; } else { item.num_vag_on_way = list.Count - list.IndexOf(item); } //log.Info("item.num_vag_on_way:" + item.num_vag_on_way.ToString()); } else { item.num_vag_on_way = view.wayPerformAdmissTrain.Vag_amount + list.IndexOf(item) + 1; //log.Info("item.num_vag_on_way:" + item.num_vag_on_way.ToString()); } int ins_result = vagWaitAdmissDB.execAdmissOthStat(item, main.selectedStation, view.wayPerformAdmissTrain, view.dtArriveAdmissTrain, view.getSelTrain(isGF, isShop).St_lock_locom1, view.getSelTrain(isGF, isShop).St_lock_locom2); if (ins_result != -1) { item.id_oper = ins_result; //log.Info("ins_result: " + ins_result); } else { return; } status += String.Format("[состав:{0}, №:{1}, дата АМКР:{2}]; ", item.id_sostav, item.num_vag, item.dt_amkr); } //if (main.numSide == view.sidePerformAdmissTrain || !isStat) if (main.numSide == view.sidePerformAdmissTrain || view.sidePerformAdmissTrain == Side.Empty) // изменить нумерацию вагонов на пути назначения { vagOperationsDB.changeVagNumsWayOn(list.Count, list[0].id_oper, view.wayPerformAdmissTrain); //log.Info("list[0].id_oper" + list[0].id_oper); } //убрать вагоны выделенные желтым int i = view.listWaitAdmiss.Count - 1; while (i >= 0) { if (view.isVagColored(i)) { view.removeFromVagWaitAdm(view.listWaitAdmiss[i]); } i--; } //если не осталось вагонов удалить строку о поезде if (view.listWaitAdmiss.Count == 0) { view.removeTrain(isGF, isShop, view.getSelTrain(isGF, isShop)); } else { view.getSelTrain(isGF, isShop).Vag_amount = view.getSelTrain(isGF, isShop).Vag_amount - view.listToAdmiss().Count; view.refreshTrains(isGF, isShop); } view.clearVagToAdm(); loadVagWaitAdmiss(isGF, isShop); main.showInfoMessage("Вагоны успешно зачислены на путь!"); //} //catch (Exception ex) //{ // main.showErrorMessage(ex.Message); //} mess_accept.SaveLogEvents(status, service.DesktopRailCars); } } catch (Exception ex) { main.showErrorMessage(ex.Message); } }
/// <summary> /// Сделать маневр по вагону /// </summary> /// <param name="wag_oper"></param> /// <param name="side_station"></param> /// <returns></returns> public int ManeuverCar(VAGON_OPERATIONS wag_oper, Side side_station) { if (wag_oper == null) { return((int)errorManeuvers.no_string_wagon_operations); } // Проверка путь на который маневр пренадлежит этой станции if (wag_oper.id_stat != rc_ws.GetIDStationOfWay((int)wag_oper.lock_id_way)) { return((int)errorManeuvers.way_not_station); } try { int position = 1; if ((int)side_station == wag_oper.lock_side) { int p = (int)wag_oper.lock_id_way; rc_vo.OffSetCars(p, 2);// Сместить вагоны на пути } else { rc_vo.OffSetCars((int)wag_oper.lock_id_way, 1);// Выставить по порядку // добавить вагон зади int?num = rc_vo.MaxPositionWay((int)wag_oper.lock_id_way); if (num != null) { position = (int)num + 1; } } VAGON_OPERATIONS new_vagon = new VAGON_OPERATIONS() { id_oper = 0, dt_uz = wag_oper.dt_uz, dt_amkr = wag_oper.dt_amkr, dt_out_amkr = null, n_natur = wag_oper.n_natur, id_vagon = wag_oper.id_vagon, id_stat = wag_oper.id_stat, dt_from_stat = null, dt_on_stat = wag_oper.dt_on_stat, id_way = wag_oper.lock_id_way, dt_from_way = null, dt_on_way = DateTime.Now, num_vag_on_way = position, is_present = 1, id_locom = wag_oper.id_locom, id_locom2 = wag_oper.id_locom2, id_cond2 = wag_oper.id_cond2, id_gruz = wag_oper.id_gruz, id_gruz_amkr = wag_oper.id_gruz_amkr, id_shop_gruz_for = wag_oper.id_shop_gruz_for, weight_gruz = wag_oper.weight_gruz, id_tupik = wag_oper.id_tupik, id_nazn_country = wag_oper.id_nazn_country, id_gdstait = wag_oper.id_gdstait, id_cond = wag_oper.id_cond, note = wag_oper.note, is_hist = 0, id_oracle = wag_oper.id_oracle, lock_id_way = null, lock_order = null, lock_side = null, lock_id_locom = null, st_lock_id_stat = null, st_lock_order = null, st_lock_train = null, st_lock_side = null, st_gruz_front = null, st_shop = null, oracle_k_st = wag_oper.oracle_k_st, st_lock_locom1 = null, st_lock_locom2 = null, id_oper_parent = wag_oper.id_oper, grvu_SAP = wag_oper.grvu_SAP, ngru_SAP = wag_oper.ngru_SAP, id_ora_23_temp = wag_oper.id_ora_23_temp, IDSostav = wag_oper.IDSostav, num_vagon = wag_oper.num_vagon }; int res = rc_vo.SaveVagonsOperations(new_vagon); if (res > 0) { // Закроем старую запись wag_oper.lock_id_way = null; wag_oper.lock_order = null; wag_oper.lock_side = null; wag_oper.lock_id_locom = null; wag_oper.is_hist = 1; wag_oper.is_present = 0; int res_old = rc_vo.SaveVagonsOperations(wag_oper); if (res_old > 0) { return(1); } if (res_old < 0) { LogRW.LogError(String.Format("[Maneuvers.ManeuverCar]: Ошибка, номер вагона {0}, id_oper {1}, код ошибки {2}", wag_oper.num_vagon, wag_oper.id_oper, errorManeuvers.no_close_old_maneuvers.ToString()), eventID); return((int)errorManeuvers.no_close_old_maneuvers); } } if (res < 0) { LogRW.LogError(String.Format("[Maneuvers.ManeuverCar]: Ошибка, номер вагона {0}, id_oper {1}, код ошибки {2}", new_vagon.num_vagon, wag_oper.id_oper, errorManeuvers.no_create_new_maneuvers.ToString()), eventID); return((int)errorManeuvers.no_create_new_maneuvers); } return(0); } catch (Exception e) { LogRW.LogError(String.Format("[Maneuvers.ManeuverCar]: Ошибка, источник: {0}, № {1}, описание: {2}", e.Source, e.HResult, e.Message), this.eventID); return((int)errorManeuvers.global); } }
/// <summary> /// Добавить или править /// </summary> /// <param name="VAGONOPERATIONS"></param> /// <returns></returns> public int SaveVAGONOPERATIONS(VAGON_OPERATIONS VAGONOPERATIONS) { VAGON_OPERATIONS dbEntry; if (VAGONOPERATIONS.id_oper == 0) { dbEntry = new VAGON_OPERATIONS() { id_oper = 0, dt_uz = VAGONOPERATIONS.dt_uz, dt_amkr = VAGONOPERATIONS.dt_amkr, dt_out_amkr = VAGONOPERATIONS.dt_out_amkr, n_natur = VAGONOPERATIONS.n_natur, id_vagon = VAGONOPERATIONS.id_vagon, id_stat = VAGONOPERATIONS.id_stat, dt_from_stat = VAGONOPERATIONS.dt_from_stat, dt_on_stat = VAGONOPERATIONS.dt_on_stat, id_way = VAGONOPERATIONS.id_way, dt_from_way = VAGONOPERATIONS.dt_from_way, dt_on_way = VAGONOPERATIONS.dt_on_way, num_vag_on_way = VAGONOPERATIONS.num_vag_on_way, is_present = VAGONOPERATIONS.is_present, id_locom = VAGONOPERATIONS.id_locom, id_locom2 = VAGONOPERATIONS.id_locom2, id_cond2 = VAGONOPERATIONS.id_cond2, id_gruz = VAGONOPERATIONS.id_gruz, id_gruz_amkr = VAGONOPERATIONS.id_gruz_amkr, id_shop_gruz_for = VAGONOPERATIONS.id_shop_gruz_for, weight_gruz = VAGONOPERATIONS.weight_gruz, id_tupik = VAGONOPERATIONS.id_tupik, id_nazn_country = VAGONOPERATIONS.id_nazn_country, id_gdstait = VAGONOPERATIONS.id_gdstait, id_cond = VAGONOPERATIONS.id_cond, note = VAGONOPERATIONS.note, is_hist = VAGONOPERATIONS.is_hist, id_oracle = VAGONOPERATIONS.id_oracle, lock_id_way = VAGONOPERATIONS.lock_id_way, lock_order = VAGONOPERATIONS.lock_order, lock_side = VAGONOPERATIONS.lock_side, lock_id_locom = VAGONOPERATIONS.lock_id_locom, st_lock_id_stat = VAGONOPERATIONS.st_lock_id_stat, st_lock_order = VAGONOPERATIONS.st_lock_order, st_lock_train = VAGONOPERATIONS.st_lock_train, st_lock_side = VAGONOPERATIONS.st_lock_side, st_gruz_front = VAGONOPERATIONS.st_gruz_front, st_shop = VAGONOPERATIONS.st_shop, oracle_k_st = VAGONOPERATIONS.oracle_k_st, st_lock_locom1 = VAGONOPERATIONS.st_lock_locom1, st_lock_locom2 = VAGONOPERATIONS.st_lock_locom2, id_oper_parent = VAGONOPERATIONS.id_oper_parent, grvu_SAP = VAGONOPERATIONS.grvu_SAP, ngru_SAP = VAGONOPERATIONS.ngru_SAP, id_ora_23_temp = VAGONOPERATIONS.id_ora_23_temp, edit_user = VAGONOPERATIONS.edit_user, edit_dt = VAGONOPERATIONS.edit_dt, IDSostav = VAGONOPERATIONS.IDSostav, num_vagon = VAGONOPERATIONS.num_vagon, }; context.VAGON_OPERATIONS.Add(dbEntry); } else { dbEntry = context.VAGON_OPERATIONS.Find(VAGONOPERATIONS.id_oper); if (dbEntry != null) { dbEntry.dt_uz = VAGONOPERATIONS.dt_uz; dbEntry.dt_amkr = VAGONOPERATIONS.dt_amkr; dbEntry.dt_out_amkr = VAGONOPERATIONS.dt_out_amkr; dbEntry.n_natur = VAGONOPERATIONS.n_natur; dbEntry.id_vagon = VAGONOPERATIONS.id_vagon; dbEntry.id_stat = VAGONOPERATIONS.id_stat; dbEntry.dt_from_stat = VAGONOPERATIONS.dt_from_stat; dbEntry.dt_on_stat = VAGONOPERATIONS.dt_on_stat; dbEntry.id_way = VAGONOPERATIONS.id_way; dbEntry.dt_from_way = VAGONOPERATIONS.dt_from_way; dbEntry.dt_on_way = VAGONOPERATIONS.dt_on_way; dbEntry.num_vag_on_way = VAGONOPERATIONS.num_vag_on_way; dbEntry.is_present = VAGONOPERATIONS.is_present; dbEntry.id_locom = VAGONOPERATIONS.id_locom; dbEntry.id_locom2 = VAGONOPERATIONS.id_locom2; dbEntry.id_cond2 = VAGONOPERATIONS.id_cond2; dbEntry.id_gruz = VAGONOPERATIONS.id_gruz; dbEntry.id_gruz_amkr = VAGONOPERATIONS.id_gruz_amkr; dbEntry.id_shop_gruz_for = VAGONOPERATIONS.id_shop_gruz_for; dbEntry.weight_gruz = VAGONOPERATIONS.weight_gruz; dbEntry.id_tupik = VAGONOPERATIONS.id_tupik; dbEntry.id_nazn_country = VAGONOPERATIONS.id_nazn_country; dbEntry.id_gdstait = VAGONOPERATIONS.id_gdstait; dbEntry.id_cond = VAGONOPERATIONS.id_cond; dbEntry.note = VAGONOPERATIONS.note; dbEntry.is_hist = VAGONOPERATIONS.is_hist; dbEntry.id_oracle = VAGONOPERATIONS.id_oracle; dbEntry.lock_id_way = VAGONOPERATIONS.lock_id_way; dbEntry.lock_order = VAGONOPERATIONS.lock_order; dbEntry.lock_side = VAGONOPERATIONS.lock_side; dbEntry.lock_id_locom = VAGONOPERATIONS.lock_id_locom; dbEntry.st_lock_id_stat = VAGONOPERATIONS.st_lock_id_stat; dbEntry.st_lock_order = VAGONOPERATIONS.st_lock_order; dbEntry.st_lock_train = VAGONOPERATIONS.st_lock_train; dbEntry.st_lock_side = VAGONOPERATIONS.st_lock_side; dbEntry.st_gruz_front = VAGONOPERATIONS.st_gruz_front; dbEntry.st_shop = VAGONOPERATIONS.st_shop; dbEntry.oracle_k_st = VAGONOPERATIONS.oracle_k_st; dbEntry.st_lock_locom1 = VAGONOPERATIONS.st_lock_locom1; dbEntry.st_lock_locom2 = VAGONOPERATIONS.st_lock_locom2; dbEntry.id_oper_parent = VAGONOPERATIONS.id_oper_parent; dbEntry.grvu_SAP = VAGONOPERATIONS.grvu_SAP; dbEntry.ngru_SAP = VAGONOPERATIONS.ngru_SAP; dbEntry.id_ora_23_temp = VAGONOPERATIONS.id_ora_23_temp; dbEntry.edit_user = VAGONOPERATIONS.edit_user; dbEntry.edit_dt = VAGONOPERATIONS.edit_dt; dbEntry.IDSostav = VAGONOPERATIONS.IDSostav; dbEntry.num_vagon = VAGONOPERATIONS.num_vagon; } } try { context.SaveChanges(); } catch (Exception e) { LogRW.LogError(e, "SaveVAGONOPERATIONS", eventID); return(-1); } return(dbEntry.id_oper); }
/// <summary> /// Установить вагон с признаком для маневра /// </summary> /// <param name="wag"></param> /// <param name="lock_id_way"></param> /// <param name="lock_order"></param> /// <param name="lock_side"></param> /// <param name="lock_id_locom"></param> /// <param name="dt_from_way"></param> /// <returns></returns> public int AddCancelManeuverCar(int id_oper, int?lock_id_way, int?lock_order, int?lock_side, int?lock_id_locom, DateTime?dt_from_way) { VAGON_OPERATIONS wag = rc_vo.GetVagonsOperations(id_oper); return(AddCancelManeuverCar(wag, lock_id_way, lock_order, lock_side, lock_id_locom, dt_from_way)); }
/// <summary> /// Выполнить роспуск /// </summary> public void performRospusk() { if (!view.hasSelFromStatVag) { return; } try { string mess_accept = String.Format("Пользователь выполнил роспуск состава на станции {0}", main.selectedStation.Name); string status = ""; Side arriveSide = neighbourStationsDB.getArrivSide(main.selectedStation, (Station)view.getSelTrain(false, false).SendingPoint); List <VagWaitAdmiss> list = (from v in view.listWaitAdmiss where v.WayFact.ID != -1 select v).ToList(); //TODO: RW-ОПЕРАЦИИ Включил логирование rw-операций принятия на станцию List <IGrouping <int, VagWaitAdmiss> > group_list = new List <IGrouping <int, VagWaitAdmiss> >(); group_list = list.GroupBy(o => o.WayFact.ID).ToList(); foreach (IGrouping <int, VagWaitAdmiss> group_wag in group_list) { List <VagWaitAdmiss> list_wag = new List <VagWaitAdmiss>(); list_wag = group_wag.ToList(); VAGON_OPERATIONS vag = rc_vo.GetVagonsOperations(list_wag[0].id_oper); rwoperation.ReceptionCars( list.Select(s => (int)s.num_vag).ToArray(), (int)vag.id_stat, null, null, main.selectedStation.ID, group_wag.Key, new int[] { view.getSelTrain(false, false).St_lock_locom1, view.getSelTrain(false, false).St_lock_locom2 } ); } foreach (VagWaitAdmiss item in list) { List <VagWaitAdmiss> listOnSameWay = (from v in list where v.WayFact.ID == item.WayFact.ID select v).ToList(); if (main.numSide == arriveSide) { item.num_vag_on_way = listOnSameWay.Count - listOnSameWay.IndexOf(item); } else { item.num_vag_on_way = item.WayFact.Vag_amount + listOnSameWay.IndexOf(item) + 1; } //определение состояния вагона mainPresenter.changeConditionWayOn(item, item.WayFact); //---------------------------- int ins_result = vagWaitAdmissDB.execAdmissOthStat(item, main.selectedStation, item.WayFact, DateTime.Now, view.getSelTrain(false, false).St_lock_locom1, view.getSelTrain(false, false).St_lock_locom2); if (ins_result != -1) { view.listWaitAdmiss[view.listWaitAdmiss.IndexOf(item)].id_oper = ins_result; } else { return; } status += String.Format("[состав:{0}, №:{1}, дата АМКР:{2}, путь:{3}]; ", item.id_sostav, item.num_vag, item.dt_amkr, item.WayFact.NumName); } if (main.numSide == arriveSide) // изменить нумерацию вагонов на пути назначения { var result = list.GroupBy(l => l.WayFact.ID).Select(c1 => new { Quantity = c1.Count(), id_oper = c1.First().id_oper, wayFact = c1.First().WayFact }).ToList(); foreach (var item in result) { vagOperationsDB.changeVagNumsWayOn(item.Quantity, item.id_oper, item.wayFact); } } //убрать вагоны размеченные по путям int i = view.listWaitAdmiss.Count - 1; while (i >= 0) { if (view.listWaitAdmiss[i].WayFact.ID != -1) { view.removeFromVagWaitAdm(view.listWaitAdmiss[i]); } i--; } //если не осталось вагонов удалить строку о поезде if (view.listWaitAdmiss.Count == 0) { view.removeTrain(false, false, view.getSelTrain(false, false)); loadVagWaitAdmiss(false, false); } else { view.getSelTrain(false, false).Vag_amount = view.getSelTrain(false, false).Vag_amount - list.Count; view.refreshTrains(false, false); } main.showInfoMessage("Роспуск успешно выполнен!"); mess_accept.SaveLogEvents(status, service.DesktopRailCars); } catch (Exception ex) { main.showErrorMessage(ex.Message); } }