147 lines
10 KiB
Python
147 lines
10 KiB
Python
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 = "企业信用数据"
|