# 数据录入 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 new_item.amount = item.ShouldCapi/10000 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