Commit 77e60885 by dong

fix20221127

parent a24451db
......@@ -5,5 +5,6 @@ api_manage = Blueprint("api_manage", __name__)
from . import view
from . import siku_view
from . import project_manager
from . import statistic_analysis_view
"招商资源管理"
......@@ -700,9 +700,9 @@ def download_project_template1():
if flag == 1:
project_template = "http://39.100.39.50:8008/aaa_statics/template_file/山西省各市完成情况表.xlsx"
if flag == 2:
project_template = "http://39.100.39.50:8008/aaa_statics/template_file/晋城市及县区年度目标表.xls"
project_template = "http://39.100.39.50:8008/aaa_statics/template_file/晋城市及县区年度目标表.xlsx"
if flag == 3:
project_template = "http://39.100.39.50:8008/aaa_statics/template_file/晋城市及县区固投到位资金完成情况.xls"
project_template = "http://39.100.39.50:8008/aaa_statics/template_file/晋城市及县区固投到位资金完成情况.xlsx"
return jsonify(code=RET.OK, data=project_template, msg="模板下载成功!")
......@@ -824,6 +824,10 @@ def upload_shanxi_data():
@api_manage.route("/ShanxiDataList", methods=["POST"])
def shanxi_data_list():
token = request.headers['token']
req_dic = request.get_json()
page = req_dic['page']
per_page = req_dic['per_page']
try:
user_obj = verify_token(token)
user_name = user_obj.real_name
......@@ -850,14 +854,19 @@ def shanxi_data_list():
"upload_unit": target_obj.upload_unit,
"upload_people": target_obj.upload_people}
data_li.append(data)
return jsonify(code=RET.OK, data=data_li, msg='获取成功!')
data_size = len(data_li)
start = (page - 1) * per_page
end = page * per_page
data_li = data_li[start:end]
return jsonify(code=RET.OK, data={"data_li": data_li, "data_size": data_size}, msg='获取成功!')
except Exception as e:
db.session.rollback()
current_app.logger.error(e)
return jsonify(code=RET.DBERR, msg="查询数据库错误!")
# 新增/编辑山西指标上传页数据
# 新增/编辑山西指标数据
@api_manage.route("/AddEditShanxiData", methods=["POST"])
def add_shanxi_data():
token = request.headers['token']
......@@ -884,6 +893,8 @@ def add_shanxi_data():
arrive_money = data['arrive_money'] # 资金到位
arrive_target_money = data['arrive_target_money'] # 目标资金到位
arrive_finish_rate = data['arrive_finish_rate'] # 计划投资额完成率
add_num = 0
update_num = 0
try:
target_obj = ShanxiTarget.query.filter_by(district_name=district_name, data_time=data_time, is_delete=0).first()
if target_obj: # 更新
......@@ -902,6 +913,7 @@ def add_shanxi_data():
target_obj.arrive_target_money = arrive_target_money
target_obj.arrive_finish_rate = arrive_finish_rate
db.session.commit()
update_num += 1
else:
target_obj = ShanxiTarget(
is_delete=0,
......@@ -922,13 +934,14 @@ def add_shanxi_data():
)
db.session.add(target_obj)
db.session.commit()
add_num += 1
continue
except Exception as e:
# 表示操作失败,回滚数据库操作
db.session.rollback()
current_app.logger.error(e)
return jsonify(code=RET.DBERR, msg="数据库异常,新增失败!")
return jsonify(code=RET.OK, msg='新增成功!')
return jsonify(code=RET.OK, msg='保存成功!')
# 详情数据列表(某周期山西各地市指标数据列表展示)
......@@ -937,8 +950,6 @@ def shanxi_data_detail():
token = request.headers['token']
try:
user_obj = verify_token(token)
user_name = user_obj.real_name
user_unity = user_obj.belong_organization
except Exception as e:
current_app.logger.error(e)
return jsonify(code=RET.SESSIONERR, msg="进行操作时用户信息校验失败,请重新登陆后尝试!")
......@@ -947,6 +958,7 @@ def shanxi_data_detail():
try:
target_obj_li = ShanxiTarget.query.filter_by(data_time=data_time, is_delete=0).all()
data = [{
"id": target_obj.id,
"data_time": target_obj.data_time,
"upload_time": target_obj.upload_time,
"upload_unit": target_obj.upload_unit,
......@@ -1090,7 +1102,7 @@ def upload_jc_data():
return jsonify(code=RET.SESSIONERR, msg="进行操作时用户信息校验失败,请重新登陆后尝试!")
# 上传的文件
file = request.files['file']
year = request.files['year'] # 年份,如'2022年'
year = request.form['year'] # 年份,如'2022年'
print(file.filename) # 打印文件名
upload_time = datetime.now().strftime("%Y-%m-%d %H:%M:%S")
......@@ -1195,7 +1207,6 @@ def add_jc_data():
data_list = req_dic["data_list"]
upload_time = datetime.now().strftime("%Y-%m-%d %H:%M:%S")
# current_year = str(datetime.now().year) + '年'
for data in data_list:
year = data['year'] # 所属年份
district_name = data['district_name'] # 区县名称
......@@ -1237,7 +1248,7 @@ def add_jc_data():
db.session.rollback()
current_app.logger.error(e)
return jsonify(code=RET.DBERR, msg="数据库异常,新增失败!")
return jsonify(code=RET.OK, msg='新增成功!')
return jsonify(code=RET.OK, msg='保存成功!')
# 概览数据列表(晋城指标上传页数据列表展示)
......@@ -1253,6 +1264,8 @@ def jc_data_list():
return jsonify(code=RET.SESSIONERR, msg="进行操作时用户信息校验失败,请重新登陆后尝试!")
req_dic = request.get_json()
year = req_dic['year']
page = req_dic["page"]
per_page = req_dic["per_page"]
current_year = datetime.now().year
try:
target_obj_list = JcTarget.query.filter(
......@@ -1263,6 +1276,7 @@ def jc_data_list():
# 收集上传周期
data_li = []
data_size = ''
for year in list(year_set):
target_obj = JcTarget.query.filter_by(year=year, is_delete=0).first()
data = {"year": target_obj.year,
......@@ -1271,7 +1285,12 @@ def jc_data_list():
"upload_unit": target_obj.upload_unit,
"upload_people": target_obj.upload_people}
data_li.append(data)
return jsonify(code=RET.OK, data=data_li, msg='获取成功!')
data_size = len(data_li)
start = (page - 1) * per_page
end = page * per_page
data_li = data_li[start:end]
return jsonify(code=RET.OK, data={"data_li": data_li, "data_size": data_size}, msg='获取成功!')
except Exception as e:
db.session.rollback()
current_app.logger.error(e)
......@@ -1294,6 +1313,7 @@ def jc_data_detail():
try:
target_obj_li = JcTarget.query.filter_by(year=year, is_delete=0).all()
data = [{
"id": target_obj.id,
"year": target_obj.year,
"upload_time": target_obj.upload_time,
"upload_unit": target_obj.upload_unit,
......@@ -1417,7 +1437,7 @@ def download_jc_data():
"""固定资产投资项目资金到位"""
# 上传山西省地市指标
# 上传固定资产投资项目资金到位
@api_manage.route("/UploadMoneyArrive", methods=["POST"])
def upload_money_arrive():
token = request.headers['token']
......@@ -1455,7 +1475,7 @@ def upload_money_arrive():
msg="表格内无有效数据!请尝试 <清空浏览器缓存> 后下载最新模板,根据模板提示信息编辑数据后再次上传。(注:第三行为首行有效数据不能为空、第一行和第二行无法读取。)")
try:
district_name = row_content[0] # 区县名称
arrive_money = row_content[1] # 到位金额
arrive_money = round(row_content[1], 2) # 到位金额
except Exception as e:
# 表示操作失败,回滚数据库操作
current_app.logger.error(e)
......@@ -1479,7 +1499,7 @@ def upload_money_arrive():
continue
else:
# 写入数据库
target_obj = ShanxiTarget(
target_obj = MoneyArrive(
file_name=data_time + '固投资金到位情况',
is_delete=0,
data_time=data_time,
......@@ -1506,7 +1526,7 @@ def upload_money_arrive():
return jsonify(code=RET.DATAERR, msg='无新数据上传。')
# 概览数据列表(山西指标上传页数据列表展示)
# 概览数据列表(固定资产投资项目资金到位)
@api_manage.route("/MoneyArriveList", methods=["POST"])
def money_arrive_list():
token = request.headers['token']
......@@ -1519,6 +1539,8 @@ def money_arrive_list():
return jsonify(code=RET.SESSIONERR, msg="进行操作时用户信息校验失败,请重新登陆后尝试!")
req_dic = request.get_json()
year = req_dic['year']
page = req_dic["page"]
per_page = req_dic["per_page"]
current_year = datetime.now().year
try:
target_obj_list = MoneyArrive.query.filter(
......@@ -1528,6 +1550,7 @@ def money_arrive_list():
# 收集上传周期
data_li = []
data_size = ''
for data_time in list(data_time_set):
target_obj = MoneyArrive.query.filter_by(data_time=data_time, is_delete=0).first()
data = {"file_name": target_obj.file_name,
......@@ -1536,14 +1559,20 @@ def money_arrive_list():
"upload_unit": target_obj.upload_unit,
"upload_people": target_obj.upload_people}
data_li.append(data)
return jsonify(code=RET.OK, data=data_li, msg='获取成功!')
data_size = len(data_li)
start = (page - 1) * per_page
end = page * per_page
data_li = data_li[start:end]
return jsonify(code=RET.OK, data={"data_li": data_li, "data_size": data_size}, msg='获取成功!')
except Exception as e:
db.session.rollback()
current_app.logger.error(e)
return jsonify(code=RET.DBERR, msg="查询数据库错误!")
# 新增/编辑山西指标上传页数据
# 新增/编辑固定资产投资项目资金到位数据
@api_manage.route("/AddEditMoneyArrive", methods=["POST"])
def add_edit_money_arrive():
token = request.headers['token']
......@@ -1557,30 +1586,31 @@ def add_edit_money_arrive():
req_dic = request.get_json()
data_list = req_dic["data_list"]
upload_time = datetime.now().strftime("%Y-%m-%d %H:%M:%S")
for data in data_list:
data_time = data['data_time'] # 数据年份
district_name = data['district_name'] # 区县名称
money_arrive = data['money_arrive'] # 签约金额
money_arrive = float(data['money_arrive']) # 签约金额
try:
target_obj = MoneyArrive.query.filter_by(district_name=district_name, data_time=data_time, is_selete=0).first()
target_obj = MoneyArrive.query.filter_by(district_name=district_name, data_time=data_time, is_delete=0).first()
if target_obj: # 更新
target_obj.data_time = data_time
# target_obj.file_name = data_time + "固投资金到位情况",
target_obj.upload_time = upload_time
target_obj.upload_unit = user_unity
target_obj.upload_people = user_name
target_obj.district_name = district_name
target_obj.money_arrive = money_arrive
target_obj.arrive_money = money_arrive
db.session.commit()
else:
target_obj = MoneyArrive(
is_delete=0,
data_time=data_time,
file_name=data_time + "固投资金到位情况",
upload_time=upload_time,
upload_unit=user_unity,
upload_people=user_name,
district_name=district_name,
money_arrive=money_arrive,
arrive_money=money_arrive,
)
db.session.add(target_obj)
db.session.commit()
......@@ -1593,7 +1623,7 @@ def add_edit_money_arrive():
return jsonify(code=RET.OK, msg='新增成功!')
# 详情数据列表(某周期山西各地市指标数据列表展示)
# 详情数据列表(某周期固定资产投资项目资金到位列表展示)
@api_manage.route("/MoneyArriveDetail", methods=["POST"])
def arrive_money_detail():
token = request.headers['token']
......@@ -1609,12 +1639,13 @@ def arrive_money_detail():
try:
target_obj_li = MoneyArrive.query.filter_by(data_time=data_time, is_delete=0).all()
data = [{
"id": target_obj.id,
"data_time": target_obj.data_time,
"upload_time": target_obj.upload_time,
"upload_unit": target_obj.upload_unit,
"upload_people": target_obj.upload_people,
"district_name": target_obj.district_name,
"money_arrive": target_obj.money_arrive,
"money_arrive": target_obj.arrive_money,
} for target_obj in target_obj_li]
return jsonify(code=RET.OK, data=data, msg="获取成功!")
except Exception as e:
......@@ -1624,7 +1655,7 @@ def arrive_money_detail():
return jsonify(code=RET.DBERR, msg="数据库异常")
# 下载数据详情
# 下载数据详情(固定资产投资项目资金到位)
@api_manage.route("/DownloadMoneyArrive", methods=["POST"])
def download_money_arrive():
token = request.headers['token']
......@@ -1649,8 +1680,8 @@ def download_money_arrive():
data_list = []
district_name = target_obj.district_name
data_list.append(district_name) # 区县名称
money_arrive = target_obj.money_arrive
data_list.append(money_arrive) # 签约金额
arrive_money = target_obj.arrive_money
data_list.append(arrive_money) # 签约金额
target_data_list.append(data_list)
except Exception as e:
current_app.logger.error(e)
......@@ -1685,7 +1716,7 @@ def download_money_arrive():
return jsonify(code=RET.DBERR, msg="批量导出操作失败!")
# 删除某时间周期的数据
# 删除某时间周期的数据(固定资产投资项目资金到位)
@api_manage.route("/DeleteMoneyArrive", methods=["POST"])
def delete_money_arrive():
token = request.headers['token']
......
......@@ -597,9 +597,9 @@ def add_project():
other_source = req_dic['other_source']
remark = req_dic['remark']
if not all([project_name, investor_name, investor_district, project_type,
investment_volume, project_info, thread_people, thread_people_unity,
thread_people_mobile, thread_progress, investment_volume1, project_info1,
stop_reason, thread_source, cooperation_way, other_source, remark]):
investment_volume, thread_people, thread_people_unity,
thread_people_mobile, thread_progress, investment_volume1,
thread_source, cooperation_way, remark]):
return jsonify(code=RET.NODATA, msg='无有效数据!')
upload_time = datetime.now().strftime("%Y/%m/%d")
......
......@@ -44,7 +44,7 @@ def statistic_shanxi_data():
"district_name": target_obj.district_name,
"sign_money": str(target_obj.sign_money / 10000) + '亿',
"sign_target_money": str(target_obj.sign_target_money / 10000) + '亿',
"sign_finish_rate": str(target_obj.sign_finish_rate / 10000) + '%',
"sign_finish_rate": str(target_obj.sign_finish_rate / 100) + '%',
} for target_obj in target_obj_li]
data1 = sorted(data, key=lambda x: x['sign_money'], reverse=True)
data2 = sorted(data1, key=lambda x: x['sign_finish_rate'], reverse=True)
......@@ -73,24 +73,10 @@ def statistic_shanxi_data():
return jsonify(code=RET.DBERR, msg="查询数据库错误!")
# 晋城市数据统计
@api_manage.route("/StatisticJcData", methods=["POST"])
def statistic_jc_data():
req_dic = request.get_json()
flag = req_dic['flag']
current_year = datetime.now().year
district_li = ["全市", "城区", "泽州县", "高平市", "阳城县", "陵川县",
"沁水县", "晋城经济技术开发区", "高平经济技术开发区",
"阳城经济技术开发区", "沁水经济技术开发区",
"陵川生态文化旅游示范区"]
# 项目签约完成率
def get_data1(district_li, current_year):
data_li1 = []
data_li2 = []
data_li3 = []
data_li4 = []
data_li5 = []
data_li6 = []
try:
# 一。项目签约完成率(签约项目完成率:完成率(%):签约金额(亿元)/ 年度目标(亿元))
for district in district_li:
project_obj_list = ProjectManagement.query.filter(
ProjectManagement.sign_time.like('%{}%'.format(str(current_year))),
......@@ -112,21 +98,21 @@ def statistic_jc_data():
data = {
"district": district,
"rate": investment_volume / year_target if year_target and year_target != 0 else 0
"rate": round(investment_volume / year_target, 2) * 100 if year_target and year_target != 0 else 0
}
data_li1.append(data)
continue
# 项目签约情况得分=完成率(%)*赋分(15 上传后获取)如果小于赋分(15 上传后获取),
# 则输出完成率(%)*赋分(15 上传后获取)的结果,否则输出赋分(15)
grade_li1 = []
for data in data_li1:
grade = data["rate"] * 15
if grade < 15:
grade_li1.append({"district": data["district"], "grade": grade})
else:
grade_li1.append({"district": data["district"], "grade": 15})
except Exception as e:
current_app.logger.error(e)
print('项目签约完成率计算出错', e)
return 'error'
return data_li1
# 二。项目开工率(开工率进度:当年签约当年开工个数/签约个数)
# 项目开工率
def get_data2(district_li, current_year):
data_li2 = []
try:
for district in district_li:
# 签约项目个数
sign_num = ProjectManagement.query.filter(
......@@ -141,20 +127,21 @@ def statistic_jc_data():
data = {
"district": district,
"rate": start_num / sign_num if sign_num and sign_num != 0 else 0
"rate": round(start_num / sign_num, 2) * 100 if sign_num and sign_num != 0 else 0
}
data_li2.append(data)
continue
# 项目开工率情况得分=如果开工率进度小于0.4,则输出开工率进度*赋分(5分)/0.4,否则输出赋分(5分);
grade_li2 = []
for data in data_li2:
grade = data["rate"]
if grade < 0.4:
grade_li2.append({"district": data["district"], "grade": grade * 5 / 0.4})
else:
grade_li2.append({"district": data["district"], "grade": 5})
except Exception as e:
current_app.logger.error(e)
print('项目开工率计算出错', e)
return 'error'
return data_li2
# 三。新开工项目计划投资额完成率得分=(完成率(%):新开工项目计划投资额(亿元)/ 年度目标(亿元))
# 新开工项目计划投资额完成率
def get_data3(district_li, current_year):
data_li3 = []
try:
for district in district_li:
project_obj_list = ProjectManagement.query.filter(
ProjectManagement.start_time.like('%{}%'.format(str(current_year))),
......@@ -176,22 +163,21 @@ def statistic_jc_data():
data = {
"district": district,
"rate": investment_volume / year_target if year_target and year_target != 0 else 0
"rate": round(investment_volume / year_target, 2) * 100 if year_target and year_target != 0 else 0
}
data_li3.append(data)
continue
# return jsonify(code=RET.OK, data=data_li, msg="新开工项目计划投资额完成率获取成功")
# 新开工固定资产投资项目计划投资额完成情况=如果完成率(%)小于1,
# 则输出完成率(%)*赋分(25 上传后获取)的结果,否则输出赋分(25);
grade_li3 = []
for data in data_li3:
grade = data["rate"]
if grade < 1:
grade_li3.append({"district": data["district"], "grade": grade * 25})
else:
grade_li3.append({"district": data["district"], "grade": 25})
except Exception as e:
current_app.logger.error(e)
print('新开工项目计划投资额完成率计算出错', e)
return 'error'
return data_li3
# 四。固定资产投资项目到位资金完成率(完成率(%):固定资产投资项目资金到位额(亿元)/ 年度目标(亿元))
# 固定资产投资项目到位资金完成率
def get_data4(district_li, current_year):
data_li4 = []
try:
for district in district_li:
project_obj = MoneyArrive.query.filter(
MoneyArrive.data_time.like('%{}%'.format(str(current_year))),
......@@ -213,22 +199,21 @@ def statistic_jc_data():
data = {
"district": district,
"rate": arrive_money / year_target if year_target and year_target != 0 else 0
"rate": round(arrive_money / year_target, 2) * 100 if year_target and year_target != 0 else 0
}
data_li4.append(data)
continue
# return jsonify(code=RET.OK, data=data_li, msg="固定资产投资项目到位资金完成率获取成功")
# 固定资产投资项目资金到位情况得分=如果完成率(%)小于1,
# 则输出完成率(%)*赋分(25 上传后获取)的结果,否则输出赋分(25);
grade_li4 = []
for data in data_li4:
grade = data["rate"]
if grade < 1:
grade_li4.append({"district": data["district"], "grade": grade * 25})
else:
grade_li4.append({"district": data["district"], "grade": 25})
except Exception as e:
current_app.logger.error(e)
print('固定资产投资项目到位资金完成率计算出错', e)
return 'error'
return data_li4
# 五。非固定资产投资项目到位资金完成率(完成率(%):非固定资产投资项目资金到位额(亿元)/ 年度目标(亿元))
# 非固定资产投资项目到位资金完成率
def get_data5(district_li, current_year):
data_li5 = []
try:
for district in district_li:
project_obj_list = ProjectManagement.query.filter(
ProjectManagement.is_fixed_investment == '否',
......@@ -250,45 +235,139 @@ def statistic_jc_data():
year_target = jc_obj.money_arrive_target0
data = {
"district": district,
"rate": investment_volume / year_target if year_target and year_target != 0 else 0
"rate": round(investment_volume / year_target, 2) * 100 if year_target and year_target != 0 else 0
}
data_li5.append(data)
continue
# 非固定资产投资项目资金到位情况得分=如果完成率(%)小于1,
# 则输出完成率(%)*赋分(5 上传后获取)的结果,否则输出赋分(5);
grade_li5 = []
for data in data_li5:
grade = data["rate"]
if grade < 1:
grade_li5.append({"district": data["district"], "grade": grade * 5})
else:
grade_li5.append({"district": data["district"], "grade": 5})
except Exception as e:
current_app.logger.error(e)
print('非固定资产投资项目到位资金完成率计算出错', e)
return 'error'
return data_li5
# 综合得分
def get_data6(district_li, current_year):
data_li1, data_li2, data_li3, data_li4, data_li5 = get_data_li(district_li, current_year)
data_li6 = []
# 项目签约情况得分=完成率(%)*赋分(15 上传后获取)如果小于赋分(15 上传后获取),
# 则输出完成率(%)*赋分(15 上传后获取)的结果,否则输出赋分(15)
grade_li1 = []
for data in data_li1:
grade = data["rate"] * 15
if grade < 15:
grade_li1.append({"district": data["district"], "grade": grade})
else:
grade_li1.append({"district": data["district"], "grade": 15})
# 项目开工率情况得分=如果开工率进度小于0.4,则输出开工率进度*赋分(5分)/0.4,否则输出赋分(5分);
grade_li2 = []
for data in data_li2:
grade = data["rate"]
if grade < 0.4:
grade_li2.append({"district": data["district"], "grade": grade * 5 / 0.4})
else:
grade_li2.append({"district": data["district"], "grade": 5})
# 新开工固定资产投资项目计划投资额完成情况得分=如果完成率(%)小于1,
# 则输出完成率(%)*赋分(25 上传后获取)的结果,否则输出赋分(25);
grade_li3 = []
for data in data_li3:
grade = data["rate"]
if grade < 1:
grade_li3.append({"district": data["district"], "grade": grade * 25})
else:
grade_li3.append({"district": data["district"], "grade": 25})
# 固定资产投资项目资金到位情况得分=如果完成率(%)小于1,
# 则输出完成率(%)*赋分(25 上传后获取)的结果,否则输出赋分(25);
grade_li4 = []
for data in data_li4:
grade = data["rate"]
if grade < 1:
grade_li4.append({"district": data["district"], "grade": grade * 25})
else:
grade_li4.append({"district": data["district"], "grade": 25})
# 非固定资产投资项目资金到位情况得分=如果完成率(%)小于1,
# 则输出完成率(%)*赋分(5 上传后获取)的结果,否则输出赋分(5);
grade_li5 = []
for data in data_li5:
grade = data["rate"]
if grade < 1:
grade_li5.append({"district": data["district"], "grade": grade * 5})
else:
grade_li5.append({"district": data["district"], "grade": 5})
grade1 = 0
grade2 = 0
grade3 = 0
grade4 = 0
grade5 = 0
for district in district_li:
# 签约情况得分
for grade_dic in grade_li1:
if grade_dic["district"] == district:
grade1 = grade_dic["grade"]
# 项目开工率情况得分
for grade_dic in grade_li2:
if grade_dic["district"] == district:
grade2 = grade_dic["grade"]
# 新开工得分
for grade_dic in grade_li3:
if grade_dic["district"] == district:
grade3 = grade_dic["grade"]
# 固定资产得分
for grade_dic in grade_li4:
if grade_dic["district"] == district:
grade4 = grade_dic["grade"]
# 非固定资产得分
for grade_dic in grade_li5:
if grade_dic["district"] == district:
grade5 = grade_dic["grade"]
total_grade = grade1 + grade2 + grade3 + grade4 + grade5
data_li6.append({"district": district, "total_grade": total_grade})
return data_li6
def get_data_li(district_li, current_year):
# 一。项目签约完成率(签约项目完成率:完成率(%):签约金额(亿元)/ 年度目标(亿元))
data_li1 = get_data1(district_li, current_year)
if data_li1 == 'error':
return jsonify(code=RET.DBERR, msg='项目签约完成率计算出错')
# 二。项目开工率(开工率进度:当年签约当年开工个数/签约个数)
data_li2 = get_data2(district_li, current_year)
if data_li2 == 'error':
return jsonify(code=RET.DBERR, msg='项目开工率计算出错')
# 三。新开工项目计划投资额完成率(完成率(%):新开工项目计划投资额(亿元)/ 年度目标(亿元))
data_li3 = get_data3(district_li, current_year)
if data_li3 == 'error':
return jsonify(code=RET.DBERR, msg='新开工项目计划投资额完成率计算出错')
# 四。固定资产投资项目到位资金完成率(完成率(%):固定资产投资项目资金到位额(亿元)/ 年度目标(亿元))
data_li4 = get_data2(district_li, current_year)
if data_li4 == 'error':
return jsonify(code=RET.DBERR, msg='固定资产投资项目到位资金完成率计算出错')
# 五。非固定资产投资项目到位资金完成率(完成率(%):非固定资产投资项目资金到位额(亿元)/ 年度目标(亿元))
data_li5 = get_data5(district_li, current_year)
if data_li5 == 'error':
return jsonify(code=RET.DBERR, msg='非固定资产投资项目到位资金完成率计算出错')
return data_li1, data_li2, data_li3, data_li4, data_li5
# 晋城市数据统计
@api_manage.route("/StatisticJcData", methods=["POST"])
def statistic_jc_data():
# req_dic = request.get_json()
current_year = datetime.now().year
district_li = ["", "城区", "泽州县", "高平市", "阳城县", "陵川县",
"沁水县", "晋城经济技术开发区", "高平经济技术开发区",
"阳城经济技术开发区", "沁水经济技术开发区",
"陵川生态文化旅游示范区"]
try:
data_li1, data_li2, data_li3, data_li4, data_li5 = get_data_li(district_li, current_year)
# 六。综合得分
for district in district_li:
# 签约情况得分
for grade_dic in grade_li1:
if grade_dic["district"] == district:
grade1 = grade_dic["grade"]
# 项目开工率情况得分
for grade_dic in grade_li2:
if grade_dic["district"] == district:
grade2 = grade_dic["grade"]
# 新开工得分
for grade_dic in grade_li3:
if grade_dic["district"] == district:
grade4 = grade_dic["grade"]
# 固定资产得分
for grade_dic in grade_li4:
if grade_dic["district"] == district:
grade4 = grade_dic["grade"]
# 非固定资产得分
for grade_dic in grade_li5:
if grade_dic["district"] == district:
grade5 = grade_dic["grade"]
total_grade = grade1 + grade2 + grade4 + grade4 + grade5
data_li6.append({"district": district, "total_grade": total_grade})
continue
data_li6 = get_data6(district_li, current_year)
return jsonify(code=RET.OK,
data={"data_li1": data_li1, "data_li2": data_li2,
"data_li3": data_li3, "data_li4": data_li4,
......@@ -299,6 +378,283 @@ def statistic_jc_data():
return jsonify(code=RET.DBERR, msg="数据查询错误!")
# 区县指标完成表导出
@api_manage.route("/ExportJcData1", methods=["POST"])
def export_jc_data1():
req_dic = request.get_json()
district = req_dic['district']
current_year = datetime.now().year
path = './apps/statics/project_file/'
# pro_path = 'http://39.100.39.50:8008/aaa_statics/project_file/' # 项目路径
pro_path = 'http://192.168.1.4:5000/statics/project_file/' # 项目路径
district_li = ["全市", "城区", "泽州县", "高平市", "阳城县", "陵川县",
"沁水县", "晋城经济技术开发区"]
# data_li1, data_li2, data_li3, data_li4, data_li5 = get_data_li(district_li, current_year)
# 六。综合得分
data_li6 = get_data6(district_li, current_year)
target_data_list = []
data_list = []
for district in district_li:
# 县(市、区)、开发区
data_list.append(district)
# 签约个数
sign_num = ProjectManagement.query.filter(
ProjectManagement.sign_time.like('%{}%'.format(str(current_year))),
ProjectManagement.district.like('%{}%'.format(str(district)))
).count()
data_list.append(sign_num)
# 签约金额(亿元)
project_obj_list = ProjectManagement.query.filter(
ProjectManagement.sign_time.like('%{}%'.format(str(current_year))),
ProjectManagement.district.like('%{}%'.format(str(district)))
).all()
if not project_obj_list:
sign_money = 0
else:
sign_money = sum([project_obj.investment_volume for project_obj in project_obj_list])
data_list.append(sign_money)
# 签约年度目标(亿元)
jc_obj = JcTarget.query.filter(JcTarget.year.like('%{}%'.format(str(current_year))),
JcTarget.district_name.like('%{}%'.format(str(district)))).first()
sign_target = 0
if jc_obj:
sign_target = jc_obj.money_sign
data_list.append(sign_target)
# 签约完成率
sign_rate = sign_money / sign_target if sign_target and sign_target != 0 else 0
data_list.append(sign_rate)
# 签约得分(15分)
grade = sign_rate * 15
if grade < 15:
sign_grade = grade
else:
sign_grade = 15
data_list.append(sign_grade)
# 当年开工个数
start_num = ProjectManagement.query.filter(
ProjectManagement.start_time.like('%{}%'.format(str(current_year))),
ProjectManagement.district.like('%{}%'.format(str(district)))
).count()
data_list.append(start_num)
# 开工率进度(40 %)
start_rate = start_num / sign_num if sign_num and sign_num != 0 else 0
data_list.append(start_rate)
# 开工得分(5分)
if start_rate < 0.4:
start_grade = start_rate * 5 / 0.4
else:
start_grade = 5
data_list.append(start_grade)
# 新开工项目计划投资额(亿元)
project_obj_list = ProjectManagement.query.filter(
ProjectManagement.start_time.like('%{}%'.format(str(current_year))),
ProjectManagement.district.like('%{}%'.format(str(district)))
).all()
if not project_obj_list:
new_start_money = 0
else:
new_start_money = sum([project_obj.investment_volume for project_obj in project_obj_list])
data_list.append(new_start_money)
# 新开工年度目标
jc_obj = JcTarget.query.filter(
JcTarget.district_name == district,
JcTarget.year.like('%{}%'.format(str(current_year)))
).first()
if not jc_obj:
new_start_target = 0
else:
new_start_target = jc_obj.money_plan_invest
data_list.append(new_start_target)
# 新开工完成率
new_start_rate = new_start_money / new_start_target if new_start_target and new_start_target != 0 else 0
data_list.append(new_start_rate)
# 新开工得分
for grade_dic in data_li6:
if grade_dic['district'] == district:
new_start_rate = grade_dic['total_grade']
if new_start_rate < 1:
new_start_grade = new_start_rate * 25
else:
new_start_grade = 25
data_list.append(new_start_grade)
# 固定资产投资项目资金到位额(亿元)
project_obj = MoneyArrive.query.filter(
MoneyArrive.data_time.like('%{}%'.format(str(current_year))),
MoneyArrive.district_name.like('%{}%'.format(str(district)))
).first()
if not project_obj:
gutou1_money = 0
else:
gutou1_money = project_obj.arrive_money
data_list.append(gutou1_money)
# 年度目标
jc_obj = JcTarget.query.filter(
JcTarget.district_name == district,
JcTarget.year.like('%{}%'.format(str(current_year)))
).first()
if not jc_obj:
gutou1_target = 0
else:
gutou1_target = jc_obj.money_arrive_target1
data_list.append(gutou1_target)
# 完成率
gutou1_rate = gutou1_money / gutou1_target if gutou1_target and gutou1_target != 0 else 0
data_list.append(gutou1_target)
# 得分(25分)
if gutou1_rate < 1:
gutou1_grade = gutou1_rate * 25
else:
gutou1_grade = 25
data_list.append(gutou1_grade)
# 非固定资产投资项目资金到位额(亿元)
project_obj_list = ProjectManagement.query.filter(
ProjectManagement.is_fixed_investment == '否',
ProjectManagement.sign_time.like('%{}%'.format(str(current_year))),
ProjectManagement.district.like('%{}%'.format(str(district)))
).all()
if not project_obj_list:
gutou0_money = 0
else:
gutou0_money = sum([project_obj.investment_year for project_obj in project_obj_list])
data_list.append(gutou0_money)
# 年度目标
jc_obj = JcTarget.query.filter(
JcTarget.district_name == district,
JcTarget.year.like('%{}%'.format(str(current_year)))
).first()
if not jc_obj:
gutou0_target = 0
else:
gutou0_target = jc_obj.money_arrive_target0
data_list.append(gutou0_target)
# 完成率
gutou0_rate = gutou0_money / gutou0_target if gutou0_target and gutou0_target != 0 else 0
data_list.append(gutou0_rate)
# 得分(5分)
if gutou0_rate < 1:
gutou0_grade = gutou0_rate * 5
else:
gutou0_grade = 5
data_list.append(gutou0_grade)
# 指标得分(75分)
target_grade = 0
for grade_dic in data_li6:
if grade_dic['district'] == district:
target_grade = grade_dic['total_grade']
data_list.append(target_grade)
target_data_list.append(data_list)
try:
sheet_name_titles = {
"sheet1": ["县(市、区)、开发区", "签约个数", "签约金额(亿元)", "年度目标(亿元)",
"完成率", "得分(15分)", "当年签约当年开工个数", "开工率进度(40 %)",
"得分(5分)", "新开工项目计划投资额(亿元)", "年度目标(亿元)", "完成率",
"得分(25分)", "固定资产投资项目资金到位额(亿元)", "年度目标(亿元)",
"完成率", "得分(25分)", "非固定资产投资项目资金到位额(亿元)",
"年度目标(亿元)", "完成率", "得分(5分)", "指标得分(75分)"
]}
excel = xlwt.Workbook(encoding='utf-8')
# 写入表头
for i in range(len(sheet_name_titles)):
for k, v in sheet_name_titles.items():
sheet_name = k
sheet = excel.add_sheet(sheet_name)
head_list = v
print(head_list)
for j in range(len(head_list)):
sheet.write(0, j, head_list[j])
# 写入数据,从第二行(i+1)
rows = len(target_data_list)
cols = len(head_list)
for i in range(rows):
for j in range(cols):
sheet.write(i + 1, j, target_data_list[i][j])
time_stamp = '{0:%Y%m%d%H%M%S}'.format(datetime.now())
file_name = "招商引资指标生成表{}.xlsx".format(time_stamp)
excel.save(path + file_name)
return jsonify(code=RET.OK, url=pro_path + file_name, msg="导出/下载成功!")
except Exception as e:
current_app.logger.error(e)
return jsonify(code=RET.DBERR, msg="批量导出操作失败!")
# 开发区指标完成表导出
@api_manage.route("/ExportJcData2", methods=["POST"])
def export_jc_data2():
req_dic = request.get_json()
district = req_dic['district']
current_year = datetime.now().year
path = './apps/statics/project_file/'
# pro_path = 'http://39.100.39.50:8008/aaa_statics/project_file/' # 项目路径
pro_path = 'http://192.168.1.4:5000/statics/project_file/' # 项目路径
district_li = ["全市", "城区", "泽州县", "高平市", "阳城县", "陵川县",
"沁水县", "晋城经济技术开发区"]
target_data_list = []
data_list = []
for district in district_li:
# 县(市、区)、开发区
data_list.append(district)
data_list.append(target_grade)
target_data_list.append(data_list)
try:
sheet_name_titles = {
"sheet1": ["县(市、区)、开发区", "签约个数", "签约金额(亿元)", "属地签约任务(亿元)",
"完成属地目标任务占比", "新开工项目", "计划投资额(亿元)", "属地投资任务(亿元)",
"完成属地目标任务占比", "当年签约当年开工个数", "开工率年度目标(40 %)",
"开工率排名", "属地投资任务(亿元)", "完成属地目标任务占比", "开工率目标(40%)",
"开工率排名"
]}
excel = xlwt.Workbook(encoding='utf-8')
# 写入表头
for i in range(len(sheet_name_titles)):
for k, v in sheet_name_titles.items():
sheet_name = k
sheet = excel.add_sheet(sheet_name)
head_list = v
print(head_list)
for j in range(len(head_list)):
sheet.write(0, j, head_list[j])
# 写入数据,从第二行(i+1)
rows = len(target_data_list)
cols = len(head_list)
for i in range(rows):
for j in range(cols):
sheet.write(i + 1, j, target_data_list[i][j])
time_stamp = '{0:%Y%m%d%H%M%S}'.format(datetime.now())
file_name = "招商引资指标生成表{}.xlsx".format(time_stamp)
excel.save(path + file_name)
return jsonify(code=RET.OK, url=pro_path + file_name, msg="导出/下载成功!")
except Exception as e:
current_app.logger.error(e)
return jsonify(code=RET.DBERR, msg="批量导出操作失败!")
"""项目分析"""
......@@ -307,7 +663,7 @@ def statistic_jc_data():
def project_graph():
req_dic = request.get_json()
district = req_dic['district']
flag = req_dic['flag']
flag = req_dic['flag'] # 1项目来源区域分布,2项目投资额区间分布,3项目产业分布,4项目行业类型分布
current_year = datetime.now().year
try:
project_obj = ProjectManagement.query.filter(
......@@ -322,26 +678,51 @@ def project_graph():
num3 = 0 # 珠三角
num4 = 0 # 中原经济区
num5 = 0 # 其他
for project_obj in project_obj.all():
if project_obj.project_source in ["北京", "天津", "河北"]:
num1 += 1
elif project_obj.project_source in ["上海", "江苏", "浙江"]:
num2 += 1
elif project_obj.project_source in ["广东", "香港", "澳门"]:
num3 += 1
elif project_obj.project_source in ["河南", "天津", "河北", "长治", "晋城", "运城", "聊城", "菏泽", "泰安", "宿州", "淮北", "阜阳", "亳州", "蚌埠", "淮南", "邢台", "邯郸"]:
num4 += 1
else:
num5 += 1
total_num = project_obj.count()
num1 = project_obj.filter(or_(
ProjectManagement.project_source.like('%北京%'),
ProjectManagement.project_source.like('%天津%'),
ProjectManagement.project_source.like('%河北%')
)).count()
num2 = project_obj.filter(or_(
ProjectManagement.project_source.like('%江苏%'),
ProjectManagement.project_source.like('%浙江%'),
ProjectManagement.project_source.like('%上海%')
)).count()
num3 = project_obj.filter(or_(
ProjectManagement.project_source.like('%广东%'),
ProjectManagement.project_source.like('%香港%'),
ProjectManagement.project_source.like('%澳门%')
)).count()
num4 = project_obj.filter(or_(
ProjectManagement.project_source.like('%河南%'),
# ProjectManagement.project_source.like('%天津%'),
# ProjectManagement.project_source.like('%河北%'),
ProjectManagement.project_source.like('%长治%'),
ProjectManagement.project_source.like('%晋城%'),
ProjectManagement.project_source.like('%运城%'),
ProjectManagement.project_source.like('%聊城%'),
ProjectManagement.project_source.like('%菏泽%'),
ProjectManagement.project_source.like('%泰安%'),
ProjectManagement.project_source.like('%宿州%'),
ProjectManagement.project_source.like('%淮北%'),
ProjectManagement.project_source.like('%阜阳%'),
ProjectManagement.project_source.like('%亳州%'),
ProjectManagement.project_source.like('%蚌埠%'),
ProjectManagement.project_source.like('%淮南%'),
ProjectManagement.project_source.like('%邢台%'),
ProjectManagement.project_source.like('%邯郸%')
)).count()
num5 = total_num - sum([num1, num2, num3, num4])
total_num = sum([num1, num2, num3, num4, num5])
data = {
"data1": str(round(num1 / total_num, 2)) + '%',
"data2": str(round(num2 / total_num, 2)) + '%',
"data3": str(round(num3 / total_num, 2)) + '%',
"data4": str(round(num4 / total_num, 2)) + '%',
"data5": str(round(num5 / total_num, 2)) + '%',
"data1": str(round(num1 / total_num, 2) * 100) + '%',
"data2": str(round(num2 / total_num, 2) * 100) + '%',
"data3": str(round(num3 / total_num, 2) * 100) + '%',
"data4": str(round(num4 / total_num, 2) * 100) + '%',
"data5": str(round(num5 / total_num, 2) * 100) + '%',
}
if flag == 2:
elif flag == 2:
project_count1 = project_obj.filter(
ProjectManagement.investment_volume > 0,
ProjectManagement.investment_volume <= 0.5 * 10000
......@@ -373,7 +754,7 @@ def project_graph():
"project_count5": project_count5,
"project_count6": project_count6
}
if flag == 3: # 项目产业分布
elif flag == 3: # 项目产业分布
# 第一产业
project_count1 = project_obj.filter(ProjectManagement.industry_level == '第一产业').count()
# 第二产业
......@@ -383,16 +764,18 @@ def project_graph():
project_count3 = project_obj.filter(
ProjectManagement.industry_level == '第三产业').count()
total_num = project_count1 + project_count2 + project_count3
if total_num == 0:
return jsonify(code=RET.NODATA, msg='产业类型无数据!')
data = {
"project_count1": str(round(project_count1 / total_num, 2)) + '%',
"project_count2": str(round(project_count2 / total_num, 2)) + '%',
"project_count3": str(round(project_count3 / total_num, 2)) + '%'
"project_count1": str(round(project_count1 / total_num * 100, 2)) + '%',
"project_count2": str(round(project_count2 / total_num * 100, 2)) + '%',
"project_count3": str(round(project_count3 / total_num * 100, 2)) + '%'
}
if flag == 4:
elif flag == 4:
industry_list = []
for project_obj in project_obj.all():
if project_obj.industry not in industry_list:
industry_list.append(project_obj.industry)
for project_obj_obj in project_obj.all():
if project_obj_obj.industry not in industry_list:
industry_list.append(project_obj_obj.industry)
continue
else:
continue
......@@ -402,6 +785,8 @@ def project_graph():
data_dic = {"industry": industry, "project_count": project_count}
data.append(data_dic)
continue
else:
return jsonify(code=RET.PARAMERR, msg="参数错误!")
return jsonify(code=RET.OK, data=data, msg='数据查询成功')
except Exception as e:
......@@ -413,14 +798,13 @@ def project_graph():
@api_manage.route("/ArealProject", methods=["POST"])
def areal_project():
req_dic = request.get_json()
district = req_dic['district']
project_source = req_dic['project_source']
investment_volume = req_dic['investment_volume']
industry_level = req_dic['industry_level']
industry_name = req_dic['industry_name']
flag = req_dic['flag']
district = req_dic['district'] # 全局
project_source = req_dic['project_source'] # 用于1项目来源区域分布
investment_volume = req_dic['investment_volume'] # 用于2项目投资额区间分布
industry_level = req_dic['industry_level'] # 用于3项目产业分布
industry_name = req_dic['industry_name'] # 用于4项目行业类型分布
flag = req_dic['flag'] # 1项目来源区域分布,2项目投资额区间分布,3项目产业分布,4项目行业类型分布
page = req_dic['page']
per_page = req_dic['per_page']
current_year = datetime.now().year
......@@ -434,71 +818,71 @@ def areal_project():
if flag == 1: # 项目来源区域分布项目列表
if project_source == '京津冀':
project_obj = project_obj.filter(or_(
ProjectManagement.province.like('%北京%'),
ProjectManagement.province.like('%天津%'),
ProjectManagement.province.like('%河北%')
ProjectManagement.project_source.like('%北京%'),
ProjectManagement.project_source.like('%天津%'),
ProjectManagement.project_source.like('%河北%')
))
elif project_source == '长三角':
project_obj = project_obj.filter(or_(
ProjectManagement.province.like('%江苏%'),
ProjectManagement.province.like('%浙江%'),
ProjectManagement.province.like('%上海%')
ProjectManagement.project_source.like('%江苏%'),
ProjectManagement.project_source.like('%浙江%'),
ProjectManagement.project_source.like('%上海%')
))
elif project_source == '珠三角':
project_obj = project_obj.filter(or_(
ProjectManagement.province.like('%广东%'),
ProjectManagement.province.like('%香港%'),
ProjectManagement.province.like('%澳门%')
ProjectManagement.project_source.like('%广东%'),
ProjectManagement.project_source.like('%香港%'),
ProjectManagement.project_source.like('%澳门%')
))
elif project_source == '中原经济区':
project_obj = project_obj.filter(or_(
ProjectManagement.province.like('%河南%'),
ProjectManagement.province.like('%天津%'),
ProjectManagement.province.like('%河北%'),
ProjectManagement.province.like('%长治%'),
ProjectManagement.province.like('%晋城%'),
ProjectManagement.province.like('%运城%'),
ProjectManagement.province.like('%聊城%'),
ProjectManagement.province.like('%菏泽%'),
ProjectManagement.province.like('%泰安%'),
ProjectManagement.province.like('%宿州%'),
ProjectManagement.province.like('%淮北%'),
ProjectManagement.province.like('%阜阳%'),
ProjectManagement.province.like('%亳州%'),
ProjectManagement.province.like('%蚌埠%'),
ProjectManagement.province.like('%淮南%'),
ProjectManagement.province.like('%邢台%'),
ProjectManagement.province.like('%邯郸%'),
ProjectManagement.project_source.like('%河南%'),
ProjectManagement.project_source.like('%天津%'),
ProjectManagement.project_source.like('%河北%'),
ProjectManagement.project_source.like('%长治%'),
ProjectManagement.project_source.like('%晋城%'),
ProjectManagement.project_source.like('%运城%'),
ProjectManagement.project_source.like('%聊城%'),
ProjectManagement.project_source.like('%菏泽%'),
ProjectManagement.project_source.like('%泰安%'),
ProjectManagement.project_source.like('%宿州%'),
ProjectManagement.project_source.like('%淮北%'),
ProjectManagement.project_source.like('%阜阳%'),
ProjectManagement.project_source.like('%亳州%'),
ProjectManagement.project_source.like('%蚌埠%'),
ProjectManagement.project_source.like('%淮南%'),
ProjectManagement.project_source.like('%邢台%'),
ProjectManagement.project_source.like('%邯郸%'),
))
elif project_source == '其他':
project_obj = project_obj.filter(and_(
ProjectManagement.province.notlike('%河南%'),
ProjectManagement.province.notlike('%天津%'),
ProjectManagement.province.notlike('%河北%'),
ProjectManagement.province.notlike('%长治%'),
ProjectManagement.province.notlike('%晋城%'),
ProjectManagement.province.notlike('%运城%'),
ProjectManagement.province.notlike('%聊城%'),
ProjectManagement.province.notlike('%菏泽%'),
ProjectManagement.province.notlike('%泰安%'),
ProjectManagement.province.notlike('%宿州%'),
ProjectManagement.province.notlike('%淮北%'),
ProjectManagement.province.notlike('%阜阳%'),
ProjectManagement.province.notlike('%亳州%'),
ProjectManagement.province.notlike('%蚌埠%'),
ProjectManagement.province.notlike('%淮南%'),
ProjectManagement.province.notlike('%邢台%'),
ProjectManagement.province.notlike('%邯郸%'),
ProjectManagement.province.notlike('%北京%'),
ProjectManagement.province.notlike('%天津%'),
ProjectManagement.province.notlike('%河北%'),
ProjectManagement.province.notlike('%江苏%'),
ProjectManagement.province.notlike('%浙江%'),
ProjectManagement.province.notlike('%上海%'),
ProjectManagement.province.notlike('%广东%'),
ProjectManagement.province.notlike('%香港%'),
ProjectManagement.province.notlike('%澳门%')
ProjectManagement.project_source.notlike('%河南%'),
# ProjectManagement.project_source.notlike('%天津%'),
# ProjectManagement.project_source.notlike('%河北%'),
ProjectManagement.project_source.notlike('%长治%'),
ProjectManagement.project_source.notlike('%晋城%'),
ProjectManagement.project_source.notlike('%运城%'),
ProjectManagement.project_source.notlike('%聊城%'),
ProjectManagement.project_source.notlike('%菏泽%'),
ProjectManagement.project_source.notlike('%泰安%'),
ProjectManagement.project_source.notlike('%宿州%'),
ProjectManagement.project_source.notlike('%淮北%'),
ProjectManagement.project_source.notlike('%阜阳%'),
ProjectManagement.project_source.notlike('%亳州%'),
ProjectManagement.project_source.notlike('%蚌埠%'),
ProjectManagement.project_source.notlike('%淮南%'),
ProjectManagement.project_source.notlike('%邢台%'),
ProjectManagement.project_source.notlike('%邯郸%'),
ProjectManagement.project_source.notlike('%北京%'),
ProjectManagement.project_source.notlike('%天津%'),
ProjectManagement.project_source.notlike('%河北%'),
ProjectManagement.project_source.notlike('%江苏%'),
ProjectManagement.project_source.notlike('%浙江%'),
ProjectManagement.project_source.notlike('%上海%'),
ProjectManagement.project_source.notlike('%广东%'),
ProjectManagement.project_source.notlike('%香港%'),
ProjectManagement.project_source.notlike('%澳门%')
))
else:
return jsonify(code=RET.PARAMERR, msg="参数错误!")
......@@ -523,7 +907,7 @@ def areal_project():
"id": project_obj.id,
"project_name": project_obj.project_name,
"investor_district": project_obj.investor_district,
"industry": project_obj.industry + '-' + project_obj.industry2,
"industry": project_obj.industry + '-' if project_obj.industry else '' + project_obj.industry2 if project_obj.industry else '',
"project_type": "",
"investment_volume": project_obj.investment_volume
} for project_obj in project_obj_list]
......
......@@ -1281,6 +1281,7 @@ class MoneyArrive(db.Model):
__table_args__ = ({'comment': '项目化管理-固定资产投资项目资金到位表'}) # 添加表注释
id = db.Column(db.Integer, primary_key=True, autoincrement=True, comment='主键id')
is_delete = db.Column(db.Integer, comment='逻辑删除')
file_name = db.Column(db.String(30), comment='文件名称')
data_time = db.Column(db.String(30), comment='数据年份')
upload_time = db.Column(db.String(30), comment='上传日期')
upload_unit = db.Column(db.String(30), comment='上传部门')
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment