from flask import Blueprint, request from Modules.AdminUser.UserAuthUtils import verify_token from Modules.Company.CompanyImpl import BasicBusinessInfoImpl from Modules.Company.CompanyManageImpl import CompanyManageImpl from Utils.ErrorUtil import AttrCheckError, APIReturnError from Utils.RouteUtil import RouteParamsCheck company_route = Blueprint('company', __name__) @company_route.route('/create', methods=['POST']) @verify_token def create_route(**kwargs): """新增公司""" try: file = request.files['file'] impl = BasicBusinessInfoImpl() impl.parse_excel_and_create_company(file) return {"info": "新增成功"}, 200 except AssertionError as e: return {"info": e.__str__()}, 202 except AttrCheckError as e: return {"info": e.__str__()}, 202 @company_route.route('/search', methods=['GET']) @verify_token def search_route(**kwargs): """公司搜索""" try: RouteParamsCheck(request.args, ["company_name", "page_size", "page_no"]).required() company_name = request.args["company_name"] page_size = request.args["page_size"] page_no = request.args["page_no"] impl = CompanyManageImpl() result = impl.search( company_name=company_name, page_size=page_size, page_no=page_no ) return {"info": "公司搜索", "result": result}, 200 except APIReturnError as e: return {"info": e.__str__()}, e.status_code @company_route.route('customer_info', methods=['GET']) @verify_token def customer_info_route(**kwargs): """客户信息""" try: RouteParamsCheck(request.args, ["cid", "page_no", "page_size"]).required() cid = request.args["cid"] page_no = request.args["page_no"] page_size = request.args["page_size"] impl = CompanyManageImpl() result = impl.customer_info(cid=cid, page_no=page_no, page_size=page_size) return {"info": "客户信息", "result": result}, 200 except APIReturnError as e: return {"info": e.__str__()}, e.status_code @company_route.route('regional_info', methods=['GET']) @verify_token def regional_info_route(**kwargs): """区域分布""" try: RouteParamsCheck(request.args, ["cid", "page_no", "page_size"]).required() cid = request.args["cid"] page_no = request.args["page_no"] page_size = request.args["page_size"] impl = CompanyManageImpl() result = impl.regional_info(cid=cid, page_no=page_no, page_size=page_size) return {"info": "客户信息", "result": result}, 200 except APIReturnError as e: return {"info": e.__str__()}, e.status_code @company_route.route('industry_info', methods=['GET']) @verify_token def industry_info_route(**kwargs): """行业分布""" try: RouteParamsCheck(request.args, ["cid", "page_no", "page_size"]).required() cid = request.args["cid"] page_no = request.args["page_no"] page_size = request.args["page_size"] impl = CompanyManageImpl() result = impl.industry_info(cid=cid, page_no=page_no, page_size=page_size) return {"info": "客户信息", "result": result}, 200 except APIReturnError as e: return {"info": e.__str__()}, e.status_code @company_route.route('guarantee_balance_info', methods=['GET']) @verify_token def guarantee_balance_info_route(**kwargs): """担保金额分布""" try: RouteParamsCheck(request.args, ["cid", "page_no", "page_size"]).required() cid = request.args["cid"] page_no = request.args["page_no"] page_size = request.args["page_size"] impl = CompanyManageImpl() result = impl.guarantee_balance_info(cid=cid, page_no=page_no, page_size=page_size) return {"info": "客户信息", "result": result}, 200 except APIReturnError as e: return {"info": e.__str__()}, e.status_code @company_route.route('/basic_data', methods=['GET']) @verify_token def basic_data_route(**kwargs): """基本信息""" try: RouteParamsCheck(request.args, ["cid"]).required() cid = request.args["cid"] impl = CompanyManageImpl() result = impl.basic_data(cid=cid) return {"info": "基本信息", "result": result}, 200 except APIReturnError as e: return {"info": e.__str__()}, e.status_code @company_route.route('/financial_data', methods=['GET', 'POST']) @verify_token def financial_data_route(**kwargs): """财务数据""" try: if request.method == 'GET': RouteParamsCheck(request.args, ["cid"]).required() cid = request.args["cid"] impl = CompanyManageImpl() result = impl.get_financial_data(cid=cid) return {"info": "财务数据", "result": result}, 200 if request.method == 'POST': RouteParamsCheck(request.json, ["cid", "report_date", "update_data"]).required() cid = request.json["cid"] report_date = request.json["report_date"] update_data = request.json["update_data"] impl = CompanyManageImpl() impl.edit_financial_data(cid=cid, report_date=report_date, update_data=update_data) return {"info": "财务数据", "result": "修改成功"}, 200 except APIReturnError as e: return {"info": e.__str__()}, e.status_code @company_route.route('/guarantee_info', methods=['GET', 'POST']) @verify_token def guarantee_info_route(**kwargs): """担保信息""" try: if request.method == "GET": RouteParamsCheck(request.args, ["cid"]).required() cid = request.args["cid"] impl = CompanyManageImpl() result = impl.get_guarantee_info(cid=cid) return {"info": "担保信息", "result": result}, 200 if request.method == "POST": RouteParamsCheck( request.json, [ "企业ID", "项目名称", "被担保人", "担保类型", "担保方式", "担保余额(万元)", "解除金额(万元)", "责任担保余额(万元)", "担保开始日期", "担保结束日期", "省份", "地级市", "行业" ] ).required() impl = CompanyManageImpl() data = request.json if 'new' in request.args.keys(): result = impl.new_guarantee_info(data=data) else: result = impl.edit_guarantee_info(data=data) return {"info": "担保信息", "result": result}, 200 except APIReturnError as e: return {"info": e.__str__()}, e.status_code @company_route.route('/repay', methods=['GET', 'POST']) @verify_token def repay_route(**kwargs): """代偿信息""" try: if request.method == "GET": RouteParamsCheck(request.args, ["gid"]).required() gid = request.args["gid"] impl = CompanyManageImpl() result = impl.get_repay(gid=gid) return {"info": "担保信息", "result": result}, 200 if request.method == "POST": RouteParamsCheck( request.json, [ "担保ID", "项目名称", "代偿金额(万元)", "代偿回收金额(万元)", "代偿日期" ] ).required() impl = CompanyManageImpl() data = request.json if 'new' in request.args.keys(): result = impl.new_repay(data=data) else: result = impl.edit_repay(data=data) return {"info": "代偿信息", "result": result}, 200 except APIReturnError as e: return {"info": e.__str__()}, e.status_code @company_route.route('/ratings', methods=['GET']) @verify_token def rating_records_route(**kwargs): """评级记录""" try: if request.method == "GET": RouteParamsCheck(request.args, ["cid", "page_no", "page_size"]).required() cid = request.args["cid"] page_no = request.args["page_no"] page_size = request.args["page_size"] result = CompanyManageImpl.get_rating_records( cid=cid, page_no=page_no, page_size=page_size ) return {"info": "评级记录", "result": result} except APIReturnError as e: return {"info": e.__str__()}, e.status_code