Merge branch 'v0.21' into 'master'

V0.21

See merge request root/tfse_admin!32
This commit is contained in:
FECR-IBD 2022-04-19 01:29:44 +00:00
commit 47ac0538a2
5 changed files with 151 additions and 7 deletions

View File

@ -71,7 +71,7 @@ class CompanyIndexApiImpl(CompanyIndexApi):
head_info = CompanyIndexApi.HeadInfo()
update_time = CompanyIndexApi.UpdateTime()
basic_info = CompanyIndexApi
basic_info = CompanyIndexApi.BasicInfo()
financial_data = CompanyIndexApi
operating_risk = CompanyIndexApi
financial_analysis = CompanyIndexApi
@ -110,3 +110,24 @@ class CompanyIndexApiImpl(CompanyIndexApi):
)
self.update_time.update_time = [result['更新日期'] for result in results]
def get_basic_info(self):
"""获取基本工商信息"""
if self.basic_info.__dict__.__contains__('update_time'):
find_body = {"企业ID": self.basic_info.cid, "更新时间.工商信息": self.basic_info.update_time}
else:
find_body = {"企业ID": self.basic_info.cid}
result = self.db.find_single_data(
"企业数据",
"企业数据_更新汇总",
find_body,
["工商信息", "股东信息", "主要成员"]
)
if not result:
result = {'工商信息': {}, "股东信息": {}, "主要成员": {}}
self.basic_info.business_info = self.dict_to_set(instance=self.basic_info.BusinessInfo, data=result['工商信息'])
self.basic_info.share_holder = self.instance_list_to_set(instance_list_type=self.basic_info.ShareHolder, data=result['股东信息'])
self.basic_info.main_member = self.instance_list_to_set(instance_list_type=self.basic_info.MainMember, data=result['主要成员'])

View File

@ -1,5 +1,5 @@
from Utils.ObjUtil import SpecObject
from Utils.ValidateUtil import ValidateAttr
from Utils.ValidateUtil import ValidateAttr, Validate
class SearchCompanyApi(SpecObject):
@ -141,6 +141,89 @@ class CompanyIndexApi(SpecObject):
"update_time": "update_time"
}
class BasicInfo(SpecObject):
class BusinessInfo(SpecObject):
"""基本工商信息"""
status = ValidateAttr(field="status", type=str, default=None)
legal_person = ValidateAttr(field="legal_person", type=str, default=None)
company_type = ValidateAttr(field="company_type", type=str, default=None)
taxpayer_id = ValidateAttr(field="taxpayer_id", type=str, default=None)
business_scope = ValidateAttr(field="business_scope", type=str, default=None)
registered_capital = ValidateAttr(field="registered_capital", type=str, default=None)
paid_capital = ValidateAttr(field="paid_capital", type=str, default=None)
registered_address = ValidateAttr(field="registered_address", type=str, default=None)
registration_authority = ValidateAttr(field="registration_authority", type=str, default=None)
industry = ValidateAttr(field="industry", type=str, default=None)
staff_size = ValidateAttr(field="staff_size", type=str, default=None)
people_insured_num = ValidateAttr(field="people_insured_num", type=int, default=None)
micro_company = ValidateAttr(field="micro_company", type=str, in_list=["", ""], default=None)
fields_map = {
"status": "企业状态",
"legal_person": "法定代表人",
"company_type": "企业类型",
"taxpayer_id": "纳税人识别号",
"business_scope": "经营范围",
"registered_capital": "注册资本",
"paid_capital": "实缴资本",
"registered_address": "注册地址",
"registration_authority": "登记机关",
"industry": "行业",
"staff_size": "人员规模",
"people_insured_num": "参保人数",
"micro_company": "小微企业"
}
class ShareHolder(SpecObject):
"""股东信息"""
name = ValidateAttr(field='name', type=str)
share_holder_type = ValidateAttr(field='share_holder_type', type=str, default=None)
share_holding_ratio = ValidateAttr(field="share_holding_ratio", type=str, default=None)
subscription_amount = ValidateAttr(field="subscription_amount", type=str, default=None)
subscription_date = ValidateAttr(field="subscription_date", type=str, default=None)
paid_amount = ValidateAttr(field="paid_amount", type=list, default=[])
payment_method = ValidateAttr(field="payment_method", type=list, default=[])
payment_time = ValidateAttr(field="payment_time", type=list, default=[])
fields_map = {
"name": "股东",
"share_holder_type": "股东类型",
"share_holding_ratio": "持股比例",
"subscription_amount": "认缴金额",
"subscription_date": "认缴日期",
"paid_amount": "实缴金额",
"payment_method": "实缴方式",
"payment_time": "实缴时间"
}
class MainMember(SpecObject):
"""主要成员"""
name = ValidateAttr(field="name", type=str)
job_title = ValidateAttr(field="job_title", type=list, default=None)
fields_map = {
"name": "姓名",
"job_title": "职务"
}
cid = ValidateAttr(field='cid', type=str, length=8)
update_time = ValidateAttr(field='update_time', func=Validate.time_format)
business_info = ValidateAttr(field="business_info", type=BusinessInfo)
share_holder = ValidateAttr(field='share_holder', instance_list=ShareHolder)
main_member = ValidateAttr(field='main_member', instance_list=MainMember)
fields_map = {
"cid": "企业ID",
"update_time": "更新时间",
"business_info": "工商信息",
"share_holder": "股东信息",
"main_member": "主要成员"
}
def get_head_info(self):
"""头部信息"""

