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()