예제 #1
0
        /// <summary>
        ///  То1 таблица
        /// </summary>
        private static async Task <ReportResponse> GetTo1Table(int planedRouteTrainId, ILogger logger)
        {
            var sqlRTrains            = new TrainRepository(logger);
            var sqlRPlanedRouteTrains = new PlanedRouteTrainsRepository(logger);
            var sqlRRoute             = new RoutesRepository(logger);
            var sqlRInspections       = new InspectionRepository(logger);
            var sqlRTaskAttributes    = new TrainTaskAttributesRepository(logger);
            var sqlRUser = new UserRepository(logger);

            var result = new ReportResponse {
                Rows = new List <Row>()
            };

            result.Columns = new List <Column>
            {
                new Column("col0", "Номер", "number"),
                new Column("col1", "Состав", "string"),
                new Column("col2", "Рейс", "string"),
                new Column("col3", "Время начала", "date"),
                new Column("col4", "Время окончания", "date"),
                new Column("col5", "Количество созданных инцидентов", "number"),
                new Column("col6", "Исполнитель", "string"),
                new Column("col7", "Меток считано всего (в том числе при обходе и закрытии задач)", "number"),
            };

            var planedRouteTrain = await sqlRPlanedRouteTrains.ById(planedRouteTrainId);

            var route = await sqlRRoute.ById(planedRouteTrain.RouteId);

            //Надо получить ТО 1 на этот день или блядь для этого поезда. хуй его знает
            var currentTrainInspections = await sqlRInspections.GetByTrainId(planedRouteTrain.TrainId);

            //Выбираем за текущий денек
            var currentDayInspections =
                currentTrainInspections.Where(x => x.DateStart.Date.Equals(planedRouteTrain.CreateDate) && x.CheckListType == CheckListType.TO1);

            foreach (var currentDayInspection in currentDayInspections)
            {
                var row = new Row
                {
                    Id       = new RowId(currentDayInspection.Id, 1),
                    HasItems = false.ToString(),
                    ParentId = null,
                    //Номер
                    Col0 = currentDayInspection.Id.ToString(),
                    //Состав
                    Col1 = (await sqlRTrains.ById(planedRouteTrain.TrainId)).Name,
                    //Рейс
                    Col2 = route.Name,
                    //Время начала
                    Col3 = currentDayInspection.DateStart.ToStringDateTime(),
                    //Время окончания
                    Col4 = currentDayInspection.DateEnd?.ToStringDateTime(),
                    //Количество созданных инцидентов
                    Col5 = (await sqlRTaskAttributes.ByInspectionId(currentDayInspection.Id))?.Count.ToString(),
                    //Исполнитель
                    Col6 = (await sqlRUser.ById(currentDayInspection.UserId))?.Name,
                    //Меток считано всего (в том числе при обходе и закрытии задач)
                    Col7 = "In Development",
                };

                result.Rows.Add(row);
            }

            return(result);
        }
예제 #2
0
        /// <summary>
        ///  Приемка/Сдача ЛБ таблица
        /// </summary>
        private static async Task <ReportResponse> GetLocomotvInspectionsTable(ReportRequest input, int planedRouteTrainId, ILogger logger)
        {
            var sqlRTrains            = new TrainRepository(logger);
            var sqlRPlanedRouteTrains = new PlanedRouteTrainsRepository(logger);
            var sqlRRoute             = new RoutesRepository(logger);
            var sqlRInspections       = new InspectionRepository(logger);
            var sqlRTaskAttributes    = new TrainTaskAttributesRepository(logger);
            var sqlRUser    = new UserRepository(logger);
            var sqlRBrigade = new BrigadeRepository(logger);

            var result = new ReportResponse {
                Rows = new List <Row>()
            };

            result.Columns = new List <Column>
            {
                new Column("col0", "Состав", "string"),
                new Column("col1", "Тип", "string"),
                new Column("col2", "Время начала", "date"),
                new Column("col3", "Время окончания", "date"),
                new Column("col4", "Меток считано", "number"),
                new Column("col5", "Новых инцидентов заведено (из них критических)", "number"),
                new Column("col6", "Инцидентов на составе всего", "string"),
                new Column("col7", "Километров всего", "number"),
                new Column("col8", "Километров за смену", "number"),
                new Column("col9", "КВт*ч (по каждому вагону)", "string"),
            };

            var planedRouteTrain = await sqlRPlanedRouteTrains.ById(planedRouteTrainId);

            //var route = await sqlRRoute.ById(planedRouteTrain.RouteId);

            var currentTrainInspections = await sqlRInspections.GetByTrainId(planedRouteTrain.TrainId);

            var currentDayInspections =
                currentTrainInspections.Where(x => x.DateStart.Date.Equals(planedRouteTrain.CreateDate));



            foreach (var currentDayInspection in currentDayInspections)
            {
                var user = await sqlRUser.ById(currentDayInspection.UserId);

                if (user.BrigadeId == null)
                {
                    continue;
                }

                var brigade = await sqlRBrigade.ById((int)user.BrigadeId);

                if (brigade.BrigadeType != BrigadeType.Locomotiv)
                {
                    continue;
                }

                var row = new Row
                {
                    Id       = new RowId(currentDayInspection.Id, 1),
                    HasItems = false.ToString(),
                    ParentId = null,
                    //Состав
                    Col0 = (await sqlRTrains.ById(planedRouteTrain.TrainId)).Name,
                    //Тип
                    Col1 = GetStringInspectionType(currentDayInspection.CheckListType),
                    //Время начала
                    Col2 = currentDayInspection.DateStart.ToStringDateTime(),
                    //Время окончания
                    Col3 = currentDayInspection.DateEnd?.ToStringDateTime(),
                    //Меток считано
                    Col4 = "666",
                    //Новых инцидентов заведено (из них критических)
                    Col5 = "666",
                    //Инцидентов на составе всего
                    Col6 = "666",
                    //Километров всего
                    Col7 = "666",
                    //Километров за смену
                    Col8 = "666",
                    //КВт*ч (по каждому вагону)
                    Col9 = "In Development",
                };

                result.Rows.Add(row);
            }

            return(result);
        }