You cannot select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

52 lines
2.9 KiB
Markdown

This file contains ambiguous Unicode characters!

This file contains ambiguous Unicode characters that may be confused with others in your current locale. If your use case is intentional and legitimate, you can safely ignore this warning. Use the Escape button to highlight these characters.

# TODO
## 已完成
- [✅] HoistServer (端口 5100) — 提升机调度 APISwagger `/swagger`4 个 Hub 方法
- [✅] HikRoBotServer (端口 5200) — AGV 调度 APISwagger `/swagger`
- [✅] UI 引擎启停控制 — 系统监控页分别启动/停止两个服务器进程
- [✅] 码垛机 HMI 页面 — 静态界面,手动操作区带开关按钮
- [✅] 删除确认弹窗 — 所有删除操作弹出 ConfirmDialog
- [✅] 浅色/深色主题 — 一键切换,全视图适配
## 待完成
### 1.调度逻辑修改
- [✅] 任务明细与操作设备关联:提升机-获取到空闲设备后将确定分配任务的提升机编号存入
- [✅] HoistDispatcher、HikRoBotDispatcher任务下发后需要监控任务执行情况任务执行完成后才可以返回ok给Strategy
- [✅] AGV 任务下发后开始获取任务状态(调用/task/status只有状态为FINISHED/MANUALED完成或手动完成时才可以进行后序任务CANCELLED时终端调度任务后序也不执行
WAIT => 等待步骤执行:筛选提升机、下发提升机任务“参考手动任务执行界面的任务执行事件逻辑”
FINISHED/MANUALED => 完成/手动完成,可以进行后序任务
CANCELLED => 任务取消,终止调度任务
- [] Strategy执行到提升机任务时调用提升机调度中心的接收物料接口“receive-pallet”验证物料并下发提升机启动信号
- [] WCS 任务起始点转换为AGV 定位码:提升机接驳位(根据楼层+提升机编号判断、AGV 等待点(楼层/15 栋判断出入库提升机)
### 任务创建修改
- [✅] 添加手动放、手动取操作,如果是手动放,任务从提升机开始,手动取也是以提升机结束
- [✅] 手动放:任务执行则下发提升机任务
### MaterialInStoreExecutor 优化
- [ ] ExecuteAsync + Thread.Join 阻塞主循环(`:92-114`)—— 改为 Task.Run + WhenAll独立轮询不互相阻塞
- [ ] AGV 状态轮询加超时保护(`:200`)—— 避免 AGV 无终态时线程永久卡死
- [ ] 空闲提升机轮询加超时保护(`:248`)—— 避免 PLC 离线时永久卡死
- [ ] 等待提升机完成轮询加超时保护(`:393`)—— 同上
- [ ] DbWriteLock 全局锁优化(`:24`)—— 改为独立 Scope/Context 避免并发写阻塞
- [ ] new Thread + GetAwaiter 改 Task.Run`:92-111`)—— 减少线程浪费
- [ ] HttpClient 复用(`:173,362,392`)—— 使用 IHttpClientFactory 或静态实例
- [ ] DispatchConveyorAsync 补充输送线逻辑(`:419-422`
### 2. 任务执行引擎(分组并行方案)
- [ ] 包材入库逻辑测试
- [ ] 包材出库、成品入库、成品出库逻辑测试
- [ ] 任务执行引擎抽象,优化代码结构
### 3. UI 优化
- [ ] 码垛机 HMI 接入实时 PLC 数据
- [ ] 任务页面添加"下发"按钮(调用 HoistServer/HikRoBotServer API
### 4. 登录与权限
- [ ] 登录窗口 + 用户认证
- [ ] 菜单权限控制