From c3ed42924f19d383dd643814b754d60b392496d3 Mon Sep 17 00:00:00 2001 From: huangxiaoqiang <huangxiaoqiang@hnkhzn.com> Date: 星期三, 16 七月 2025 19:22:07 +0800 Subject: [PATCH] 添加常温直接出库功能,增加实框入库存在任务发往异常口 --- Code Management/WCS/WIDESEAWCS_Server/WIDESEAWCS_TaskInfoService/TaskService.cs | 53 ++++++++++++++++++++++++++++++++++++++++++----------- 1 files changed, 42 insertions(+), 11 deletions(-) diff --git a/Code Management/WCS/WIDESEAWCS_Server/WIDESEAWCS_TaskInfoService/TaskService.cs b/Code Management/WCS/WIDESEAWCS_Server/WIDESEAWCS_TaskInfoService/TaskService.cs index daa6bbc..94d21a5 100644 --- a/Code Management/WCS/WIDESEAWCS_Server/WIDESEAWCS_TaskInfoService/TaskService.cs +++ b/Code Management/WCS/WIDESEAWCS_Server/WIDESEAWCS_TaskInfoService/TaskService.cs @@ -4,6 +4,7 @@ using Newtonsoft.Json; using SqlSugar; using System.Diagnostics.CodeAnalysis; +using System.Threading.Tasks; using WIDESEAWCS_BasicInfoRepository; using WIDESEAWCS_BasicInfoService; using WIDESEAWCS_Common; @@ -19,9 +20,12 @@ 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 static Microsoft.EntityFrameworkCore.DbLoggerCategory.Database; namespace WIDESEAWCS_TaskInfoService { @@ -94,7 +98,7 @@ if (task.TaskType.GetTaskTypeGroup() == TaskTypeGroup.OutbondGroup) { // 鍒ゆ柇浠诲姟鐩爣鍦板潃鍜岃矾寰勬槸鍚︽弧瓒崇壒瀹氭潯浠� - if (((task.TargetAddress == "002-021-001" || task.TargetAddress == "001-021-001") && task.Roadway.Contains("JZ"))|| task.TaskType == (int)TaskOutboundTypeEnum.OutFireAlarm) + if (((task.TargetAddress == "002-021-001" || task.TargetAddress == "001-021-001") && task.Roadway.Contains("JZ")) || task.TaskType == (int)TaskOutboundTypeEnum.OutFireAlarm) { // 璁剧疆浠诲姟鐘舵�佷负鍑哄簱鏂板缓 task.TaskState = (int)TaskOutStatusEnum.OutNew; @@ -181,7 +185,7 @@ catch (Exception ex) { // 鎹曡幏寮傚父骞惰缃繑鍥炵粨鏋滀负閿欒淇℃伅 - content = WebResponseContent.Instance.Error($"浠诲姟鎺ユ敹閿欒,閿欒淇℃伅:{ex.Message}"); + content = WebResponseContent.Instance.Error($"浠诲姟鎺ユ敹閿欒,閿欒淇℃伅:{ex.Message}杩斿洖鏁版嵁琛寋ex.StackTrace}"); } // 杩斿洖缁撴灉 return content; @@ -201,7 +205,15 @@ var hasTask = await BaseDal.QueryFirstAsync(x => x.PalletCode == palletCode); if (hasTask != null) { - return content.OK("褰撳墠鎵樼洏瀛樺湪浠诲姟"); + var taskExecuting = BaseDal.QueryFirst(x => x.PalletCode == palletCode && x.TaskState == (int)TaskOutStatusEnum.Line_OutExecuting); + + if (taskExecuting != null) + { + taskExecuting.ExceptionMessage = "鏈帴鏀跺埌绾夸綋瀹屾垚淇″彿绯荤粺鍐呴儴鑷姩瀹屾垚"; + Delete(taskExecuting); + } + ConsoleHelper.WriteErrorLine($"褰撳墠鎵樼洏瀛樺湪浠诲姟锛氥�恵palletCode}銆�"); + QuartzLogger.WriteLogToFile($"浠诲姟寮傚父鏈畬鎴�", $"褰撳墠鎵樼洏瀛樺湪浠诲姟锛氥�恵palletCode}銆憑Environment.NewLine}"); } var wmsIpAddrss = string.Empty; @@ -245,6 +257,7 @@ } catch (Exception ex) { + QuartzLogger.WriteLogToFile($"鎺ユ敹浠诲姟寮傚父", $"鎵樼洏鍙凤細銆恵palletCode}銆戣姹傜偣浣嶏細銆恵sourceAddress}銆戝紓甯镐俊鎭�恵ex.Message}銆戝紓甯歌銆恵ex.StackTrace}銆�"); return WebResponseContent.Instance.Error(ex.Message); } } @@ -266,7 +279,7 @@ /// <param name="deviceNo">璁惧缂栧彿</param> /// <param name="currentAddress">褰撳墠鍦板潃</param> /// <returns></returns> - public Dt_Task QueryConveyorLineTask(string deviceNo, string currentAddress,string Barcode) + 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 && x.PalletCode == Barcode, TaskOrderBy); } @@ -308,9 +321,21 @@ /// 鏍规嵁浠诲姟鍙枫�佷笅涓�鍦板潃鏌ヨ杈撻�佺嚎鎵ц涓殑浠诲姟 /// </summary> /// <param name="taskNum">浠诲姟鍙�</param> + /// <param name="Barcode">涓嬩竴鍦板潃</param> + /// <param name="currentAddress">涓嬩竴鍦板潃</param> + /// <returns></returns> + public Dt_Task QueryExecutingCurrentConveyorLineTask(int taskNum, string Barcode, string currentAddress) + { + return BaseDal.QueryFirst(x => x.TaskNum == taskNum && x.PalletCode == Barcode && x.CurrentAddress == currentAddress && (x.TaskState == (int)TaskInStatusEnum.Line_InExecuting || x.TaskState == (int)TaskOutStatusEnum.Line_OutExecuting), TaskOrderBy); + } + + /// <summary> + /// 鏍规嵁浠诲姟鍙枫�佷笅涓�鍦板潃鏌ヨ杈撻�佺嚎鎵ц涓殑浠诲姟 + /// </summary> + /// <param name="taskNum">浠诲姟鍙�</param> /// <param name="nextAddress">涓嬩竴鍦板潃</param> /// <returns></returns> - public Dt_Task QueryExecutingConveyorLineTask(int taskNum, string nextAddress,string Barcode) + public Dt_Task QueryExecutingConveyorLineTask(int taskNum, string nextAddress, string Barcode) { return BaseDal.QueryFirst(x => x.TaskNum == taskNum && x.NextAddress == nextAddress && (x.TaskState == (int)TaskInStatusEnum.Line_InExecuting || x.TaskState == (int)TaskOutStatusEnum.Line_OutExecuting), TaskOrderBy); } @@ -323,7 +348,7 @@ /// <returns></returns> public Dt_Task QueryExecutingConveyorLineTask(string nextAddress, string Barcode) { - return BaseDal.QueryFirst(x => (x.NextAddress == nextAddress||x.TargetAddress==nextAddress) && (x.TaskState == (int)TaskInStatusEnum.Line_InExecuting || x.TaskState == (int)TaskOutStatusEnum.Line_OutExecuting), TaskOrderBy); + return BaseDal.QueryFirst(x => (x.NextAddress == nextAddress || x.TargetAddress == nextAddress) && (x.TaskState == (int)TaskInStatusEnum.Line_InExecuting || x.TaskState == (int)TaskOutStatusEnum.Line_OutExecuting), TaskOrderBy); } /// <summary> @@ -685,7 +710,7 @@ task.ModifyDate = DateTime.Now; task.Modifier = "System"; - + _taskExecuteDetailService.AddTaskExecuteDetail(task.TaskId, $"绯荤粺鑷姩娴佺▼锛屾洿鏂板綋鍓嶄綅缃�恵oldCurrentPos} ----> {task.CurrentAddress}銆戝拰涓嬩竴浣嶇疆銆恵oldNextPos} ----> {task.NextAddress}銆�"); return task; @@ -728,7 +753,7 @@ var result = HttpHelper.GetAsync(wmsIpAddress, keys).Result; QuartzLogger.WriteLogToFile($"Info_浠诲姟瀹屾垚", $"浠诲姟瀹屾垚,浠诲姟鍙�:銆恵taskNum}銆戣繑鍥炲弬鏁般�恵JsonConvert.SerializeObject(result)}銆憑Environment.NewLine}{Environment.NewLine}"); - if(result != null) + if (result != null) { content = JsonConvert.DeserializeObject<WebResponseContent>(result); @@ -748,7 +773,7 @@ if (task.TaskType.GetTaskTypeGroup() == TaskTypeGroup.OutbondGroup && task.TaskState == (int)TaskOutStatusEnum.SC_OutExecuting) { - if (!task.Roadway.Contains("GW")) + if (!task.Roadway.Contains("GW") && task.TaskType != (int)TaskOutboundTypeEnum.InToOut) { var routers = _routerService.QueryNextRoutes(task.NextAddress, task.TargetAddress); if (!routers.Any()) return WebResponseContent.Instance.Error($"鏈壘鍒拌澶囪矾鐢变俊鎭�"); @@ -814,7 +839,7 @@ catch (Exception ex) { content = WebResponseContent.Instance.Error($"浠诲姟瀹屾垚寮傚父,浠诲姟鍙�:銆恵taskNum}銆�"); - QuartzLogger.WriteLogToFile($"Info_浠诲姟瀹屾垚", $"浠诲姟瀹屾垚寮傚父,浠诲姟鍙�:銆恵taskNum}銆戝紓甯镐俊鎭�恵ex.StackTrace}銆憑Environment.NewLine}{Environment.NewLine}"); + QuartzLogger.WriteLogToFile($"Info_浠诲姟瀹屾垚", $"浠诲姟瀹屾垚寮傚父,浠诲姟鍙�:銆恵taskNum}銆戝紓甯镐俊鎭�恵ex.Message}銆憑Environment.NewLine}寮傚父淇℃伅銆恵ex.StackTrace}銆憑Environment.NewLine}"); } QuartzLogger.WriteLogToFile($"Info_浠诲姟瀹屾垚", $"浠诲姟瀹屾垚,浠诲姟鍙�:銆恵taskNum}銆戣繑鍥炲弬鏁般�恵JsonConvert.SerializeObject(content)}銆憑Environment.NewLine}{Environment.NewLine}"); return content; @@ -935,7 +960,13 @@ } return wcsBasez + address; } - + public WebResponseContent Delete(Dt_Task task) + { + var taskHty = task.Adapt<Dt_Task_Hty>(); + taskHty.Creater = App.User.UserName != null ? App.User.UserName : "System"; + _taskHtyRepository.AddData(taskHty); + return base.DeleteData(task); + } #region 閲嶅啓鏂规硶 public override WebResponseContent DeleteData(object[] key) -- Gitblit v1.9.3