Bỏ qua để đến nội dung

Bảo trì & Yêu cầu dịch vụ

KCN có hàng nghìn thiết bị hạ tầng — trạm biến áp, hệ thống cấp nước, đường nội bộ, đèn chiếu sáng, hệ thống PCCC, xử lý nước thải. Mỗi thiết bị cần bảo trì định kỳ + sửa chữa khi hỏng. Khách thuê (tenant) cũng phát sinh yêu cầu hằng ngày: “đèn đường khu A cháy”, “đường ngập nước”, “máy phát điện báo lỗi”.

Module Bảo trì của Parkone giải quyết:

  1. Quản lý thiết bị (maintenance.equipment + zone.equipment.meter)
  2. Lịch bảo trì định kỳ (mở rộng từ maintenance.request của Odoo)
  3. Yêu cầu dịch vụ từ tenant (zone.service.request) — kèm SLA + chuyển PO sang nhà cung cấp
  4. Đọc công tơ (zone.equipment.reading) cho điện / nước / khí
  5. Predictive maintenance — alert khi reading vượt ngưỡng
flowchart LR
    A["zone.project<br/>KCN"] --> B["maintenance.equipment<br/>Thiết bị"]
    B --> C["zone.equipment.meter<br/>Công tơ"]
    C --> D["zone.equipment.reading<br/>Lần đọc"]
    B --> E["maintenance.request<br/>Yêu cầu bảo trì nội bộ"]
    A --> F["zone.service.request<br/>Yêu cầu dịch vụ KH"]
    F --> G["purchase.order<br/>PO sang NCC"]
ModelVai trò
maintenance.equipmentMở rộng module maintenance Odoo — thêm field KCN, vị trí, marker GPS, ngày bảo hành, supplier maintainer
zone.equipment.meterCông tơ gắn vào equipment (điện kWh / nước m³ / khí m³)
zone.equipment.readingLịch sử reading — ngày, value, recorded_by
maintenance.requestYêu cầu bảo trì nội bộ KCN (thay dầu, hiệu chuẩn, sửa) — Odoo native + Parkone tag KCN
zone.service.requestYêu cầu dịch vụ từ tenant (khác maintenance) — có SLA + chuyển PO sang NCC

KCN > Bảo trì > Thiết bị > Mới:

FieldMô tả
nameTên thiết bị (vd “Trạm biến áp T1 — Khu A”)
category_idLoại (Trạm điện / Trạm nước / PCCC / Đèn chiếu sáng / Máy phát …)
zone_project_idKCN thuộc về
locationVị trí mô tả + GPS marker (xem Site plan markers)
serial_noSố seri nhà sản xuất
purchase_dateNgày mua
costGiá mua
warranty_end_dateHết bảo hành
x_warranty_stateComputed: under_warranty / expiring_soon (≤ 30 ngày) / expired
maintainer_idNhà cung cấp bảo trì (link res.partner supplier)
parent_idThiết bị mẹ (nếu là phụ kiện)

Mỗi equipment có thể đặt marker GPS trên bản đồ KCN. Vào KCN > Lô đất > Site Plan → bấm 🛠️ Place equipment marker → click vào vị trí trên map → chọn equipment. Marker hiện trên bản đồ kèm icon theo category.

Lưu trong field x_geo_marker (JSON {lat, lng}). Render bằng Leaflet trong UI.

Tạo maintenance.request lặp lại trong Settings > Maintenance: vd “Hiệu chuẩn trạm biến áp T1 — mỗi 6 tháng”. Cron Odoo tự sinh request mới khi tới hạn. Parkone enrich thêm:

  • Tab “Equipment KCN” với filter theo zone_project_id.
  • Activity nhắc rep / maintainer N ngày trước.
  • PDF check-list (template per category).

Equipment có thể có nhiều công tơ:

FieldMô tả
nameTên công tơ (vd “Đồng hồ điện chính”)
meter_typeelectricity / water / gas / other
unitkWh / m³ / khác
last_reading_valueReading gần nhất (computed)
last_reading_dateNgày reading gần nhất
threshold_valueNgưỡng cảnh báo (đầy / tiêu thụ bất thường)

Trên công tơ, bấm 📊 Ghi reading mới: Ngày + giờ · Value (số đếm hiện tại — KHÔNG phải delta) · Người ghi (default user hiện tại) · Ghi chú.

Hệ thống tự tính delta = value - last_reading.value + period_consumption = delta / (date - last_date).

Cron daily _cron_check_meter_thresholds:

  • Reading có value ≥ threshold_value → tạo maintenance.request “Inspect — meter exceeded threshold”.
  • Reading có period_consumption vượt 130% so với 3 kỳ trước → alert “Tiêu thụ bất thường — kiểm tra rò rỉ”.
  • Ping maintainer_id qua activity.