View File

@ -83,6 +83,23 @@ def update_time_route(**kwargs):
return {"info": e.failed_info}, e.status_code
@company_route.route('/basic_info', methods=['POST'])
@verify_token
def basic_info_route(**kwargs):
""""""
try:
req = request.json
impl = CompanyIndexApiImpl()
impl.basic_info.cid = req['cid']
if req.__contains__('update_time'):
impl.basic_info.update_time = req['update_time']
impl.get_basic_info()
result = impl.basic_info.dict_to_show(columns=["工商信息", "股东信息", "主要成员"])
return result, 200
except ReturnConditionCheckFailed as e:
return {"info": e.failed_info}, e.status_code
@company_route.route('/index', methods=['POST'])
@verify_token
def index_route(**kwargs):

View File

@ -52,8 +52,24 @@ class SpecObject(object):
return _dict_
# def dict_to_post(self, **kwargs):
# if kwargs.__contains__('data'):
# fields_map = dict([v, k] for k, v in self.fields_map.items())
# for field in list(kwargs['data'].keys()):
# self.__setattr__(fields_map[field], kwargs['data'][field])
@staticmethod
def dict_to_set(**kwargs):
"""实例设值"""
instance = kwargs['instance']()
fields_map = dict([v, k] for k, v in instance.fields_map.items())
for field in list(kwargs['data'].keys()):
instance.__setattr__(fields_map[field], kwargs['data'][field])
return instance
@staticmethod
def instance_list_to_set(**kwargs):
"""实例数组设值"""
list_ = list()
for item in list(kwargs['data']):
instance = kwargs['instance_list_type']()
fields_map = dict([v, k] for k, v in instance.fields_map.items())
for field in list(item.keys()):
instance.__setattr__(fields_map[field], item[field])
list_.append(instance)
return list_

View File

@ -20,6 +20,13 @@ class Validate(object):
case = (len(param) >= 8) and (re.match(regex, param) is not None)
return True if case else False
@staticmethod
def time_format(param):
"""yyyy-mm-dd hh:mm:ss"""
regex = "\d{4}-\d{1,2}-\d{1,2} \d{1,2}:\d{1,2}:\d{1,2}"
case = re.match(regex, param) is not None
return True if case else False
@staticmethod
def image(param):
""""""