80 lines
2.5 KiB
Python
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()
|