Khác với maintenance.request (bảo trì nội bộ), zone.service.requestyêu cầu của KH thuê:

stateDiagram-v2
    [*] --> new: 🆕 Tenant gửi yêu cầu
    new --> in_progress: 👷 Assign cho staff
    in_progress --> resolved: ✅ Đã xử lý
    resolved --> closed: 🔒 KH xác nhận xong
    new --> cancelled: ❌ Hết hiệu lực
    in_progress --> cancelled: ❌ KH huỷ
    closed --> [*]
    cancelled --> [*]
StateNhãn UIHành động chính
newNewVừa tạo, chưa assign
in_progressIn ProgressĐang xử lý — clock bắt đầu chạy
resolvedResolvedĐã sửa, đợi KH xác nhận
closedClosedKH OK, đóng request
cancelledCancelledHuỷ trước khi xử lý
FieldMô tả
request_type_idzone.service.request.type — phân loại (Điện / Nước / Đường / An ninh / …)
contract_idHĐ của KH (auto-filter lô đất theo contract)
land_lot_idLô đất bị ảnh hưởng (filter theo contract_id.land_lot_ids)
equipment_idEquipment liên quan (nếu có)
priorityLow / Normal / High / Urgent (4 mức)
sla_response_hoursDefault theo type (Urgent = 2h, Normal = 24h)
sla_response_dueComputed: create_date + sla_response_hours
is_sla_breachedBoolean computed: quá hạn SLA mà state vẫn new / in_progress
descriptionMô tả vấn đề
resolution_noteKết luận

Field is_sla_breached hiện đỏ trên list view. Activity nhắc rep gần tới giờ SLA. Báo cáo SLA breach % per type / per assigned employee.

Nếu cần thuê NCC bên ngoài xử lý (vd sửa máy lạnh phức tạp), bấm 📦 Tạo PO:

  • Sinh purchase.order draft.
  • partner_id = NCC chọn từ recommendation (theo category_id).
  • Line: dịch vụ + ước tính giá.
  • Link 2 chiều: service_request.po_idpo.service_request_id.

Khi PO done + invoiced → service request auto in_progress → resolved.

Khi tạo PO, Parkone gợi ý NCC dựa trên: partner.x_supplier_category_ids chứa category của request · partner.x_supplier_status = approved / preferred · partner.x_supplier_rating cao · lịch sử on-time delivery + giá cạnh tranh.

Rep có thể override gợi ý nhưng phải nhập lý do (audit).

Module customer portal cho phép tenant đăng nhập + gửi service request qua web form:

  • URL: parkone.bsdinsights.com/my/service-requests
  • Login = portal user của tenant (auto-tạo khi convert deposit → contract).
  • KH chỉ thấy request của HĐ mình + lô đất mình thuê.
  • Form tối thiểu: type / land lot / description / priority / ảnh đính kèm.

Yêu cầu tạo qua portal có flag is_from_portal = True → assigned rep biết origin.

KCN > Bảo trì > Báo cáo: số request theo type / theo tháng · SLA breach rate % · Top 5 equipment có nhiều request nhất (= cần thay thế?) · tổng chi phí PO bảo trì theo quý · equipment hết bảo hành 30 ngày tới.

Gắn 1 yêu cầu vào 2 HĐ (KH share đường nội bộ) được không? Hiện 1 service request = 1 contract. Trường hợp nhiều KH cùng bị ảnh hưởng (vd mất điện cả khu) → tạo nhiều request riêng, mỗi KH 1 cái. Có thể tag chung qua parent_request_id (planning).

Tắt predictive alert cho 1 công tơ được không? Được. Đặt threshold_value = 0 → cron skip. Hoặc is_predictive_enabled = False → tắt hẳn check cho công tơ đó.

Reading nhập sai (vd 100 thay vì 1000) ảnh hưởng gì? Hệ thống validate value ≥ last_reading.value. Nhập lùi → UserError. Nếu công tơ thực sự reset (thay mới), bấm Reset meter + nhập value mới — delta tính lại từ reset point.

Tenant gửi request qua portal nhưng mất login? Rep tạo thay (mode “On behalf of tenant”). Hoặc reset portal password trong KH > Liên hệ > [chọn KH] > Action > Send invitation email.

Cron predictive maintenance chạy bao lâu 1 lần? Mặc định daily 04:00. Đổi trong Settings > Technical > Scheduled Actions > “Parkone: check meter thresholds”.

PO done rồi nhưng request chưa auto resolved? Logic auto-resolve check po.state = done AND po.invoice_status = invoiced. Nếu PO done nhưng invoice chưa post → vẫn in_progress. Bấm ✅ Mark resolved manual.

Chia sẻ: