Commit 79cf087d by dong

fix20230417

parent 82bdce55
...@@ -5,86 +5,252 @@ from apps.utils.response_code import RET ...@@ -5,86 +5,252 @@ from apps.utils.response_code import RET
from apps.big_data import api_bigdata from apps.big_data import api_bigdata
# 获取项目列表 # 获取经济指标数据
@api_bigdata.route("/GetJjzb", methods=["POST"])
def get_jjzb():
'''获取经济指标数据'''
req_dict = request.get_json()
district = req_dict.get("district") # 区县或者开发区名称
year = req_dict.get("year")
# 区县名称转换字典
district_dict = {
'沁水县': '沁水县',
'高平市': '高平市',
'陵川县': '陵川县',
'阳城县': '阳城县',
'泽州县': '泽州县',
'城区': '城区',
'晋城经济技术开发区': '晋城经济技术开发区'
}
try:
if not district or district == '晋城市':
datas = City.query.filter(City.area == '晋城市',
City.year == year if year else text('')).first()
else:
datas = City.query.filter(City.area == district,
City.year == year if year else text('')).first()
df_dic = ''
if datas:
df_dic = {"GDP": '%.2f亿元' % (datas.GDP / 10000) if datas.GDP else "-亿元", # 地区生产总值
"addscale": '%.2f' % datas.addscale + "%" if datas.addscale else "-%", # 规上工业增加值增速
"investment": '%.2f亿元' % (datas.investment / 10000) if datas.investment else "-亿元", # 固定资产投资
"retail": '%.2f亿元' % (datas.retail / 10000) if datas.retail else "-亿元", # 社会消费品零售额
"in_out": '%.2f亿元' % (datas.in_out / 10000) if datas.in_out else "-亿元", # 进出口总额
"public": '%.2f亿元' % (datas.public / 10000) if datas.public else "-亿元", # 一般公共预算支出
"people_out": '%.2f元' % datas.people_out if datas.people_out else "-元", # 居民人均可支配收入
"people_per": '%.2f' % datas.people_per if datas.people_per else "-",
"question": datas.question,
"year": str(datas.year) + '年'
} # 居民消费价格指数
else:
df_dic = {"GDP": '', # 地区生产总值
"addscale": '', # 规上工业增加值增速
"investment": '', # 固定资产投资
"retail": '', # 社会消费品零售额
"in_out": '', # 进出口总额
"public": '', # 一般公共预算支出
"people_out": '', # 居民人均可支配收入
"people_per": '',
"question": '',
"year": str(datas.year) + '年'
} # 居民消费价格指数
return jsonify(code=RET.OK, msg="查找成功", data=df_dic)
except Exception as e:
current_app.logger.error(e)
return jsonify(code=RET.DBERR, msg="数据库错误")
# 产业结构分布
@api_bigdata.route("/GetCyjg", methods=["POST"])
def get_cyjg():
'''产业机构分布饼状图数据'''
req_dict = request.get_json()
district = req_dict.get("district") # 区县或者开发区名称
year = req_dict.get("year")
# 区县名称转换字典
district_dict = {
'沁水县': '沁水县',
'高平市': '高平市',
'陵川县': '陵川县',
'阳城县': '阳城县',
'泽州县': '泽州县',
'城区': '城区',
'晋城经济技术开发区': '晋城经济技术开发区'
}
# 1. 左上角企业数量各资质统计
try:
if not district or district == '晋城市':
company = Company.query.filter(
Company.city == "晋城市",
Company.build_date.like('%{}%'.format(year)))
else:
company = Company.query.filter(
Company.district == district_dict[district],
Company.city == "晋城市",
Company.build_date.like('%{}%'.format(year))
)
count_gt = company.filter_by(f_type=1).count() # 钢铁
count_gjd = company.filter_by(f_type=2).count() # 光机电
count_mcq = company.filter_by(f_type=7).count() # 煤层气
count_zbzz = company.filter_by(f_type=8).count() # 装备制造
count_zz = company.filter_by(f_type=9).count() # 铸造
count_mhg = company.filter_by(f_type=10).count() # 煤化工
count_xcl = company.filter_by(f_type=11).count() # 新材料
count_lsjc = company.filter_by(f_type=12).count() # 绿色建材
count_yy = company.filter_by(f_type=13).count() # 医药
count_smfz = company.filter_by(f_type=14).count() # 丝麻纺织服装
count_xdfwy = company.filter_by(f_type=15).count() # 现代服务业
count_szjj = company.filter_by(f_type=16).count() # 数字经济
count_whly = company.filter_by(f_type=17).count() # 文化旅游
# 产业结构分布
indu_dic = [
{"name": "钢铁", "value": count_gt}, # {百分比,value}
{"name": "光机电", "value": count_gjd},
{"name": "煤层气", "value": count_mcq},
{"name": "装备制造", "value": count_zbzz},
{"name": "铸造", "value": count_zz},
{"name": "煤化工", "value": count_mhg},
{"name": "新材料", "value": count_xcl},
{"name": "绿色建材", "value": count_lsjc},
{"name": "医药", "value": count_yy},
{"name": "丝麻纺织服装", "value": count_smfz},
{"name": "现代服务业", "value": count_xdfwy},
{"name": "数字经济", "value": count_szjj},
{"name": "文化旅游", "value": count_whly}
]
return jsonify(code=RET.OK, msg="查找成功", data=indu_dic)
except Exception as e:
current_app.logger.error(e)
return jsonify(code=RET.DBERR, msg="数据库错误")
# 招商引资作战图
@api_bigdata.route("/GetZzt", methods=["POST"])
def get_zzt():
req_dict = request.get_json()
district = req_dict.get("district") # 区县或者开发区名称
year = req_dict.get("year")
try:
project_map = []
industry_money = []
industry_nums = []
list1 = ["晋城市", "沁水县", "高平市", "陵川县", "阳城县", "泽州县", "城区", "晋城经济技术开发区"]
# 晋城市,点击区县之前默认数据
if not district or district == '晋城市':
for i in list1:
# 1.招商引资作战图数据
ss = Examine.query.filter(Examine.district == i,
Examine.year.like('%{}%'.format(year))).first()
project_map.append({"name": i,
"nums1": "{}亿元".format(ss.sign_finnish),
"add1": ss.sign_grade,
"nums2": "{}亿元".format(ss.start_finish),
"add2": ss.start_grade,
"nums3": "{}亿元".format(ss.invest_finish),
"add3": ss.invest_grade,
"nums4": "{}个".format(ss.start_num),
"add4": ss.start_num_grade
})
# 点击区县后的联动数据
else:
# 1.招商引资作战图数据
ss = Examine.query.filter_by(district=district, year=year).first()
project_map.append({"name": district,
"nums1": "{}亿元".format(ss.sign_finnish),
"add1": ss.sign_grade,
"nums2": "{}亿元".format(ss.start_finish),
"add2": ss.start_grade,
"nums3": "{}亿元".format(ss.invest_finish),
"add3": ss.invest_grade,
"nums4": "{}个".format(ss.start_num),
"add4": ss.start_num_grade
})
except Exception as e:
current_app.logger.error(e)
return jsonify(code=RET.DBERR, msg="数据库错误")
return jsonify(code=RET.OK, msg="获取成功", data=project_map)
# 已开工项目分布
@api_bigdata.route("/GetKgxm", methods=["POST"])
def get_kgxm():
req_dict = request.get_json()
district = req_dict.get("district") # 区县或者开发区名称
# year = req_dict.get("year")
try:
industry_money = []
industry_nums = []
# 晋城市,点击区县之前默认数据
if not district or district == '晋城市':
# 已开工项目产业分布/已开工项目到位资金产业分布
project_list = NewProject.query.filter_by(district="晋城市").all()
i = 0
for project in project_list:
i += 1
if i > 7:
pass
else:
industry_money.append({"name": project.type,
"value": project.money})
industry_nums.append({"name": project.type,
"value": project.number})
else:
# 已开工项目产业分布/已开工项目到位资金产业分布
i = 0
project_list = NewProject.query.filter_by(district=district).all()
for project in project_list:
i += 1
if i > 7:
pass
else:
industry_money.append({"name": project.type,
"value": project.money})
industry_nums.append({"name": project.type,
"value": project.number})
except Exception as e:
current_app.logger.error(e)
return jsonify(code=RET.DBERR, msg="数据库错误")
data = {
"industry_nums": industry_nums, # 已开工项目产业分布
"industry_money": industry_money, # 已开工项目产业分布
}
return jsonify(code=RET.OK, msg="获取成功", data=data)
# 晋城项目总览
@api_bigdata.route("/GetProject", methods=["POST"]) @api_bigdata.route("/GetProject", methods=["POST"])
def get_project(): def get_project():
req_dic = request.get_json() req_dic = request.get_json()
# # token = request.headers['token']
#
# project_stalker = req_dic['project_stalker']
#
# project_name = req_dic['project_name']
# district = req_dic['district']
# development_area = req_dic['development_area']
# investor_name = req_dic['investor_name']
# investor_district = req_dic['investor_district']
# industry = req_dic['industry']
# industry2 = ''
# if '/' in industry:
# industry1 = industry.split('/')[0]
# industry2 = industry.split('/')[1]
# else:
# industry1 = industry
# investment_volume = req_dic['investment_volume']
# project_progress = req_dic['project_progress']
# project_year = req_dic['project_year']
page = req_dic['page'] page = req_dic['page']
per_page = req_dic['per_page'] per_page = req_dic['per_page']
# flag = req_dic['flag'] year = req_dic['year']
# try:
# user_obj = verify_token(token)
# user_district = get_district_name(token)
# except Exception as e:
# current_app.logger.error(e)
# return jsonify(code=RET.SESSIONERR, msg="进行操作时用户信息校验失败,请重新登陆后尝试!")
try: try:
# project_obj = ProjectManagement.query.filter(
# ProjectManagement.project_name.like('%{}%'.format(project_name)) if project_name else text(''),
# ProjectManagement.project_stalker == project_stalker if project_stalker else text(''),
# ProjectManagement.district == district if district else text(''),
# ProjectManagement.development_area == development_area if development_area else text(''),
# ProjectManagement.investment_volume > investment_volume[0] if investment_volume else text(''),
# ProjectManagement.investment_volume <= investment_volume[1] if investment_volume else text(''),
# ProjectManagement.investor_district.like('%{}%'.format(investor_district)) if investor_district else text(
# ''),
# ProjectManagement.industry.like('%{}%'.format(industry1)) if industry1 else text(''),
# ProjectManagement.industry2.like('%{}%'.format(industry2)) if industry2 else text(''),
# ProjectManagement.investor_name.like('%{}%'.format(investor_name)) if investor_name else text(''),
# ProjectManagement.project_progress == project_progress if project_progress else text(''),
# ProjectManagement.project_year == project_year if project_year else text(''),
# ProjectManagement.is_delete == 0
# )
project_obj = ProjectManagement.query.filter( project_obj = ProjectManagement.query.filter(
# ProjectManagement.district == user_district if user_district != '晋城市' else text(''), ProjectManagement.is_delete == 0,
# ProjectManagement.sign_time.notin_(['Null', '']) if flag == 2 else text(''), ProjectManagement.sign_time.like("%{}%".format(year)) if year else text('')
# ProjectManagement.project_name.like('%{}%'.format(project_name)) if project_name else text(''),
# ProjectManagement.project_stalker == project_stalker if project_stalker else text(''),
# ProjectManagement.project_stalker != '' if flag == 2 else text(''),
# ProjectManagement.district == district if district else text(''),
# ProjectManagement.development_area == development_area if development_area else text(''),
# ProjectManagement.investment_volume > investment_volume[0] if investment_volume else text(''),
# ProjectManagement.investment_volume <= investment_volume[1] if investment_volume else text(''),
# ProjectManagement.investor_district.like('%{}%'.format(investor_district)) if investor_district else text(''),
# ProjectManagement.industry.like('%{}%'.format(industry1)) if industry1 else text(''),
# ProjectManagement.industry2.like('%{}%'.format(industry2)) if industry2 else text(''),
# ProjectManagement.investor_name.like('%{}%'.format(investor_name)) if investor_name else text(''),
# ProjectManagement.project_progress == project_progress if project_progress else text(''),
# ProjectManagement.project_year == project_year if project_year else text(''),
ProjectManagement.is_delete == 0
) )
if not project_obj.all(): if not project_obj.all():
return jsonify(code=RET.NODATA, msg='没有符合条件的数据!') return jsonify(code=RET.NODATA, msg='没有符合条件的数据!')
project_size = project_obj.count() project_size = project_obj.count()
project_obj_list = project_obj.order_by(ProjectManagement.upload_time.desc()).paginate(page, per_page).items project_obj_list = project_obj.order_by(ProjectManagement.sign_time.desc()).paginate(page, per_page).items
if project_obj_list: if project_obj_list:
data = [{ data = [{
"id": project_obj.id, "id": project_obj.id,
"sign_time": project_obj.sign_time,
"project_stalker": project_obj.project_stalker, "project_stalker": project_obj.project_stalker,
"project_name": project_obj.project_name, "project_name": project_obj.project_name,
"district": project_obj.district, "district": project_obj.district,
...@@ -105,3 +271,55 @@ def get_project(): ...@@ -105,3 +271,55 @@ def get_project():
except Exception as e: except Exception as e:
current_app.logger.error(e) current_app.logger.error(e)
return jsonify(code=RET.DBERR, msg="查询数据库错误!") return jsonify(code=RET.DBERR, msg="查询数据库错误!")
# 重点招商项目
@api_bigdata.route("/MajorProject", methods=["POST"])
def major_project():
req_dict = request.get_json()
district = req_dict.get("district") # 县区
try:
if not district or district == "晋城市":
project = Project.query.all()
data_project = [{"name": i.name, "id": i.id} for i in project]
return jsonify(code=RET.OK, msg="查询成功", data=data_project)
else: # 区县、开发区
project = Project.query.filter_by(district=district)
data_project = [{"name": i.name, "id": i.id} for i in project]
return jsonify(code=RET.OK, msg="查询成功", data=data_project)
except Exception as e:
current_app.logger.error(e)
return jsonify(code=RET.DATAERR, msg="数据库错误")
# 获取重点项目的详情,详情页
@api_bigdata.route("/MajorProjectDetail", methods=["POST"])
def major_project_detail():
req_dic = request.get_json()
id = req_dic.get("id")
if not id:
return jsonify(code=RET.PARAMERR, msg="参数不完整")
try:
project = Project.query.get(id)
data = {
"id": project.id, # 工程名
"name": project.name, # 工程名
"district": project.district, # 区县名称
"type": project.type, # 工程类型
"money": project.money, # 项目投资金额
"background": project.background, # 项目背景
"content": project.content, # 项目的具体内容
"way": project.way, # 拟引资方式及内容
"company": project.company, # 招商单位
"contact": project.contact, # 联系方式
"email": project.email, # 电子邮箱
"progress": '落地项目' if project.project_stage_id == 1 else '招商项目' if project.project_stage_id == 2 else ''
}
return jsonify(code=RET.OK, msg="查找成功", data=data)
except Exception as e:
current_app.logger.error(e)
return jsonify(code=RET.DBERR, msg="数据库错误")
...@@ -618,7 +618,6 @@ class Project(BaseModel, db.Model): ...@@ -618,7 +618,6 @@ class Project(BaseModel, db.Model):
project_stage_id = db.Column(db.Integer, comment='项目阶段id:落地项目为1,招商项目为2') project_stage_id = db.Column(db.Integer, comment='项目阶段id:落地项目为1,招商项目为2')
name = db.Column(db.String(255), comment='工程名') # 一.工程名 name = db.Column(db.String(255), comment='工程名') # 一.工程名
district = db.Column(db.String(255), comment='区县名称') # 二.县区 district = db.Column(db.String(255), comment='区县名称') # 二.县区
# money = db.Column(db.String(255), comment='项目投资金额') # 三.(2)项目投资金额
money = db.Column(db.Float, comment='项目投资金额') # 三.(2)项目投资金额 money = db.Column(db.Float, comment='项目投资金额') # 三.(2)项目投资金额
attract_industry = db.Column(db.String(255), comment='招引业态') # 三.(2)项目投资金额 attract_industry = db.Column(db.String(255), comment='招引业态') # 三.(2)项目投资金额
type = db.Column(db.String(255), comment='工程类型') # 三.(1)工程类型 type = db.Column(db.String(255), comment='工程类型') # 三.(1)工程类型
......
...@@ -159,10 +159,6 @@ def menu(): ...@@ -159,10 +159,6 @@ def menu():
} }
# 2. 左上角获取经济指标数据 # 2. 左上角获取经济指标数据
# year = datetime.now().year - 1
# jjzb_data = get_jjzb(district, year)
# year = datetime.now().year
# jjzb_data1 = get_jjzb(district, year)
jjzb_data = get_jjzb(district, 1) jjzb_data = get_jjzb(district, 1)
jjzb_data1 = get_jjzb(district, 2) jjzb_data1 = get_jjzb(district, 2)
...@@ -185,10 +181,6 @@ def menu(): ...@@ -185,10 +181,6 @@ def menu():
count_szjj = company.filter_by(f_type=16).count() # 数字经济 count_szjj = company.filter_by(f_type=16).count() # 数字经济
count_whly = company.filter_by(f_type=17).count() # 文化旅游 count_whly = company.filter_by(f_type=17).count() # 文化旅游
count_qt = count_all - count_gt - count_gjd - count_mcq - count_zbzz - \
count_zz - count_mhg - count_xcl - count_lsjc - count_yy - \
count_smfz - count_xdfwy - count_szjj - count_whly
# 产业结构分布 # 产业结构分布
indu_dic = [ indu_dic = [
{"name": "钢铁", "value": count_gt}, # {百分比,value} {"name": "钢铁", "value": count_gt}, # {百分比,value}
...@@ -206,8 +198,6 @@ def menu(): ...@@ -206,8 +198,6 @@ def menu():
{"name": "文化旅游", "value": count_whly} {"name": "文化旅游", "value": count_whly}
] ]
# TODO 4.五大千亿级产业集群
data = { data = {
"jjzb_dic": jjzb_data, # 左上角经济指标数据 "jjzb_dic": jjzb_data, # 左上角经济指标数据
"jjzb_dic1": jjzb_data1, # 左上角经济指标数据 "jjzb_dic1": jjzb_data1, # 左上角经济指标数据
......
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