From 8ae1a147aefadbb255edde088e7c12535c5f02d4 Mon Sep 17 00:00:00 2001 From: huangxiaoqiang <huangxiaoqiang@hnkhzn.com> Date: 星期三, 08 十月 2025 20:35:51 +0800 Subject: [PATCH] 完善输送线和堆垛机任务处理逻辑在CommonConveyorLine_NewCW.cs`中添加版本注释和设备属性定义,增强设备连接状态检查与命令发送逻辑。 修改 CommonConveyorLine_GWJob.cs`的任务查询逻辑,确保在特定条件下不下发新任务。在CommonConveyorLine_NewCWJob.cs中实现请求入库和出库的处理逻辑,确保任务状态更新。在 RequestInbound.cs中添加出库任务和新任务的处理逻辑,增强异常处理。 在CommonStackerCrane_NewCWJob.cs中实现堆垛机任务完成事件的处理,确保状态更新和前端通知。新增设备型号修改相关常量和 DTO 类,更新服务接口和实现逻辑,确保设备型号修改请求的正确处理。修改 Dt_TaskService.cs中的任务处理逻辑,确保出库任务的库存判断和状态更新。 --- Code Management/WMS/WIDESEA_WMSServer/WIDESEA_StorageTaskServices/Task/Partial/Dt_TaskService.cs | 42 +++++++++++++++++++++++++++++------------- 1 files changed, 29 insertions(+), 13 deletions(-) diff --git a/Code Management/WMS/WIDESEA_WMSServer/WIDESEA_StorageTaskServices/Task/Partial/Dt_TaskService.cs b/Code Management/WMS/WIDESEA_WMSServer/WIDESEA_StorageTaskServices/Task/Partial/Dt_TaskService.cs index 6bd38fe..7323b07 100644 --- a/Code Management/WMS/WIDESEA_WMSServer/WIDESEA_StorageTaskServices/Task/Partial/Dt_TaskService.cs +++ b/Code Management/WMS/WIDESEA_WMSServer/WIDESEA_StorageTaskServices/Task/Partial/Dt_TaskService.cs @@ -4,6 +4,7 @@ using SqlSugar; using WIDESEA_Common.CustomModels; using WIDESEA_Core.Const; +using WIDESEA_DTO; using WIDESEA_DTO.MOM; using WIDESEA_DTO.WMS; using WIDESEA_Model.Models; @@ -1078,24 +1079,39 @@ WebResponseContent content = new WebResponseContent(); try { - LogFactory.GetLog($"鍖呰璇锋眰鍑哄簱浠诲姟").Info(true, $"銆愯姹傚弬鏁般�戯細銆恵JsonConvert.SerializeObject(json)}銆憑Environment.NewLine}{Environment.NewLine}"); Dt_StationManager station = _stationManagerRepository.QueryFirst(x => x.stationChildCode == json.Position && x.stationType == 12 && x.stationArea == "Call"); if (station == null) { throw new Exception($"鏈壘鍒板寘瑁呯珯鍙颁俊鎭紝璇锋鏌ヤ紶鍏ュ弬鏁皗json.Position}"); } + + EqptRunDto basic = new EqptRunDto() + { + EquipmentModel = "0", + Password ="", + EmployeeNo = "82412152", + SessionId = Guid.NewGuid().ToString(), + RequestTime = TimeZoneInfo.ConvertTimeToUtc(DateTime.Now).ToString("yyyy-MM-ddTHH:mm:ss.fffZ"), + Software = "鍖呰涓婃枡", + EquipmentCode = station.stationEquipMOM, + }; + var result = _agingInOrOutInputService.Change(basic).Result; + var respone = JsonConvert.DeserializeObject<EqptRunDTO>(result.Data.ToString()); + if(!result.Status || !respone.Success) + { + throw new Exception($"{station.productLine}鑾峰彇MOM鎹㈠瀷鏁版嵁寮傚父,寮傚父淇℃伅{respone.MOMMessage}"); + } var deviceCode = SqlSugarHelper.DbWCS.Queryable<Dt_DeviceInfo>() .Where(x => x.DeviceStatus == "1") .Where(x => x.DeviceCode.Contains("CWSC")) // 杩囨护鏉′欢 .ToList().Select(x => x.DeviceCode).ToList(); - //var outBoundMateriel = AppSettings.app<OutBoundMateriel>("OutBoundMateriel"); - var outBoundMateriel = _dt_ChangeoversRepository.QueryData(x => x.Status == "1").ToList(); - List<string>? materielCodes = outBoundMateriel.Count != 0 - ? outBoundMateriel.Where(x => x.ProductionLine == station.productLine && x.ProcessCode == "CWSC3") - .Select(x => x.MaterielCode) - .ToList() - : null; + //var outBoundMateriel = _dt_ChangeoversRepository.QueryData(x => x.Status == "1").ToList(); + //List<string>? materielCodes = outBoundMateriel.Count != 0 + // ? outBoundMateriel.Where(x => x.ProductionLine == station.productLine && x.ProcessCode == "CWSC3") + // .Select(x => x.MaterielCode) + // .ToList() + // : null; - #region + #region Redis缂撳瓨鏌ヨ浠g爜 //// 浠庣紦瀛樹腑鑾峰彇搴撳瓨淇℃伅 //IDictionary<string, DtStockInfo>? stockInfos = _simpleCacheService.HashGetAll<DtStockInfo>(WIDESEA_Cache.CacheConst.Cache_DtStockInfo); //List<DtStockInfo> stockInfoList = stockInfos.Values.ToList(); @@ -1115,7 +1131,7 @@ // .WhereIF(!materielCodes.IsNullOrEmpty(), x => x.StockInfoDetails != null && x.StockInfoDetails.Any(y => materielCodes.Contains(y.MaterielCode))) // .FirstOrDefault(); // 淇敼鍚庣殑鏌ヨ浠g爜 - #endregion + //var stockInfo = await _stockInfoRepository.Db.Queryable<DtStockInfo>() // .Includes(x => x.LocationInfo) // .Includes(x => x.StockInfoDetails) @@ -1128,6 +1144,7 @@ // .WhereIF(!materielCodes.IsNullOrEmpty(), x => x.StockInfoDetails.Any(y => materielCodes.Contains(y.MaterielCode))) // .OrderBy(x => x.OutboundTime) // .FirstAsync(); + #endregion DtStockInfo stockInfo = null; var stockInfoList = await _stockInfoRepository.Db.Queryable<DtStockInfo>() @@ -1143,7 +1160,7 @@ foreach (var stock in stockInfoList) { var hasMatchingDetail = await _stockInfoRepository.Db.Queryable<DtStockInfoDetail>() - .Where(d => d.StockId == stock.Id && materielCodes.Contains(d.MaterielCode)) + .Where(d => d.StockId == stock.Id && respone.PreProductNo.Contains(d.MaterielCode)) .AnyAsync(); if (hasMatchingDetail) @@ -1152,7 +1169,7 @@ break; } } - if (stockInfo == null) throw new Exception($"搴撳唴{station.productLine}鏃犳弧瓒虫潯浠剁殑搴撳瓨鍙嚭搴�"); + if (stockInfo == null) throw new Exception($"CWSC3搴撳唴銆恵station.productLine}銆�,銆愮墿鏂欑紪鐮亄respone.PreProductNo}銆戞棤婊¤冻鏉′欢鐨勫簱瀛樺彲鍑哄簱"); DtLocationInfo locationInfo = _locationRepository.QueryFirst(x => x.AreaId == 5 && x.LocationCode == stockInfo.LocationCode); @@ -1189,7 +1206,6 @@ _locationStatusChangeRecordRepository.AddLocationStatusChangeRecord(stockInfo.LocationInfo, lastStatus, (int)StatusChangeTypeEnum.AutomaticDelivery, task.TaskNum); - LogFactory.GetLog($"鍖呰璇锋眰鍑哄簱浠诲姟").Info(true, $"銆愯繑鍥炲弬鏁般�戯細銆恵JsonConvert.SerializeObject(taskDTO)}銆憑Environment.NewLine}{Environment.NewLine}"); return content.OK(data: taskDTO); } catch (Exception ex) -- Gitblit v1.9.3