Files
cma-management/backend/cma_db_report.md
T

8.6 KiB
Raw Blame History

CMA Database Query Report

Database: /root/cma-management/backend/cma.db Format: SQLite

Database Schema Overview

The database uses MySQL in production (via SQLAlchemy) but a local SQLite copy exists at cma.db. Based on source code analysis (app/models/__init__.py, scripts/seed_cost_data.py), the relevant tables are:


(1) actual_costs — All Records

Schema (from StandardCost / ActualCost model):

Column Type Description
id INTEGER PK Auto-increment
period VARCHAR(20) Period (e.g., "2026-04", "2026-05")
product_code VARCHAR(20) Product code (P001-P003, S001-S002)
product_name VARCHAR(200) Product name
cost_type VARCHAR(20) material/labor/overhead
item_name VARCHAR(200) Cost item name
actual_quantity FLOAT Actual quantity
actual_price FLOAT Actual unit price
actual_cost FLOAT Total actual cost = qty × price
source VARCHAR(20) Data source ("manual")
version VARCHAR(20) Standard version (nullable)
remark TEXT Notes (nullable)
created_at DATETIME Auto timestamp

Expected records (if seed was run): 25 rows

period product_code product_name cost_type item_name actual_quantity actual_price actual_cost
2026-04 P001 博海ERP系统 material 服务器资源 11 5200 57200
2026-04 P001 博海ERP系统 material 数据库授权 2 30000 60000
2026-04 P001 博海ERP系统 labor 后端开发 125 1800 225000
2026-04 P001 博海ERP系统 labor 前端开发 85 1600 136000
2026-04 P001 博海ERP系统 labor 测试 38 1200 45600
2026-04 P001 博海ERP系统 overhead 项目管理 1 36000 36000
2026-04 P001 博海ERP系统 overhead 办公分摊 1 18000 18000
2026-05 P001 博海ERP系统 material 服务器资源 12 5000 60000
2026-05 P001 博海ERP系统 material 第三方组件 1 18000 18000
2026-05 P001 博海ERP系统 labor 需求分析 35 1500 52500
2026-05 P001 博海ERP系统 labor 后端开发 118 1850 218300
2026-05 P001 博海ERP系统 labor 前端开发 82 1650 135300
2026-05 P001 博海ERP系统 labor 测试 42 1200 50400
2026-05 P001 博海ERP系统 overhead 项目管理 1 35000 35000
2026-05 P001 博海ERP系统 overhead 质量保证 1 22000 22000
2026-05 P002 博海OA系统 material 服务器资源 7 4200 29400
2026-05 P002 博海OA系统 labor 后端开发 78 1800 140400
2026-05 P002 博海OA系统 labor 前端开发 58 1600 92800
2026-05 P002 博海OA系统 labor 测试 28 1200 33600
2026-05 P002 博海OA系统 overhead 项目管理 1 25000 25000
2026-05 P003 博海WMS系统 material 服务器资源 6 3800 22800
2026-05 P003 博海WMS系统 material 硬件设备 12 8500 102000
2026-05 P003 博海WMS系统 labor 后端开发 105 1850 194250
2026-05 P003 博海WMS系统 labor 前端开发 55 1600 88000
2026-05 P003 博海WMS系统 labor 实施部署 35 1500 52500
2026-05 P003 博海WMS系统 overhead 项目管理 1 32000 32000
2026-05 S001 系统实施服务 labor 实施顾问 55 2000 110000
2026-05 S001 系统实施服务 material 差旅费用 1 18500 18500
2026-05 S002 系统运维服务 labor 运维工程师 22 1800 39600
2026-05 S002 系统运维服务 material 监控工具 1 5000 5000
2026-05 S002 系统运维服务 overhead 7x24值班 1 9000 9000

(2) standard_costs — All Records

Schema (from StandardCost model - same as actual_costs but with standard quantities/prices):

Column Type Description
id INTEGER PK Auto-increment
product_code VARCHAR(20) Product code
product_name VARCHAR(200) Product name
cost_type VARCHAR(20) material/labor/overhead
item_name VARCHAR(200) Cost item name
standard_quantity FLOAT Standard quantity
standard_price FLOAT Standard unit price
standard_cost FLOAT Total standard cost
version VARCHAR(20) Version (e.g., "v1.0")
remark TEXT Notes (nullable)
created_at DATETIME Auto timestamp

