⟨/⟩ Nts/50_Domain/Reference/VehicleKind.cs

103 строк · в начало

using System;
using Rugrid.Sdaid.Notation.Documents;

namespace Rugrid.Sdaid.Epas.Nts.Domain
{
    /// <summary>
    /// Справочник «Виды ТС»: заимствован из АИС ОИА ПЭО, средствами модуля не редактируется.
    /// Код записи определяет формулу расчёта нормативного расхода топлива.
    /// </summary>
    public class DOC_VehicleKind : IDomainEntityDocument, IFolder<NtsDomainFolder>
    {
        public static string _refName = "Вид ТС";

        public string Name => "Вид ТС";

        public string Description =>
            @"Вид транспортного средства. Код записи определяет формулу расчёта нормативного расхода топлива.";

        public string Version => "0.1";
        public string Status => "draft";
        public string[] Comments => new string[0];
        public Type Entity => typeof(VehicleKind);

        public static string Catalog = """"
## Состав справочника

Значения справочника АИС ОИА ПЭО (`ref_d_automobile_kinds`) на текущий момент.
Код задаёт формулу расчёта (`fuel.category_by_kind`) — обязателен у каждой записи. Виды вне
кодового блока `mobile` (коды `mobileNNN`) получают код по тому же правилу — свой, не `mobile*`
(довнесён в ЭНТС, когда АИС его не передаёт).

| Код | Наименование | ИД в АИС |
|---|---|---|
| mobile001 | Легковые автомобили отечественные и стран СНГ | b98d8b08-d5e6-43f9-80c4-d319a140af60 |
| mobile002 | Легковые автомобили зарубежные | ff98dd96-b9b3-40f2-bf43-71199548d599 |
| mobile003 | Автобусы отечественные и стран СНГ | 96e5245a-3cc7-4e67-96c0-1fb967f3200e |
| mobile004 | Автобусы зарубежные | 13cf33d2-8fa2-4f5c-aa86-cf828ac70710 |
| mobile005 | Грузовые бортовые автомобили отечественные и стран СНГ | 204a1c34-9ddb-48c8-992b-7fa2c0d48cfe |
| mobile006 | Грузовые бортовые автомобили зарубежные | 6ed14670-fe0e-4692-8802-4fd106adc071 |
| mobile007 | Тягачи отечественные и стран СНГ | a499fafb-d13c-4d2d-87a5-29a35d3cdc91 |
| mobile008 | Тягачи зарубежные | 2122eedc-e547-4cdc-9ec8-0444b5df28a1 |
| mobile009 | Самосвалы отечественные и стран СНГ | 42d9db09-ab4e-4c48-85b0-815c1d10ec2b |
| mobile010 | Самосвалы зарубежные | 2a0f6824-3f28-46ee-b791-4d6ca70177e1 |
| mobile011 | Фургоны отечественные и стран СНГ | b7d4e2d8-f1bf-4951-9f2d-a8f3e0fc792e |
| mobile012 | Фургоны зарубежные | 95dda8c1-501d-4d71-a5ee-8bcaf87c5cbf |
| mobile013 | Медицинские автотранспортные средства отечественные и стран СНГ | fa651d74-eeae-4064-b806-f62de369ccbd |
| mobile014 | Медицинские автотранспортные средства зарубежные | bcf60a59-52fc-4c35-99f0-ca597544e127 |
| mobile015 | Автомобили–эвакуаторы | 9c044326-1c39-4818-adce-cc0832c6f7bf |
| mobile016 | Спец - Автовышки телескопические | 8216aafe-5422-4682-b2a1-43437f974870 |
| mobile017 | Спец - Установки бурильные | d7b6458d-0038-4db9-9667-478603cd77c8 |
| mobile018 | Спец - Установки дезинфекционные | 0a767042-d880-4e7c-a59f-0154c9be222b |
| mobile019 | Спец - Кабелеукладчики | a71c6156-1e8a-48dd-8acb-e4db9f4c4777 |
| mobile020 | Спец - Кинопередвижки | f89d32af-22c3-4e5e-902f-35abad4b19a6 |
| mobile021 | Спец - Компрессоры | 6a1a8eeb-e2e6-4efd-a428-f56a4501ef0e |
| mobile022 | Спец - Краны автомобильные | f9eb215f-fb71-4155-8af6-2e8f973d180d |
| mobile023 | Спец - Лаборатории на автомобилях | a494968f-3074-41f1-8b65-239eca5c93f8 |
| mobile024 | Спец - Лебедки на шасси автомобилей | 5324c1bf-883b-4a33-94e2-5ecbd60ff99d |
| mobile025 | Спец - Мастерские на автомобилях | 70127be0-773a-4b6b-952f-afa86cccabae |
| mobile026 | Спец - Погрузчики | 9fd14c7d-e0d0-489b-a22d-cdad4ad6bf8c |
| mobile027 | Спец - Автомобили пожарные | 81ecf08b-5e03-499e-ad2e-675c1fde3bf3 |
| mobile028 | Спец - Автомобили-битумовозы | aecac655-c0d0-4df4-87c5-7bea4aa2d168 |
| mobile029 | Спец - Автомобили-гудронаторы | b73b85f0-9054-4736-86c9-8af4f98803be |
| mobile030 | Спец - Автомобили-самопогрузчики | 3f309207-f697-4847-a508-023ad22e59f8 |
| mobile031 | Спец - Автомобили-топливозаправщики и маслозаправщики | 3fb250b8-1116-425c-bee4-866847028d3e |
| mobile032 | Спец - Автомобили-цистерны | 2e17b34f-1937-4a7d-b57e-b6aae164bf3c |
| mobile033 | Спец - Автомобили-цементовозы и автобетоносмесители | 28b2e63b-47e8-44a1-bd0f-dcde80029878 |
| tractor | Трактор | f9019e43-ad62-4ca6-a5cb-e97a91038ebb |
| snowmobile | Снегоход | d220ff33-11aa-4a8e-9c58-73a4b7b74520 |
| bulldozer | Бульдозер | 64f2bbbe-22db-4821-8c7e-5d058a8fb08f |
| domestic_passenger_and_cargo_vehicles | Грузопассажирские автомобили отечественные и стран СНГ | a48c66f5-3dbc-4a07-b869-eae7d403c5f9 |
| chipper_machine | Спец-Рубительная машина | 0f9c27ab-598c-4aed-a535-31c3a88e70ff |
| brigade_car | Бригадный автомобиль | b8a08617-03d9-47da-b468-71c22f0b3cb3 |
| all_terrain_vehicle | Вездеход | 66a8d46b-15ad-46d8-b889-9d477661e851 |
| tracked_swamp_vehicle | Гусеничный болотоход | 88cd2a56-9a18-462e-b8c3-da786c800df9 |

В выгрузке реестра ТС (`ref_cars`) встречаются не все записи справочника: виды, по которым
нет техники, приходят только словарём.
"""";
    }

    /// <summary>Доменная сущность «Вид ТС».</summary>
    [DomainEntity]
    public class VehicleKind
    {
        /// <summary>Идентификатор записи</summary>
        [DomainField(Alias = "id", RequiredOnCreate = true, Range = "UUID", Immutable = true)]
        public Guid Id { get; set; }

        /// <summary>ИД объекта в АИС</summary>
        [DomainField(Alias = "ais_id", Immutable = true)]
        public Guid AisId { get; set; }

        /// <summary>Наименование</summary>
        [DomainField(Alias = "name", RequiredOnCreate = true)]
        public string? Name { get; set; }

        /// <summary>Код</summary>
        [DomainField(Alias = "code", RequiredOnCreate = true,
            Description = "По коду выбирается формула расчёта нормативного расхода")]
        public string? Code { get; set; }
    }
}