dengjunjie
10 小时以前 90ac374a64e47e2bd97ee9245f4cafb50ad5dbbb
´úÂë¹ÜÀí/WCS/WIDESEAWCS_Server/WIDESEAWCS_Tasks/Task/HKTaskExtend.cs
@@ -63,7 +63,6 @@
                            // Q3CK æ˜¯AA→FF的跨楼层任务,只能使用专用小车
                            var code = item.TaskType == (int)TaskTypeEnum.Q3CK ? "AA" : "FF";
                            var specialCarInAA = dataList.FirstOrDefault(d => d.mapCode == code);
                            if (specialCarInAA != null)
                            {
                                // æœ‰åœ¨1楼的小车,直接执行任务
@@ -71,6 +70,7 @@
                                if (content.Status)
                                {
                                    item.TaskState = (int)TaskStatusEnum.Execut;
                                    _taskService.UpdateData(item);
                                }
                            }
                            else
@@ -85,11 +85,13 @@
                                    {
                                        // åŽŸä»»åŠ¡çŠ¶æ€æ”¹ä¸ºç­‰å¾…ç©ºè½¦
                                        item.TaskState = (int)TaskStatusEnum.WaitingHkAGVMovePosition;
                                        _taskService.UpdateData(item);
                                    }
                                }
                                else
                                {
                                    item.ExceptionMessage = "未找到可用AGV小车";
                                    _taskService.UpdateData(item);
                                }
                            }
                        }
@@ -97,13 +99,13 @@
                    else
                    {
                        item.ExceptionMessage = "获取AGV小车信息失败";
                        _taskService.UpdateData(item);
                    }
                }
                else if (item.TaskType == (int)TaskTypeEnum.F01)
                {
                    // F01任务处理:根据目标地址判断需要哪个楼层的小车
                    var result = _agvcartInfoService.CheckTheCar("MR-Q3-600LE-D(M)");
                    if (result != null && result.Status)
                    {
                        var dataList = result.Data as List<HIKROBOTQueryData>;
@@ -111,7 +113,7 @@
                        {
                            // ä»Žä»»åŠ¡çš„èµ·å§‹åœ°å€ä¸­æå–éœ€è¦çš„æ¥¼å±‚ä»£ç 
                            string requiredMapCode = GetMapCodeFromAddress(item.SourceAddress);
                            if (string.IsNullOrEmpty(requiredMapCode))
                            if (requiredMapCode==null)
                            {
                                item.ExceptionMessage = $"无法从目标地址 {item.SourceAddress} ä¸­è¯†åˆ«æ¥¼å±‚信息";
                                _taskService.UpdateData(item);
@@ -128,6 +130,7 @@
                                if (content.Status)
                                {
                                    item.TaskState = (int)TaskStatusEnum.Execut;
                                    _taskService.UpdateData(item);
                                }
                            }
                            else
@@ -141,17 +144,18 @@
                                    if (callCarResult.Status)
                                    {
                                        item.TaskState = (int)TaskStatusEnum.WaitingHkAGVMovePosition;
                                        _taskService.UpdateData(item);
                                    }
                                }
                                else
                                {
                                    item.ExceptionMessage = "未找到可用AGV小车";
                                    _taskService.UpdateData(item);
                                }
                            }
                        }
                    }
                }
                _taskService.UpdateData(item);
            }
        }
@@ -188,12 +192,17 @@
                var currentFloorInfo = FloorMapping.FloorMap[currentMapCode];
                var targetFloorInfo = FloorMapping.FloorMap[targetMapCode];
                // è®¾ç½®ä»»åŠ¡ä¿¡æ¯
                //task.SourceAddress = currentFloorInfo.PointCode;  // èµ·ç‚¹ï¼šå°è½¦å½“前位置的点位
                //task.CurrentAddress = currentFloorInfo.PointCode; // å½“前位置:小车当前位置的点位
                //task.TargetAddress = targetFloorInfo.PointCode;   // ç›®æ ‡ç‚¹ï¼šç›®æ ‡æ¥¼å±‚点位
                //task.NextAddress = targetFloorInfo.PointCode; // è®°å½•目标楼层代码
                // è®°å½•使用的AGV小车型号到任务中
                var carType= "";
                if (task.TaskType==(int)TaskTypeEnum.F01)
                {
                    carType = "MR-Q3-600LE-D(M)";
                }
                else//   1-6/6-1的任务
                {
                    carType = "MR-Q3-600LE-D(M)(YWGP)";
                }
                Dt_Task newTask = new Dt_Task
                {
                    WMSTaskNum = "HK_" + task.WMSTaskNum, // ç”Ÿæˆå”¯ä¸€çš„WMS任务号
@@ -204,7 +213,7 @@
                    NextAddress = targetFloorInfo.PointCode,
                    TaskType = (int)TaskTypeEnum.MOVE,
                    Grade = task.Grade,
                    PalletCode = "",
                    PalletCode = carType,
                    TaskState = (int)TaskStatusEnum.CallingHKtransportation,
                    // å¤åˆ¶å…¶ä»–必要字段
                    CreateDate = DateTime.Now,
@@ -263,20 +272,16 @@
        private string GetMapCodeFromAddress(string address)
        {
            if (string.IsNullOrEmpty(address))
            {
                return null;
            }
            // åœ°å€æ ¼å¼ç¤ºä¾‹ ï¼šAA å¯¹åº” 0339050AA0309145
            // keys æ˜¯ AA、BB、CC、DD、EE、FF,vule是对应的点位信息
            foreach (var floorCode in FloorMapping.FloorMap.Keys)
            else
            {
                if (address.Contains(floorCode))
                {
                    return floorCode;//返回的就是AA、BB、CC、DD、EE、FF中的一个,代表对应的楼层
                }
                var reslut = _stationInfoService.Repository.QueryFirst(x => x.StationCode == address);
                return reslut.FloorNumber;
            }
            return null;
        }
    }
}