---
# System prepended metadata

title: Tms
tags: [tms, vtp]

---


# I. Design
## 1. Overview
```userstory
```
```plantuml
|#lime|Kafka|
start
:Streaming order events;
|#pink|Pricing rule|
:Comsuming events;
:Transformance to DTO;
:Call api to get price;
|#pink|Pricing rule|
:Get rule realtime from cache;
|#orange|Redis|
:Return rule;
|Pricing rule|
if (rule is valid - not null) then (yes)
    :Continue calculate;
else (no)
    :Get rule from Master DB;
    |#thistle|Master db|
    :Return rule;
    |Pricing rule|
    if (rule is valid - not null) then (yes)
    :Continue calculate;
    else (no)
        :Notify to Error rule;
        |#silver|Notify service|
        :Save to log;
    endif
endif
|Pricing rule|
:Continue caclulate;
:Calculate price;
:Save to master db;
|Master db|
:Save to db;
|Pricing rule|
:Caching to redis;
|Redis|
:Cahing to redis;
stop
@enduml
```
## 2. User story: Người dùng update rule qua template
```userstory
Là người dùng(quản trị) muốn cập nhật rule cho tính toán mới nhất
```
```plantuml
|#plum|USER|
start
:Request template phần tử bảng giá;
|#pink|RULE SYSTEM(Policy)|
:Response template phần tử bảng giá tương ứng;
|USER|
:Upload template lên Pricing service;
|#orchid|PRICING Web|
:Reponse dữ liệu bảng giá drl;
|USER|
:Upload drl to RULE system;
|RULE SYSTEM(Policy)|
:Update insert drl;
|#thistle|Master db(Mariadb)|
:Upsert to db;
|RULE SYSTEM(Policy)|
:Caching to redis;
|#orange|Redis|
:Update rule;
stop
@enduml
```
## 3. User story: Người dùng tìm kiếm rule
```userstory
Người dùng muốn tìm kiếm, xem chi tiết các rule đang hiện hành
```
```plantuml
|#orangeRed|USER|
start
:Vào màn hình list danh sách rule;
|Pricing rule|
:List all rules;
|USER|
:Select rule to get info;
:Click to download or view rule;
|#pink|Pricing rule|
:Return rule action from user;
stop
@enduml
```
# II. Bảng giá
```mermaid
flowchart LR
    Pricing(Bảng giá)-->ExtraService(Bảng giá dịch vụ cộng thêm)
    Pricing-->OtherService(Phụ phí hàng hóa đặc biệt)
    Pricing-->EconomicalDelivery(Dịch vụ chuyển phát tiết kiệm)
    Pricing-->ExpressDelivery(Dịch vụ chuyển phát hỏa tốc, hẹn giờ)
    Pricing-->FastDelivery(Dịch vụ chuyển phát nhanh)
```
## 1. Dịch vụ cộng thêm
```mermaid
flowchart LR
    style ExtraService fill:#F8F8F8,stroke:#666,stroke-width:2px;
    ExtraService(Dịch vụ cộng thêm)-->BK(1.Bảo hiểm và khai giá)
    ExtraService(Dịch vụ cộng thêm)-->DK(2.Đồng kiểm)
    ExtraService(Dịch vụ cộng thêm)-->LK(3.Lưu kho)
    ExtraService(Dịch vụ cộng thêm)-->TDTT(4.Thay đổi thông tin địa chỉ đơn hàng)
    ExtraService(Dịch vụ cộng thêm)-->BP(5.Báo phát)
    ExtraService(Dịch vụ cộng thêm)-->PTT(6. Phát tận tay)
    ExtraService(Dịch vụ cộng thêm)-->PHST(7. Phát hàng siêu thị)
    ExtraService(Dịch vụ cộng thêm)-->GHMP(8. Giao hàng một phần)
    ExtraService(Dịch vụ cộng thêm)-->DH(9. Đổi hàng)
    ExtraService(Dịch vụ cộng thêm)-->TTXH(10. Thu tiền xem hàng)
    ExtraService(Dịch vụ cộng thêm)-->PTDGD(11. Phát tại điểm giao dịch)
    ExtraService(Dịch vụ cộng thêm)-->ZALO(12. Zalo thông báo đơn hàng)
    ExtraService(Dịch vụ cộng thêm)-->SMS(13. SMS thông báo đơn hàng)
    ExtraService(Dịch vụ cộng thêm)-->HC(14. Dịch vụ hoàn cước)
```
## 2. Dịch vụ hàng hóa đặc biệt
```mermaid
flowchart LR
    OtherService(Dịch vụ hàng đặc biệt)-->GTC(1. Hàng giá trị cao)
    OtherService(Dịch vụ hàng đặc biệt)-->HD(2. Hóa đơn, giấy chứng nhận)
    OtherService(Dịch vụ hàng đặc biệt)-->HST(3. Hồ sơ thầu)
    OtherService(Dịch vụ hàng đặc biệt)-->HDV(4. Hàng dễ vỡ)
    OtherService(Dịch vụ hàng đặc biệt)-->HNK(5. Hàng nguyên khối)
    OtherService(Dịch vụ hàng đặc biệt)-->HQK(6. Hàng quá khổ)
    OtherService(Dịch vụ hàng đặc biệt)-->HCL(7. Chất lỏng)
    OtherService(Dịch vụ hàng đặc biệt)-->HTT(8. Hàng từ tính,PIN)
    OtherService(Dịch vụ hàng đặc biệt)-->HL(9. Hàng lạnh)
```
## 3. Dịch vụ chuyển phát tiết kiệm
```mermaid
flowchart TD
    TKS(Dịch vụ chuyển phát tiết kiệm)-->NM(Nội miền)
    TKS(Dịch vụ chuyển phát tiết kiệm)-->CM(Cận miền)
    TKS(Dịch vụ chuyển phát tiết kiệm)-->LM(Liên miền)
```
## 4. Dịch vụ chuyển phát thương mại điện tử
```mermaid
flowchart TD
    TMDT(Chuyển phát thương mại điện tử)-->NT(Nội tỉnh)
    TMDT(Chuyển phát thương mại điện tử)-->NM(Nội miền)
    TMDT(Chuyển phát thương mại điện tử)-->LM(Liên miền)
    NT(Nội tỉnh)-->NTTK(Tiết kiệm)
    NT(Nội tỉnh)-->NTHT(Hỏa tốc)
    LM(Liên miền)-->LMTK(Tiết kiệm)
    LM(Liên miền)-->LMN(Nhanh)
```
## 5. Dịch vụ chuyển phát hỏa tốc hẹn giờ
```mermaid
flowchart TD
    HTHG(Chuyển phát hỏa tốc hẹn giờ)-->HNDN(Hà Nội - Đà Nẵng)
    HTHG(Chuyển phát hỏa tốc hẹn giờ)-->HNHCM(Hà Nội - Hồ Chí Minh)
    HTHG(Chuyển phát hỏa tốc hẹn giờ)-->DNHCM(Đà Nẵng - Hồ Chí Minh)
    HTHG(Chuyển phát hỏa tốc hẹn giờ)-->NT(Nội tỉnh)
    HTHG(Chuyển phát hỏa tốc hẹn giờ)-->NM(Nội miền)
    HTHG(Chuyển phát hỏa tốc hẹn giờ)-->LM(Liên miền)
```
## 6. Dịch vụ chuyển phát nhanh
```mermaid
flowchart TD
    HTHG(Chuyển phát nhanh)-->HNDN(Hà Nội - Đà Nẵng)
    HTHG(Chuyển phát nhanh)-->HNHCM(Hà Nội - Hồ Chí Minh)
    HTHG(Chuyển phát nhanh)-->DNHCM(Đà Nẵng - Hồ Chí Minh)
    HTHG(Chuyển phát nhanh)-->NT(Nội tỉnh)
    HTHG(Chuyển phát nhanh)-->NM(Nội miền)
    HTHG(Chuyển phát nhanh)-->LM(Liên miền)
```
# III. Vùng miền
```mermaid
flowchart TD
    VM(Miền)-->MB(Miền Bắc)
    VM(Miền)-->MT(Miền Trung)
    VM(Miền)-->MN(Miền Nam)
```
## 1. Miền Bắc
```mermaid
flowchart TD
    MB(Miền Bắc)-->BC(Bắc Cạn       )
    MB(Miền Bắc)-->CB(Cao Bằng      )
    MB(Miền Bắc)-->HG(Hà Giang      )
    MB(Miền Bắc)-->LS(Lạng Sơn      )
    MB(Miền Bắc)-->TQ(Tuyên Quang   )
    MB(Miền Bắc)-->DB(Điện Biên     )
    MB(Miền Bắc)-->LC(Lào Cai       )
    MB(Miền Bắc)-->LC(Lai Châu      )
    MB(Miền Bắc)-->PT(Phú Thọ       )
    MB(Miền Bắc)-->SL(Sơn La        )
    MB(Miền Bắc)-->YB(Yên Bái       )
    MB(Miền Bắc)-->BG(Bắc Giang     )
    MB(Miền Bắc)-->TN(Thái Nguyên   )
    MB(Miền Bắc)-->VP(Vĩnh Phúc     )
    MB(Miền Bắc)-->BN(Bắc Ninh      )
    MB(Miền Bắc)-->HB(Hòa Bình      )
    MB(Miền Bắc)-->HD(Hải Dương     )
    MB(Miền Bắc)-->HN(Hà Nam        )
    MB(Miền Bắc)-->HP(Hải Phòng     )
    MB(Miền Bắc)-->HY(Hưng Yên      )
    MB(Miền Bắc)-->ND(Nam Định      )
    MB(Miền Bắc)-->NB(Ninh Bình     )
    MB(Miền Bắc)-->QN(Quảng Ninh    )
    MB(Miền Bắc)-->TB(Thái Bình     )
    MB(Miền Bắc)-->HANOI(Hà Nội     )
    MB(Miền Bắc)-->HT(Hà Tĩnh       )
    MB(Miền Bắc)-->NA(Nghệ An       )
    MB(Miền Bắc)-->TH(Thanh Hóa     )
```
## 2. Miền trung
```mermaid
flowchart TD
    MT(Miền trung)-->QB(Quảng Bình      )
    MT(Miền trung)-->QT(Quảng Trị       )
    MT(Miền trung)-->TTH(Thừa Thiên-Huế  )
    MT(Miền trung)-->DN(Đà Nẵng         )
    MT(Miền trung)-->QNAM(Quảng Nam       )
    MT(Miền trung)-->QN(Quảng Ngãi      )
    MT(Miền trung)-->KT(Kon Tum         )
    MT(Miền trung)-->GL(Gia Lai         )
    MT(Miền trung)-->KH(Khánh Hòa       )
    MT(Miền trung)-->PY(Phú Yên         )
    MT(Miền trung)-->BD(Bình Định       )
```
## 3. Miền nam
```mermaid
flowchart TD
    MN(Miền Nam)-->BT(Bình Thuận     )
    MN(Miền Nam)-->NT(Ninh Thuận     )
    MN(Miền Nam)-->DL(Đắk Lắk        )
    MN(Miền Nam)-->LD(Lâm Đồng       )
    MN(Miền Nam)-->BD(Bình Dương     )
    MN(Miền Nam)-->BP(Bình Phước     )
    MN(Miền Nam)-->BT(Bến Tre        )
    MN(Miền Nam)-->DN(Đắk Nông       )
    MN(Miền Nam)-->ĐN(Đồng Nai       )
    MN(Miền Nam)-->LA(Long An        )
    MN(Miền Nam)-->TG(Tiền Giang     )
    MN(Miền Nam)-->TN(Tây Ninh       )
    MN(Miền Nam)-->BRVT(Bà Rịa-Vũng Tàu)
    MN(Miền Nam)-->HCM(Hồ Chí Minh    )
    MN(Miền Nam)-->TV(Trà Vinh       )
    MN(Miền Nam)-->VL(Vĩnh Long      )
    MN(Miền Nam)-->AG(An Giang       )
    MN(Miền Nam)-->BL(Bạc Liêu       )
    MN(Miền Nam)-->CM(Cà Mau         )
    MN(Miền Nam)-->CT(Cần Thơ        )
    MN(Miền Nam)-->DT(Đồng Tháp      )
    MN(Miền Nam)-->HG(Hậu Giang      )
    MN(Miền Nam)-->KG(Kiên Giang     )
    MN(Miền Nam)-->ST(Sóc Trăng      )
```
# IV. Khu vực miền bắc & Hồ Chí Minh
```mermaid
flowchart TD
    KV(Khu vực)-->KV1(Khu vực 1)
    KV(Khu vực)-->KV2(Khu vực 2)
    KV(Khu vực)-->KV3(Khu vực 3)
    KV(Khu vực)-->KV4(Khu vực 4)
```
## 1. Khu vực 1
```mermaid
flowchart TD
    KV1-->HN(Hà Nội)
    KV1-->HCM(Hồ Chí Minh)
```
## 2. Khu vực 2
```mermaid
flowchart TD
    KV2-->Hải_Phòng(Hải Phòng  )
    KV2-->Hưng_Yên(Hưng Yên   )
    KV2-->Gia_Lai(Gia Lai    )
    KV2-->Bắc_Ninh(Bắc Ninh   )
    KV2-->Nam_Định(Nam Định   )
    KV2-->Thái_Nguyên(Thái Nguyên)
    KV2-->Hải_Dương(Hải Dương  )
    KV2-->Bắc_Giang(Bắc Giang  )
    KV2-->Thanh_Hóa(Thanh Hóa  )
    KV2-->Nghệ_An(Nghệ An    )
    KV2-->Đà_Nẵng(Đà Nẵng    )
    KV2-->Vĩnh_Phúc(Vĩnh Phúc  )
```
## 3. Khu vực 3
```mermaid
flowchart TD
KV3-->Quảng_Ninh
KV3-->Hòa_Bình
KV3-->Quảng_Nam
KV3-->Hà_Tĩnh
KV3-->Quảng_Trị
KV3-->Khánh_Hòa
KV3-->Quảng_Ngãi
KV3-->Phú_Thọ
KV3-->Hà_Nam
KV3-->Thái_Bình
KV3-->Thừa_Thiên_Huế
KV3-->Ninh_Bình
```
## 4. Khu vực 4
```mermaid
flowchart TD
KV4-->Cao_Bằng
KV4-->Bắc_Kạn
KV4-->Hà_Giang
KV4-->Sơn_La
KV4-->Lai_Châu
KV4-->Điện_Biên
KV4-->Quảng_Bình
KV4-->Lào_Cai
KV4-->Kon_Tum
KV4-->Phú_Yên
KV4-->Lạng_Sơn
KV4-->Tuyên_Quang
KV4-->Bình_Định
KV4-->Yên_Bái
```
# IV. Khu vực miền nam
```mermaid
flowchart TD
    KV(Khu vực)-->KV1(Khu vực 1)
    KV(Khu vực)-->KV2(Khu vực 2)
    KV(Khu vực)-->KV3(Khu vực 3)
```
## 1. Khu vực 1
```mermaid
flowchart TD
    KV1-->BD(Bình Dương)
    KV1-->DN(Đồng Nai)
```
## 2. Khu vực 2
```mermaid
flowchart TD
KV2-->Bình_Thuận
KV2-->Long_An
KV2-->Đắk_Lắk
KV2-->Cần_Thơ
```
## 3. Khu vực 3
```mermaid
flowchart TD
KV3-->Tiền_Giang
KV3-->Bến_Tre
KV3-->Tây_Ninh
KV3-->Hậu_Giang
KV3-->Trà_Vinh
KV3-->Ninh_Thuận
KV3-->Vĩnh_Long
KV3-->Bà_Rịa_Vũng_Tàu
KV3-->Cà_Mau
KV3-->An_Giang
KV3-->Kiên_Giang
KV3-->Bạc_Liêu
KV3-->Lâm_Đồng
KV3-->Bình_Phước
KV3-->Đăk_Nông
KV3-->Sóc_Trăng
KV3-->Đồng_Tháp
```