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 []