update 企业数据相关接口

This commit is contained in:
P3ngSaM 2022-08-31 11:21:58 +08:00
parent fdf645dc0c
commit 3a5d210827
9 changed files with 321 additions and 8 deletions

View File

@ -64,7 +64,14 @@ class BusinessImpl(object):
return 'update failed' return 'update failed'
elif len(condition['cname']): elif len(condition['cname']):
cname = condition['cname'] cname = condition['cname']
cid = CompanyUtils.make_new_cid() cid = DB_TEST.find_single_column(
'WR_DataBase_v2_test',
'C3.1_工商信息',
{'企业名称': cname},
'企业ID'
)
if not cid:
cid = CompanyUtils.make_new_cid()
insert = save_data(cname=cname, cid=cid) insert = save_data(cname=cname, cid=cid)
if insert: if insert:
DB_TEST.upsert_single_data( DB_TEST.upsert_single_data(

View File

@ -1,6 +1,6 @@
from flask import Blueprint, request from flask import Blueprint, request
from Company.Basic.BasicImpl import BasicImpl from Company.Basic.Business.BusinessImpl import BusinessImpl
from Utils.ErrorUtil import APIReturnError from Utils.ErrorUtil import APIReturnError
from Utils.RouteUtil import RouteParamsCheck from Utils.RouteUtil import RouteParamsCheck
@ -12,7 +12,7 @@ def basic_information_route():
"""工商信息-新增/更新(自动)""" """工商信息-新增/更新(自动)"""
try: try:
RouteParamsCheck(req=request.args, params=["cname", "cid"]).required() RouteParamsCheck(req=request.args, params=["cname", "cid"]).required()
impl = BasicImpl() impl = BusinessImpl()
result = impl.auto_update(condition=request.args) result = impl.auto_update(condition=request.args)
return {"info": result} return {"info": result}
except APIReturnError as e: except APIReturnError as e:
@ -24,7 +24,7 @@ def edit_basic_information_route():
"""工商信息-编辑""" """工商信息-编辑"""
try: try:
RouteParamsCheck(req=request.json, params=["cid", "body"]).required() RouteParamsCheck(req=request.json, params=["cid", "body"]).required()
impl = BasicImpl() impl = BusinessImpl()
result = impl.edit(param=request.json) result = impl.edit(param=request.json)
return {"info": result} return {"info": result}
except APIReturnError as e: except APIReturnError as e:
@ -36,7 +36,7 @@ def view_basic_information_route():
"""工商信息-查看""" """工商信息-查看"""
try: try:
RouteParamsCheck(req=request.args, params=["cid"]).required() RouteParamsCheck(req=request.args, params=["cid"]).required()
impl = BasicImpl() impl = BusinessImpl()
result = impl.view(cid=request.args['cid']) result = impl.view(cid=request.args['cid'])
return result return result
except APIReturnError as e: except APIReturnError as e:

View File

@ -94,7 +94,7 @@ class ExecutivesImpl(object):
) )
return 'success' return 'success'
else: else:
return '"new failed"' return 'new failed'
else: else:
return 'parameter exception' return 'parameter exception'

View File

