From 123cc3659ff208d38b0732af32c29f582154e4c8 Mon Sep 17 00:00:00 2001 From: wangxinhui <wangxinhui@hnkhzn.com> Date: 星期六, 30 八月 2025 17:43:11 +0800 Subject: [PATCH] 1 --- 项目代码/WCS/WCSServices/WIDESEAWCS_TaskInfoService/TaskService.cs | 501 ++++++++++++++++++++++++++++--------------------------- 1 files changed, 255 insertions(+), 246 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 1b446a7..537c947 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" @@ -14,40 +14,27 @@ * *----------------------------------------------------------------*/ #endregion << 鐗� 鏈� 娉� 閲� >> - using AutoMapper; -using HslCommunication.Enthernet; using Newtonsoft.Json; -using OfficeOpenXml.FormulaParsing.Excel.Functions.Text; using SqlSugar; -using System; -using System.Collections.Generic; -using System.ComponentModel; -using System.Diagnostics; using System.Diagnostics.CodeAnalysis; -using System.Linq; -using System.Reflection; -using System.Text; -using System.Threading.Tasks; using WIDESEA_DTO.Agv; +using WIDESEAWCS_Common; using WIDESEAWCS_Common.APIEnum; using WIDESEAWCS_Common.TaskEnum; using WIDESEAWCS_Core; using WIDESEAWCS_Core.BaseServices; using WIDESEAWCS_Core.Enums; using WIDESEAWCS_Core.Helper; -using WIDESEAWCS_DTO.BasicInfo; -using WIDESEAWCS_DTO.System; +using WIDESEAWCS_Core.LogHelper; using WIDESEAWCS_DTO.TaskInfo; using WIDESEAWCS_IBasicInfoRepository; using WIDESEAWCS_ITaskInfoRepository; using WIDESEAWCS_ITaskInfoService; using WIDESEAWCS_Model.Models; -using WIDESEAWCS_QuartzJob; using WIDESEAWCS_QuartzJob.Models; using WIDESEAWCS_QuartzJob.Repository; using WIDESEAWCS_QuartzJob.Service; -using WIDESEAWCS_TaskInfoRepository; using ICacheService = WIDESEAWCS_Core.Caches.ICacheService; namespace WIDESEAWCS_TaskInfoService @@ -78,6 +65,8 @@ public List<int> TaskInboundTypes => typeof(TaskTypeEnum).GetEnumIndexList().Where(x => x >= 500 && x < 900).ToList(); public List<int> TaskOutboundTypes => typeof(TaskTypeEnum).GetEnumIndexList().Where(x => x >= 100 && x < 500).ToList(); + + public List<int> TaskRelocationTypes => typeof(TaskTypeEnum).GetEnumIndexList().Where(x => x >= 900 && x < 1000).ToList(); public TaskService(ITaskRepository BaseDal, IMapper mapper, ICacheService cacheService, IRouterService routerService, ITaskExecuteDetailService taskExecuteDetailService, ITaskExecuteDetailRepository taskExecuteDetailRepository, IStationMangerRepository stationMangerRepository, IRouterRepository routerRepository, IApiInfoRepository apiInfoRepository) : base(BaseDal) { @@ -138,53 +127,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> @@ -210,33 +152,34 @@ 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) { stationManger = _stationMangerRepository.QueryFirst(x => x.StationCode == item.SourceAddress || x.StationDeviceCode == item.SourceAddress); - //if (stationManger==null && task.TaskType==TaskTypeEnum.InProduct.ObjToInt()) - //{ - // stationManger = _stationMangerRepository.QueryFirst(x => x.StackerCraneCode==task.SourceAddress); - // //杞崲鎴愬搧浠撹捣鐐圭珯鍙� - // item.SourceAddress = stationManger.StationCode; - // task.CurrentAddress = stationManger.StationCode; - // task.SourceAddress = stationManger.StationCode; - //} } else { - stationManger = _stationMangerRepository.QueryFirst(x => x.StackerCraneCode == item.RoadWay || x.Remark==item.RoadWay); + stationManger = _stationMangerRepository.QueryFirst(x => x.StackerCraneCode == item.RoadWay && x.StationType==StationTypeEnum.StationType_OnlyOutbound.ObjToInt()); } if (stationManger == null) { return WebResponseContent.Instance.Error($"鏈壘鍒扮珯鍙伴厤缃俊鎭�"); } - - List<Dt_Router> routers = _routerRepository.QueryData(x => x.InOutType == item.TaskType && (item.SourceAddress == x.StartPosi || item.RoadWay == x.StartPosi /*|| item.RoadWay == x.ChildPosiDeviceCode || item.RoadWay == x.ChildPosi*/)); + //鑾峰彇璺敱淇℃伅 + List<Dt_Router> routers = _routerRepository.QueryData(x => x.InOutType == item.TaskType && (item.SourceAddress == x.StartPosi || item.RoadWay == x.StartPosi)); router = routers.FirstOrDefault(); if (router == null) { @@ -245,128 +188,49 @@ if (routers.Count == 1) { + //鍏ュ簱 if (taskTypeGroup == TaskTypeGroup.InboundGroup) { task.CurrentAddress = router.StartPosi; task.NextAddress = router.NextPosi; task.DeviceCode = router.ChildPosiDeviceCode; } - else if (item.TaskType == TaskTypeEnum.MesMatReturn.ObjToInt() && !router.IsEnd) + else //鍑哄簱 { - task.NextAddress = router.NextPosi; - task.DeviceCode = router.ChildPosi; - } - else if ((item.TaskType == TaskTypeEnum.MesPalletLargeReturn.ObjToInt() || item.TaskType == TaskTypeEnum.MesPalletSmallReturn.ObjToInt()) && router.IsEnd) - { - task.NextAddress = router.NextPosi; - task.DeviceCode = router.ChildPosi; - } - else if (item.TaskType == TaskTypeEnum.MesOutbound.ObjToInt() || item.TaskType == TaskTypeEnum.MesHandOutbound.ObjToInt() || item.TaskType == TaskTypeEnum.MesHandPickOutbound.ObjToInt() || (item.TaskType == TaskTypeEnum.OutAllocate.ObjToInt() && item.RoadWay.Contains("BC"))) - { - task.NextAddress = router.NextPosi; task.DeviceCode = stationManger.StackerCraneCode; - if (item.TaskType == TaskTypeEnum.MesOutbound.ObjToInt() && task.TargetAddress== "SCUTL-001") - { - task.TaskState = TaskStatusEnum.MesPending.ObjToInt(); - } - else - { - task.TaskState = TaskStatusEnum.SC_Execute.ObjToInt(); - } - } - else if (item.TaskType == TaskTypeEnum.MesOutbound.ObjToInt() && item.RoadWay.Contains("ZH")) - { - task.NextAddress = stationManger.StackerCraneStationCode; - task.DeviceCode = stationManger.StackerCraneCode; - task.TaskState = TaskStatusEnum.SC_Execute.ObjToInt(); - } - else - { - task.NextAddress = taskTypeGroup == TaskTypeGroup.InboundGroup ? task.TargetAddress : router.NextPosi; - if (item.RoadWay.Contains("AGV_FL")|| (item.RoadWay.Contains("AGV_CP") && taskTypeGroup == TaskTypeGroup.OutbondGroup)) - { - task.DeviceCode = item.RoadWay; - task.AgvTaskNum = item.RoadWay + DateTime.Now.ToString("yyyyMMdd") + item.TaskNum; - } - else if(item.RoadWay.Contains("AGV_CP") && taskTypeGroup == TaskTypeGroup.InboundGroup) - { - task.DeviceCode = stationManger.StationDeviceCode; - task.AgvTaskNum = task.Roadway + DateTime.Now.ToString("yyyyMMdd") + item.TaskNum; - } - else - { - task.DeviceCode = stationManger.StationDeviceCode; - } + task.NextAddress = router.NextPosi; + task.TaskState = (int)TaskStatusEnum.SC_Execute; } } else { - if (item.RoadWay=="AGV_CP") + //鎴愬搧鐮佸灈浠诲姟鐢熸垚 + if (taskTypeGroup == TaskTypeGroup.InboundGroup && !task.Roadway.Contains("YL")) { - Dt_Router routerSelect = _routerRepository.QueryFirst(x => x.InOutType == item.TaskType && item.RoadWay == x.StartPosi && x.NextPosi==item.TargetAddress); - if (routerSelect != null) - { - task.NextAddress = routerSelect.NextPosi; - task.DeviceCode = routerSelect.ChildPosi; - task.AgvTaskNum = item.RoadWay + DateTime.Now.ToString("yyyyMMdd") + item.TaskNum; - } - else - { - return content.Error("鏈壘鍒拌矾鐢变俊鎭�"); - } + task.CurrentAddress = router.StartPosi; + task.NextAddress = ""; + task.DeviceCode = router.ChildPosiDeviceCode; } - else + else if(taskTypeGroup == TaskTypeGroup.InboundGroup && task.Roadway.Contains("YL")) //鍘熸枡鍏ュ簱 { - List<Dt_Router> dt_Routers = _routerService.QueryNextRoutes(item.SourceAddress, item.RoadWay, item.TaskType); - if (dt_Routers != null && dt_Routers.Count > 0) - { - task.NextAddress = dt_Routers.FirstOrDefault().NextPosi; - task.DeviceCode = dt_Routers.FirstOrDefault().ChildPosi; - } - else - { - task.NextAddress = ""; - task.DeviceCode = ""; - } + router = routers.FirstOrDefault(x=>x.ChildPosiDeviceCode==task.Roadway); + task.CurrentAddress = router.StartPosi; + task.NextAddress = router.NextPosi; + task.DeviceCode = router.ChildPosi; } } } else { - if (taskTypeGroup == TaskTypeGroup.OutbondGroup) + //鎴愬搧鍏ュ簱 + 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.AgvTaskNum = item.AGVArea + DateTime.Now.ToString("yyyyMMdd") + item.TaskNum; - List<Dt_Router> routers = _routerRepository.QueryData(x => x.InOutType == item.TaskType && item.AGVArea == x.NextPosi); - if (routers.FirstOrDefault() == null) - { - return WebResponseContent.Instance.Error($"鏈壘鍒拌矾鐢遍厤缃俊鎭�"); - } - router = routers.FirstOrDefault(); - task.NextAddress = router?.StartPosi ?? ""; - task.DeviceCode = item.RoadWay; - task.TaskState = TaskStatusEnum.SC_Execute.ObjToInt(); - } - else - { - task.AgvTaskNum = item.AGVArea + DateTime.Now.ToString("yyyyMMdd") + item.TaskNum; - List<Dt_Router> routers = _routerRepository.QueryData(x => x.InOutType == item.TaskType && item.AGVArea == x.StartPosi); - if (routers.FirstOrDefault() == null) - { - return WebResponseContent.Instance.Error($"鏈壘鍒拌矾鐢遍厤缃俊鎭�"); - } - router = routers.FirstOrDefault(); - Dt_StationManger? stationManger = _stationMangerRepository.QueryData(x => true).FirstOrDefault(x=>x.StationCode== router?.NextPosi); - if (stationManger == null) - { - return WebResponseContent.Instance.Error($"鏈壘鍒扮珯鍙伴厤缃俊鎭�"); - } - - task.NextAddress = stationManger?.AGVStationCode ?? ""; - task.DeviceCode = stationManger?.Remark ?? ""; - task.TaskState = TaskStatusEnum.AGV_Execute.ObjToInt(); + task.NextAddress = router.NextPosi; + task.DeviceCode = router.ChildPosi; } } - tasks.Add(task); } BaseDal.AddData(tasks); @@ -429,14 +293,107 @@ } 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) + public WebResponseContent RequestYLWMSTaskSimple(string palletCode, string sourceAddress,int taskNum=0) + { + 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}&taskNum{taskNum}"); + 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> + /// <returns></returns> + public WebResponseContent AssignCPRoadwayNo() + { + 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/AssignCPRoadwayNo"); + + if (!responseStr.IsNullOrEmpty()) + { + content.OK("鎴愬姛", responseStr); + } + + } + catch (Exception ex) + { + content = WebResponseContent.Instance.Error(ex.Message); + } + return content; + } + + // <summary> + /// 璇锋眰鍘熸枡鍏ュ簱宸烽亾 + /// </summary> + /// <returns></returns> + public WebResponseContent AssignYLRoadwayNo(string palletCode) + { + 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/AssignYLRoadwayNo?palletCode={palletCode}"); + WebResponseContent? responseContent = JsonConvert.DeserializeObject<WebResponseContent>(responseStr); + if (responseContent != null && responseContent.Status && responseContent.Data != null) + { + content = responseContent; + } + + } + 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, int taskNum = 0, string targetAddress = "") { WebResponseContent content = new WebResponseContent(); try @@ -455,15 +412,15 @@ // { WMSTaskDTO? taskDTO = new WMSTaskDTO() { - Id = 1, - TaskNum = DateTime.Now.ToString("mmss").ObjToInt(), - PalletCode="", - RoadWay="", - TaskType=TaskTypeEnum.InProduct.ObjToInt(), - TaskStatus=TaskStatusEnum.New.ObjToInt(), + TaskNum = taskNum ==0 ? DateTime.Now.ToString("mmss").ObjToInt(): taskNum, + PalletCode= palletCode, + RoadWay= roadWay, + TaskType= taskType, + PalletType=1, + TaskStatus= TaskStatusEnum.New.ObjToInt(), SourceAddress= sourceAddress, - TargetAddress="", - WarehouseId=1, + TargetAddress= targetAddress, + WarehouseId=2, Grade=0, }; content = ReceiveWMSTask(new List<WMSTaskDTO> { taskDTO }); @@ -514,42 +471,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> /// 鍒嗛厤宸烽亾 @@ -698,29 +619,6 @@ } /// <summary> - /// 鍚慦MS鐢宠鍒嗛厤璐т綅 - /// </summary> - /// <param name="taskNum"></param> - /// <param name="roadwayNo"></param> - /// <param name="heightType"></param> - /// <returns></returns> - /// <exception cref="Exception"></exception> - public string? RequestAssignLocationByHeight(int taskNum, string roadwayNo, int heightType) - { - string address = AppSettings.Get("WMSApiAddress"); - if (string.IsNullOrEmpty(address)) throw new Exception("鏈壘鍒癢MSApi鍦板潃"); - string responseStr = HttpHelper.Get($"{address}/api/Task/AssignInboundTaskLocationByHeight?taskNum={taskNum}&roadwayNo={roadwayNo}&heightType={heightType}"); - - WebResponseContent? responseContent = JsonConvert.DeserializeObject<WebResponseContent>(responseStr); - if (responseContent != null && responseContent.Status && responseContent.Data != null) - { - return responseContent.Data.ToString(); - } - - return ""; - } - - /// <summary> /// 鏍规嵁璁惧缂栧彿銆佷换鍔$被鍨嬪垎缁�(鍙��)鎸夌収浼樺厛绾т互鍙婂垱寤烘椂闂存帓搴忔煡璇换鍔℃睜鏂板鐨勪换鍔� /// </summary> /// <param name="deviceNo">璁惧缂栧彿</param> @@ -734,6 +632,8 @@ return BaseDal.QueryFirst(x => x.DeviceCode == deviceNo && TaskInboundTypes.Contains(x.TaskType) && x.TaskState == (int)TaskStatusEnum.SC_Execute, TaskOrderBy); if (taskTypeGroup.Value == TaskTypeGroup.OutbondGroup) return BaseDal.QueryFirst(x => x.DeviceCode == deviceNo && TaskOutboundTypes.Contains(x.TaskType) && x.TaskState == (int)TaskStatusEnum.SC_Execute, TaskOrderBy); + if (taskTypeGroup.Value == TaskTypeGroup.RelocationGroup) + return BaseDal.QueryFirst(x => x.DeviceCode == deviceNo && TaskRelocationTypes.Contains(x.TaskType) && x.TaskState == (int)TaskStatusEnum.SC_Execute, TaskOrderBy); return null; } @@ -960,5 +860,114 @@ return WebResponseContent.Instance.Error(ex.Message); } } + + public Dt_Task QueryBarCodeAGVFinishTask(int TaskNum, string currentAddress) + { + return BaseDal.QueryFirst(x => TaskInboundTypes.Contains(x.TaskType) && x.TaskState == (int)TaskStatusEnum.AGV_Finish && x.NextAddress == currentAddress && x.TaskNum == TaskNum, TaskOrderBy); + } + + public Dt_Task QueryExecutingTaskByBarcode(int TaskNum, string nextAddress) + { + return BaseDal.QueryFirst(x => x.TaskNum == TaskNum && x.NextAddress == nextAddress && x.TaskState == (int)TaskStatusEnum.Line_Executing, TaskOrderBy); + } + + public Dt_Task QueryLineExecuteTaskByBarcode(int TaskNum, string nextAddress) + { + return BaseDal.QueryFirst(x => x.TaskNum == TaskNum && x.CurrentAddress == nextAddress && x.TaskState == (int)TaskStatusEnum.Line_Execute, TaskOrderBy); + } + + public WebResponseContent UpdateTaskStatusToNext([NotNull] Dt_Task task, Dt_StationManger stationManger = null) + { + WebResponseContent content = new WebResponseContent(); + try + { + TaskStatusEnum nextStatus = new TaskStatusEnum(); + if (task.TaskType.GetTaskTypeGroup() == TaskTypeGroup.OutbondGroup) + { + if (task.TaskState == (int)TaskStatusEnum.SC_Executing) + { + task.CurrentAddress = task.NextAddress; + task.NextAddress = task.TargetAddress; + task.TaskState = (int)TaskStatusEnum.Line_Executing; + nextStatus = TaskStatusEnum.Line_Executing; + } + else if (task.TaskState == (int)TaskStatusEnum.SC_Execute) + { + task.TaskState = (int)TaskStatusEnum.SC_Executing; + nextStatus = TaskStatusEnum.SC_Executing; + } + } + else if (task.TaskType.GetTaskTypeGroup() == TaskTypeGroup.InboundGroup) + { + if (task.TaskState == (int)TaskStatusEnum.Line_Executing) + { + #region 鍏ュ簱璋冪敤鎺ュ彛鑾峰彇璐т綅鍦板潃 + //string? local = RequestAssignLocation(task.TaskNum, task.Roadway); + string? local = "SC05_YLDual-002-090-009-01"; + if (!string.IsNullOrEmpty(local)) + { + task.CurrentAddress = stationManger.StackerCraneStationCode; + task.TargetAddress = local; + task.NextAddress = local; + task.DeviceCode = stationManger.StackerCraneCode; + task.TaskState = (int)TaskStatusEnum.SC_Execute; + nextStatus = TaskStatusEnum.SC_Execute; + content.OK($"鑾峰彇璐т綅鍙穥local}"); + } + else + { + return content.Error($"璇锋眰鍏ュ簱璐т綅澶辫触"); + } + #endregion 鍏ュ簱璋冪敤鎺ュ彛鑾峰彇璐т綅鍦板潃 + } + else if (task.TaskState == (int)TaskStatusEnum.AGV_Finish) + { + //content = AssignYLRoadwayNo(task.PalletCode); + content.OK(data: "SC05_YLDual"); + if (!content.Status) + { + return content.Error($"璇锋眰鍏ュ簱澶辫触锛歿content.Message}"); + } + string roadWay = content.Data.ToString(); + + List<Dt_Router> routers = _routerRepository.QueryData(x => x.InOutType == task.TaskType && task.CurrentAddress == x.StartPosi && x.ChildPosiDeviceCode == roadWay); + Dt_Router router = routers.FirstOrDefault(); + if (router == null) + { + return content.Error($"浠诲姟鍙�:{task.TaskNum}鏈壘鍒拌矾鐢遍厤缃俊鎭�"); + } + + task.Roadway = roadWay; + task.NextAddress = router.NextPosi; + task.TaskState = (int)TaskStatusEnum.Line_Execute; + nextStatus = TaskStatusEnum.Line_Execute; + } + else if (task.TaskState == (int)TaskStatusEnum.Line_Execute) + { + task.TaskState = (int)TaskStatusEnum.Line_Executing; + nextStatus = TaskStatusEnum.Line_Executing; + } + else if (task.TaskState == (int)TaskStatusEnum.SC_Execute) + { + task.TaskState = (int)TaskStatusEnum.SC_Executing; + nextStatus = TaskStatusEnum.SC_Executing; + } + } + else + { + throw new Exception($"浠诲姟绫诲瀷閿欒,鏈壘鍒拌浠诲姟绫诲瀷,浠诲姟鍙�:銆恵task.TaskNum}銆�,浠诲姟绫诲瀷:銆恵task.TaskType}銆�"); + } + task.ModifyDate = DateTime.Now; + task.Modifier = "System"; + BaseDal.UpdateData(task); + //UpdateTask(task, nextStatus); + content = WebResponseContent.Instance.OK(); + } + catch (Exception ex) + { + content = WebResponseContent.Instance.Error(ex.Message); + } + return content; + } } } -- Gitblit v1.9.3