1. 评价记录接口
This commit is contained in:
王思川 2022-05-18 16:12:33 +08:00
parent 8a121b9d39
commit 6244d89644
3 changed files with 77 additions and 10 deletions

View File

@ -12,7 +12,7 @@ class RatingUtils(object):
@staticmethod
def get_current_year():
"""获取当前年度"""
current_year = time.strftime("%Y", time.localtime()) + ""
current_year = time.strftime("%Y", time.localtime())
return current_year
@staticmethod
@ -57,13 +57,39 @@ class CheckCCRatingInCurrentYear(DataProcess):
def extract(self):
input_data = DB_TFSE.find_single_data(
"综信评价数据",
"填报数据",
{"企业ID": self.target.cid, "评价年度": RatingUtils.get_current_year()},
["评价ID", "企业名称", "评价年度", "行业选择", "经营问卷", "财务填报"]
# 检查cid是否正确
cid = DB_TFSE.find_single_column(
"企业数据",
"企业数据_更新汇总",
{"企业ID": self.target.cid},
"企业ID"
)
assert cid, "不存在该企业ID: {}".format(self.target.cid)
# 判断本年度是否有评价记录
current_year = RatingUtils.get_current_year()
gte_time = current_year + '-01-01 00:00:00'
lte_time = current_year + '-12-31 23:59:59'
record = DB_TFSE.find_data_with_aggregate(
"企业数据",
"评价记录",
[
{'$match': {
'企业ID': self.target.cid,
'评价项目': '综合信用评价',
'开始填报时间': {'$gte': gte_time, '$lte': lte_time}
}},
{'$project': {
'_id': 0,
'评价ID': 1
}}
]
)
assert not record, "已有评价记录"
def transform(self):
pass
@ -77,7 +103,6 @@ class ProcessNewCCRatingRecord(DataProcess):
pass
def transform(self):
self.target.rid = RatingUtils.gen_new_rid()
self.target.project = '综合信用评价'
self.target.methods = '企业申报'
@ -91,7 +116,6 @@ class ProcessNewCCRatingRecord(DataProcess):
self.target.finish_date = None
def load(self):
DB_TFSE.insert_single_data(
'企业数据',
'评价记录',
@ -101,8 +125,23 @@ class ProcessNewCCRatingRecord(DataProcess):
class RatingRecordDataJob(RatingRecord):
def create(self):
def check(self):
data_job = DataJob(
instance=self,
title="检查评价记录",
job_type="处理准备",
status="正常",
detail="企业ID->{}; 企业名称->{}; ".format(self.cid, self.company)
)
data_job.processes = [
CheckCCRatingInCurrentYear,
]
data_job.start()
def create(self):
data_job = DataJob(
instance=self,
title="新增评价记录",
@ -112,6 +151,7 @@ class RatingRecordDataJob(RatingRecord):
)
data_job.processes = [
CheckCCRatingInCurrentYear,
ProcessNewCCRatingRecord
]

View File

@ -72,8 +72,13 @@ class DataJob(SpecObject):
try:
process_instance = process(target=self.instance)
process_instance.start()
except AssertionError as e:
append_detail = '{}; '.format(e.__str__())
self.detail = self.detail + append_detail
self.__save_data_job_log()
raise APIReturnError(error_info=e.__str__(), status_code=202)
except Exception as e:
template = "数据处理流程异常, 报错函数->{}, 异常类型->{}, 错误描述->{}, 异常追溯->{}; "
template = "数据处理流程异常, 报错流程->{}, 异常类型->{}, 错误描述->{}, 异常追溯->{}; "
error_detail = template.format(process.__name__, type(e).__name__, e.__str__(), traceback.format_exc())
self.status = "异常"
self.detail = self.detail + error_detail

View File

@ -13,6 +13,28 @@ from Implements.Im1_CompanyData.C0_RatingRecordDataJob import RatingRecordDataJo
rating_records_route = Blueprint('rating_records', __name__)
@rating_records_route.route('/check', methods=['GET'])
@verify_token
def check_route():
"""检查评价记录"""
try:
args = request.args
RouteUtil.require_params_check(args, ['cid', 'company_name'])
data_job = RatingRecordDataJob()
data_job.cid, data_job.company = args['cid'], args['company_name']
data_job.check()
return {"info": "没有评价记录"}, 200
except APIReturnError as e:
return {"info": e.error_info}, e.status_code
except ReturnConditionCheckFailed as e:
return {"info": e.failed_info}, e.status_code
@rating_records_route.route('/create', methods=['GET'])
@verify_token
def create_route():