@ -0,0 +1,205 @@
from Company.Basic.Business.BusinessImpl import BusinessImpl
from Company.Basic.Investment.InvestmentObj import InvestmentList
from Company.Basic.Shareholder.ShareholderObj import ShareholderList
from DBHelper.MongoHelperInstance import DB_TYC, DB_TEST
from Utils.CommonUtil import CommonUtils
class InvestmentImpl(object):
"""股东信息"""
@staticmethod
def auto_update(**kwargs):
"""新增/更新(自动)"""
condition = kwargs['condition']
def save_data(**args):
"""查询保存数据"""
def search_cid(name):
"""根据股东名称查询cid"""
cid_record = DB_TEST.find_single_column(
'WR_DataBase_v2_test',
'C3.1_工商信息',
{'企业名称': name},
'企业名称'
)
if cid_record:
return cid_record
else:
return None
company_name = args['cname']
company_id = args['cid']
records = DB_TYC.find_single_column(
'公司背景',
'对外投资',
{'企业名称': company_name},
'对外投资'
)
if records:
records = records['result']
data = dict()
list_data = list()
for record in records:
dict_data = dict()
dict_data['企业ID'] = search_cid(record['name'])
dict_data['企业名称'] = record['name']
dict_data['法定代表人'] = record['legalPersonName']
dict_data['成立日期'] = CommonUtils.time_stamp(record['estiblishTime'])
dict_data['企业状态'] = record['regStatus']
dict_data['投资金额'] = record['amount']
dict_data['投资比例'] = record['percent']
dict_data['控股情况'] = None
dict_data['所属行业'] = record['category']
dict_data['所属省份'] = CommonUtils.province_conversion(record['base'])
dict_data['所属地市'] = None
list_data.append(dict_data)
data['企业ID'] = company_id
data['投资列表'] = list_data
data['更新时间'] = CommonUtils.get_current_time()
return data
else:
return False
if len(condition['cid']):
cid = condition['cid']
cname = DB_TEST.find_single_column(
'WR_DataBase_v2_test',
'C3.1_工商信息',
{'企业ID': cid},
'企业名称'
)
update = save_data(cname=cname, cid=cid)
if update:
DB_TEST.update_single_data(
"WR_DataBase_v2_test",
"C3.4_对外投资",
{"企业ID": cid},
update
)
return 'success'
else:
return 'update failed'
elif len(condition['cname']):
cname = condition['cname']
cid = DB_TEST.find_single_column(
'WR_DataBase_v2_test',
'C3.1_工商信息',
{'企业名称': cname},
'企业ID'
)
if not cid:
cid = BusinessImpl.auto_update(condition={"cname": cname, "cid": ""})
insert = save_data(cname=cname, cid=cid)
if insert:
DB_TEST.upsert_single_data(
"WR_DataBase_v2_test",
"C3.4_对外投资",
{"企业名称": cname},
insert
)
return 'success'
else:
return 'new failed'
else:
return 'parameter exception'
@staticmethod
def delete(**kwargs):
"""删除"""
param = kwargs['param']
cid = param['cid']
cname = param['cname']
res = DB_TEST.delete_single_data_in_array(
"WR_DataBase_v2_test",
"C3.4_对外投资",
{"企业ID": cid},
{"投资列表": {"企业名称": cname}}
)
if res:
result = {
"info": "success",
}
else:
result = {
"info": "no result"
}
return result
@staticmethod
def edit(**kwargs):
"""编辑"""
param = kwargs['param']
cid = param['cid']
body = param['body']
name = param['cname']
try:
investment = InvestmentList()
investment.cid = body['企业ID']
investment.cname = body['企业名称']
investment.representative = body['法定代表人']
investment.establishment_date = body['成立日期']
investment.status = body['企业状态']
investment.investment_amount = body['投资金额']
investment.investment_percentage = body['投资比例']
investment.holdings = body['控股情况']
investment.industry = body['所属行业']
investment.province = body['所属省份']
investment.city = body['所属地市']
update_data = investment.fields_toggle()
DB_TEST.update_single_data_in_array(
"WR_DataBase_v2_test",
"C3.4_对外投资",
{"企业ID": cid},
{"投资列表": {"企业名称": name}},
update_data
)
time_update = {"更新时间": CommonUtils.get_current_time()}
DB_TEST.update_single_data(
"WR_DataBase_v2_test",
"C3.4_对外投资",
{"企业ID": cid},
time_update
)
return 'success'
except Exception:
return 'edit failed'
@staticmethod
def view(**kwargs):
"""查看"""
query = kwargs['query']
cid = query['cid']
page_size = int(query['page_size'])
page_num = page_size * (int(query['page_num']) - 1)
total = DB_TEST.find_single_column(
'WR_DataBase_v2_test',
'C3.4_对外投资',
{"企业ID": cid},
'投资列表'
)
record = DB_TEST.find_data_with_aggregate(
"WR_DataBase_v2_test",
"C3.4_对外投资",
[
{"$match": {"企业ID": cid}},
{"$project": {'_id': 0, '投资列表': {"$slice": ["${}".format('投资列表'), page_num, page_size]}}}
]
)
if record:
result = {
"info": "success",
"total": len(total),
"result": record[0]['投资列表']
}
else:
result = {
"info": "no result"
}
return result

View File

@ -0,0 +1,44 @@
from Utils.ObjUtil import SpecObject
from Utils.ValidateUtil import ValidateAttr, Validate
class InvestmentList(SpecObject):
"""投资列表"""
cid = ValidateAttr(field="cid", type=str, default=None)
cname = ValidateAttr(field="cname", type=str)
representative = ValidateAttr(field="representative", type=str)
establishment_date = ValidateAttr(field="establishment_date", func=Validate.date_format)
status = ValidateAttr(field="status", type=str)
investment_amount = ValidateAttr(field="investment_amount", type=[float, int, str])
investment_percentage = ValidateAttr(field="investment_percentage", type=str, default=None)
holdings = ValidateAttr(field="holdings", type=str, default=None)
industry = ValidateAttr(field="industry", type=str)
province = ValidateAttr(field="province", type=str)
city = ValidateAttr(field="city", type=str, default=None)
fields_map = {
"cid": "企业ID",
"cname": "企业名称",
"representative": "法定代表人",
"establishment_date": "成立日期",
"status": "企业状态",
"investment_amount": "投资金额",
"investment_percentage": "投资比例",
"holdings": "控股情况",
"industry": "所属行业",
"province": "所属省份",
"city": "所属地市",
}
class ShareholderObj(SpecObject):
"""股东信息"""
cid = ValidateAttr(field='cid', type=str, length=8)
investment_list = ValidateAttr(field='investment_list', instance_list=InvestmentList)
update_time = ValidateAttr(field='update_time', func=Validate.time_format)
fields_map = {
"cid": "企业ID",
"investment_list": "投资列表",
"update_time": "更新时间"
}

