| ¶Ô±ÈÐÂÎļþ |
| | |
| | | # åºåºä»»å¡ TargetAddress è¾é线任å¡å²çªæ£æ¥ 宿½è®¡å |
| | | |
| | | > **For agentic workers:** REQUIRED SUB-SKILL: Use superpowers:subagent-driven-development (recommended) or superpowers:executing-plans to implement this plan task-by-task. Steps use checkbox (`- [ ]`) syntax for tracking. |
| | | |
| | | **Goal:** å¨åºåºä»»å¡éæ©æ¶ï¼æ£æ¥æ¯å¦ææ£å¨æ§è¡çè¾é线任å¡å»å¾åä¸ TargetAddressï¼é¿å
å²çªã |
| | | |
| | | **Architecture:** å¨ `ITaskService` æ°å¢ `HasExecutingTaskToTarget` æ¹æ³ï¼å¨ `TaskService` ä¸å®ç°æ°æ®åºæ¥è¯¢ï¼å¨ `StackerCraneTaskSelector.TrySelectOutboundTask` ä¸è°ç¨ã |
| | | |
| | | **Tech Stack:** C# / .NET 8ï¼SqlSugar ORMï¼Serilog |
| | | |
| | | --- |
| | | |
| | | ## æ¶åæä»¶ |
| | | |
| | | - ä¿®æ¹: `WCS/WIDESEAWCS_Server/WIDESEAWCS_ITaskInfoService/ITaskService.cs` |
| | | - ä¿®æ¹: `WCS/WIDESEAWCS_Server/WIDESEAWCS_TaskInfoService/TaskService/TaskService.Query.cs` |
| | | - ä¿®æ¹: `WCS/WIDESEAWCS_Server/WIDESEAWCS_Tasks/StackerCraneJob/StackerCraneTaskSelector.cs` |
| | | |
| | | --- |
| | | |
| | | ## Task 1: æ°å¢ ITaskService æ¥å£æ¹æ³ |
| | | |
| | | **Files:** |
| | | - Modify: `WCS/WIDESEAWCS_Server/WIDESEAWCS_ITaskInfoService/ITaskService.cs` |
| | | |
| | | - [ ] **Step 1: 卿¥å£æ«å°¾ï¼`public Dt_Task QueryByTaskNum(int taskNum);` ä¹åï¼`}` ä¹åï¼æ·»å æ¹æ³å£°æ** |
| | | |
| | | ```csharp |
| | | /// <summary> |
| | | /// æ¥è¯¢æ¯å¦ææ£å¨æ§è¡çå»å¾æå® TargetAddress çè¾éçº¿ä»»å¡ |
| | | /// </summary> |
| | | /// <param name="roadway">å··éå·</param> |
| | | /// <param name="targetAddress">ç®æ å°å</param> |
| | | /// <returns>åå¨è¿å true</returns> |
| | | bool HasExecutingTaskToTarget(string roadway, string targetAddress); |
| | | ``` |
| | | |
| | | - [ ] **Step 2: Commit** |
| | | |
| | | ```bash |
| | | git add WCS/WIDESEAWCS_Server/WIDESEAWCS_ITaskInfoService/ITaskService.cs |
| | | git commit -m "feat(ITaskService): æ°å¢ HasExecutingTaskToTarget æ¥å£æ¹æ³ |
| | | |
| | | æ¥è¯¢æ¯å¦ææ£å¨æ§è¡çå»å¾æå® TargetAddress çè¾éçº¿ä»»å¡ |
| | | |
| | | Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com>" |
| | | ``` |
| | | |
| | | --- |
| | | |
| | | ## Task 2: å®ç° TaskService æ¹æ³ |
| | | |
| | | **Files:** |
| | | - Modify: `WCS/WIDESEAWCS_Server/WIDESEAWCS_TaskInfoService/TaskService/TaskService.Query.cs` |
| | | |
| | | - [ ] **Step 1: å¨ `QueryExecutingConveyorLineTask` æ¹æ³ä¹åæ·»å å®ç°** |
| | | |
| | | å¨ `TaskService.Query.cs` æä»¶ä¸ï¼æ¾å° `QueryExecutingConveyorLineTask` æ¹æ³ï¼çº¦ line 28-34ï¼ï¼å¨å
¶ä¹åï¼`QueryCompletedConveyorLineTask` ä¹åï¼æå
¥ï¼ |
| | | |
| | | ```csharp |
| | | /// <summary> |
| | | /// æ¥è¯¢æ¯å¦ææ£å¨æ§è¡çå»å¾æå® TargetAddress çè¾éçº¿ä»»å¡ |
| | | /// </summary> |
| | | /// <param name="roadway">å··éå·</param> |
| | | /// <param name="targetAddress">ç®æ å°å</param> |
| | | /// <returns>åå¨è¿å true</returns> |
| | | public bool HasExecutingTaskToTarget(string roadway, string targetAddress) |
| | | { |
| | | return BaseDal.QueryFirst(x => |
| | | x.Roadway == roadway && |
| | | x.TargetAddress == targetAddress && |
| | | x.TaskStatus == (int)TaskOutStatusEnum.Line_OutExecuting, |
| | | TaskOrderBy) != null; |
| | | } |
| | | ``` |
| | | |
| | | - [ ] **Step 2: Commit** |
| | | |
| | | ```bash |
| | | git add WCS/WIDESEAWCS_Server/WIDESEAWCS_TaskInfoService/TaskService/TaskService.Query.cs |
| | | git commit -m "feat(TaskService): å®ç° HasExecutingTaskToTarget æ¹æ³ |
| | | |
| | | æ¥è¯¢ TaskStatus == Line_OutExecuting ä¸ Roadway å TargetAddress å¹é
çä»»å¡ |
| | | |
| | | Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com>" |
| | | ``` |
| | | |
| | | --- |
| | | |
| | | ## Task 3: å¨ TrySelectOutboundTask ä¸è°ç¨æ°æ¹æ³ |
| | | |
| | | **Files:** |
| | | - Modify: `WCS/WIDESEAWCS_Server/WIDESEAWCS_Tasks/StackerCraneJob/StackerCraneTaskSelector.cs` |
| | | |
| | | - [ ] **Step 1: å¨ `TrySelectOutboundTask` æ¹æ³ä¸ï¼NextAddress æ£æ¥éè¿ä¹åãWMS ç§»åºæ£æ¥ä¹åæå
¥** |
| | | |
| | | å½å代ç ï¼çº¦ line 203-235ï¼ï¼ |
| | | |
| | | ```csharp |
| | | // 夿 NextAddress åºåºç«å°æ¯å¦å¯ç¨ |
| | | if (!IsOutTaskStationAvailable(outboundTask)) |
| | | { |
| | | return null; |
| | | } |
| | | |
| | | // ç«å°æ£æ¥éè¿åï¼è°ç¨ WMS 夿æ¯å¦éè¦ç§»åº |
| | | ``` |
| | | |
| | | å¨ `// ç«å°æ£æ¥éè¿å` 注éä¹åæå
¥ï¼ |
| | | |
| | | ```csharp |
| | | // æ£æ¥æ¯å¦ææ£å¨æ§è¡çè¾é线任å¡å»å¾åä¸ TargetAddress |
| | | if (_taskService.HasExecutingTaskToTarget(outboundTask.Roadway, outboundTask.TargetAddress)) |
| | | { |
| | | QuartzLogHelper.LogInfo(_logger, "TrySelectOutboundTaskï¼TargetAddress: {TargetAddress} å·²ææ£å¨æ§è¡çè¾é线任å¡ï¼ä»»å¡å·: {TaskNum}", |
| | | $"TrySelectOutboundTaskï¼TargetAddress: {outboundTask.TargetAddress} å·²ææ£å¨æ§è¡çè¾é线任å¡", outboundTask.Roadway, outboundTask.TargetAddress, outboundTask.TaskNum); |
| | | return null; |
| | | } |
| | | ``` |
| | | |
| | | - [ ] **Step 2: Commit** |
| | | |
| | | ```bash |
| | | git add WCS/WIDESEAWCS_Server/WIDESEAWCS_Tasks/StackerCraneJob/StackerCraneTaskSelector.cs |
| | | git commit -m "feat(StackerCraneTaskSelector): åºåºä»»å¡éæ©æ¶æ£æ¥ TargetAddress è¾é线任å¡å²çª |
| | | |
| | | ç«å°å¯ç¨åãWMS ç§»åºæ£æ¥åï¼æ¥è¯¢æ¯å¦æ Line_OutExecuting ç¶æçä»»å¡å»åä¸ TargetAddress |
| | | |
| | | Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com>" |
| | | ``` |
| | | |
| | | --- |
| | | |
| | | ## Task 4: éªè¯æå»º |
| | | |
| | | - [ ] **Step 1: æ§è¡æå»ºéªè¯** |
| | | |
| | | ```bash |
| | | cd D:/Git/ShanMeiXinNengYuan/Code |
| | | dotnet build WCS/WIDESEAWCS_Server/WIDESEAWCS_Server/WIDESEAWCS_Server.csproj |
| | | ``` |
| | | |
| | | 颿ï¼0 个é误 |
| | | |
| | | - [ ] **Step 2: 妿é误ï¼åæå¹¶ä¿®å¤** |