api-datamanager/Company/Basic/Shareholder/ShareholderImpl.py

167 lines
5.3 KiB
Python
Raw Normal View History

2022-08-30 17:04:17 +08:00
from Company.Basic.Shareholder.ShareholderObj import ShareholderList
from Company.CompanyUtils import CompanyUtils
from DBHelper.MongoHelperInstance import DB_TYC, DB_TEST
from Utils.CommonUtil import CommonUtils
class ShareholderImpl(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['股东类型'] = '公司' if record['type'] == 1 else '' if record['type'] == 2 else '其他'
dict_data['股东性质'] = None
dict_data['持股比例'] = record['capital'][0]['percent']
dict_data['认缴出资额'] = record['capital'][0]['amomon']
dict_data['认缴出资日期'] = record['capital'][0]['time']
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.2_股东信息',
{'企业ID': cid},
'企业名称'
)
update = save_data(cname=cname, cid=cid)
if update:
DB_TEST.update_single_data(
"WR_DataBase_v2_test",
"C3.2_股东信息",
{"企业ID": cid},
update
)
return 'success'
else:
return 'update failed'
elif len(condition['cname']):
cname = condition['cname']
cid = CompanyUtils.make_new_cid()
insert = save_data(cname=cname, cid=cid)
if insert:
DB_TEST.upsert_single_data(
"WR_DataBase_v2_test",
"C3.2_股东信息",
{"企业名称": cname},
insert
)
return 'success'
else:
return '"new failed"'
else:
return 'parameter exception'
@staticmethod
def delete(**kwargs):
"""删除"""
cid = kwargs['cid']
res = DB_TEST.delete_single_data(
"WR_DataBase_v2_test",
"C3.2_股东信息",
{"企业ID": cid}
)
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['shareholder']
try:
shareholder = ShareholderList()
shareholder.sid = body['股东ID']
shareholder.name = body['股东名称']
shareholder.stype = body['股东类型']
shareholder.quality = body['股东性质']
shareholder.proportion = body['持股比例']
shareholder.amount = body['认缴出资额']
shareholder.date = body['认缴出资日期']
update_data = shareholder.fields_toggle()
DB_TEST.update_single_data_in_array(
"WR_DataBase_v2_test",
"C3.2_股东信息",
{"企业ID": cid},
{"股东名称": name},
update_data
)
return 'success'
except Exception:
return 'edit failed'
@staticmethod
def view(**kwargs):
"""查看"""
cid = kwargs['cid']
record = DB_TEST.find_single_data(
"WR_DataBase_v2_test",
"C3.2_股东信息",
{"企业ID": cid},
[]
)
if record:
result = {
"info": "success",
"result": record
}
else:
result = {
"info": "no result"
}
return result