JhHardwareWRS_BackPoint/scripts/seed_demo.py
2026-06-24 15:19:14 +08:00

80 lines
2.5 KiB
Python

from pathlib import Path
import sys
ROOT = Path(__file__).resolve().parents[1]
sys.path.insert(0, str(ROOT))
from app.database import SessionLocal # noqa: E402
from app.models import PersonRole, Personnel, Product, Role # noqa: E402
PEOPLE = [
{"phone": "13800000001", "name": "张三", "role": Role.worker},
{"phone": "13800000002", "name": "李四", "role": Role.admin},
{"phone": "13800000003", "name": "王经理", "role": Role.manager},
]
PRODUCTS = [
{
"project_no": "W02",
"profile_no": "XUS-157-6001-003",
"product_name": "LAC-56011041后防撞梁左吸能盒端板",
"material_code": "110101002022",
"material_name": "LAC-56011041-后防撞梁左吸能盒端板-半成品",
"device_no": "20#",
"process_name": "1序",
"stamping_method": "切边冲孔",
"operator_count": 1,
"standard_beat": 10.984,
"standard_workload": 2622,
},
{
"project_no": "W02",
"profile_no": "XUS-157-6009-001",
"product_name": "LAC-56010050/0014后防撞梁左连接板",
"material_code": "110501000186",
"material_name": "LAC-56010050-后防撞梁左连接板-半成品",
"device_no": "18#",
"process_name": "1序",
"stamping_method": "切边冲孔",
"operator_count": 1,
"standard_beat": 5.112,
"standard_workload": 5634,
},
]
def main() -> None:
with SessionLocal() as db:
for item in PEOPLE:
person = db.get(Personnel, item["phone"]) or Personnel(phone=item["phone"])
person.name = item["name"]
db.add(person)
if db.get(PersonRole, {"phone": item["phone"], "role": item["role"]}) is None:
db.add(PersonRole(phone=item["phone"], role=item["role"]))
for item in PRODUCTS:
product = db.get(
Product,
{
"project_no": item["project_no"],
"product_name": item["product_name"],
"device_no": item["device_no"],
"process_name": item["process_name"],
},
) or Product(
project_no=item["project_no"],
product_name=item["product_name"],
device_no=item["device_no"],
process_name=item["process_name"],
)
for key, value in item.items():
setattr(product, key, value)
db.add(product)
db.commit()
print("demo data seeded")
if __name__ == "__main__":
main()