From a6ea79849f0142b5280f0c5d4b15ecc83f0d015a Mon Sep 17 00:00:00 2001 From: 刘磊 <1161824510@qq.com> Date: 星期六, 21 十二月 2024 09:52:27 +0800 Subject: [PATCH] Merge branch 'master' of http://115.159.85.185:8098/r/HuaYiZhongHeng/BaiBuLiKu --- Code Management/WMS/WIDESEA_WMSServer/WIDESEA_StorageTaskServices/Task/Dt_TaskService.cs | 118 ++++++++++++++++++++++++++++++++++++++++++---------------- 1 files changed, 85 insertions(+), 33 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 ffd4a8a..bf8748c 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 Mapster; +锘縰sing AngleSharp.Io; +using Mapster; using Masuit.Tools; using System.Text.RegularExpressions; using WIDESEA_Core.Const; @@ -78,7 +79,7 @@ //var process = await SqlSugarHelper.Db.Queryable<Dt_EquipmentProcess>() // .FirstAsync(x => x.EquipmentName == task.Roadway); //var info = JsonConvert.DeserializeObject<ResponseEqptRunDto>(process.ProcessValue); - if (!task.Roadway.Contains("FR")) //闈炲垎瀹瑰簱鍖哄潎涓婃姤MOM鍑哄叆绔� + if (!task.Roadway.Contains("FR") && stock.ProcessCode != "OCVB") //闈炲垎瀹瑰簱鍖轰笌褰撳墠宸ュ簭鏄疧CVB鍧囦笂鎶OM鍑哄叆绔� { var agingOutputDto = MapToAgingOutputDto(stock); content = await _agingInOrOutInputService.GetOCVOutputAsync(agingOutputDto); @@ -418,11 +419,20 @@ } else { - var station = _stationManagerRepository.QueryFirst(x => x.stationChildCode == task.SourceAddress); - if (station.stationPLC == "1017") - area = _areaInfoRepository.QueryFirst(x => x.AreaID == Convert.ToInt32(station.stationNGLocation)); - else - area = _areaInfoRepository.QueryFirst(x => x.AreaID == loation.AreaId); + //var station = _stationManagerRepository.QueryFirst(x => x.stationChildCode == task.SourceAddress); + //if (station.stationPLC == "1017") + // area = _areaInfoRepository.QueryFirst(x => x.AreaID == Convert.ToInt32(station.stationNGLocation)); + //else + // area = _areaInfoRepository.QueryFirst(x => x.AreaID == loation.AreaId); + //if (area == null) + // throw new Exception("鏈壘鍒板搴斿尯鍩熶俊鎭�"); + + if (boxing.ProcessCode == "OCV1") + area = _areaInfoRepository.QueryFirst(x => x.AreaID == 6); + + else if (boxing.ProcessCode == "OCVB") + area = _areaInfoRepository.QueryFirst(x => x.AreaID == 7); + if (area == null) throw new Exception("鏈壘鍒板搴斿尯鍩熶俊鎭�"); } @@ -444,31 +454,46 @@ Remark = boxing.BoxingInfoDetails.Count().ToString(), }; - // 澶勭悊璇锋眰鍙傛暟 - AgingInputDto agingInputDto = new AgingInputDto() + if (boxing.ProcessCode != "OCVB") { - SerialNos = boxing.BoxingInfoDetails - .Select(item => new SerialNoInDto { SerialNo = item.SerialNumber, PositionNo = item.OrderNo }) - .ToList(), - TrayBarcode = task.PalletCode, - OpFlag = 1, - EquipmentCode = area.Spare2, - Software = area.Spare3 - }; + // 澶勭悊璇锋眰鍙傛暟 + AgingInputDto agingInputDto = new AgingInputDto() + { + SerialNos = boxing.BoxingInfoDetails + .Select(item => new SerialNoInDto { SerialNo = item.SerialNumber, PositionNo = item.OrderNo }) + .ToList(), + TrayBarcode = task.PalletCode, + OpFlag = 1, + EquipmentCode = area.Spare2, + Software = area.Spare3 + }; - var result = _agingInOrOutInputService.GetOCVInputAsync(agingInputDto).Result; - var respone = JsonConvert.DeserializeObject<ResponeAgingInputDto>(result.Data.ToString()); - if (respone.ProductionLine == null || respone.ParameterInfos == null || respone.SpecialParameterDuration.IsNullOrEmpty()) - { - throw new Exception("MOM鏁版嵁杩斿洖閿欒"); + var result = _agingInOrOutInputService.GetOCVInputAsync(agingInputDto).Result; + var respone = JsonConvert.DeserializeObject<ResponeAgingInputDto>(result.Data.ToString()); + + bool isFull = false; + if (!task.Roadway.Contains("FR")) + { + isFull = respone.SpecialParameterDuration.IsNullOrEmpty(); + } + if (respone.ProductionLine == null || respone.ParameterInfos == null) + { + throw new Exception("MOM鏁版嵁杩斿洖閿欒"); + } + stock.LinedProcessFeedbackTime = respone.LinedProcessFeedbackTime; + stock.SpecialParameterDuration = respone.SpecialParameterDuration; + //2024骞�11鏈�16鏃ワ細鏂板瀛楁璁$畻搴斿嚭搴撴椂闂� + stock.OutboundTime = Convert.ToDateTime(respone.LinedProcessFeedbackTime == null ? DateTime.Now : respone.LinedProcessFeedbackTime).AddHours(Convert.ToDouble(respone.SpecialParameterDuration)); + stock.ProductionLine = respone.ProductionLine; + stock.ParameterInfos = respone.ParameterInfos.ToJsonString(); + stock.StockStatus = 1; } - stock.LinedProcessFeedbackTime = respone.LinedProcessFeedbackTime; - stock.SpecialParameterDuration = respone.SpecialParameterDuration; - //2024骞�11鏈�16鏃ワ細鏂板瀛楁璁$畻搴斿嚭搴撴椂闂� - stock.OutboundTime = Convert.ToDateTime(respone.LinedProcessFeedbackTime == null ? DateTime.Now : respone.LinedProcessFeedbackTime).AddHours(Convert.ToDouble(respone.SpecialParameterDuration)); - stock.ProductionLine = respone.ProductionLine; - stock.ParameterInfos = respone.ParameterInfos.ToJsonString(); - stock.StockStatus = 1; + else + { + stock.OutboundTime = DateTime.Now; + stock.StockStatus = 1; + stock.ProductionLine = boxing.ProductionLine; + } // 璁板綍鏃ュ織 LogFactory.GetLog("浠诲姟瀹屾垚").InfoFormat(true, "鍏ュ簱浠诲姟瀹屾垚", $"璐т綅鍦板潃锛歿task.TargetAddress},淇敼鍚庤揣浣嶆暟鎹細{locationInf}"); @@ -956,6 +981,7 @@ PalletCode = palletCode, IsFull = true, ProcessCode = result.ProcessCode, + ProductionLine = result.ProductionLine, BoxingInfoDetails = result.SerialNos.Select(serialNoObj => new DtBoxingInfoDetail { SerialNumber = serialNoObj.SerialNo, @@ -993,15 +1019,15 @@ /// <param name="areaCode">鍖哄煙缂栫爜</param> /// <param name="roadways">宸烽亾缂栫爜闆嗗悎</param> /// <returns>杩斿洖缁撴灉闆�</returns> - public async Task<WebResponseContent> RequestTrayOutTaskAsync(string position, int tag, string areaCode, string productionLine) + public async Task<WebResponseContent> RequestTrayOutTaskAsync(string position, int tag, string areaCode, List<string> areaCodes, string productionLine) { WebResponseContent content = new WebResponseContent(); try { // 鏍规嵁鎵樼洏绫诲瀷鏌ヨ搴撳瓨淇℃伅 DtStockInfo stockInfo = tag == (int)TaskOutboundTypeEnum.Outbound - ? QueryStockInfoForRealTrayAsync(areaCode, productionLine).Result - : QueryStockInfoForEmptyTrayAsync(areaCode).Result; + ? areaCodes == null ? await QueryStockInfoForRealTrayAsync(areaCode, productionLine) : await QueryStockInfoForRealTrayCWAsync(areaCodes, productionLine) + : await QueryStockInfoForEmptyTrayAsync(areaCode); if (stockInfo == null) { @@ -1056,6 +1082,28 @@ .Includes(x => x.LocationInfo) // 棰勫姞杞絃ocationInfo .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) // 杩囨护鏉′欢 + .OrderBy(x => x.OutboundTime) // 鎺掑簭 + .FirstAsync(); // 鑾峰彇绗竴涓厓绱� + + //var firstOrDefault = result.FirstOrDefault(x => roadways.Contains(x.LocationInfo.RoadwayNo)); // 鏌ユ壘绗竴涓尮閰嶇殑鍏冪礌 + //var firstOrDefault = result[0]; // 鏌ユ壘绗竴涓尮閰嶇殑鍏冪礌 + //return firstOrDefault; + return result; + } + + /// <summary> + /// 鏌ヨ瀹炵洏搴撳瓨淇℃伅 + /// </summary> + private async Task<DtStockInfo> QueryStockInfoForRealTrayCWAsync(List<string> areaCodes, string productionLine) + { + var area = await _areaInfoRepository.QueryFirstAsync(x => x.AreaCode == "CWSC1"); + + var result = await _stockInfoRepository.Db.Queryable<DtStockInfo>() + .Includes(x => x.LocationInfo) // 棰勫姞杞絃ocationInfo + .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) // 杩囨护鏉′欢 .OrderBy(x => x.OutboundTime) // 鎺掑簭 @@ -1220,7 +1268,7 @@ { if (stockInfo.LocationInfo.RoadwayNo == "JZSC1") { - task = CreateTask(stockInfo, "1359-4", taskType); + task = CreateTask(stockInfo, "002-021-001", taskType); } } //var taskId = await BaseDal.AddDataAsync(task); @@ -1275,6 +1323,10 @@ #endregion 鎸囧畾浠诲姟鍑哄簱 + #region 闈欑疆寮傚父鍙e叆搴� + + #endregion + #endregion 澶栭儴鎺ュ彛鏂规硶 #region 鍐呴儴璋冪敤鏂规硶 -- Gitblit v1.9.3