138 lines
4.9 KiB
Python
138 lines
4.9 KiB
Python
|
from Utils.ObjUtil import SpecObject
|
||
|
from Utils.ValidateUtil import ValidateAttr, Validate
|
||
|
|
||
|
RATING_RESULT = ["AAA", "AA+", "AA", "AA-", "A+", "A", "A-", "BBB+", "BBB", "BBB-", "BB+", "BB",
|
||
|
"BB-", "B+", "B", "B-", "CCC+", "CCC", "CCC-", "CC+", "CC", "CC-", "C+", "C", "C-", "D"]
|
||
|
|
||
|
|
||
|
class SearchRatingApi(SpecObject):
|
||
|
"""服务查询类"""
|
||
|
|
||
|
class SearchBody(SpecObject):
|
||
|
"""查询体"""
|
||
|
cid = ValidateAttr(field='cid', type=str)
|
||
|
rid = ValidateAttr(field='rid', type=str)
|
||
|
name = ValidateAttr(field='name', type=str)
|
||
|
project = ValidateAttr(field='project', type=str, in_list=['综合信用评价', 'ESG评价'])
|
||
|
method = ValidateAttr(field='method', type=str, in_list=['企业申报', '跟踪评价'])
|
||
|
status = ValidateAttr(field='status', type=str, in_list=['完成', '进行'])
|
||
|
result = ValidateAttr(field='result', type=str, in_list=RATING_RESULT)
|
||
|
completion_date = ValidateAttr(field='completion_date', type=str, func=Validate.date_format)
|
||
|
|
||
|
fields_map = {
|
||
|
"cid": "企业ID",
|
||
|
"rid": "评价ID",
|
||
|
"name": "企业名称",
|
||
|
"project": "评价项目",
|
||
|
"method": "评价方式",
|
||
|
"status": "进行状态",
|
||
|
"result": "评价结果",
|
||
|
"time": "评价时间"
|
||
|
}
|
||
|
|
||
|
def make_search_body(self):
|
||
|
""""""
|
||
|
search_keys = list(self.__dict__.keys())
|
||
|
body = dict()
|
||
|
|
||
|
if "cid" in search_keys:
|
||
|
body['企业ID'] = self.cid
|
||
|
|
||
|
if "rid" in search_keys:
|
||
|
body['评价ID'] = self.cid
|
||
|
|
||
|
if "name" in search_keys:
|
||
|
body['企业名称'] = {"$regex": self.name}
|
||
|
|
||
|
if "project" in search_keys:
|
||
|
body['评价项目'] = {"$regex": self.project}
|
||
|
|
||
|
if "method" in search_keys:
|
||
|
body['评价方式'] = {"$regex": self.method}
|
||
|
|
||
|
if "status" in search_keys:
|
||
|
body['进行状态'] = {"$regex": self.status}
|
||
|
|
||
|
if "result" in search_keys:
|
||
|
body['评价结果'] = {"$regex": self.result}
|
||
|
|
||
|
if "time" in search_keys:
|
||
|
body['评价完成日期'] = {"$regex": self.completion_date}
|
||
|
|
||
|
return body
|
||
|
|
||
|
class SortBody(SpecObject):
|
||
|
""""""
|
||
|
field = ValidateAttr(field='field', type=str)
|
||
|
sort = ValidateAttr(field='sort', in_list=["asc", "desc"])
|
||
|
|
||
|
fields_map = {
|
||
|
"field": "排序字段",
|
||
|
"sort": "排序方式"
|
||
|
}
|
||
|
|
||
|
def make_sort_body(self):
|
||
|
""""""
|
||
|
if self.__dict__ != {}:
|
||
|
columns_map = {
|
||
|
"企业ID": "企业ID",
|
||
|
"评价ID": "评价ID",
|
||
|
"企业名称": "企业名称",
|
||
|
"评价项目": "评价项目",
|
||
|
"评价方式": "评价方式",
|
||
|
"进行状态": "进行状态",
|
||
|
"评价结果": "评价结果",
|
||
|
"评价完成日期": "评价完成日期"
|
||
|
}
|
||
|
asc_or_desc = 1 if self.sort == "asc" else -1
|
||
|
sort_column = columns_map[self.field]
|
||
|
body = {sort_column: asc_or_desc}
|
||
|
else:
|
||
|
body = {"评价完成时间": -1}
|
||
|
|
||
|
return body
|
||
|
|
||
|
search = ValidateAttr(field='search', type=SearchBody)
|
||
|
sort = ValidateAttr(field='sort', type=SortBody)
|
||
|
page_size = ValidateAttr(field='page_size', type=int)
|
||
|
page_no = ValidateAttr(field='page_no', type=int)
|
||
|
|
||
|
fields_map = {
|
||
|
"search": "搜索体",
|
||
|
"sort": "排序",
|
||
|
"page_size": "显示数量",
|
||
|
"page_no": "页码"
|
||
|
}
|
||
|
|
||
|
def condition_search(self):
|
||
|
"""条件查询"""
|
||
|
|
||
|
|
||
|
class SearchRatingResult(SpecObject):
|
||
|
"""服务查询返回结果"""
|
||
|
cid = ValidateAttr(field='cid', type=str)
|
||
|
rid = ValidateAttr(field='rid', type=str)
|
||
|
name = ValidateAttr(field='name', type=str)
|
||
|
project = ValidateAttr(field='project', type=str, in_list=['综合信用评价', 'ESG评价'])
|
||
|
method = ValidateAttr(field='method', type=str, in_list=['企业申报', '跟踪评价'])
|
||
|
status = ValidateAttr(field='status', type=str, in_list=['完成', '进行'])
|
||
|
result = ValidateAttr(field='result', type=str, in_list=RATING_RESULT, default=None)
|
||
|
completion_date = ValidateAttr(field='completion_date', type=str, func=Validate.date_format, default=None)
|
||
|
report_fid = ValidateAttr(field='report_fid', type=str, default=None)
|
||
|
certificate_fid = ValidateAttr(field='certificate_fid', type=str, default=None)
|
||
|
|
||
|
fields_map = {
|
||
|
"cid": "企业ID",
|
||
|
"rid": "评价ID",
|
||
|
"name": "企业名称",
|
||
|
"project": "评价项目",
|
||
|
"method": "评价方式",
|
||
|
"status": "进行状态",
|
||
|
"result": "评价结果",
|
||
|
"completion_date": "评价完成日期",
|
||
|
"report_fid": "报告fid",
|
||
|
"certificate_fid": "证书fid"
|
||
|
}
|
||
|
|
||
|
|