Commit 073f6e78 by dong

fix20221202

parent 46e098ec
......@@ -42,8 +42,8 @@ def upload_xiansuo_project(row_content, time_strf, upload_time, upload_unity, up
try:
project_name = row_content[1] # 项目名称
investor_name = row_content[2] # 投资方名称
investor_district1 = row_content[3] # 投资方所在地
investor_district2 = row_content[4] # 投资方所在地
investor_district1 = row_content[3] # 投资方所在地,sheng
investor_district2 = row_content[4] # 投资方所在地,市
investor_district = investor_district1 + '/' + investor_district2
project_type1 = row_content[5] # 项目单位(投资方项目类型
project_type2 = row_content[6] # 项目单位(投资方项目类型
......@@ -80,6 +80,10 @@ def upload_xiansuo_project(row_content, time_strf, upload_time, upload_unity, up
flag=1, # 表示线索库
is_delete=0,
thread_progress='待对接',
provence=investor_district1,
city=investor_district2,
industry=project_type1,
industry2=project_type2,
upload_unity=upload_unity,
upload_people=upload_people,
upload_time=upload_time,
......@@ -143,6 +147,10 @@ def update_joint_project(row_content):
# 更新项目信息
project_obj.project_name = project_name
project_obj.provence = investor_district1
project_obj.city = investor_district2
project_obj.industry = project_type1
project_obj.industry2 = project_type2
project_obj.investor_name = investor_name
project_obj.investor_district = investor_district
project_obj.project_type = project_type
......@@ -214,6 +222,10 @@ def update_sign_project(row_content):
# 更新项目信息
project_obj.project_name = project_name
project_obj.provence = investor_district1
project_obj.city = investor_district2
project_obj.industry = project_type1
project_obj.industry2 = project_type2
project_obj.investor_name = investor_name
project_obj.attract_name = attract_name
project_obj.investor_district = investor_district
......@@ -268,11 +280,7 @@ def update_star_project(row_content):
investment_volume1 = row_content[9] # 拟引资额(万元拟引资额(万元)
if investment_volume1:
investment_volume = float(investment_volume1)
investment = row_content[10] # 到位资金
project_to_area1 = row_content[11] # 落地区域
development_area = row_content[12] # 开发区
project_address = row_content[13] # 项目详细地址
......@@ -298,6 +306,10 @@ def update_star_project(row_content):
# 更新项目信息
project_obj.project_num = project_num
project_obj.project_name = project_name
project_obj.provence = investor_district1
project_obj.city = investor_district2
project_obj.industry = project_type1
project_obj.industry2 = project_type2
project_obj.investor_name = investor_name
project_obj.attract_name = attract_name
project_obj.investor_district = investor_district
......@@ -582,7 +594,19 @@ def add_project():
project_name = req_dic['project_name']
investor_name = req_dic['investor_name']
investor_district = req_dic['investor_district']
if '/' in investor_district:
investor_district1 = investor_district.split('/')[0]
investor_district2 = investor_district.split('/')[1]
else:
investor_district1 = investor_district
investor_district2 = ''
project_type = req_dic['project_type']
if '-' in project_type:
project_type1 = project_type.split('-')[0]
project_type2 = project_type.split('-')[1]
else:
project_type1 = project_type
project_type2 = ''
investment_volume = req_dic['investment_volume']
project_info = req_dic['project_info']
thread_people = req_dic['thread_people']
......@@ -627,7 +651,10 @@ def add_project():
upload_time=upload_time,
project_year=upload_time.split('/')[0],
project_num=int(project_num),
provence=investor_district1,
city=investor_district2,
industry=project_type1,
industry2=project_type2,
project_name=project_name,
investor_name=investor_name,
investor_district=investor_district,
......@@ -732,6 +759,16 @@ def upload_project_data1():
add_num = 0
rep_project_li = []
rep_project_num = 0
# row_list = [table.row_values(i) for i in range(4, nrows)]
# rows = len(row_list)
# total_num = rows
# for i in range(0, rows):
# row_content = row_list[i]
# if not row_content:
# return jsonify(code=RET.NODATA,
# msg="{}表格内无有效数据!".format('线索库' if data_type == 1 else '对接库' if data_type == 2
# else '签约库' if data_type == 3 else '开工库' if data_type == 4 else ''))
if int(data_type) == 1: # 上传线索库
row_list = [table.row_values(i) for i in range(4, nrows)]
rows = len(row_list)
total_num = rows
......@@ -739,9 +776,8 @@ def upload_project_data1():
row_content = row_list[i]
if not row_content:
return jsonify(code=RET.NODATA,
msg="{}表格内无有效数据!".format('线索库' if data_type == 1 else '对接库' if data_type == 2
else '签约库' if data_type == 3 else '开工库' if data_type == 4 else ''))
if int(data_type) == 1: # 上传线索库
msg="表格内无有效数据!")
ret = upload_xiansuo_project(row_content, time_strf, upload_time, upload_unity, upload_people)
if ret == 'continue':
add_num += 1
......@@ -753,6 +789,15 @@ def upload_project_data1():
else:
pass
if int(data_type) == 2: # 更新对接库
row_list = [table.row_values(i) for i in range(1, nrows)]
rows = len(row_list)
total_num = rows
for i in range(0, rows):
row_content = row_list[i]
if not row_content:
return jsonify(code=RET.NODATA,
msg="表格内无有效数据!")
ret = update_joint_project(row_content)
if ret == 'continue':
update_num += 1
......@@ -763,6 +808,15 @@ def upload_project_data1():
pass
if int(data_type) == 3: # 更新签约库
row_list = [table.row_values(i) for i in range(1, nrows)]
rows = len(row_list)
total_num = rows
for i in range(0, rows):
row_content = row_list[i]
if not row_content:
return jsonify(code=RET.NODATA,
msg="表格内无有效数据!")
ret = update_sign_project(row_content)
if ret == 'continue':
update_num += 1
......@@ -772,6 +826,15 @@ def upload_project_data1():
else:
pass
if int(data_type) == 4: # 更新开工库
row_list = [table.row_values(i) for i in range(1, nrows)]
rows = len(row_list)
total_num = rows
for i in range(0, rows):
row_content = row_list[i]
if not row_content:
return jsonify(code=RET.NODATA,
msg="表格内无有效数据!")
ret = update_star_project(row_content)
if ret == 'continue':
update_num += 1
......@@ -872,6 +935,10 @@ def distribute_project():
investor_name=old_project_obj.investor_name,
investor_district=old_project_obj.investor_district,
project_type=old_project_obj.project_type,
provence=old_project_obj.provence,
city=old_project_obj.city,
industry=old_project_obj.industry,
industry2=old_project_obj.industry2,
investment_volume=old_project_obj.investment_volume,
project_year=old_project_obj.project_year,
project_info=old_project_obj.project_info,
......@@ -970,6 +1037,20 @@ def edit_project_detail():
return jsonify(code=RET.SESSIONERR, msg="用户信息校验失败,请重新登陆后尝试!")
req_dic = request.get_json()
project_id = req_dic['project_id']
investor_district = req_dic['investor_district']
if '/' in investor_district:
investor_district1 = investor_district.split('/')[0]
investor_district2 = investor_district.split('/')[1]
else:
investor_district1 = investor_district
investor_district2 = ''
project_type = req_dic['project_type']
if '-' in project_type:
project_type1 = project_type.split('-')[0]
project_type2 = project_type.split('-')[1]
else:
project_type1 = project_type
project_type2 = ''
try:
project_obj = SikuProject.query.get(project_id)
if not project_obj:
......@@ -978,6 +1059,10 @@ def edit_project_detail():
project_obj.investor_name = req_dic['investor_name']
project_obj.investor_district = req_dic['investor_district']
project_obj.project_type = req_dic['project_type']
project_obj.provence = investor_district1
project_obj.city = investor_district2
project_obj.industry = project_type1
project_obj.industry2 = project_type2
project_obj.investment_volume = req_dic['investment_volume']
project_obj.project_info = req_dic['project_info']
project_obj.thread_people = req_dic['thread_people']
......@@ -1411,6 +1496,18 @@ def edit_project():
investor_name = request.form["investor_name"]
investor_district = request.form["investor_district"]
project_type = request.form["project_type"]
if '/' in investor_district:
investor_district1 = investor_district.split('/')[0]
investor_district2 = investor_district.split('/')[1]
else:
investor_district1 = investor_district
investor_district2 = ''
if '-' in project_type:
project_type1 = project_type.split('-')[0]
project_type2 = project_type.split('-')[1]
else:
project_type1 = project_type
project_type2 = ''
investment_volume = request.form["investment_volume"]
investment_volume1 = request.form["investment_volume1"]
project_schedule = request.form["project_schedule"]
......@@ -1451,6 +1548,10 @@ def edit_project():
project_obj.investor_name = investor_name
project_obj.investor_district = investor_district
project_obj.project_type = project_type
project_obj.provence = investor_district1
project_obj.city = investor_district2
project_obj.industry = project_type1
project_obj.industry2 = project_type2
project_obj.investment_volume = investment_volume
project_obj.investment_volume1 = investment_volume1
project_obj.project_schedule = project_schedule
......@@ -1583,16 +1684,20 @@ def batch_export_project1():
project_obj = SikuProject.query.filter_by(id=select_id).first()
# 提取数据,写入xslx表格
data_list = []
project_num = project_obj.project_num # 项目名称
project_num = project_obj.project_num # 项目编号
data_list.append(project_num)
project_name = project_obj.project_name # 项目名称
data_list.append(project_name)
investor_name = project_obj.investor_name # 投资方名称
data_list.append(investor_name)
investor_district = project_obj.investor_district # 投资方所在地
data_list.append(investor_district)
project_type = project_obj.project_type # 项目类型
data_list.append(project_type)
investor_district_provence = project_obj.provence # 投资方所在地,省
data_list.append(investor_district_provence)
investor_district_city = project_obj.city # 投资方所在地,市
data_list.append(investor_district_city)
industry = project_obj.industry # 一级行业
data_list.append(industry)
industry2 = project_obj.industry2 # 二级行业
data_list.append(industry2)
investment_volume = project_obj.investment_volume # 总投资额(万元)
data_list.append(investment_volume)
investment_volume1 = project_obj.investment_volume1 # ni投资额(万元)
......@@ -1618,9 +1723,11 @@ def batch_export_project1():
return jsonify(code=RET.DBERR, msg="数据库查询错误!")
try:
sheet_name_titles = {
"sheet1": ["项目编号(自动生成)", "项目名称", "投资方名称", "投资方所在地", "项目类型",
"总投资额(万元)", "拟引资额(万元)", "项目基本情况", "项目方基本情况", "线索提供人",
"单位及职务", "联系方式", "备注",]}
"sheet1": ["项目编号(自动生成)", "项目名称", "投资方名称",
"投资方所在省(自治区、直辖市、特别行政区)", "投资方所在市(州、盟、区)",
"项目类型一级行业", "项目类型二级行业",
"总投资额(万元)", "拟引资额(万元)", "项目基本情况",
"项目方基本情况", "线索提供人", "单位及职务", "联系方式", "备注"]}
head_list = ''
sheet = ''
......@@ -1684,10 +1791,14 @@ def batch_export_project2():
data_list.append(project_name)
investor_name = project_obj.investor_name # 投资方名称
data_list.append(investor_name)
investor_district = project_obj.investor_district # 投资方所在地
data_list.append(investor_district)
project_type = project_obj.project_type # 项目类型
data_list.append(project_type)
investor_district_provence = project_obj.provence # 投资方所在地,省
data_list.append(investor_district_provence)
investor_district_city = project_obj.city # 投资方所在地,市
data_list.append(investor_district_city)
industry = project_obj.industry # 一级行业
data_list.append(industry)
industry2 = project_obj.industry2 # 二级行业
data_list.append(industry2)
investment_volume = project_obj.investment_volume # 总投资额(万元)
data_list.append(investment_volume)
investment_volume1 = project_obj.investment_volume1 # ni投资额(万元)
......@@ -1727,7 +1838,9 @@ def batch_export_project2():
return jsonify(code=RET.DBERR, msg="数据库查询错误!")
try:
sheet_name_titles = {
"sheet1": ["项目编号(自动生成)", "项目名称", "投资方名称", "投资方所在地", "项目类型",
"sheet1": ["项目编号(自动生成)", "项目名称", "投资方名称",
"投资方所在省(自治区、直辖市、特别行政区)", "投资方所在市(州、盟、区)",
"项目类型一级行业", "项目类型二级行业",
"总投资额(万元)", "拟投资额(万元)", "拟落地区域", "开发区", "项目详细地址", "项目对接情况",
"项目当前存在问题", "项目跟踪人",
"对接人", "对接人单位及职务", "对接人联系方式", "项目方联系人",
......@@ -1796,10 +1909,14 @@ def batch_export_project3():
data_list.append(attract_name)
investor_name = project_obj.investor_name # 投资方名称
data_list.append(investor_name)
investor_district = project_obj.investor_district # 投资方所在地
data_list.append(investor_district)
project_type = project_obj.project_type # 项目类型
data_list.append(project_type)
investor_district_provence = project_obj.provence # 投资方所在地,省
data_list.append(investor_district_provence)
investor_district_city = project_obj.city # 投资方所在地,市
data_list.append(investor_district_city)
industry = project_obj.industry # 一级行业
data_list.append(industry)
industry2 = project_obj.industry2 # 二级行业
data_list.append(industry2)
investment_volume = project_obj.investment_volume # 总投资额(万元)
data_list.append(investment_volume)
investment_volume1 = project_obj.investment_volume1 # ni投资额(万元)
......@@ -1851,7 +1968,9 @@ def batch_export_project3():
return jsonify(code=RET.DBERR, msg="数据库查询错误!")
try:
sheet_name_titles = {
"sheet1": ["项目编号(自动生成)", "项目名称", "引资方名称", "投资方名称", "投资方所在地",
"sheet1": ["项目编号(自动生成)", "项目名称", "引资方名称",
"投资方所在省(自治区、直辖市、特别行政区)", "投资方所在市(州、盟、区)",
"项目类型一级行业", "项目类型二级行业",
"项目类型", "总投资额(万元)", "拟投资额(万元)", "落地区域", "开发区", "项目详细地址",
"项目推进情况", "签约甲方名称", "签约甲方联系人", "签约甲方联系方式", "签约乙方名称",
"签约乙方联系人", "签约乙方联系方式", "签约时间", "项目跟踪人", "对接人", "对接人单位及职务",
......@@ -1920,10 +2039,14 @@ def batch_export_project4():
data_list.append(attract_name)
investor_name = project_obj.investor_name # 投资方名称
data_list.append(investor_name)
investor_district = project_obj.investor_district # 投资方所在地
data_list.append(investor_district)
project_type = project_obj.project_type # 项目类型
data_list.append(project_type)
investor_district_provence = project_obj.provence # 投资方所在地,省
data_list.append(investor_district_provence)
investor_district_city = project_obj.city # 投资方所在地,市
data_list.append(investor_district_city)
industry = project_obj.industry # 一级行业
data_list.append(industry)
industry2 = project_obj.industry2 # 二级行业
data_list.append(industry2)
investment_volume = project_obj.investment_volume # 总投资额(万元)
data_list.append(investment_volume)
investment_volume1 = project_obj.investment_volume1 # ni投资额(万元)
......@@ -1971,8 +2094,9 @@ def batch_export_project4():
return jsonify(code=RET.DBERR, msg="数据库查询错误!")
try:
sheet_name_titles = {
"sheet1": ["项目编号(自动生成)", "项目名称", "引资方名称", "投资方名称", "投资方所在地",
"项目类型", "总投资额(万元)", "拟投资额(万元)", "到位资金(万元)", "落地区域", "开发区",
"sheet1": ["项目编号(自动生成)", "项目名称", "引资方名称", "投资方名称",
"投资方所在省(自治区、直辖市、特别行政区)", "投资方所在市(州、盟、区)",
"项目类型一级行业", "项目类型二级行业", "总投资额(万元)", "拟投资额(万元)", "到位资金(万元)", "落地区域", "开发区",
"项目详细地址", "项目推进情况", "项目当前存在问题", "签约时间", "开工时间",
"项目跟踪人", "对接人", "对接人单位及职务", "对接人联系方式", "项目方联系人", "项目方单位及职务",
"项目方联系方式", "备注"]}
......
......@@ -544,7 +544,7 @@ def export_jc_data1(data_time, path, pro_path):
# 完成率
gutou1_rate = round(gutou1_money / gutou1_target, 2) if gutou1_target and gutou1_target != 0 else 0
data_list.append(gutou1_target)
data_list.append(gutou1_rate)
# 得分(25分)
if gutou1_rate < 1:
......@@ -1141,3 +1141,200 @@ def areal_project():
except Exception as e:
current_app.logger.error(e)
return jsonify(code=RET.DBERR, msg="数据查询错误!")
# 首页统计
@api_manage.route("/GetData", methods=["POST"])
def get_data():
req_dic = request.get_json()
flag = req_dic['flag']
current_year = str(datetime.now().year)
district_li1 = ["全市", "城区", "泽州县", "高平市", "阳城县", "陵川县",
"沁水县", "晋城经济技术开发区"]
target_data_li = []
if flag == 1: # 签约项目完成情况
try:
for district in district_li1:
data = {}
project_obj = ProjectManagement.query.filter(
ProjectManagement.sign_time.like('%{}%'.format(current_year)),
ProjectManagement.is_delete == 0,
ProjectManagement.district.like('%{}%'.format(str(district))) if district != '全市' else text('')
)
# 区县
data.update({"district": district})
# 年度目标
jc_obj = JcTarget.query.filter(JcTarget.year.like('%{}%'.format(current_year)),
JcTarget.district_name.like(
'%{}%'.format(str(district))) if district != '全市' else text('')).first()
target = 0
if jc_obj:
target = jc_obj.money_sign
data.update({"target": target})
# 签约金额(亿元)
project_obj_list = project_obj.all()
if not project_obj_list:
sign_money = 0
else:
sign_money = sum([project_obj.investment_volume for project_obj in project_obj_list])
data.update({"value": sign_money})
# 签约完成率
rate = round(sign_money / target, 2) if target and target != 0 else 0
data.update({"rate": rate})
target_data_li.append(data)
return jsonify(code=RET.OK, data=target_data_li, msg='数据查询成功。')
except Exception as e:
current_app.logger.error(e)
return jsonify(code=RET.DBERR, msg="数据查询错误!")
if flag == 2: # 项目开工完成情况
try:
for district in district_li1:
data = {}
# 区县
data.update({"district": district})
project_obj = ProjectManagement.query.filter(
ProjectManagement.sign_time.like('%{}%'.format(current_year)),
ProjectManagement.is_delete == 0,
ProjectManagement.district.like('%{}%'.format(str(district))) if district != '全市' else text('')
)
# 签约个数
sign_num = project_obj.count()
data.update({"value": sign_num})
# 当年开工个数
target = ProjectManagement.query.filter(
ProjectManagement.start_time.like('%{}%'.format(current_year)),
ProjectManagement.is_delete == 0,
ProjectManagement.district.like('%{}%'.format(str(district))) if district != '全市' else text('')
).count()
data.update({"target": target})
# 开工率进度(40 %)
rate = round(target / sign_num, 2) if sign_num and sign_num != 0 else 0
data.update({"rate": rate})
target_data_li.append(data)
return jsonify(code=RET.OK, data=target_data_li, msg='数据查询成功。')
except Exception as e:
current_app.logger.error(e)
return jsonify(code=RET.DBERR, msg="数据查询错误!")
if flag == 3: # 新开工项目计划投资额完情况
try:
for district in district_li1:
data = {}
# 区县
data.update({"district": district})
# 新开工项目计划投资额(亿元)
project_obj_list = ProjectManagement.query.filter(
ProjectManagement.sign_time.like('%{}%'.format(current_year)),
ProjectManagement.is_delete == 0,
ProjectManagement.district.like('%{}%'.format(district)) if district != '全市' else text('')
).all()
if not project_obj_list:
new_start_money = 0
else:
new_start_money = sum([project_obj.investment_volume for project_obj in project_obj_list])
data.update({"value": new_start_money})
# 新开工年度目标
jc_obj = JcTarget.query.filter(
JcTarget.district_name == district if district != '全市' else text(''),
JcTarget.year.like('%{}%'.format(current_year))
).first()
if not jc_obj:
target = 0
else:
target = jc_obj.money_plan_invest
data.update({"target": target})
# 新开工完成率
rate = round(new_start_money / target,
2) if target and target != 0 else 0
data.update({"rate": rate})
target_data_li.append(data)
return jsonify(code=RET.OK, data=target_data_li, msg='数据查询成功。')
except Exception as e:
current_app.logger.error(e)
return jsonify(code=RET.DBERR, msg="数据查询错误!")
if flag == 4: # 固投资金完成情况
try:
for district in district_li1:
data = {}
# 区县
data.update({"district": district})
# 固定资产投资项目资金到位额(亿元)
money_obj_li = MoneyArrive.query.all()
max_id = max([money_obj.id for money_obj in money_obj_li])
data_time_obj = MoneyArrive.query.get(max_id)
data_time = data_time_obj.data_time
project_obj = MoneyArrive.query.filter(
MoneyArrive.data_time == data_time,
MoneyArrive.district_name.like('%{}%'.format(str(district))) if district != '全市' else text('')
).first()
if not project_obj:
gutou1_money = 0
else:
gutou1_money = project_obj.arrive_money
data.update({"value": gutou1_money})
# 年度目标
jc_obj = JcTarget.query.filter(
JcTarget.district_name == district if district != '全市' else text(''),
JcTarget.year.like('%{}%'.format(str(current_year)))
).first()
if not jc_obj:
gutou1_target = 0
else:
gutou1_target = jc_obj.money_arrive_target1
data.update({"target": gutou1_target})
# 完成率
gutou1_rate = round(gutou1_money / gutou1_target, 2) if gutou1_target and gutou1_target != 0 else 0
data.update({"rate": gutou1_rate})
target_data_li.append(data)
return jsonify(code=RET.OK, data=target_data_li, msg='数据查询成功。')
except Exception as e:
current_app.logger.error(e)
return jsonify(code=RET.DBERR, msg="数据查询错误!")
if flag == 5: # 非固投资金完成情况
try:
for district in district_li1:
data = {}
# 区县
data.update({"district": district})
# 非固定资产投资项目资金到位额(亿元)
project_obj_list = ProjectManagement.query.filter(
ProjectManagement.is_fixed_investment == '否',
ProjectManagement.sign_time.like('%{}%'.format(current_year)),
ProjectManagement.is_delete == 0,
ProjectManagement.district.like('%{}%'.format(str(district))) if district != '全市' else text('')
).all()
if not project_obj_list:
gutou0_money = 0
else:
gutou0_money = sum([project_obj.investment_year for project_obj in project_obj_list])
data.update({"value": gutou0_money})
# 年度目标
jc_obj = JcTarget.query.filter(
JcTarget.district_name == district,
JcTarget.year.like('%{}%'.format(current_year))
).first()
if not jc_obj:
gutou0_target = 0
else:
gutou0_target = jc_obj.money_arrive_target0
data.update({"target": gutou0_target})
# 完成率
gutou0_rate = round(gutou0_money / gutou0_target, 2) if gutou0_target and gutou0_target != 0 else 0
data.update({"rate": gutou0_rate})
target_data_li.append(data)
return jsonify(code=RET.OK, data=target_data_li, msg='数据查询成功。')
except Exception as e:
current_app.logger.error(e)
return jsonify(code=RET.DBERR, msg="数据查询错误!")
\ No newline at end of file
......@@ -1048,6 +1048,13 @@ class SikuProject(db.Model):
investor_name = db.Column(db.String(30), comment='投资方名称')
investor_district = db.Column(db.String(30), comment='投资方所在地')
project_type = db.Column(db.String(30), comment='项目类型')
industry = db.Column(db.String(20), comment='所属行业-一级产业')
industry2 = db.Column(db.String(20), comment='所属行业-二级产业')
provence = db.Column(db.String(30), comment='投资方省份')
city = db.Column(db.String(30), comment='投资方市')
investment_volume = db.Column(db.Float, comment='总投资额(万元)')
project_year = db.Column(db.Integer, comment='项目年份')
project_info = db.Column(db.String(300), 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