Commit aa9aa398 by dong

fix20221115

parent 4d6a5bf8
...@@ -42,10 +42,10 @@ def upload_xiansuo_project(row_content, time_strf, upload_time, upload_unity, up ...@@ -42,10 +42,10 @@ def upload_xiansuo_project(row_content, time_strf, upload_time, upload_unity, up
investor_name = row_content[2] # 投资方名称 investor_name = row_content[2] # 投资方名称
investor_district1 = row_content[3] # 投资方所在地 investor_district1 = row_content[3] # 投资方所在地
investor_district2 = row_content[4] # 投资方所在地 investor_district2 = row_content[4] # 投资方所在地
investor_district = investor_district1 + investor_district2 investor_district = investor_district1 + '/' + investor_district2
project_type1 = row_content[5] # 项目单位(投资方项目类型 project_type1 = row_content[5] # 项目单位(投资方项目类型
project_type2 = row_content[6] # 项目单位(投资方项目类型 project_type2 = row_content[6] # 项目单位(投资方项目类型
project_type = project_type1 + '-' + project_type2 project_type = project_type1 + '/' + project_type2
investment_volume = row_content[7] # 总投资额(万元) investment_volume = row_content[7] # 总投资额(万元)
if investment_volume: if investment_volume:
investment_volume = float(investment_volume) investment_volume = float(investment_volume)
...@@ -75,6 +75,9 @@ def upload_xiansuo_project(row_content, time_strf, upload_time, upload_unity, up ...@@ -75,6 +75,9 @@ def upload_xiansuo_project(row_content, time_strf, upload_time, upload_unity, up
# 创建项目 # 创建项目
new_project_obj = SikuProject( new_project_obj = SikuProject(
flag=1, # 表示线索库
is_delete=0,
thread_progress='待对接',
upload_unity=upload_unity, upload_unity=upload_unity,
upload_people=upload_people, upload_people=upload_people,
upload_time=upload_time, upload_time=upload_time,
...@@ -374,6 +377,8 @@ def search_project(): ...@@ -374,6 +377,8 @@ def search_project():
try: try:
project_obj = SikuProject.query.filter( project_obj = SikuProject.query.filter(
SikuProject.flag == flag if flag != 1 else text(''), # 线索库包含所有阶段的项目
SikuProject.is_delete == 0,
SikuProject.distribute_condition._in(distribute_condition_list) if distribute_condition_list else SikuProject.distribute_condition == distribute_condition if distribute_condition else text(''), SikuProject.distribute_condition._in(distribute_condition_list) if distribute_condition_list else SikuProject.distribute_condition == distribute_condition if distribute_condition else text(''),
SikuProject.project_name == project_name if project_name else text(''), SikuProject.project_name == project_name if project_name else text(''),
SikuProject.investor_name == investor_name if investor_name else text(''), SikuProject.investor_name == investor_name if investor_name else text(''),
...@@ -381,8 +386,8 @@ def search_project(): ...@@ -381,8 +386,8 @@ def search_project():
SikuProject.project_type._in(project_type_list) if project_type_list else SikuProject.project_type == project_type if project_type else text(''), SikuProject.project_type._in(project_type_list) if project_type_list else SikuProject.project_type == project_type if project_type else text(''),
SikuProject.investment_volume >= float(investment_volume_list[0]) if investment_volume_list else text(''), SikuProject.investment_volume >= float(investment_volume_list[0]) if investment_volume_list else text(''),
SikuProject.investment_volume <= float(investment_volume_list[1]) if investment_volume_list else text(''), SikuProject.investment_volume <= float(investment_volume_list[1]) if investment_volume_list else text(''),
SikuProject.investment_volume >= float(investment_volume.split('-')[0]) if investment_volume and not investment_volume_list else text(''), SikuProject.investment_volume >= float(investment_volume[0]) if investment_volume and not investment_volume_list else text(''),
SikuProject.investment_volume <= float(investment_volume.split('-')[1]) if investment_volume and not investment_volume_list else text(''), SikuProject.investment_volume <= float(investment_volume[1]) if investment_volume and not investment_volume_list else text(''),
SikuProject.project_year >= project_year_list[0] if project_year_list else text(''), SikuProject.project_year >= project_year_list[0] if project_year_list else text(''),
SikuProject.project_year <= project_year_list[1] if project_year_list else text(''), SikuProject.project_year <= project_year_list[1] if project_year_list else text(''),
SikuProject.project_year == project_year if project_year and not project_year_list else text(''), SikuProject.project_year == project_year if project_year and not project_year_list else text(''),
...@@ -406,7 +411,7 @@ def search_project(): ...@@ -406,7 +411,7 @@ def search_project():
) )
if not project_obj.all(): if not project_obj.all():
return jsonify(code=RET.NODATA, msg='没有符合条件的数据!') return jsonify(code=RET.DATAERR, msg='没有符合条件的数据!')
project_size = project_obj.count() project_size = project_obj.count()
project_obj_list = project_obj.order_by(SikuProject.upload_time.desc()).paginate(page, per_page).items project_obj_list = project_obj.order_by(SikuProject.upload_time.desc()).paginate(page, per_page).items
...@@ -422,10 +427,11 @@ def search_project(): ...@@ -422,10 +427,11 @@ def search_project():
"project_type": project_obj.project_type, # 项目类型 "project_type": project_obj.project_type, # 项目类型
"investment_volume": project_obj.investment_volume, # 总投资额(万元) "investment_volume": project_obj.investment_volume, # 总投资额(万元)
"project_year": project_obj.project_year, # 项目年份 "project_year": project_obj.project_year, # 项目年份
"project_info": project_obj.project_info, # 项目基本情况 "project_info1": project_obj.project_info1, # 项目基本情况
"thread_people": project_obj.thread_people, # 线索提供人 "thread_people": project_obj.thread_people, # 线索提供人
"thread_people_mobile": project_obj.thread_people_mobile, # 线索提供人联系方式 "thread_people_mobile": project_obj.thread_people_mobile, # 线索提供人联系方式
"thread_progress": project_obj.thread_progress, # 线索进展 "thread_progress": project_obj.thread_progress, # 线索进展
"stop_reason": project_obj.stop_reason, # 暂停终止原因
} for project_obj in project_obj_list] } for project_obj in project_obj_list]
if flag == 2: # 对接库 if flag == 2: # 对接库
...@@ -444,6 +450,7 @@ def search_project(): ...@@ -444,6 +450,7 @@ def search_project():
"project_stalker": project_obj.project_stalker, # 项目跟踪人 "project_stalker": project_obj.project_stalker, # 项目跟踪人
"joint_person": project_obj.joint_person, # 对接人 "joint_person": project_obj.joint_person, # 对接人
"joint_person_mobile": project_obj.joint_person_mobile, # 对接人联系方式 "joint_person_mobile": project_obj.joint_person_mobile, # 对接人联系方式
"stop_reason": project_obj.stop_reason, # 暂停终止原因
} for project_obj in project_obj_list] } for project_obj in project_obj_list]
if flag == 3: # 签约库 if flag == 3: # 签约库
...@@ -464,6 +471,7 @@ def search_project(): ...@@ -464,6 +471,7 @@ def search_project():
"progress_condition": project_obj.progress_condition, # 项目推进情况 "progress_condition": project_obj.progress_condition, # 项目推进情况
"sign_time": project_obj.sign_time, # 签约时间 "sign_time": project_obj.sign_time, # 签约时间
"project_to_area1": project_obj.project_to_area1, # 落地区域 "project_to_area1": project_obj.project_to_area1, # 落地区域
"stop_reason": project_obj.stop_reason, # 暂停终止原因
} for project_obj in project_obj_list] } for project_obj in project_obj_list]
if flag == 4: # 开工库 if flag == 4: # 开工库
...@@ -523,6 +531,11 @@ def add_project(): ...@@ -523,6 +531,11 @@ def add_project():
cooperation_way = req_dic['cooperation_way'] cooperation_way = req_dic['cooperation_way']
other_source = req_dic['other_source'] other_source = req_dic['other_source']
remark = req_dic['remark'] remark = req_dic['remark']
if not all([project_name, investor_name, investor_district, project_type,
investment_volume, project_info, thread_people, thread_people_unity,
thread_people_mobile, thread_progress, investment_volume1, project_info1,
stop_reason, thread_source, cooperation_way, other_source, remark]):
return jsonify(code=RET.NODATA, msg='无有效数据!')
upload_time = datetime.now().strftime("%Y/%m/%d") upload_time = datetime.now().strftime("%Y/%m/%d")
time_strf = datetime.now().strftime("%Y%m%d") time_strf = datetime.now().strftime("%Y%m%d")
...@@ -567,6 +580,7 @@ def add_project(): ...@@ -567,6 +580,7 @@ def add_project():
cooperation_way=cooperation_way, cooperation_way=cooperation_way,
other_source=other_source, other_source=other_source,
remark=remark, remark=remark,
is_delete=0
) )
db.session.add(new_project_obj) db.session.add(new_project_obj)
db.session.commit() db.session.commit()
...@@ -576,7 +590,7 @@ def add_project(): ...@@ -576,7 +590,7 @@ def add_project():
# 批量删除 # 批量删除
@api_manage.route("/BatchDel", methods=["POST"]) @api_manage.route("/BatchDelete", methods=["POST"])
def batch_del(): def batch_del():
req_dic = request.get_json() req_dic = request.get_json()
token = request.headers['token'] token = request.headers['token']
...@@ -592,9 +606,10 @@ def batch_del(): ...@@ -592,9 +606,10 @@ def batch_del():
try: try:
for select_id in select_id_list: for select_id in select_id_list:
project_obj = SikuProject.query.get(select_id) project_obj = SikuProject.query.get(select_id)
db.session.remove(project_obj) project_obj.is_delete = 1
db.session.commit() db.session.commit()
continue continue
return jsonify(code=RET.OK, msg="批量删除成功!")
except Exception as e: except Exception as e:
current_app.logger.error(e) current_app.logger.error(e)
return jsonify(code=RET.DATAERR, msg="批量删除出错!") return jsonify(code=RET.DATAERR, msg="批量删除出错!")
...@@ -726,6 +741,171 @@ def download_xlsx(): ...@@ -726,6 +741,171 @@ def download_xlsx():
return jsonify(code=RET.OK, data=build_template, msg="链接获取成功!") return jsonify(code=RET.OK, data=build_template, msg="链接获取成功!")
# 分发功能
@api_manage.route("/DistributeProject", methods=["POST"])
def distribute_project():
req_dic = request.get_json()
project_id = req_dic['project_id']
district_list = req_dic['district_list']
token = request.headers['token']
try:
user_obj = verify_token(token)
except Exception as e:
current_app.logger.error(e)
return jsonify(code=RET.DBERR, msg="用户信息校验失败,请重新登陆后尝试!")
district_list1 = [] # 成功被分发到的区县
try:
for district in district_list:
old_project_obj = SikuProject.query.get(project_id)
old_distribute_condition = old_project_obj.distribute_condition
if old_distribute_condition and old_distribute_condition == district:
continue
if not old_distribute_condition:
old_project_obj.distribute_condition = district
old_project_obj.flag = 2
db.session.commit()
district_list1.append(district)
continue
# 构造项目编号
time_strf = datetime.now().strftime("%Y%m%d")
project_obj_list = SikuProject.query.all()
max_project_num = ''
if project_obj_list:
max_project_num = max([project_obj.project_num for project_obj in project_obj_list])
if max_project_num:
max_project_num = max_project_num[8:]
num = get_num(max_project_num)
if num == 'error':
return jsonify(code=RET.DATAERR, msg='编号超出三位的规定范围,请联系管理员')
# return 'error'
project_num = time_strf + num
else:
project_num = time_strf + '001'
new_project = SikuProject(
is_delete=0,
flag=2,
distribute_condition=district,
project_name=old_project_obj.project_name,
investor_name=old_project_obj.investor_name,
investor_district=old_project_obj.investor_district,
project_type=old_project_obj.project_type,
investment_volume=old_project_obj.investment_volume,
project_year=old_project_obj.project_year,
project_info=old_project_obj.project_info,
thread_people=old_project_obj.thread_people,
thread_people_unity=old_project_obj.thread_people_unity,
thread_people_mobile=old_project_obj.thread_people_mobile,
thread_progress=old_project_obj.thread_progress,
upload_unity=old_project_obj.upload_unity,
upload_people=old_project_obj.upload_people,
upload_time=old_project_obj.upload_time,
project_num=project_num,
investment_volume1=old_project_obj.investment_volume1,
project_info1=old_project_obj.project_info1,
project_schedule=old_project_obj.project_schedule,
stop_reason=old_project_obj.stop_reason,
thread_source=old_project_obj.thread_source,
cooperation_way=old_project_obj.cooperation_way,
other_source=old_project_obj.other_source,
remark=old_project_obj.remark,
)
db.session.add(new_project)
db.session.commit()
district_list1.append(district)
return jsonify(code=RET.OK, msg="该项目已分发至【{}】对接库。".format(district_list1))
except Exception as e:
current_app.logger.error(e)
return jsonify(code=RET.DATAERR, msg="分发操作出错!")
# 获取项目详情
@api_manage.route("/GetProjectDetail", methods=["POST"])
def get_project_detail():
token = request.headers['token']
try:
user_obj = verify_token(token)
except Exception as e:
current_app.logger.error(e)
return jsonify(code=RET.DBERR, msg="用户信息校验失败,请重新登陆后尝试!")
req_dic = request.get_json()
project_id = req_dic['project_id']
try:
project_obj = SikuProject.query.get(project_id)
data = {
"project_name": project_obj.project_name,
"investor_name": project_obj.investor_name,
"investor_district": project_obj.investor_district,
"project_type": project_obj.project_type,
"investment_volume": project_obj.investment_volume,
"project_info": project_obj.project_info,
"thread_people": project_obj.thread_people,
"thread_people_unity": project_obj.thread_people_unity,
"thread_people_mobile": project_obj.thread_people_mobile,
"thread_progress": project_obj.thread_progress,
"upload_unity": project_obj.upload_unity,
"upload_people": project_obj.upload_people,
"upload_time": project_obj.upload_time.strftime("%Y/%m/%d"),
"project_num": project_obj.project_num,
"investment_volume1": project_obj.investment_volume1,
"project_info1": project_obj.project_info1,
"stop_reason": project_obj.stop_reason,
"thread_source": project_obj.thread_source,
"cooperation_way": project_obj.cooperation_way,
"other_source": project_obj.other_source,
"remark": project_obj.remark,
}
return jsonify(code=RET.OK, data=data, msg="项目详情获取成功!")
except Exception as e:
current_app.logger.error(e)
return jsonify(code=RET.DATAERR, msg="分发操作出错!")
# 编辑项目详情
@api_manage.route("/EditProjectDetail", methods=["POST"])
def edit_project_detail():
req_dic = request.get_json()
project_id = req_dic['project_id']
try:
project_obj = SikuProject.query.get(project_id)
project_obj.project_name = req_dic['project_name']
project_obj.investor_name = req_dic['investor_name']
project_obj.investor_district = req_dic['investor_district']
project_obj.project_type = req_dic['project_type']
project_obj.investment_volume = req_dic['investment_volume']
project_obj.project_info = req_dic['project_info']
project_obj.thread_people = req_dic['thread_people']
project_obj.thread_people_unity = req_dic['thread_people_unity']
project_obj.thread_people_mobile = req_dic['thread_people_mobile']
project_obj.thread_progress = req_dic['thread_progress']
project_obj.investment_volume1 = req_dic['investment_volume1']
project_obj.project_info1 = req_dic['project_info1']
project_obj.stop_reason = req_dic['stop_reason']
project_obj.thread_source = req_dic['thread_source']
project_obj.cooperation_way = req_dic['cooperation_way']
project_obj.other_source = req_dic['other_source']
project_obj.remark = req_dic['remark']
db.session.commit()
return jsonify(code=RET.OK, msg="编辑成功!")
except Exception as e:
current_app.logger.error(e)
return jsonify(code=RET.DATAERR, msg="编辑操作出错!")
# 转办功能
@api_manage.route("/ProjectTransition", methods=["POST"])
def project_transition():
req_dic = request.get_json()
project_id = req_dic['project_id']
flag = req_dic['flag'] # 2为对接库,3为签约库,4为开工库
pass
# 批量导出-线索库数据 # 批量导出-线索库数据
# @api_manage.route("/BatchExportProject", methods=["POST"]) # @api_manage.route("/BatchExportProject", methods=["POST"])
# def batch_export_project(): # def batch_export_project():
......
...@@ -1039,7 +1039,9 @@ class SikuProject(db.Model): # 四库管理-项目信息表 ...@@ -1039,7 +1039,9 @@ class SikuProject(db.Model): # 四库管理-项目信息表
__table_args__ = ({'comment': '四库管理-项目信息表'}) # 添加表注释 __table_args__ = ({'comment': '四库管理-项目信息表'}) # 添加表注释
# 项目标签 # 项目标签
id = db.Column(db.Integer, primary_key=True, autoincrement=True, comment='主键id') id = db.Column(db.Integer, primary_key=True, autoincrement=True, comment='主键id')
flag = db.Column(db.Integer, comment='1为线索库,2为对接库,3为签约库,4为开工库')
is_delete = db.Column(db.Integer, comment='逻辑删除 1是0否') is_delete = db.Column(db.Integer, comment='逻辑删除 1是0否')
distribute_condition = db.Column(db.String(20), comment='分发情况') distribute_condition = db.Column(db.String(20), comment='分发情况')
project_name = db.Column(db.String(200), comment='项目名称') project_name = db.Column(db.String(200), comment='项目名称')
investor_name = db.Column(db.String(30), comment='投资方名称') investor_name = db.Column(db.String(30), comment='投资方名称')
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment