Commit f4e0d331 by dong

fix20230107

parent 31c76fa6
......@@ -27,15 +27,25 @@ from apps.inves_manage.siku_view import get_num, upload_daily_picture
# 项目签约完成率
def get_data1(district_li, current_year):
def get_data1(district_li, current_year, data_time):
data_li1 = []
if data_time:
data_time = data_time[0] + '/' + data_time[1] + '/' + data_time[2]
try:
for district in district_li:
if not data_time:
project_obj_list = ProjectManagement.query.filter(
ProjectManagement.is_delete == 0,
ProjectManagement.sign_time.like('%{}%'.format(str(current_year))),
ProjectManagement.district.like('%{}%'.format(str(district))) if district != '全市' else text('')
).all()
else:
project_obj_list = ProjectManagement.query.filter(
ProjectManagement.is_delete == 0,
ProjectManagement.sign_time.like('%{}%'.format(str(current_year))),
ProjectManagement.district.like('%{}%'.format(str(district))) if district != '全市' else text('')
).all()
project_obj_list = [int(project_obj.sign_time.split('/')[1]) < data_time[1] for project_obj in project_obj_list]
if not project_obj_list:
investment_volume = 0
else:
......@@ -304,9 +314,9 @@ def get_data6(district_li, current_year):
return data_li6
def get_data_li(district_li, current_year):
def get_data_li(district_li, current_year, data_time):
# 一。项目签约完成率(签约项目完成率:完成率(%):签约金额(亿元)/ 年度目标(亿元))
data_li1 = get_data1(district_li, current_year)
data_li1 = get_data1(district_li, current_year, data_time)
if data_li1 == 'error':
return jsonify(code=RET.DBERR, msg='项目签约完成率计算出错')
......@@ -338,12 +348,19 @@ def get_data_li(district_li, current_year):
def statistic_shanxi_data():
req_dic = request.get_json()
flag = req_dic['flag'] # 1项目签约金额完成情况, 2新开工项目计划投资额完成情况, 3固定资产投资项目资金到位完成情况
data_time = req_dic['data_time'] # ["2022", "07", "18"]
data_time = data_time[0] + '年' + data_time[1] + '-' + data_time[2] + '月'
try:
# 获取最新的时间周期
data_obj = ShanxiTarget.query.order_by(sqlalchemy.desc(ShanxiTarget.id)).first()
data_time = data_obj.data_time
data_time1 = data_obj.data_time
if not data_time1:
# 获取最新时间周期的数据
target_obj_li = ShanxiTarget.query.filter_by(data_time=data_time).all()
target_obj_li = ShanxiTarget.query.filter_by(data_time=data_time1, is_delete=0).all()
else:
# 获取所选时间周期条件的数据
target_obj_li = ShanxiTarget.query.filter_by(data_time=data_time, is_delete=0).all()
data1 = ''
data2 = ''
if flag == 1:
......@@ -369,7 +386,7 @@ def statistic_shanxi_data():
"district_name": target_obj.district_name,
"arrive_money": round(target_obj.arrive_money / 10000, 2),
"arrive_target_money": round(target_obj.arrive_target_money / 10000, 2),
"arrive_finish_rate": target_obj.arrive_finish_rate,
"arrive_finish_rate": round(target_obj.arrive_finish_rate, 2)
} for target_obj in target_obj_li]
data1 = sorted(data, key=lambda x: x['arrive_money'], reverse=True)
data2 = sorted(data1, key=lambda x: x['arrive_finish_rate'], reverse=True)
......@@ -383,12 +400,14 @@ def statistic_shanxi_data():
# 晋城市数据统计
@api_manage.route("/StatisticJcData", methods=["POST"])
def statistic_jc_data():
# req_dic = request.get_json()
req_dic = request.get_json()
data_time = req_dic['data_time']
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)
data_li1, data_li2, data_li3, data_li4, data_li5 = get_data_li(district_li, current_year, data_time)
# 六。综合得分
data_li6 = get_data6(district_li, current_year)
......
......@@ -1327,8 +1327,8 @@ class ShanxiTarget(db.Model):
upload_time = db.Column(db.String(30), comment='上传日期')
upload_unit = db.Column(db.String(30), comment='上传部门')
upload_people = db.Column(db.String(30), comment='上传人')
district_name = db.Column(db.String(30), comment='区县名称')
# 签约项目情况
sign_money = db.Column(db.Float, comment='签约金额')
sign_target_money = db.Column(db.Float, comment='目标金额(年度目标)')
......
......@@ -100,7 +100,6 @@ def industry_cluster():
find_up_thr1(2, industry_id),
find_up_thr1(3, industry_id)]
}
# print(result)
except Exception as e:
current_app.logger.error(e)
return jsonify(code=RET.DBERR, msg="数据异常")
......@@ -138,16 +137,17 @@ def find_up_thr1(industry_type, industry_id):
"chain_name_id": chain_one_obj.id
} for chain_one_obj in chain_one_obj_list]
for it in res_one: # 一级节点
pname_one = it
chain_name = pname_one["chain_name"]
c_type = Industry
total_count = 0
company_count = get_count(chain_name)
total_count += company_count
# 一级
node_one = {
"node": "{}".format(chain_name),
"level": 2,
"company_count": company_count,
# "company_count": total_count,
"subNodeList": []
}
# 获取二级节点
......@@ -160,6 +160,8 @@ def find_up_thr1(industry_type, industry_id):
pname_two = item
chain_name = pname_two["chain_name"]
company_count = get_count(chain_name)
total_count += company_count
# 二级
node_two = {
"node": "{}".format(chain_name),
......@@ -176,6 +178,8 @@ def find_up_thr1(industry_type, industry_id):
pname_thr = itm
chain_name = pname_thr["chain_name"]
company_count = get_count(chain_name)
total_count += company_count
# 三级
node_thr = {
"node": "{}".format(chain_name),
......@@ -185,7 +189,7 @@ def find_up_thr1(industry_type, industry_id):
}
node_two["subNodeList"].append(node_thr)
node_one["subNodeList"].append(node_two)
data["subNodeList"].append(node_one)
data["subNodeList"].append(node_one.update({"company_count": total_count}))
return data
......
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