|
@@ -2,7 +2,6 @@
|
|
|
# -*- coding: utf-8 -*-
|
|
|
|
|
|
from fastapi import APIRouter, Request, Depends, HTTPException, Query
|
|
|
-from sqlalchemy.exc import IntegrityError
|
|
|
from fastapi.responses import HTMLResponse, FileResponse
|
|
|
from fastapi.responses import JSONResponse
|
|
|
from database import get_db
|
|
@@ -189,8 +188,23 @@ async def create_emergency_plan(
|
|
|
db.add(infopublish_examine)
|
|
|
db.commit()
|
|
|
|
|
|
- # 改草稿、待审批状态
|
|
|
- db.query(InfoPublishBase).filter(InfoPublishBase.id == new_publish_id).update({"publish_status": 1, "examine_status": 1})
|
|
|
+ # 待审批状态
|
|
|
+ infopublish_examine = InfoPublishExamine(
|
|
|
+ publish_id = new_publish_id,
|
|
|
+ examine_type = 20, # 审批
|
|
|
+ examine_sub_type = 20, # 待审批
|
|
|
+ examine_time = datetime.now() + timedelta(seconds=1),
|
|
|
+ content = '',
|
|
|
+ user_id = examine_by,
|
|
|
+ user_name = examine_user_row.user_name,
|
|
|
+ nick_name = examine_user_row.nick_name,
|
|
|
+ del_flag = '0'
|
|
|
+ )
|
|
|
+ db.add(infopublish_examine)
|
|
|
+ db.commit()
|
|
|
+
|
|
|
+ # 改审核中、待审批状态
|
|
|
+ db.query(InfoPublishBase).filter(InfoPublishBase.id == new_publish_id).update({"publish_status": 2, "examine_status": 1})
|
|
|
db.commit()
|
|
|
|
|
|
return {
|
|
@@ -230,9 +244,15 @@ async def get_publish_list(
|
|
|
where = and_(where, InfoPublishBase.examine_status == examine_status)
|
|
|
if publish_group != '':
|
|
|
where = and_(where, InfoPublishBase.publish_group.like('%{}%'.format(publish_group)))
|
|
|
- if dispose_status not in ['', '0'] :
|
|
|
- where = and_(where, InfoPublishBase.examine_status == 1, InfoPublishBase.examine_by == user_id)
|
|
|
- print(where)
|
|
|
+
|
|
|
+ if dispose_status == '1' : # 1 待处理
|
|
|
+ # 审核类型 20 待审批
|
|
|
+ subquery = db.query(InfoPublishExamine.publish_id).filter(InfoPublishExamine.del_flag == "0").filter(InfoPublishExamine.user_id == user_id).filter(InfoPublishExamine.examine_sub_type == 20).subquery()
|
|
|
+ where = and_(where, InfoPublishBase.id == subquery.c.publish_id)
|
|
|
+ if dispose_status == '2' : # 2 已处理
|
|
|
+ # 审核类型 21 审批通过 22 审批不通过
|
|
|
+ subquery = db.query(InfoPublishExamine.publish_id).filter(InfoPublishExamine.del_flag == "0").filter(InfoPublishExamine.user_id == user_id).filter(InfoPublishExamine.examine_sub_type.in_([21,22])).subquery()
|
|
|
+ where = and_(where, InfoPublishBase.id == subquery.c.publish_id)
|
|
|
|
|
|
# 计算总条目数
|
|
|
q = db.query(func.count(InfoPublishBase.id))
|
|
@@ -268,6 +288,12 @@ async def get_publish_list(
|
|
|
if user_row is not None:
|
|
|
examine_user = user_row.nick_name
|
|
|
|
|
|
+ # 是否我的审批事项(待审批)
|
|
|
+ is_my_examine = 0
|
|
|
+ examine_row = db.query(InfoPublishExamine).filter(InfoPublishExamine.del_flag == "0").filter(InfoPublishExamine.user_id == user_id).filter(InfoPublishExamine.examine_sub_type == 20).order_by(InfoPublishExamine.id.desc()).limit(1).first()
|
|
|
+ if examine_row is not None:
|
|
|
+ is_my_examine = 1
|
|
|
+
|
|
|
data.append({
|
|
|
"id": row.id,
|
|
|
"title": row.title,
|
|
@@ -289,7 +315,7 @@ async def get_publish_list(
|
|
|
"user_sending_count": row.user_sending_count,
|
|
|
|
|
|
"is_my_edit": (row.examine_status == 0 or row.examine_status == 9) and row.recorded_by == user_id, # 是否我的编辑事项
|
|
|
- "is_my_examine": row.examine_status == 1 and int(row.examine_by) == user_id # 是否我的审批事项
|
|
|
+ "is_my_examine": is_my_examine
|
|
|
})
|
|
|
|
|
|
# 返回结果
|
|
@@ -314,6 +340,7 @@ async def get_edit_info(
|
|
|
|
|
|
row = db.query(InfoPublishBase).filter(InfoPublishBase.id == info_id).first()
|
|
|
data = get_model_dict(row)
|
|
|
+ examine_time = add_time = data['add_time']
|
|
|
data['examine_user'] = db_user.get_user_name_by_id(db, data['examine_by'])
|
|
|
data['add_time'] = get_datetime_str(data['add_time'])
|
|
|
data['publish_time'] = get_datetime_str(data['publish_time'])
|
|
@@ -345,6 +372,7 @@ async def get_edit_info(
|
|
|
data["examines"] = []
|
|
|
rows = db.query(InfoPublishExamine).filter(InfoPublishExamine.publish_id == info_id).filter(InfoPublishExamine.del_flag == '0').all()
|
|
|
for row in rows:
|
|
|
+ examine_time = row.examine_time
|
|
|
data["examines"].append({
|
|
|
"examine_type": EXAMINE_TYPE_DICT[row.examine_type],
|
|
|
"examine_sub_type": EXAMINE_SUB_TYPE_DICT[row.examine_sub_type],
|
|
@@ -354,6 +382,10 @@ async def get_edit_info(
|
|
|
"user_name": row.user_name,
|
|
|
"nick_name": row.nick_name
|
|
|
})
|
|
|
+
|
|
|
+ time_diff = examine_time - add_time
|
|
|
+ data['process_time'] = get_process_time(time_diff)
|
|
|
+
|
|
|
return {
|
|
|
"code": 200,
|
|
|
"msg": "查询成功",
|
|
@@ -513,6 +545,10 @@ async def submit_examine(
|
|
|
user_id = Depends(valid_access_token)
|
|
|
):
|
|
|
try:
|
|
|
+ # 删除之前的待审批记录
|
|
|
+ db.query(InfoPublishExamine).filter(and_(InfoPublishExamine.examine_type == 20, InfoPublishExamine.examine_sub_type == 20)).update({"del_flag": "2", "content": "content"})
|
|
|
+ db.commit()
|
|
|
+
|
|
|
user_row = db.query(SysUser).filter(SysUser.user_id == user_id).first()
|
|
|
|
|
|
info_id = body['info_id']
|
|
@@ -534,7 +570,9 @@ async def submit_examine(
|
|
|
db.add(new_examine)
|
|
|
db.commit()
|
|
|
|
|
|
- db.query(InfoPublishBase).filter(InfoPublishBase.id == info_id).update({"publish_status": 3, "examine_status": 2})
|
|
|
+ # publish_status 发布中
|
|
|
+ # examine_status 审批通过
|
|
|
+ db.query(InfoPublishBase).filter(InfoPublishBase.id == info_id).update({"publish_status": 3, "examine_status": 3})
|
|
|
db.commit()
|
|
|
|
|
|
# 审批不通过
|
|
@@ -553,7 +591,9 @@ async def submit_examine(
|
|
|
db.add(new_examine)
|
|
|
db.commit()
|
|
|
|
|
|
- db.query(InfoPublishBase).filter(InfoPublishBase.id == info_id).update({"publish_status": 0, "examine_status": 0})
|
|
|
+ # publish_status 取消发布
|
|
|
+ # examine_status 审批不通过
|
|
|
+ db.query(InfoPublishBase).filter(InfoPublishBase.id == info_id).update({"publish_status": 9, "examine_status": 9})
|
|
|
db.commit()
|
|
|
|
|
|
return {
|