import os import django import random from datetime import date, timedelta # 设置 Django 环境 os.environ.setdefault('DJANGO_SETTINGS_MODULE', 'XH_Digital_Management.settings') django.setup() from application.pjt_mgnt.models import ( ProjectLedger, ProjectProgress, ProjectProgressSettings, ProjectIssuesLog, ChildProjectLedgerA, ChildProjectLedgerB, ChildProjectLedgerC, ChildProjectLedgerD, EmployeeProjectIncomeSettlement, EmployeeIncome ) def generate_test_data(): # 创建项目台账 projects = [] for i in range(10): project = ProjectLedger.objects.create( project_name=f"项目名称{i}", start_date=date.today() - timedelta(days=random.randint(100, 500)), end_date=date.today() + timedelta(days=random.randint(100, 500)), primary_department=f"一级部门{i}", customer_name=f"客户名称{i}", province=f"省{i}", city=f"市{i}", district=f"区县{i}", project_leader=f"负责人{i}", project_members=f"项目组员{i}", project_status=random.choice(['进行中', '暂停', '待收款', '完成']), resource_type=random.choice(['公司', '个人']), project_nature=random.choice(['新增', '存量', '新增及存量', '老客户新业务']), project_progress=f"项目进度{i}", contract_date=date.today() - timedelta(days=random.randint(100, 500)), contract_amount=random.uniform(100000, 1000000), contract_rate=random.uniform(0.1, 1.0), revenue=random.uniform(100000, 1000000), cost_rate=random.uniform(0.1, 1.0), cost=random.uniform(100000, 1000000), net_income=random.uniform(100000, 1000000), total_amount_including_tax=random.uniform(100000, 1000000), repayment_amount=random.uniform(100000, 1000000), receivable_net_income=random.uniform(100000, 1000000), actual_net_income=random.uniform(100000, 1000000), outstanding_net_income=random.uniform(100000, 1000000), notes=f"备注{i}" ) projects.append(project) print(f"Created ProjectLedger: {project}") # 创建项目进度表 for project in projects: progress = ProjectProgress.objects.create( project_id=project, flow_nodes={'节点1': '开始', '节点2': '进行中', '节点3': '完成'} ) print(f"Created ProjectProgress: {progress}") # 创建项目进度设置表 for i in range(5): progress_setting = ProjectProgressSettings.objects.create( project_type=f"项目类型{i}", flow_nodes_setting="节点1;节点2;节点3" ) print(f"Created ProjectProgressSettings: {progress_setting}") # 创建项目问题记录表 for project in projects: issue_log = ProjectIssuesLog.objects.create( project_id=project, record_date=date.today() - timedelta(days=random.randint(1, 365)), description=f"问题描述{project.project_name}", handler=f"经办人{project.project_name}", reference=f"参考依据{project.project_name}", solution=f"解决方案{project.project_name}", decision_maker=f"决策人{project.project_name}", status=random.choice(['解决', '未解决']) ) print(f"Created ProjectIssuesLog: {issue_log}") # 创建项目台账续表A for project in projects: child_a = ChildProjectLedgerA.objects.create( project_id=project, project_type=random.choice(['cbc', '债拍', '其他']), resource_party=f"资源方{project.project_name}", cooperation_party=f"合作方{project.project_name}", transaction_amount=random.uniform(100000, 1000000), target_amount=random.uniform(100000, 1000000) ) print(f"Created ChildProjectLedgerA: {child_a}") # 创建项目台账续表B for project in projects: child_b = ChildProjectLedgerB.objects.create( project_id=project, project_type=random.choice(['承销', '贸易', '其他']), partner=f"合作方{project.project_name}", start_interest_date=date.today() - timedelta(days=random.randint(1, 365)), interest_payment_date=date.today() + timedelta(days=random.randint(1, 365)), number_of_people=random.randint(1, 100), amount=random.uniform(100000, 1000000) ) print(f"Created ChildProjectLedgerB: {child_b}") # 创建项目台账续表C for project in projects: child_c = ChildProjectLedgerC.objects.create( project_id=project, project_type=random.choice(['咨询', '科技', '新媒体', '其他']), resource_party=f"资源方{project.project_name}", cooperation_party=f"合作方{project.project_name}", service_period=f"{random.randint(1, 12)}个月" ) print(f"Created ChildProjectLedgerC: {child_c}") # 创建项目台账续表D for project in projects: child_d = ChildProjectLedgerD.objects.create( project_id=project, project_type=random.choice(['非标', '贸易', '其他']), capital_demand_party=f"资金需求方{project.project_name}", capital_provider=f"资金提供方{project.project_name}", financing_method=f"融资方式{project.project_name}", target_amount=random.uniform(100000, 1000000), term=f"{random.randint(1, 12)}个月", nominal_rate=random.uniform(0.1, 10.0), total_cost=random.uniform(0.1, 10.0), trade_type=random.choice(['带量', '取信', '补票']), trade_entity=f"贸易主体{project.project_name}", trade_service_provider=f"贸易服务商{project.project_name}", trade_variety=f"贸易品种{project.project_name}", demand_party=f"需求方{project.project_name}", supply_party=f"供给方{project.project_name}" ) print(f"Created ChildProjectLedgerD: {child_d}") # 创建项目组员收入结算表 settlements = [] for project in projects: settlement = EmployeeProjectIncomeSettlement.objects.create( project_name=project, year_month=f"2023-{random.randint(1, 12):02}" ) settlements.append(settlement) print(f"Created EmployeeProjectIncomeSettlement: {settlement}") # 创建项目组员收入详情表 for settlement in settlements: for i in range(random.randint(1, 5)): income = EmployeeIncome.objects.create( employee_settlement=settlement, name=f"员工姓名{settlement.project_name.project_name}_{i}", contribution_rate=random.uniform(0.1, 1.0), sales_income=random.uniform(10000, 100000) ) print(f"Created EmployeeIncome: {income}") if __name__ == "__main__": generate_test_data()