Browse Source

no message

libushang 6 months ago
parent
commit
6f290d6968
1 changed files with 35 additions and 2 deletions
  1. 35 2
      routers/api/taskRegistration/__init__.py

+ 35 - 2
routers/api/taskRegistration/__init__.py

@@ -14,7 +14,9 @@ from database import get_db
 from pydantic import BaseModel
 from utils import *
 import copy
-from common.db import db_event_management, db_user
+from config import settings
+from common import YzyApi
+from common.db import db_event_management, db_user, db_msg_center, db_yzy, db_dept
 
 router = APIRouter()
 
@@ -35,6 +37,9 @@ async def create_task(
         event_code = db.query(EventBase).filter(EventBase.event_code == body.get('event_code')).first()
         if not event_code:
             return Response(content="事件不存在", status_code=400)
+        
+        unit_id = db_dept.get_dept_id_by_name(db, body['unit_name'])
+
         task_id = db_task.get_next_event_id(db)
 
         imgList = []
@@ -45,11 +50,12 @@ async def create_task(
         fileList = []
         if 'fileList' in body:
             fileList = body['fileList']
-            del body['fileList']        
+            del body['fileList'] 
 
         task_base = TaskRegistration(
             **body,
             task_id = task_id,
+            unit_id = unit_id,
             registrar_id = user_id
         )
         db.add(task_base)
@@ -86,6 +92,9 @@ async def create_task(
             db.add(new_file)
             db.commit()
 
+        # 发送粤政易消息
+        send_yzy_msg(db, task_base, user_id)
+
         return {
             "code": 200,
             "msg": "任务创建成功",
@@ -97,6 +106,30 @@ async def create_task(
         traceback.print_exc()
         raise HTTPException(status_code=500, detail=f"Internal server error: {str(e)}")
 
+# 发送粤政易消息
+def send_yzy_msg(db: Session, task_base: TaskRegistration, user_id: int) -> None:
+    to_user_id = task_base.executor_id
+    user_info = db_user.get_user_info(db, to_user_id)
+    yzy_account = user_info.yzy_account
+    yzy_userid = db_yzy.get_userid_by_account(db, yzy_account)
+    event_title = db_event_management.get_event_title(db, task_base.event_code)
+    create_time = get_datetime_str(task_base.creation_time)
+    detail_url = "{}{}".format(settings.YZY_WEB_ROOT, "/yjxp/")
+
+    description = "事件名称: " + event_title + "\n发布时间:" + create_time + "\n任务内容: "+task_base.task_description
+    data = {
+        "yzy_userid": yzy_userid,
+        "mobile": yzy_account,
+        "content": description,
+        "recorded_by": user_id,
+        "detail_url": detail_url,
+        "foreign_key": task_base.id,
+        "from_scenario": "task_registrations",
+        "title": "事件任务"
+    }
+    YzyApi.add_to_msg_queue(db, data)
+
+    db_msg_center.add_msg(db, "任务消息", task_base.id, task_base.executor_id)
 
 class TaskQuery(BaseModel):
     task_id: str = None