Commit f0932ac0 by dong

fix20221114

parent ad4c057b
......@@ -97,7 +97,7 @@ def creat_app(config_name):
from apps.view_360company import api_portraits
from apps.view_choose import api_address
# from apps.manage import api_power
# from apps.inves_manage import api_manage
from apps.inves_manage import api_manage
# from apps.view_mobile import api_mobile
app.register_blueprint(api_user, url_prefix='/api/user')
......@@ -109,7 +109,7 @@ def creat_app(config_name):
app.register_blueprint(api_portraits, url_prefix="/api/360company") # 360企业画像
app.register_blueprint(api_address, url_prefix="/api/address") # 选址评估
# app.register_blueprint(api_power, url_prefix="/api/power")
# app.register_blueprint(api_manage, url_prefix="/api/manage")
app.register_blueprint(api_manage, url_prefix="/api/manage")
# app.register_blueprint(api_mobile, url_prefix="/api/mobile")
return app
from flask import Blueprint
# pro_url = "http:127.0.0.1:5000/static"
pro_url = "http://touzi.cjwltzj.taiyuan.gov.cn/files/"
# 创建蓝图对象
api_manage = Blueprint("api_manage", __name__)
from . import view
from . import view_zone
from . import view_attract
"招商资源管理"
This source diff could not be displayed because it is too large. You can view the blob instead.
import os
from flask import g, current_app, request, jsonify, session, send_from_directory, make_response
from apps.inves_manage import api_manage
# from apps.utils.commons import login_required
from apps.util import login_required
from apps.utils.response_code import RET
from apps.models import *
from apps.utils.read_json import open_type
from datetime import datetime, timedelta
from sqlalchemy import extract, or_, and_
from sqlalchemy.sql import func
import datetime
import filetype
from apps.utils.forms import *
from werkzeug.datastructures import CombinedMultiDict
from apps.models import *
# 获取筛选条件
@api_manage.route("/attFiled", methods=["GET"])
@login_required
def att_filed():
user_id = g.user_id
try:
user = User.query.get(user_id)
unit = user.unit # 用户所在机构
goverment = Government.query.filter_by(name=unit).first() # 按名查找机构
sections = [i.name for i in goverment.sections] # 机构下部门
attract = Attract.query.filter_by(statu=1) # 招商字典
indu = attract.filter_by(sid=1).all() # 行业
stage = attract.filter_by(sid=2).all() # 阶段(进度)
data = {"indu": {i.name: i.nid for i in indu},
"capital": {"1亿以下": 1, "1-10亿": 2, "10-50亿": 3, "50-100亿": 4, "100亿以上": 5},
"stage": {i.name: i.nid for i in stage},
"section": sections
}
return jsonify(code=RET.OK, msg="查询成功", data=data)
except Exception as e:
current_app.logger.error(e)
return jsonify(code=RET.DBERR, msg="数据库查询错误")
def pic(x):
if x < 0:
return False
if x <= 1:
return 1
if x <= 10:
return 2
if x <= 50:
return 3
if x <= 100:
return 4
return 5
# # 项目新增
# @api_manage.route("/addItem", methods=["GET"])
# @login_required
# def add_item():
# req_dict = request.get_json()
# company_name = req_dict.get("company_name") # 企业名称
# build_date = req_dict.get("build_date") # 成立时间
# admin = req_dict.get("admin") # 企业联系人
# mobile = req_dict.get("mobile") # 企业联系人联系方式
# email = req_dict.get("email") # 企业联系人邮箱
#
# name = req_dict.get("name") # 项目名称
# product = req_dict.get("product") # 项目产品
# industry = req_dict.get("industry") # 项目行业
# indu_id = req_dict.get("indu_id") # 项目行业
# invest = req_dict.get("invest") # 投资额
# # invest_id =
# area = req_dict.get("area") # 占地面积
# value = req_dict.get("value") # 预计产值
# tax = req_dict.get("tax") # 预计税收
# store = req_dict.get("store") # 项目入库时间
# unit_up = req_dict.get("store") # 项目入库时间
# link = req_dict.get("link") # 项目对接人
# link_mobile = req_dict.get("link_mobile") # 项目对接人联系方式
# level = req_dict.get("level") # 项目级别
# level_id = req_dict.get("level_id") # 项目级别id
# stage = req_dict.get("level") # 项目进度
# stage_id = req_dict.get("stage_id") # 项目进度id
#
# main_introduce = req_dic.get("main_introduce") # 项目主体介绍
# invest_introduce = req_dic.get("invest_introduce") # 投资项目介绍
# build_introduce = req_dic.get("build_introduce") # 项目建设内容
# encomy = req_dic.get("encomy") # 项目的经济效益
# policy = req_dic.get("policy") # 项目政策需求
# question = req_dic.get("question") # 项目存在的问题
# file = request.files.get("file") # 文件
import os
import json
from flask import g, current_app, request, jsonify, session, send_from_directory, make_response
from apps.inves_manage import api_manage, pro_url
# from apps.utils.commons import login_required
from apps.util import verify_token
from apps.util import login_required
from apps.utils.response_code import RET
from apps.models import *
from apps.utils.read_json import open_type
from datetime import datetime, timedelta
from sqlalchemy import extract, or_, and_
from sqlalchemy.sql import func
import datetime
import filetype
import time
from apps.utils.forms import *
from werkzeug.datastructures import CombinedMultiDict
# 获取筛选条件
@api_manage.route("/getFiled", methods=["GET"])
@login_required
def get_filed():
try:
zone = Zone.query.filter_by(statu=1)
cates = zone.filter_by(sid=1).all() # 类别
levels = zone.filter_by(sid=2).all() # 级别
# options: [{value: "选项1", label: "无数据"}, {value: "选项2", label: "3333"}],
data = {"cate": [{"label": i.name, "value": i.nid} for i in cates], # [i.name for i in cates],
"level": [{"label": i.name, "value": i.nid} for i in levels], # [i.name for i in levels],
"indu": [{"label": "高端装备", "value": 1}, {"label": "新材料", "value": 2},
{"label": "新一代信息技术", "value": 3}, {"label": "现代服务业", "value": 4}],
"status": [{"label": "未上报", "value": 1}, {"label": "审核通过", "value": 2},
{"label": "审核驳回", "value": 3}, {"label": "正在审核", "value": 4}]
}
data["cate"].insert(0, {"label": "请选择", "value": ""})
data["level"].insert(0, {"label": "请选择", "value": ""})
data["indu"].insert(0, {"label": "请选择", "value": ""})
data["status"].insert(0, {"label": "请选择", "value": ""})
return jsonify(code=RET.OK, msg="查询成功", data=data)
except Exception as e:
current_app.logger.error(e)
return jsonify(code=RET.DBERR, msg="数据库查询错误")
# 获取园区列表(层级权限)
@api_manage.route("/listOfGarden", methods=["POST"])
@login_required
def list_garden():
token = request.headers["token"]
user = verify_token(token)
user_id = user.id
req_dict = request.get_json()
key = req_dict.get("key")
indu = req_dict.get("indu")
level = req_dict.get("level")
cate = req_dict.get("cate")
status = req_dict.get("status")
page = req_dict.get("page")
perpage = req_dict.get("perpage")
# 校验参数完整性
if not all([page, perpage]):
return jsonify(code=RET.PARAMERR, msg="参数不完整")
try:
user = User.query.get(user_id) # 获取当前用户
role = user.role # 获取角色
unit = user.unit # 用户机构
section = user.section # 用户部门
garden = Garden.query.filter_by()
# garden = garden.filter(Garden.cluster.like("%{}%".format(indu)))
if indu:
garden = garden.filter(Garden.cluster.like("%{}%".format(indu)))
if level:
garden = garden.filter_by(level=level)
if cate:
garden = garden.filter_by(cate=cate)
if status:
garden = garden.filter_by(status=status)
if key:
garden = garden.filter(Garden.name.like("%{}%".format(key)))
if role.role[0] == "1": # 机构领导(看全部)
maxnum = garden.filter(or_(Garden.unit == unit, Garden.up_unit == unit)).count()
gardens = garden.filter(or_(Garden.unit == unit, Garden.up_unit == unit)).paginate(page, perpage).items
data = [{"id": i.id,
"name": i.name,
"address": i.address,
"level": i.level,
"cate": i.cate,
"charge": i.charge,
"phone": i.phone,
"uperson": i.uperson if i.uperson else "",
"unit": i.up_unit,
"status": i.status if i.status else ""} for i in gardens]
data = {"data_lis":data,"maxnum":maxnum}
return jsonify(code=RET.OK, msg="查询成功", data=data)
if role.role[0] == "2": # 部门领导(看部门),自己部门,上报给自己机构的
# print("===========")
gardens = garden.filter(
or_(Garden.up_unit == unit, and_(Garden.unit == unit, Garden.section == section))).paginate(page,
perpage).items
maxnum = garden.filter(
or_(Garden.up_unit == unit, and_(Garden.unit == unit, Garden.section == section))).count()
# print(gardens)
data = [{"id": i.id,
"name": i.name,
"address": i.address,
"level": i.level,
"cate": i.cate,
"charge": i.charge,
"phone": i.phone,
"uperson": i.uperson if i.uperson else "",
"unit": i.up_unit,
"status": i.status if i.status else ""} for i in gardens]
data = {"data_lis": data, "maxnum": maxnum}
return jsonify(code=RET.OK, msg="查询成功", data=data)
if role.role[0] == "3": # 自己看自己,+上报给自己机构的
gardens = garden.filter(or_(Garden.user == user_id, Garden.up_unit == unit))
maxnum = gardens.count()
# print(gardens)
gardens = gardens.paginate(page, perpage).items
# print(gardens)
data = [{"id": i.id,
"name": i.name,
"address": i.address,
"level": i.level,
"cate": i.cate,
"charge": i.charge,
"phone": i.phone,
"uperson": i.uperson if i.uperson else "",
"unit": i.up_unit,
"status": i.status if i.status else ""} for i in gardens]
data = {"data_lis": data, "maxnum": maxnum}
return jsonify(code=RET.OK, msg="查询成功", data=data)
else:
return jsonify(code=RET.DATAERR, msg="参数错误")
except Exception as e:
current_app.logger.error(e)
return jsonify(code=RET.DBERR, msg="数据库查询错误")
# 园区新增
@api_manage.route("/addGarden", methods=["POST"])
@login_required
def add_garden():
token = request.headers["token"]
user = verify_token(token)
user_id = user.id
try:
user = User.query.get(user_id)
role = user.role.role
if not role:
return jsonify(code=RET.OK, msg="无权限查看此内容")
except Exception as e:
current_app.logger.error(e)
return jsonify(code=RET.DBERR, msg="数据库错误")
role = user.role
if role.role[5] != "1":
return jsonify(code=RET.REQERR, msg="暂无权限")
req_dict = request.get_json()
name = req_dict.get("name") # 园区姓名
level = req_dict.get("level") # 园区级别
charge = req_dict.get("charge") # 园区负责人
phone = req_dict.get("phone") # 园区联系电话
cate = req_dict.get("cate") # 园区类型
address = req_dict.get("address") # 园区地址
cluster = req_dict.get("cluster") # 产业集群(多选)[]
# 园区信息
area = req_dict.get("area") # 占地面积(平方公里)
acreage = req_dict.get("acreage") # 规划面积(平方公里)
actarea = req_dict.get("actarea") # 建成面积(平方公里)
tax = req_dict.get("tax") # 税收要求(万元/亩)
out_power = req_dict.get("out_power") # 产出强度(万元/亩)
invest_power = req_dict.get("invest_power") # 投资强度(万元/亩)
indu_need = req_dict.get("indu_need") # 行业要求
gdp = req_dict.get("gdp") # GDP(亿元)
fiscal = req_dict.get("fiscal") # 财政收入(亿元)
indu_land = req_dict.get("indu_land") # 工业土地均价(万元/亩)
indu_sup = req_dict.get("indu_sup") # 工业土地供应量
comm_land = req_dict.get("comm_land") # 商办土地均价(万元/亩)
comm_sup = req_dict.get("comm_sup") # 商办土地供应量
represent = req_dict.get("represent") # 代表企业
# 投资成本
resident_ele_one = req_dict.get("resident_ele_one") # 居民用电(一档)(元/度)
resident_ele_two = req_dict.get("resident_ele_two") # 居民用电(二档)(元/度)
resident_ele_thr = req_dict.get("resident_ele_thr") # 居民用电(三档)(元/度)
comm_ele_one = req_dict.get("comm_ele_one") # 商业用电(峰段)(元/度)
comm_ele_two = req_dict.get("comm_ele_two") # 商业用电(平段)(元/度)
comm_ele_thr = req_dict.get("comm_ele_thr") # 商业用电(谷段)(元/度)
indu_ele_one = req_dict.get("indu_ele_one") # 工业用电(峰段)(元/度)
indu_ele_two = req_dict.get("indu_ele_two") # 工业用电(平段)(元/度)
indu_ele_thr = req_dict.get("indu_ele_thr") # 工业用电(谷段)(元/度)
resident_water_one = req_dict.get("resident_water_one") # 居民用水(一档)(元/吨)
resident_water_two = req_dict.get("resident_water_two") # 居民用水(二档)(元/吨)
resident_water_thr = req_dict.get("resident_water_thr") # 居民用水(三档)(元/吨)
comm_water = req_dict.get("comm_water") # 商业用水(元/吨)
indu_water = req_dict.get("indu_water") # 工业用水(元/吨)
special_water = req_dict.get("special_water") # 特种用水(元/吨)
resident_natgas_one = req_dict.get("resident_natgas_one") # 居民用气(一档)(元/m³)
resident_natgas_two = req_dict.get("resident_natgas_two") # 居民用气(二档)(元/m³)
resident_natgas_thr = req_dict.get("resident_natgas_thr") # 居民用气(三档)(元/m³)
sewage = req_dict.get("sewage") # 污水处理(元/吨)
wagelevel = req_dict.get("wagelevel") # 最低工资标准(元/月)
worker = req_dict.get("worker") # 普通员工(元/月)
middlemag = req_dict.get("middlemag") # 中级管理人员(元/月)
highmag = req_dict.get("highmag") # 高层管理人员(元/月)
# 环境配套
dis_freight = req_dict.get("dis_freight") # 距离货运站距离
dis_rail = req_dict.get("dis_rail") # 距离高铁站
dis_port = req_dict.get("dis_port") # 距离港口距离
dis_air = req_dict.get("dis_air") # 距离机场距离
road_trans = req_dict.get("road_trans") # 公路运输
rail_trans = req_dict.get("rail_trans") # 铁路运输
live_facility = req_dict.get("live_facility") # 园区生活配套
market = req_dict.get("market") # 百货商场
hotel_bus = req_dict.get("hotel_bus") # 酒店商务
medical = req_dict.get("medical") # 医疗机构
education = req_dict.get("education") # 学校教育
induenterprise = req_dict.get("induenterprise") # 规模以上企业
innovate = req_dict.get("innovate") # 科研机构
base = req_dict.get("base") # 双创基地
carrier = req_dict.get("carrier") # 产业载体
if not all([name, level, charge, phone, cate, address, cluster, area, acreage, actarea, tax, out_power,
invest_power, indu_land, indu_need, gdp, fiscal, indu_sup, comm_land, comm_sup, represent]):
return jsonify(code=RET.PARAMERR, msg="基本信息请填完整")
cluster = ",".join(cluster)
try:
user = User.query.get(user_id)
unit = user.unit
section = user.section
garden = Garden(unit=unit, section=section, user=user_id, name=name, level=level, charge=charge, phone=phone,
cate=cate, address=address, cluster=cluster, area=area, acreage=acreage, actarea=actarea,
tax=tax, out_power=out_power, invest_power=invest_power, indu_need=indu_need, gdp=gdp,
fiscal=fiscal, indu_land=indu_land, indu_sup=indu_sup, comm_land=comm_land, comm_sup=comm_sup,
represent=represent)
if resident_ele_one:
garden.resident_ele_one = resident_ele_one
if resident_ele_two:
garden.resident_ele_two = resident_ele_two
if resident_ele_thr:
garden.resident_ele_thr = resident_ele_thr
if comm_ele_one:
garden.comm_ele_one = comm_ele_one
if comm_ele_two:
garden.comm_ele_two = comm_ele_two
if comm_ele_thr:
garden.comm_ele_thr = comm_ele_thr
if indu_ele_one:
garden.indu_ele_one = indu_ele_one
if indu_ele_two:
garden.indu_ele_two = indu_ele_two
if indu_ele_thr:
garden.indu_ele_thr = indu_ele_thr
if resident_water_one:
garden.resident_water_one = resident_water_one
if resident_water_two:
garden.resident_water_two = resident_water_two
if resident_water_thr:
garden.resident_water_thr = resident_water_thr
if comm_water:
garden.comm_water = comm_water
if indu_water:
garden.indu_water = indu_water
if special_water:
garden.special_water = special_water
if resident_natgas_one:
garden.resident_natgas_one = resident_natgas_one
if resident_natgas_two:
garden.resident_natgas_two = resident_natgas_two
if resident_natgas_thr:
garden.resident_natgas_thr = resident_natgas_thr
if sewage:
garden.sewage = sewage
if wagelevel:
garden.wagelevel = wagelevel
if worker:
garden.worker = worker
if middlemag:
garden.middlemag = middlemag
if highmag:
garden.highmag = highmag
if dis_freight:
garden.dis_freight = dis_freight
if dis_rail:
garden.dis_rail = dis_rail
if dis_port:
garden.dis_port = dis_port
if dis_air:
garden.dis_air = dis_air
if road_trans:
garden.road_trans = road_trans
if rail_trans:
garden.rail_trans = rail_trans
if live_facility:
garden.live_facility = live_facility
if market:
garden.market = market
if hotel_bus:
garden.hotel_bus = hotel_bus
if medical:
garden.medical = medical
if education:
garden.education = education
if induenterprise:
garden.induenterprise = induenterprise
if innovate:
garden.innovate = innovate
if base:
garden.base = base
if carrier:
garden.carrier = carrier
db.session.add(garden)
db.session.commit()
garden_id = garden.id
return jsonify(code=RET.OK, msg="添加成功", id=garden_id)
except Exception as e:
current_app.logger.error(e)
return jsonify(code=RET.DBERR, msg="数据库查询错误")
# 园区审核
@api_manage.route("/passGarden", methods=["POST"])
@login_required
def pass_garden():
token = request.headers["token"]
user = verify_token(token)
user_id = user.id
try:
user = User.query.get(user_id)
role = user.role
except Exception as e:
current_app.logger.error(e)
return jsonify(code=RET.DBERR, msg="数据库错误")
if role.role[4] != "1":
return jsonify(code=RET.REQERR, msg="暂无权限")
req_dict = request.get_json()
id = req_dict.get("id") # 园区id
advice = req_dict.get("advice") # 1通过,2驳回
if not all([id]):
return jsonify(code=RET.PARAMERR, msg="参数不完整")
try:
garden = Garden.query.get(id)
if advice == 1:
garden.status = "审核通过"
db.session.commit()
return jsonify(code=RET.OK, msg="已通过")
else:
garden.status = "审核驳回"
db.session.commit()
return jsonify(code=RET.OK, msg="已驳回")
except Exception as e:
db.session.rollabck()
current_app.logger.error(e)
return jsonify(code=RET.DBERR, msg="数据库操作错误")
# 园区上报
@api_manage.route("/sendGarden", methods=["POST"])
@login_required
def send_garden():
token = request.headers["token"]
user = verify_token(token)
user_id = user.id
try:
user = User.query.get(user_id)
role = user.role
except Exception as e:
current_app.logger.error(e)
return jsonify(code=RET.DBERR, msg="数据库错误")
if role.role[4] != "1":
return jsonify(code=RET.REQERR, msg="暂无权限")
req_dict = request.get_json()
id = req_dict.get("id") # 园区id
org = req_dict.get("org") # 待上报机构名
if not all([id, org]):
return jsonify(code=RET.PARAMERR, msg="参数不完整")
try:
garden = Garden.query.get(id)
garden.uperson = user.name
garden.up_unit = org
garden.status = "正在审核"
db.session.commit()
return jsonify(code=RET.OK, msg="上报成功")
except Exception as e:
current_app.logger.error(e)
return jsonify(code=RET.DBERR, msg="数据库操作错误")
# 园区修改
@api_manage.route("/editGarden", methods=["POST"])
@login_required
def edit_garden():
# user_id = g.user_id
token = request.headers["token"]
user = verify_token(token)
user_id = user.id
user = User.query.get(user_id)
role = user.role
if role.role[5] != "1":
return jsonify(code=RET.REQERR, msg="暂无权限")
req_dict = request.get_json()
id = req_dict.get("id") # 园区id
name = req_dict.get("name") # 园区姓名
level = req_dict.get("level") # 园区级别
charge = req_dict.get("charge") # 园区负责人
phone = req_dict.get("phone") # 园区联系电话
cate = req_dict.get("cate") # 园区类型
address = req_dict.get("address") # 园区地址
cluster = req_dict.get("cluster") # 产业集群(多选)
# 园区信息
area = req_dict.get("area") # 占地面积(平方公里)
acreage = req_dict.get("acreage") # 规划面积(平方公里)
actarea = req_dict.get("actarea") # 建成面积(平方公里)
tax = req_dict.get("tax") # 税收要求(万元/亩)
out_power = req_dict.get("out_power") # 产出强度(万元/亩)
invest_power = req_dict.get("invest_power") # 投资强度(万元/亩)
indu_need = req_dict.get("indu_need") # 行业要求
gdp = req_dict.get("gdp") # GDP(亿元)
fiscal = req_dict.get("fiscal") # 财政收入(亿元)
indu_land = req_dict.get("indu_land") # 工业土地均价(万元/亩)
indu_sup = req_dict.get("indu_sup") # 工业土地供应量
comm_land = req_dict.get("comm_land") # 商办土地均价(万元/亩)
comm_sup = req_dict.get("comm_sup") # 商办土地供应量
represent = req_dict.get("represent") # 代表企业
# 投资成本
resident_ele_one = req_dict.get("resident_ele_one") # 居民用电(一档)(元/度)
resident_ele_two = req_dict.get("resident_ele_two") # 居民用电(二档)(元/度)
resident_ele_thr = req_dict.get("resident_ele_thr") # 居民用电(三档)(元/度)
comm_ele_one = req_dict.get("comm_ele_one") # 商业用电(峰段)(元/度)
comm_ele_two = req_dict.get("comm_ele_two") # 商业用电(平段)(元/度)
comm_ele_thr = req_dict.get("comm_ele_thr") # 商业用电(谷段)(元/度)
indu_ele_one = req_dict.get("indu_ele_one") # 工业用电(峰段)(元/度)
indu_ele_two = req_dict.get("indu_ele_two") # 工业用电(平段)(元/度)
indu_ele_thr = req_dict.get("indu_ele_thr") # 工业用电(谷段)(元/度)
resident_water_one = req_dict.get("resident_water_one") # 居民用水(一档)(元/吨)
resident_water_two = req_dict.get("resident_water_two") # 居民用水(二档)(元/吨)
resident_water_thr = req_dict.get("resident_water_thr") # 居民用水(三档)(元/吨)
comm_water = req_dict.get("comm_water") # 商业用水(元/吨)
indu_water = req_dict.get("indu_water") # 工业用水(元/吨)
special_water = req_dict.get("special_water") # 特种用水(元/吨)
resident_natgas_one = req_dict.get("resident_natgas_one") # 居民用气(一档)(元/m³)
resident_natgas_two = req_dict.get("resident_natgas_two") # 居民用气(二档)(元/m³)
resident_natgas_thr = req_dict.get("resident_natgas_thr") # 居民用气(三档)(元/m³)
sewage = req_dict.get("sewage") # 污水处理(元/吨)
wagelevel = req_dict.get("wagelevel") # 最低工资标准(元/月)
worker = req_dict.get("worker") # 普通员工(元/月)
middlemag = req_dict.get("middlemag") # 中级管理人员(元/月)
highmag = req_dict.get("highmag") # 高层管理人员(元/月)
# 环境配套
dis_freight = req_dict.get("dis_freight") # 距离货运站距离
dis_rail = req_dict.get("dis_rail") # 距离高铁站
dis_port = req_dict.get("dis_port") # 距离港口距离
dis_air = req_dict.get("dis_air") # 距离机场距离
road_trans = req_dict.get("road_trans") # 公路运输
rail_trans = req_dict.get("rail_trans") # 铁路运输
live_facility = req_dict.get("live_facility") # 园区生活配套
market = req_dict.get("market") # 百货商场
hotel_bus = req_dict.get("hotel_bus") # 酒店商务
medical = req_dict.get("medical") # 医疗机构
education = req_dict.get("education") # 学校教育
induenterprise = req_dict.get("induenterprise") # 规模以上企业
innovate = req_dict.get("innovate") # 科研机构
base = req_dict.get("base") # 双创基地
carrier = req_dict.get("carrier") # 产业载体
if not all([name, level, charge, phone, cate, address, cluster, area, acreage, actarea, tax, out_power,
invest_power, indu_land, indu_need, gdp, fiscal, indu_sup, comm_land, comm_sup, represent]):
return jsonify(code=RET.PARAMERR, msg="参数不完整")
cluster = ",".join(cluster)
try:
garden = Garden.query.get(id)
garden.name = name
garden.level = level
garden.charge = charge
garden.phone = phone
garden.cate = cate
garden.address = address
garden.cluster = cluster
garden.area = area
garden.acreage = acreage
garden.actarea = actarea
garden.tax = tax
garden.out_power = out_power
garden.invest_power = invest_power
garden.indu_need = indu_need
garden.gdp = gdp
garden.fiscal = fiscal
garden.indu_land = indu_land
garden.indu_sup = indu_sup
garden.comm_land = comm_land
garden.comm_sup = comm_sup
garden.represent = represent
if resident_ele_one:
garden.resident_ele_one = resident_ele_one
if resident_ele_two:
garden.resident_ele_two = resident_ele_two
if resident_ele_thr:
garden.resident_ele_thr = resident_ele_thr
if comm_ele_one:
garden.comm_ele_one = comm_ele_one
if comm_ele_two:
garden.comm_ele_two = comm_ele_two
if comm_ele_thr:
garden.comm_ele_thr = comm_ele_thr
if indu_ele_one:
garden.indu_ele_one = indu_ele_one
if indu_ele_two:
garden.indu_ele_two = indu_ele_two
if indu_ele_thr:
garden.indu_ele_thr = indu_ele_thr
if resident_water_one:
garden.resident_water_one = resident_water_one
if resident_water_two:
garden.resident_water_two = resident_water_two
if resident_water_thr:
garden.resident_water_thr = resident_water_thr
if comm_water:
garden.comm_water = comm_water
if indu_water:
garden.indu_water = indu_water
if special_water:
garden.special_water = special_water
if resident_natgas_one:
garden.resident_natgas_one = resident_natgas_one
if resident_natgas_two:
garden.resident_natgas_two = resident_natgas_two
if resident_natgas_thr:
garden.resident_natgas_thr = resident_natgas_thr
if sewage:
garden.sewage = sewage
if wagelevel:
garden.wagelevel = wagelevel
if worker:
garden.worker = worker
if middlemag:
garden.middlemag = middlemag
if highmag:
garden.highmag = highmag
if dis_freight:
garden.dis_freight = dis_freight
if dis_rail:
garden.dis_rail = dis_rail
if dis_port:
garden.dis_port = dis_port
if dis_air:
garden.dis_air = dis_air
if road_trans:
garden.road_trans = road_trans
if rail_trans:
garden.rail_trans = rail_trans
if live_facility:
garden.live_facility = live_facility
if market:
garden.market = market
if hotel_bus:
garden.hotel_bus = hotel_bus
if medical:
garden.medical = medical
if education:
garden.education = education
if induenterprise:
garden.induenterprise = induenterprise
if innovate:
garden.innovate = innovate
if base:
garden.base = base
if carrier:
garden.carrier = carrier
db.session.commit()
return jsonify(code=RET.OK, msg="修改成功")
except Exception as e:
current_app.logger.error(e)
return jsonify(code=RET.DBERR, msg="数据库查询错误")
# 园区查看
@api_manage.route("/detailGarden", methods=["POST"])
# @login_required
def detail_garden():
req_dict = request.get_json()
id = req_dict.get('id') # 园区id
if not all([id]):
return jsonify(code=RET.PARAMERR, msg="参数不完整")
try:
garden = Garden.query.get(id)
if garden:
data = {"id": garden.id,
"name": garden.name,
"level": garden.level,
"charge": garden.charge,
"phone": garden.phone,
"cate": garden.cate,
"address": garden.address,
"cluster": garden.cluster,
"area": garden.area,
"acreage": garden.acreage,
"actarea": garden.actarea,
"tax": garden.tax,
"out_power": garden.out_power,
"invest_power": garden.invest_power,
"indu_need": garden.indu_need,
"gdp": garden.gdp,
"fiscal": garden.fiscal,
"indu_land": garden.indu_land,
"indu_sup": garden.indu_sup,
"comm_land": garden.comm_land,
"comm_sup": garden.comm_sup,
"represent": garden.represent,
"resident_ele_one": garden.resident_ele_one if garden.resident_ele_one else "-",
"resident_ele_two": garden.resident_ele_two if garden.resident_ele_two else "-",
"resident_ele_thr": garden.resident_ele_thr if garden.resident_ele_thr else "-",
"comm_ele_one": garden.comm_ele_one if garden.comm_ele_one else "-",
"comm_ele_two": garden.comm_ele_two if garden.comm_ele_two else "-",
"comm_ele_thr": garden.resident_ele_thr if garden.comm_ele_thr else "-",
"indu_ele_one": garden.indu_ele_one if garden.indu_ele_one else "-",
"indu_ele_two": garden.indu_ele_two if garden.indu_ele_two else "-",
"indu_ele_thr": garden.indu_ele_thr if garden.indu_ele_thr else "-",
"resident_water_one": garden.resident_water_one if garden.resident_water_one else "-",
"resident_water_two": garden.resident_water_two if garden.resident_water_two else "-",
"resident_water_thr": garden.resident_water_thr if garden.resident_water_thr else "-",
"comm_water": garden.comm_water if garden.comm_water else "-",
"indu_water": garden.indu_water if garden.indu_water else "-",
"special_water": garden.special_water if garden.special_water else "-",
"resident_natgas_one": garden.resident_natgas_one if garden.resident_natgas_one else "-",
"resident_natgas_two": garden.resident_natgas_two if garden.resident_natgas_two else "-",
"resident_natgas_thr": garden.resident_natgas_thr if garden.resident_natgas_thr else "-",
"sewage": garden.sewage if garden.sewage else "-",
"wagelevel": garden.wagelevel if garden.wagelevel else "-",
"worker": garden.worker if garden.worker else "-",
"middlemag": garden.middlemag if garden.middlemag else "-",
"highmag": garden.highmag if garden.highmag else "-",
"dis_freight": garden.dis_freight if garden.dis_freight else "-",
"dis_rail": garden.dis_rail if garden.dis_rail else "-",
"dis_port": garden.dis_port if garden.dis_port else "-",
"dis_air": garden.dis_air if garden.dis_air else "-",
"road_trans": garden.road_trans if garden.road_trans else "-",
"rail_trans": garden.rail_trans if garden.rail_trans else "-",
"live_facility": garden.live_facility if garden.live_facility else "-",
"market": garden.market if garden.market else "-",
"hotel_bus": garden.hotel_bus if garden.hotel_bus else "-",
"medical": garden.medical if garden.medical else "-",
"education": garden.education if garden.education else "-",
"induenterprise": garden.induenterprise if garden.induenterprise else "-",
"innovate": garden.innovate if garden.innovate else "-",
"base": garden.base if garden.base else "-",
"carrier": garden.carrier if garden.carrier else "-",
}
return jsonify(code=RET.OK, msg="查询成功", data=data)
return jsonify(code=RET.OK, msg="没有文件", data=False)
except Exception as e:
current_app.logger.error(e)
return jsonify(code=RET.DBERR, msg="数据库查询错误")
@api_manage.route("/downModel", methods=["GET"])
# @login_required
def down_model():
'''带中文名本地文件下载'''
# filename = request.args.get('indu_name') + ".xlsx"
filename = "××园区调研问卷附表.xlsx"
# http://127.0.0.1:5000/api/manage/downModel
url = pro_url + "/model/" + filename
return jsonify(code=RET.OK, msg='下载成功', url=url, filename=filename)
# # 规模下载 二进制文件流
# @api_manage.route("/downFilewa", methods=["GET"])
# # @login_required
# def down_filewa():
# '''带中文名本地文件下载'''
# # filename = request.args.get('indu_name') + ".xlsx"
# filename = "全国省市区信息.xlsx"
# # http://127.0.0.1:5000/api/manage/downModel
# directory = os.getcwd() + "/apps/static/files/" # 文件目录
# response = make_response(send_from_directory(directory, filename, as_attachment=True))
# response.headers["Content-Disposition"] = "attachment; filename={}".format(filename.encode().decode('latin-1'))
# return response
''''''
# 检查是否有文件
@api_manage.route("/checkFile", methods=["POST"])
def check_file():
req_dict = request.get_json()
id = req_dict.get('id') # 园区id
if not id:
return jsonify(code=RET.PARAMERR, msg="数据不完整")
try:
garden = Garden.query.get(id)
if garden.url_file:
return jsonify(code=RET.OK, msg="已有文件", data=True)
return jsonify(code=RET.OK, msg="没有文件", data=False)
except Exception as e:
current_app.logger.error(e)
return jsonify(code=RET.DBERR, msg="数据库查询错误")
# 上传文件,限制大小16M,提示5M
@api_manage.route("/upFile", methods=["POST"])
def up_file():
# user_id = g.user_id
req_dict = request.form.to_dict()
id = req_dict.get('id') # 园区id
file = request.files.get('file')
if not file:
return jsonify(code=RET.NODATA, msg="文件未上传")
# 文件从request,files获取,这里使用CombinedMultiDict把form和file的数据组合起来,一起验证
form = UploadFormFile(CombinedMultiDict([request.form, request.files]))
if not form.validate():
return jsonify(code=RET.DATAERR, msg=form.errors)
# 保存到本地服务器
image_name = file.filename
url = image_name
# 保存文件名到数据库中
try:
garden = Garden.query.filter_by(id=id).first()
# 删除原文件
if garden.url_file:
filename = str(garden.url_file)
path = os.getcwd() + "/apps/static/files/" + filename
os.unlink(path)
# 保存新文件
file.save('./apps/static/files/{}'.format(image_name))
# 提交新文件名
garden.url_file = url
db.session.commit()
return jsonify(code=RET.OK, msg="保存成功")
file.save('./apps/static/files/{}'.format(image_name))
garden.url_file = url
db.session.commit()
return jsonify(code=RET.OK, msg="保存成功")
except Exception as e:
db.session.rollback()
current_app.logger.error(e)
return jsonify(code=RET.DBERR, msg="保存文件失败")
# # 上传文件,限制大小16M,提示5M
# @api_manage.route("/upFile", methods=["POST"])
# def up_file():
# # user_id = g.user_id
# req_dict = request.form.to_dict()
# id = req_dict.get('id') # 园区id
# file = request.files.get('file')
# print(file.filename)
# if not file:
# return jsonify(code = RET.NODATA, msg = "文件未上传")
#
# # 文件从request,files获取,这里使用CombinedMultiDict把form和file的数据组合起来,一起验证
# form = UploadFormFile(CombinedMultiDict([request.form, request.files]))
# if not form.validate():
# return jsonify(code =RET.DATAERR, msg=form.errors)
#
# # 保存到本地服务器
# image_name = file.filename
# url = image_name
#
# # 保存文件名到数据库中
# try:
# garden = Garden.query.filter_by(id=id).first()
# # 删除原文件
# filename = str(garden.url_file)
# path = os.getcwd() + "/apps/static/files/" + filename
# os.unlink(path)
# # 保存新文件
# file.save('./apps/static/files/{}'.format(image_name))
# # 提交新文件名
# garden.url_file = url
# db.session.commit()
# except Exception as e:
# db.session.rollback()
# current_app.logger.error(e)
# return jsonify(code =RET.DBERR, msg ="保存文件失败")
#
# return jsonify(code =RET.OK, msg ="保存成功")
# 文件下载
@api_manage.route("/downFile", methods=["POST"])
# @login_required
def down_file():
req_dict = request.get_json()
id = req_dict.get('id') # 园区id
# id = 1 # 园区id
try:
garden = Garden.query.get(id)
if garden.url_file:
filename = str(garden.url_file)
url = pro_url + "/files/"+filename
return jsonify(code = RET.OK,msg = "上传成功",url = url,filename = filename)
# directory = os.getcwd() + "/apps/static/files/" # 文件目录
# response = make_response(send_from_directory(directory, filename, as_attachment=True))
# response.headers["Content-Disposition"] = "attachment; filename={}".format(
# filename.encode().decode('latin-1'))
# return response
return jsonify(code=RET.OK, msg="暂无文件")
except Exception as e:
current_app.logger.error(e)
return jsonify(code=RET.DBERR, msg="数据库查询错误")
# @api_manage.route("/downFile", methods=["POST"])
# # @login_required
# def down_file():
# req_dict = request.get_json()
# id = req_dict.get('id') # 园区id
# # id = 1 # 园区id
# try:
# garden = Garden.query.get(id)
# if garden.url_file:
# filename = str(garden.url_file)
# directory = os.getcwd() + "/apps/static/files/" # 文件目录
# response = make_response(send_from_directory(directory, filename, as_attachment=True))
# response.headers["Content-Disposition"] = "attachment; filename={}".format(
# filename.encode().decode('latin-1'))
# return response
# return jsonify(code=RET.OK, msg="暂无文件")
# except Exception as e:
# current_app.logger.error(e)
# return jsonify(code=RET.DBERR, msg="数据库查询错误")
# 资料上传
@api_manage.route("/upDoc", methods=["POST"])
@login_required
def up_doc():
token = request.headers["token"]
user = verify_token(token)
user_id = user.id
req_dict = request.form.to_dict()
id = req_dict.get('id') # 园区id
size = req_dict.get("size") # 文件大小
file = request.files.get('file')
if not file:
return jsonify(code=RET.NODATA, msg="文件未上传")
# 文件从request,files获取,这里使用CombinedMultiDict把form和file的数据组合起来,一起验证
form = UploadFormFile(CombinedMultiDict([request.form, request.files]))
if not form.validate():
return jsonify(code=RET.DATAERR, msg=form.errors)
# 保存到本地服务器
image_name = "{}".format(int(time.time())) + file.filename
# 保存文件名到数据库中
try:
user = User.query.get(user_id)
garden = Garden.query.get(id)
gfile = Gfile(name=image_name, size=size, uperson=user.real_name, cate=1)
db.session.add(gfile)
file.save('./apps/static/projectfile/{}'.format(image_name))
garden.document.append(gfile)
db.session.commit()
file_id = gfile.id
except Exception as e:
db.session.rollback()
current_app.logger.error(e)
return jsonify(code=RET.DBERR, msg="保存文件失败")
data = {"filename": image_name, "uperson": user.real_name, "id": file_id}
return jsonify(code=RET.OK, msg="保存成功", data=data)
# 获取园区资料列表
@api_manage.route("/listDoc", methods=["POST"])
# @login_required
def list_doc():
# user_id = g.user_id
req_dict = request.get_json()
id = req_dict.get('id') # 园区id
try:
garden = Garden.query.get(id)
docs = garden.document
data = [{"id": i.id,
"filename": i.name[10:],
"size": i.size,
"uperson": i.uperson
} for i in docs if i.cate == 1]
return jsonify(code=RET.OK, msg="查询成功", data=data)
except Exception as e:
# db.session.rollback()
current_app.logger.error(e)
return jsonify(code=RET.DBERR, msg="服务器错误")
# # 获取园区资料列表
# @api_manage.route("/listDoc", methods=["POST"])
# # @login_required
# def list_doc():
# # user_id = g.user_id
# req_dict = request.form.to_dict()
# id = req_dict.get('id') # 园区id
# try:
# garden = Garden.query.get(id)
# docs = garden.document
# data = [{"id": i.id,
# "filename": i.name,
# "size": i.size,
# "uperson": i.uperson
# } for i in docs if i.cate == 1]
# return jsonify(code=RET.OK, msg="查询成功", data=data)
# except Exception as e:
# # db.session.rollback()
# current_app.logger.error(e)
# return jsonify(code=RET.DBERR, msg="保存文件失败")
# 文件下载
@api_manage.route("/downDoc", methods=["POST"])
# @login_required
def down_doc():
req_dict = request.get_json()
id = req_dict.get('id') # 文件id
try:
gfile = Gfile.query.get(id)
if gfile:
filename = str(gfile.name)
url = pro_url + "/projectfile/" + filename
return jsonify(code=RET.OK, msg="查找成功", filename=filename, url=url)
return jsonify(code=RET.DATAERR, msg="参数错误")
except Exception as e:
current_app.logger.error(e)
return jsonify(code=RET.DBERR, msg="数据库查询错误")
# # 文件下载
# @api_manage.route("/downDoc", methods=["POST"])
# # @login_required
# def down_doc():
# req_dict = request.get_json()
# id = req_dict.get('id') # 文件id
# try:
# gfile = Gfile.query.get(id)
# if gfile:
# filename = str(gfile.name)
# directory = os.getcwd() + "/apps/static/projectfile/" # 文件目录
# response = make_response(send_from_directory(directory, filename, as_attachment=True))
# response.headers["Content-Disposition"] = "attachment; filename={}".format(
# filename.encode().decode('latin-1'))
# return response
# return jsonify(code=RET.DATAERR, msg="参数错误")
# except Exception as e:
# current_app.logger.error(e)
# return jsonify(code=RET.DBERR, msg="数据库查询错误")
''''''
# 文件删除
@api_manage.route("/deleteDoc", methods=["POST"])
# @login_required
def delete_doc():
req_dict = request.get_json()
id = req_dict.get('id') # 文件id
try:
gfile = Gfile.query.get(id)
if gfile:
db.session.delete(gfile)
db.session.commit()
return jsonify(code=RET.OK, msg="删除成功")
return jsonify(code=RET.DATAERR, msg="参数错误")
except Exception as e:
db.session.rollback()
current_app.logger.error(e)
return jsonify(code=RET.DBERR, msg="数据库查询错误")
# 图片上传
@api_manage.route("/upImage", methods=["POST"])
@login_required
def up_image():
token = request.headers["token"]
user = verify_token(token)
user_id = user.id
req_dict = request.form.to_dict()
id = req_dict.get('id') # 园区id
file = request.files.get('file')
if not file:
return jsonify(code=RET.NODATA, msg="文件未上传")
# 保存到本地服务器
image_name = "{}".format((int(time.time()))) + file.filename
# 保存文件名到数据库中
try:
user = User.query.get(user_id)
garden = Garden.query.get(id)
gfile = Gfile(name=image_name, uperson=user.real_name, cate=2)
db.session.add(gfile)
file.save('./apps/static/image/{}'.format(image_name))
garden.document.append(gfile)
db.session.commit()
except Exception as e:
db.session.rollback()
current_app.logger.error(e)
return jsonify(code=RET.DBERR, msg="保存文件失败")
image_id = gfile.id
data = {"filename": image_name, "uperson": user.real_name, "id": image_id}
return jsonify(code=RET.OK, msg="保存成功", data=data)
# 获取园区图片列表
@api_manage.route("/listImage", methods=["POST"])
# @login_required
def list_img():
# user_id = g.user_id
req_dict = request.get_json()
id = req_dict.get('id') # 园区id
try:
garden = Garden.query.get(id)
docs = garden.document
data = [{"id": i.id,
"url": pro_url + "/image/" + i.name,
} for i in docs if i.cate == 2]
return jsonify(code=RET.OK, msg="查询成功", data=data)
except Exception as e:
# db.session.rollback()
current_app.logger.error(e)
return jsonify(code=RET.DBERR, msg="数据库错误")
import os
import json
from flask import g, current_app, request, jsonify, session, send_from_directory, make_response
from apps.inves_manage import api_manage, pro_url
# from apps.utils.commons import login_required
from apps.util import verify_token
from apps.util import login_required
from apps.utils.response_code import RET
from apps.models import *
from apps.utils.read_json import open_type
from datetime import datetime, timedelta
from sqlalchemy import extract, or_, and_
from sqlalchemy.sql import func
import datetime
import filetype
import time
from apps.utils.forms import *
from werkzeug.datastructures import CombinedMultiDict
# 获取筛选条件
@api_manage.route("/getFiled", methods=["GET"])
@login_required
def get_filed():
try:
zone = Zone.query.filter_by(statu=1)
cates = zone.filter_by(sid=1).all() # 类别
levels = zone.filter_by(sid=2).all() # 级别
# options: [{value: "选项1", label: "无数据"}, {value: "选项2", label: "3333"}],
data = {"cate": [{"label": i.name, "value": i.nid} for i in cates], # [i.name for i in cates],
"level": [{"label": i.name, "value": i.nid} for i in levels], # [i.name for i in levels],
"indu": [{"label": "高端装备", "value": 1}, {"label": "新材料", "value": 2},
{"label": "新一代信息技术", "value": 3}, {"label": "现代服务业", "value": 4}],
"status": [{"label": "未上报", "value": 1}, {"label": "审核通过", "value": 2},
{"label": "审核驳回", "value": 3}, {"label": "正在审核", "value": 4}]
}
data["cate"].insert(0, {"label": "请选择", "value": ""})
data["level"].insert(0, {"label": "请选择", "value": ""})
data["indu"].insert(0, {"label": "请选择", "value": ""})
data["status"].insert(0, {"label": "请选择", "value": ""})
return jsonify(code=RET.OK, msg="查询成功", data=data)
except Exception as e:
current_app.logger.error(e)
return jsonify(code=RET.DBERR, msg="数据库查询错误")
# 获取园区列表(层级权限)
@api_manage.route("/listOfGarden", methods=["POST"])
@login_required
def list_garden():
token = request.headers["token"]
user = verify_token(token)
user_id = user.id
req_dict = request.get_json()
key = req_dict.get("key")
indu = req_dict.get("indu")
level = req_dict.get("level")
cate = req_dict.get("cate")
status = req_dict.get("status")
page = req_dict.get("page")
perpage = req_dict.get("perpage")
# 校验参数完整性
if not all([page, perpage]):
return jsonify(code=RET.PARAMERR, msg="参数不完整")
try:
user = User.query.get(user_id) # 获取当前用户
role = user.role # 获取角色
unit = user.unit # 用户机构
section = user.section # 用户部门
garden = Garden.query.filter_by()
# garden = garden.filter(Garden.cluster.like("%{}%".format(indu)))
if indu:
garden = garden.filter(Garden.cluster.like("%{}%".format(indu)))
if level:
garden = garden.filter_by(level=level)
if cate:
garden = garden.filter_by(cate=cate)
if status:
garden = garden.filter_by(status=status)
if key:
garden = garden.filter(Garden.name.like("%{}%".format(key)))
if role.role[0] == "1": # 机构领导(看全部)
maxnum = garden.filter(or_(Garden.unit == unit, Garden.up_unit == unit)).count()
gardens = garden.filter(or_(Garden.unit == unit, Garden.up_unit == unit)).paginate(page, perpage).items
data = [{"id": i.id,
"name": i.name,
"address": i.address,
"level": i.level,
"cate": i.cate,
"charge": i.charge,
"phone": i.phone,
"uperson": i.uperson if i.uperson else "",
"unit": i.up_unit,
"status": i.status if i.status else ""} for i in gardens]
data = {"data_lis": data, "maxnum": maxnum}
return jsonify(code=RET.OK, msg="查询成功", data=data)
if role.role[0] == "2": # 部门领导(看部门),自己部门,上报给自己机构的
# print("===========")
gardens = garden.filter(
or_(Garden.up_unit == unit, and_(Garden.unit == unit, Garden.section == section))).paginate(page,
perpage).items
maxnum = garden.filter(
or_(Garden.up_unit == unit, and_(Garden.unit == unit, Garden.section == section))).count()
# print(gardens)
data = [{"id": i.id,
"name": i.name,
"address": i.address,
"level": i.level,
"cate": i.cate,
"charge": i.charge,
"phone": i.phone,
"uperson": i.uperson if i.uperson else "",
"unit": i.up_unit,
"status": i.status if i.status else ""} for i in gardens]
data = {"data_lis": data, "maxnum": maxnum}
return jsonify(code=RET.OK, msg="查询成功", data=data)
if role.role[0] == "3": # 自己看自己,+上报给自己机构的
gardens = garden.filter(or_(Garden.user == user_id, Garden.up_unit == unit))
maxnum = gardens.count()
# print(gardens)
gardens = gardens.paginate(page, perpage).items
# print(gardens)
data = [{"id": i.id,
"name": i.name,
"address": i.address,
"level": i.level,
"cate": i.cate,
"charge": i.charge,
"phone": i.phone,
"uperson": i.uperson if i.uperson else "",
"unit": i.up_unit,
"status": i.status if i.status else ""} for i in gardens]
data = {"data_lis": data, "maxnum": maxnum}
return jsonify(code=RET.OK, msg="查询成功", data=data)
else:
return jsonify(code=RET.DATAERR, msg="参数错误")
except Exception as e:
current_app.logger.error(e)
return jsonify(code=RET.DBERR, msg="数据库查询错误")
# 园区新增
@api_manage.route("/addGarden", methods=["POST"])
@login_required
def add_garden():
token = request.headers["token"]
user = verify_token(token)
user_id = user.id
try:
user = User.query.get(user_id)
role = user.role.role
if not role:
return jsonify(code=RET.OK, msg="无权限查看此内容")
except Exception as e:
current_app.logger.error(e)
return jsonify(code=RET.DBERR, msg="数据库错误")
role = user.role
if role.role[5] != "1":
return jsonify(code=RET.REQERR, msg="暂无权限")
req_dict = request.get_json()
# 基本信息*
name = req_dict.get("name") # 园区姓名
level = req_dict.get("level") # 园区级别
charge = req_dict.get("charge") # 园区负责人
phone = req_dict.get("phone") # 园区联系电话
cate = req_dict.get("cate") # 园区类型
address = req_dict.get("address") # 园区地址
cluster = req_dict.get("cluster") # 产业集群(多选)[]
area = req_dict.get("area") # 占地面积(平方公里)
acreage = req_dict.get("acreage") # 规划面积(平方公里)
gdp = req_dict.get("gdp") # GDP(亿元)
# 土地信息
land_code = req_dict.get("land_code") # 土地位置/编号
land_property = req_dict.get("land_property") # 土地性质
land_range = req_dict.get("land_range") # 土地范围
land_size = req_dict.get("land_size") # 土地面积/平方公里
indu_appeal = req_dict.get("indu_appeal") # 产业诉求
# 楼宇信息
build_name = req_dict.get("build_name") # 楼宇名称
build_add = req_dict.get("build_add") # 楼宇地址
build_size = req_dict.get("build_size") # 楼宇面积/平方公里
build_appeal = req_dict.get("build_appeal") # 楼宇诉求
# 厂房信息
plant_add = req_dict.get("plant_add") # 厂房位置
plant_size = req_dict.get("plant_size") # 厂房面积
plant_condition = req_dict.get("plant_condition") # 厂房条件
# 投资成本
resident_ele_one = req_dict.get("resident_ele_one") # 居民用电(一档)(元/度)
resident_ele_two = req_dict.get("resident_ele_two") # 居民用电(二档)(元/度)
resident_ele_thr = req_dict.get("resident_ele_thr") # 居民用电(三档)(元/度)
comm_ele_one = req_dict.get("comm_ele_one") # 商业用电(峰段)(元/度)
comm_ele_two = req_dict.get("comm_ele_two") # 商业用电(平段)(元/度)
comm_ele_thr = req_dict.get("comm_ele_thr") # 商业用电(谷段)(元/度)
indu_ele_one = req_dict.get("indu_ele_one") # 工业用电(峰段)(元/度)
indu_ele_two = req_dict.get("indu_ele_two") # 工业用电(平段)(元/度)
indu_ele_thr = req_dict.get("indu_ele_thr") # 工业用电(谷段)(元/度)
resident_water_one = req_dict.get("resident_water_one") # 居民用水(一档)(元/吨)
resident_water_two = req_dict.get("resident_water_two") # 居民用水(二档)(元/吨)
resident_water_thr = req_dict.get("resident_water_thr") # 居民用水(三档)(元/吨)
comm_water = req_dict.get("comm_water") # 商业用水(元/吨)
indu_water = req_dict.get("indu_water") # 工业用水(元/吨)
special_water = req_dict.get("special_water") # 特种用水(元/吨)
resident_natgas_one = req_dict.get("resident_natgas_one") # 居民用气(一档)(元/m³)
resident_natgas_two = req_dict.get("resident_natgas_two") # 居民用气(二档)(元/m³)
resident_natgas_thr = req_dict.get("resident_natgas_thr") # 居民用气(三档)(元/m³)
sewage = req_dict.get("sewage") # 污水处理(元/吨)
wagelevel = req_dict.get("wagelevel") # 最低工资标准(元/月)
worker = req_dict.get("worker") # 普通员工(元/月)
middlemag = req_dict.get("middlemag") # 中级管理人员(元/月)
highmag = req_dict.get("highmag") # 高层管理人员(元/月)
# 环境配套
dis_freight = req_dict.get("dis_freight") # 距离货运站距离
dis_rail = req_dict.get("dis_rail") # 距离高铁站
dis_port = req_dict.get("dis_port") # 距离港口距离
dis_air = req_dict.get("dis_air") # 距离机场距离
road_trans = req_dict.get("road_trans") # 公路运输
rail_trans = req_dict.get("rail_trans") # 铁路运输
live_facility = req_dict.get("live_facility") # 园区生活配套
market = req_dict.get("market") # 百货商场
hotel_bus = req_dict.get("hotel_bus") # 酒店商务
medical = req_dict.get("medical") # 医疗机构
education = req_dict.get("education") # 学校教育
induenterprise = req_dict.get("induenterprise") # 规模以上企业
innovate = req_dict.get("innovate") # 科研机构
base = req_dict.get("base") # 双创基地
carrier = req_dict.get("carrier") # 产业载体
if not all([name, level, charge, phone, cate, address, cluster, area, acreage]):
return jsonify(code=RET.PARAMERR, msg="基本信息请填完整")
cluster = ",".join(cluster)
try:
user = User.query.get(user_id)
unit = user.unit
section = user.section
garden = Garden(unit=unit, section=section, user=user_id, name=name, level=level, charge=charge, phone=phone,
cate=cate, address=address, cluster=cluster, area=area, acreage=acreage, gdp=gdp,
land_code=land_code, land_property=land_property, land_range=land_range, land_size=land_size,
indu_appeal=indu_appeal, build_name=build_name, build_add=build_add, build_size=build_size,
build_appeal=build_appeal, plant_add=plant_add, plant_size=plant_size,
plant_condition=plant_condition)
if resident_ele_one:
garden.resident_ele_one = resident_ele_one
if resident_ele_two:
garden.resident_ele_two = resident_ele_two
if resident_ele_thr:
garden.resident_ele_thr = resident_ele_thr
if comm_ele_one:
garden.comm_ele_one = comm_ele_one
if comm_ele_two:
garden.comm_ele_two = comm_ele_two
if comm_ele_thr:
garden.comm_ele_thr = comm_ele_thr
if indu_ele_one:
garden.indu_ele_one = indu_ele_one
if indu_ele_two:
garden.indu_ele_two = indu_ele_two
if indu_ele_thr:
garden.indu_ele_thr = indu_ele_thr
if resident_water_one:
garden.resident_water_one = resident_water_one
if resident_water_two:
garden.resident_water_two = resident_water_two
if resident_water_thr:
garden.resident_water_thr = resident_water_thr
if comm_water:
garden.comm_water = comm_water
if indu_water:
garden.indu_water = indu_water
if special_water:
garden.special_water = special_water
if resident_natgas_one:
garden.resident_natgas_one = resident_natgas_one
if resident_natgas_two:
garden.resident_natgas_two = resident_natgas_two
if resident_natgas_thr:
garden.resident_natgas_thr = resident_natgas_thr
if sewage:
garden.sewage = sewage
if wagelevel:
garden.wagelevel = wagelevel
if worker:
garden.worker = worker
if middlemag:
garden.middlemag = middlemag
if highmag:
garden.highmag = highmag
if dis_freight:
garden.dis_freight = dis_freight
if dis_rail:
garden.dis_rail = dis_rail
if dis_port:
garden.dis_port = dis_port
if dis_air:
garden.dis_air = dis_air
if road_trans:
garden.road_trans = road_trans
if rail_trans:
garden.rail_trans = rail_trans
if live_facility:
garden.live_facility = live_facility
if market:
garden.market = market
if hotel_bus:
garden.hotel_bus = hotel_bus
if medical:
garden.medical = medical
if education:
garden.education = education
if induenterprise:
garden.induenterprise = induenterprise
if innovate:
garden.innovate = innovate
if base:
garden.base = base
if carrier:
garden.carrier = carrier
db.session.add(garden)
db.session.commit()
garden_id = garden.id
return jsonify(code=RET.OK, msg="添加成功", id=garden_id)
except Exception as e:
current_app.logger.error(e)
return jsonify(code=RET.DBERR, msg="数据库查询错误")
# 园区审核
@api_manage.route("/passGarden", methods=["POST"])
@login_required
def pass_garden():
token = request.headers["token"]
user = verify_token(token)
user_id = user.id
try:
user = User.query.get(user_id)
role = user.role
except Exception as e:
current_app.logger.error(e)
return jsonify(code=RET.DBERR, msg="数据库错误")
if role.role[4] != "1":
return jsonify(code=RET.REQERR, msg="暂无权限")
req_dict = request.get_json()
id = req_dict.get("id") # 园区id
advice = req_dict.get("advice") # 1通过,2驳回
if not all([id]):
return jsonify(code=RET.PARAMERR, msg="参数不完整")
try:
garden = Garden.query.get(id)
if advice == 1:
garden.status = "审核通过"
db.session.commit()
return jsonify(code=RET.OK, msg="已通过")
else:
garden.status = "审核驳回"
db.session.commit()
return jsonify(code=RET.OK, msg="已驳回")
except Exception as e:
db.session.rollabck()
current_app.logger.error(e)
return jsonify(code=RET.DBERR, msg="数据库操作错误")
# 园区上报
@api_manage.route("/sendGarden", methods=["POST"])
@login_required
def send_garden():
token = request.headers["token"]
user = verify_token(token)
user_id = user.id
try:
user = User.query.get(user_id)
role = user.role
except Exception as e:
current_app.logger.error(e)
return jsonify(code=RET.DBERR, msg="数据库错误")
if role.role[4] != "1":
return jsonify(code=RET.REQERR, msg="暂无权限")
req_dict = request.get_json()
id = req_dict.get("id") # 园区id
org = req_dict.get("org") # 待上报机构名
if not all([id, org]):
return jsonify(code=RET.PARAMERR, msg="参数不完整")
try:
garden = Garden.query.get(id)
garden.uperson = user.name
garden.up_unit = org
garden.status = "正在审核"
db.session.commit()
return jsonify(code=RET.OK, msg="上报成功")
except Exception as e:
current_app.logger.error(e)
return jsonify(code=RET.DBERR, msg="数据库操作错误")
# 园区修改
@api_manage.route("/editGarden", methods=["POST"])
@login_required
def edit_garden():
token = request.headers["token"]
user = verify_token(token)
user_id = user.id
user = User.query.get(user_id)
role = user.role
if role.role[5] != "1":
return jsonify(code=RET.REQERR, msg="暂无权限")
req_dict = request.get_json()
id = req_dict.get("id") # 园区id
name = req_dict.get("name") # 园区姓名
level = req_dict.get("level") # 园区级别
charge = req_dict.get("charge") # 园区负责人
phone = req_dict.get("phone") # 园区联系电话
cate = req_dict.get("cate") # 园区类型
address = req_dict.get("address") # 园区地址
cluster = req_dict.get("cluster") # 产业集群(多选)
# 园区信息
area = req_dict.get("area") # 占地面积(平方公里)
acreage = req_dict.get("acreage") # 规划面积(平方公里)
gdp = req_dict.get("gdp") # GDP(亿元)
# 土地信息
land_code = req_dict.get("land_code") # 土地位置/编号
land_property = req_dict.get("land_property") # 土地性质
land_range = req_dict.get("land_range") # 土地范围
land_size = req_dict.get("land_size") # 土地面积/平方公里
indu_appeal = req_dict.get("indu_appeal") # 产业诉求
# 楼宇信息
build_name = req_dict.get("build_name") # 楼宇名称
build_add = req_dict.get("build_add") # 楼宇地址
build_size = req_dict.get("build_size") # 楼宇面积/平方公里
build_appeal = req_dict.get("build_appeal") # 楼宇诉求
# 厂房信息
plant_add = req_dict.get("plant_add") # 厂房位置
plant_size = req_dict.get("plant_size") # 厂房面积
plant_condition = req_dict.get("plant_condition") # 厂房条件
# 投资成本
resident_ele_one = req_dict.get("resident_ele_one") # 居民用电(一档)(元/度)
resident_ele_two = req_dict.get("resident_ele_two") # 居民用电(二档)(元/度)
resident_ele_thr = req_dict.get("resident_ele_thr") # 居民用电(三档)(元/度)
comm_ele_one = req_dict.get("comm_ele_one") # 商业用电(峰段)(元/度)
comm_ele_two = req_dict.get("comm_ele_two") # 商业用电(平段)(元/度)
comm_ele_thr = req_dict.get("comm_ele_thr") # 商业用电(谷段)(元/度)
indu_ele_one = req_dict.get("indu_ele_one") # 工业用电(峰段)(元/度)
indu_ele_two = req_dict.get("indu_ele_two") # 工业用电(平段)(元/度)
indu_ele_thr = req_dict.get("indu_ele_thr") # 工业用电(谷段)(元/度)
resident_water_one = req_dict.get("resident_water_one") # 居民用水(一档)(元/吨)
resident_water_two = req_dict.get("resident_water_two") # 居民用水(二档)(元/吨)
resident_water_thr = req_dict.get("resident_water_thr") # 居民用水(三档)(元/吨)
comm_water = req_dict.get("comm_water") # 商业用水(元/吨)
indu_water = req_dict.get("indu_water") # 工业用水(元/吨)
special_water = req_dict.get("special_water") # 特种用水(元/吨)
resident_natgas_one = req_dict.get("resident_natgas_one") # 居民用气(一档)(元/m³)
resident_natgas_two = req_dict.get("resident_natgas_two") # 居民用气(二档)(元/m³)
resident_natgas_thr = req_dict.get("resident_natgas_thr") # 居民用气(三档)(元/m³)
sewage = req_dict.get("sewage") # 污水处理(元/吨)
wagelevel = req_dict.get("wagelevel") # 最低工资标准(元/月)
worker = req_dict.get("worker") # 普通员工(元/月)
middlemag = req_dict.get("middlemag") # 中级管理人员(元/月)
highmag = req_dict.get("highmag") # 高层管理人员(元/月)
# 环境配套
dis_freight = req_dict.get("dis_freight") # 距离货运站距离
dis_rail = req_dict.get("dis_rail") # 距离高铁站
dis_port = req_dict.get("dis_port") # 距离港口距离
dis_air = req_dict.get("dis_air") # 距离机场距离
road_trans = req_dict.get("road_trans") # 公路运输
rail_trans = req_dict.get("rail_trans") # 铁路运输
live_facility = req_dict.get("live_facility") # 园区生活配套
market = req_dict.get("market") # 百货商场
hotel_bus = req_dict.get("hotel_bus") # 酒店商务
medical = req_dict.get("medical") # 医疗机构
education = req_dict.get("education") # 学校教育
induenterprise = req_dict.get("induenterprise") # 规模以上企业
innovate = req_dict.get("innovate") # 科研机构
base = req_dict.get("base") # 双创基地
carrier = req_dict.get("carrier") # 产业载体
if not all([name, level, charge, phone, cate, address, cluster, area, acreage]):
return jsonify(code=RET.PARAMERR, msg="参数不完整")
cluster = ",".join(cluster)
try:
garden = Garden.query.get(id)
garden.name = name
garden.level = level
garden.charge = charge
garden.phone = phone
garden.cate = cate
garden.address = address
garden.cluster = cluster
garden.area = area
garden.acreage = acreage
garden.gdp = gdp
garden.land_code = land_code
garden.land_property = land_property
garden.land_range = land_range
garden.land_size = land_size
garden.indu_appeal = indu_appeal
garden.build_name = build_name
garden.build_add = build_add
garden.build_size = build_size
garden.build_appeal = build_appeal
garden.plant_add = plant_add
garden.plant_size = plant_size
garden.plant_condition = plant_condition
if resident_ele_one:
garden.resident_ele_one = resident_ele_one
if resident_ele_two:
garden.resident_ele_two = resident_ele_two
if resident_ele_thr:
garden.resident_ele_thr = resident_ele_thr
if comm_ele_one:
garden.comm_ele_one = comm_ele_one
if comm_ele_two:
garden.comm_ele_two = comm_ele_two
if comm_ele_thr:
garden.comm_ele_thr = comm_ele_thr
if indu_ele_one:
garden.indu_ele_one = indu_ele_one
if indu_ele_two:
garden.indu_ele_two = indu_ele_two
if indu_ele_thr:
garden.indu_ele_thr = indu_ele_thr
if resident_water_one:
garden.resident_water_one = resident_water_one
if resident_water_two:
garden.resident_water_two = resident_water_two
if resident_water_thr:
garden.resident_water_thr = resident_water_thr
if comm_water:
garden.comm_water = comm_water
if indu_water:
garden.indu_water = indu_water
if special_water:
garden.special_water = special_water
if resident_natgas_one:
garden.resident_natgas_one = resident_natgas_one
if resident_natgas_two:
garden.resident_natgas_two = resident_natgas_two
if resident_natgas_thr:
garden.resident_natgas_thr = resident_natgas_thr
if sewage:
garden.sewage = sewage
if wagelevel:
garden.wagelevel = wagelevel
if worker:
garden.worker = worker
if middlemag:
garden.middlemag = middlemag
if highmag:
garden.highmag = highmag
if dis_freight:
garden.dis_freight = dis_freight
if dis_rail:
garden.dis_rail = dis_rail
if dis_port:
garden.dis_port = dis_port
if dis_air:
garden.dis_air = dis_air
if road_trans:
garden.road_trans = road_trans
if rail_trans:
garden.rail_trans = rail_trans
if live_facility:
garden.live_facility = live_facility
if market:
garden.market = market
if hotel_bus:
garden.hotel_bus = hotel_bus
if medical:
garden.medical = medical
if education:
garden.education = education
if induenterprise:
garden.induenterprise = induenterprise
if innovate:
garden.innovate = innovate
if base:
garden.base = base
if carrier:
garden.carrier = carrier
db.session.commit()
return jsonify(code=RET.OK, msg="修改成功")
except Exception as e:
current_app.logger.error(e)
return jsonify(code=RET.DBERR, msg="数据库查询错误")
# 园区查看
@api_manage.route("/detailGarden", methods=["POST"])
# @login_required
def detail_garden():
req_dict = request.get_json()
id = req_dict.get('id') # 园区id
if not all([id]):
return jsonify(code=RET.PARAMERR, msg="参数不完整")
try:
garden = Garden.query.get(id)
if garden:
data = {"id": garden.id,
"name": garden.name,
"level": garden.level,
"charge": garden.charge,
"phone": garden.phone,
"cate": garden.cate,
"address": garden.address,
"cluster": garden.cluster,
"area": garden.area,
"acreage": garden.acreage,
"gdp": garden.gdp,
"land_code": garden.land_code if garden.land_code else "-",
"land_property": garden.land_property if garden.land_property else "-",
"land_range": garden.land_range if garden.land_range else "-",
"land_size": garden.land_size if garden.land_size else "-",
"indu_appeal": garden.indu_appeal if garden.indu_appeal else "-",
"build_name": garden.build_name if garden.build_name else "-",
"build_add": garden.build_add if garden.build_add else "-",
"build_size": garden.build_size if garden.build_size else "-",
"build_appeal": garden.build_appeal if garden.build_appeal else "-",
"plant_add": garden.plant_add if garden.plant_add else "-",
"plant_size": garden.plant_size if garden.plant_size else "-",
"plant_condition": garden.plant_condition if garden.plant_condition else "-",
"resident_ele_one": garden.resident_ele_one if garden.resident_ele_one else "-",
"resident_ele_two": garden.resident_ele_two if garden.resident_ele_two else "-",
"resident_ele_thr": garden.resident_ele_thr if garden.resident_ele_thr else "-",
"comm_ele_one": garden.comm_ele_one if garden.comm_ele_one else "-",
"comm_ele_two": garden.comm_ele_two if garden.comm_ele_two else "-",
"comm_ele_thr": garden.resident_ele_thr if garden.comm_ele_thr else "-",
"indu_ele_one": garden.indu_ele_one if garden.indu_ele_one else "-",
"indu_ele_two": garden.indu_ele_two if garden.indu_ele_two else "-",
"indu_ele_thr": garden.indu_ele_thr if garden.indu_ele_thr else "-",
"resident_water_one": garden.resident_water_one if garden.resident_water_one else "-",
"resident_water_two": garden.resident_water_two if garden.resident_water_two else "-",
"resident_water_thr": garden.resident_water_thr if garden.resident_water_thr else "-",
"comm_water": garden.comm_water if garden.comm_water else "-",
"indu_water": garden.indu_water if garden.indu_water else "-",
"special_water": garden.special_water if garden.special_water else "-",
"resident_natgas_one": garden.resident_natgas_one if garden.resident_natgas_one else "-",
"resident_natgas_two": garden.resident_natgas_two if garden.resident_natgas_two else "-",
"resident_natgas_thr": garden.resident_natgas_thr if garden.resident_natgas_thr else "-",
"sewage": garden.sewage if garden.sewage else "-",
"wagelevel": garden.wagelevel if garden.wagelevel else "-",
"worker": garden.worker if garden.worker else "-",
"middlemag": garden.middlemag if garden.middlemag else "-",
"highmag": garden.highmag if garden.highmag else "-",
"dis_freight": garden.dis_freight if garden.dis_freight else "-",
"dis_rail": garden.dis_rail if garden.dis_rail else "-",
"dis_port": garden.dis_port if garden.dis_port else "-",
"dis_air": garden.dis_air if garden.dis_air else "-",
"road_trans": garden.road_trans if garden.road_trans else "-",
"rail_trans": garden.rail_trans if garden.rail_trans else "-",
"live_facility": garden.live_facility if garden.live_facility else "-",
"market": garden.market if garden.market else "-",
"hotel_bus": garden.hotel_bus if garden.hotel_bus else "-",
"medical": garden.medical if garden.medical else "-",
"education": garden.education if garden.education else "-",
"induenterprise": garden.induenterprise if garden.induenterprise else "-",
"innovate": garden.innovate if garden.innovate else "-",
"base": garden.base if garden.base else "-",
"carrier": garden.carrier if garden.carrier else "-",
}
return jsonify(code=RET.OK, msg="查询成功", data=data)
return jsonify(code=RET.OK, msg="没有文件", data=False)
except Exception as e:
current_app.logger.error(e)
return jsonify(code=RET.DBERR, msg="数据库查询错误")
# TODO 文件操作等由于路径十分混乱,删除
@api_manage.route("/downModel", methods=["GET"])
# @login_required
def down_model():
'''带中文名本地文件下载'''
# filename = request.args.get('indu_name') + ".xlsx"
filename = "××园区调研问卷附表.xlsx"
# http://127.0.0.1:5000/api/manage/downModel
url = pro_url + "/model/" + filename
return jsonify(code=RET.OK, msg='下载成功', url=url, filename=filename)
# # 规模下载 二进制文件流
# @api_manage.route("/downFilewa", methods=["GET"])
# # @login_required
# def down_filewa():
# '''带中文名本地文件下载'''
# # filename = request.args.get('indu_name') + ".xlsx"
# filename = "全国省市区信息.xlsx"
# # http://127.0.0.1:5000/api/manage/downModel
# directory = os.getcwd() + "/apps/static/files/" # 文件目录
# response = make_response(send_from_directory(directory, filename, as_attachment=True))
# response.headers["Content-Disposition"] = "attachment; filename={}".format(filename.encode().decode('latin-1'))
# return response
''''''
# 检查是否有文件
@api_manage.route("/checkFile", methods=["POST"])
def check_file():
req_dict = request.get_json()
id = req_dict.get('id') # 园区id
if not id:
return jsonify(code=RET.PARAMERR, msg="数据不完整")
try:
garden = Garden.query.get(id)
if garden.url_file:
return jsonify(code=RET.OK, msg="已有文件", data=True)
return jsonify(code=RET.OK, msg="没有文件", data=False)
except Exception as e:
current_app.logger.error(e)
return jsonify(code=RET.DBERR, msg="数据库查询错误")
# 上传文件,限制大小16M,提示5M
@api_manage.route("/upFile", methods=["POST"])
def up_file():
# user_id = g.user_id
req_dict = request.form.to_dict()
id = req_dict.get('id') # 园区id
file = request.files.get('file')
if not file:
return jsonify(code=RET.NODATA, msg="文件未上传")
# 文件从request,files获取,这里使用CombinedMultiDict把form和file的数据组合起来,一起验证
form = UploadFormFile(CombinedMultiDict([request.form, request.files]))
if not form.validate():
return jsonify(code=RET.DATAERR, msg=form.errors)
# 保存到本地服务器
image_name = file.filename
url = image_name
# 保存文件名到数据库中
try:
garden = Garden.query.filter_by(id=id).first()
# 删除原文件
if garden.url_file:
filename = str(garden.url_file)
path = os.getcwd() + "/apps/static/files/" + filename
os.unlink(path)
# 保存新文件
file.save('./apps/static/files/{}'.format(image_name))
# 提交新文件名
garden.url_file = url
db.session.commit()
return jsonify(code=RET.OK, msg="保存成功")
file.save('./apps/static/files/{}'.format(image_name))
garden.url_file = url
db.session.commit()
return jsonify(code=RET.OK, msg="保存成功")
except Exception as e:
db.session.rollback()
current_app.logger.error(e)
return jsonify(code=RET.DBERR, msg="保存文件失败")
# # 上传文件,限制大小16M,提示5M
# @api_manage.route("/upFile", methods=["POST"])
# def up_file():
# # user_id = g.user_id
# req_dict = request.form.to_dict()
# id = req_dict.get('id') # 园区id
# file = request.files.get('file')
# print(file.filename)
# if not file:
# return jsonify(code = RET.NODATA, msg = "文件未上传")
#
# # 文件从request,files获取,这里使用CombinedMultiDict把form和file的数据组合起来,一起验证
# form = UploadFormFile(CombinedMultiDict([request.form, request.files]))
# if not form.validate():
# return jsonify(code =RET.DATAERR, msg=form.errors)
#
# # 保存到本地服务器
# image_name = file.filename
# url = image_name
#
# # 保存文件名到数据库中
# try:
# garden = Garden.query.filter_by(id=id).first()
# # 删除原文件
# filename = str(garden.url_file)
# path = os.getcwd() + "/apps/static/files/" + filename
# os.unlink(path)
# # 保存新文件
# file.save('./apps/static/files/{}'.format(image_name))
# # 提交新文件名
# garden.url_file = url
# db.session.commit()
# except Exception as e:
# db.session.rollback()
# current_app.logger.error(e)
# return jsonify(code =RET.DBERR, msg ="保存文件失败")
#
# return jsonify(code =RET.OK, msg ="保存成功")
# 文件下载
@api_manage.route("/downFile", methods=["POST"])
# @login_required
def down_file():
req_dict = request.get_json()
id = req_dict.get('id') # 园区id
# id = 1 # 园区id
try:
garden = Garden.query.get(id)
if garden.url_file:
filename = str(garden.url_file)
url = pro_url + "/files/" + filename
return jsonify(code=RET.OK, msg="上传成功", url=url, filename=filename)
# directory = os.getcwd() + "/apps/static/files/" # 文件目录
# response = make_response(send_from_directory(directory, filename, as_attachment=True))
# response.headers["Content-Disposition"] = "attachment; filename={}".format(
# filename.encode().decode('latin-1'))
# return response
return jsonify(code=RET.OK, msg="暂无文件")
except Exception as e:
current_app.logger.error(e)
return jsonify(code=RET.DBERR, msg="数据库查询错误")
# @api_manage.route("/downFile", methods=["POST"])
# # @login_required
# def down_file():
# req_dict = request.get_json()
# id = req_dict.get('id') # 园区id
# # id = 1 # 园区id
# try:
# garden = Garden.query.get(id)
# if garden.url_file:
# filename = str(garden.url_file)
# directory = os.getcwd() + "/apps/static/files/" # 文件目录
# response = make_response(send_from_directory(directory, filename, as_attachment=True))
# response.headers["Content-Disposition"] = "attachment; filename={}".format(
# filename.encode().decode('latin-1'))
# return response
# return jsonify(code=RET.OK, msg="暂无文件")
# except Exception as e:
# current_app.logger.error(e)
# return jsonify(code=RET.DBERR, msg="数据库查询错误")
# 资料上传
@api_manage.route("/upDoc", methods=["POST"])
@login_required
def up_doc():
token = request.headers["token"]
user = verify_token(token)
user_id = user.id
req_dict = request.form.to_dict()
id = req_dict.get('id') # 园区id
size = req_dict.get("size") # 文件大小
file = request.files.get('file')
if not file:
return jsonify(code=RET.NODATA, msg="文件未上传")
# # 文件从request,files获取,这里使用CombinedMultiDict把form和file的数据组合起来,一起验证
# form = UploadFormFile(CombinedMultiDict([request.form, request.files]))
# if not form.validate():
# return jsonify(code=RET.DATAERR, msg=form.errors)
# 保存到本地服务器
image_name = "{}".format(int(time.time())) + file.filename
# 保存文件名到数据库中
try:
user = User.query.get(user_id)
garden = Garden.query.get(id)
gfile = Gfile(name=image_name, size=size, uperson=user.real_name, cate=1)
db.session.add(gfile)
file.save('./apps/static/projectfile/{}'.format(image_name))
garden.document.append(gfile)
db.session.commit()
file_id = gfile.id
except Exception as e:
db.session.rollback()
current_app.logger.error(e)
return jsonify(code=RET.DBERR, msg="保存文件失败")
data = {"filename": image_name, "uperson": user.real_name, "id": file_id}
return jsonify(code=RET.OK, msg="保存成功", data=data)
# 获取园区资料列表
@api_manage.route("/listDoc", methods=["POST"])
# @login_required
def list_doc():
# user_id = g.user_id
req_dict = request.get_json()
id = req_dict.get('id') # 园区id
try:
garden = Garden.query.get(id)
docs = garden.document
data = [{"id": i.id,
"filename": i.name[10:],
"size": i.size,
"uperson": i.uperson
} for i in docs if i.cate == 1]
return jsonify(code=RET.OK, msg="查询成功", data=data)
except Exception as e:
# db.session.rollback()
current_app.logger.error(e)
return jsonify(code=RET.DBERR, msg="服务器错误")
# # 获取园区资料列表
# @api_manage.route("/listDoc", methods=["POST"])
# # @login_required
# def list_doc():
# # user_id = g.user_id
# req_dict = request.form.to_dict()
# id = req_dict.get('id') # 园区id
# try:
# garden = Garden.query.get(id)
# docs = garden.document
# data = [{"id": i.id,
# "filename": i.name,
# "size": i.size,
# "uperson": i.uperson
# } for i in docs if i.cate == 1]
# return jsonify(code=RET.OK, msg="查询成功", data=data)
# except Exception as e:
# # db.session.rollback()
# current_app.logger.error(e)
# return jsonify(code=RET.DBERR, msg="保存文件失败")
# 文件下载
@api_manage.route("/downDoc", methods=["POST"])
# @login_required
def down_doc():
req_dict = request.get_json()
id = req_dict.get('id') # 文件id
try:
gfile = Gfile.query.get(id)
if gfile:
filename = str(gfile.name)
url = pro_url + "/projectfile/" + filename
return jsonify(code=RET.OK, msg="查找成功", filename=filename, url=url)
return jsonify(code=RET.DATAERR, msg="参数错误")
except Exception as e:
current_app.logger.error(e)
return jsonify(code=RET.DBERR, msg="数据库查询错误")
# # 文件下载
# @api_manage.route("/downDoc", methods=["POST"])
# # @login_required
# def down_doc():
# req_dict = request.get_json()
# id = req_dict.get('id') # 文件id
# try:
# gfile = Gfile.query.get(id)
# if gfile:
# filename = str(gfile.name)
# directory = os.getcwd() + "/apps/static/projectfile/" # 文件目录
# response = make_response(send_from_directory(directory, filename, as_attachment=True))
# response.headers["Content-Disposition"] = "attachment; filename={}".format(
# filename.encode().decode('latin-1'))
# return response
# return jsonify(code=RET.DATAERR, msg="参数错误")
# except Exception as e:
# current_app.logger.error(e)
# return jsonify(code=RET.DBERR, msg="数据库查询错误")
''''''
# 文件删除
@api_manage.route("/deleteDoc", methods=["POST"])
# @login_required
def delete_doc():
req_dict = request.get_json()
id = req_dict.get('id') # 文件id
try:
gfile = Gfile.query.get(id)
if gfile:
db.session.delete(gfile)
db.session.commit()
return jsonify(code=RET.OK, msg="删除成功")
return jsonify(code=RET.DATAERR, msg="参数错误")
except Exception as e:
db.session.rollback()
current_app.logger.error(e)
return jsonify(code=RET.DBERR, msg="数据库查询错误")
# 图片上传
@api_manage.route("/upImage", methods=["POST"])
@login_required
def up_image():
token = request.headers["token"]
user = verify_token(token)
user_id = user.id
req_dict = request.form.to_dict()
id = req_dict.get('id') # 园区id
file = request.files.get('file')
if not file:
return jsonify(code=RET.NODATA, msg="文件未上传")
# 保存到本地服务器
image_name = "{}".format((int(time.time()))) + file.filename
# 保存文件名到数据库中
try:
user = User.query.get(user_id)
garden = Garden.query.get(id)
gfile = Gfile(name=image_name, uperson=user.real_name, cate=2)
db.session.add(gfile)
file.save('./apps/static/image/{}'.format(image_name))
garden.document.append(gfile)
db.session.commit()
except Exception as e:
db.session.rollback()
current_app.logger.error(e)
return jsonify(code=RET.DBERR, msg="保存文件失败")
image_id = gfile.id
data = {"filename": image_name, "uperson": user.real_name, "id": image_id}
return jsonify(code=RET.OK, msg="保存成功", data=data)
# 获取园区图片列表
@api_manage.route("/listImage", methods=["POST"])
# @login_required
def list_img():
# user_id = g.user_id
req_dict = request.get_json()
id = req_dict.get('id') # 园区id
try:
garden = Garden.query.get(id)
docs = garden.document
data = [{"id": i.id,
"url": pro_url + "/image/" + i.name,
} for i in docs if i.cate == 2]
return jsonify(code=RET.OK, msg="查询成功", data=data)
except Exception as e:
# db.session.rollback()
current_app.logger.error(e)
return jsonify(code=RET.DBERR, msg="数据库错误")
......@@ -1030,519 +1030,127 @@ class GovDepartment(db.Model):
comment='外键id,机构id')
goverment = db.relationship('GovOrganization', backref=db.backref('government_departments')) # 政府1-N部门
# 项目列表
# class Item(db.Model):
# __tablename_ = "item"
#
# id = db.Column(db.Integer, primary_key=True, autoincrement=True) # 项目id
# build_date = db.Column(db.DateTime) # 成立时间
# company_name = db.Column(db.String(255)) # 项目企业
# admin = db.Column(db.String(255)) # 企业联系人
# mobile = db.Column(db.String(255)) # 企业联系人联系电话
# email = db.Column(db.String(255)) # 企业联系邮箱
#
# name = db.Column(db.String(255)) # 项目名称
# store = db.Column(db.DateTime) # 项目入库时间
# product = db.Column(db.String(255)) # 生产产品
# industry = db.Column(db.String(255)) # 所在行业
# indu_id = db.Column(db.Integer) # 所在行业id
# invest = db.Column(db.Float) # 投资额(亿元)
# # invest = db.Column(db.String(32)) # 投资额(万元)
# invest_id = db.Column(db.Integer) # 投资额id
#
# area = db.Column(db.String(255)) # 占地面积
# value = db.Column(db.Float) # 预计产值(万)
# tax = db.Column(db.Float) # 预计税收(万)
#
# unit = db.Column(db.String(255)) # 项目所在机构、单位、局
# section = db.Column(db.String(255)) # 项目所在部门
# link = db.Column(db.String(255)) # 对接人(手动填充,非创建者也可以)
# link_mobile = db.Column(db.String(255)) # 对接人的联系方式
# user_id = db.Column(db.Integer) # 项目创建人id
#
# level = db.Column(db.String(255)) # 项目的级别
# level_id = db.Column(db.Integer) # 项目级别id
# stage = db.Column(db.String(255)) # 项目的进度
# stage_id = db.Column(db.Integer) # 项目进度id
#
# status = db.Column(db.String(255)) # 项目上报状态
# belong = db.Column(db.Integer) # 是否为太原市投促局项目 1是,2否
# share = db.Column(db.String(255)) # 共享人
# unit_up = db.Column(db.String(255)) # 被上报局
#
# main_introduce = db.Column(db.Text) # 项目主体介绍
# invest_introduce = db.Column(db.Text) # 投资项目介绍
# build_introduce = db.Column(db.Text) # 项目建设内容
# encomy = db.Column(db.Text) # 项目的经济效益
# policy = db.Column(db.Text) # 项目政策需求
# question = db.Column(db.Text) # 项目进展及存在的问题
#
#
# # 项目阶段表
# class Trends(BaseModel, db.Model):
# __tablename__ = "trends"
#
# id = db.Column(db.Integer, primary_key=True, autoincrement=True)
# stage = db.Column(db.String(255)) # 项目的阶段
# unit = db.Column(db.String(255)) # 主导机构
# user = db.Column(db.String(255)) # 更新人
# item_id = db.Column(db.Integer, db.ForeignKey("item.id")) # 项目ID
# item = db.relationship('Item', backref=db.backref('trends')) # 外键联系
#
#
# # 招商资源管理项目文件
# class File(BaseModel, db.Model):
# __tablename__ = "file"
#
# id = db.Column(db.Integer, primary_key=True, autoincrement=True)
# name = db.Column(db.String(255)) # 上传文件名
# file_size = db.Column(db.String(255)) # 文件大小
# uploader = db.Column(db.String(255)) # 上传人
# url = db.Column(db.String(255)) # url
# item_id = db.Column(db.Integer, db.ForeignKey("item.id")) # 项目ID
# item = db.relationship('Item', backref=db.backref('file')) # 外键联系
#
#
# # 政府机构之间的上下级统筹
# followers = db.Table('followers',
# db.Column('follower_id', db.Integer, db.ForeignKey('government.id'), primary_key=True),
# db.Column('followed_id', db.Integer, db.ForeignKey('government.id'), primary_key=True)
# )
#
# # 政府组(政府1-N部门1-N组)
# class Group(db.Model):
# __tablename__ = "group"
# # 基本信息
# id = db.Column(db.Integer, primary_key=True, autoincrement=True)
# pnums = db.Column(db.Integer) # 人数
# charge = db.Column(db.String(255)) # 组负责人
# charge_phone = db.Column(db.String(255)) # 负责人电话
# function = db.Column(db.Text) # 部门职能
# name = db.Column(db.String(255), nullable=False) # 政府机构部门下组的名称
# # sid = db.Column(db.Integer) # 部门id
# section_id = db.Column(db.Integer, db.ForeignKey("section.id"))
# section = db.relationship('Section', backref=db.backref('groups')) # 部门1-N组
#
#
# # 用户关注行业,多-多
# class UserIndustry(BaseModel, db.Model):
# __tablename__ = "user_industry"
#
# user_id = db.Column(db.Integer, db.ForeignKey("user.id"), primary_key=True)
# industry_id = db.Column(db.Integer, db.ForeignKey("industry.id"), primary_key=True)
#
#
# # #用户关注公司,多-多
# class UserCompany(BaseModel, db.Model):
# __tablename__ = "user_company"
#
# user_id = db.Column(db.Integer, db.ForeignKey("user.id"), primary_key=True)
# company_id = db.Column(db.Integer, db.ForeignKey("company.id"), primary_key=True)
#
#
# # #用户关注公司,多-多
# class UserEnterprise(BaseModel, db.Model):
# __tablename__ = "user_enterprise"
#
# user_id = db.Column(db.Integer, db.ForeignKey("user.id"), primary_key=True)
# enterprise_id = db.Column(db.Integer, db.ForeignKey("enterprise.id"), primary_key=True)
# # 创新资源-双创平台
# class Platform(db.Model):
# __tablename_ = "platform"
# __table_args__ = ({'comment': '创新资源-双创平台表'}) # 添加表注释
#
# id = db.Column(db.Integer, primary_key=True, autoincrement=True)
#
# cate = db.Column(db.String(64)) # 产业服务平台分类 产业联盟1,公共服务平台2,行业协会3
# cateid = db.Column(db.Integer) # 产业服务平台分类id 产业联盟1,公共服务平台2,行业协会3
# name = db.Column(db.String(64)) # 平台名称
# introduct = db.Column(db.Text) # 平台简介
# address = db.Column(db.String(64)) # 地址
# lng = db.Column(db.String(100)) # 经度
# lat = db.Column(db.String(100)) # 纬度
# city = db.Column(db.String(32)) # 城市
#
# navigator = db.Column(db.String(255)) # 导航一
# navigat = db.Column(db.String(255)) # 导航二
#
# research = db.Column(db.String(255)) # 研究方向
# admin = db.Column(db.String(255)) # 所在行政区
# developarea = db.Column(db.String(255)) # 所在开发区
# 资源机构的位置信息+research(产品词扩展)
# class Orgs(db.Model):
# __tablename_ = "orgs"
#
# id = db.Column(db.Integer, primary_key=True, autoincrement=True)
# name = db.Column(db.String(255)) # 机构名
# category = db.Column(db.String(255)) # 机构类型
# admin = db.Column(db.String(255)) # 所在行政区
# lng = db.Column(db.String(255)) # 经度
# lat = db.Column(db.String(255)) # 纬度
#
# research = db.Column(db.String(255)) # research
# navigator = db.Column(db.String(255)) # 导航一
# navigat = db.Column(db.String(255)) # 导航二
#
#
# # # 园区政策
# # class Zonepolicy(db.Model):
# # __tablename_ = "zonepolicy"
# #
# # id = db.Column(db.Integer, primary_key=True, autoincrement=True)
# # name = db.Column(db.String(32)) # 园区政策名
# # pubdate = db.Column(db.DateTime) # 发布时间
# # org = db.Column(db.String(32)) # 政策发布机构
# # url = db.Column(db.String(255)) # 外链接
# # file = db.Column(db.String(255)) # 本地文件位置
# # induzone_id = db.Column(db.Integer, db.ForeignKey("induzone.id"))
# # zone = db.relationship('Induzone', backref=db.backref('policys')) # 园区政策
#
#
# # 产业政策(wf)
#
#
#
#
#
#
#
#
# # 企业属性导航全部(企业类型,资质,上市状态,融资轮次)
# class Property(db.Model):
# __tablename_ = "property"
#
# id = db.Column(db.Integer, primary_key=True, autoincrement=True)
# name = db.Column(db.String(32)) # 字段名
# nid = db.Column(db.Integer) # 字段id
# sid = db.Column(db.Integer) # 字段类型id 1企业类型,2企业资质,3上市状态,4融资轮次
# statu = db.Column(db.Integer) # 状态 1启动,2禁用
#
#
# # 招商资源管理字典(行业选择,项目阶段)
# class Attract(db.Model):
# __tablename_ = "view_map"
#
# id = db.Column(db.Integer, primary_key=True, autoincrement=True)
# name = db.Column(db.String(32)) # 字段名
# nid = db.Column(db.Integer) # 字段id(在项目数据中的id)
# sid = db.Column(db.Integer) # 字段类型id 1行业选择,2项目进度 3项目级别
# statu = db.Column(db.Integer) # 状态 1启动,2禁用
#
#
# # 园区信息管理字典(行业选择,项目阶段)
# class Zone(db.Model):
# __tablename_ = "zone"
#
# id = db.Column(db.Integer, primary_key=True, autoincrement=True)
# name = db.Column(db.String(32)) # 字段名
# nid = db.Column(db.Integer) # 字段id(在项目中的id)
# sid = db.Column(db.Integer) # 字段类型id 1园区类别,2园区级别
# statu = db.Column(db.Integer) # 状态 1启动,2禁用
#
#
# # 雷达评估页行业在不同地区的测评分数
# class EvaluationData(db.Model):
# __tablename_ = "evaluationdata"
#
# id = db.Column(db.Integer, primary_key=True, autoincrement=True)
# c_type = db.Column(db.Integer) # 行业id
#
# province = db.Column(db.String(32)) # 省份
# city = db.Column(db.String(32)) # 城市
# district = db.Column(db.String(32)) # 区域
#
# development = db.Column(db.Integer) # 发育度
# contribute = db.Column(db.Integer) # 贡献度
# innovate = db.Column(db.Integer) # 创新度
# growup = db.Column(db.Integer) # 成长性
# capital = db.Column(db.Integer) # 资本力
# general = db.Column(db.Integer) # 综合分
#
#
#
#
#
#
#
#
#
#
#
#
#
#
#
#
#
#
# # # 产品描述简介
# # class ProductInfo(BaseModel, db.Model):
# # __tablename__ = "product_info"
# #
# # id = db.Column(db.Integer, primary_key=True, autoincrement=True) # id
# # name = db.Column(db.String(32)) # 产品名
# # info = db.Column(db.Text) # 产品描述
#
#
# # 后台管理用户
# class Bstage(BaseModel, db.Model):
# __tablename__ = "bstage"
#
# # 基本信息
# id = db.Column(db.Integer, primary_key=True, autoincrement=True) # 用户编号
# name = db.Column(db.String(32), unique=True) # 用户名
# password_hash = db.Column(db.String(128)) # 加密的密码
#
# # 角色(职级配置)
# role = db.Column(db.Integer) # 1超级管理员,2 系统运维员
#
# @property
# def password(self):
# # 设置为只写的方式
# # return self.password_hash
# raise AttributeError('这个属性只能设置,不能读取')
#
# @password.setter
# def password(self, value):
# self.password_hash = generate_password_hash(value)
#
# def check_password(self, password):
# '''检验密码的正确性,传入参数为用户登录时填写的密码'''
# return check_password_hash(self.password_hash, password)
#
#
# # 区域要素管理(园区)
# class Garden(db.Model):
# __tablename__ = "garden"
#
# # 基本信息
# id = db.Column(db.Integer, primary_key=True, autoincrement=True)
#
# unit = db.Column(db.String(255)) # 园区所属机构
# section = db.Column(db.String(255)) # 园区所属部门
# user = db.Column(db.Integer) # 园区创建人id
# uperson = db.Column(db.String(255)) # 园区上报人
# up_unit = db.Column(db.String(255)) # 园区上报机构
# status = db.Column(db.Enum("审核通过", "审核驳回", "正在审核", "未上报"), default="未上报", view_index=True) # 园区上报状态
#
# name = db.Column(db.String(255)) # 园区姓名
# level = db.Column(db.String(255)) # 园区级别
# charge = db.Column(db.String(255)) # 园区负责人
# phone = db.Column(db.String(255)) # 园区联系电话
# cate = db.Column(db.String(255)) # 园区类型
# address = db.Column(db.String(255)) # 园区地址
# cluster = db.Column(db.String(255)) # 产业集群(多选)
#
# # 土地信息
# land_code = db.Column(db.String(255)) # 土地位置/编号
# land_property = db.Column(db.String(255)) # 土地性质
# land_range = db.Column(db.String(255)) # 土地范围
# land_size = db.Column(db.String(255)) # 土地面积/平方公里
# indu_appeal = db.Column(db.String(255)) # 产业诉求
# # 楼宇信息
# build_name = db.Column(db.String(255)) # 楼宇名称
# build_add = db.Column(db.String(255)) # 楼宇地址
# build_size = db.Column(db.String(255)) # 楼宇面积/平方公里
# build_appeal = db.Column(db.String(255)) # 楼宇诉求
# # 厂房信息
# plant_add = db.Column(db.String(255)) # 厂房位置
# plant_size = db.Column(db.String(255)) # 厂房面积
# plant_condition = db.Column(db.String(255)) # 厂房条件
#
# # 园区信息
# area = db.Column(db.String(64)) # 占地面积(平方公里)
# acreage = db.Column(db.String(32)) # 规划面积(平方公里)
# actarea = db.Column(db.String(32)) # 建成面积(平方公里)
# tax = db.Column(db.String(32)) # 税收要求(万元/亩)
# out_power = db.Column(db.String(32)) # 产出强度(万元/亩)
# invest_power = db.Column(db.String(32)) # 投资强度(万元/亩)
# indu_need = db.Column(db.String(255)) # 行业要求
# gdp = db.Column(db.String(32)) # GDP(亿元)
# fiscal = db.Column(db.String(32)) # 财政收入(亿元)
# indu_land = db.Column(db.String(32)) # 工业土地均价(万元/亩)
# indu_sup = db.Column(db.String(32)) # 工业土地供应量
# comm_land = db.Column(db.String(32)) # 商办土地均价(万元/亩)
# comm_sup = db.Column(db.String(32)) # 商办土地供应量
# represent = db.Column(db.Text) # 代表企业
#
# # 投资成本
# resident_ele_one = db.Column(db.String(32)) # 居民用电(一档)(元/度)
# resident_ele_two = db.Column(db.String(32)) # 居民用电(二档)(元/度)
# resident_ele_thr = db.Column(db.String(32)) # 居民用电(三档)(元/度)
# comm_ele_one = db.Column(db.String(32)) # 商业用电(峰段)(元/度)
# comm_ele_two = db.Column(db.String(32)) # 商业用电(平段)(元/度)
# comm_ele_thr = db.Column(db.String(32)) # 商业用电(谷段)(元/度)
# indu_ele_one = db.Column(db.String(32)) # 工业用电(峰段)(元/度)
# indu_ele_two = db.Column(db.String(32)) # 工业用电(平段)(元/度)
# indu_ele_thr = db.Column(db.String(32)) # 工业用电(谷段)(元/度)
# resident_water_one = db.Column(db.String(32)) # 居民用水(一档)(元/吨)
# resident_water_two = db.Column(db.String(32)) # 居民用水(二档)(元/吨)
# resident_water_thr = db.Column(db.String(32)) # 居民用水(三档)(元/吨)
# comm_water = db.Column(db.String(32)) # 商业用水(元/吨)
# indu_water = db.Column(db.String(32)) # 工业用水(元/吨)
# special_water = db.Column(db.String(32)) # 特种用水(元/吨)
# resident_natgas_one = db.Column(db.String(32)) # 居民用气(一档)(元/m³)
# resident_natgas_two = db.Column(db.String(32)) # 居民用气(二档)(元/m³)
# resident_natgas_thr = db.Column(db.String(32)) # 居民用气(三档)(元/m³)
# sewage = db.Column(db.String(32)) # 污水处理(元/吨)
# wagelevel = db.Column(db.String(32)) # 最低工资标准(元/月)
# worker = db.Column(db.String(32)) # 普通员工(元/月)
# middlemag = db.Column(db.String(32)) # 中级管理人员(元/月)
# highmag = db.Column(db.String(32)) # 高层管理人员(元/月)
# # 环境配套
# dis_freight = db.Column(db.String(255)) # 距离货运站距离
# dis_rail = db.Column(db.String(255)) # 距离高铁站
# dis_port = db.Column(db.String(255)) # 距离港口距离
# dis_air = db.Column(db.String(255)) # 距离机场距离
# road_trans = db.Column(db.String(255)) # 公路运输
# rail_trans = db.Column(db.String(255)) # 铁路运输
# live_facility = db.Column(db.String(255)) # 园区生活配套
# market = db.Column(db.String(255)) # 百货商场
# hotel_bus = db.Column(db.String(255)) # 酒店商务
# medical = db.Column(db.String(255)) # 医疗机构
# education = db.Column(db.String(255)) # 学校教育
#
# induenterprise = db.Column(db.Text) # 规模以上企业
# innovate = db.Column(db.Text) # 科研机构
# base = db.Column(db.Text) # 双创基地
# carrier = db.Column(db.Text) # 产业载体
# url_file = db.Column(db.String(255)) # 文件路由
#
#
# # 区域要素管理下文件(文件和图片)
# class Gfile(BaseModel, db.Model):
# __tablename__ = "gfile"
#
# id = db.Column(db.Integer, primary_key=True, autoincrement=True)
# name = db.Column(db.String(255), unique=True) # 文件名
# size = db.Column(db.String(255)) # 文件大小
# uperson = db.Column(db.String(255)) # 上传人
# cate = db.Column(db.Integer) # 文件类型,1文件,2图片
# url = db.Column(db.String(255)) # 文件本地地址
# garden_id = db.Column(db.Integer, db.ForeignKey("garden.id"))
# garden = db.relationship('Garden', backref=db.backref('document')) # 园区1-N文件、图片
#
#
# # 手机端项目搜索历史
# class SearchItem(db.Model):
# __tablename__ = "searchitem"
#
# id = db.Column(db.Integer, primary_key=True, autoincrement=True)
# history = db.Column(db.String(128)) # 用户搜索历史
# user_id = db.Column(db.Integer, db.ForeignKey("user.id")) # 用户外键
# section = db.relationship('User', backref=db.backref('searchitem')) # 用户-搜索
#
#
# # 太原给的,招商驾驶舱的企业数据(招商驾驶舱左上角)
# class ZCompany(db.Model):
# __tablename__ = "zcompany"
#
# id = db.Column(db.Integer, primary_key=True, autoincrement=True)
# name = db.Column(db.String(255)) # 公司名称
# quality = db.Column(db.String(1)) # 公司类型 012345 (500-上市-规模-专精特新-高新-科技型中小)
# quality_name = db.Column(db.String(32)) # 公司类型名称
# district = db.Column(db.String(255)) # 区县名
# company_name = db.Column(db.String(255)) # 公司名称()
#
#
# # class ZCollge(db.Model):
# # __tablename__ = "zcollege"
# #
# # id = db.Column(db.Integer, primary_key=True, autoincrement=True)
# # name = db.Column(db.String(255)) # 公司名称
# # category = db.Column(db.String(1)) # 公司类型
# # category_name = db.Column(db.String(32)) # 公司类型名称
# # district = db.Column(db.String(255)) # 区县名
# # college_name = db.Column(db.String(255)) # 公司名称
# #
# #
# # class ZScientific(db.Model):
# # __tablename__ = "zscientific"
# #
# # id = db.Column(db.Integer, primary_key=True, autoincrement=True)
# # name = db.Column(db.String(255)) # 机构名称
# # district = db.Column(db.String(255)) # 区县名
# # scientific_name = db.Column(db.String(255)) # 科研机构名称
# #
# #
# # class Zlab():
# # __tablename__ = "zlab"
# #
# # id = db.Column(db.Integer, primary_key=True, autoincrement=True)
# # name = db.Column(db.String(255)) # 机构名称
# # district = db.Column(db.String(255)) # 区县名
# # lab_name = db.Column(db.String(255)) # 科研机构名称
#
# # 作战图
# class YearMonth(db.Model):
# __tablename__ = "year_month"
#
# id = db.Column(db.Integer, primary_key=True, autoincrement=True)
# year = db.Column(db.String(4)) # 年
# month = db.Column(db.String(2)) # 月
#
#
# # 对应zcompany的企业详情
# class ZhaoShang(db.Model):
# __tablename__ = "zhaoshang"
#
# id = db.Column(db.Integer, primary_key=True, autoincrement=True) # 企业
# company_name = db.Column(db.String(255)) # 企业名
# status = db.Column(db.String(32)) # 经营状态
# legal = db.Column(db.String(32)) # 发定代表人
# capital = db.Column(db.String(255)) # 注册资本,22万美元
# capital_nums = db.Column(db.Float) # 注册资本转换成人民币数值
# build_date = db.Column(db.DateTime) # 注册时间
# province = db.Column(db.String(32)) # 省
# city = db.Column(db.String(32)) # 市
# district = db.Column(db.String(32)) # 区
# lng = db.Column(db.String(100)) # 经度
# lat = db.Column(db.String(100)) # 纬度
# address = db.Column(db.String(255)) # 企业地址
# telephone = db.Column(db.Text) # 电话
# email = db.Column(db.Text) # 邮箱
# social_code = db.Column(db.String(100)) # 统一社会信用代码
# bao_num = db.Column(db.String(32)) # 参保人数
# entype = db.Column(db.String(100)) # 企业类型
# company_industry = db.Column(db.String(100)) # 所属行业
# web_site = db.Column(db.String(255)) # 企业网址
# business_scope = db.Column(db.Text) # 企业经营范围
#
# isfive = db.Column(db.String(32)) # 是否中国500强
#
# scale = db.Column(db.String(32)) # 规模以上企业
# zjtg = db.Column(db.String(32)) # 山西专精特工企业
# high_new = db.Column(db.String(32)) # 是否高新技术企业
# tbe = db.Column(db.String(32)) # 是否科技型中小企业
# quoted_company = db.Column(db.String(32)) # 是否上市企业
#
# induzone = db.Column(db.String(255)) # 所在园区
# company_info = db.Column(db.Text) # 公司简介
# product = db.Column(db.String(255)) # 产品
# takingn = db.Column(db.Float) # 营收
"""招商资源管理"""
# 项目化管理V2-项目信息表
# class ProjectManagement2(db.Model):
# __tablename_ = "project_management2"
# __table_args__ = ({'comment': '项目化管理V2-项目信息表'}) # 添加表注释
# # 项目标签
# id = db.Column(db.Integer, primary_key=True, autoincrement=True, comment='主键id')
# is_delete = db.Column(db.Integer, comment='逻辑删除 1是0否')
# upload_people = db.Column(db.String(20), comment='填报人(负责人)')
# upload_unity = db.Column(db.String(20), comment='填报人(负责人)单位')
# upload_time = db.Column(db.String(30), comment='填报时间')
# upload_time1 = db.Column(db.String(30), comment='填报后两个月的时间')
# update_time = db.Column(db.String(30), comment='更新时间')
# update_time1 = db.Column(db.String(30), comment='更新后两个月的时间')
# upload_people_id = db.Column(db.Integer, comment='填报人id')
# upload_people_district = db.Column(db.String(20), comment='填报人归属区域')
#
# project_audit_status = db.Column(db.Integer, comment='项目审核状态id 0为待审核;1为审核通过;2为未通过')
# project_audit_message = db.Column(db.String(30), comment='审核信息')
# project_audit_time = db.Column(db.String(30), comment='审核时间')
#
# project_name = db.Column(db.String(200), comment='项目名称')
# project_num = db.Column(db.String(30), comment='项目编号')
# project_type = db.Column(db.Integer, comment='项目类型 市重点项目/非市重点项目')
# district = db.Column(db.String(20), comment='承接区县')
# site = db.Column(db.String(50), comment='具体地址')
# project_unit = db.Column(db.String(100), comment='项目单位(投资方)')
# province = db.Column(db.String(150), comment='项目引进省份')
# industry = db.Column(db.String(20), comment='项目所属行业')
# investment_volume = db.Column(db.Float, comment='总投资额(亿元)')
# acre_intensity = db.Column(db.Float, comment='亩均强度(万元)')
# construction_content = db.Column(db.String(255), comment='建设内容')
# project_appeal = db.Column(db.String(255), comment='项目诉求')
# project_promise = db.Column(db.String(255), comment='项目承诺')
# schedule_node = db.Column(db.String(20), comment='进度节点 在谈,已签约,已开工,已投产,拟签约,拟开工,拟投产,暂停/终止')
# time1 = db.Column(db.String(30), comment='签约时间')
# time2 = db.Column(db.String(30), comment='开工时间')
# time3 = db.Column(db.String(30), comment='投产时间')
# project_schedule = db.Column(db.String(255), comment='最新进展')
# plan = db.Column(db.String(255), comment='近期计划')
# project_problem = db.Column(db.String(255), comment='需要解决的问题')
# schedule_condition = db.Column(db.String(20), comment='调度情况')
# supervisory_requirements = db.Column(db.String(20), comment='督办要求')
# capital_condition_type = db.Column(db.String(20), comment='资金到位情况类型 固投资金/非固投资金')
# capital_condition_money = db.Column(db.Float, comment='资金到位情况 数额')
# is_importance = db.Column(db.String(20), comment='是否属于市重点项目')
# project_source = db.Column(db.String(20), comment='项目来源')
# is_enter13710 = db.Column(db.String(20), comment='是否报入13710系统')
# project_people = db.Column(db.String(20), comment='项目单位负责人')
# district_people = db.Column(db.String(20), comment='项目承接地负责人')
# unity_people = db.Column(db.String(20), comment='项目单位负责人')
# add_or_update = db.Column(db.Integer, comment='是新增的还是更新过的 1新增,2更新')
# remind_month = db.Column(db.Integer, comment='上一次两个月未更新的提醒月份')
# # file_id_list = db.Column(db.String(255), comment='项目相关文件id列表')
class SikuProject(db.Model): # 四库管理-项目信息表
__tablename_ = "siku_project"
__table_args__ = ({'comment': '四库管理-项目信息表'}) # 添加表注释
# 项目标签
id = db.Column(db.Integer, primary_key=True, autoincrement=True, comment='主键id')
is_delete = db.Column(db.Integer, comment='逻辑删除 1是0否')
distribute_condition = db.Column(db.String(20), comment='分发情况')
project_name = db.Column(db.String(200), comment='项目名称')
investor_name = db.Column(db.String(30), comment='投资方名称')
investor_district = db.Column(db.String(30), comment='投资方所在地')
project_type = 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='项目基本情况')
thread_people = db.Column(db.String(30), comment='线索提供人')
thread_people_unity = db.Column(db.String(30), comment='线索提供人单位或职务')
thread_people_mobile = db.Column(db.String(30), comment='线索提供人联系方式')
thread_progress = db.Column(db.String(30), comment='线索进展')
# 线索详情
upload_unity = db.Column(db.String(20), comment='上传部门')
upload_people = db.Column(db.String(20), comment='上传人')
upload_time = db.Column(db.DateTime, comment='上传时间')
project_num = db.Column(db.Integer, comment='项目编号')
investment_volume1 = db.Column(db.Float, comment='拟引资额(万元)')
project_info1 = db.Column(db.String(300), comment='项目方基本情况')
project_schedule = db.Column(db.String(20), comment='项目进展')
stop_reason = db.Column(db.String(20), comment='暂停或终止原因')
thread_source = db.Column(db.String(20), comment='线索来源')
cooperation_way = db.Column(db.String(20), comment='合作方式')
other_source = db.Column(db.String(200), comment='其他来源说明')
remark = db.Column(db.String(200), comment='备注')
# 对接库
project_to_area = db.Column(db.String(20), comment='拟落地区域')
development_area = db.Column(db.String(20), comment='开发区')
project_address = db.Column(db.String(20), comment='项目详细地址')
joint_condition = db.Column(db.String(20), comment='项目对接情况')
project_problem = db.Column(db.String(20), comment='项目当前存在的问题')
project_stalker = db.Column(db.String(20), comment='项目跟踪人')
joint_person = db.Column(db.String(20), comment='对接人')
joint_person_unity = db.Column(db.String(20), comment='对接人单位及职务')
joint_person_mobile = db.Column(db.String(20), comment='对接人联系方式')
project_people = db.Column(db.String(30), comment='项目方联系人')
project_people_unity = db.Column(db.String(30), comment='项目方单位或职务')
project_people_mobile = db.Column(db.String(30), comment='项目方联系方式')
# 签约库
attract_name = db.Column(db.String(30), comment='引资方名称')
progress_condition = db.Column(db.String(20), comment='项目推进情况')
Party_A_name = db.Column(db.String(20), comment='签约甲方名称')
Party_A_people = db.Column(db.String(20), comment='签约甲方联系人')
Party_A_mobile = db.Column(db.String(20), comment='签约甲方联系方式')
Party_B_name = db.Column(db.String(20), comment='签约乙方名称')
Party_B_people = db.Column(db.String(20), comment='签约乙方联系人')
Party_B_mobile = db.Column(db.String(20), comment='签约乙方联系方式')
sign_time = db.Column(db.DateTime, comment='签约时间')
sign_year = db.Column(db.Integer, comment='签约年份')
# 开工库
investment = db.Column(db.String(20), comment='到位资金')
project_to_area1 = db.Column(db.String(20), comment='落地区域')
start_time = db.Column(db.DateTime, comment='开工时间')
start_year = db.Column(db.Integer, 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