修改--获取机器人任务列表,添加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 sqlalchemy.orm import selectinload
|
||||||
from app.crud.base import CRUDBase
|
from app.crud.base import CRUDBase
|
||||||
from app.models.models import Event, Image, RobotInfo, Temperature, Message, Robot, Task
|
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 pydantic import VERSION as PYDANTIC_VERSION
|
||||||
from datetime import datetime, timedelta, timezone
|
from datetime import datetime, timedelta, timezone
|
||||||
@ -538,14 +538,27 @@ class CRUDEvent(CRUDBase[Event, EventUpdate, EventUpdate]):
|
|||||||
robotId: Optional[str] = None
|
robotId: Optional[str] = None
|
||||||
):
|
):
|
||||||
try:
|
try:
|
||||||
|
# print("robotId", robotId)
|
||||||
query_stmt = (
|
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)
|
results = await db.execute(query_stmt)
|
||||||
result = result.scalars().all()
|
results = results.mappings().all()
|
||||||
return result
|
|
||||||
# print(result)
|
data = list()
|
||||||
# return [Task(**t) for t in result]
|
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:
|
except Exception as e:
|
||||||
print(f"{e}")
|
print(f"{e}")
|
||||||
async def get_messages_st(
|
async def get_messages_st(
|
||||||
@ -572,6 +585,17 @@ class CRUDEvent(CRUDBase[Event, EventUpdate, EventUpdate]):
|
|||||||
except Exception as e:
|
except Exception as e:
|
||||||
print(f"{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(
|
# async def get_robot_list(
|
||||||
# self,
|
# self,
|
||||||
# db: AsyncSession,
|
# db: AsyncSession,
|
||||||
|
|||||||
@ -221,4 +221,6 @@ class AllMessageDto(BaseModel):
|
|||||||
|
|
||||||
class TaskListDto(BaseModel):
|
class TaskListDto(BaseModel):
|
||||||
robotId : str
|
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/messagesHandled, /api/v1/events/messagesUnhandled, 添加可选的查询参数 etypeName
|
||||||
- 添加 /events/getEtypeNameList 接口, 获取事件类型下拉框
|
- 添加 /events/getEtypeNameList 接口, 获取事件类型下拉框
|
||||||
- task实体类添加 taskName字段
|
- task实体类添加 taskName字段
|
||||||
|
- 添加 /events/robotTask接口, 获取机器人任务列表.
|
||||||
|
|||||||
Loading…
Reference in New Issue
Block a user