From 7c926c1e3ade5158e6b1b0b805cd1b9c142e4b6c Mon Sep 17 00:00:00 2001 From: 肖洋 <cathay_xy@163.com> Date: 星期六, 21 十二月 2024 09:45:33 +0800 Subject: [PATCH] 更新代码以使用SqlSugarScope替代SqlSugarClient,并添加生产产线属性 --- Code Management/WCS/WIDESEAWCS_Server/WIDESEAWCS_TaskInfoService/TaskService.cs | 114 +++++++++++++++++++++++++++++++++++++++++++++++---------- 1 files changed, 94 insertions(+), 20 deletions(-) diff --git a/Code Management/WCS/WIDESEAWCS_Server/WIDESEAWCS_TaskInfoService/TaskService.cs b/Code Management/WCS/WIDESEAWCS_Server/WIDESEAWCS_TaskInfoService/TaskService.cs index 77f1978..bfa2c3b 100644 --- a/Code Management/WCS/WIDESEAWCS_Server/WIDESEAWCS_TaskInfoService/TaskService.cs +++ b/Code Management/WCS/WIDESEAWCS_Server/WIDESEAWCS_TaskInfoService/TaskService.cs @@ -40,6 +40,7 @@ private readonly IDt_StationManagerRepository _stationManagerRepository; private readonly IRouterRepository _routerRepository; private readonly ITask_HtyRepository _taskHtyRepository; + private readonly IDt_needBarcodeRepository _taskNeedBarcodeRepository; private Dictionary<string, OrderByType> _taskOrderBy = new() { @@ -54,7 +55,7 @@ public List<int> TaskOutboundTypes => typeof(TaskOutboundTypeEnum).GetEnumIndexList(); - public TaskService(ITaskRepository BaseDal, IRouterService routerService, ITaskExecuteDetailService taskExecuteDetailService, ITaskExecuteDetailRepository taskExecuteDetailRepository, IMapper mapper, ISys_ConfigService sys_ConfigService, IDt_StationManagerService stationManagerService, IDt_StationManagerRepository stationManagerRepository, IRouterRepository routerRepository, ITask_HtyRepository htyRepository) : base(BaseDal) + public TaskService(ITaskRepository BaseDal, IRouterService routerService, ITaskExecuteDetailService taskExecuteDetailService, ITaskExecuteDetailRepository taskExecuteDetailRepository, IMapper mapper, ISys_ConfigService sys_ConfigService, IDt_StationManagerService stationManagerService, IDt_StationManagerRepository stationManagerRepository, IRouterRepository routerRepository, ITask_HtyRepository htyRepository, IDt_needBarcodeRepository taskNeedBarcodeRepository) : base(BaseDal) { _routerService = routerService; _taskExecuteDetailService = taskExecuteDetailService; @@ -65,6 +66,7 @@ _stationManagerRepository = stationManagerRepository; _routerRepository = routerRepository; _taskHtyRepository = htyRepository; + _taskNeedBarcodeRepository = taskNeedBarcodeRepository; } /// <summary> @@ -88,32 +90,48 @@ task.Creater = "WMS"; if (task.TaskType.GetTaskTypeGroup() == TaskTypeGroup.OutbondGroup) { - List<Dt_Router> routers = _routerService.QueryNextRoutes(item.RoadWay, item.TargetAddress); - if (routers.Count > 0) + if (task.TargetAddress == "002-021-001") { task.TaskState = (int)TaskOutStatusEnum.OutNew; task.CurrentAddress = item.SourceAddress; - task.NextAddress = routers.FirstOrDefault().ChildPosi; } else { - routers = _routerService.QueryNextRoutes(item.SourceAddress, item.TargetAddress); + List<Dt_Router> routers = _routerService.QueryNextRoutes(item.RoadWay, item.TargetAddress); if (routers.Count > 0) { - task.TaskState = (int)TaskOutStatusEnum.SC_OutFinish; + task.TaskState = (int)TaskOutStatusEnum.OutNew; task.CurrentAddress = item.SourceAddress; task.NextAddress = routers.FirstOrDefault().ChildPosi; + } + else + { + routers = _routerService.QueryNextRoutes(item.SourceAddress, item.TargetAddress); + if (routers.Count > 0) + { + task.TaskState = (int)TaskOutStatusEnum.SC_OutFinish; + task.CurrentAddress = item.SourceAddress; + task.NextAddress = routers.FirstOrDefault().ChildPosi; + } } } } else if (task.TaskType.GetTaskTypeGroup() == TaskTypeGroup.InboundGroup) { - List<Dt_Router> routers = _routerService.QueryNextRoutes(item.SourceAddress, item.TargetAddress); - if (routers.Count > 0) + if (task.SourceAddress == "1359-4") { task.TaskState = (int)TaskInStatusEnum.InNew; task.CurrentAddress = item.SourceAddress; - task.NextAddress = routers.FirstOrDefault().ChildPosi; + } + else + { + List<Dt_Router> routers = _routerService.QueryNextRoutes(item.SourceAddress, item.TargetAddress); + if (routers.Count > 0) + { + task.TaskState = (int)TaskInStatusEnum.InNew; + task.CurrentAddress = item.SourceAddress; + task.NextAddress = routers.FirstOrDefault().ChildPosi; + } } } tasks.Add(task); @@ -167,7 +185,24 @@ } var task = JsonConvert.DeserializeObject<WMSTaskDTO>(content.Data.ToString()); - return ReceiveWMSTask(new List<WMSTaskDTO> { task }); + if (task.TaskType == (int)TaskInboundTypeEnum.InNG) + { + var station = await _stationManagerRepository.QueryFirstAsync(x => x.stationChildCode == task.SourceAddress); + Dt_Task _Task = _mapper.Map<Dt_Task>(task); + _Task.TaskState = (int)TaskInStatusEnum.InNew; + _Task.CurrentAddress = task.SourceAddress; + _Task.NextAddress = station.stationNGChildCode; + _Task.TargetAddress = station.stationNGLocation; + _Task.Roadway = station.Roadway; + + BaseDal.AddData(_Task); + _taskExecuteDetailService.AddTaskExecuteDetail(_Task.TaskNum, "鎺ユ敹WMS浠诲姟"); + return content.OK(); + } + else + { + return ReceiveWMSTask(new List<WMSTaskDTO> { task }); + } } catch (Exception ex) { @@ -229,6 +264,12 @@ { return BaseDal.QueryFirst(x => x.TaskNum == taskNum && x.CurrentAddress == currentAddress && (x.TaskState == (int)TaskInStatusEnum.Line_InFinish || x.TaskState == (int)TaskOutStatusEnum.Line_OutFinish), TaskOrderBy); } + + public Dt_Task QueryBarcodeTask(string barcode, string currentAddress) + { + return BaseDal.QueryFirst(x => x.PalletCode == barcode && x.CurrentAddress == currentAddress, TaskOrderBy); + } + /// <summary> /// 鏍规嵁浠诲姟鍙枫�佸綋鍓嶅湴鍧�鏌ヨ杈撻�佺嚎鏂板缓鐨勪换鍔� @@ -298,6 +339,21 @@ return BaseDal.QueryFirst(x => x.Roadway == deviceNo && TaskOutboundTypes.Contains(x.TaskType) && x.TaskState == (int)TaskOutStatusEnum.OutNew, TaskOrderBy); else return BaseDal.QueryFirst(x => x.Roadway == deviceNo && TaskOutboundTypes.Contains(x.TaskType) && x.TaskState == (int)TaskOutStatusEnum.OutNew && x.CurrentAddress == currentAddress, TaskOrderBy); + } + + /// <summary> + /// 鏍规嵁璁惧缂栧彿銆佹帓闄ょ殑浠诲姟銆佸綋鍓嶅湴鍧�鎸夌収浼樺厛绾т互鍙婂垱寤烘椂闂存帓搴忔煡璇换鍔℃睜鍑哄簱绫诲瀷鐨勬柊澧炵殑鎵�鏈変换鍔� + /// </summary> + /// <param name="deviceNo">璁惧缂栧彿</param> + /// <param name="excludedTaskId">鎺掗櫎鐨勪换鍔�</param> + /// <param name="currentAddress">褰撳墠鍦板潃</param> + /// <returns>杩斿洖浠诲姟瀹炰綋瀵硅薄锛屽彲鑳戒负null</returns> + public List<Dt_Task> QueryAllOutboundTasks(string deviceNo, string currentAddress = "") + { + if (string.IsNullOrEmpty(currentAddress)) + return BaseDal.QueryData(x => x.Roadway == deviceNo && TaskOutboundTypes.Contains(x.TaskType) && x.TaskState == (int)TaskOutStatusEnum.OutNew, TaskOrderBy); + else + return BaseDal.QueryData(x => x.Roadway == deviceNo && TaskOutboundTypes.Contains(x.TaskType) && x.TaskState == (int)TaskOutStatusEnum.OutNew && x.CurrentAddress == currentAddress, TaskOrderBy); } /// <summary> @@ -606,9 +662,17 @@ else { task.TaskState = (int)TaskOutStatusEnum.OutFinish; + //濡傞珮娓╁嚭搴撳悗 NG 鍒欏皢浠诲姟鏍囪涓篘G 骞跺湪鍑哄簱鐢宠鍚庡皢浠诲姟鍑鸿嚦NG鍙� + if (task.Remark == "NG") + { + BaseDal.UpdateData(task); + } + else + { + BaseDal.DeleteData(task); + ConsoleHelper.WriteWarningLine($"楂樻俯鍑哄簱鐩殑鍦板潃{task.TargetAddress}"); + } - BaseDal.DeleteData(task); - ConsoleHelper.WriteWarningLine($"楂樻俯鍑哄簱鐩殑鍦板潃{task.TargetAddress}"); var taskHty = task.Adapt<Dt_Task_Hty>(); _taskHtyRepository.AddData(taskHty); _taskExecuteDetailService.AddTaskExecuteDetail(task.TaskId, $"鍫嗗灈鏈哄嚭搴撳畬鎴�"); @@ -647,15 +711,15 @@ #region 鏇存柊浠诲姟鐘舵�� - var updateTask = config.FirstOrDefault(x => x.ConfigKey == SysConfigKeyConst.UpdateTask)?.ConfigValue; - if (wmsBase == null || updateTask == null) - { - throw new InvalidOperationException("WMS IP 鏈厤缃�"); - } - wmsIpAddress = wmsBase + updateTask; + //var updateTask = config.FirstOrDefault(x => x.ConfigKey == SysConfigKeyConst.UpdateTask)?.ConfigValue; + //if (wmsBase == null || updateTask == null) + //{ + // throw new InvalidOperationException("WMS IP 鏈厤缃�"); + //} + //wmsIpAddress = wmsBase + updateTask; - result = HttpHelper.PostAsync(wmsIpAddress, new { TaskNum = task.TaskNum, TaskState = task.TaskState }.ToJsonString()).Result; - content = JsonConvert.DeserializeObject<WebResponseContent>(result); + //result = HttpHelper.PostAsync(wmsIpAddress, new { TaskNum = task.TaskNum, TaskState = task.TaskState }.ToJsonString()).Result; + //content = JsonConvert.DeserializeObject<WebResponseContent>(result); #endregion //content = WebResponseContent.Instance.OK(); } @@ -755,5 +819,15 @@ } return content; } + + public Dt_Task QueryRelocationTask(string deviceNo) + { + return BaseDal.QueryFirst(x => x.Roadway == deviceNo && x.TaskType == (int)TaskRelocationTypeEnum.Relocation && x.TaskState == (int)TaskStatus.Created); + } + + public Dt_Task QueryExecutingTaskByBarcode(string barcode, string nextAddress) + { + return BaseDal.QueryFirst(x => x.PalletCode == barcode && x.NextAddress == nextAddress && (x.TaskState == (int)TaskInStatusEnum.Line_InExecuting || x.TaskState == (int)TaskOutStatusEnum.Line_OutExecuting), TaskOrderBy); + } } } \ No newline at end of file -- Gitblit v1.9.3