From 829eabf256e29392ca63f6da48829dba3b075dfe Mon Sep 17 00:00:00 2001 From: huanghongfeng <huanghongfeng@hnkhzn.com> Date: 星期五, 24 一月 2025 08:59:53 +0800 Subject: [PATCH] 资料,优化程序 --- 代码管理/WCS/WIDESEAWCS_Server/WIDESEAWCS_TaskInfoService/TaskService.cs | 154 +++++++++++++++++++++++++++++++++++++++++++++++--- 1 files changed, 143 insertions(+), 11 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 f4f4044..4fa7034 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" @@ -41,14 +41,15 @@ using WIDESEAWCS_Core; using WIDESEAWCS_Core.BaseServices; using WIDESEAWCS_Core.Enums; +using WIDESEAWCS_Core.Utilities; using WIDESEAWCS_DTO.Enum; using WIDESEAWCS_DTO.TaskInfo; using WIDESEAWCS_ITaskInfoRepository; using WIDESEAWCS_ITaskInfoService; using WIDESEAWCS_Model.Models; -using WIDESEAWCS_QuartzJob; using WIDESEAWCS_QuartzJob.Models; using WIDESEAWCS_QuartzJob.Service; +using static Microsoft.IO.RecyclableMemoryStreamManager; namespace WIDESEAWCS_TaskInfoService { @@ -84,10 +85,10 @@ public string urlWMSTask = WIDESEAWCS_Core.Helper.AppSettings.Configuration["urlWMSTask"]; public string urlTaskCompleted = WIDESEAWCS_Core.Helper.AppSettings.Configuration["urlTaskCompleted"]; public string urlWMSMovelibraryTask = WIDESEAWCS_Core.Helper.AppSettings.Configuration["urlWMSMovelibraryTask"]; - public string urlRelocationTaskCompleted = WIDESEAWCS_Core.Helper.AppSettings.Configuration["urlRelocationTaskCompleted"]; public string urlQueryinventory = WIDESEAWCS_Core.Helper.AppSettings.Configuration["urlQueryinventory"]; public string urlEmptyOutbound = WIDESEAWCS_Core.Helper.AppSettings.Configuration["urlEmptyOutbound"]; public string urlRawmaterialout = WIDESEAWCS_Core.Helper.AppSettings.Configuration["urlRawmaterialout"]; + public string urlPalletQueryinventory = WIDESEAWCS_Core.Helper.AppSettings.Configuration["urlPalletQueryinventory"]; /// <summary> /// 鎺ユ敹WMS浠诲姟淇℃伅 /// </summary> @@ -108,6 +109,7 @@ Dt_Task task = _mapper.Map<Dt_Task>(item); task.TaskState = (int)TaskOutStatusEnum.OutNew; task.Roadway = task.Roadway == "1" ? task.Roadway = "SC01" : task.Roadway = "SC02"; + task.CreateDate = DateTime.Now; tasks.Add(task); } BaseDal.AddData(tasks); @@ -181,14 +183,38 @@ /// <returns></returns> public WebResponseContent ToPlatform(string palletCode) { - WebResponseContent content = new WebResponseContent(); + try + { + WebResponseContent content = new WebResponseContent(); + GenerateInv generate = new GenerateInv() + { + SourceAddress = "", + PalletCode = palletCode + }; + + return content = HttpHelper.Post<WebResponseContent>($"{urlQueryinventory}", generate); + } + catch (Exception ex) + { + + throw; + } + + /*WebResponseContent content = new WebResponseContent(); GenerateInv generate = new GenerateInv() { - SourceAddress ="", + SourceAddress = "", PalletCode = palletCode }; - - return content = HttpHelper.Post<WebResponseContent>($"{urlQueryinventory}", generate); + content = HttpHelper.Post<WebResponseContent>($"{urlQueryinventory}", generate); + if (content != null) + { + if (content.Status) + { + return content; + } + } + return content = WebResponseContent.Instance.Error();*/ } /// <summary> @@ -219,6 +245,10 @@ task.Roadway = task.Roadway == "1" ? task.Roadway = "SC01" : task.Roadway = "SC02"; BaseDal.AddData(task); return content = WebResponseContent.Instance.OK(); + } + else + { + WriteLog.GetLog("PLC鏃ュ織鍑哄簱鏃ュ織").Write($"绌烘墭鍑哄簱澶辫触锛岃鎯咃細{content.Message}", "闇�瑕佺┖鎵�"); } } return content = WebResponseContent.Instance.Error(); @@ -272,6 +302,20 @@ } } + + public WebResponseContent RequestWMSTask4() + { + WebResponseContent content = new WebResponseContent(); + try + { + + return content = HttpHelper.Get<WebResponseContent>($"{urlPalletQueryinventory}"); + } + catch (Exception ex) + { + return content = WebResponseContent.Instance.Error(ex.Message); + } + } /// <summary> /// 鏍规嵁娣卞簱浣嶅悜wms鐢宠鍒ゆ柇娴呭簱浣嶆槸鍚︽湁璐э紝鏄惁闇�瑕佽繘琛岀Щ搴撴搷浣� /// </summary> @@ -302,6 +346,11 @@ return task; } } + } + else + { + return null; + WriteLog.GetLog("PLC鏃ュ織").Write($"澶辫触淇℃伅锛歿content.Message}", "绉诲簱淇℃伅"); } } @@ -380,7 +429,15 @@ public Dt_Task IngStackerCraneTask2(string deviceNo) { //string deviceNot = deviceNo == "SC01" ? "1" : "2"; - return BaseDal.QueryFirst(x => x.Roadway == deviceNo && x.TaskState == (int)TaskOutStatusEnum.SC_OutExecuting); + try + { + return BaseDal.QueryFirst(x => x.Roadway == deviceNo && x.TaskState == (int)TaskOutStatusEnum.SC_OutExecuting); + } + catch (Exception ex) + { + + throw; + } } /// <summary> @@ -649,7 +706,7 @@ /*List<Dt_Router> routers = _routerService.QueryNextRoutes(task.NextAddress, task.TargetAddress); if (!routers.Any()) return WebResponseContent.Instance.Error($"鏈壘鍒拌澶囪矾鐢变俊鎭�");*/ - content = HttpHelper.Get<WebResponseContent>($"{urlTaskCompleted}?TaskNum={task.TaskNum}"); + content = HttpHelper.Get<WebResponseContent>($"{urlTaskCompleted}?TaskNum={task.TaskNum}&HowWorks=2"); task.TaskState = (int)TaskOutStatusEnum.OutFinish; task.ModifyDate = DateTime.Now; BaseDal.DeleteData(task); @@ -661,7 +718,7 @@ } else if (task.TaskType == (int)TaskInboundTypeEnum.Inbound && task.TaskState == (int)TaskInStatusEnum.SC_InExecuting) { - content = HttpHelper.Get<WebResponseContent>($"{urlTaskCompleted}?TaskNum={task.TaskNum}"); + content = HttpHelper.Get<WebResponseContent>($"{urlTaskCompleted}?TaskNum={task.TaskNum}&HowWorks=2"); //todo //int nextStatus = task.TaskState.GetNextNotCompletedStatus<TaskInStatusEnum>(); task.TaskState = (int)TaskInStatusEnum.InFinish; @@ -674,14 +731,15 @@ } else if (task.TaskType == (int)TaskRelocationTypeEnum.Relocation) { - GenerateInv2 generate = new GenerateInv2() + /*GenerateInv2 generate = new GenerateInv2() { PalletCode = task.PalletCode, SourceAddress = task.SourceAddress, TargetAddress = task.TargetAddress }; - content = HttpHelper.Post<WebResponseContent>($"{urlRelocationTaskCompleted}", generate); + content = HttpHelper.Post<WebResponseContent>($"{urlTaskCompleted}", generate);*/ + content = HttpHelper.Get<WebResponseContent>($"{urlTaskCompleted}?TaskNum={task.TaskNum}&HowWorks=2"); task.TaskState = (int)TaskOutStatusEnum.SC_OutFinish; task.ModifyDate = DateTime.Now; BaseDal.DeleteData(task); @@ -795,5 +853,79 @@ } return content; } + + + /// <summary> + /// 鍒犻櫎鏁版嵁 + /// </summary> + /// <param name="keys">涓婚敭鏁扮粍</param> + /// <returns></returns> + public virtual WebResponseContent DeleteData(object[] keys) + { + try + { + List<Dt_Task> tasks = BaseDal.QureyDataByIds(keys); + foreach (Dt_Task task in tasks) + { + _task_HtyService.AddTaskHty(task); + } + + + if (typeof(Dt_Task).GetNavigatePro() == null) + return BaseDal.DeleteDataByIds(keys) ? WebResponseContent.Instance.OK() : WebResponseContent.Instance.Error(); + else + { + if (keys != null) + { + Type detailType = typeof(Dt_Task).GetDetailType(); + string name = typeof(Dt_Task).GetMainIdByDetail(); + List<object> dynamicDelKeys = new List<object>(); + + for (int i = 0; i < keys.Length; i++) + { + dynamicDelKeys.Add(keys[i]); + } + ((SqlSugarClient)BaseDal.Db).BeginTran(); + + if (dynamicDelKeys.Count > 0) + BaseDal.Db.Deleteable<object>().AS(detailType.Name).Where($"{name} in (@id)", new { id = dynamicDelKeys.ToArray() }).ExecuteCommandHasChange(); + + BaseDal.DeleteDataByIds(keys); + + ((SqlSugarClient)BaseDal.Db).CommitTran(); + + return WebResponseContent.Instance.OK(); + } + else + { + return WebResponseContent.Instance.Error("鍙傛暟閿欒"); + } + } + } + catch (Exception ex) + { + ((SqlSugarClient)BaseDal.Db).RollbackTran(); + return WebResponseContent.Instance.Error(ex.Message); + } + } + + public WebResponseContent ReceiveWCSTask(int tasknum) + { + Dt_Task tasks = BaseDal.QueryFirst(x => x.TaskNum == tasknum); + try + { + _task_HtyService.AddTaskHty(tasks); + BaseDal.DeleteData(tasks); + WriteLog.Write_Log("WMS鎵嬪姩鍒犻櫎浠诲姟", "鍒犻櫎鎴愬姛", $"鐢宠鍒犻櫎鐨勬潯鐮侊細{tasks.TaskNum},鎵樼洏鏉$爜锛歿tasks.PalletCode}", new { 淇℃伅 = "鍒犻櫎鎴愬姛" }); + return WebResponseContent.Instance.OK(); + + } + catch (Exception ex) + { + WriteLog.Write_Log("WMS鎵嬪姩鍒犻櫎浠诲姟","鍒犻櫎澶辫触", $"鐢宠鍒犻櫎鐨勬潯鐮侊細{tasks.TaskNum},鎵樼洏鏉$爜锛歿tasks.PalletCode}", new { 淇℃伅 = ex.Message }); + return WebResponseContent.Instance.Error(); + } + } + } } -- Gitblit v1.9.3