From 680ccbedf08839143215f40dea5273dc2819100c Mon Sep 17 00:00:00 2001 From: dengjunjie <dengjunjie@hnkhzn.com> Date: 星期三, 30 十月 2024 23:26:33 +0800 Subject: [PATCH] 优化WMS、WCS用户管理 --- 项目代码/WCS/WIDESEAWCS_Server/WIDESEAWCS_TaskInfoService/TaskService.cs | 121 ++++++++++++++++++++++++++++------------ 1 files changed, 85 insertions(+), 36 deletions(-) diff --git "a/\351\241\271\347\233\256\344\273\243\347\240\201/WCS/WIDESEAWCS_Server/WIDESEAWCS_TaskInfoService/TaskService.cs" "b/\351\241\271\347\233\256\344\273\243\347\240\201/WCS/WIDESEAWCS_Server/WIDESEAWCS_TaskInfoService/TaskService.cs" index 989566b..acb22e2 100644 --- "a/\351\241\271\347\233\256\344\273\243\347\240\201/WCS/WIDESEAWCS_Server/WIDESEAWCS_TaskInfoService/TaskService.cs" +++ "b/\351\241\271\347\233\256\344\273\243\347\240\201/WCS/WIDESEAWCS_Server/WIDESEAWCS_TaskInfoService/TaskService.cs" @@ -16,6 +16,7 @@ #endregion << 鐗� 鏈� 娉� 閲� >> using AutoMapper; +using Newtonsoft.Json; using OfficeOpenXml.FormulaParsing.Excel.Functions.Text; using SqlSugar; using System; @@ -27,9 +28,12 @@ using System.Text; using System.Threading.Tasks; using WIDESEAWCS_Common.TaskEnum; +using WIDESEAWCS_Common.WMSInfo; using WIDESEAWCS_Core; using WIDESEAWCS_Core.BaseServices; +using WIDESEAWCS_Core.Helper; using WIDESEAWCS_DTO.TaskInfo; +using WIDESEAWCS_DTO.WMSInfo; using WIDESEAWCS_ITaskInfoRepository; using WIDESEAWCS_ITaskInfoService; using WIDESEAWCS_Model.Models; @@ -64,7 +68,6 @@ _taskExecuteDetailRepository = taskExecuteDetailRepository; _mapper = mapper; } - /// <summary> /// 鎺ユ敹WMS浠诲姟淇℃伅 /// </summary> @@ -120,34 +123,68 @@ } return content; } - - - /// <summary> - /// 鏍规嵁鎵樼洏鍙枫�佽捣濮嬪湴鍧�鍚慦MS璇锋眰浠诲姟 + /// 杈撻�佺嚎鍏ュ簱瀹屾垚鍚慦MS鐢宠鍏ュ簱/鍫嗗灈鏈虹敵璇峰叆搴� /// </summary> - /// <param name="palletCode">鎵樼洏鍙�</param> - /// <param name="sourceAddress">璧峰鍦板潃</param> + /// <param name="task"></param> /// <returns></returns> - public WebResponseContent RequestWMSTask(string palletCode, string sourceAddress) + public WebResponseContent StackerCraneRequestInbound(Dt_Task task) { WebResponseContent content = new WebResponseContent(); try { - WMSTaskDTO taskDTO = new WMSTaskDTO() + ConveyorLineDTO lineDTO = new ConveyorLineDTO() { - TaskNum = Convert.ToInt32(DateTime.Now.ToString("HHmmss")), - Grade = 1, - PalletCode = palletCode, - RoadWay = "SC01", - SourceAddress = sourceAddress, - TargetAddress = "SC01", - TaskState = (int)TaskInStatusEnum.InNew, - Id = 0, - TaskType = (int)TaskInboundTypeEnum.Inbound + stationCode = task.CurrentAddress, + TaskNum = task.TaskNum, + Barcode = task.PalletCode }; + var ResultData = HttpHelper.PostAsync(WMSIP.StackerCraneRequestInbound, lineDTO.ToJson(), headers: new Dictionary<string, string>()); + if (ResultData.Result == null) throw new Exception($"鍚慦MS璇锋眰鍏ュ簱鍒嗛厤璐т綅澶辫触!浠诲姟鍙�:{task.TaskNum}"); + content = JsonConvert.DeserializeObject<WebResponseContent>(ResultData.Result); + if (content.Status) + { + var receiveWMSInfo = JsonConvert.DeserializeObject<ReceiveWMSInfo>(content.Data.ToJson()); + task.IsPickPlace = receiveWMSInfo.IsPickPlace; + task.TargetAddress = receiveWMSInfo.TargetAddress; + task.NextAddress = task.TargetAddress; + BaseDal.UpdateData(task); + } + } + catch (Exception ex) + { + content.Error(ex.Message); + } + return content; + } - content = ReceiveWMSTask(new List<WMSTaskDTO> { taskDTO }); + /// <summary> + /// 杈撻�佺嚎妫�娴嬪彛鍚慦MS鐢宠鍏ュ簱 + /// </summary> + /// <param name="palletCode">鎵樼洏鍙�</param> + /// <param name="sourceAddress">璧峰鍦板潃</param> + /// <returns></returns> + public WebResponseContent RequestWMSTask(ConveyorLineDTO lineDTO) + { + WebResponseContent content = new WebResponseContent(); + try + { + #region 鍚慦MS鐢宠 + var ResultData = HttpHelper.PostAsync(WMSIP.ConveyorLineRequestInbound, lineDTO.ToJson(), headers: new Dictionary<string, string>()); + if (ResultData.Result == null) throw new Exception($"鍚慦MS璇锋眰鍏ュ簱澶辫触!鎵樼洏鍙�:{lineDTO.Barcode}"); + + content = JsonConvert.DeserializeObject<WebResponseContent>(ResultData.Result); + //if (content != null && content.Status)//浠诲姟杞崲 + //{ + // var task = JsonConvert.DeserializeObject<Dt_Task>(content.Data.ToJson()); + // #region 浠诲姟淇℃伅鍙樻洿 + + + // #endregion + // content.Data = task; + // content.Status = BaseDal.UpdateData(task); + //} + #endregion } catch (Exception ex) { @@ -162,9 +199,9 @@ /// <param name="deviceNo">璁惧缂栧彿</param> /// <param name="currentAddress">褰撳墠鍦板潃</param> /// <returns></returns> - public Dt_Task QueryConveyorLineTask(string deviceNo, string currentAddress) + public Dt_Task QueryConveyorLineTask(string deviceNo, string currentAddress, string Barcode) { - return BaseDal.QueryFirst(x => (TaskInboundTypes.Contains(x.TaskType) && x.TaskState == (int)TaskInStatusEnum.InNew || TaskOutboundTypes.Contains(x.TaskType) && x.TaskState == (int)TaskOutStatusEnum.SC_OutFinish) && x.CurrentAddress == currentAddress, TaskOrderBy); + return BaseDal.QueryFirst(x => (TaskInboundTypes.Contains(x.TaskType) && x.PalletCode == Barcode && x.TaskState == (int)TaskInStatusEnum.AGV_InFinish || TaskOutboundTypes.Contains(x.TaskType) && x.TaskState == (int)TaskOutStatusEnum.SC_OutFinish) && x.CurrentAddress == currentAddress, TaskOrderBy); } /// <summary> @@ -466,23 +503,35 @@ task.TaskState = nextStatus; task.ModifyDate = DateTime.Now; task.Modifier = "System"; - BaseDal.UpdateData(task); - _taskExecuteDetailService.AddTaskExecuteDetail(task.TaskId, $"鍫嗗灈鏈哄叆搴撳畬鎴�"); - WMSTaskDTO taskDTO = new WMSTaskDTO() + #region 鍚慦MS鍙嶉鍫嗗灈鏈轰换鍔″畬鎴� + WMSTaskDTO WMStask = _mapper.Map<WMSTaskDTO>(task); + var ResultData = HttpHelper.PostAsync(WMSIP.UpdateTaskStatus, WMStask.ToJson(), headers: new Dictionary<string, string>()); + if (ResultData.Result == null) throw new Exception($"浠诲姟鐘舵�佸悓姝ュ埌WMS澶辫触!浠诲姟鍙�:{task.TaskNum}"); + content = JsonConvert.DeserializeObject<WebResponseContent>(ResultData.Result); + if (content.Status) { - TaskNum = Convert.ToInt32(DateTime.Now.ToString("HHmmss")), - Grade = 1, - PalletCode = task.PalletCode + "S", - RoadWay = "SC01", - SourceAddress = task.TargetAddress, - TargetAddress = "CLOutAreaA", - TaskState = (int)TaskOutStatusEnum.OutNew, - Id = 0, - TaskType = (int)TaskOutboundTypeEnum.Outbound - }; + BaseDal.UpdateData(task); + _taskExecuteDetailService.AddTaskExecuteDetail(task.TaskId, $"鍫嗗灈鏈哄叆搴撳畬鎴�"); + } + #endregion - content = ReceiveWMSTask(new List<WMSTaskDTO> { taskDTO }); + + + //WMSTaskDTO taskDTO = new WMSTaskDTO() + //{ + // TaskNum = Convert.ToInt32(DateTime.Now.ToString("HHmmss")), + // Grade = 1, + // PalletCode = task.PalletCode + "S", + // RoadWay = "SC01", + // SourceAddress = task.TargetAddress, + // TargetAddress = "CLOutAreaA", + // TaskState = (int)TaskOutStatusEnum.OutNew, + // Id = 0, + // TaskType = (int)TaskOutboundTypeEnum.Outbound + //}; + + //content = ReceiveWMSTask(new List<WMSTaskDTO> { taskDTO }); } else if (task.TaskType.GetTaskTypeGroup() == TaskTypeGroup.RelocationGroup) { @@ -645,7 +694,7 @@ TaskType = (int)TaskOtherTypeEnum.RelocationCar, SourceAddress = SourceAddress, TargetAddress = TargetAddress, - CurrentAddress = "", + CurrentAddress = SourceAddress, NextAddress = TargetAddress, CreateDate = DateTime.Now, Creater = "WCS", -- Gitblit v1.9.3