|
@@ -423,6 +423,17 @@ async def close_event(
|
|
|
db.add(event_tracking)
|
|
|
db.commit()
|
|
|
|
|
|
+ if 'eventCasualties' in body:
|
|
|
+ # 删除旧数据
|
|
|
+ db.query(EventCasualties).filter(and_(EventCasualties.event_id == eventId)).delete()
|
|
|
+
|
|
|
+ event_casualties = [
|
|
|
+ EventCasualties(**i, event_id = eventId)
|
|
|
+ for i in body['eventCasualties']
|
|
|
+ ]
|
|
|
+ db.add_all(event_casualties)
|
|
|
+ db.commit()
|
|
|
+
|
|
|
if 'fileNames' in body:
|
|
|
# 删除旧数据
|
|
|
db.query(EventFile).filter(and_(EventFile.foreign_key == eventId, EventFile.from_scenario == 'event_summary_file')).delete()
|
|
@@ -1117,7 +1128,7 @@ def get_sent_status_text(sent_status) -> str:
|
|
|
return str(sent_status)
|
|
|
|
|
|
|
|
|
-# 上报伤亡情况
|
|
|
+# 上报伤亡情况(废弃)
|
|
|
@router.post("/upload_casualties")
|
|
|
async def upload_casualties(
|
|
|
request: Request,
|
|
@@ -1132,7 +1143,19 @@ async def upload_casualties(
|
|
|
|
|
|
del body['event_id']
|
|
|
|
|
|
+ if 'eventCasualties' in body:
|
|
|
+ # 删除旧数据
|
|
|
+ db.query(EventCasualties).filter(and_(EventCasualties.event_id == eventId)).delete()
|
|
|
+
|
|
|
+ event_casualties = [
|
|
|
+ EventCasualties(**i, event_id = eventId)
|
|
|
+ for i in body['eventCasualties']
|
|
|
+ ]
|
|
|
+ db.add_all(event_casualties)
|
|
|
+ db.commit()
|
|
|
+
|
|
|
# 标记已上传
|
|
|
+ body = {}
|
|
|
body['casualties'] = '1'
|
|
|
db.query(EventBase).filter(EventBase.event_code == eventId).update(body)
|
|
|
db.commit()
|
|
@@ -1165,5 +1188,54 @@ async def upload_casualties(
|
|
|
|
|
|
return {
|
|
|
"code": 200,
|
|
|
- "msg": "保存事件伤亡情况成功"
|
|
|
- }
|
|
|
+ "msg": "保存成功"
|
|
|
+ }
|
|
|
+
|
|
|
+@router.post("/get_casualties")
|
|
|
+async def get_casualties(
|
|
|
+ request: Request,
|
|
|
+ body = Depends(remove_xss_json),
|
|
|
+ db: Session = Depends(get_db)
|
|
|
+):
|
|
|
+ eventId = body['event_id']
|
|
|
+
|
|
|
+ try:
|
|
|
+ q = db.query(EventCasualties)
|
|
|
+ where = and_(EventCasualties.event_id == eventId)
|
|
|
+ q = q.filter(where)
|
|
|
+ rows = q.order_by(EventCasualties.area_code.asc()).all()
|
|
|
+ data = [
|
|
|
+ {
|
|
|
+ "id": row.id,
|
|
|
+ "area_code": row.area_code,
|
|
|
+ "area_name": row.area_name,
|
|
|
+ "deaths": row.deaths,
|
|
|
+ "injuries": row.injuries,
|
|
|
+ "missing": row.missing,
|
|
|
+ "transfer": row.transfer,
|
|
|
+ "economic_loss": row.economic_loss
|
|
|
+ }
|
|
|
+ for row in rows
|
|
|
+ ]
|
|
|
+
|
|
|
+ if len(data) < 6:
|
|
|
+ data = [
|
|
|
+ { "area_code": '440900000000', "area_name": '茂名市', "injuries": 0, "missing": 0, "deaths": 0, "transfer": 0, "economic_loss": 0 },
|
|
|
+ { "area_code": '440902000000', "area_name": '茂南区', "injuries": 0, "missing": 0, "deaths": 0, "transfer": 0, "economic_loss": 0 },
|
|
|
+ { "area_code": '440904000000', "area_name": '电白区', "injuries": 0, "missing": 0, "deaths": 0, "transfer": 0, "economic_loss": 0 },
|
|
|
+ { "area_code": '440981000000', "area_name": '高州市', "injuries": 0, "missing": 0, "deaths": 0, "transfer": 0, "economic_loss": 0 },
|
|
|
+ { "area_code": '440982000000', "area_name": '化州市', "injuries": 0, "missing": 0, "deaths": 0, "transfer": 0, "economic_loss": 0 },
|
|
|
+ { "area_code": '440983000000', "area_name": '信宜市', "injuries": 0, "missing": 0, "deaths": 0, "transfer": 0, "economic_loss": 0 }
|
|
|
+ ]
|
|
|
+
|
|
|
+ # 返回结果
|
|
|
+ return {
|
|
|
+ "code": 200,
|
|
|
+ "msg": "查询成功",
|
|
|
+ "data": data
|
|
|
+ }
|
|
|
+
|
|
|
+ except Exception as e:
|
|
|
+ # 处理异常
|
|
|
+ traceback.print_exc()
|
|
|
+ raise HTTPException(status_code=500, detail=str(e))
|