guarantee-admin-api-v0.2/Modules/Company/CompanyManageImpl.py

218 lines
6.8 KiB
Python

from DBHelper.MongoHelperInstance import DB_GUA
from Modules.Common.CommonUtils import CommonUtils
from Modules.Company.CompanyObject import GuaranteeInfo
from Utils.CommonUtil import trans_fields_name, sub_dict, get_attr
class CompanyManageImpl(object):
@staticmethod
def search(**kwargs):
total = DB_GUA.find_all_data_with_count(
"企业数据",
"公司概览",
{"企业名称": {"$regex": kwargs["company_name"]}}
)
items = DB_GUA.find_data_by_page_with_sort(
"企业数据",
"公司概览",
{"企业名称": {"$regex": kwargs["company_name"]}},
["企业ID", "企业名称", "所在省份", "所在城市", "信用评级", "评级日期", "公司标签"],
{"更新时间": -1},
kwargs["page_size"],
kwargs["page_no"]
)
trans_items = list()
for item in items:
trans_item = trans_fields_name(
item,
["企业ID", "所在省份", "所在城市", "信用评级", "评级日期", "公司标签"],
["cid", "省份", "地级市", "级别", "日期", "标签"]
)
trans_items.append(trans_item)
result = {
"total": total,
"records": trans_items
}
return result
@staticmethod
def basic_data(**kwargs):
item = DB_GUA.find_single_data(
"企业数据",
"工商信息",
{"企业ID": kwargs["cid"]},
[
"企业名称", "企业简称", "企业类型", "担保类型", "统一社会信用代码",
"组织代码", "成立时间", "注册资本(万元)", "实缴资本(万元)", "经营范围",
"所在省份", "所在城市", "注册地址", "通信地址", "电子邮箱",
"联系电话", "参保人数", "公司定位", "法定代表人", "实际控制人",
"高管信息", "股东信息"
]
)
if not item:
result = {}
else:
result = dict()
business_info = sub_dict(
item,
[
"企业名称", "企业简称", "企业类型", "担保类型", "统一社会信用代码",
"组织代码", "成立时间", "注册资本(万元)", "实缴资本(万元)", "经营范围",
"所在省份", "所在城市", "注册地址", "通信地址", "电子邮箱",
"联系电话", "参保人数", "公司定位", "法定代表人", "实际控制人"
]
)
result["工商信息"] = business_info
result["高管信息"] = get_attr(item, ["高管信息"], default=[])
result["股东信息"] = get_attr(item, ["股东信息"], default=[])
return result
@staticmethod
def financial_data(**kwargs):
items = DB_GUA.find_all_data(
"企业数据",
"财务数据",
{"企业ID": kwargs["cid"]},
[
"报告期", "资产负债表", "利润表", "补充数据表"
]
)
if not items:
result = {}
else:
balance_sheets = list()
profit_statements = list()
appendix_sheets = list()
for item in items:
balance_sheet = item["资产负债表"]
profit_statement = item["利润表"]
appendix_sheet = item["补充数据表"]
balance_sheet["报告期"] = item["报告期"]
profit_statement["报告期"] = item["报告期"]
appendix_sheet["报告期"] = item["报告期"]
balance_sheets.append(balance_sheet)
profit_statements.append(profit_statement)
appendix_sheets.append(appendix_sheet)
result = {
"资产负债表": balance_sheets,
"利润表": profit_statements,
"补充数据表": appendix_sheets,
}
return result
@staticmethod
def guarantee_info(**kwargs):
items = DB_GUA.find_all_data(
"企业数据",
"担保数据",
{"企业ID": kwargs["cid"]},
[
"担保ID", "项目名称", "被担保人", "担保类型", "担保方式", "担保余额(万元)",
"解除金额(万元)", "责任担保余额(万元)", "担保开始日期", "担保结束日期",
"行业", "省份", "地级市", "备注"
]
)
if not items:
result = []
else:
result = items
return result
@staticmethod
def get_repay(**kwargs):
items = DB_GUA.find_all_data(
"企业数据",
"代偿信息",
{"担保ID": kwargs["gid"]},
[
"项目名称", "代偿金额(万元)", "代偿回收金额(万元)", "代偿日期"
]
)
if not items:
result = []
else:
result = items
return result
@staticmethod
def edit_repay(**kwargs):
def make_new_gid():
new_gid = CommonUtils.random_code(8)
case = DB_GUA.find_single_column(
"企业数据",
"代偿信息",
{"担保ID": new_gid},
"企业ID"
) is not None
while case:
new_gid = CommonUtils.random_code(8)
return new_gid
compensation = GuaranteeInfo.CompensationInfo()
compensation.compensation_id = make_new_gid()
compensation.project_name = kwargs["project_name"]
compensation.compensation_amount = kwargs["repay_amount"]
compensation.compensation_recovery_amount = kwargs["repay_recycle_amount"]
compensation.compensation_date = kwargs["repay_date"]
DB_GUA.upsert_single_data(
"企业数据",
"代偿信息",
{"担保ID": compensation.compensation_id},
compensation.fields_toggle()
)
@staticmethod
def get_rating_records(**kwargs):
cid = kwargs["cid"]
page_no = kwargs["page_no"]
page_size = kwargs["page_size"]
total = DB_GUA.find_all_data_with_count(
"评级数据",
"评级记录",
{"企业ID": cid}
)
records = DB_GUA.find_data_by_page_with_sort(
"评级数据",
"评级记录",
{"企业ID": cid},
["评级ID", "报告期", "所在省市", "评级日期", "信用级别", "信用分数", "评级报告", "评级状态"],
{"评级日期": -1},
page_no,
page_size
)
return []