From c5dc821692c0529e3a688af84c647bf80cc49360 Mon Sep 17 00:00:00 2001 From: test <15284381150@163.com> Date: 星期日, 21 九月 2025 10:49:40 +0800 Subject: [PATCH] Merge branch 'master' into djp --- Wms/WMS.BLL/BllPdaServer/PdaCrServer.cs | 195 +++++++++++++++++++++++++++++++++--------------- 1 files changed, 135 insertions(+), 60 deletions(-) diff --git a/Wms/WMS.BLL/BllPdaServer/PdaCrServer.cs b/Wms/WMS.BLL/BllPdaServer/PdaCrServer.cs index 5ce43ae..57dbec8 100644 --- a/Wms/WMS.BLL/BllPdaServer/PdaCrServer.cs +++ b/Wms/WMS.BLL/BllPdaServer/PdaCrServer.cs @@ -429,60 +429,105 @@ //} public async Task<List<StockDetailWithQtyDto>> GetStockQueryList(string locatNo, string palletNo, string boxNo) { - return await Db.Queryable<DataStockDetail>("a") - .InnerJoin<DataBoxInfo>((a, b) => a.LotNo == b.LotNo) - .Where((a, b) => a.IsDel == "0") - .WhereIF(!string.IsNullOrWhiteSpace(locatNo), (a, b) => a.LocatNo.Contains(locatNo)) - .WhereIF(!string.IsNullOrWhiteSpace(palletNo), (a, b) => a.PalletNo.Contains(palletNo)) - .WhereIF(!string.IsNullOrWhiteSpace(boxNo), (a, b) => b.BoxNo.Contains(boxNo)) - .OrderBy((a, b) => new { a.LotNo, a.LocatNo, a.PalletNo }) - .Select((a, b) => new StockDetailWithQtyDto - { - LotNo = a.LotNo, - LotText = a.LotText, - SupplierLot = a.SupplierLot, - OwnerNo = a.OwnerNo, - OwnerName = a.OwnerName, - SupplierNo = a.SupplierNo, - SupplierName = a.SupplierName, - SkuNo = a.SkuNo, - SkuName = a.SkuName, - Standard = a.Standard, - Qty = b.Qty, // DataBoxInfo鐨凲ty瀛楁 - LockQty = a.LockQty, - FrozenQty = a.FrozenQty, - InspectQty = a.InspectQty, - ASNNo = a.ASNNo, - ASNDetailNo = a.ASNDetailNo, - SONo = a.SONo, - WareHouseNo = a.WareHouseNo, - RoadwayNo = a.RoadwayNo, - AreaNo = a.AreaNo, - LocatNo = a.LocatNo, - PalletNo = a.PalletNo, - PalletNo2 = a.PalletNo2, - PalletNo3 = a.PalletNo3, - PalletTags = a.PalletTags, - CompleteTime = a.CompleteTime, - ProductionTime = a.ProductionTime, - ExpirationTime = a.ExpirationTime, - Status = a.Status, - InspectMark = a.InspectMark, - BitPalletMark = a.BitPalletMark, - InspectStatus = a.InspectStatus, - InspectTime = a.InspectTime, - PackagNo = a.PackagNo, - IsBale = a.IsBale, - IsBelt = a.IsBelt, - UDF5 = a.UDF5, - IsDel = a.IsDel, - CreateTime = a.CreateTime, - CreateUser = a.CreateUser, - UpdateTime = a.UpdateTime, - UpdateUser = a.UpdateUser, - Demo = a.Demo - }) - .ToListAsync(); + return await Db.Queryable<DataStockDetail>("a") + .InnerJoin<DataBoxInfo>((a, b) => a.LotNo == b.LotNo) + .Where((a, b) => a.IsDel == "0") + .WhereIF(!string.IsNullOrWhiteSpace(locatNo), (a, b) => a.LocatNo.Contains(locatNo)) + .WhereIF(!string.IsNullOrWhiteSpace(palletNo), (a, b) => a.PalletNo.Contains(palletNo)) + .WhereIF(!string.IsNullOrWhiteSpace(boxNo), (a, b) => b.BoxNo.Contains(boxNo)) + .GroupBy((a, b) => new + { + a.LotNo, + a.LotText, + a.SupplierLot, + a.OwnerNo, + a.OwnerName, + a.SupplierNo, + a.SupplierName, + a.SkuNo, + a.SkuName, + a.Standard, + a.LockQty, + a.FrozenQty, + a.InspectQty, + a.ASNNo, + a.ASNDetailNo, + a.SONo, + a.WareHouseNo, + a.RoadwayNo, + a.AreaNo, + a.LocatNo, + a.PalletNo, + a.PalletNo2, + a.PalletNo3, + a.PalletTags, + a.CompleteTime, + a.ProductionTime, + a.ExpirationTime, + a.Status, + a.InspectMark, + a.BitPalletMark, + a.InspectStatus, + a.InspectTime, + a.PackagNo, + a.IsBale, + a.IsBelt, + a.UDF5, + a.IsDel, + a.CreateTime, + a.CreateUser, + a.UpdateTime, + a.UpdateUser, + a.Demo + }) + .OrderBy((a, b) => new { a.LotNo, a.LocatNo, a.PalletNo }) + .Select((a, b) => new StockDetailWithQtyDto + { + LotNo = a.LotNo, + LotText = a.LotText, + SupplierLot = a.SupplierLot, + OwnerNo = a.OwnerNo, + OwnerName = a.OwnerName, + SupplierNo = a.SupplierNo, + SupplierName = a.SupplierName, + SkuNo = a.SkuNo, + SkuName = a.SkuName, + Standard = a.Standard, + Qty = SqlFunc.AggregateSum(b.Qty), // DataBoxInfo鐨凲ty瀛楁 + LockQty = a.LockQty, + FrozenQty = a.FrozenQty, + InspectQty = a.InspectQty, + ASNNo = a.ASNNo, + ASNDetailNo = a.ASNDetailNo, + SONo = a.SONo, + WareHouseNo = a.WareHouseNo, + RoadwayNo = a.RoadwayNo, + AreaNo = a.AreaNo, + LocatNo = a.LocatNo, + PalletNo = a.PalletNo, + PalletNo2 = a.PalletNo2, + PalletNo3 = a.PalletNo3, + PalletTags = a.PalletTags, + CompleteTime = a.CompleteTime, + ProductionTime = a.ProductionTime, + ExpirationTime = a.ExpirationTime, + Status = a.Status, + InspectMark = a.InspectMark, + BitPalletMark = a.BitPalletMark, + InspectStatus = a.InspectStatus, + InspectTime = a.InspectTime, + PackagNo = a.PackagNo, + IsBale = a.IsBale, + IsBelt = a.IsBelt, + UDF5 = a.UDF5, + IsDel = a.IsDel, + CreateTime = a.CreateTime, + CreateUser = a.CreateUser, + UpdateTime = a.UpdateTime, + UpdateUser = a.UpdateUser, + Demo = a.Demo + }) + .ToListAsync(); } #endregion @@ -791,7 +836,7 @@ if (models.WareHouseNo == "W02") { - storageArea = await Db.Queryable<SysStorageArea>().Where(w => w.IsDel == "0" && w.Status == "0" && w.AreaNo != storageLocat.AreaNo && w.WareHouseNo == "W04" && (w.AreaNo == "B01" || w.AreaNo == "B02")).OrderBy(o => o.AreaNo).ToListAsync(); + storageArea = await Db.Queryable<SysStorageArea>().Where(w => w.IsDel == "0" && w.Status == "0" && w.AreaNo != storageLocat.AreaNo && w.WareHouseNo == "W04" && (w.AreaNo == "B01" || w.AreaNo == "B02" || w.AreaNo == "B05")).OrderBy(o => o.AreaNo).ToListAsync(); } else { @@ -800,6 +845,29 @@ } return storageArea; + } + /// <summary> + /// 鏍规嵁鍖哄煙鍙疯幏鍙栧偍浣嶅湴鍧�闆嗗悎 + /// </summary> + /// <param name="areaNo"></param> + /// <returns></returns> + /// <exception cref="Exception"></exception> + public List<string> GetLocatByArea(string areaNo) + { + try + { + if (string.IsNullOrEmpty(areaNo)) + { + throw new Exception("璇烽�夋嫨鍖哄煙"); + } + var _list = Db.Queryable<SysStorageLocat>().Where(w => w.IsDel == "0" && w.AreaNo == areaNo && w.WareHouseNo == "W04").Select(s => s.LocatNo).ToList(); + + return _list; + } + catch (Exception ex) + { + throw new Exception(ex.Message); + } } /// <summary> /// 鑾峰彇宸插垎閰嶇殑鍑哄簱鍗曟嵁 @@ -1011,7 +1079,7 @@ } }*/ - public async Task AgvTransport(string palletNo, string areaNo, string ruku, string url, int userId) + public async Task AgvTransport(string palletNo, string areaNo,string locatNoEnd, string ruku, string url, int userId) { try { @@ -1046,7 +1114,14 @@ { throw Oops.Bah("鎵�閫夊尯鍩熶俊鎭笉瀛樺湪,璇锋鏌�!"); } - EndLocat = await GetLocat(areaNo); + if (!string.IsNullOrEmpty(locatNoEnd)) + { + EndLocat = locatNoEnd;//鎸囧畾鍌ㄤ綅鍦板潃 + } + else + { + EndLocat = await GetLocat(areaNo);//绯荤粺鍒嗛厤鍌ㄤ綅鍦板潃 + } } else { @@ -1061,9 +1136,9 @@ { throw Oops.Bah("鎵樼洏鍌ㄤ綅淇℃伅涓嶅瓨鍦�,璇锋鏌�!"); } - if (stockDetail.WareHouseNo != "W04") + if (stockDetail.WareHouseNo != "W04" && stockDetail.WareHouseNo != "W02") { - throw Oops.Bah("璇ユ墭鐩樻湭鍦ㄥ钩搴撳唴,璇锋鏌�!"); + throw Oops.Bah("璇ユ墭鐩樻湭鍦ㄥ钩搴撴垨璐ф灦搴撳唴,璇锋鏌�!"); } //璧峰鍌ㄤ綅淇℃伅 @@ -1075,7 +1150,7 @@ //鐩爣鍌ㄤ綅淇℃伅 //var storageLocatEnd = new SysStorageLocat(); - var storageLocatEnd = await Db.Queryable<SysStorageLocat>().FirstAsync(w => w.IsDel == "0" && w.LocatNo == EndLocat && w.Flag == "0"); + var storageLocatEnd = await Db.Queryable<SysStorageLocat>().FirstAsync(w => w.IsDel == "0" && w.LocatNo == EndLocat && w.Flag == "0" && w.WareHouseNo == "W04" && w.AreaNo == areaNo); if (storageLocatEnd == null) { throw Oops.Bah("鐩爣鍌ㄤ綅淇℃伅涓嶅瓨鍦�,璇锋鏌�!"); -- Gitblit v1.8.0