2022-08-31 10:12:16 +08:00
|
|
|
from Company.Basic.Business.BusinessImpl import BusinessImpl
|
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',
|
2022-08-31 10:12:16 +08:00
|
|
|
'C3.1_工商信息',
|
2022-08-30 17:04:17 +08:00
|
|
|
{'企业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']
|
2022-08-31 10:12:16 +08:00
|
|
|
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": ""})
|
2022-08-30 17:04:17 +08:00
|
|
|
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:
|
2022-08-31 11:21:58 +08:00
|
|
|
return 'new failed'
|
2022-08-30 17:04:17 +08:00
|
|
|
else:
|
|
|
|
return 'parameter exception'
|
|
|
|
|
|
|
|
@staticmethod
|
|
|
|
def delete(**kwargs):
|
|
|
|
"""删除"""
|
2022-08-30 23:35:24 +08:00
|
|
|
param = kwargs['param']
|
|
|
|
cid = param['cid']
|
|
|
|
shareholder = param['shareholder']
|
2022-08-30 17:04:17 +08:00
|
|
|
|
2022-08-30 23:35:24 +08:00
|
|
|
res = DB_TEST.delete_single_data_in_array(
|
2022-08-30 17:04:17 +08:00
|
|
|
"WR_DataBase_v2_test",
|
|
|
|
"C3.2_股东信息",
|
2022-08-30 23:35:24 +08:00
|
|
|
{"企业ID": cid},
|
|
|
|
{"股东列表": {"股东名称": shareholder}}
|
2022-08-30 17:04:17 +08:00
|
|
|
)
|
|
|
|
|
|
|
|
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.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},
|
2022-08-30 23:35:24 +08:00
|
|
|
{"股东列表": {"股东名称": name}},
|
2022-08-30 17:04:17 +08:00
|
|
|
update_data
|
|
|
|
)
|
2022-08-31 10:12:16 +08:00
|
|
|
time_update = {"更新时间": CommonUtils.get_current_time()}
|
|
|
|
DB_TEST.update_single_data(
|
|
|
|
"WR_DataBase_v2_test",
|
|
|
|
"C3.2_股东信息",
|
|
|
|
{"企业ID": cid},
|
|
|
|
time_update
|
|
|
|
)
|
2022-08-30 17:04:17 +08:00
|
|
|
return 'success'
|
|
|
|
except Exception:
|
|
|
|
return 'edit failed'
|
|
|
|
|
|
|
|
@staticmethod
|
|
|
|
def view(**kwargs):
|
|
|
|
"""查看"""
|
2022-08-30 23:35:24 +08:00
|
|
|
query = kwargs['query']
|
|
|
|
cid = query['cid']
|
|
|
|
page_size = int(query['page_size'])
|
|
|
|
page_num = page_size * (int(query['page_num']) - 1)
|
2022-08-30 17:04:17 +08:00
|
|
|
|
2022-09-01 16:28:59 +08:00
|
|
|
res = DB_TEST.find_single_data(
|
2022-08-30 23:35:24 +08:00
|
|
|
'WR_DataBase_v2_test',
|
|
|
|
'C3.2_股东信息',
|
|
|
|
{"企业ID": cid},
|
2022-09-01 16:28:59 +08:00
|
|
|
['股东列表', '更新时间']
|
2022-08-30 23:35:24 +08:00
|
|
|
)
|
2022-09-01 16:28:59 +08:00
|
|
|
total = len(res['股东列表'])
|
|
|
|
update_time = res['更新时间']
|
2022-08-30 23:35:24 +08:00
|
|
|
|
|
|
|
record = DB_TEST.find_data_with_aggregate(
|
2022-08-30 17:04:17 +08:00
|
|
|
"WR_DataBase_v2_test",
|
|
|
|
"C3.2_股东信息",
|
2022-08-30 23:35:24 +08:00
|
|
|
[
|
|
|
|
{"$match": {"企业ID": cid}},
|
|
|
|
{"$project": {'_id': 0, '股东列表': {"$slice": ["${}".format('股东列表'), page_num, page_size]}}}
|
|
|
|
]
|
2022-08-30 17:04:17 +08:00
|
|
|
)
|
|
|
|
|
|
|
|
if record:
|
|
|
|
result = {
|
|
|
|
"info": "success",
|
2022-09-01 16:28:59 +08:00
|
|
|
"result": {
|
|
|
|
"total": total,
|
|
|
|
"update_time": update_time,
|
|
|
|
"records": record[0]['股东列表']
|
|
|
|
}
|
2022-08-30 17:04:17 +08:00
|
|
|
}
|
|
|
|
else:
|
|
|
|
result = {
|
|
|
|
"info": "no result"
|
|
|
|
}
|
|
|
|
return result
|