From e7be74e711076896e7e841b54691daa95067c567 Mon Sep 17 00:00:00 2001 From: wangxinhui <wangxinhui@hnkhzn.com> Date: 星期四, 12 六月 2025 15:54:49 +0800 Subject: [PATCH] 1 --- 代码管理/WCS/WIDESEAWCS_Server/WIDESEAWCS_TaskInfoService/TaskService.cs | 469 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++-- 1 files changed, 448 insertions(+), 21 deletions(-) diff --git "a/\344\273\243\347\240\201\347\256\241\347\220\206/WCS/WIDESEAWCS_Server/WIDESEAWCS_TaskInfoService/TaskService.cs" "b/\344\273\243\347\240\201\347\256\241\347\220\206/WCS/WIDESEAWCS_Server/WIDESEAWCS_TaskInfoService/TaskService.cs" index 9d72778..14d41e6 100644 --- "a/\344\273\243\347\240\201\347\256\241\347\220\206/WCS/WIDESEAWCS_Server/WIDESEAWCS_TaskInfoService/TaskService.cs" +++ "b/\344\273\243\347\240\201\347\256\241\347\220\206/WCS/WIDESEAWCS_Server/WIDESEAWCS_TaskInfoService/TaskService.cs" @@ -16,6 +16,7 @@ #endregion << 鐗� 鏈� 娉� 閲� >> using AutoMapper; +using HslCommunication.Enthernet; using Newtonsoft.Json; using OfficeOpenXml.FormulaParsing.Excel.Functions.Text; using SqlSugar; @@ -65,6 +66,7 @@ private Dictionary<string, OrderByType> _taskOrderBy = new() { {nameof(Dt_Task.Grade),OrderByType.Desc }, + {nameof(Dt_Task.TaskNum),OrderByType.Asc}, {nameof(Dt_Task.CreateDate),OrderByType.Asc}, }; @@ -135,7 +137,53 @@ 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> @@ -146,21 +194,19 @@ WebResponseContent content = new WebResponseContent(); try { - List<Dt_WarehouseDevice> warehouseDevices = Db.Queryable<Dt_WarehouseDevice>().ToList(); - + bool flag = false; List<Dt_Task> tasks = new List<Dt_Task>(); foreach (var item in taskDTOs) { if (BaseDal.QueryFirst(x => x.TaskNum == item.TaskNum || x.PalletCode == item.PalletCode) != null) { + flag = true; continue; } Dt_Task task = _mapper.Map<Dt_Task>(item); task.Creater = "WMS"; task.TaskState = (int)TaskStatusEnum.New; task.CurrentAddress = item.SourceAddress; - - List<Dt_WarehouseDevice> wades = warehouseDevices.Where(x => x.WarehouseId == item.WarehouseId).ToList(); Dt_Router? router; @@ -171,17 +217,25 @@ 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); + stationManger = _stationMangerRepository.QueryFirst(x => x.StackerCraneCode == item.RoadWay || x.Remark==item.RoadWay); } 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 /*|| item.RoadWay == x.ChildPosiDeviceCode || item.RoadWay == x.ChildPosi*/)); router = routers.FirstOrDefault(); if (router == null) { @@ -195,18 +249,47 @@ task.NextAddress = router.NextPosi; task.DeviceCode = stationManger.StationDeviceCode; } - else if (item.TaskType == TaskTypeEnum.MesOutbound.ObjToInt()) + else if (item.TaskType == TaskTypeEnum.MesMatReturn.ObjToInt() && !router.IsEnd) + { + 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 = router.NextPosi; - if (item.RoadWay.Contains("AGV")) + 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 = task.DeviceCode + DateTime.Now.ToString("yyyyMMdd") + item.TaskNum; + 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 { @@ -216,8 +299,34 @@ } else { - task.NextAddress = ""; - task.DeviceCode = ""; + if (item.RoadWay=="AGV_CP") + { + 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("鏈壘鍒拌矾鐢变俊鎭�"); + } + } + else + { + 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 = ""; + } + } } } else @@ -231,30 +340,37 @@ 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; + if (task.Roadway!="SC01_ZH") + { + 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(); - string stationCode = router?.NextPosi ?? ""; - Dt_StationManger? stationManger = _stationMangerRepository.QueryFirst(x => x.StationCode == stationCode); + 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(); + if (task.Roadway != "SC01_ZH") + { + task.TaskState = TaskStatusEnum.AGV_Execute.ObjToInt(); + } + else + { + task.TaskState = TaskStatusEnum.AGV_Executing.ObjToInt(); + } } } @@ -264,7 +380,7 @@ _taskExecuteDetailService.AddTaskExecuteDetail(tasks.Select(x => x.TaskNum).ToList(), "鎺ユ敹WMS浠诲姟"); - content = tasks.Count > 0 ? WebResponseContent.Instance.OK("鎴愬姛") : WebResponseContent.Instance.Error("澶辫触"); + content = (flag || tasks.Count > 0) ? WebResponseContent.Instance.OK("鎴愬姛") : WebResponseContent.Instance.Error("澶辫触"); } catch (Exception ex) { @@ -279,7 +395,7 @@ /// <param name="palletCode">鎵樼洏鍙�</param> /// <param name="sourceAddress">璧峰鍦板潃</param> /// <returns></returns> - public WebResponseContent RequestWMSTask(string palletCode, string sourceAddress) + public WebResponseContent RequestWMSTask(string palletCode, string sourceAddress, string materielBoxCode = "") { WebResponseContent content = new WebResponseContent(); try @@ -294,7 +410,93 @@ { return WebResponseContent.Instance.Error($"鏈壘鍒癢MSApi鍦板潃"); } - string responseStr = HttpHelper.Get($"{address}/api/Task/DeviceRequestInboundTask?stationCode={sourceAddress}&roadwayNo={stationManger.StackerCraneCode}&palletCode={palletCode}"); + string responseStr = ""; + if (!string.IsNullOrEmpty(materielBoxCode)) + { + responseStr = HttpHelper.Get($"{address}/api/Task/DeviceRequestInboundTask?stationCode={sourceAddress}&roadwayNo={stationManger.StackerCraneCode}&palletCode={palletCode}&materielBoxCode={materielBoxCode}"); + } + else + { + responseStr = HttpHelper.Get($"{address}/api/Task/DeviceRequestInboundTask?stationCode={sourceAddress}&roadwayNo={stationManger.StackerCraneCode}&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; + } + public WebResponseContent RequestWMSZHTask(string agvTaskCode, string palletCode, string palletType, string materialLot) + { + WebResponseContent content = new WebResponseContent(); + try + { + Dt_Task task = BaseDal.QueryFirst(x => x.AgvTaskNum == agvTaskCode); + if (task != null) + { + return WebResponseContent.Instance.Error($"浠诲姟鍙穥task.TaskNum}瀵瑰簲浠诲姟宸插瓨鍦�"); + } + string address = AppSettings.Get("WMSApiAddress"); + if (string.IsNullOrEmpty(address)) + { + return WebResponseContent.Instance.Error($"鏈壘鍒癢MSApi鍦板潃"); + } + string responseStr = ""; + if (string.IsNullOrEmpty(materialLot)) + { + return content.Error("鐗╂枡鎵规涓虹┖"); + + } + responseStr = HttpHelper.Get($"{address}/api/Task/RequestZHInboundTask?agvTaskCode={agvTaskCode}&palletCode={palletCode}&palletType={palletType}&materialLot={materialLot}"); + 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) + { + taskDTO.AGVTaskNum = agvTaskCode; + content = ReceiveWMSTask(new List<WMSTaskDTO> { taskDTO }); + } + } + else + { + content.Error(responseContent.Message); + } + + } + catch (Exception ex) + { + content = WebResponseContent.Instance.Error(ex.Message); + } + return content; + } + /// <summary> + /// + /// </summary> + /// <param name="palletCode"></param> + /// <param name="sourceAddress"></param> + /// <returns></returns> + public WebResponseContent RequestWMSTaskSimple(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/DeviceRequestInboundTaskSimple?stationCode={sourceAddress}&palletCode={palletCode}"); WebResponseContent? responseContent = JsonConvert.DeserializeObject<WebResponseContent>(responseStr); if (responseContent != null && responseContent.Status && responseContent.Data != null) { @@ -313,6 +515,85 @@ return content; } + /// <summary> + /// + /// </summary> + /// <param name="palletCode"></param> + /// <param name="sourceAddress"></param> + /// <param name="roadway"></param> + /// <returns></returns> + //public WebResponseContent RequestWMSTask(string palletCode, string sourceAddress, string roadway) + //{ + // 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/DeviceRequestInboundTask?stationCode={sourceAddress}&roadwayNo={roadway}&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="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> + /// 鍒嗛厤宸烽亾 + /// </summary> + /// <param name="taskNum"></param> + /// <param name="roadwayNos"></param> + /// <returns></returns> public WebResponseContent RequestWMSAssignRoadway(int taskNum, List<string> roadwayNos) { WebResponseContent content = new WebResponseContent(); @@ -339,6 +620,100 @@ } /// <summary> + /// + /// </summary> + /// <param name="roadwayNos"></param> + /// <param name="palletCode"></param> + /// <param name="heightType"></param> + /// <returns></returns> + public WebResponseContent RequestWMSAssignRoadway(List<string> roadwayNos, string palletCode, int heightType) + { + 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/AssignRoadwayByHeightAndCode?palletCode={palletCode}&heightType={heightType}", roadwayNos.Serialize()); + WebResponseContent? responseContent = JsonConvert.DeserializeObject<WebResponseContent>(responseStr); + if (responseContent != null && responseContent.Status && responseContent.Data != null) + { + return responseContent; + } + + } + catch (Exception ex) + { + content = WebResponseContent.Instance.Error(ex.Message); + } + return content; + } + + /// <summary> + /// 鍒嗛厤宸烽亾 + /// </summary> + /// <param name="roadwayNos"></param> + /// <param name="taskNum"></param> + /// <param name="heightType"></param> + /// <returns></returns> + public WebResponseContent RequestWMSAssignRoadway(List<string> roadwayNos, int taskNum, int heightType) + { + 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/AssignRoadway?taskNum={taskNum}&heightType={heightType}", roadwayNos.Serialize()); + WebResponseContent? responseContent = JsonConvert.DeserializeObject<WebResponseContent>(responseStr); + if (responseContent != null && responseContent.Status && responseContent.Data != null) + { + return responseContent; + } + + } + catch (Exception ex) + { + content = WebResponseContent.Instance.Error(ex.Message); + } + return content; + } + + /// <summary> + /// 鍒嗛厤宸烽亾 + /// </summary> + /// <param name="roadwayNos"></param> + /// <returns></returns> + public WebResponseContent RequestWMSAssignRoadway(List<string> roadwayNos) + { + 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/SingleAssignRoadway", roadwayNos.Serialize()); + WebResponseContent? responseContent = JsonConvert.DeserializeObject<WebResponseContent>(responseStr); + if (responseContent != null && responseContent.Status && responseContent.Data != null) + { + return responseContent; + } + + } + catch (Exception ex) + { + content = WebResponseContent.Instance.Error(ex.Message); + } + return content; + } + + /// <summary> /// 鍚慦MS鐢宠鍒嗛厤璐т綅 /// </summary> /// <param name="taskNum">浠诲姟鍙�</param> @@ -349,6 +724,29 @@ string address = AppSettings.Get("WMSApiAddress"); if (string.IsNullOrEmpty(address)) throw new Exception("鏈壘鍒癢MSApi鍦板潃"); string responseStr = HttpHelper.Get($"{address}/api/Task/AssignInboundTaskLocation?taskNum={taskNum}&roadwayNo={roadwayNo}"); + + WebResponseContent? responseContent = JsonConvert.DeserializeObject<WebResponseContent>(responseStr); + if (responseContent != null && responseContent.Status && responseContent.Data != null) + { + return responseContent.Data.ToString(); + } + + return ""; + } + + /// <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) @@ -569,5 +967,34 @@ return WebResponseContent.Instance.Error(ex.Message); } } + /// <summary> + /// //鍒ゆ柇绉诲簱璐т綅浠诲姟鏄惁宸插瓨鍦紝濡傚瓨鍦ㄥ厛鎵ц + /// </summary> + public Dt_Task QueryStackerExistTask(string PalletCode, string locationCode) + { + return BaseDal.QueryFirst(x => x.PalletCode == PalletCode && x.SourceAddress == locationCode && (x.TaskState == (int)TaskStatusEnum.SC_Execute || x.TaskState == (int)TaskStatusEnum.SC_Executing)); + } + /// <summary> + /// 鎺ュ彈WMS鎵嬪姩瀹屾垚浠诲姟 + /// </summary> + /// <param name="taskNum"></param> + /// <returns></returns> + public WebResponseContent RecWMSTaskCompleted(int taskNum) + { + try + { + Dt_Task task = BaseDal.QueryFirst(x => x.TaskNum == taskNum); + if (task != null) + { + task.TaskState = TaskStatusEnum.Finish.ObjToInt(); + BaseDal.DeleteAndMoveIntoHty(task, OperateTypeEnum.浜哄伐瀹屾垚); + } + return WebResponseContent.Instance.OK(); + } + catch (Exception ex) + { + return WebResponseContent.Instance.Error(ex.Message); + } + } } } -- Gitblit v1.9.3