8 lines
16 KiB
JSON
8 lines
16 KiB
JSON
{"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 模块的主要结构概览。"}]}} |