import shortuuid from django.db import models # 企业调研信息 class CompanyResearchInfo(models.Model): # 选项 SHAREHOLDER_NATURE_CHOICES = [('个人', '个人'), ('私企', '私企'), ('国企', '国企'), ('政府', '政府'), ] YES_OR_NO_CHOICES = [('是', '是'), ('否', '否')] OPERATING_SITE_OWNERSHIP_CHOICES = [('自有', '自有'), ('租赁', '租赁')] # 企业ID company_id = models.CharField(max_length=22, primary_key=True, default=shortuuid.uuid, editable=False, verbose_name='企业ID') # 工商信息 company_name = models.CharField(max_length=255, verbose_name='企业名称') legal_entity_name = models.CharField(max_length=255, verbose_name='法人名称') shareholder_nature = models.CharField(max_length=255, choices=SHAREHOLDER_NATURE_CHOICES, verbose_name='股东性质') main_business = models.TextField(max_length=255, verbose_name='主营业务') # 股东及董监高 senior_management_experience = models.FloatField(verbose_name='高管平均从业年限') has_board = models.CharField(max_length=255, choices=YES_OR_NO_CHOICES, verbose_name='是否设置董事会') board_members_count = models.IntegerField(verbose_name='董事会人数') has_supervisory_board = models.CharField(max_length=255, choices=YES_OR_NO_CHOICES, verbose_name='是否设置监事会') supervisory_members_count = models.IntegerField(verbose_name='监事人数') annual_support_funds = models.FloatField(verbose_name='年度公司股东或关联方给予公司的资金支持金额') # 人员信息 management_staff_count = models.IntegerField(verbose_name='管理人员人数') functional_staff_count = models.IntegerField(verbose_name='职能人员人数') sales_staff_count = models.IntegerField(verbose_name='销售人员人数') technical_service_staff_count = models.IntegerField(verbose_name='技术服务人员人数') bachelors_or_above_count = models.IntegerField(verbose_name='本科及以上人员人数') below_bachelors_count = models.IntegerField(verbose_name='专科及以下人员人数') year_end_total_employees = models.IntegerField(verbose_name='年末员工总数') annual_resignation_count = models.IntegerField(verbose_name='年度离职人数') training_participation_count = models.IntegerField(verbose_name='年度员工培训总次数') average_weekly_working_days = models.FloatField(verbose_name='员工周均工作天数') average_daily_working_hours = models.FloatField(verbose_name='员工日均工作时长') work_related_casualties = models.IntegerField(verbose_name='年度因公伤亡人次') # 经营情况 sales_amount = models.FloatField(verbose_name='销售产品金额') returns_amount = models.FloatField(verbose_name='退回产品金额') privacy_breach_incidents = models.CharField(max_length=8, choices=YES_OR_NO_CHOICES, verbose_name='发生过客户隐私泄露') total_service_times = models.IntegerField(verbose_name='对外服务总次数') valid_customer_complaints = models.IntegerField(verbose_name='客户有效投诉次数') complaints_resolved = models.IntegerField(verbose_name='投诉解决次数') complaint_response_time = models.FloatField(verbose_name='投诉响应时间') # 银行账户信息 rmb_account_bank_name = models.CharField(max_length=255, verbose_name='人民币开户银行名称') rmb_bank_account = models.CharField(max_length=255, verbose_name='人民币开户银行账号') foreign_currency_bank_name = models.CharField(max_length=255, verbose_name='外币开户银行名称') foreign_currency_bank_account = models.CharField(max_length=255, verbose_name='外币开户银行账号') loan_card_number = models.CharField(max_length=255, verbose_name='贷款卡编号') # 经营场所信息 operating_site_area = models.FloatField(max_length=255, verbose_name='经营场所建筑面积') operating_site_location = models.CharField(max_length=255, verbose_name='经营场所位置') operating_site_ownership = models.CharField(max_length=255, choices=OPERATING_SITE_OWNERSHIP_CHOICES, verbose_name='经营场所权属关系') # 公司制度 has_quality_management_system = models.CharField(max_length=8, choices=YES_OR_NO_CHOICES, verbose_name='拥有质量管理制度') has_financial_management_system = models.CharField(max_length=8, choices=YES_OR_NO_CHOICES, verbose_name='拥有财务管理制度') has_contract_management_system = models.CharField(max_length=8, choices=YES_OR_NO_CHOICES, verbose_name='拥有合同管理制度') has_hr_management_system = models.CharField(max_length=8, choices=YES_OR_NO_CHOICES, verbose_name='拥有人力资源管理制度') # 补充信息 business_credit_record = models.TextField(max_length=255, verbose_name='工商信用记录') customs_credit_record = models.TextField(max_length=255, verbose_name='海关信用记录') bank_credit_record = models.TextField(max_length=255, verbose_name='银行信用记录') court_credit_record = models.TextField(max_length=255, verbose_name='法院信用记录') production_safety_information = models.TextField(max_length=255, verbose_name='生产安全信息') social_responsibility_implementation = models.TextField(max_length=255, verbose_name='社会责任实施') class Meta: verbose_name = "企业调研信息" verbose_name_plural = "企业调研信息" # 简易财务报表 class SimpleFinancialReport(models.Model): financial_report_id = models.CharField(max_length=22, primary_key=True, default=shortuuid.uuid, editable=False, verbose_name='财务报表ID') company = models.ForeignKey(CompanyResearchInfo, on_delete=models.CASCADE, related_name='simple_financial_reports', verbose_name='企业ID') company_name = models.CharField(max_length=255, verbose_name='企业名称') report_date = models.DateField(verbose_name="报告期") currency_funds = models.FloatField(verbose_name="货币资金") accounts_receivable = models.FloatField(verbose_name="应收账款") other_receivables = models.FloatField(verbose_name="其他应收款") prepayments = models.FloatField(verbose_name="预付款项") inventory = models.FloatField(verbose_name="存货") total_current_assets = models.FloatField(verbose_name="流动资产合计") total_non_current_assets = models.FloatField(verbose_name="非流动资产合计") original_value_fixed_assets = models.FloatField(verbose_name="固定资产原价") accumulated_depreciation = models.FloatField(verbose_name="累计折旧") net_value_fixed_assets = models.FloatField(verbose_name="固定资产净额") total_fixed_assets = models.FloatField(verbose_name="固定资产总计") total_intangible_and_other_assets = models.FloatField(verbose_name="无形资产及其他资产合计") total_assets = models.FloatField(verbose_name="资产总计") short_term_loans = models.FloatField(verbose_name="短期借款") notes_payable = models.FloatField(verbose_name="应付票据") accounts_payable = models.FloatField(verbose_name="应付账款") advance_payments = models.FloatField(verbose_name="预收账款") interest_payable = models.FloatField(verbose_name="应付利息") other_payables = models.FloatField(verbose_name="其他应付款") total_current_liabilities = models.FloatField(verbose_name="流动负债合计") long_term_loans = models.FloatField(verbose_name="长期借款") bonds_payable = models.FloatField(verbose_name="应付债券") total_non_current_liabilities = models.FloatField(verbose_name="非流动负债合计") total_liabilities = models.FloatField(verbose_name="负债合计") undistributed_profit = models.FloatField(verbose_name="未分配利润") total_equity = models.FloatField(verbose_name="所有者权益合计") operating_income = models.FloatField(verbose_name="营业收入") operating_costs = models.FloatField(verbose_name="营业成本") interest_expense = models.FloatField(verbose_name="利息费用") net_profit = models.FloatField(verbose_name="净利润") audited = models.CharField(max_length=8, choices=[("是", "是"), ("否", "否")], verbose_name="是否审计") accounting_firm = models.CharField(max_length=100, verbose_name="会计事务所") class Meta: verbose_name = "简易财务报表" verbose_name_plural = "简易财务报表" class CompanyCreditData(models.Model): TAX_CREDIT_RATING_CHOICES = [('A', 'A'), ('B', 'B'), ('C', 'C'), ('D', 'D')] company_credit_data_id = models.CharField(max_length=22, primary_key=True, default=shortuuid.uuid, editable=False, verbose_name='企业信用数据ID') company = models.OneToOneField(CompanyResearchInfo, on_delete=models.CASCADE, related_name='company_credit_data', verbose_name='企业ID') company_name = models.CharField(max_length=255, verbose_name='企业名称') # 企业信用数据 years_in_operation = models.IntegerField(verbose_name="成立年限") shareholder_changes_last_three_years = models.IntegerField(verbose_name="近三年股东变更次数") negative_public_opinions_ratio = models.FloatField(verbose_name="企业舆情负面占比", help_text="与企业相关的最近1000条新闻") litigation_announcements = models.IntegerField(verbose_name="开庭公告", help_text='被告,类型为合同纠纷或劳动争议') tax_credit_rating = models.CharField(max_length=8, default="", choices=TAX_CREDIT_RATING_CHOICES, verbose_name="纳税信用等级") double_random_check_result = models.CharField(max_length=100, verbose_name="双随机抽查结果") abnormal_business_operations = models.IntegerField(verbose_name="经营异常") tax_notice = models.IntegerField(verbose_name="欠税公告") admin_penalty_warnings = models.IntegerField(verbose_name="罚款数额", help_text="最近3年累计的行政处罚的罚款数额") admin_penalty_confiscation = models.IntegerField(verbose_name="没收违法所得", help_text="最近3年行政处罚所没收的违法所得") judgment_debtor = models.IntegerField(verbose_name="被执行人") dishonest_judgment_debtor = models.IntegerField(verbose_name="失信被执行人") tax_violations = models.IntegerField(verbose_name="税收违法") serious_violations = models.IntegerField(verbose_name="严重违法") class Meta: verbose_name = "企业信用数据" verbose_name_plural = "企业信用数据"