From 6abb6078281bed657365d9512af90e87ac90ab60 Mon Sep 17 00:00:00 2001 From: wangxinhui <wangxinhui@hnkhzn.com> Date: 星期一, 18 八月 2025 08:17:20 +0800 Subject: [PATCH] 1 --- 项目代码/WCS/WCSServices/WIDESEAWCS_TaskInfoService/TaskService.cs | 177 ++++++++++++++++++++++++++++------------------------------- 1 files changed, 84 insertions(+), 93 deletions(-) diff --git "a/\351\241\271\347\233\256\344\273\243\347\240\201/WCS/WCSServices/WIDESEAWCS_TaskInfoService/TaskService.cs" "b/\351\241\271\347\233\256\344\273\243\347\240\201/WCS/WCSServices/WIDESEAWCS_TaskInfoService/TaskService.cs" index c3c168d..f8398a4 100644 --- "a/\351\241\271\347\233\256\344\273\243\347\240\201/WCS/WCSServices/WIDESEAWCS_TaskInfoService/TaskService.cs" +++ "b/\351\241\271\347\233\256\344\273\243\347\240\201/WCS/WCSServices/WIDESEAWCS_TaskInfoService/TaskService.cs" @@ -139,53 +139,6 @@ return WebResponseContent.Instance.Error(ex.Message); } } - public WebResponseContent AgvCarrying(int row,int startColumn, int endColumn, int startlayer,int targetLayer) - { - try - { - List<Dt_Task> tasks = new List<Dt_Task>(); - for (int i = startColumn; i <= endColumn; i++) - { - string column = i.ToString(); - if (i<10) - { - column = "0" + i.ToString(); - } - string layer = targetLayer.ToString(); - if (targetLayer<10) - { - layer = "0"+targetLayer.ToString(); - } - Dt_Task task = new Dt_Task() - { - WarehouseId = 7, - TaskNum = DateTime.Now.ToString("yyMMddHHmm").ObjToInt() + i, - PalletCode= DateTime.Now.ToString("yyMMddHHmm") +i, - PalletType=0, - DeviceCode="AGV_CP", - Roadway= "AGV_CP", - TaskType =999, - SourceAddress=string.Format($"AGV_CP-00{row}-0{column}-00{startlayer}-01"), - CurrentAddress=string.Format($"AGV_CP-00{row}-0{column}-00{startlayer}-01"), - TargetAddress= string.Format($"AGV_CP-00{row}-0{column}-00{layer}-01"), - NextAddress= string.Format($"AGV_CP-00{row}-0{column}-00{layer}-01"), - Grade=0, - WMSId=0, - AgvTaskNum = "CP" + DateTime.Now.ToString("yyMMddHHmm").ObjToInt() + i, - TaskState = TaskStatusEnum.New.ObjToInt(), - Remark= "娴嬭瘯绌烘" - }; - tasks.Add(task); - } - BaseDal.AddData(tasks); - return WebResponseContent.Instance.OK(""); - } - catch (Exception ex) - { - return WebResponseContent.Instance.Error(ex.Message); - } - - } /// <summary> /// 鎺ユ敹WMS浠诲姟淇℃伅 /// </summary> @@ -211,10 +164,18 @@ task.CurrentAddress = item.SourceAddress; Dt_Router? router; - + if (task.TaskType==TaskTypeEnum.Relocation.ObjToInt()) + { + task.DeviceCode = task.Roadway; + task.NextAddress = task.TargetAddress; + task.TaskState = TaskStatusEnum.SC_Execute.ObjToInt(); + tasks.Add(task); + break; + } TaskTypeGroup taskTypeGroup = item.TaskType.GetTaskTypeGroup(); if (string.IsNullOrEmpty(item.AGVArea)) { + Dt_StationManger stationManger; //鑾峰彇绔欏彴淇℃伅 if (taskTypeGroup == TaskTypeGroup.InboundGroup) @@ -239,17 +200,47 @@ if (routers.Count == 1) { + //鍏ュ簱 if (taskTypeGroup == TaskTypeGroup.InboundGroup) { task.CurrentAddress = router.StartPosi; task.NextAddress = router.NextPosi; task.DeviceCode = router.ChildPosiDeviceCode; } - else + else //鍑哄簱 { task.DeviceCode = stationManger.StackerCraneCode; task.NextAddress = router.NextPosi; + task.TaskState = (int)TaskStatusEnum.SC_Execute; } + } + else + { + //鎴愬搧鐮佸灈浠诲姟鐢熸垚 + if (taskTypeGroup == TaskTypeGroup.InboundGroup && !task.Roadway.Contains("YL")) + { + task.CurrentAddress = router.StartPosi; + task.NextAddress = ""; + task.DeviceCode = router.ChildPosiDeviceCode; + } + else if(taskTypeGroup == TaskTypeGroup.InboundGroup && task.Roadway.Contains("YL")) //鍘熸枡鍏ュ簱 + { + router = routers.FirstOrDefault(x=>x.ChildPosiDeviceCode==task.Roadway); + task.CurrentAddress = router.StartPosi; + task.NextAddress = router.NextPosi; + task.DeviceCode = router.ChildPosi; + } + } + } + else + { + //鎴愬搧鍏ュ簱 + List<Dt_Router> routers = _routerRepository.QueryData(x => x.InOutType == item.TaskType && x.StartPosi=="AGV" && x.ChildPosiDeviceCode==item.RoadWay); + router = routers.FirstOrDefault(); + if (routers.Count == 1) + { + task.NextAddress = router.NextPosi; + task.DeviceCode = router.ChildPosi; } } tasks.Add(task); @@ -314,14 +305,49 @@ } return content; } - - /// <summary> - /// + // <summary> + /// 璇锋眰鍏ュ簱浠诲姟 /// </summary> - /// <param name="palletCode"></param> - /// <param name="sourceAddress"></param> + /// <param name="palletCode">鎵樼洏鍙�</param> + /// <param name="sourceAddress">璧峰鍦板潃</param> + /// /// <param name="roadWay">宸烽亾</param> /// <returns></returns> - public WebResponseContent RequestWMSTaskSimple(string palletCode, string sourceAddress, int taskType=630) + public WebResponseContent RequestYLWMSTaskSimple(string palletCode, string sourceAddress) + { + WebResponseContent content = new WebResponseContent(); + try + { + string address = AppSettings.Get("WMSApiAddress"); + if (string.IsNullOrEmpty(address)) + { + return WebResponseContent.Instance.Error($"鏈壘鍒癢MSApi鍦板潃"); + } + string responseStr = HttpHelper.Get($"{address}/api/Task/RequestYLWMSTaskSimple?stationCode={sourceAddress}&palletCode={palletCode}"); + WebResponseContent? responseContent = JsonConvert.DeserializeObject<WebResponseContent>(responseStr); + if (responseContent != null && responseContent.Status && responseContent.Data != null) + { + WMSTaskDTO? taskDTO = JsonConvert.DeserializeObject<WMSTaskDTO>(responseContent.Data.ToString()); + if (taskDTO != null) + { + content = ReceiveWMSTask(new List<WMSTaskDTO> { taskDTO }); + } + } + + } + catch (Exception ex) + { + content = WebResponseContent.Instance.Error(ex.Message); + } + return content; + } + // <summary> + /// 璇锋眰鍏ュ簱浠诲姟 + /// </summary> + /// <param name="palletCode">鎵樼洏鍙�</param> + /// <param name="sourceAddress">璧峰鍦板潃</param> + /// /// <param name="roadWay">宸烽亾</param> + /// <returns></returns> + public WebResponseContent RequestWMSTaskSimple(string palletCode, string sourceAddress, string roadWay="", int taskType=630) { WebResponseContent content = new WebResponseContent(); try @@ -342,8 +368,8 @@ { Id = 1, TaskNum = DateTime.Now.ToString("mmss").ObjToInt(), - PalletCode="", - RoadWay="", + PalletCode= palletCode, + RoadWay= roadWay ?? "", TaskType= taskType, PalletType=1, TaskStatus=TaskStatusEnum.New.ObjToInt(), @@ -400,42 +426,6 @@ // return content; //} - /// <summary> - /// - /// </summary> - /// <param name="sourceAddress"></param> - /// <param name="palletCode"></param> - /// <param name="heightType"></param> - /// <param name="roadways"></param> - /// <returns></returns> - public WebResponseContent RequestWMSTask(string palletCode, string sourceAddress, int heightType, List<string> roadways) - { - WebResponseContent content = new WebResponseContent(); - try - { - string address = AppSettings.Get("WMSApiAddress"); - if (string.IsNullOrEmpty(address)) - { - return WebResponseContent.Instance.Error($"鏈壘鍒癢MSApi鍦板潃"); - } - string responseStr = HttpHelper.Post($"{address}/api/Task/DeviceRequestInboundTaskByRoadways?stationCode={sourceAddress}&palletCode={palletCode}&heightType={heightType}", roadways.Serialize()); - WebResponseContent? responseContent = JsonConvert.DeserializeObject<WebResponseContent>(responseStr); - if (responseContent != null && responseContent.Status && responseContent.Data != null) - { - WMSTaskDTO? taskDTO = JsonConvert.DeserializeObject<WMSTaskDTO>(responseContent.Data.ToString()); - if (taskDTO != null) - { - content = ReceiveWMSTask(new List<WMSTaskDTO> { taskDTO }); - } - } - - } - catch (Exception ex) - { - content = WebResponseContent.Instance.Error(ex.Message); - } - return content; - } /// <summary> /// 鍒嗛厤宸烽亾 @@ -631,6 +621,7 @@ /// <returns>杩斿洖浠诲姟瀹炰綋瀵硅薄锛屽彲鑳戒负null</returns> public Dt_Task QueryStackerCraneTask(string deviceNo, string currentAddress = "") { + //鍒ゆ柇鏄惁涓虹┖ if (string.IsNullOrEmpty(currentAddress)) return BaseDal.QueryFirst(x => x.DeviceCode == deviceNo && x.TaskState == (int)TaskStatusEnum.SC_Execute, TaskOrderBy); else -- Gitblit v1.9.3