Commit 5cf6e3a4 by dong

fix20230111

parent ab01b5c0
...@@ -18,11 +18,9 @@ from apps.utils.response_code import RET ...@@ -18,11 +18,9 @@ from apps.utils.response_code import RET
from apps.inves_manage import api_manage from apps.inves_manage import api_manage
from apps.util import verify_token from apps.util import verify_token
# 项目管理---项目列表 # 项目管理---项目列表
from apps.inves_manage.siku_view import get_num, upload_daily_picture from apps.inves_manage.siku_view import get_num, upload_daily_picture
"""台账管理""" """台账管理"""
...@@ -32,7 +30,8 @@ def file_delete(file_del_list, project_id): ...@@ -32,7 +30,8 @@ def file_delete(file_del_list, project_id):
if file_del_list: if file_del_list:
for file_id in file_del_list: for file_id in file_del_list:
if file_id: if file_id:
file_obj = ProjectFile.query.filter_by(id=file_id, project_manager_id=project_id, file_type=1).first() file_obj = ProjectFile.query.filter_by(id=file_id, project_manager_id=project_id,
file_type=1).first()
db.session.delete(file_obj) db.session.delete(file_obj)
db.session.commit() db.session.commit()
return 'ok' return 'ok'
...@@ -137,6 +136,7 @@ def check_project_detail1(): ...@@ -137,6 +136,7 @@ def check_project_detail1():
if not project_id: if not project_id:
return jsonify(code=RET.PARAMERR, msg="参数不能为空!") return jsonify(code=RET.PARAMERR, msg="参数不能为空!")
try: try:
industry = ''
project_obj = ProjectManagement.query.filter_by(id=project_id, is_delete=0).first() project_obj = ProjectManagement.query.filter_by(id=project_id, is_delete=0).first()
if project_obj.industry and project_obj.industry2: if project_obj.industry and project_obj.industry2:
industry = project_obj.industry + '/' + project_obj.industry2 industry = project_obj.industry + '/' + project_obj.industry2
...@@ -164,9 +164,15 @@ def check_project_detail1(): ...@@ -164,9 +164,15 @@ def check_project_detail1():
"project_source": project_obj.project_source, # 项目来源 "project_source": project_obj.project_source, # 项目来源
"project_unity": project_obj.project_unity, # 项目申报单位 "project_unity": project_obj.project_unity, # 项目申报单位
"is_development_project": project_obj.is_development_project, # 是否属于开发区项目 "is_development_project": project_obj.is_development_project, # 是否属于开发区项目
"sign_time": project_obj.sign_time, # 签约时间 # "sign_time": project_obj.sign_time.strftime("%Y/%m/%d") if project_obj.sign_time and project_obj.sign_time != '0000-00-00 00:00:00' else '', # 签约时间
"start_time": project_obj.start_time, # 开工时间 # "start_time": project_obj.start_time.strftime("%Y/%m/%d") if project_obj.start_time and project_obj.start_time != '0000-00-00 00:00:00' else '', # 开工时间
"end_time": project_obj.end_time, # 竣工时间 # "end_time": project_obj.end_time.strftime("%Y/%m/%d") if project_obj.end_time and project_obj.end_time != '0000-00-00 00:00:00' else '', # 竣工时间
"sign_time": project_obj.sign_time,
# 签约时间
"start_time": project_obj.start_time,
# 开工时间
"end_time": project_obj.end_time,
# 竣工时间
"investor_rank": project_obj.investor_rank, # 投资方排名 "investor_rank": project_obj.investor_rank, # 投资方排名
"is_transf_project": project_obj.is_transf_project, # 是否转型项目 "is_transf_project": project_obj.is_transf_project, # 是否转型项目
"country": project_obj.country, # 投资方国别 "country": project_obj.country, # 投资方国别
...@@ -301,6 +307,7 @@ def upload_project_data2(): ...@@ -301,6 +307,7 @@ def upload_project_data2():
investment_history = row_content[24] # 资金到位历史累计(万元) investment_history = row_content[24] # 资金到位历史累计(万元)
project_stalker = row_content[25] # 项目跟踪 project_stalker = row_content[25] # 项目跟踪
project_stalker_explain = row_content[26] # 项目跟踪说明 project_stalker_explain = row_content[26] # 项目跟踪说明
investor_district = ''
if provence and city: if provence and city:
investor_district = provence + "/" + city investor_district = provence + "/" + city
if provence and not city: if provence and not city:
...@@ -333,7 +340,8 @@ def upload_project_data2(): ...@@ -333,7 +340,8 @@ def upload_project_data2():
project_num_li = '' project_num_li = ''
project_obj_list = ProjectManagement.query.all() project_obj_list = ProjectManagement.query.all()
if project_obj_list: if project_obj_list:
project_num_li = [project_obj.project_num for project_obj in project_obj_list if project_obj.project_num.startswith(time_strf + prefix_dic[district])] project_num_li = [project_obj.project_num for project_obj in project_obj_list if
project_obj.project_num.startswith(time_strf + prefix_dic[district])]
if project_num_li: if project_num_li:
max_project_num = max(project_num_li)[10:] max_project_num = max(project_num_li)[10:]
num = get_num(max_project_num) num = get_num(max_project_num)
...@@ -413,7 +421,6 @@ def batch_export_project5(): ...@@ -413,7 +421,6 @@ def batch_export_project5():
current_app.logger.error(e) current_app.logger.error(e)
return jsonify(code=RET.SESSIONERR, msg="进行操作时用户信息校验失败,请重新登陆后尝试!") return jsonify(code=RET.SESSIONERR, msg="进行操作时用户信息校验失败,请重新登陆后尝试!")
req_dic = request.get_json() req_dic = request.get_json()
select_id_list = req_dic["select_id_list"] select_id_list = req_dic["select_id_list"]
# path = './apps/statics/project_file/' # path = './apps/statics/project_file/'
...@@ -468,6 +475,14 @@ def batch_export_project5(): ...@@ -468,6 +475,14 @@ def batch_export_project5():
data_list.append(set_project_status) data_list.append(set_project_status)
project_progress = project_obj.project_progress project_progress = project_obj.project_progress
data_list.append(project_progress) data_list.append(project_progress)
# sign_time = project_obj.sign_time.strftime(
# "%Y/%m/%d") if project_obj.sign_time and project_obj.sign_time != '0000-00-00 00:00:00' else ''
# data_list.append(sign_time)
# start_time = project_obj.start_time.strftime(
# "%Y/%m/%d") if project_obj.start_time and project_obj.start_time != '0000-00-00 00:00:00' else ''
# data_list.append(start_time)
# end_time = project_obj.end_time.strftime(
# "%Y/%m/%d") if project_obj.end_time and project_obj.end_time != '0000-00-00 00:00:00' else ''
sign_time = project_obj.sign_time sign_time = project_obj.sign_time
data_list.append(sign_time) data_list.append(sign_time)
start_time = project_obj.start_time start_time = project_obj.start_time
...@@ -790,9 +805,9 @@ def upload_shanxi_data(): ...@@ -790,9 +805,9 @@ def upload_shanxi_data():
return jsonify(code=RET.PARAMERR, msg='区县名称不能为空!') return jsonify(code=RET.PARAMERR, msg='区县名称不能为空!')
try: try:
target_obj = ShanxiTarget.query.filter_by(district_name=district_name, data_time=data_time, is_delete=0).first() target_obj = ShanxiTarget.query.filter_by(district_name=district_name, data_time=data_time,
is_delete=0).first()
if target_obj: # 更新 if target_obj: # 更新
# target_obj.file_name = target_obj.data_time + '全省数据'
target_obj.data_time = data_time target_obj.data_time = data_time
target_obj.upload_time = upload_time target_obj.upload_time = upload_time
target_obj.upload_unit = user_unity target_obj.upload_unit = user_unity
...@@ -924,7 +939,8 @@ def add_shanxi_data(): ...@@ -924,7 +939,8 @@ def add_shanxi_data():
add_num = 0 add_num = 0
update_num = 0 update_num = 0
try: try:
target_obj = ShanxiTarget.query.filter_by(district_name=district_name, data_time=data_time, is_delete=0).first() target_obj = ShanxiTarget.query.filter_by(district_name=district_name, data_time=data_time,
is_delete=0).first()
if target_obj: # 更新 if target_obj: # 更新
target_obj.data_time = data_time target_obj.data_time = data_time
target_obj.upload_time = upload_time target_obj.upload_time = upload_time
...@@ -1234,7 +1250,6 @@ def add_jc_data(): ...@@ -1234,7 +1250,6 @@ def add_jc_data():
req_dic = request.get_json() req_dic = request.get_json()
data_list = req_dic["data_list"] data_list = req_dic["data_list"]
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) + '年'
for data in data_list: for data in data_list:
year = data['year'] # 所属年份 year = data['year'] # 所属年份
district_name = data['district_name'] # 区县名称 district_name = data['district_name'] # 区县名称
...@@ -1531,7 +1546,8 @@ def upload_money_arrive(): ...@@ -1531,7 +1546,8 @@ def upload_money_arrive():
return jsonify(code=RET.PARAMERR, msg='区县名称不能为空!') return jsonify(code=RET.PARAMERR, msg='区县名称不能为空!')
try: try:
target_obj = MoneyArrive.query.filter_by(district_name=district_name, data_time=data_time, is_delete=0).first() target_obj = MoneyArrive.query.filter_by(district_name=district_name, data_time=data_time,
is_delete=0).first()
if target_obj: # 更新 if target_obj: # 更新
# target_obj.file_name = target_obj.data_time + '固投资金到位情况' # target_obj.file_name = target_obj.data_time + '固投资金到位情况'
target_obj.data_time = data_time target_obj.data_time = data_time
...@@ -1643,7 +1659,8 @@ def add_edit_money_arrive(): ...@@ -1643,7 +1659,8 @@ def add_edit_money_arrive():
money_arrive_list.append(money_arrive) money_arrive_list.append(money_arrive)
try: try:
target_obj = MoneyArrive.query.filter_by(district_name=district_name, data_time=data_time, is_delete=0).first() target_obj = MoneyArrive.query.filter_by(district_name=district_name, data_time=data_time,
is_delete=0).first()
if target_obj: # 更新 if target_obj: # 更新
target_obj.data_time = data_time target_obj.data_time = data_time
# target_obj.file_name = data_time + "固投资金到位情况", # target_obj.file_name = data_time + "固投资金到位情况",
...@@ -1793,73 +1810,3 @@ def delete_money_arrive(): ...@@ -1793,73 +1810,3 @@ def delete_money_arrive():
db.session.rollback() db.session.rollback()
current_app.logger.error(e) current_app.logger.error(e)
return jsonify(code=RET.DBERR, msg="查询数据库错误!") return jsonify(code=RET.DBERR, msg="查询数据库错误!")
...@@ -27,10 +27,34 @@ from apps.inves_manage.siku_view import get_num, upload_daily_picture ...@@ -27,10 +27,34 @@ from apps.inves_manage.siku_view import get_num, upload_daily_picture
# 项目签约完成率 # 项目签约完成率
# def get_data1(district_li, current_year, data_time):
def get_data1(district_li, current_year): def get_data1(district_li, current_year):
data_li1 = [] data_li1 = []
# now_time = datetime.now().strftime('%Y-%m-01 00:00:00')
# now_time1 = (datetime.now() - relativedelta(years=1)).strftime('%Y-%m-01 00:00:00')
#
# if data_time:
# if data_time[0] and data_time[1]:
# now_time3 = ('{}-{}-01 00:00:00').format(data_time[0], data_time[1])
# if data_time[2]:
# now_time4 = ('{}-{}-01 00:00:00').format(data_time[0], data_time[2])
try: try:
for district in district_li: for district in district_li:
# if not data_time:
# project_obj_list = ProjectManagement.query.filter(
# ProjectManagement.is_delete == 0,
# ProjectManagement.sign_time < now_time,
# ProjectManagement.sign_time >= now_time1,
# 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 < now_time4 if now_time4 else text(''),
# ProjectManagement.sign_time >= now_time3,
# ProjectManagement.district.like('%{}%'.format(str(district))) if district != '全市' else text('')
# ).all()
project_obj_list = ProjectManagement.query.filter( project_obj_list = ProjectManagement.query.filter(
ProjectManagement.is_delete == 0, ProjectManagement.is_delete == 0,
ProjectManagement.sign_time.like('%{}%'.format(str(current_year))), ProjectManagement.sign_time.like('%{}%'.format(str(current_year))),
...@@ -68,23 +92,51 @@ def get_data1(district_li, current_year): ...@@ -68,23 +92,51 @@ def get_data1(district_li, current_year):
# 项目开工率 # 项目开工率
# def get_data2(district_li, current_year, data_time):
def get_data2(district_li, current_year): def get_data2(district_li, current_year):
data_li2 = [] data_li2 = []
# now_time = datetime.now().strftime('%Y-%m-01 00:00:00')
# now_time1 = (datetime.now() - relativedelta(years=1)).strftime('%Y-%m-01 00:00:00')
#
# if data_time:
# if data_time[0] and data_time[1]:
# now_time3 = ('{}-{}-01 00:00:00').format(data_time[0], data_time[1])
# if data_time[2]:
# now_time4 = ('{}-{}-01 00:00:00').format(data_time[0], data_time[2])
try: try:
for district in district_li: for district in district_li:
# 签约项目个数 # 签约项目个数
# if not data_time:
# sign_num = ProjectManagement.query.filter(
# ProjectManagement.is_delete == 0,
# # ProjectManagement.sign_time.like('%{}%'.format(str(current_year))),
# ProjectManagement.sign_time < now_time,
# ProjectManagement.sign_time >= now_time1,
# ProjectManagement.district.like('%{}%'.format(str(district))) if district != '全市' else text('')
# ).count()
# # 年度目标
# start_num = ProjectManagement.query.filter(
# ProjectManagement.is_delete == 0,
# # ProjectManagement.start_time.like('%{}%'.format(str(current_year))),
# ProjectManagement.start_time < now_time,
# ProjectManagement.start_time >= now_time1,
# ProjectManagement.district.like('%{}%'.format(str(district))) if district != '全市' else text('')
# ).count()
sign_num = ProjectManagement.query.filter( sign_num = ProjectManagement.query.filter(
ProjectManagement.is_delete == 0, ProjectManagement.is_delete == 0,
# ProjectManagement.sign_time.like('%{}%'.format(str(current_year))),
ProjectManagement.sign_time.like('%{}%'.format(str(current_year))), ProjectManagement.sign_time.like('%{}%'.format(str(current_year))),
ProjectManagement.district.like('%{}%'.format(str(district))) if district != '全市' else text('') ProjectManagement.district.like('%{}%'.format(str(district))) if district != '全市' else text('')
).count() ).count()
# 年度目标 # 年度目标
start_num = ProjectManagement.query.filter( start_num = ProjectManagement.query.filter(
ProjectManagement.is_delete == 0, ProjectManagement.is_delete == 0,
# ProjectManagement.start_time.like('%{}%'.format(str(current_year))),
ProjectManagement.start_time.like('%{}%'.format(str(current_year))), ProjectManagement.start_time.like('%{}%'.format(str(current_year))),
ProjectManagement.district.like('%{}%'.format(str(district))) if district != '全市' else text('') ProjectManagement.district.like('%{}%'.format(str(district))) if district != '全市' else text('')
).count() ).count()
data = { data = {
"name": district, "name": district,
"data": start_num, "data": start_num,
...@@ -304,28 +356,34 @@ def get_data6(district_li, current_year): ...@@ -304,28 +356,34 @@ def get_data6(district_li, current_year):
return data_li6 return data_li6
# def get_data_li(district_li, current_year, data_time):
def get_data_li(district_li, current_year): def get_data_li(district_li, current_year):
# 一。项目签约完成率(签约项目完成率:完成率(%):签约金额(亿元)/ 年度目标(亿元)) # 一。项目签约完成率(签约项目完成率:完成率(%):签约金额(亿元)/ 年度目标(亿元))
# data_li1 = get_data1(district_li, current_year, data_time)
data_li1 = get_data1(district_li, current_year) data_li1 = get_data1(district_li, current_year)
if data_li1 == 'error': if data_li1 == 'error':
return jsonify(code=RET.DBERR, msg='项目签约完成率计算出错') return jsonify(code=RET.DBERR, msg='项目签约完成率计算出错')
# 二。项目开工率(开工率进度:当年签约当年开工个数/签约个数) # 二。项目开工率(开工率进度:当年签约当年开工个数/签约个数)
# data_li2 = get_data2(district_li, current_year, data_time)
data_li2 = get_data2(district_li, current_year) data_li2 = get_data2(district_li, current_year)
if data_li2 == 'error': if data_li2 == 'error':
return jsonify(code=RET.DBERR, msg='项目开工率计算出错') return jsonify(code=RET.DBERR, msg='项目开工率计算出错')
# 三。新开工项目计划投资额完成率(完成率(%):新开工项目计划投资额(亿元)/ 年度目标(亿元)) # 三。新开工项目计划投资额完成率(完成率(%):新开工项目计划投资额(亿元)/ 年度目标(亿元))
# data_li3 = get_data3(district_li, current_year, data_time)
data_li3 = get_data3(district_li, current_year) data_li3 = get_data3(district_li, current_year)
if data_li3 == 'error': if data_li3 == 'error':
return jsonify(code=RET.DBERR, msg='新开工项目计划投资额完成率计算出错') return jsonify(code=RET.DBERR, msg='新开工项目计划投资额完成率计算出错')
# 四。固定资产投资项目到位资金完成率(完成率(%):固定资产投资项目资金到位额(亿元)/ 年度目标(亿元)) # 四。固定资产投资项目到位资金完成率(完成率(%):固定资产投资项目资金到位额(亿元)/ 年度目标(亿元))
# data_li4 = get_data4(district_li, current_year, data_time)
data_li4 = get_data4(district_li, current_year) data_li4 = get_data4(district_li, current_year)
if data_li4 == 'error': if data_li4 == 'error':
return jsonify(code=RET.DBERR, msg='固定资产投资项目到位资金完成率计算出错') return jsonify(code=RET.DBERR, msg='固定资产投资项目到位资金完成率计算出错')
# 五。非固定资产投资项目到位资金完成率(完成率(%):非固定资产投资项目资金到位额(亿元)/ 年度目标(亿元)) # 五。非固定资产投资项目到位资金完成率(完成率(%):非固定资产投资项目资金到位额(亿元)/ 年度目标(亿元))
# data_li5 = get_data5(district_li, current_year, data_time)
data_li5 = get_data5(district_li, current_year) data_li5 = get_data5(district_li, current_year)
if data_li5 == 'error': if data_li5 == 'error':
return jsonify(code=RET.DBERR, msg='非固定资产投资项目到位资金完成率计算出错') return jsonify(code=RET.DBERR, msg='非固定资产投资项目到位资金完成率计算出错')
...@@ -338,20 +396,18 @@ def get_data_li(district_li, current_year): ...@@ -338,20 +396,18 @@ def get_data_li(district_li, current_year):
def statistic_shanxi_data(): def statistic_shanxi_data():
req_dic = request.get_json() req_dic = request.get_json()
flag = req_dic['flag'] # 1项目签约金额完成情况, 2新开工项目计划投资额完成情况, 3固定资产投资项目资金到位完成情况 flag = req_dic['flag'] # 1项目签约金额完成情况, 2新开工项目计划投资额完成情况, 3固定资产投资项目资金到位完成情况
# data_time = req_dic['data_time'] # ["2022", "07", "18"] data_time = req_dic['data_time'] # ["2022", "07", "18"]
# data_time = data_time[0] + '年' + data_time[1] + '-' + data_time[2] + '月' data_time = data_time[0] + '年' + data_time[1] + '-' + data_time[2] + '月'
try: try:
# 获取最新的时间周期 # 获取最新的时间周期
data_obj = ShanxiTarget.query.order_by(sqlalchemy.desc(ShanxiTarget.id)).first() data_obj = ShanxiTarget.query.order_by(sqlalchemy.desc(ShanxiTarget.id)).first()
data_time1 = data_obj.data_time data_time1 = data_obj.data_time
if not data_time1:
# 获取最新时间周期的数据
target_obj_li = ShanxiTarget.query.filter_by(data_time=data_time1, is_delete=0).all() target_obj_li = ShanxiTarget.query.filter_by(data_time=data_time1, is_delete=0).all()
else:
# if not data_time1: # 获取所选时间周期条件的数据
# # 获取最新时间周期的数据 target_obj_li = ShanxiTarget.query.filter_by(data_time=data_time, is_delete=0).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 = '' data1 = ''
data2 = '' data2 = ''
...@@ -393,12 +449,14 @@ def statistic_shanxi_data(): ...@@ -393,12 +449,14 @@ def statistic_shanxi_data():
@api_manage.route("/StatisticJcData", methods=["POST"]) @api_manage.route("/StatisticJcData", methods=["POST"])
def statistic_jc_data(): def statistic_jc_data():
# req_dic = request.get_json() # req_dic = request.get_json()
# data_time = req_dic['data_time'] # 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(district_li, current_year) data_li1, data_li2, data_li3, data_li4, data_li5 = get_data_li(district_li, current_year)
# 六。综合得分 # 六。综合得分
......
...@@ -1295,6 +1295,9 @@ class ProjectManagement(db.Model): ...@@ -1295,6 +1295,9 @@ class ProjectManagement(db.Model):
sign_time = db.Column(db.String(40), default='', comment='签约时间') sign_time = db.Column(db.String(40), default='', comment='签约时间')
start_time = db.Column(db.String(40), default='', comment='开工时间') start_time = db.Column(db.String(40), default='', comment='开工时间')
end_time = db.Column(db.String(40), default='', comment='竣工时间') end_time = db.Column(db.String(40), default='', comment='竣工时间')
# sign_time = db.Column(db.DateTime, default='', comment='签约时间')
# start_time = db.Column(db.DateTime, default='', comment='开工时间')
# end_time = db.Column(db.DateTime, default='', comment='竣工时间')
investor_rank = db.Column(db.String(30), comment='投资方排名') investor_rank = db.Column(db.String(30), comment='投资方排名')
is_transf_project = db.Column(db.String(30), comment='是否转型项目') is_transf_project = db.Column(db.String(30), comment='是否转型项目')
country = db.Column(db.String(30), comment='投资方国别') country = 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