填报模块 升级至v0.21版本 进行中

This commit is contained in:
王思川 2022-03-18 16:44:35 +08:00
parent ad94f919f5
commit 32b8808168
4 changed files with 105 additions and 35 deletions

29
README.md Normal file
View File

@ -0,0 +1,29 @@
# 天府股交项目-应用端API接口
版本信息: WideRating APP API TFSE v0.2x
## 命名备注
### 命名格式
包括文件命名、对象命名、函数命名等格式规范
| 类型 | 方法 | 示例 |
| ---- | ---- | ---- |
| 对象 | 首字母大写 | Class User: |
| 一般函数 | 小写字母加下划线 | def get_user_info(): |
| 数据操作函数 | 大写字母加下划线 | def FIND_USER_DATA(): |
### 命名简写
在保证代码可读性的前提下,为了让代码排版显得清爽,需要简写一些较长且常用的英文
| 简写 | 全写 | 中文 |
| :----: | :----: | :----: |
| cc | comprehensive_credit | 综合信用 |
| impl | implement | 实施 |
| CC | COMPREHENSIVE_CREDIT | 综合信用 |
| REQ | REQUIREMENT | 要求 |

View File

@ -1,10 +1,43 @@
import pymongo
client = pymongo.MongoClient('mongodb://{}:{}@{}:{}'.format('root', 'sromitdTW569kC#M', '116.63.130.34', 27018))
client_admin = pymongo.MongoClient('mongodb://{}:{}@{}:{}'.format('root', 'RYIHrqml#LSW6#!*', '116.63.130.34', 27020))
DB_HOST = "116.63.130.34"
DB_PASS = "UTlC9cCoglD1cI1*"
DB_USER = "root"
DB_PORT = "27021"
client = pymongo.MongoClient('mongodb://{}:{}@{}:{}'.format(DB_USER, DB_PASS, DB_HOST, DB_PORT))
def find_rating_records(param):
def FIND_SINGLE_DATA_BY_REQ(param1, param2, param3):
"""
查询符合条件的第一条数据
Parameters:
param1: str 数据库
param2: str 数据表
param3: dict 查询条件
Returns:
record: 查询结果为空返回False; 查询结果正常返回查询结果的第一条数据;
"""
collection = client[param1][param2]
record = list(collection.find(param3, {'_id': False}))
return False if record == [] else record[0]
def FIND_ALL_DATA_BY_REQ(param1, param2, param3):
"""
查询符合条件的所有数据
Parameters:
param1: str 数据库
param2: str 数据表
param3: dict 查询条件
Returns:
record: list 查询结果
"""
collection = client[param1][param2]
record = list(collection.find(param3, {'_id': False}))
return record
def FIND_RATING_RECORDS(param):
"""
查询评价记录
Parameters:
@ -12,13 +45,13 @@ def find_rating_records(param):
Returns:
record: 查询结果
"""
collection = client['评价']['评价记录']
collection = client['企业数据']['评价记录']
data = collection.find(param, {'_id': False})
record = list(data)
return record
def find_process_records(param1, param2):
def FIND_CC_RATING_PROCESS_DATA(param1, param2):
"""
查询流程记录
Parameters:
@ -83,14 +116,14 @@ def insert_general_input(data):
collection.insert_one(data)
def update_general_input(rid, data):
def UPDATE_COMPREHENSIVE_CREDIT_INPUT_DATA(rid, data):
"""
更新综合填报数据
更新综合信用填报数据
Parameters:
rid: 评价ID
data: 综合填报数据
Returns:
res: desc
res: None
"""
collection = client['评价']['综合评价填报']
collection.update_one({"评价ID": rid}, {"$set": data})

View File

@ -65,7 +65,7 @@ def gen_new_rid(param):
# 生成新ID
new_id = make_id(param)
# 检查新ID是否存在如果存在则继续生成新ID
case = find_rating_records({"评价ID": new_id}) is []
case = FIND_RATING_RECORDS({"评价ID": new_id}) is []
while case:
new_id = make_id(param)
# 新ID可使用返回新ID
@ -102,7 +102,7 @@ def rating_records_by_cid(cid):
certification_link = "/file/get_certification?file_id={}"
esg_report_link = '/file/get_company_esg_report?file_id={}'
esg_certification_link = "/file/get_esg_certification?file_id={}"
records = find_rating_records({"企业ID": cid})
records = FIND_ALL_DATA_BY_REQ("企业数据", "评价记录", {"企业ID": cid})
for record in records:
if records is not None:
if record['评价项目'] == '综合信用评价':
@ -120,31 +120,35 @@ def rating_records_by_cid(cid):
return records
def start_general_rating_script(cid):
def start_cc_rating_impl(cid):
"""
开始进行综合评价的数据填报
开始综合信用评价的数据填报
Parameters:
cid: 企业ID
cid: str 企业ID
Returns:
record 填报信息
record: dict 填报信息
"""
# 检查是否已认证
# STEP_1
# 检查企业是否已认证
if not check_verified(cid):
return "该企业未认证", {}
# 根据企业ID和当前年度查询是否存在当年的填报记录
exist_input_form = find_rating_inputs({"企业ID": cid, "评价年度": get_current_year()})
# STEP_2
# 根据企业ID+当前年度,查询是否存在填报数据
# exist_input_data: 已存在的填报数据
# FIND_SINGLE_DATA_BY_REQ("企业数据", "评价记录", {"企业ID": cid, "评价项目": "综合信用评价", "": ""})
exist_input_data = FIND_SINGLE_DATA_BY_REQ({"企业ID": cid, "评价年度": get_current_year()})
# 若存在填报记录根据评价ID查询评价记录该评价是否完成
if exist_input_form:
if exist_input_data:
# 已完成 本年度不能再填报
if find_rating_records({"评价ID": exist_input_form[0]["评价ID"]})[0]['进行状态'] == "完成":
if FIND_SINGLE_DATA_BY_REQ("企业数据", "评价记录", {"评价ID": exist_input_data[0]["评价ID"]})['进行状态'] == "完成":
return "本年度已评价", {}
# 未完成 返回已经填报保存的数据
else:
exist_input_form[0].pop('评价ID')
exist_input_form[0].pop('企业ID')
return "继续填报", exist_input_form[0]
exist_input_data[0].pop('评价ID')
exist_input_data[0].pop('企业ID')
return "继续填报", exist_input_data[0]
# 不存在填报记录 新生成填报记录、评价记录 返回空填报记录对象
else:
@ -187,7 +191,7 @@ def start_general_rating_script(cid):
# 深拷贝新填报记录不然保存后会生成_id
return_input = copy.deepcopy(new_input)
# 插入新填报记录``
# 插入新填报记录
insert_general_input(new_input)
# 插入新评价记录
insert_rating_records(rating)
@ -206,20 +210,24 @@ def start_general_rating_script(cid):
return "开始填报", return_input
def save_general_input_form(cid, input_form):
def save_comprehensive_credit_rating_input_form(cid, input_form):
"""
保存综合信用评价填报
保存综合信用评价填报数据
Parameters:
cid: 企业ID
input_form: 填报表单
cid: str 企业ID
input_form: dict 填报数据
Returns:
res: desc
res: None
"""
# 保存填报数据
rid = find_rating_records({"企业ID": cid, "进行状态": "进行"})[0]['评价ID']
update_general_input(rid, input_form)
# STEP_1
# 根据企业ID查询正在进行中的评价服务获取评价ID即rid
# 根据rid更新填报数据
rid = FIND_RATING_RECORDS({"企业ID": cid, "进行状态": "进行"})[0]['评价ID']
UPDATE_COMPREHENSIVE_CREDIT_INPUT_DATA(rid, input_form)
# STEP_2
# 查询评价流程
records = find_process_records('综合评价流程', {"评价ID": rid})
records = FIND_CC_RATING_PROCESS_DATA('综合评价流程', {"评价ID": rid})
if records:
record = records[0]
if not record['评价流程']['问卷填报']:
@ -275,7 +283,7 @@ def exec_general_rating_scripts(cid):
-
"""
# pre
record = find_rating_records({"企业ID": cid, "进行状态": "进行"})
record = FIND_RATING_RECORDS({"企业ID": cid, "进行状态": "进行"})
if not record:
return False, "没有正在进行的评价"

View File

@ -27,7 +27,7 @@ class InputForm:
info 信息
result 综合评价填报数据
"""
info, result = start_general_rating_script(self.cid)
info, result = start_cc_rating_impl(self.cid)
return info, result
def save_input_general(self, input_form):
@ -38,7 +38,7 @@ class InputForm:
Returns:
res: desc
"""
save_general_input_form(self.cid, input_form)
save_comprehensive_credit_rating_input_form(self.cid, input_form)
return "保存成功"
def exec_general_rating(self):