cursor/projects/Users-kazusa-IdeaProjects-b.../agent-transcripts/d354000e-ba3c-4c0d-b220-f54.../subagents/d2d4a064-39c0-4294-b6cb-ac4...

8 lines
16 KiB
JSON
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

{"role":"user","message":{"content":[{"type":"text","text":"<user_query>\nThoroughly explore the directory structure and key files in the baoshi-robot-core module under /Users/kazusa/IdeaProjects/baoshi/wms/baoshi-robot/baoshi-robot-core/. I need to understand:\n\n1. The full directory tree structure\n2. All domain entities/models (especially task chain, subtask, elevator/lift related)\n3. All service interfaces and their methods\n4. All mapper/repository interfaces\n5. Any enums related to task status, task type, etc.\n6. Any DTO/VO classes\n\nPlease return:\n- The complete directory tree\n- Key class names with their package paths\n- For each entity/model class: the class fields and their types\n- For each service interface: all method signatures\n- For each enum: all enum values\n- For mapper interfaces: all method signatures\n\nBe very thorough - this is critical for design decisions.\n</user_query>"}]}}
{"role":"assistant","message":{"content":[{"type":"text","text":"探索 baoshi-robot-core 模块的目录结构和关键文件。"}]}}
{"role":"assistant","message":{"content":[{"type":"text","text":"读取关键文件实体类、枚举、服务接口、Mapper 接口和 DTO。"}]}}
{"role":"assistant","message":{"content":[{"type":"text","text":"查找枚举定义,并读取服务实现类和其他关键文件:"}]}}
{"role":"assistant","message":{"content":[{"type":"text","text":"读取枚举文件和其他关键文件:"}]}}
{"role":"assistant","message":{"content":[{"type":"text","text":"读取 Mapper XML 文件和其他关键文件:"}]}}
{"role":"assistant","message":{"content":[{"type":"text","text":"查找 MachineTaskType 枚举定义:"}]}}
{"role":"assistant","message":{"content":[{"type":"text","text":"baoshi-robot-core 模块结构概览:\n\n## 目录结构\n\n```\nbaoshi-robot-core/\n├── src/main/java/com/baoshi/robot/\n│ ├── core/ # 核心业务逻辑\n│ │ ├── statemachine/ # 状态机相关\n│ │ │ ├── config/\n│ │ │ ├── hook/\n│ │ │ │ └── after/\n│ │ │ └── *.java\n│ │ ├── strategy/ # 策略模式实现\n│ │ │ ├── build/ # 任务构建策略\n│ │ │ │ └── impl/\n│ │ │ ├── dispatch/ # 任务派发策略\n│ │ │ │ └── impl/\n│ │ │ └── execute/ # 任务执行策略\n│ │ │ └── impl/\n│ │ │ ├── hk/ # 海康厂商实现\n│ │ │ └── zs/ # 智世厂商实现\n│ │ ├── Elevator.java # 提升机实体\n│ │ ├── ElevatorLoadBalancer.java # 提升机负载均衡\n│ │ ├── MachineTaskChainCreateFactory.java # 任务链创建工厂\n│ │ ├── MachineTaskDispatchCenter.java # 任务调度中心\n│ │ ├── MachineTaskExecutionService.java # 任务执行服务\n│ │ └── MachineTaskFactory.java # 任务创建工厂\n│ ├── dto/ # 数据传输对象\n│ ├── job/ # 定时任务\n│ └── repository/machineTask/ # 数据访问层\n│ ├── entity/ # 实体类\n│ ├── mapper/ # Mapper接口\n│ └── service/ # 服务接口和实现\n│ └── impl/\n└── src/main/resources/mapper/machineTask/ # MyBatis映射文件\n```\n\n## 实体类 (Entity)\n\n### 1. MachineTaskChain (任务链主表)\n**包路径**: `com.baoshi.robot.repository.machineTask.entity.MachineTaskChain`\n\n**字段**:\n- `String code` - 任务链编号\n- `String warehouse` - 仓库编码\n- `MachineVendorEnum firstTaskVendor` - 首任务厂商\n- `MachineTaskChainStatusEnum status` - 状态\n- `MachineTaskChainTypeEnum type` - 类型\n- `String businessNo` - 业务追踪号\n- `String description` - 任务描述\n- `String sourceLocation` - 源库位\n- `String sourcePoint` - 源点位\n- `String sourceContainer` - 源容器\n- `String sku` - SKU\n- `MachineTargetTypeEnum targetType` - 目标类型\n- `String targetCode` - 目标编号\n- `String targetLocation` - 目标库位\n- `String targetPoint` - 目标点位\n- `Long elevatorId` - 提升机ID\n- `Integer priority` - 优先级\n- `Integer executionTime` - 执行时间(秒)\n- `Date completionTime` - 完成时间\n- `String cancelReason` - 取消原因\n- `Date cancelTime` - 取消时间\n- 继承自 `BasicEntity` (id, createTime, creatorId, updateTime, updaterId, version, deleted)\n\n### 2. MachineTask (机器子任务表)\n**包路径**: `com.baoshi.robot.repository.machineTask.entity.MachineTask`\n\n**字段**:\n- `String chainCode` - 任务链编号\n- `String code` - 子任务编号\n- `String machineCallCode` - 机器调用码\n- `String warehouse` - 仓库编码\n- `MachineVendorEnum vendor` - 厂商\n- `Integer priority` - 优先级\n- `MachineTaskStatusEnum status` - 状态\n- `String type` - 类型 (使用 MachineTaskType 常量)\n- `String exceptionReason` - 异常原因\n- `String sourceZoneId` - 源库区\n- `String sourceLocation` - 源库位\n- `String sourceLotGroup` - 源库位组\n- `String sourcePoint` - 源点位\n- `String sourceContainer` - 源容器\n- `String targetLocation` - 目标库位\n- `String targetLotGroup` - 目标库位组\n- `String targetPoint` - 目标点位\n- `MachineTargetTypeEnum targetType` - 目标类型\n- `String targetCode` - 目标编码\n- `String taskParams` - 任务参数\n- `Integer executionTime` - 执行时间(秒)\n- `Date startTime` - 开始时间\n- `Date completeTime` - 完成时间\n- `String remark` - 备注\n- `String cancelReason` - 取消原因\n- `Date cancelTime` - 取消时间\n- `Boolean releaseResourceOnComplete` - 任务完成时是否释放资源\n- `Integer batchNo` - 批次号\n- 继承自 `BasicEntity`\n\n### 3. Elevator (提升机)\n**包路径**: `com.baoshi.robot.core.Elevator`\n\n**字段**:\n- `Long id` - 提升机ID\n- `String hkOutPoint` - 海康出库点位\n- `String hkInPoint` - 海康入库点位\n- `String zsOutPoint` - 智世出库点位\n- `String zsInPoint` - 智世入库点位\n- `volatile String currentOutboundTask` - 当前到达的出库机器任务链编码\n- `volatile String currentInboundTask` - 当前到达的入库机器任务链编码\n- `volatile Boolean enable` - 是否启用\n- `String resourceOrder` - 库位资源排序\n- `AtomicReference<String> workingTask` - 当前执行中的工作任务链编码\n- `Queue<String> taskQueue` - 排队的任务链编码队列\n\n## 枚举类 (Enum)\n\n### 1. MachineTaskChainStatusEnum (任务链状态)\n**包路径**: `com.baoshi.data.machineTask.enums.MachineTaskChainStatusEnum`\n\n**枚举值**:\n- `CREATED` - 创建\n- `WAITING` - 等待资源\n- `READY` - 可执行\n- `IN_PROGRESS` - 进行中\n- `COMPLETED` - 已完成\n- `CANCELED` - 已取消\n- `FAILED` - 失败\n\n### 2. MachineTaskStatusEnum (子任务状态)\n**包路径**: `com.baoshi.data.machineTask.enums.MachineTaskStatusEnum`\n\n**枚举值**:\n- `CREATED` - 创建\n- `READY` - 准备就绪\n- `IN_PROGRESS` - 进行中\n- `WAITING_WAKE` - 待唤醒\n- `WAITING_RELEASE` - 待释放\n- `COMPLETED` - 已完成\n- `CANCELED` - 已取消\n- `FAILED` - 失败\n\n### 3. MachineTaskChainTypeEnum (任务链类型)\n**包路径**: `com.baoshi.data.machineTask.enums.MachineTaskChainTypeEnum`\n\n**枚举值**:\n- `INBOUND` - 入库\n- `QUICK_PALLET_INBOUND` - 托盘快速入库\n- `OUTBOUND` - 出库(等待)\n- `OUTBOUND_NO_WAIT` - 出库(不等待)\n- `MOVE` - 移库\n\n### 4. MachineVendorEnum (机器厂商)\n**包路径**: `com.baoshi.data.machineTask.enums.MachineVendorEnum`\n\n**枚举值**:\n- `HK` - 海康\n- `ZS` - 智世\n\n### 5. MachineTargetTypeEnum (目标类型)\n**包路径**: `com.baoshi.data.machineTask.enums.MachineTargetTypeEnum`\n\n**枚举值**:\n- `AREA` - 库区\n- `LOCATION` - 库位\n- `STATION` - 站点\n- `CONTAINER` - 容器\n\n### 6. MachineContainerTypeEnum (容器类型)\n**包路径**: `com.baoshi.data.machineTask.enums.MachineContainerTypeEnum`\n\n**枚举值**:\n- `SHELF` - 货架 (catagory: \"POD\")\n- `PALLET` - 托盘 (catagory: \"PALLET\")\n\n### 7. MachineTaskChainBuilderTypeEnum (任务链构建类型)\n**包路径**: `com.baoshi.data.machineTask.enums.MachineTaskChainBuilderTypeEnum`\n\n**枚举值**:\n- `INBOUND` - 入库\n- `QUICK_PALLET_INBOUND` - 托盘快速入库\n- `ZS_INBOUND` - 智世入库阶段\n- `OUTBOUND_WAIT` - 出库(机器人等待)\n- `OUTBOUND_NO_WAIT` - 出库(机器人不等待)\n- `EXCEPTION_OUTBOUND` - 外形异常出库\n- `MOVE` - 移库\n\n### 8. MachineTaskType (任务类型常量接口)\n**包路径**: `com.baoshi.data.machineTask.enums.MachineTaskType`\n\n**常量值**:\n- `ZS_INBOUND` - 智世入库\n- `ZS_OUTBOUND` - 智世出库\n- `ZS_MOVE` - 智世移库\n- `ZS_ASK_PALLET` - 智世请求取货\n- `ZS_PALLET_FINISH` - 智世取货完成回调\n- `ZS_ASK_RELEASE` - 智世请求放货\n- `ZS_RELEASE_FINISH` - 智世放货完成回调\n- `ZS_OUTER_DETECT` - 智世外形检测\n- `ZS_APPLY_INBOUND` - 智世申请入库\n- `HK_MOVE` - 海康移库任务\n- `HK_OUTBOUND_WAIT` - 海康搬运一楼容器出库后滞留\n- `HK_PALLET_OUTBOUND_WAIT_MOVE` - 海康搬运托盘出库后滞留(搬运)\n- `HK_INBOUND` - 海康入库\n- `HK_PICK_PALLET` - 海康输送带取货\n- `HK_PUT_PALLET` - 海康输送带放货\n- `HK_STATION_RELEASE` - 海康站点释放\n- `HK_ARRIVE_STATION` - 海康到达工作站点\n- `HK_LEAVE_START_POINT` - 海康离开起点\n\n## 服务接口 (Service Interface)\n\n### 1. IMachineTaskChainService\n**包路径**: `com.baoshi.robot.repository.machineTask.service.IMachineTaskChainService`\n\n**方法签名**:\n- `String inbound(MachineInboundReqDTO req)` - 入库\n- `String quickPalletInbound(MachineInboundReqDTO req)` - 托盘快速入库\n- `Map<String, String> outboundWait(List<MachineOutboundReqDTO> req)` - 出库(机器人等待)\n- `Map<String, String> outboundNoWait(List<MachineOutboundReqDTO> req)` - 出库(机器人不等待)\n- `String move(MachineMoveReqDTO req)` - 移库\n- `MachineTaskChain topChain(String warehouse, String chainCode, List<String> excludeList)` - 获取下一个可执行的任务链\n- `MachineTaskChain getByCode(String chainCode)` - 根据任务链编码获取任务链\n- `MachineTaskChain sameContainerNextOutboundChain(String container)` - 获取同一容器下一个出库任务链\n- `void toHighestChain(String code)` - 提升任务链优先级至最高\n- `List<String> cancel(MachineCancelReqDTO req)` - 取消任务\n- `List<MachineTaskChainDTO> getChainListByBusinessNo(String businessNo)` - 根据业务号获取任务链列表\n- `void bindStation(MachineBindStationReqDTO req)` - 容器绑定站点\n\n### 2. IMachineTaskService\n**包路径**: `com.baoshi.robot.repository.machineTask.service.IMachineTaskService`\n\n**方法签名**:\n- `MachineTask getByCode(String taskCode)` - 根据任务编码获取任务\n- `MachineTask hkChainCallbackTask(String chainCode, List<String> taskType)` - 查询海康链式任务节点\n- `MachineTask zsCallbackTask(String chainCode)` - 智世回调任务节点\n\n### 3. MachineCenterService\n**包路径**: `com.baoshi.robot.repository.machineTask.service.MachineCenterService`\n\n**方法签名**:\n- `void scan(String warehouse)` - 扫描执行\n- `void clearElevator(Long id)` - 清空提升机\n- `void executeChain(String warehouse, String chainCode)` - 执行任务链\n- `Elevator queryElevatorStatus(Long id)` - 查询提升机状态\n- `void enableElevator(Long id)` - 启用提升机\n- `void disableElevator(Long id)` - 禁用提升机\n\n## Mapper 接口\n\n### 1. MachineTaskChainMapper\n**包路径**: `com.baoshi.robot.repository.machineTask.mapper.MachineTaskChainMapper`\n\n**方法签名**:\n- `MachineTaskChain topChain(@Param(\"warehouse\") String warehouse, @Param(\"chainCode\") String chainCode, @Param(\"excludeList\") List<String> excludeList)` - 获取下一个可执行的任务链\n\n继承自 `BaseMapper<MachineTaskChain>`,包含 MyBatis-Plus 基础 CRUD 方法。\n\n### 2. MachineTaskMapper\n**包路径**: `com.baoshi.robot.repository.machineTask.mapper.MachineTaskMapper`\n\n继承自 `BaseMapper<MachineTask>`,包含 MyBatis-Plus 基础 CRUD 方法。\n\n## DTO/VO 类\n\n### 1. LockResourceDTO\n**包路径**: `com.baoshi.robot.dto.LockResourceDTO`\n\n**字段**:\n- `Boolean locked` - 是否锁定成功\n- `LocationResourceVO locationResource` - 锁定资源详情\n\n## 核心服务类\n\n### 1. MachineTaskDispatchCenter (任务调度中心)\n**包路径**: `com.baoshi.robot.core.MachineTaskDispatchCenter`\n\n核心方法:\n- `void scanAndExecute(String warehouse)` - 扫描并执行任务\n- `void executeChain(String warehouse, String chainCode)` - 执行指定任务链\n- `void prepareAndScheduleTask(String warehouse, String chainCode)` - 准备并调度任务\n- `void callback(String taskCode, T callbackData)` - 处理任务回调\n\n### 2. MachineTaskExecutionService (任务执行服务)\n**包路径**: `com.baoshi.robot.core.MachineTaskExecutionService`\n\n核心方法:\n- `void executeTask(MachineTask machineTask)` - 执行任务\n- `<T> void callback(String taskCode, T callbackData)` - 处理回调\n- `void wakeTask(String taskCode)` - 唤醒任务\n\n### 3. ElevatorLoadBalancer (提升机负载均衡)\n**包路径**: `com.baoshi.robot.core.ElevatorLoadBalancer`\n\n核心方法:\n- `Elevator getElevatorState(Long elevatorId)` - 获取提升机状态\n- `Elevator selectAndEnqueue(String taskChainCode)` - 选择并加入队列\n- `void setCurrentInboundTask(Long elevatorId, String taskChainCode)` - 设置当前入库任务\n- `void setCurrentOutboundTask(Long elevatorId, String taskChainCode)` - 设置当前出库任务\n- `boolean tryAcquireWorkingTask(Long elevatorId, String taskChainCode)` - 尝试获取工作锁\n- `boolean releaseAndDequeue(Long elevatorId, String taskChainCode)` - 释放并出队\n- `void clear(Long id)` - 清空提升机\n\n### 4. MachineTaskFactory (任务创建工厂)\n**包路径**: `com.baoshi.robot.core.MachineTaskFactory`\n\n提供多种任务创建方法包括海康和智世的各种任务类型。\n\n### 5. MachineTaskChainCreateFactory (任务链创建工厂)\n**包路径**: `com.baoshi.robot.core.MachineTaskChainCreateFactory`\n\n核心方法:\n- `List<MachineTask> createTasks(MachineTaskChain chain, LocationResourceVO locationResourceVO, MachineTaskChainBuilderTypeEnum taskChainType)` - 创建子任务\n- `Set<MachineVendorEnum> collectVendors(MachineTaskChain chain, LocationResourceVO locationResourceVO, MachineTaskChainBuilderTypeEnum taskChainType)` - 收集厂商集合\n\n## 状态机\n\n### 1. MachineTaskStateMachine (子任务状态机)\n**包路径**: `com.baoshi.robot.core.statemachine.MachineTaskStateMachine`\n\n核心方法:\n- `boolean transition(MachineTask machineTask, MachineTaskStatusEnum toStatus, String errorMessage)` - 状态转换\n\n### 2. MachineTaskChainStateMachine (任务链状态机)\n**包路径**: `com.baoshi.robot.core.statemachine.MachineTaskChainStateMachine`\n\n核心方法:\n- `boolean transition(MachineTaskChain machineTaskChain, MachineTaskChainStatusEnum toStatus, String errorMessage)` - 状态转换\n- `boolean transition(MachineTaskChain machineTaskChain, MachineTaskChainStatusEnum toStatus)` - 状态转换(无错误信息)\n\n以上为 baoshi-robot-core 模块的主要结构概览。"}]}}