瀏覽代碼

no message

libushang 7 月之前
父節點
當前提交
97cc18a169
共有 2 個文件被更改,包括 67 次插入23 次删除
  1. 62 23
      routers/api/taskRegistration/__init__.py
  2. 5 0
      utils/__init__.py

+ 62 - 23
routers/api/taskRegistration/__init__.py

@@ -157,12 +157,17 @@ async def select_tasks(
         offset = (pageNum - 1) * pageSize
         data_query = data_query.offset(offset).limit(pageSize)
 
-        tasks = data_query.all()
+        rows = data_query.all()
+        data = []
+        for row in rows:
+            info = get_model_dict(row)
+            info['expire_time'] = get_date_str(info['expire_time'])
+            data.append(info)
 
         return {
             "code": 200,
             "msg": "任务查询成功",
-            "data": tasks,
+            "data": data,
             "total": total_count,
             "pages": (total_count + pageSize - 1) // pageSize,
             "current_page": pageNum,
@@ -180,32 +185,66 @@ async def update_task_status(
         request: Request,
         db: Session = Depends(get_db),
         user_id=Depends(valid_access_token)):
-    body = await request.json()
-    task_id_to_use = body.get('task_id')
-    processing_status = body.get('processing_status')
-
-    event_code = db.query(EventBase).filter(EventBase.event_code == body.get('event_code')).first()
-    if not event_code:
-        return Response(content="事件不存在", status_code=400)
 
+    try:
+        body = await request.json()
+        task_id_to_use = body.get('task_id')
+        processing_status = body.get('processing_status')
+        feedback_content = body.get('feedback_content')
+        attachList = body.get('attachList')
 
-    if not task_id_to_use:
-        return Response(content="Missing required parameter 'task_id'", status_code=400)
-    if processing_status not in ['已完成', '处理中', '待处理','未完成']:
-        return Response(content="processing_status must be '已完成' or '处理中' or '待处理' or '未完成'", status_code=400)
+        event_code = db.query(EventBase).filter(EventBase.event_code == body.get('event_code')).first()
+        if not event_code:
+            return Response(content="事件不存在", status_code=400)
 
-    task_entry = (db.query(TaskRegistration)
-                  .filter(TaskRegistration.del_flag != '2')
-                  .filter(TaskRegistration.task_id == task_id_to_use))
-    task_entry = task_entry.first()
-    if not task_entry:
-        raise HTTPException(status_code=404, detail="任务不存在")
 
-    task_entry.processing_status = processing_status
-    task_entry.update_time = datetime.now()
+        if not task_id_to_use:
+            return Response(content="Missing required parameter 'task_id'", status_code=400)
+        if processing_status not in ['已完成', '处理中', '待处理','未完成']:
+            return Response(content="processing_status must be '已完成' or '处理中' or '待处理' or '未完成'", status_code=400)
+
+        task_entry = (db.query(TaskRegistration)
+                    .filter(TaskRegistration.del_flag != '2')
+                    .filter(TaskRegistration.task_id == task_id_to_use))
+        task_entry = task_entry.first()
+        if not task_entry:
+            raise HTTPException(status_code=404, detail="任务不存在")
+        
+        new_feeback = TaskFeeback(
+            task_id = task_id_to_use,
+            feeback_user = task_entry.registrar,
+            content = feedback_content,
+            processing_status = processing_status,
+            create_time = datetime.now(),
+            feeback_type = "0",
+            leader_unit = "",
+            leader_name = "",
+            approval_content = "",
+            recorded_by=user_id
+        )
+        db.add(new_feeback)
+        db.commit()
 
-    try:
+        task_entry.processing_status = processing_status
+        task_entry.update_time = datetime.now()
         db.commit()
+
+        if attachList is not None:
+            for file in attachList:
+                file_name = file['name']
+                file_name_desc = file['url']
+                status = file['status']
+                new_file = TaskFile(
+                    file_id=new_guid(),
+                    foreign_key=task_id_to_use,
+                    from_scenario='task_feeback',
+                    file_name=file_name,
+                    file_name_desc=file_name_desc,
+                    status=status
+                )
+                db.add(new_file)
+                db.commit()
+        
         return {
             "code": 200,
             "msg": "任务状态更新成功",
@@ -216,7 +255,7 @@ async def update_task_status(
             }
         }
     except Exception as e:
-        db.rollback()
+        traceback.print_exc()
         raise HTTPException(status_code=500, detail=str(e))
 
 @router.delete('/delete')

+ 5 - 0
utils/__init__.py

@@ -61,6 +61,11 @@ def get_datetime_str(val: datetime) -> str:
     return val.strftime("%Y-%m-%d %H:%M:%S")
     
 
+def get_date_str(val: datetime) -> str:
+    if val is None:
+        return ''
+    return val.strftime("%Y-%m-%d")
+
 def null2int(val):
     if val is None:
         return 0