修改--获取机器人任务列表,添加status字段
This commit is contained in:
parent
1666d6f66a
commit
8cb5a9db5b
@ -5,7 +5,7 @@ from sqlalchemy.ext.asyncio import AsyncSession
|
||||
from sqlalchemy.orm import selectinload
|
||||
from app.crud.base import CRUDBase
|
||||
from app.models.models import Event, Image, RobotInfo, Temperature, Message, Robot, Task
|
||||
from app.schemas.event import AllMessageDto, EventUpdate, EventQuery, BackStageEvent, BackStageEventDto, BackStageEventDetail, EditTemperatureDto, OcrAlertMessage, OcrAlertMessageDto, GetRobotDto, CommonAlertMessage, GetAllMessageDto
|
||||
from app.schemas.event import AllMessageDto, EventUpdate, EventQuery, BackStageEvent, BackStageEventDto, BackStageEventDetail, EditTemperatureDto, OcrAlertMessage, OcrAlertMessageDto, GetRobotDto, CommonAlertMessage, GetAllMessageDto, TaskListDto
|
||||
|
||||
from pydantic import VERSION as PYDANTIC_VERSION
|
||||
from datetime import datetime, timedelta, timezone
|
||||
@ -538,14 +538,27 @@ class CRUDEvent(CRUDBase[Event, EventUpdate, EventUpdate]):
|
||||
robotId: Optional[str] = None
|
||||
):
|
||||
try:
|
||||
# print("robotId", robotId)
|
||||
query_stmt = (
|
||||
select(Task).where(Task.robotId == robotId)
|
||||
select(Task.robotId, Task.taskName, Task.times).where(Task.robotId == robotId)
|
||||
)
|
||||
result = await db.execute(query_stmt)
|
||||
result = result.scalars().all()
|
||||
return result
|
||||
# print(result)
|
||||
# return [Task(**t) for t in result]
|
||||
results = await db.execute(query_stmt)
|
||||
results = results.mappings().all()
|
||||
|
||||
data = list()
|
||||
for result in results:
|
||||
t = TaskListDto(**result)
|
||||
|
||||
t.status = "0"
|
||||
times = t.times.split(",")
|
||||
for time in times:
|
||||
if self.is_current_time_in_interval(time):
|
||||
t.status = "1"
|
||||
break
|
||||
data.append(t)
|
||||
|
||||
return data
|
||||
|
||||
except Exception as e:
|
||||
print(f"{e}")
|
||||
async def get_messages_st(
|
||||
@ -572,6 +585,17 @@ class CRUDEvent(CRUDBase[Event, EventUpdate, EventUpdate]):
|
||||
except Exception as e:
|
||||
print(f"{e}")
|
||||
|
||||
def is_current_time_in_interval(self, interval):
|
||||
"""检查当前时间是否在指定的时间区间内"""
|
||||
# 获取当前时间字符串(格式 HH:MM)
|
||||
current = datetime.now().strftime('%H:%M')
|
||||
|
||||
# 拆分时间区间字符串
|
||||
start, end = interval.split(' - ')
|
||||
|
||||
# 直接比较时间字符串(24小时制时间字符串可直接比较)
|
||||
return start <= current <= end
|
||||
|
||||
# async def get_robot_list(
|
||||
# self,
|
||||
# db: AsyncSession,
|
||||
|
||||
@ -221,4 +221,6 @@ class AllMessageDto(BaseModel):
|
||||
|
||||
class TaskListDto(BaseModel):
|
||||
robotId : str
|
||||
|
||||
taskName: Optional[str] = None
|
||||
times: Optional[str] = None
|
||||
status: Optional[str] = None
|
||||
@ -24,3 +24,4 @@
|
||||
- 修改 /events/messagesHandled, /api/v1/events/messagesUnhandled, 添加可选的查询参数 etypeName
|
||||
- 添加 /events/getEtypeNameList 接口, 获取事件类型下拉框
|
||||
- task实体类添加 taskName字段
|
||||
- 添加 /events/robotTask接口, 获取机器人任务列表.
|
||||
|
||||
Loading…
Reference in New Issue
Block a user