Merge branch 'CJ' into 'master'
update ESG证书 See merge request root/tfse_rating!36
This commit is contained in:
commit
038288135b
|
@ -22,6 +22,9 @@ class CertificateGenerator:
|
||||||
def gen_cover(self):
|
def gen_cover(self):
|
||||||
self.doc.drawImage(get_pic_path(pic_name='certificate_02.jpg'), 0, 0, 600, 850)
|
self.doc.drawImage(get_pic_path(pic_name='certificate_02.jpg'), 0, 0, 600, 850)
|
||||||
|
|
||||||
|
def gen_esg_cover(self):
|
||||||
|
self.doc.drawImage(get_pic_path(pic_name='certificate_esg.jpg'), 0, 0, 600, 850)
|
||||||
|
|
||||||
def gen_text(self):
|
def gen_text(self):
|
||||||
self.doc.setFont('SourceHanSerifCN-Bold', 20)
|
self.doc.setFont('SourceHanSerifCN-Bold', 20)
|
||||||
margin = (Width - len(self.text_data['企业名称']) * 19) / 2
|
margin = (Width - len(self.text_data['企业名称']) * 19) / 2
|
||||||
|
@ -37,12 +40,41 @@ class CertificateGenerator:
|
||||||
self.doc.setFont('SIMSUN', 10)
|
self.doc.setFont('SIMSUN', 10)
|
||||||
self.doc.drawString(4.6 * inch, 260, '有效日期:{}'.format(self.text_data['有效日期']))
|
self.doc.drawString(4.6 * inch, 260, '有效日期:{}'.format(self.text_data['有效日期']))
|
||||||
|
|
||||||
|
def gen_esg_text(self):
|
||||||
|
# 企业名称
|
||||||
|
self.doc.setFont('SourceHanSerifCN-Bold', 20)
|
||||||
|
margin = (Width - len(self.text_data['企业名称']) * 19) / 2
|
||||||
|
self.doc.drawString(margin, 450, self.text_data['企业名称'])
|
||||||
|
# 统一社会信用代码
|
||||||
|
self.doc.setFont('SIMSUN', 12, leading=5)
|
||||||
|
self.doc.drawString(2.8 * inch, 433, '统一社会信用代码:{}'.format(self.text_data['统一社会信用代码']))
|
||||||
|
# ESG得分
|
||||||
|
self.doc.setFont('SIMSUN', 12, leading=5)
|
||||||
|
self.doc.setFillColor('#B79249')
|
||||||
|
self.doc.drawString(5.35 * inch, 357, '{}'.format(self.text_data['ESG得分']))
|
||||||
|
# 评价等级
|
||||||
|
self.doc.setFont('SourceHanSerifCN-Bold', 35)
|
||||||
|
self.doc.drawString(3.2 * inch, 285, '{}级企业'.format(self.text_data['评价等级']))
|
||||||
|
# 证书编号
|
||||||
|
self.doc.setFont('SIMSUN', 10)
|
||||||
|
self.doc.setFillColor('black')
|
||||||
|
self.doc.drawString(1.28 * inch, 260, '证书编号:{}'.format(self.text_data['证书编号']))
|
||||||
|
# 有效日期
|
||||||
|
self.doc.setFont('SIMSUN', 10)
|
||||||
|
self.doc.drawString(4.6 * inch, 260, '有效日期:{}'.format(self.text_data['有效日期']))
|
||||||
|
|
||||||
def gen(self):
|
def gen(self):
|
||||||
self.gen_cover()
|
self.gen_cover()
|
||||||
self.gen_text()
|
self.gen_text()
|
||||||
self.doc.showPage()
|
self.doc.showPage()
|
||||||
self.doc.save()
|
self.doc.save()
|
||||||
|
|
||||||
|
def gen_esg(self):
|
||||||
|
self.gen_esg_cover()
|
||||||
|
self.gen_esg_text()
|
||||||
|
self.doc.showPage()
|
||||||
|
self.doc.save()
|
||||||
|
|
||||||
|
|
||||||
if __name__ == '__main__':
|
if __name__ == '__main__':
|
||||||
data = {
|
data = {
|
||||||
|
|
|
@ -32,6 +32,22 @@ def upload_pdf(name):
|
||||||
return False
|
return False
|
||||||
|
|
||||||
|
|
||||||
|
def upload_esg_pdf(name):
|
||||||
|
"""
|
||||||
|
根据名称保存该企业证书
|
||||||
|
"""
|
||||||
|
try:
|
||||||
|
path = get_gen_report_path(name=name)
|
||||||
|
database = '评价'
|
||||||
|
collection = 'ESG评价证书'
|
||||||
|
fs = GridFS(client[database], collection)
|
||||||
|
content = open(path, 'rb').read()
|
||||||
|
pdf_id = fs.put(content, content_type='application/pdf', filename=name)
|
||||||
|
return str(pdf_id)
|
||||||
|
except Exception:
|
||||||
|
return False
|
||||||
|
|
||||||
|
|
||||||
def download_pdf(pdf_id):
|
def download_pdf(pdf_id):
|
||||||
"""
|
"""
|
||||||
根据pdf_id查询pdf文件
|
根据pdf_id查询pdf文件
|
||||||
|
|
|
@ -7,7 +7,7 @@ from flask import Blueprint, request
|
||||||
from Certificate.PdfCertificate import CertificateGenerator
|
from Certificate.PdfCertificate import CertificateGenerator
|
||||||
from Certificate.scripts.common import get_certificate_data
|
from Certificate.scripts.common import get_certificate_data
|
||||||
from Certificate.scripts.path_tool import get_gen_report_path
|
from Certificate.scripts.path_tool import get_gen_report_path
|
||||||
from Certificate.db import upload_pdf
|
from Certificate.db import upload_pdf, upload_esg_pdf
|
||||||
from common.scripts import verify_token
|
from common.scripts import verify_token
|
||||||
|
|
||||||
certificate_route = Blueprint('certificate', __name__)
|
certificate_route = Blueprint('certificate', __name__)
|
||||||
|
@ -17,11 +17,12 @@ certificate_route = Blueprint('certificate', __name__)
|
||||||
@verify_token
|
@verify_token
|
||||||
def gen_certificate():
|
def gen_certificate():
|
||||||
"""
|
"""
|
||||||
描述
|
生成综合信用评价证书
|
||||||
Parameters:
|
Parameters:
|
||||||
company str 企业名称
|
company str 企业名称
|
||||||
cid str 企业ID
|
cid str 企业ID
|
||||||
rid str 评价ID
|
rid str 评价ID
|
||||||
|
type str 证书类型
|
||||||
Returns:
|
Returns:
|
||||||
result: 证书FileID
|
result: 证书FileID
|
||||||
"""
|
"""
|
||||||
|
@ -37,6 +38,9 @@ def gen_certificate():
|
||||||
# 生成PDF报告文件,以时间戳命名,临时存储
|
# 生成PDF报告文件,以时间戳命名,临时存储
|
||||||
certificate_file_name = '{}_{}.pdf'.format(req_body['company'], datetime.datetime.now().strftime('%Y%m%d'))
|
certificate_file_name = '{}_{}.pdf'.format(req_body['company'], datetime.datetime.now().strftime('%Y%m%d'))
|
||||||
pdf_report = CertificateGenerator(name=certificate_file_name, text_data=param)
|
pdf_report = CertificateGenerator(name=certificate_file_name, text_data=param)
|
||||||
|
if len(param) > 5:
|
||||||
|
pdf_report.gen_esg()
|
||||||
|
else:
|
||||||
pdf_report.gen()
|
pdf_report.gen()
|
||||||
|
|
||||||
return certificate_file_name
|
return certificate_file_name
|
||||||
|
@ -50,6 +54,9 @@ def gen_certificate():
|
||||||
res: 处理成功返回报告FileID;处理失败返回False
|
res: 处理成功返回报告FileID;处理失败返回False
|
||||||
"""
|
"""
|
||||||
# 保存PDF报告文件,删除临时存储的报告
|
# 保存PDF报告文件,删除临时存储的报告
|
||||||
|
if len(text_data) > 5:
|
||||||
|
file_id = upload_esg_pdf(param)
|
||||||
|
else:
|
||||||
file_id = upload_pdf(param)
|
file_id = upload_pdf(param)
|
||||||
certificate_path = get_gen_report_path(name=param)
|
certificate_path = get_gen_report_path(name=param)
|
||||||
os.remove(certificate_path)
|
os.remove(certificate_path)
|
||||||
|
|
|
@ -14,20 +14,54 @@ def get_certificate_data(param):
|
||||||
Returns:
|
Returns:
|
||||||
result: dict 证书所需数据
|
result: dict 证书所需数据
|
||||||
"""
|
"""
|
||||||
|
def general():
|
||||||
|
"""
|
||||||
|
获取综合信用评价证书所需数据
|
||||||
|
Parameters:
|
||||||
|
-
|
||||||
|
Returns:
|
||||||
|
result: dict 证书所需数据
|
||||||
|
"""
|
||||||
# 企业基本信息
|
# 企业基本信息
|
||||||
data_01 = find_tfse_db(db="企业", col="公司基本信息", query={'企业ID': param['cid']})[0]
|
data_01 = find_tfse_db(db="企业", col="公司基本信息", query={'企业ID': param['cid']})[0]
|
||||||
# 评价结果
|
# 评价结果
|
||||||
data_02 = find_tfse_db(db="评价", col="评价结果", query={"评价ID": param['rid']})[0]
|
data_02 = find_tfse_db(db="评价", col="评价结果", query={"评价ID": param['rid']})[0]
|
||||||
|
|
||||||
info = dict()
|
info = dict()
|
||||||
info['企业名称'] = param['company']
|
info['企业名称'] = param['company']
|
||||||
info['统一社会信用代码'] = data_01['工商信息']['纳税人识别号']
|
info['统一社会信用代码'] = data_01['工商信息']['纳税人识别号']
|
||||||
info['企业级别'] = data_02['信用等级']
|
info['企业级别'] = data_02['信用等级']
|
||||||
info['证书编号'] = generate_number()
|
info['证书编号'] = generate_number()
|
||||||
info['有效日期'] = effective_date()
|
info['有效日期'] = effective_date()
|
||||||
|
|
||||||
return info
|
return info
|
||||||
|
|
||||||
|
def esg():
|
||||||
|
"""
|
||||||
|
获取esg评价证书所需数据
|
||||||
|
Parameters:
|
||||||
|
-
|
||||||
|
Returns:
|
||||||
|
result: dict 证书所需数据
|
||||||
|
"""
|
||||||
|
# 企业基本信息
|
||||||
|
data_01 = find_tfse_db(db="企业", col="公司基本信息", query={'企业ID': param['cid']})[0]
|
||||||
|
# 评价结果
|
||||||
|
data_02 = find_tfse_db(db="评价", col="ESG评价结果", query={"评价ID": param['rid']})[0]
|
||||||
|
info = dict()
|
||||||
|
info['企业名称'] = param['company']
|
||||||
|
info['统一社会信用代码'] = data_01['工商信息']['纳税人识别号']
|
||||||
|
info['ESG得分'] = data_02['ESG得分']
|
||||||
|
info['评价等级'] = data_02['评价等级']
|
||||||
|
info['证书编号'] = generate_esg_number()
|
||||||
|
info['有效日期'] = effective_date()
|
||||||
|
return info
|
||||||
|
|
||||||
|
if 'type' in param:
|
||||||
|
result = esg()
|
||||||
|
else:
|
||||||
|
result = general()
|
||||||
|
|
||||||
|
return result
|
||||||
|
|
||||||
|
|
||||||
def generate_number():
|
def generate_number():
|
||||||
"""
|
"""
|
||||||
|
@ -47,6 +81,24 @@ def generate_number():
|
||||||
return number
|
return number
|
||||||
|
|
||||||
|
|
||||||
|
def generate_esg_number():
|
||||||
|
"""
|
||||||
|
生成esg证书编号
|
||||||
|
Parameters:
|
||||||
|
-
|
||||||
|
Returns:
|
||||||
|
result: 证书编号
|
||||||
|
"""
|
||||||
|
project_type = 'ESG'
|
||||||
|
project_number = '02'
|
||||||
|
project_time = str(datetime.now().strftime('%Y%m%d%H%M'))
|
||||||
|
project_code = generate_code(project_type, project_number, project_time)
|
||||||
|
|
||||||
|
number = project_type + project_number + project_time + project_code
|
||||||
|
|
||||||
|
return number
|
||||||
|
|
||||||
|
|
||||||
def generate_code(param1, param2, param3):
|
def generate_code(param1, param2, param3):
|
||||||
"""
|
"""
|
||||||
生成校验码(4位)
|
生成校验码(4位)
|
||||||
|
|
Binary file not shown.
After Width: | Height: | Size: 1.2 MiB |
Loading…
Reference in New Issue