编辑 | blame | 历史 | 原始文档

CommonStackerCraneJob Refactor Implementation Plan

For agentic workers: REQUIRED: Use superpowers:subagent-driven-development (if subagents available) or superpowers:executing-plans to implement this plan. Steps use checkbox (- [ ]) syntax for tracking.

Goal: 在不改变业务行为的前提下,降低 CommonStackerCraneJob 复杂度,拆分“任务选择”和“命令构建”职责。

Architecture: 保留 CommonStackerCraneJob 作为 Quartz Job 入口,只负责调度流程;将任务选择逻辑和命令构建逻辑分别下沉到同目录新类。通过构造函数内组装依赖(不修改全局 DI),确保改动范围仅限 StackerCraneJob 目录。

Tech Stack: .NET 6, Quartz, 现有 WCS Task/Router 服务接口


Chunk 1: 结构拆分与职责落位

Task 1: 拆分任务选择器

Files:
- Create: WIDESEAWCS_Tasks/StackerCraneJob/StackerCraneTaskSelector.cs
- Modify: WIDESEAWCS_Tasks/StackerCraneJob/CommonStackerCraneJob.cs

  • [ ] Step 1: 新建任务选择器类,迁移 GetTaskIsOutTaskStationAvailable 逻辑
  • [ ] Step 2: 在 Job 中通过私有字段持有任务选择器实例
  • [ ] Step 3: 将 GetTask 调用改为任务选择器

Task 2: 拆分命令构建器

Files:
- Create: WIDESEAWCS_Tasks/StackerCraneJob/StackerCraneCommandBuilder.cs
- Modify: WIDESEAWCS_Tasks/StackerCraneJob/CommonStackerCraneJob.cs

  • [ ] Step 1: 新建命令构建器类,迁移 ConvertToStackerCraneTaskCommand 与命令构建分支逻辑
  • [ ] Step 2: 保留配置读取在 Job 中,命令构建器接受配置与服务依赖
  • [ ] Step 3: Job 中替换原有命令构建调用

Chunk 2: 清理与验证

Task 3: Job 入口瘦身与注释补全

Files:
- Modify: WIDESEAWCS_Tasks/StackerCraneJob/CommonStackerCraneJob.cs

  • [ ] Step 1: 移除已迁移私有方法及无用 using
  • [ ] Step 2: 保留并补充关键流程注释(订阅、任务获取、命令下发)

Task 4: 编译验收

Files:
- Modify: WIDESEAWCS_Tasks/StackerCraneJob/CommonStackerCraneJob.cs(如需微调)
- Modify: WIDESEAWCS_Tasks/StackerCraneJob/StackerCraneTaskSelector.cs(如需微调)
- Modify: WIDESEAWCS_Tasks/StackerCraneJob/StackerCraneCommandBuilder.cs(如需微调)

  • [ ] Step 1: 运行 dotnet build WIDESEAWCS_Tasks/WIDESEAWCS_Tasks.csproj -c Debug
  • [ ] Step 2: 若失败,按编译错误最小修复直到通过
  • [ ] Step 3: 输出结果与改动文件清单