Commit 353e4091 by dong

fix20221126

parent f9f5e843
......@@ -139,7 +139,7 @@ def check_project_detail1():
"attract_name": project_obj.attract_name, # 引资方名称
"investor_name": project_obj.investor_name, # 投资方名称(万元)
"investor_district": project_obj.investor_district, # 投资方所在地(亩)
"industry": project_obj.industry, # 所属行业
"industry": project_obj.industry + project_obj.industry2, # 所属行业
"investment_volume": project_obj.investment_volume, # 总投资额(万元)
"construction_content": project_obj.construction_content, # 建设内容
"project_address": project_obj.project_address, # 项目选址
......@@ -310,7 +310,8 @@ def upload_project_data2():
provence=provence,
city=city,
investor_district=provence + "/" + city,
industry=industry1 + '/' + industry2,
industry=industry1,
industry2=industry2,
investment_volume=country + provence + city,
construction_content=construction_content,
construction_nature=construction_nature,
......@@ -395,8 +396,8 @@ def batch_export_project5():
data_list.append(city)
industry = project_obj.industry
data_list.append(industry)
# industry2 = project_obj.industry2
# data_list.append(industry2)
industry2 = project_obj.industry2
data_list.append(industry2)
investment_volume = project_obj.investment_volume
data_list.append(investment_volume)
construction_content = project_obj.construction_content
......@@ -439,7 +440,7 @@ def batch_export_project5():
sheet_name_titles = {
"sheet1": ["项目编号", "项目名称", "项目所在地", "所属开发区", "引资方名称", "投资方名称",
"国别(地区)", "省(自治区、直辖市、特别行政区)",
"市(州、盟、区)", "所属行业", "总投资额(万元)", "项目建设内容", "项目建设性质",
"市(州、盟、区)", "一级行业(下拉框筛选)", "二级子行业(下拉框筛选)", "总投资额(万元)", "项目建设内容", "项目建设性质",
"项目选址详情", "用地情况(亩)", "其中新增用地(亩)", "项目立项情况", "项目进展", "签约时间",
"开工时间", "竣工时间", "固资产投资项目(是、否)", "资金到位本年累计(万元)",
"资金到位历史累计(万元)", "项目跟踪", "项目跟踪说明",
......
......@@ -317,35 +317,106 @@ def statistic_jc_data():
def areal_distribution():
req_dic = request.get_json()
district = req_dic['district']
flag = req_dic['flag']
current_year = datetime.now().year
try:
project_obj_list = ProjectManagement.query.filter(
ProjectManagement.district == district)
num1 = 0 # 京津冀
num2 = 0 # 长三角
num3 = 0 # 珠三角
num4 = 0 # 中原经济区
num5 = 0 # 其他
for project_obj in project_obj_list:
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 = 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)) + '%',
}
project_obj = ProjectManagement.query.filter(
ProjectManagement.district == district if district else text(''),
ProjectManagement.sign_time.like('%{}%'.format(str(current_year)))
)
if not project_obj.all():
return jsonify(code=RET.NODATA, msg='查询无数据!')
if flag == 1:
num1 = 0 # 京津冀
num2 = 0 # 长三角
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 = 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)) + '%',
}
if flag == 2:
project_count1 = project_obj.filter(
ProjectManagement.investment_volume > 0,
ProjectManagement.investment_volume <= 0.5
).count()
project_count2 = project_obj.filter(
ProjectManagement.investment_volume > 0.5,
ProjectManagement.investment_volume <= 1
).count()
project_count3 = project_obj.filter(
ProjectManagement.investment_volume > 1,
ProjectManagement.investment_volume <= 5
).count()
project_count4 = project_obj.filter(
ProjectManagement.investment_volume > 5,
ProjectManagement.investment_volume <= 10
).count()
project_count5 = project_obj.filter(
ProjectManagement.investment_volume > 10,
ProjectManagement.investment_volume <= 20
).count()
project_count6 = project_obj.filter(
ProjectManagement.investment_volume > 20,
).count()
data = {
"project_count1": project_count1,
"project_count2": project_count2,
"project_count3": project_count3,
"project_count4": project_count4,
"project_count5": project_count5,
"project_count6": project_count6
}
if flag == 3: # 项目产业分布
# 第一产业
project_count1 = project_obj.filter(ProjectManagement.industry == '现代农业').count()
# 第二产业
project_count2 = project_obj.filter(
ProjectManagement.industry2.in_(["煤炭先进产能和安全改造", "电力", "焦化", "冶金", "食品", "纺织",
"轻工", "其他工业技术改造", "节能环保产业", "煤层气产业", "煤化工产业", "新一代信息技术产业",
"高端装备制造业", "新材料产业", "新能源产业", "新能源汽车产业", "生物产业"])).count()
# 第三产业
project_count3 = project_obj.filter(
ProjectManagement.industry2.in_(["商贸物流", "商务服务业", "房地产", "康养", "其他"]),
ProjectManagement.industry.in_(["文化旅游产业"])
).count()
total_num = project_count1 + project_count2 + project_count3
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)) + '%'
}
if 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)
continue
else:
continue
data = []
for industry in industry_list:
project_count = project_obj.filter(ProjectManagement.industry == industry).count()
data_dic = {"industry": industry, "project_count": project_count}
data.append(data_dic)
continue
return jsonify(code=RET.OK, data=data, msg='数据查询成功')
except Exception as e:
current_app.logger.error(e)
......@@ -359,30 +430,32 @@ def areal_project():
district = req_dic['district']
project_source = req_dic['project_source']
page = req_dic['page']
per_page = req_dic['per_page']
try:
project_obj = ProjectManagement.query.filter(
ProjectManagement.district == district,
ProjectManagement.district == district if district else text(''),
)
if project_source == '京津冀':
project_obj = ProjectManagement.filter(or_(
project_obj = project_obj.filter(or_(
ProjectManagement.province.like('%北京%'),
ProjectManagement.province.like('%天津%'),
ProjectManagement.province.like('%河北%')
))
elif project_source == '长三角':
project_obj = ProjectManagement.filter(or_(
project_obj = project_obj.filter(or_(
ProjectManagement.province.like('%江苏%'),
ProjectManagement.province.like('%浙江%'),
ProjectManagement.province.like('%上海%')
))
elif project_source == '珠三角':
project_obj = ProjectManagement.filter(or_(
project_obj = project_obj.filter(or_(
ProjectManagement.province.like('%广东%'),
ProjectManagement.province.like('%香港%'),
ProjectManagement.province.like('%澳门%')
))
elif project_source == '中原经济区':
project_obj = ProjectManagement.filter(or_(
project_obj = project_obj.filter(or_(
ProjectManagement.province.like('%河南%'),
ProjectManagement.province.like('%天津%'),
ProjectManagement.province.like('%河北%'),
......@@ -402,7 +475,7 @@ def areal_project():
ProjectManagement.province.like('%邯郸%'),
))
elif project_source == '其他':
project_obj = ProjectManagement.filter(and_(
project_obj = project_obj.filter(and_(
ProjectManagement.province.notlike('%河南%'),
ProjectManagement.province.notlike('%天津%'),
ProjectManagement.province.notlike('%河北%'),
......@@ -433,8 +506,23 @@ def areal_project():
))
else:
return jsonify(code=RET.PARAMERR, msg="参数错误!")
project_obj_list = project_obj.all()
pass
if not project_obj.all():
return jsonify(code=RET.NODATA, msg='没有符合条件的数据!')
project_size = project_obj.count()
project_obj_list = project_obj.order_by(ProjectManagement.upload_time.desc()).paginate(page, per_page).items
data = [{
"project_name": project_obj.project_name, # 项目名称
"investor_district": project_obj.investor_district, # 投资方所在地
"project_type": "", # 项目类型
"industry": project_obj.industry, # 所属行业
"investment_volume": project_obj.investment_volume, # 总投资额(万元)
} for project_obj in project_obj_list]
return jsonify(code=RET.OK,
data={"data": data,
"size": project_size,
"msg": "数据获取成功!"})
except Exception as e:
current_app.logger.error(e)
return jsonify(code=RET.DBERR, msg="数据查询错误!")
......@@ -1181,7 +1181,8 @@ class ProjectManagement(db.Model):
attract_name = db.Column(db.String(30), comment='引资方名称')
investor_name = db.Column(db.String(30), comment='投资方名称')
investor_district = db.Column(db.String(30), comment='投资方所在地')
industry = db.Column(db.String(20), comment='所属行业')
industry = db.Column(db.String(20), comment='所属行业-一级产业')
industry2 = db.Column(db.String(20), comment='所属行业-二级产业')
investment_volume = db.Column(db.Float, comment='总投资额(万元)')
construction_content = db.Column(db.String(30), comment='建设内容')
project_address = db.Column(db.String(20), 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