| | |
| | | // 换盘任务:根据阶段区分处理 |
| | | if (state.ChangePalletPhase == 2) |
| | | { |
| | | if (isFlowA) |
| | | { |
| | | // 流向A Phase2:放假电芯到目标托盘,不调用 API,不递增计数 |
| | | // 仅更新状态 |
| | | } |
| | | else |
| | | { |
| | | // 流向B Phase2:放正常电芯,递增计数 |
| | | // Phase 2:放正常电芯到目标托盘完成,递增计数 |
| | | state.RobotTaskTotalNum += positions.Length; |
| | | if (task != null) |
| | | task.RobotTaskTotalNum -= positions.Length; |
| | | |
| | | // 构建库存 DTO 并调用 ChangePalletAsync API |
| | | if (isFlowA) |
| | | { |
| | | // 流向A:不调用 API,仅递增计数 |
| | | } |
| | | else |
| | | { |
| | | // 流向B:调用换盘 API |
| | | var stockDTO = RobotTaskProcessor.BuildStockDTO(state, positions); |
| | | var result = _taskProcessor.PostGroupPalletAsync(nameof(ConfigKey.ChangePalletAsync), stockDTO); |
| | | putSuccess = result.Data.Status && result.IsSuccess; |
| | | } |
| | | |
| | | // 切回 Phase 1,继续取正常电芯 |
| | | state.ChangePalletPhase = 1; |
| | | } |
| | | else if (state.ChangePalletPhase == 4) |
| | | { |
| | | // 流向B Phase4:放假电芯到5号位,不调用 API,不递增计数,释放点位 |
| | | if (isFlowA) |
| | | { |
| | | // 流向A:放假电芯到目标托盘,递增计数,调用换盘 API |
| | | state.RobotTaskTotalNum += positions.Length; |
| | | if (task != null) |
| | | task.RobotTaskTotalNum -= positions.Length; |
| | | |
| | | var stockDTO = RobotTaskProcessor.BuildStockDTO(state, positions); |
| | | var result = _taskProcessor.PostGroupPalletAsync(nameof(ConfigKey.ChangePalletAsync), stockDTO); |
| | | putSuccess = result.Data.Status && result.IsSuccess; |
| | | } |
| | | else |
| | | { |
| | | // 流向B:放假电芯到5号位,释放点位 |
| | | _fakeBatteryPositionService.MarkAsAvailable(positions.ToList()); |
| | | } |
| | | |
| | | // 切回 Phase 3,继续取假电芯 |
| | | state.ChangePalletPhase = 3; |
| | | } |
| | | else |
| | | { |
| | | // 非批次模式:正常递增计数并调用 API |