From 9caf7c886e9e9b7a535eb564c9a1395db07a0b4c Mon Sep 17 00:00:00 2001 From: 肖洋 <cathay_xy@163.com> Date: 星期日, 05 一月 2025 10:57:32 +0800 Subject: [PATCH] 更新生产环境的基础URL,优化设备名称匹配逻辑,删除不再使用的文件 --- Code Management/WMS/WIDESEA_WMSServer/WIDESEA_StorageTaskServices/Task/Dt_TaskService.cs | 73 +++++++++++++++++++++++++++--------- 1 files changed, 54 insertions(+), 19 deletions(-) diff --git a/Code Management/WMS/WIDESEA_WMSServer/WIDESEA_StorageTaskServices/Task/Dt_TaskService.cs b/Code Management/WMS/WIDESEA_WMSServer/WIDESEA_StorageTaskServices/Task/Dt_TaskService.cs index e6c0992..3b6a326 100644 --- a/Code Management/WMS/WIDESEA_WMSServer/WIDESEA_StorageTaskServices/Task/Dt_TaskService.cs +++ b/Code Management/WMS/WIDESEA_WMSServer/WIDESEA_StorageTaskServices/Task/Dt_TaskService.cs @@ -1,4 +1,5 @@ 锘縰sing AngleSharp.Dom; +using log4net.Core; using Mapster; using Masuit.Tools; using SixLabors.Fonts.Tables.AdvancedTypographic; @@ -10,6 +11,7 @@ using WIDESEA_DTO.WMS; using WIDESEA_IServices; using WIDESEA_IStoragIntegrationServices; +using WIDESEA_StorageBasicRepository; using WIDESEA_StoragIntegrationServices; using WIDESEAWCS_BasicInfoRepository; @@ -167,12 +169,19 @@ var agingOutputDto = MapToAgingOutputDto(stock); content = await _agingInOrOutInputService.GetOCVOutputAsync(agingOutputDto); - var result = JsonConvert.DeserializeObject<BasicResult>(content.Data.ToString()); - task.Remark = result.Success ? null : "NG"; - - if (!result.Success && result.MessageCode == "E10001") + if (content.Status) { - await HandleOutBoundError(stock, task); + var result = JsonConvert.DeserializeObject<BasicResult>(content.Data.ToString()); + task.Remark = result.Success ? null : "NG"; + + if (!result.Success && result.MessageCode == "E10001") + { + await HandleOutBoundError(stock, task); + } + } + else + { + task.Remark = "NG"; } } } @@ -181,6 +190,8 @@ // 鏇存柊搴撳瓨鐘舵�佸拰浠诲姟鐘舵�� (var loc, var tas) = UpdateStockAndTaskStatus(stock, task); var taskHty = task.Adapt<Dt_Task_Hty>(); + taskHty.FinishTime = DateTime.Now; + DtStockInfo_Hty stockInfo_Hty = stock.Adapt<DtStockInfo_Hty>(); stockInfo_Hty.ModifyDate = DateTime.Now; @@ -266,11 +277,13 @@ { var location = _locationRepository.QueryFirst(x => x.LocationCode == task.SourceAddress && x.RoadwayNo == task.Roadway); //var details = _stockInfoDetailRepository.QueryData(x => x.StockId == stock.Id); - + int lastStatus = location.LocationStatus; location.LocationStatus = (int)LocationEnum.Free; task.TaskState = (int)TaskOutStatusEnum.OutFinish; //task.CurrentAddress = task.NextAddress; //task.NextAddress = task.TargetAddress; + + _locationStatusChangeRecordRepository.AddLocationStatusChangeRecord(location, lastStatus, (int)StatusChangeTypeEnum.AutomaticDelivery, task.TaskNum); LogFactory.GetLog("浠诲姟瀹屾垚").Info(true, "鏇存柊搴撳瓨鐘舵�佷笌浠诲姟鐘舵��"); return (location, task); @@ -403,6 +416,7 @@ var boxing = await _boxingInfoRepository.QueryFirstNavAsync(x => x.PalletCode == task.PalletCode); var locationInf = await _locationRepository.QueryFirstAsync(x => x.LocationCode == task.TargetAddress && x.RoadwayNo == task.Roadway); + int lastStatus = locationInf.LocationStatus; // 鏇存柊鐩爣浣嶇疆鐘舵�佷负搴撳瓨涓� locationInf.LocationStatus = (int)LocationEnum.InStock; @@ -414,6 +428,10 @@ await _locationRepository.UpdateDataAsync(locationInf); await _task_HtyRepository.AddDataAsync(taskHty); await BaseDal.DeleteDataAsync(task); + + //璁板綍璐т綅鍙樺姩淇℃伅 + _locationStatusChangeRecordRepository.AddLocationStatusChangeRecord(locationInf, lastStatus, (int)StatusChangeTypeEnum.AutomaticStorage, task.TaskNum); + return content.OK("鍏ュ簱浠诲姟瀹屾垚鎴愬姛"); } // 鏍规嵁鏄惁鏈夌粍鐩樹俊鎭垱寤哄簱瀛樺疄渚嬫ā鍨� @@ -423,6 +441,7 @@ bool isResult = await ExecuteTransaction(stock, taskHty, locationInf, task.TaskId, boxing); if (isResult) { + _locationStatusChangeRecordRepository.AddLocationStatusChangeRecord(locationInf, lastStatus, (int)StatusChangeTypeEnum.AutomaticStorage, task.TaskNum); content.OK("鍏ュ簱浠诲姟瀹屾垚鎴愬姛"); } else @@ -947,11 +966,17 @@ // 鍒涘缓骞惰幏鍙栨暣鐩樼數鑺姸鎬� TrayCellsStatusDto trayCells = CreateTrayCellsStatusDto(area, input.PalletCode); content = await GetTrayCellStatusAsync(trayCells); - if (!content.Status) return content; + if (!content.Status) + { + ConsoleHelper.WriteErrorLine($"鑾峰彇鐢佃姱鐘舵�佸け璐�:{content.Message}"); + return content; + } var result = JsonConvert.DeserializeObject<ResultTrayCellsStatus>(content.Data.ToString()); + if (!result.Success) { + ConsoleHelper.WriteErrorLine($"鑾峰彇鐢佃姱鐘舵�佸け璐�:{result.MOMMessage}"); if (result.SerialNos.Count <= 0) { // 绌烘墭鐩樺叆搴撻�昏緫 @@ -969,17 +994,27 @@ return content.Error(result.MOMMessage); } - // 澶勭悊寮傚父鐢佃姱鎯呭喌 - var serialNosError = result.SerialNos.Where(x => x.SerialNoStatus != 1).ToList(); - if (serialNosError.Count > 0) + + if (result.SerialNos.Count <= 0) { - return await HandleErrorCells(input, area, serialNosError); + return await RequestTrayInTaskAsync(input); } + else + { - var boxing = CreateBoxingInfo(result, input.PalletCode); - if (boxing == null) return content.Error("缁勭洏澶辫触"); - return await ProcessBasedOnProcessCode(boxing, area, input, result); + // 澶勭悊寮傚父鐢佃姱鎯呭喌 + var serialNosError = result.SerialNos.Where(x => x.SerialNoStatus != 1 && x.SerialNoStatus != 4).ToList(); + if (serialNosError.Count > 0) + { + return await HandleErrorCells(input, area, serialNosError); + } + + var boxing = CreateBoxingInfo(result, input.PalletCode); + if (boxing == null) return content.Error("缁勭洏澶辫触"); + + return await ProcessBasedOnProcessCode(boxing, area, input, result); + } } catch (Exception err) { @@ -1178,7 +1213,7 @@ .Includes(x => x.StockInfoDetails) // 棰勫姞杞絊tockInfoDetails .Where(x => x.AreaCode == areaCode && x.OutboundTime < DateTime.Now && x.IsFull == true) // 杩囨护鏉′欢 .WhereIF(!productionLine.IsNullOrEmpty(), x => x.ProductionLine == productionLine) - .Where(x => x.LocationInfo.LocationStatus == (int)LocationEnum.InStock && x.LocationInfo.AreaId == area.AreaID) // 杩囨护鏉′欢 + .Where(x => x.LocationInfo.LocationStatus == (int)LocationEnum.InStock && x.LocationInfo.AreaId == area.AreaID && x.LocationInfo.EnalbeStatus == (int)EnableEnum.Enable) // 杩囨护鏉′欢 .WhereIF(!devices.IsNullOrEmpty(), x => devices.Contains(x.LocationInfo.RoadwayNo)) .OrderBy(x => x.OutboundTime) // 鎺掑簭 .FirstAsync(); // 鑾峰彇绗竴涓厓绱� @@ -1201,7 +1236,7 @@ .Includes(x => x.StockInfoDetails) // 棰勫姞杞絊tockInfoDetails .Where(x => areaCodes.Contains(x.AreaCode) && x.OutboundTime < DateTime.Now && x.IsFull == true) // 杩囨护鏉′欢 .WhereIF(!productionLine.IsNullOrEmpty(), x => x.ProductionLine == productionLine) - .Where(x => x.LocationInfo.LocationStatus == (int)LocationEnum.InStock && x.LocationInfo.AreaId == area.AreaID) // 杩囨护鏉′欢 + .Where(x => x.LocationInfo.LocationStatus == (int)LocationEnum.InStock && x.LocationInfo.AreaId == area.AreaID && x.LocationInfo.EnalbeStatus == (int)EnableEnum.Enable) // 杩囨护鏉′欢 .OrderBy(x => x.OutboundTime) // 鎺掑簭 .FirstAsync(); // 鑾峰彇绗竴涓厓绱� @@ -1223,7 +1258,7 @@ .Includes(x => x.StockInfoDetails) // 棰勫姞杞絊tockInfoDetails .Where(x => x.AreaCode == areaCode && x.IsFull == false) .Where(x => x.StockInfoDetails.Any(y => y.MaterielCode == "绌烘墭鐩�")) - .Where(x => x.LocationInfo.LocationStatus == (int)LocationEnum.InStock && x.LocationInfo.AreaId == area.AreaID) // 杩囨护鏉′欢 + .Where(x => x.LocationInfo.LocationStatus == (int)LocationEnum.InStock && x.LocationInfo.AreaId == area.AreaID && x.LocationInfo.EnalbeStatus == (int)EnableEnum.Enable) // 杩囨护鏉′欢 .OrderBy(x => x.CreateDate) // 鎺掑簭 .FirstAsync(); // 杞崲涓哄垪琛� @@ -2191,11 +2226,11 @@ List<DtLocationInfo> locations; if (IsFull) { - locations = await _locationRepository.QueryDataAsync(x => x.LocationStatus == (int)LocationEnum.Free && x.RoadwayNo == roadWay); + locations = await _locationRepository.QueryDataAsync(x => x.LocationStatus == (int)LocationEnum.Free && x.RoadwayNo == roadWay && x.EnalbeStatus == (int)EnableEnum.Enable); } else { - locations = await _locationRepository.QueryDataAsync(x => x.LocationStatus == (int)LocationEnum.Free && x.RoadwayNo == roadWay /*&& x.LocationType ==*/); + locations = await _locationRepository.QueryDataAsync(x => x.LocationStatus == (int)LocationEnum.Free && x.RoadwayNo == roadWay && x.EnalbeStatus == (int)EnableEnum.Enable); } if (locations == null) -- Gitblit v1.9.3