View File

@ -0,0 +1,55 @@
from flask import Blueprint, request
from Company.Basic.Investment.InvestmentImpl import InvestmentImpl
from Utils.ErrorUtil import APIReturnError
from Utils.RouteUtil import RouteParamsCheck
investment_route = Blueprint('investment', __name__)
@investment_route.route('/auto_update', methods=['GET'])
def auto_update_route():
"""新增/更新(自动)"""
try:
RouteParamsCheck(req=request.args, params=["cname", "cid"]).required()
impl = InvestmentImpl()
result = impl.auto_update(condition=request.args)
return {"info": result}
except APIReturnError as e:
return {"info": e.__str__()}, e.status_code
@investment_route.route('/delete', methods=['GET'])
def delete_route():
"""删除"""
try:
RouteParamsCheck(req=request.args, params=["cid", "cname"]).required()
impl = InvestmentImpl()
result = impl.delete(param=request.args)
return result
except APIReturnError as e:
return {"info": e.__str__()}, e.status_code
@investment_route.route('/edit', methods=['POST'])
def edit_route():
"""编辑"""
try:
RouteParamsCheck(req=request.json, params=["cid", "cname", "body"]).required()
impl = InvestmentImpl()
result = impl.edit(param=request.json)
return {"info": result}
except APIReturnError as e:
return {"info": e.__str__()}, e.status_code
@investment_route.route('/view', methods=['GET'])
def view_route():
"""查看"""
try:
RouteParamsCheck(req=request.args, params=["cid", "page_num", "page_size"]).required()
impl = InvestmentImpl()
result = impl.view(query=request.args)
return result
except APIReturnError as e:
return {"info": e.__str__()}, e.status_code

View File

View File

@ -97,7 +97,7 @@ class ShareholderImpl(object):
) )
return 'success' return 'success'
else: else:
return '"new failed"' return 'new failed'
else: else:
return 'parameter exception' return 'parameter exception'

4
app.py
View File

@ -4,6 +4,7 @@ from flask_cors import *
from Company.Basic.BasicRoutes import basic_route from Company.Basic.BasicRoutes import basic_route
from Company.Basic.Business.BusinessRoute import business_route from Company.Basic.Business.BusinessRoute import business_route
from Company.Basic.Executives.ExecutivesRoute import executives_route from Company.Basic.Executives.ExecutivesRoute import executives_route
from Company.Basic.Investment.InvestmentRoute import investment_route
from Company.Basic.Shareholder.ShareholderRoute import shareholder_route from Company.Basic.Shareholder.ShareholderRoute import shareholder_route
from Company.Common.CommonRoutes import common_route from Company.Common.CommonRoutes import common_route
from Company.Ip.IpRoutes import ip_route from Company.Ip.IpRoutes import ip_route
@ -36,10 +37,11 @@ app.register_blueprint(questionnaire_route, url_prefix='/rating/questionnaire')
app.register_blueprint(filters_route, url_prefix='/rating/data_filters') app.register_blueprint(filters_route, url_prefix='/rating/data_filters')
app.register_blueprint(file_route, url_prefix='/rating/obj_file') app.register_blueprint(file_route, url_prefix='/rating/obj_file')
app.register_blueprint(tyc_route, url_prefix='/rating/tyc_api') app.register_blueprint(tyc_route, url_prefix='/rating/tyc_api')
app.register_blueprint(basic_route, url_prefix='/data/manage/company/basic') # app.register_blueprint(basic_route, url_prefix='/data/manage/company/basic')
app.register_blueprint(business_route, url_prefix='/data/manage/company/basic/business_info') app.register_blueprint(business_route, url_prefix='/data/manage/company/basic/business_info')
app.register_blueprint(shareholder_route, url_prefix='/data/manage/company/basic/shareholder') app.register_blueprint(shareholder_route, url_prefix='/data/manage/company/basic/shareholder')
app.register_blueprint(executives_route, url_prefix='/data/manage/company/basic/executive') app.register_blueprint(executives_route, url_prefix='/data/manage/company/basic/executive')
app.register_blueprint(investment_route, url_prefix='/data/manage/company/basic/investment')
app.register_blueprint(ip_route, url_prefix='/data/manage/company/ip') app.register_blueprint(ip_route, url_prefix='/data/manage/company/ip')
app.register_blueprint(judicial_risk_route, url_prefix='/data/manage/company/judicial_risk') app.register_blueprint(judicial_risk_route, url_prefix='/data/manage/company/judicial_risk')
app.register_blueprint(operational_route, url_prefix='/data/manage/company/operational_risk') app.register_blueprint(operational_route, url_prefix='/data/manage/company/operational_risk')