Commit 8b22b940 by dong

fix20230303

parent a18af756
...@@ -1206,10 +1206,9 @@ def upload_jc_data(): ...@@ -1206,10 +1206,9 @@ def upload_jc_data():
# 上传的文件 # 上传的文件
file = request.files['file'] file = request.files['file']
year = request.form['year'] # 年份,如'2022年' year = request.form['year'] # 年份,如'2022年'
if not year:
print(file.filename) # 打印文件名 return jsonify(code=RET.PARAMERR, msg='数据年份不能为空!')
upload_time = datetime.now().strftime("%Y-%m-%d %H:%M:%S") upload_time = datetime.now().strftime("%Y-%m-%d %H:%M:%S")
# current_year = str(datetime.now().year) + '年'
try: try:
f = file.read() # 文件内容 f = file.read() # 文件内容
......
...@@ -26,13 +26,29 @@ from apps.inves_manage.siku_view import get_num, upload_daily_picture ...@@ -26,13 +26,29 @@ from apps.inves_manage.siku_view import get_num, upload_daily_picture
"""指标分析""" """指标分析"""
# 获取项目中的最大月份
def get_max_month():
try:
project_obj_list = ProjectManagement.query.all()
month_list = []
year = datetime.now().year
for project_obj in project_obj_list:
if project_obj.sign_time and str(year) in project_obj.sign_time:
month_list.append(project_obj.sign_time.split('-')[1])
max_month = max(set(month_list)) + 1
return max_month
except Exception as e:
return 'error'
# 项目签约完成率 # 项目签约完成率
def get_data1(data_time, district_li, current_year): def get_data1(data_time, district_li, current_year):
data_li1 = [] data_li1 = []
now_time3 = '' now_time3 = ''
now_time4 = '' now_time4 = ''
now_time = datetime.now().strftime('%Y-%m-01 00:00:00') max_month = get_max_month()
now_time1 = (datetime.now() - relativedelta(years=1)).strftime('%Y-%m-01 00:00:00') now_time = datetime.now().strftime('%Y-{}-01 00:00:00'.format(max_month))
now_time1 = (datetime.now() - relativedelta(years=1)).strftime('%Y-01-01 00:00:00')
if data_time: if data_time:
if data_time[0] and data_time[1]: if data_time[0] and data_time[1]:
...@@ -42,6 +58,20 @@ def get_data1(data_time, district_li, current_year): ...@@ -42,6 +58,20 @@ def get_data1(data_time, district_li, current_year):
try: try:
for district in district_li: for district in district_li:
# 先查询最新的年度目标是哪一年的
jc_obj_list = JcTarget.query.filter(
JcTarget.district_name == district if district != '全市' else text(''),
JcTarget.is_delete == 0
).all()
# 获取最大年份
year_li = []
for jc_obj in jc_obj_list:
year = jc_obj.year.split('年')[0]
year_li.append(int(year))
max_year = max(set(year_li))
if not data_time: if not data_time:
project_obj_list = ProjectManagement.query.filter( project_obj_list = ProjectManagement.query.filter(
ProjectManagement.is_delete == 0, ProjectManagement.is_delete == 0,
...@@ -65,10 +95,12 @@ def get_data1(data_time, district_li, current_year): ...@@ -65,10 +95,12 @@ def get_data1(data_time, district_li, current_year):
investment_volume = 0 investment_volume = 0
else: else:
investment_volume = sum([project_obj.investment_volume for project_obj in project_obj_list]) investment_volume = sum([project_obj.investment_volume for project_obj in project_obj_list])
# 年度目标 # 年度目标
jc_obj = JcTarget.query.filter( jc_obj = JcTarget.query.filter(
JcTarget.district_name == district if district != '全市' else text(''), JcTarget.district_name == district if district != '全市' else text(''),
JcTarget.year.like('%{}%'.format(str(data_time[0])) if data_time else str(current_year)), # JcTarget.year.like('%{}%'.format(str(data_time[0])) if data_time else str(current_year)),
JcTarget.year.like('%{}%'.format(str(data_time[0]))) if data_time else text(''),
JcTarget.is_delete == 0 JcTarget.is_delete == 0
).first() ).first()
if not jc_obj: if not jc_obj:
...@@ -500,17 +532,14 @@ def statistic_jc_data(): ...@@ -500,17 +532,14 @@ def statistic_jc_data():
data_time = req_dic['data_time'] # ["2022", "01", "12"] data_time = req_dic['data_time'] # ["2022", "01", "12"]
current_year = datetime.now().year current_year = datetime.now().year
# current_year = 2022
district_li = ["全市", "城区", "泽州县", "高平市", "阳城县", "陵川县", district_li = ["全市", "城区", "泽州县", "高平市", "阳城县", "陵川县",
"沁水县", "晋城经济技术开发区"] "沁水县", "晋城经济技术开发区"]
try: try:
# data_li1, data_li2, data_li3, data_li4, data_li5 = get_data_li(district_li, current_year, data_time)
data_li1, data_li2, data_li3, data_li4, data_li5 = get_data_li(data_time, district_li, current_year) data_li1, data_li2, data_li3, data_li4, data_li5 = get_data_li(data_time, district_li, current_year)
# 六。综合得分 # 六。综合得分
data_li6 = get_data6(district_li, data_li1, data_li2, data_li3, data_li4, data_li5) data_li6 = get_data6(district_li, data_li1, data_li2, data_li3, data_li4, data_li5)
if not data_time: if not data_time:
# now_time = datetime.now().strftime('%Y-%m-01 00:00:00')
now_time = (datetime.now() - relativedelta(years=1)).strftime('%Y-%m-%d') now_time = (datetime.now() - relativedelta(years=1)).strftime('%Y-%m-%d')
now_time = now_time.split('-') now_time = now_time.split('-')
data_time1 = now_time[0] + '年' + now_time[1] + '月' + now_time[2] + '号-至今' data_time1 = now_time[0] + '年' + now_time[1] + '月' + now_time[2] + '号-至今'
......
...@@ -79,6 +79,8 @@ def search_all(): ...@@ -79,6 +79,8 @@ def search_all():
# @login_required # @login_required
def index_search(): def index_search():
req_dict = request.get_json() req_dict = request.get_json()
key_word = req_dict.get("key_word") # 关键字
carrier_type = req_dict.get("carrier_type") # 载体类型 1地块,2楼宇,3厂房,4园区,5项目 carrier_type = req_dict.get("carrier_type") # 载体类型 1地块,2楼宇,3厂房,4园区,5项目
carrier_name = req_dict.get("carrier_name") # 载体名称 carrier_name = req_dict.get("carrier_name") # 载体名称
district = req_dict.get("district") # 所属区县 district = req_dict.get("district") # 所属区县
...@@ -99,6 +101,19 @@ def index_search(): ...@@ -99,6 +101,19 @@ def index_search():
total_num = '' total_num = ''
try: try:
if carrier_type == 1: if carrier_type == 1:
if key_word:
land_obj = CarrierLand.query.filter(
CarrierLand.land_name.like('%{}%'.format(carrier_name)) if carrier_name else text(''),
CarrierLand.land_nature == nature if nature else text(''),
CarrierLand.total_area > float(area[0]) if area[0] else text(''),
CarrierLand.total_area <= float(area[1]) if area[1] else text(''),
).filter(
or_(
CarrierLand.land_name.like('%{}%'.format(key_word)) if key_word else text(''),
CarrierLand.land_nature.like('%{}%'.format(key_word)) if key_word else text(''),
CarrierLand.total_area.like('%{}%'.format(key_word)) if key_word else text('')
))
else:
land_obj = CarrierLand.query.filter( land_obj = CarrierLand.query.filter(
CarrierLand.land_name.like('%{}%'.format(carrier_name)) if carrier_name else text(''), CarrierLand.land_name.like('%{}%'.format(carrier_name)) if carrier_name else text(''),
CarrierLand.land_nature == nature if nature else text(''), CarrierLand.land_nature == nature if nature else text(''),
...@@ -118,6 +133,22 @@ def index_search(): ...@@ -118,6 +133,22 @@ def index_search():
} for land_obj in land_obj_list] } for land_obj in land_obj_list]
if carrier_type == 2: if carrier_type == 2:
if key_word:
build_obj = CarrierBuild.query.filter(
CarrierBuild.build_name.like('%{}%'.format(carrier_name)) if carrier_name else text(''),
CarrierBuild.attract_status == industry if industry else text(''),
CarrierBuild.build_area > build_area[0] if build_area[0] else text(''),
CarrierBuild.build_area <= build_area[1] if build_area[1] else text(''),
CarrierBuild.rent_money > rent_money[0] if rent_money[0] else text(''),
CarrierBuild.rent_money <= rent_money[1] if rent_money[1] else text('')
).filter(
or_(
CarrierBuild.build_name.like('%{}%'.format(carrier_name)) if carrier_name else text(''),
CarrierBuild.attract_status.like('%{}%'.format(key_word)) if key_word else text(''),
CarrierBuild.build_area.like('%{}%'.format(key_word)) if key_word else text(''),
CarrierBuild.rent_money.like('%{}%'.format(key_word)) if key_word else text('')
))
else:
build_obj = CarrierBuild.query.filter( build_obj = CarrierBuild.query.filter(
CarrierBuild.build_name.like('%{}%'.format(carrier_name)) if carrier_name else text(''), CarrierBuild.build_name.like('%{}%'.format(carrier_name)) if carrier_name else text(''),
CarrierBuild.attract_status == industry if industry else text(''), CarrierBuild.attract_status == industry if industry else text(''),
...@@ -140,6 +171,19 @@ def index_search(): ...@@ -140,6 +171,19 @@ def index_search():
} for build_obj in build_obj_list] } for build_obj in build_obj_list]
if carrier_type == 3: if carrier_type == 3:
if key_word:
factory_obj = CarrierFactory.query.filter(
CarrierFactory.factory_name.like('%{}%'.format(carrier_name)) if carrier_name else text(''),
CarrierFactory.attract_status == industry if industry else text(''),
CarrierFactory.factory_area > build_area[0] if build_area[0] else text(''),
CarrierFactory.factory_area <= build_area[1] if build_area[1] else text('')
).filter(
or_(
CarrierFactory.factory_name.like('%{}%'.format(key_word)) if key_word else text(''),
CarrierFactory.attract_status.like('%{}%'.format(key_word)) if key_word else text(''),
CarrierFactory.factory_area.like('%{}%'.format(key_word)) if key_word else text(''),
))
else:
factory_obj = CarrierFactory.query.filter( factory_obj = CarrierFactory.query.filter(
CarrierFactory.factory_name.like('%{}%'.format(carrier_name)) if carrier_name else text(''), CarrierFactory.factory_name.like('%{}%'.format(carrier_name)) if carrier_name else text(''),
CarrierFactory.attract_status == industry if industry else text(''), CarrierFactory.attract_status == industry if industry else text(''),
...@@ -159,6 +203,18 @@ def index_search(): ...@@ -159,6 +203,18 @@ def index_search():
} for factory_obj in factory_obj_list] } for factory_obj in factory_obj_list]
if carrier_type == 4: # 园区 if carrier_type == 4: # 园区
if key_word:
zone_obj = Induzone.query.filter(
Induzone.name.like('%{}%'.format(carrier_name)) if carrier_name else text(''),
Induzone.navigat == industry if industry else text(''),
Induzone.level == zone_level if zone_level else text('')
).filter(
or_(
Induzone.name.like('%{}%'.format(key_word)) if key_word else text(''),
Induzone.navigat.like('%{}%'.format(key_word)) if key_word else text(''),
Induzone.level.like('%{}%'.format(key_word)) if key_word else text(''),
))
else:
zone_obj = Induzone.query.filter( zone_obj = Induzone.query.filter(
Induzone.name.like('%{}%'.format(carrier_name)) if carrier_name else text(''), Induzone.name.like('%{}%'.format(carrier_name)) if carrier_name else text(''),
Induzone.navigat == industry if industry else text(''), Induzone.navigat == industry if industry else text(''),
...@@ -177,13 +233,27 @@ def index_search(): ...@@ -177,13 +233,27 @@ def index_search():
} for zone_obj in zone_obj_list] } for zone_obj in zone_obj_list]
if carrier_type == 5: # 项目 if carrier_type == 5: # 项目
if key_word:
project_obj = Project.query.filter( project_obj = Project.query.filter(
Project.name.like('%{}%'.format(carrier_name)) if carrier_name else text(''), Project.name.like('%{}%'.format(carrier_name)) if carrier_name else text(''),
Project.district == district if district else text(''), Project.district == district if district else text(''),
Project.attract_industry == industry if industry else text(''), Project.attract_industry == industry if industry else text(''),
Project.money > float(investment_volume_list[0]) * 10000 if investment_volume_list[0] else text(''), Project.money > float(investment_volume_list[0]) * 10000 if investment_volume_list[0] else text(''),
Project.money <= float(investment_volume_list[1]) * 10000 if investment_volume_list[1] else text(''), Project.money <= float(investment_volume_list[1]) * 10000 if investment_volume_list[1] else text(''),
).filter(
or_(
Project.name.like('%{}%'.format(key_word)) if key_word else text(''),
Project.district.like('%{}%'.format(key_word)) if key_word else text(''),
Project.attract_industry.like('%{}%'.format(key_word)) if key_word else text(''),
Project.money.like('%{}%'.format(key_word)) if key_word else text('')
))
else:
project_obj = Project.query.filter(
Project.name.like('%{}%'.format(carrier_name)) if carrier_name else text(''),
Project.district == district if district else text(''),
Project.attract_industry == industry if industry else text(''),
Project.money > float(investment_volume_list[0]) * 10000 if investment_volume_list[0] else text(''),
Project.money <= float(investment_volume_list[1]) * 10000 if investment_volume_list[1] else text('')
) )
project_obj_list = project_obj.paginate(page, perpage).items project_obj_list = project_obj.paginate(page, perpage).items
total_num = project_obj.count() total_num = project_obj.count()
......
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