216 lines
7.9 KiB
Python
216 lines
7.9 KiB
Python
# 数据录入
|
|
from datetime import datetime
|
|
from typing import List
|
|
from sqlalchemy.orm import Session
|
|
from Mods.BasicInformation.Mods.CompanyIndexMain.Models import CompanyIndexMain
|
|
from Mods.BasicInformation.Mods.CompanyBaseInfo.Models import CompanyBaseInfo
|
|
from Mods.BasicInformation.Mods.CompanyControl.Models import CompanyControl
|
|
from Mods.BasicInformation.Mods.CompanyShareholder.Models import CompanyShareholder
|
|
from Mods.OtherInformation.Mods.CompanyBankLease.Models import CompanyBankLease
|
|
from Mods.OtherInformation.Mods.CompanyCreditRating.Models import CompanyCreditRating
|
|
from Mods.OtherInformation.Mods.CompanyGuarantee.Models import CompanyGuarantee
|
|
from Mods.OtherInformation.Mods.CompanyJudicialDocument.Models import CompanyJudicialDocument
|
|
from Mods.OtherInformation.Mods.CompanyOtherLease.Models import CompanyOtherLease
|
|
from Mods.OtherInformation.Mods.CompanyRentalLease.Models import CompanyRentalLease
|
|
from Mods.OtherInformation.Mods.CompanyTrustLease.Models import CompanyTrustLease
|
|
from ThirdPartyApi.Tianyancha import Schemas as TianyanchaSchemas
|
|
from ThirdPartyApi.Yujingtong import Schemas as YujingtongSchemas
|
|
|
|
|
|
def delete_company_all_info(db: Session, company_id):
|
|
"""
|
|
删除一个公司的所有信息
|
|
"""
|
|
will_del_mods = [
|
|
CompanyIndexMain,
|
|
CompanyBaseInfo,
|
|
CompanyControl,
|
|
CompanyControl,
|
|
CompanyShareholder,
|
|
CompanyBankLease,
|
|
CompanyCreditRating,
|
|
CompanyGuarantee,
|
|
CompanyJudicialDocument,
|
|
CompanyOtherLease,
|
|
CompanyRentalLease,
|
|
CompanyTrustLease,
|
|
TianyanchaSchemas,
|
|
YujingtongSchemas
|
|
]
|
|
for mod in will_del_mods:
|
|
db.query(mod).filter_by(company_id=company_id).delete()
|
|
|
|
db.commit()
|
|
|
|
|
|
def date_value_to_date(date_value):
|
|
if type(date_value) == str:
|
|
if "-" in date_value:
|
|
return datetime.strptime(date_value, '%Y-%m-%d').date()
|
|
else:
|
|
return datetime.strptime(date_value, '%Y%m%d').date()
|
|
if type(date_value) == int:
|
|
return datetime.fromtimestamp(date_value).date()
|
|
|
|
|
|
def get_company_id(db: Session, company_name):
|
|
company = db.query(CompanyIndexMain).filter_by(company_name=company_name).first()
|
|
if not company:
|
|
raise Exception("公司名称未录入数据库")
|
|
return company.company_id
|
|
|
|
|
|
def tianyancha_api_to_company_base_info(res: TianyanchaSchemas.CompanyBaseInfoRes, company_id):
|
|
new_item = CompanyBaseInfo()
|
|
new_item.company_id = company_id
|
|
new_item.legal_person = res.legalPersonName
|
|
new_item.reg_capital = res.regCapital
|
|
# new_item.paid_capital =
|
|
new_item.estiblish_date = date_value_to_date(res.estiblishTime)
|
|
new_item.approved_date = date_value_to_date(res.approvedTime)
|
|
# new_item.license_duration=
|
|
new_item.reg_capital = res.regLocation
|
|
new_item.credit_code = res.creditCode
|
|
new_item.social_staff_num = res.socialStaffNum
|
|
new_item.business_scope = res.businessScope
|
|
return new_item
|
|
|
|
|
|
def tianyancha_api_to_company_control(res: TianyanchaSchemas.ActualControlItemInfo, company_id):
|
|
new_item = CompanyControl()
|
|
new_item.company_id = company_id
|
|
new_item.name = res.name
|
|
new_item.type = "人" if res.type == 1 else "公司"
|
|
return new_item
|
|
|
|
|
|
def yujingtong_api_to_company_shareholder_list(res: List[YujingtongSchemas.ShareHolderItemInfo], company_id):
|
|
new_item_list = []
|
|
for item in res:
|
|
new_item = CompanyShareholder()
|
|
new_item.company_id = company_id
|
|
new_item.name = item.ShareholderName
|
|
new_item.type = item.ShareholderType
|
|
# todo 单位换算
|
|
new_item.amount = item.ShouldCapi
|
|
new_item.number = item.ShareholdeCode
|
|
new_item.percent = float(item.ShareholdingRatio)
|
|
new_item.reg_date = date_value_to_date(item.ContributionTime)
|
|
new_item_list.append(new_item)
|
|
return new_item_list
|
|
|
|
|
|
def yujingtong_api_to_company_bank_lease_list(res: List[YujingtongSchemas.BankLoanItemInfo], company_id):
|
|
new_item_list = []
|
|
for item in res:
|
|
new_item = CompanyBankLease()
|
|
new_item.company_id = company_id
|
|
new_item.amount = float(item.Amount)
|
|
new_item.third_name = item.BankName
|
|
new_item.start_date = date_value_to_date(item.Begindate)
|
|
new_item.end_date = date_value_to_date(item.Enddate)
|
|
new_item.coupon = item.Rate
|
|
new_item_list.append(new_item)
|
|
# new_item.method
|
|
# new_item.status
|
|
# new_item.remark
|
|
return new_item_list
|
|
|
|
|
|
def yujingtong_api_to_company_credit_rating(res: YujingtongSchemas.MainRatingDataInfo, company_id):
|
|
new_item = CompanyCreditRating()
|
|
new_item.company_id = company_id
|
|
new_item.result = res.thisRaiting
|
|
new_item.rate_date = date_value_to_date(res.rantingDate)
|
|
new_item.publish_date = date_value_to_date(res.declaredate)
|
|
new_item.outlook = res.raitingOutlook
|
|
new_item.rate_agency = res.raitingOrgName
|
|
return new_item
|
|
|
|
|
|
def yujingtong_api_to_company_guarantee(res: List[YujingtongSchemas.GuaranteeDetailsItemInfo], company_id):
|
|
new_item_list = []
|
|
for item in res:
|
|
new_item = CompanyGuarantee()
|
|
new_item.company_id = company_id
|
|
new_item.third_name = item.SecuredName
|
|
# new_item.type =res.
|
|
new_item.amount = item.GuaranteeAmount
|
|
new_item.duration = item.GuaranteePeriod
|
|
new_item.method = item.GuaranteeMode
|
|
new_item.status = item.GuaranteeStatus
|
|
new_item_list.append(new_item)
|
|
# new_item.remark
|
|
return new_item_list
|
|
|
|
|
|
def yujingtong_api_to_company_judicial_document(res: List[YujingtongSchemas.JudgementDocItemInfo], company_id):
|
|
new_item_list = []
|
|
for item in res:
|
|
new_item = CompanyJudicialDocument()
|
|
new_item.company_id = company_id
|
|
new_item.doc_type = item.DocType
|
|
new_item.case_date = date_value_to_date(item.JudgeDate)
|
|
new_item.title = item.Title
|
|
new_item.code = item.CaseNo
|
|
new_item.type = item.DocType
|
|
new_item.reason = item.CaseReason
|
|
new_item.amount = item.CaseAmount
|
|
# new_item.identity=item.
|
|
new_item.result = item.JudgmentResult
|
|
new_item.court = item.Court
|
|
new_item.publish_date = item.PublishDate
|
|
new_item_list.append(new_item)
|
|
return new_item_list
|
|
|
|
|
|
def yujingtong_api_to_company_other_lease(res: List[YujingtongSchemas.OtherFinancingItemInfo], company_id):
|
|
new_item_list = []
|
|
for item in res:
|
|
new_item = CompanyOtherLease()
|
|
new_item.company_id = company_id
|
|
new_item.type = item.Type
|
|
new_item.third_name = item.InvestorName
|
|
new_item.amount = item.Amount
|
|
new_item.duration = item.Timelimit
|
|
new_item.coupon = item.Rate
|
|
# new_item.method =
|
|
# new_item.status =
|
|
# new_item.remark =
|
|
return new_item_list
|
|
|
|
|
|
def yujingtong_api_to_company_rental_lease(res: List[YujingtongSchemas.LeasingFinancingItemInfo], company_id):
|
|
new_item_list = []
|
|
for item in res:
|
|
new_item = CompanyRentalLease()
|
|
new_item.company_id = company_id
|
|
new_item.amount = item.Amount
|
|
new_item.start_date = date_value_to_date(item.Begindate)
|
|
new_item.end_date = date_value_to_date(item.Enddate)
|
|
new_item.coupon = item.Rate
|
|
# new_item.method =
|
|
new_item.status = item.RegisterType
|
|
# new_item.remark =
|
|
|
|
return new_item_list
|
|
|
|
|
|
def yujingtong_api_to_company_trust_lease(res: List[YujingtongSchemas.TrustFinancingItemInfo], company_id):
|
|
new_item_list = []
|
|
for item in res:
|
|
new_item = CompanyTrustLease()
|
|
new_item.company_id = company_id
|
|
new_item.third_name = item.TrustcompanyName
|
|
new_item.amount = item.Amount
|
|
new_item.start_date = date_value_to_date(item.Begindate)
|
|
new_item.end_date = date_value_to_date(item.Enddate)
|
|
new_item.coupon = item.Rate
|
|
# new_item.method =
|
|
# new_item.status =
|
|
# new_item.remark =
|
|
|
|
return new_item_list
|
|
|
|
|