30 хоногийн хөгжүүлэлтийн төлөвлөгөө — v2¶
Хугацаа: 2026.09.01 – 09.30 · Загвар: төр–хувийн хэвшлийн түншлэл (ТХТ) · Суурь: системийн шаардлага · дэлхийн жишиг · «PetroNet-ийн бүрэн төлөвлөгөө» (
plan/petronet-plan.md, дотоод)v1-ээс юу өөрчлөгдөв. v1 нь «юуг эхэлж барих» гэдгийг зөв хэлсэн. v2 нь түүн дээр дөрвөн зүйл нэмж байна: (1) кодын бодит төлөвийг хэмжсэн, (2) дэлхийн жишгээс гарсан арван хоёр шийдвэр, (3) долоо хоног биш өдрийн нарийвчлалтай хуваарь, хүлээн авах тоон шалгуур, (4) «PetroNet-ийн бүрэн төлөвлөгөө» (
plan/petronet-plan.md, дотоод)-той уялдуулсан дараалал — тэр баримтын Фаз 0–1-ийн юу нь энэ сард багтахыг нэр заан шийдсэн.Шаардлагын бүрэн жагсаалт нь гэрээний үүрэг биш, зорилтот төлөв. Энэ баримт нь эхний 30 хоногт юуг нь барихыг хэлнэ.
Таамаглал: 3 хөгжүүлэгч (2 backend/full-stack, 1 frontend) + хагас цагийн аналист/PM. Баг өөр бол §4-ийн хуваарь биш, §3-ын хүлээн авах шалгуур нь хэлэлцэх зүйл — хамрах хүрээг хасна, чанарыг бууруулахгүй.
0. Хийгдсэн — 2026.08.31¶
Энэ бол төлөвлөгөө биш, бүртгэл. Доорхи зүйлс репод байна, тесттэй, бодит Postgres дээр ажилласан:
| Юу | Хаана | Төлөв |
|---|---|---|
| Бүртгэл: улсын дугаар, статус, ХУР-ын баталгаа | 00009_registry_products_policy.sql |
✔ |
| Бүтээгдэхүүний толь — JODI ангилалтай, 7 төрөл | petro_products |
✔ |
Зохицуулагчийн эрх — хүснэгт + petro_is_oversight() бодлого |
00009 | ✔ |
| Бодлого өгөгдөл болов — лимит, хүлцэл, хугацаа | petro_policy, policy.go |
✔ |
| ШТС-ын техникийн тооллого (A/B/C/D) | registry.go |
✔ |
| Тайлангийн үе, ирүүлэлт, мөр, дүгнэлт | 00010_reports_and_movements.sql |
✔ |
| Шалгалтын дүрмүүд — тэнцэл, тасралт, багтаамж, хазайлт, хэмжил зүй | validation.go (+9 тест) |
✔ |
| 15 °C-ийн залруулга — ASTM D1250 / API MPMS 11.1 | volume.go (+3 тест) |
✔ |
| Хувилбар ба хэш гинж | report.go |
✔ |
| Excel загвар гаргах, ачаалах | excel.go |
✔ |
| Хяналтын workflow — батлах, буцаах, дөрвөн нүд | review.go |
✔ |
| Удирдах үйлдэл — объект түдгэлзүүлэх, хөдөлгөөн маргах | review.go, movement.go |
✔ |
| Хөдөлгөөн — улсын дугаар, хаагдах төлөв, зөрүү | movement.go |
✔ |
| Улсын өдрийн нэгтгэл, хамрах хүрээ, хоногийн нөөц | oversight.go, petro_daily_national |
✔ |
| Өгөгдөл ирээгүйн илрүүлэлт | oversight.go + petro.coverage_gaps тайлан |
✔ |
| Нөхцөлдүүлэлт ΔA–ΔE (ΔB, ΔC ажиллаж байна) | oversight.go |
✔ |
| 7 тайлан — Excel/CSV, хуваарь, и-мэйл платформын хөдөлгүүр дээр | reports.go |
✔ |
| Нээлттэй өгөгдөл — өдрийн нэгтгэл | /api/v1/petro/public/daily |
✔ |
| Хуваарьт ажил — үе үүсгэх, нэгтгэл дахин тооцох | jobs.go |
✔ |
| ААН-ийн тайлангийн дэлгэц | frontend/app/petro/report |
✔ |
| Зохицуулагчийн дэлгэц | frontend/app/petro/oversight |
✔ |
Тест: Go 43 тест (12 нь бодит Postgres дээр — мөрийн түвшний тусгаарлалт, дөрвөн нүд, хувилбар, хэш гинж, хамрах хүрээ, хөдөлгөөний зөрүү), frontend 170. (Frontend-ийн тоо 176-аас буурсан нь регресс биш: нүүр хуудсыг PetroNet-ийнх болгоход цөмийн платформын landing-ийн хэсгүүд ба тэдгээрийн тест хамт хасагдав.)
Үлдсэн (эхний сарын хамрах хүрээнд): ААН-ийн eID нэвтрэлт ба нэгдэх бодлого,
petro-import-ыг mpetro-гийн бодит жагсаалтад тохируулах, dev/staging
тусгаарлалт, ачааллын тест, OWASP чеклист, сургалтын материал, ХУР ба гаалийн
албан хүсэлт, эрх зүйн багц.
1. Хаана байна вэ — 2026.08.31-ний хэмжилт¶
modules/petro: 3,326 мөр Go (тестээс бусад), 7 миграц, 11 хүснэгт.
frontend: 73 хуудас. Платформын цөм нь dependency, энэ репод цөмийн код
байхгүй.
Барьсан зүйл нь нийлүүлэлтийн гинжний загвар:
гааль (petro_customs_shipments) → бааз (petro_depots, petro_depot_tanks,
petro_depot_receipts) → тээвэр (petro_dispatch_trips) → ШТС (petro_stations,
petro_station_inventory, petro_station_receipts) → иргэн (petro_entitlements,
petro_vouchers) · нэмэлт: petro_batches, routes
Хоёр зарчим нь аль хэдийн кодод суусан бөгөөд энэ нь дэлхийн жишигтэй санамсаргүй таарсан хоёр газар:
- Литрийн талбар байхгүй. Түвшин нь хүлээн авалтуудын нийлбэр; түүнийг
дарж бичих талбар нь доорх бүх баримтыг зөвлөмж болгоно (
depots/page.tsx) - Мэдүүлсэн ба хэмжсэн хоёр тоо тусад нь. Хүлээн авалт нь ачааны бичгийн
тоо ба хэмжигчийн тоо хоёрыг зэрэг хадгална — зөрүү нь өөрөө өгөгдөл
(
receipt.go,depot.go)
Шаардлагын хамрах хүрээ¶
| Шаардлага | Төлөв | Хэзээ |
|---|---|---|
| §3.1 М1 Нэгдсэн хяналтын самбар | Хэсэгчлэн — Prometheus метрик бий, самбар үгүй | 3-р д/х |
| §3.1 М2 Газрын зурагт мониторинг | Иргэний зураг бий; төрийн харагдац дутуу | 3-р д/х |
| §3.1 М3 Эрсдэлийн хяналт | Үгүй | 3-р д/х |
| §3.1 М4 Аналитик харагдац | Үгүй | 3-р д/х (v1) |
| §3.2 М1 Импортын хяналт | Загвар бий, гаалийн интеграцгүй | Гааль → 2-р сар |
| §3.2 М2 Нөөцийн хяналт | Бий | — |
| §3.2 М3 Тайлангийн удирдлага | Үгүй | 2–3-р д/х — сарын гол ажил |
| §3.2 М4 Объектын бүртгэл | Бий; эзэмшигч, ХУР баталгаажуулалт дутуу | 1-р д/х |
| §3.2 М5 Техникийн дүгнэлт | Үгүй | 2-р сар |
| §3.2 М6 Хяналтын үйл ажиллагааны бүртгэл | Үгүй | 3-р сар |
| §3.2 М7 Хэрэглэгч, эрх, аудит | Бий (платформ) | — |
| §3.3 ААН портал | Үгүй | 1–2-р д/х |
| §3.4 Мобайл шалгалт | Үгүй | 3-р сар |
| §4.1–4.3 Архитектур, API | Бий (модуль, REST/JSON, OAuth2/JWT, RBAC) | OpenAPI → 4-р д/х |
| §4.4 IoT/MQTT | Үгүй; талбарын бүтэц 2-р д/х-д схемд орно | 2-р сар |
| §4.5 Гүйцэтгэл (≤3с/≤1с/1000) | Хэмжигдээгүй | 4-р д/х |
| §4.6 Uptime, backup, failover | Бий | — |
| §4.7 Аюулгүй байдал | Ихэнх бий; pentest дутуу | 4-р д/х (захиалга) |
| §4.8 UI/UX, responsive, монгол | Бий | — |
| §4.9 Container, CI/CD | Бий; dev/staging тусгаарлалт дутуу | 1-р д/х |
Гинжний зургаан үе — хянахаас гадна удирдах¶
Систем нь ажиглалтын самбар биш. Үе шат бүрт харах ба үйлдэл хийх хоёр багана байна; зөвхөн эхнийх нь байвал энэ нь тайлангийн сан, систем биш.
| Үе шат | Хянах | Удирдах (үйлдэл) | 1-р сар |
|---|---|---|---|
| Импорт | Гэрээ, захиалга, тонн, үнэ, ирэх хугацаа | Импортын төлөвлөгөө батлах, хуваарилалт | Загвар бий; гар бүртгэл + тайлан |
| Хил | Гаалийн мэдүүлэг, партийн дугаар, чанарын үзүүлэлт | Мэдүүлгийг баталгаажуулах, зөрүү тэмдэглэх | Гар бүртгэл; гаалийн интеграц 2-р сард |
| Терминал | Савны түвшин, чөлөөт багтаамж, улсын нөөц | Хүлээн авалт бүртгэх, савны статус, түдгэлзүүлэх | Бий (depot_receipts) + шалгалт |
| Тээвэр | Автоцистерн, замнал, ETA, зөрсөн зогсолт | Хөдөлгөөн нээх, хаах, зөрүүтэй гэж тэмдэглэх | petro_movements — 2-р д/х |
| ШТС | Үлдэгдэл, үнэ, хошуу, дараалал | Хүлээн авалт, үнэ, статус, тусгай зөвшөөрөл | Бий (station_receipts, grades) |
| Түгээлт | Борлуулалт, иргэний эрх, ваучер | Эрх олгох, ваучер, хязгаар тогтоох | Бий (entitlements, vouchers) |
Зохицуулагчийн талын удирдах үйлдлүүд нь энэ сард нэмэгдэнэ: тайлан батлах, буцаах, объект түдгэлзүүлэх, хөдөлгөөнийг хаах, зөрүүтэй гэж тэмдэглэх, эрсдэлийн жагсаалтаас даалгавар үүсгэх — бүгд аудитын мөртэй.
Хоёр баримт, нэг систем — хамрах хүрээ ба нарийвчлал¶
«PetroNet-ийн бүрэн төлөвлөгөө» (plan/petronet-plan.md, дотоод) нь өөр эхлэлийг санал болгодог:
POS → өгөгдөл → харагдац → ваучер → хяналт. Тэр нь буруу биш — эцсийн үнэн нь
түгээгүүрийн тоолуур дээр байдаг. Гэхдээ хоёр зам нь өөр зүйлийг эрт өгдөг:
| Хамрах хүрээний зам (энэ сар) | Нарийвчлалын зам (2–4-р сар) | |
|---|---|---|
| Эх үүсвэр | ААН-ийн тайлан, Excel, веб форм | POS, хошуу, ATG |
| Хэдэн объект | 1500 ШТС — долоо хоногт | 20–30 ШТС — сард |
| Нарийвчлал | Өдөрт нэг мөр, ±1–2% | Гүйлгээ тутам, ±0.3% |
| Юуг өгдөг | «Хаана хэдэн литр байна» — улсын зураг | «Хаана алдагдаж байна» — гүйлгээний үнэн |
| Өртөг | Код ба дагалдан ажиллах хүн | ШТС тутамд $700–1,200 тоног төхөөрөмж |
Дараалал нь: хамрах хүрээ эхэлнэ, нарийвчлал дагана. Грек ч гэсэн хошууны системд хоёр жилийн шаталсан хугацаа тавьсан. Нэг сард 1500 ШТС-д төхөөрөмж суулгах боломжгүй; нэг сард 1500 ШТС-ыг тайлагнуулах боломжтой.
Гэхдээ хоёр зам нь нэг өгөгдлийн загвар дээр нийлэх ёстой: тайлангийн мөр
болон ATG-ийн заалт хоёр ижил талбар (түвшин, температур, нягт, 15 °C литр)
бөглөнө; ялгаа нь зөвхөн source багана. Ингэвэл 2-р сард мэдрэгч ирэхэд
шилжүүлэх миграц биш, шинэ мөр л нэмэгдэнэ.
Модулийн бүтэц — нэг модуль хэвээр¶
Бүрэн төлөвлөгөө 14 модуль санал болгосон (pos, pump, tank, voucher,
allocation, oversight …). Энэ сард салгахгүй: бүгд modules/petro
дотор, нэг миграцын түүхтэй. Салгах шалтгаан нь одоо байхгүй — нэг баг, нэг
байрлуулалт, нэг эрхийн загвар. Салгах цаг нь ирмэгийн агент (edge/) гарч,
өөрийн хувилбарын мөчлөгтэй болох үе.
Нэг өгүүлбэрээр: нийлүүлэлтийн гинж баригдсан, зохицуулалтын гогцоо дутуу — ААН өөрөө тайлагнаж, төр шалгаж, буцааж, батлах урсгал.
2. Дэлхийн жишгээс гарсан арван хоёр шийдвэр¶
Бүрэн үндэслэл нь BENCHMARKS.md-д. Энэ сард кодод нөлөөлөх нь:
| # | Шийдвэр | Хаанаас | Хаана хэрэгжинэ |
|---|---|---|---|
| 1 | Хамрах хүрээ бол KPI — «хэдэн объект тайлагнав» нь дашбоардын эхний мөр | Гана, 2025 аудит | 3-р д/х, дашбоард |
| 2 | Өдөр тутмын, тасалдалгүй цуваа — амралтын өдрийг оруулаад | Кени, 2026 Сенат | 2-р д/х, тайлангийн үе |
| 3 | Хөдөлгөөн төвтэй хяналт — давтагдашгүй дугаар, хаагдах төлөв, зөрүү | ЕХ EMCS | 2-р д/х, petro_movements |
| 4 | JODI-гийн толь бичиг — imports / closing stocks / deliveries; литр ба тонн зэрэг | JODI, IEA MOS | 1-р д/х, petro_products |
| 5 | Тэнцлийн тэгшитгэл шалгалт — SIR-ийн хялбаршуулсан хувилбар | EPA UST SIR | 2-р д/х, validation.go |
| 6 | Ажиглалт ба тооцооллыг тусад нь — түвшин, температур, нягт нь түүхийгээрээ | API MPMS 3.1B/12/21 | 2-р д/х, тайлангийн мөр |
| 7 | Store-and-forward-ын гэрээг одоо тогтоох, хэрэгжүүлэлт нь 2-р сард | Sparkplug B 3.0 | 2-р д/х, төхөөрөмжийн бүртгэл |
| 8 | ХУР-ын өргөдөл 1-р долоо хоногт — хүнд нь код биш, зөвшөөрөл | X-Road | 1-р д/х, PM |
| 9 | 15 °C-ийн залруулга 1-р сард — Монголын +35…−40 далайцад залруулгагүй тэнцэл нь дуу чимээ | ASTM D1250 / ISO 91 | 2-р д/х, volume.go |
| 10 | Бодлого бол өгөгдөл — лимит, хүлцэл, хуваарь нь petro_policy дотор; өөрчлөхөд байршуулалт хийхгүй |
Иран, Малайз, ТХТ-ийн туршлага | 2-р д/х |
| 11 | Тайлагналын давхарга эхэлж, хошуу дараа нь — Грек ч 2 жилийн шаталсан хугацаа тавьсан | Грек AADE, Бразил SIMP | Сарын дараалал |
| 12 | Big-bang байхгүй, идемпотент заавал — Шри Ланкын 2026 оны уналтын гурван шалтгаан | Sri Lanka Fuel Pass | Тасралтгүй |
3. 30 хоногийн зорилго ба хүлээн авах шалгуур¶
Гинж: ААН тайлангаа өгнө → систем шалгана → төрийн ажилтан батална → шийдвэр гаргагч бодит зургийг харна → тайлагнаагүй нь нэрээрээ гарна.
Энэ гинж бүтэн ажиллавал систем амьд. IoT, гааль, мобайл, BI бүгд үүн дээр нэмэгдэнэ — доор нь биш.
Хүлээн авах шалгуур (09.30-ны байдлаар)¶
| # | Шалгуур | Зорилт |
|---|---|---|
| 1 | Порталд нэвтэрч, өөрийн объектоо баталгаажуулсан ААН | ≥ 20 (сарын эцэст ≥ 50 урилгатай) |
| 2 | Эзэмшигчтэй холбогдсон ШТС/бааз | ≥ 300 объект |
| 3 | Тайлангийн хамрах хүрээ (тайлагнасан ÷ бүртгэлтэй) | ≥ 80%, сүүлийн 2 долоо хоногт |
| 4 | Хугацаандаа ирсэн тайлан (timeliness) | ≥ 80% |
| 5 | Автомат шалгалтаар илэрсэн зөрчил засагдах дундаж хугацаа | < 24 цаг |
| 6 | Дашбоардын хариу (p95) | ≤ 3 с |
| 7 | API-ийн хариу (p95, 1000 зэрэг хэрэглэгч) | ≤ 1 с |
| 8 | Өгөгдөл ирээгүйн жагсаалт | Өдөр бүр 08:00-д и-мэйлээр, гараар биш |
| 9 | Улсын нөөцийн хоногийн нөөц (days of supply) | Бүтээгдэхүүн тус бүрээр, өдөр бүр |
| 10 | Нээлттэй өгөгдөл | Өдөр тутмын нэгтгэл JSON/CSV-ээр нийтэд |
| 11 | Зохицуулагчийн удирдах үйлдэл системд — батлах, буцаах, түдгэлзүүлэх, хөдөлгөөн хаах | Бүгд аудиттай, гараас гадуур биш |
| 12 | Нөхцөлдүүлэлт ΔB, ΔC өдөр бүр тооцогдоно | Хүлцэл: 0.3% / 0.5% |
| 13 | ШТС-ын техникийн тооллогын хамрах хүрээ | ≥ 200 объект, A/B/C/D ангилалтай |
Аль нэг нь хангагдаагүй бол шалтгааныг нь бичнэ — тоог нь өөрчлөхгүй.
4. Хамрах хүрээнд БАЙХГҮЙ¶
Эдгээрийг хойшлуулж байгаа нь чухал биш гэсэн үг биш: эхний гинж ажиллаагүй байхад тэдгээр нь ямар ч үнэ цэн өгөхгүй.
| Юу | Хэзээ | Яагаад хойш |
|---|---|---|
| IoT / MQTT / ATG нэвтрүүлэлт | 2-р сар | Талбарын төхөөрөмжийн судалгаа, тендер шаардана. Гар тайлан эхлээд ажиллах ёстой. Талбарын бүтэц нь энэ сард схемд орно |
| Гаалийн интеграц | 2–3-р сар | Гадаад хамаарал. Өргөдөл 1-р д/х-д, код нь хожим |
| ХУР-аас автомат баталгаажуулалт | 2-р сар | Гараар бүртгэсэн ч эхний сар ажиллана |
| Мобайл шалгалтын апп | 3-р сар | Хяналтын ажилтан эхлээд вэбээр ажиллана |
| Data warehouse / BI | 3-р сар | Аналитик хийх өгөгдөл эхлээд хуримтлагдана |
| Time-series сан (Timescale) | ATG-той хамт | Өдөрт нэг мөр нь Postgres-т багтана |
| Бүтэн SIR (30 хоногийн статистик) | ATG-той хамт | Өдрийн тэнцэл нь энэ сард ажиллана; статистик хазайлт нь өгөгдөл хуримтлагдсаны дараа. 15 °C-ийн залруулга нь хойшлохгүй — 2-р д/х-д орно |
| Техникийн дүгнэлт (§3.2 М5) | 2-р сар | Бүртгэл (М4) бэлэн болсны дараа |
| POS, хошууны драйвер, ирмэгийн агент | 3-р сар | Энэ сард зөвхөн тооллого. Драйвер бичихээс өмнө ямар төхөөрөмж байгааг мэдэх ёстой («бүрэн төлөвлөгөө» (plan/petronet-plan.md, дотоод) §6) |
5. Долоо хоног тутмын хуваарь¶
09.01 ─── 09.06 1-р д/х Бүртгэл ба эзэмшил ААН нэвтэрч, объектоо хардаг
09.07 ─── 09.13 2-р д/х Тайлан орж ирэх Тайлан ирж, шалгагдаж, буцдаг
09.14 ─── 09.20 3-р д/х Төрийн харагдац Батлагдаж, дашбоард дээр гардаг
09.21 ─── 09.27 4-р д/х Тогтворжуулалт Хурд, аюулгүй байдал, сургалт
09.28 ─── 09.30 Төгсгөл Нэвтрүүлэлт 50+ ААН, хүлээлгэн өгөх
1-р долоо хоног · 09.01–09.06 — бүртгэл ба эзэмшил¶
Шинэ registry модуль барихгүй: petro_stations, petro_depots,
petro_depot_tanks түүний ажлыг хийж байна. Дутуу нь эзэмшил ба гадны нэвтрэлт.
| Өдөр | Ажил | Гаралт |
|---|---|---|
| 09.01 | 00009_registry.sql — owner_org_id, national_code (улсын давтагдашгүй дугаар), hur_verified_at, status; индексүүд |
Миграц, go test ./... ногоон |
| 09.01 | ХУР ба гаальд холболтын албан хүсэлт (PM) | Илгээсэн бичиг |
| 09.02 | petro_products — JODI-той нийцсэн бүтээгдэхүүний толь: код, JODI ангилал, анхдагч нягт, нэгж |
Миграц + seed |
| 09.02–03 | ААН-ийн нэвтрэлт: eID + байгууллагын муж, on_request нэгдэх бодлого, petro.report.submit эрх |
Портал руу нэвтэрнэ |
| 09.03–04 | ААН портал v0: өөрийн объектын жагсаалт, дэлгэрэнгүй, засварын хүсэлт | /portal хуудсууд |
| 09.03 | Эрх зүйн багц — ЗГ-ын тогтоол, техникийн журам, мэдээлэл солилцооны гэрээний төслийг зохицуулагчид өгөх | 4 төсөл (PM) |
| 09.04–05 | cmd/petro-import — mpetro-гийн бодит жагсаалт: --dry-run, зөрүүний тайлан, давхардал таних |
Импортын лог, 1500 ШТС |
| 09.04 | Хандалтын түвшин L1–L9 — иргэн, оператор, сүлжээ, импортлогч, аймаг, яам, ТЕГ, ГЕГ, аудитор | Эрхийн матриц |
| 09.05 | dev/staging орчин тусгаарлах (§4.9) | staging.petronet.mn |
| 09.05 | ШТС-ын техникийн тооллого эхлүүлэх — түгээгүүрийн брэнд, протокол, ATG, интернэт (A/B/C/D ангилал) | Асуумж порталд, 2-р сарын IoT-ийн суурь |
| 09.06 | Эхний 5 ААН-ийг гараар дагаж оруулах | 5 амьд хэрэглэгч |
Долоо хоногийн шалгуур: 20 ААН нэвтэрч, өөрийн ШТС, баазаа харж, буруу мэдээллийг нь заасан байна. Эзэмшигчгүй объектын тоо тодорхой.
2-р долоо хоног · 09.07–09.13 — тайлан орж ирэх¶
| Өдөр | Ажил | Гаралт |
|---|---|---|
| 09.07 | 00010_reports.sql — petro_report_periods, petro_report_submissions (төлөв, хувилбар, файл), petro_report_lines, petro_validation_findings |
Миграц |
| 09.07 | petro_movements — хөдөлгөөний давтагдашгүй дугаар, эхлэх/хаагдах төлөв (EMCS-ийн загвар) |
Миграц |
| 09.08 | Тайлангийн мөрийн бүтэц: объект, бүтээгдэхүүн, нээлтийн үлдэгдэл, хүлээн авалт, борлуулалт, хаалтын үлдэгдэл, үнэ, ажиглалтын температур, нягт | report.go |
| 09.08–09 | Веб форм — өдөр тутмын үлдэгдэл ба борлуулалт; өмнөх өдрийн хаалт нь өнөөдрийн нээлт болж урьдчилан бөглөгдөнө | /portal/report |
| 09.09–10 | Excel загвар (нэг загвар, хатуу багана) + ачаалалт, мөр тус бүрийн алдааны буцаалт | .xlsx загвар, parser |
| 09.10–11 | validation.go — дүрмүүд: заавал талбар, тоон муж, тэнцлийн тэгшитгэл, савны багтаамжаас хэтрэлт, өмнөх үеэс хазайлт (z-score), үнийн үсрэлт |
Дүрэм тус бүрд ширээн тест |
| 09.11 | Автомат мэдэгдэл: буцаалт, хугацаа дөхсөн сануулга (платформын notification) | И-мэйл ирнэ |
| 09.11 | 15 °C-ийн залруулга — ажиглалтын литр → стандарт литр, нягт ба температураар | volume.go + ширээн тест |
| 09.12 | Бодлого бол өгөгдөл — лимит, хүлцэл, эцсийн хугацаа petro_policy (jsonb, хувилбартай) |
Байршуулалтгүй өөрчлөлт |
| 09.12 | Төхөөрөмжийн бүртгэлийн хүснэгт (petro_devices) — ирээдүйн ATG-д зориулж, одоо хоосон |
Миграц |
| 09.13 | 20 ААН-тэй эхний бодит тайлангийн өдөр | 20 ирүүлэлт |
Долоо хоногийн шалгуур: 20 ААН эхний тайлангаа илгээж, систем алдаатайг нь мөрөөр нь буцаасан; засварласан хувилбар нь өмнөхийг устгалгүй хадгалагдсан.
3-р долоо хоног · 09.14–09.20 — төрийн харагдац¶
| Өдөр | Ажил | Гаралт |
|---|---|---|
| 09.14 | Хяналтын workflow: хүлээн авах / буцаах / батлах, аудит бүртгэлтэй; батлагч ≠ илгээгч | review.go |
| 09.15 | Яамны ажлын дэлгэц: хүлээгдэж буй тайлан, шүүлт, багц үйлдэл | /oversight/queue |
| 09.15–16 | petro_daily_national materialized view — өдөр × бүтээгдэхүүн × аймаг: нөөц, хэрэглээ, хоногийн нөөц |
Миграц + cron refresh |
| 09.16–17 | Дашбоард v1: улсын нөөц, бүсийн тархалт, импортын урсгал, хамрах хүрээний мөр эхэнд | /dashboard |
| 09.17 | Эрсдэлийн хяналт: нөөц дуусах анхааруулга, өгөгдөл ирээгүйн илрүүлэлт, эрсдэл өндөртэй жагсаалт | /dashboard/risk |
| 09.17 | Удирдах үйлдлүүд: объект түдгэлзүүлэх, хөдөлгөөн хаах/зөрүүтэй гэх, эрсдэлийн жагсаалтаас даалгавар | Аудиттай үйлдэл |
| 09.18 | Өдөр бүр 08:00-ийн и-мэйл: тайлагнаагүй байгууллага, зөрүүтэй мөр | Хуваарьт ажил |
| 09.18 | Нөхцөлдүүлэлтийн самбар — ΔB, ΔC өдөр бүр, хүлцэл давсанд кейс | /oversight/reconciliation |
| 09.18–19 | Excel экспорт — nexus.RegisterReport-оор 6 тайлан (импорт, үлдэгдэл, жижиглэн, бөөн, үнэ, баланс) |
Тайлангийн жагсаалт |
| 09.19 | Хуурамчлалын хамгаалалт (хөнгөн) — ирүүлэлтийн hash chain, өдрийн anchor, дугаарын завсрын дохиолол | Аудитын гинж |
| 09.19 | Газрын зураг дээр нөөцийн түвшинг өнгөөр (§3.1 М2) | Төрийн зураг |
| 09.20 | Нээлттэй өгөгдөл: өдөр тутмын нэгтгэл JSON/CSV | /api/v1/petro/public/daily |
Долоо хоногийн шалгуур: яамны ажилтан өдрийн ажлаа системд хийж байна — Excel-ээр биш.
4-р долоо хоног · 09.21–09.27 — тогтворжуулалт¶
| Өдөр | Ажил | Гаралт |
|---|---|---|
| 09.21–22 | Ачааллын тест (k6): 1000 зэрэг хэрэглэгч; индекс, урьдчилсан нэгтгэл, кэш | Хэмжсэн p95 |
| 09.22 | Grafana-д SLO панель: API p95, дашбоард p95, uptime, өгөгдлийн саатал | Самбар |
| 09.23 | Аюулгүй байдал: OWASP ASVS L2 чеклист, эрхийн матрицын автомат тест, rate limit, нууцын шалгалт | Чеклистийн үр дүн |
| 09.23 | Хөндлөнгийн pentest захиалах (§5.5) | Гэрээ, хуваарь |
| 09.24 | OpenAPI 3.1 тодорхойлолт нийтлэх (§4.3, §5.8) | docs.petronet.mn/api |
| 09.25 | Сургалт: ААН-д 5 минутын видео + 2 хуудас заавар | Баримт |
| 09.26 | Сургалт: төрийн ажилтны гарын авлага, администраторын runbook | docs/ |
| 09.27 | Нөөцлөлт, сэргээлтийн бодит сургуулилт | Тайлан |
Төгсгөл · 09.28–09.30 — нэвтрүүлэлт¶
| Өдөр | Ажил |
|---|---|
| 09.28 | 50+ ААН руу өргөжүүлэх; гараар дагаж ажиллах хуваарь |
| 09.29 | mpetro-той зэрэгцээ ажиллах горим, түүхэн өгөгдлийн шилжүүлгийн төлөвлөгөө |
| 09.30 | Хүлээлгэн өгөх: KPI самбар, эх код, баримт, 2-р сарын төлөвлөгөө |
6. Өгөгдлийн загварын нэмэлт¶
| Хүснэгт | Гол багана | Яагаад |
|---|---|---|
petro_products |
код, JODI ангилал, нэгж, анхдагч нягт | Толь бичгийг зохиохгүй, зээлнэ (§2.4) |
petro_report_periods |
төрөл, давтамж (өдөр/7 хоног/сар), эхлэл, төгсгөл, эцсийн хугацаа | §3.2 М3-ын «уян хатан давтамж» |
petro_report_submissions |
үе, байгууллага, төлөв, хувилбар, илгээгч, файл, илгээсэн цаг | Хувилбар нь өмнөхийг устгахгүй |
petro_report_lines |
объект, бүтээгдэхүүн, нээлт, хүлээн авалт, борлуулалт, хаалт, үнэ, темп, нягт | Ажиглалт ба тооцоолол тусдаа (§2.6) |
petro_validation_findings |
мөр, дүрэм, хүндрэл, мессеж | Буцаалт нь «алдаатай» биш, аль мөр, яагаад |
petro_movements |
дугаар, эх, хүрэх, бүтээгдэхүүн, мэдүүлсэн, хүлээн авсан, төлөв, хаагдсан цаг | EMCS-ийн хөдөлгөөн (§2.3) |
petro_devices |
сав, төхөөрөмжийн дугаар, протокол, сүүлийн холбоо | ATG ирэхэд бэлэн, одоо хоосон |
petro_daily_national (MV) |
огноо, бүтээгдэхүүн, аймаг, нөөц, хэрэглээ, хоногийн нөөц | Дашбоард ≤3с (§4.5) |
Зарчим: түүхий утга үргэлж хадгалагдана. Залруулсан тоо нь эргэж тайлагдахгүй бол тэр нь өгөгдөл биш, дүгнэлт.
Нөхцөлдүүлэлт — таван тэнцэл¶
Загварын жинхэнэ зорилго нь тайлан хадгалах биш, зөрүүг тоо болгох. Бүгд 15 °C-т шилжүүлсэн литрээр:
Гаальд мэдүүлсэн − Терминалд хүлээн авсан = ΔA хилийн алдагдал
Терминалаас ачсан − ШТС-д хүлээн авсан = ΔB тээврийн алдагдал
ШТС-д хүлээн авсан − Түгээсэн − Савны үлдэгдлийн өөрчлөлт = ΔC ШТС-ын алдагдал
Түгээсэн − e-Barimt-аар бүртгэгдсэн = ΔD татварын зөрүү
Ваучераар олгосон − Түгээсэн = ΔE ваучерийн зөрчил
Хүлцэл: ΔA ≤ 0.3% · ΔB ≤ 0.3% · ΔC ≤ 0.5% · ΔD ≈ 0 · ΔE ≤ 0.2%. Хэтэрвэл автомат кейс үүсч, зохицуулагчийн дараалалд орно.
| Тэнцэл | Эх өгөгдөл | Есдүгээр сард |
|---|---|---|
| ΔA | Гаалийн мэдүүлэг ↔ терминалын хүлээн авалт | Хэсэгчлэн — мэдүүлэг гараар орно, автомат нь 2-р сард |
| ΔB | Хөдөлгөөний мэдүүлсэн ↔ хүлээн авсан литр | Бий — petro_movements дээр өдөр бүр |
| ΔC | ШТС-ын нээлт + хүлээн авалт − борлуулалт = хаалт | Бий — тайлангийн шалгалтын гол дүрэм |
| ΔD | Түгээсэн ↔ e-Barimt | 3-р сар — POS/e-Barimt интеграцтай хамт |
| ΔE | Ваучер ↔ түгээсэн | 3-р сар — ваучер идэвхжсэний дараа |
ΔB ба ΔC хоёр нь гар тайлангаас гарна — тиймээс энэ сард. Тэдгээр нь «хаана алдагдаж байгаа нь мэдэгддэггүй» гэдэг асуудлыг эхний удаа тоо болгоно.
7. Архитектурын шийдвэрүүд¶
| Шийдвэр | Сонголт | Шалтгаан | Хэзээ дахин үзэх |
|---|---|---|---|
| Модуль vs шинэ сервис | Nexus модуль | Нэг binary, нэг байрлуулалт, нэг эрхийн загвар | 1000+ ААН, эсвэл IoT-ийн ачаалал тусгаарлалт шаардвал |
| Тайлангийн хөдөлгүүр | Платформынхыг ашиглана (RegisterReport) |
Excel/CSV, хуваарь, и-мэйл, байгууллага хоорондын хуваалцалт аль хэдийн бий | — |
| Time-series | Хойшлуулна | Өдөрт нэг мөр нь Postgres-т багтана | ATG-ийн эхний 100 төхөөрөмж |
| Excel | Нэг хатуу загвар | Чөлөөт формат нь эхний өдрөөс өгөгдлийн чанарыг алдах явдал | ААН-ийн ERP шууд API-аар холбогдох үед |
| Дашбоард | Урьдчилан нэгтгэсэн MV | ≤3 секунд; ажиллаж байгаа сан дээр том асуулга явуулахгүй | Аймгийн задаргаа хүрэлцэхгүй болбол |
| Хөдөлгөөний дугаар | Улсын хэмжээнд давтагдашгүй | EMCS-ийн ARC-ийн үүрэг: маргаан нэг дугаар дээр төвлөрнө | — |
| IoT протокол | MQTT + Sparkplug-ийн зарчмууд | §4.4-ийн буфер, алдагдалгүй дамжуулалт нь store-and-forward | Бүтэн Sparkplug — 2-р сар |
| Бодлого (лимит, хүлцэл, хугацаа) | Өгөгдөл, код биш — petro_policy, хувилбартай |
Хүлцэл өөрчлөх нь байршуулалт байх ёсгүй; түүх нь хадгалагдана | — |
| Модулийн задрал | Нэг modules/petro |
Нэг баг, нэг байрлуулалт, нэг миграцын түүх | Ирмэгийн агент өөрийн хувилбарын мөчлөгтэй болох үед |
| Нээлттэй өгөгдөл | Нэгтгэсэн түвшинд, компанийн задаргаагүй | Компанийн өдөр тутмын нөөц нь өрсөлдөгчийн уншлага (metrics.go-ийн адил зарчим) |
Хуулиар шаардвал |
8. Чанар, аюулгүй байдал, гүйцэтгэл¶
| Юу | Хэрхэн | Хэзээ |
|---|---|---|
| Шалгалтын дүрэм бүр | Ширээн тест (validation_test.go) — дүрэм нэмэх нь мөр нэмэх |
Тасралтгүй |
| Миграц | Бодит сангийн хуулбар дээр up/down | Долоо хоног бүр |
| Эрхийн матриц | Маршрутын бодлогын автомат тест — нээлттэй маршрут санамсаргүй нэмэгдэхгүй | CI |
| Интеграцийн тест | depot_integration_test.go, station_integration_test.go загвараар тайлан, workflow-д |
2–3-р д/х |
| Ачаалал | k6, 1000 зэрэг хэрэглэгч, бодит хэмжээний өгөгдөл дээр | 4-р д/х |
| OWASP | ASVS L2 чеклист + SECURITY.md-ийн журам |
4-р д/х |
| Pentest | Хөндлөнгийн байгууллага (§5.5) | Захиалга 4-р д/х, үр дүн 2-р сар |
| Нөөцлөлт | Сэргээлтийн сургуулилт, зөвхөн скрипт биш | 09.27 |
9. Хэмжүүр — юуг өдөр бүр хардаг вэ¶
| Хэмжүүр | Тодорхойлолт | Зорилт | Хаана |
|---|---|---|---|
| Хамрах хүрээ | Тайлагнасан ÷ бүртгэлтэй объект | ≥ 80% | Дашбоардын 1-р мөр |
| Хугацаа | Эцсийн хугацаанаас өмнө ирсэн ÷ бүгд | ≥ 80% | Дашбоард |
| Эхний удаад тэнцсэн | Шалгалтад шууд тэнцсэн ÷ бүгд | ≥ 60%, өсөх | Дашбоард |
| Зөрүү | Тэнцлийн тэгшитгэлээс хүлцлээс гадуур объект | < 10% | Эрсдэлийн хуудас |
| Хоногийн нөөц | Улсын нөөц ÷ өдрийн дундаж хэрэглээ | Хэмжинэ, зорилтгүй | Дашбоард, нийтэд |
| API p95 / дашбоард p95 | Prometheus гистограм | ≤1с / ≤3с | Grafana |
| Uptime | Сарын бэлэн байдал | ≥ 99.5% | Grafana |
| Өгөгдлийн саатал | Илгээснээс дашбоард хүртэл | ≤ 5 мин | Grafana |
Эхний гурав нь өгөгдлийн доторх дүгнэлтээс урд байрлана: бүрэн бус өгөгдөл дээрх сайхан график нь буруу шийдвэрийн хамгийн хямд эх сурвалж.
10. Эрсдэл¶
| Эрсдэл | Магадлал | Сааруулалт |
|---|---|---|
| ААН холбогдохгүй — албадах эрх байхгүй | Өндөр | Эхний 20-г гараар дагана: утсаар, очиж. Тэдэнд ашигтай зүйлийг (өөрийн сүлжээний харагдац, тайлангийн автоматжуулалт) эхэлж өгнө |
| Excel-ийн эмх замбараагүй байдал | Өндөр | Нэг хатуу загвар; гажсаныг татгалзаж, аль мөр, яагаад гэдгийг заана |
| Одоо байгаа өгөгдлийн чанар (mpetro) | Өндөр | «Эх хэлбэрээр» хадгална; цэвэрлэгээг тусдаа бүртгэнэ; зөрүүг нуухгүй |
| ХУР/гаалийн зөвшөөрөл удаашрах | Дунд | Өргөдөл 1-р өдөр. Эхний сар гар бүртгэлээр ажиллана — блоклохгүй |
| Нэг сард хэт их амлах | Дунд | §4-ийн «байхгүй» жагсаалт нь гэрээ. Өөрчлөх нь ярианы асуудал, чимээгүй нэмэх асуудал биш |
| Ажиллагааны өр | Дунд | Модуль бүр тесттэй, миграцтай, баримттай. Бид өөрсдөө ажиллуулна — хурдан бичээд дараа цэвэрлэх арга энд ажиллахгүй |
| Хамрах хүрээ унах (Ганагийн жишиг) | Дунд | Хамрах хүрээ нь KPI, өдөр бүр и-мэйлээр гарна |
| Гүйцэтгэл 4-р д/х-д хангагдахгүй | Бага | Урьдчилсан нэгтгэл эхнээсээ; индексийг миграцтай хамт |
| Big-bang нэвтрүүлэлт (Шри Ланкын алдаа) | Дунд | 20 → 50 → бүх ААН. Ирүүлэлт бүр идемпотент түлхүүртэй; буцах төлөвлөгөө үе шат бүрд |
| Түгээгүүрийн протокол хаалттай/лицензтэй (Gilbarco, Wayne) | Өндөр | Энэ сард тооллого л хийнэ; лицензийн хууль зүйн шалгалт 2-р сард. Стандартаа IFSF гэж зарлана |
| Залруулгагүй литрээр тэнцэл тооцох | Өндөр | 15 °C-ийн залруулга 2-р д/х-д; түүнгүйгээр 0.5%-ийн хүлцэл утгагүй |
11. 30 хоногийн дараа¶
| Сар | Гол ажил |
|---|---|
| 2-р сар | IoT/MQTT (ATG туршилт 10 объект), ирмэгийн агентын прототип, гаалийн интеграц, ХУР-ын баталгаажуулалт, техникийн дүгнэлт (§3.2 М5), pentest-ийн засварууд |
| 3-р сар | POS ба хошууны эхний хоёр драйвер (IFSF, импульс/гар), 20–30 ШТС-ын пилот, мобайл шалгалтын апп (§3.4), хяналтын бүртгэл (М6), ΔD/ΔE тэнцэл, e-Barimt |
| 4-р сар+ | Драйверын өргөтгөл (Gilbarco, Wayne, Tokheim), аймгаар шатлан нэвтрүүлэх, DWH/BI, бүтэн SIR, JODI руу автомат тайлагналт, ваучерын горим («бүрэн төлөвлөгөө» (plan/petronet-plan.md, дотоод) Фаз 2–4) |
12. Эхлэх — 09.01-ний өглөө¶
00009_registry.sql— эзэмшил, улсын дугаар, статус- ХУР ба гаальд албан хүсэлт илгээх (PM)
petro_productsтоль — JODI-той нийцүүлж seed хийх- ААН-ийн нэвтрэлтийн зам (eID + байгууллагын муж)
petro-import-ыг mpetro-гийн бодит жагсаалт дээр--dry-run-аар ажиллуулах- Эхний 5 ААН-ийг утсаар урих
- Эрх зүйн багцын төслийг зохицуулагчид өгөх (ЗГ-ын тогтоол, техникийн журам)
- ШТС-ын техникийн тооллогын асуумжийг порталд байрлуулах
13. Нээлттэй асуудал — хариулт хэрэгтэй¶
| # | Асуулт | Хэнээс | Хэзээ хүртэл |
|---|---|---|---|
| 1 | Багийн бүрэлдэхүүн — 3 хөгжүүлэгч мөн үү | Дотооддоо | 09.01 |
| 2 | Эхний 20 ААН-ийн жагсаалт хэн гаргах вэ | Яам | 09.03 |
| 3 | mpetro-гийн өгөгдөлд хандах эрх, формат | Яам | 09.02 |
| 4 | Excel загварыг яам батлах уу, эсвэл бид тогтоох уу | Яам | 09.09 |
| 5 | Нээлттэй өгөгдлийн задаргааны түвшин (компани харагдах уу) | Яам, эрх зүй | 09.18 |
| 6 | Тайлангийн давтамж — өдөр тутам эсэх (Кений жишиг) | Яам | 09.07 |
| 7 | POS-ыг ШТС-д хэрхэн тараах вэ — үнэгүй, хуваарилсан төлбөр, албадлага | Яам, ТХТ | 09.20 |
| 8 | Хаалттай протоколын лиценз — үйлдвэрлэгчтэй гэрээ юу, IFSF gateway юу | Дотооддоо | 09.30 |
Энэ баримтын дараагийн хувилбар нь хийгдсэнийг тэмдэглэнэ — төлөвлөснийг биш.