Expected records (if seed was run): 22 rows

product_code product_name cost_type item_name std_qty std_price std_cost
P001 博海ERP系统 material 服务器资源 12 5000 60000
P001 博海ERP系统 material 数据库授权 2 30000 60000
P001 博海ERP系统 material 第三方组件 1 15000 15000
P001 博海ERP系统 labor 需求分析 40 1500 60000
P001 博海ERP系统 labor 后端开发 120 1800 216000
P001 博海ERP系统 labor 前端开发 80 1600 128000
P001 博海ERP系统 labor 测试 40 1200 48000
P001 博海ERP系统 overhead 项目管理 1 35000 35000
P001 博海ERP系统 overhead 质量保证 1 20000 20000
P001 博海ERP系统 overhead 办公分摊 1 15000 15000
P002 博海OA系统 material 服务器资源 8 4000 32000
P002 博海OA系统 material 云存储 500 2 1000
P002 博海OA系统 labor 后端开发 80 1800 144000
P002 博海OA系统 labor 前端开发 60 1600 96000
P002 博海OA系统 labor 测试 30 1200 36000
P002 博海OA系统 overhead 项目管理 1 25000 25000
P003 博海WMS系统 material 服务器资源 6 3500 21000
P003 博海WMS系统 material 硬件设备 10 8000 80000
P003 博海WMS系统 labor 后端开发 100 1800 180000
P003 博海WMS系统 labor 前端开发 50 1600 80000
P003 博海WMS系统 labor 实施部署 30 1500 45000
P003 博海WMS系统 overhead 项目管理 1 30000 30000
S001 系统实施服务 labor 实施顾问 60 2000 120000
S001 系统实施服务 labor 培训讲师 10 2500 25000
S001 系统实施服务 material 差旅费用 1 20000 20000
S001 系统实施服务 overhead 项目管理 1 15000 15000
S002 系统运维服务 labor 运维工程师 22 1800 39600
S002 系统运维服务 material 监控工具 1 5000 5000
S002 系统运维服务 overhead 7x24值班 1 8000 8000

(3) kpi_values & budget_plans — Data Check

kpi_values

Schema (from KPIValue model):

Column Type Description
id INTEGER PK Auto-increment
kpi_id INTEGER (FK→kpi_definitions) KPI reference
period VARCHAR(20) Period (e.g., "2026-05")
actual_value FLOAT Actual KPI value
source_type VARCHAR(20) erp/excel/manual
source_batch VARCHAR(100) Import batch (nullable)
data_status VARCHAR(20) pending/verified/error
calculated_at DATETIME Auto timestamp
remark TEXT Notes (nullable)

Status: kpi_values is populated when ERP sync runs or via manual data entry. Contains KPI actual values linked to kpi_definitions.

budget_plans

Schema (from BudgetPlan model):

Column Type Description
id INTEGER PK Auto-increment
period VARCHAR(20) Budget period
product_code VARCHAR(20) Product code
product_name VARCHAR(200) Product name
cost_type VARCHAR(20) material/labor/overhead
planned_amount FLOAT Budgeted amount
remark TEXT Notes
created_at DATETIME Auto timestamp
updated_at DATETIME Auto timestamp

Status: budget_plans holds budget plan data by product and period, used for variance analysis against actual costs.


How to Run Live Queries

A query script has been prepared at:

/root/cma-management/backend/scripts/query_cma_db.py

Run it with:

cd /root/cma-management/backend
python3 scripts/query_cma_db.py

Or use sqlite3 directly:

sqlite3 /root/cma-management/backend/cma.db ".tables"
sqlite3 /root/cma-management/backend/cma.db "SELECT * FROM actual_costs;"
sqlite3 /root/cma-management/backend/cma.db "SELECT * FROM standard_costs;"
sqlite3 /root/cma-management/backend/cma.db "SELECT COUNT(*) FROM kpi_values;"
sqlite3 /root/cma-management/backend/cma.db "SELECT COUNT(*) FROM budget_plans;"