| ¶Ô±ÈÐÂÎļþ |
| | |
| | | # OutboundTaskFlowService.MoveToNextStatus TODO è®¾è®¡æ¹æ¡ |
| | | |
| | | ## èæ¯ |
| | | |
| | | `OutboundTaskFlowService.MoveToNextStatus` æ¹æ³ä¸åå¨ä¸ä¸ª TODOï¼ |
| | | |
| | | ```csharp |
| | | if (task.TaskStatus == (int)TaskOutStatusEnum.Line_OutFinish && task.TaskType == (int)TaskOutboundTypeEnum.Outbound) |
| | | { |
| | | return WebResponseContent.Instance.OK(); |
| | | |
| | | // Todo:è·å对åçº¿ä½æ¯å¦ææçå·ï¼å¦æææçå·ç´æ¥çææºæ¢°æä»»å¡ |
| | | |
| | | return GetWMSOutboundTrayTask(task); |
| | | } |
| | | ``` |
| | | |
| | | 该 TODO éè¦å¨åºåºä»»å¡å°è¾¾ `Line_OutFinish` ç¶ææ¶ï¼æ£æ¥å¯¹åçº¿ä½æ¯å¦ææçå·ï¼ä»¥å³å®åç»æºæ¢°æä»»å¡çå建æ¹å¼ã |
| | | |
| | | ## ä¸å¡é»è¾ |
| | | |
| | | åºåºä»»å¡æµç¨ä¸ï¼å½ç©æéè¿è¾é线å°è¾¾ç®æ ä½ç½®åï¼ |
| | | |
| | | - **对åçº¿ä½ææçå·** â æçä¸æè´§ï¼ç´æ¥å¨æ¬å°åå»ºæºæ¢°æä»»å¡æ§è¡æ¢ç/ç»ç/æç |
| | | - **对åçº¿ä½æ æçå·** â éè¦ä» WMS è·å空æçåºåºä»»å¡ |
| | | |
| | | ## æ¹æ¡éæ© |
| | | |
| | | **éç¨æ¹æ¡ B**ï¼å¨ `RobotTaskService` ä¸å°è£
æ£æ¥é»è¾ï¼å¤ç¨å·²æç `BuildRobotTaskStock` åºç¡è®¾æ½ã |
| | | |
| | | ### åå |
| | | - `RobotTaskService.BuildRobotTaskStock` å·²å®ç°éè¿ `AddressSourceLineNoMap` è§£ææºçº¿ä½ç¼å·ï¼å¹¶éè¿è®¾å¤é信读å `Barcode` ç宿´é»è¾ |
| | | - æ°å¢æ¹æ³èè´£åä¸ï¼æ£æ¥ â å³çï¼ä»
å夿䏿§è¡å¯ä½ç¨ |
| | | - `OutboundTaskFlowService` ä¿æç®æ´ï¼åªéè°ç¨å³å¯ |
| | | |
| | | ## å®ç°è®¾è®¡ |
| | | |
| | | ### 1. RobotTaskService æ°å¢æ¹æ³ |
| | | |
| | | ```csharp |
| | | /// <summary> |
| | | /// æ£æ¥æºçº¿ä½æ¯å¦ææçå·ï¼å¹¶æ ¹æ®ç»æåå»ºæºæ¢°æä»»å¡ã |
| | | /// </summary> |
| | | /// <param name="task">åºåºä»»å¡å®ä½</param> |
| | | /// <returns> |
| | | /// ææçå·æ¶è¿å CreateLocalRobotTask ç»æï¼ |
| | | /// æ æçå·æ¶è¿å GetWMSOutboundTrayTask ç»æã |
| | | /// </returns> |
| | | public WebResponseContent CheckSourceLineAndCreateRobotTask(Dt_Task task) |
| | | { |
| | | // 1. è·åæºçº¿ä½ç¼å·ï¼å¤ç¨å·²æé»è¾ï¼ |
| | | string configKey = ResolveRobotTaskConfigKey(task.TargetAddress); |
| | | StockDTO stock = BuildRobotTaskStock(task, configKey); |
| | | string sourceLineNo = stock.SourceLineNo; |
| | | |
| | | if (string.IsNullOrWhiteSpace(sourceLineNo)) |
| | | { |
| | | return GetWMSOutboundTrayTask(task); |
| | | } |
| | | |
| | | // 2. éè¿è®¾å¤é信读åçº¿ä½æçå· |
| | | string? palletCode = ReadLineBarcode(sourceLineNo); |
| | | |
| | | if (!string.IsNullOrWhiteSpace(palletCode)) |
| | | { |
| | | // ææçå·ï¼æ¬å°åå»ºæºæ¢°æä»»å¡ |
| | | return CreateLocalRobotTask(task); |
| | | } |
| | | |
| | | // æ æçå·ï¼ä» WMS è·åä»»å¡ |
| | | return GetWMSOutboundTrayTask(task); |
| | | } |
| | | |
| | | /// <summary> |
| | | /// 读åæå®çº¿ä½çæçå·ã |
| | | /// </summary> |
| | | private string? ReadLineBarcode(string sourceLineNo) |
| | | { |
| | | try |
| | | { |
| | | IDevice? device = Storage.Devices.FirstOrDefault(x => |
| | | x.DeviceProDTOs.Any(d => d.DeviceChildCode == sourceLineNo)); |
| | | |
| | | if (device == null) |
| | | return null; |
| | | |
| | | CommonConveyorLine conveyorLine = (CommonConveyorLine)device; |
| | | return conveyorLine.GetValue<ConveyorLineDBNameNew, string>( |
| | | ConveyorLineDBNameNew.Barcode, sourceLineNo); |
| | | } |
| | | catch |
| | | { |
| | | return null; |
| | | } |
| | | } |
| | | ``` |
| | | |
| | | ### 2. OutboundTaskFlowService ä¿®æ¹ |
| | | |
| | | ```csharp |
| | | if (task.TaskStatus == (int)TaskOutStatusEnum.Line_OutFinish && task.TaskType == (int)TaskOutboundTypeEnum.Outbound) |
| | | { |
| | | // è·å对åçº¿ä½æ¯å¦ææçå·ï¼å¦æææçå·ç´æ¥çææºæ¢°æä»»å¡ |
| | | return _robotTaskService.CheckSourceLineAndCreateRobotTask(task); |
| | | } |
| | | ``` |
| | | |
| | | ## æ°æ®æµ |
| | | |
| | | ``` |
| | | MoveToNextStatus (OutboundTaskFlowService) |
| | | â |
| | | â¼ |
| | | CheckSourceLineAndCreateRobotTask (RobotTaskService) |
| | | â |
| | | ââââ⺠BuildRobotTaskStock ââ⺠ResolveRobotTaskConfigKey |
| | | â âââ⺠AddressSourceLineNoMap è·å sourceLineNo |
| | | â |
| | | â¼ |
| | | ReadLineBarcode(sourceLineNo) |
| | | â |
| | | ââââ⺠Storage.Devices æ¥æ¾è®¾å¤ |
| | | ââââ⺠CommonConveyorLine.GetValue(Barcode) |
| | | â |
| | | â¼ |
| | | âââââââââ´ââââââââ |
| | | â æçå·æå¼ â æçå·ä¸ºç©º |
| | | â¼ â¼ |
| | | CreateLocalRobotTask GetWMSOutboundTrayTask |
| | | ``` |
| | | |
| | | ## é误å¤ç |
| | | |
| | | - è®¾å¤æ¥æ¾å¤±è´¥æè¯»åå¼å¸¸ â é级为è°ç¨ `GetWMSOutboundTrayTask`ï¼ä» WMS è·åä»»å¡ï¼ |
| | | - ä¸é»å¡ä¸»æµç¨ï¼å¼å¸¸ä»
è®°å½æ¥å¿ |
| | | |
| | | ## æ¶åæä»¶ |
| | | |
| | | | æä»¶ | æ¹å¨ | |
| | | |------|------| |
| | | | `WIDESEAWCS_TaskInfoService/RobotTaskService.cs` | æ°å¢ `CheckSourceLineAndCreateRobotTask` å `ReadLineBarcode` æ¹æ³ | |
| | | | `WIDESEAWCS_TaskInfoService/Flows/OutboundTaskFlowService.cs` | æ¿æ¢ TODO ä»£ç æ®µä¸ºå§æè°ç¨ | |
| | | |
| | | ## éªè¯è¦ç¹ |
| | | |
| | | 1. å½è¾éçº¿æææ¶ï¼æºæ¢°æä»»å¡ç´æ¥æ¬å°å建ï¼ä¸è°ç¨ WMS æ¥å£ |
| | | 2. å½è¾éçº¿æ ææ¶ï¼é级è°ç¨ WMS è·å空æçä»»å¡ |
| | | 3. å¼å¸¸åºæ¯ä¸é»å¡ä¸»æµç¨ï¼éçº§å° WMS è·å |