From a49ab91190a1ed6e4870b46dfa283ca61c029b80 Mon Sep 17 00:00:00 2001 From: wxw <Administrator@DESKTOP-5BIMHQ3> Date: 星期五, 01 八月 2025 14:52:10 +0800 Subject: [PATCH] 修改PDA托盘绑定方法 --- Wms/WMS.BLL/DataServer/StockServer.cs | 305 +++++++++++++++++++++----------------------------- 1 files changed, 127 insertions(+), 178 deletions(-) diff --git a/Wms/WMS.BLL/DataServer/StockServer.cs b/Wms/WMS.BLL/DataServer/StockServer.cs index 4574a47..28c62a6 100644 --- a/Wms/WMS.BLL/DataServer/StockServer.cs +++ b/Wms/WMS.BLL/DataServer/StockServer.cs @@ -866,75 +866,37 @@ /// </summary> /// <param name="skuNo">鐗╂枡缂栫爜</param> /// <param name="skuName">鐗╂枡鍚嶇О</param> + /// <param name="InspectStatus">璐ㄦ鐘舵��</param> /// <returns></returns> - public List<MateDataStockDto> GetDataStockListDaoChu(string skuNo, string skuName) + public List<MateDataStockDto> GetDataStockListDaoChu(string skuNo, string skuName, string InspectStatus) { - string str = "select stock.SkuNo,stock.SkuName,stock.Standard,stock.Qty,stock.LockQty,stock.FrozenQty,(mate.Weight * stock.Qty) WeightSum from DataStock stock left join SysMaterials mate on stock.SkuNo = mate.SkuNo Where stock.IsDel = @isdel"; - //鍒ゆ柇鐗╂枡缂栫爜鏄惁涓虹┖ - if (!string.IsNullOrEmpty(skuNo)) - { - str += " and stock.SkuNo like @skuno"; - } - //鍒ゆ柇鐗╂枡鍚嶇О鏄惁涓虹┖ - if (!string.IsNullOrEmpty(skuName)) - { - str += " and stock.SkuName like @skuname"; - } - //鎺掑簭 - str += " order by stock.SkuNo"; - List<MateDataStockDto> StockList = Db.Ado.SqlQuery<MateDataStockDto>(str, new - { - isdel = "0", //鏄惁鍒犻櫎 - skuno = "%" + skuNo + "%", //鐗╂枡缂栫爜 - skuname = "%" + skuName + "%" //鐗╂枡鍚嶇О - }); - - //搴撳瓨鎬婚噺 - List<MateDataStockDto> StockListDto = new List<MateDataStockDto>(); - - foreach (var item in StockList) - { - //鍒ゆ柇搴撳瓨鎬婚噺鏄惁鎷ユ湁鐗╂枡 - if (StockListDto.Count > 0) + // 鑾峰彇鍏ュ簱鍗曟槑缁嗕俊鎭� GetDataStockListDaoChu + var asnList = Db.Queryable<DataStockDetail>() + .Where(m => m.IsDel == "0") + .WhereIF(!string.IsNullOrEmpty(skuNo), a => a.SkuNo.Contains(skuNo)).Distinct() + .WhereIF(!string.IsNullOrEmpty(skuName), a => a.SkuName.Contains(skuName)).Distinct() + .WhereIF(!string.IsNullOrEmpty(InspectStatus), a => a.InspectStatus == InspectStatus) + .Select(a => new MateDataStockDto() { - int i = 0; - //foreach寰幆搴撳瓨鎬婚噺 - foreach (var dto in StockListDto) - { - //鍒ゆ柇鐗╂枡鏄惁鐩稿悓 - if (dto.SkuNo == item.SkuNo) - { - dto.Qty = Convert.ToInt32(dto.Qty) + Convert.ToInt32(item.Qty); - dto.FrozenQty = Convert.ToInt32(dto.FrozenQty) + Convert.ToInt32(item.FrozenQty); - dto.LockQty = Convert.ToInt32(dto.LockQty) + Convert.ToInt32(item.LockQty); - dto.ResidueQty = (Convert.ToInt32(dto.ResidueQty) + Convert.ToInt32(item.ResidueQty)).ToString(); - break; - } - i += 1; - //鍒ゆ柇宸叉湁鐩稿悓鐗╂枡 - if (i == StockListDto.Count) - { - StockListDto.Add(item); - break; - } - } - } - else - { - StockListDto.Add(item); - continue; - } - } - foreach (var item in StockListDto) - { - //鐗╂枡缂栫爜锛屽姞涓婂崟寮曞彿鏄槻姝㈠鍑哄埌excel鑷姩鎶婂墠闈㈢殑0缁欏幓鎺� - if (!string.IsNullOrEmpty(item.SkuNo) && item.SkuNo.Substring(0, 1) == "0") - { - item.SkuNo = $"'{item.SkuNo}"; - } - } + SkuNo = a.SkuNo,//鐗╂枡缂栫爜 + SkuName = a.SkuName,//鐗╂枡鍚嶇О + Standard = a.Standard,//鐗╂枡瑙勬牸 + LotNo = a.LotNo,//鎵规鍙� + OwnerNo = a.OwnerNo,//璐т富缂栧彿 + OwnerName = a.OwnerName,//璐т富鍚嶇О + Status = ((a.Status == "0") ? "寰呭垎閰�" : ((a.Status == "1") ? "閮ㄥ垎鍒嗛厤" : ((a.Status == "2") ? "鐩樼偣閿佸畾" : ((a.Status == "3") ? "绉诲簱閿佸畾" : "寮傚父閿佸畾")))),//搴撳瓨鐘舵�� + InspectStatus = ((a.InspectStatus == "0") ? "寰呰川妫�" : (a.InspectStatus == "1" ? "妫�楠屽悎鏍�" : "涓嶅悎鏍�")),//璐ㄦ鐘舵�� + Qty = SqlFunc.AggregateSum(Convert.ToInt32((a.Qty))),//搴撳瓨鏁伴噺 + LockQty = SqlFunc.AggregateSum(Convert.ToInt32(a.LockQty)),//閿佸畾鏁伴噺 + FrozenQty = SqlFunc.AggregateSum(Convert.ToInt32(a.FrozenQty)),//鍐荤粨鏁伴噺 + InspectQty = SqlFunc.AggregateSum(Convert.ToInt32(a.InspectQty))//鍙娊妫�鏁伴噺 + }) + .Distinct() + .GroupBy(a => new { a.SkuNo, a.SkuName, a.Standard, a.LotNo, a.Status, a.InspectStatus, a.OwnerNo, a.OwnerName, a.Qty, a.LockQty, a.FrozenQty, a.InspectQty }) + .ToList(); - return StockListDto; + Console.WriteLine("缁撴灉锛�" + asnList); + return asnList; } /// <summary> @@ -944,127 +906,114 @@ /// <param name="skuName">鐗╂枡鍚嶇О</param> /// <param name="lotNo">鎵规</param> /// <param name="locatNo">鍌ㄤ綅鍦板潃</param> - /// <param name="palletNo">鎵樼洏鏉$爜</param> /// <param name="status">搴撳瓨鐘舵��</param> /// <param name="inspectStatus">璐ㄦ鐘舵��</param> + /// <param name="ownerNo">璐х墿缂栧彿</param> + /// <param name="ownerName">璐х墿鍚嶇О</param> /// <param name="startTime">寮�濮嬫椂闂�</param> /// <param name="endTime">缁撴潫鏃堕棿</param> /// <returns></returns> - public List<StockDetailDto> GetInventoryList1DaoChu(string skuNo, string skuName, string lotNo, string locatNo, - string palletNo, string status, string inspectStatus, string startTime, string endTime) + public List<StockDetailDto> GetDataStockList1DaoChu(string skuNo, string skuName, string lotNo, string locatNo, string status, string inspectStatus, string ownerNo, string ownerName, string startTime, string endTime) { - string str = "select detail.*,house.WareHouseName as WareHouseName,roadway.RoadwayName as RoadwayName from DataStockDetail detail left join SysStorageRoadway roadway on detail.RoadwayNo = roadway.RoadwayNo left join SysWareHouse house on detail.WareHouseNo = house.WareHouseNo Where detail.IsDel = @isdel"; - //鍒ゆ柇鐗╂枡缂栫爜鏄惁涓虹┖ - if (!string.IsNullOrEmpty(skuNo)) - { - str += " and detail.SkuNo = @skuno"; - } - //鍒ゆ柇鐗╂枡鍚嶇О鏄惁涓虹┖ - if (!string.IsNullOrEmpty(skuName)) - { - str += " and detail.SkuName = @skuname"; - } - //鍒ゆ柇鎵规鏄惁涓虹┖ - if (!string.IsNullOrEmpty(lotNo)) - { - str += " and detail.LotNo = @lotno"; - } - //鍒ゆ柇鍌ㄤ綅鍦板潃鏄惁涓虹┖ - if (!string.IsNullOrEmpty(locatNo)) - { - str += " and detail.LocatNo = @locatno"; - } - //鍒ゆ柇鎵樼洏鏉$爜鏄惁涓虹┖ - if (!string.IsNullOrEmpty(palletNo)) - { - str += " and detail.PalletNo = @palletno"; - } - //鍒ゆ柇搴撳瓨鐘舵�佹槸鍚︿负绌� - if (!string.IsNullOrEmpty(status)) - { - str += " and detail.Status = @status"; - } - //鍒ゆ柇璐ㄦ鐘舵�佹槸鍚︿负绌� - if (!string.IsNullOrEmpty(inspectStatus)) - { - str += " and detail.InspectStatus = @inspectstatus"; - } - if (!string.IsNullOrEmpty(startTime)) - { - str += $" and detail.CompleteTime >= '{startTime}'"; - } - if (!string.IsNullOrEmpty(endTime)) - { - endTime = Convert.ToDateTime(endTime).AddDays(1).ToString(); - str += $" and detail.CompleteTime < '{endTime}'"; - } - //鎺掑簭 - str += " order by detail.SkuNo,detail.PalletNo,detail.LotNo"; - List<StockDetailDto> stockDetailsList = Db.Ado.SqlQuery<StockDetailDto>(str, new - { - isdel = "0", //鏄惁鍒犻櫎 - skuno = skuNo, //鐗╂枡缂栫爜 - skuname = skuName, //鐗╂枡鍚嶇О - lotno = lotNo, //鎵规 - locatno = locatNo, //鍌ㄤ綅鍦板潃 - palletno = palletNo, //鎵樼洏鏉$爜 - status = status, //搴撳瓨鐘舵�� - inspectstatus = inspectStatus //璐ㄦ鐘舵�� - }); - foreach (var item in stockDetailsList) - { - //鍌ㄤ綅鍦板潃锛屽姞涓婂崟寮曞彿鏄槻姝㈠鍑哄埌excel鑷姩鎶婂墠闈㈢殑0缁欏幓鎺� - if (!string.IsNullOrEmpty(item.LocatNo) && item.LocatNo.Substring(0, 1) == "0") + // 鑾峰彇鏄庣粏淇℃伅 + var asnList = Db.Queryable<DataStockDetail, DataStock> + ((tb1, tb2) => new JoinQueryInfos( + JoinType.Left, tb1.Id == tb2.Id + )) + .Where((tb1, tb2) => tb1.IsDel == "0" && tb2.IsDel == "0") + .WhereIF(!string.IsNullOrWhiteSpace(startTime), tb1 => tb1.CreateTime >= Convert.ToDateTime(startTime)) + .WhereIF(!string.IsNullOrWhiteSpace(endTime), tb1 => tb1.CreateTime <= Convert.ToDateTime(endTime).AddDays(1)) + .WhereIF(!string.IsNullOrEmpty(skuNo), (tb1, tb2) => tb2.SkuNo.Contains(skuNo)) + .WhereIF(!string.IsNullOrEmpty(skuName), (tb1, tb2) => tb2.SkuName.Contains(skuName)) + .WhereIF(!string.IsNullOrEmpty(ownerNo), (tb1, tb2) => tb2.OwnerNo.Contains(ownerNo)) + .WhereIF(!string.IsNullOrEmpty(ownerName), (tb1, tb2) => tb2.OwnerName.Contains(ownerName)) + .WhereIF(!string.IsNullOrEmpty(lotNo), (tb1, tb2) => tb2.LotNo.Contains(lotNo)) + .WhereIF(!string.IsNullOrEmpty(status), (tb1, tb2) => tb1.Status.Contains(status)) + .WhereIF(!string.IsNullOrEmpty(inspectStatus), (tb1, tb2) => tb1.InspectStatus.Contains(inspectStatus)) + //.GroupBy((tb1,tb2) => new { tb2.LotNo, tb2.SkuNo, tb2.SkuName }) + .Select((tb1, tb2) => new StockDetailDto() { - item.LocatNo = $"'{item.LocatNo}"; - } - //鐗╂枡缂栫爜 - if (!string.IsNullOrEmpty(item.SkuNo) && item.SkuNo.Substring(0, 1) == "0") - { - item.SkuNo = $"'{item.SkuNo}"; - } - //搴撳瓨鐘舵�� - switch (item.Status) - { - case "0": - item.Status = "寰呭垎閰�"; - break; - case "1": - item.Status = "閮ㄥ垎鍒嗛厤"; - break; - case "2": - item.Status = "宸插垎閰�"; - break; - case "3": - item.Status = "鐩樼偣閿佸畾"; - break; - case "4": - item.Status = "绉诲簱閿佸畾"; - break; - default: - break; - } - //璐ㄦ鐘舵�� - switch (item.InspectStatus) - { - case "0": - item.InspectStatus = "寰呮楠�"; - break; - case "1": - item.InspectStatus = "妫�楠屽悎鏍�"; - break; - case "2": - item.InspectStatus = "涓嶅悎鏍�"; - break; - case "4": - item.InspectStatus = "鏀剧疆鏈�"; - break; - default: - break; - } + Status = tb1.Status, + InspectStatus = tb1.InspectStatus, + LotNo = tb1.LotNo, + SkuNo = tb2.SkuNo, + SkuName = tb2.SkuName, + OwnerNo = tb2.OwnerNo, + OwnerName = tb2.OwnerName, + CompleteTime = tb2.CreateTime, + }); - } - return stockDetailsList; + // 鑾峰彇鍑哄簱鍗曟槑缁嗕俊鎭� + var soList = Db.Queryable<DataStockDetail, DataStock> + (((tb1, tb2) => new JoinQueryInfos( + JoinType.Left, tb1.Id == tb2.Id + ))) + .Where((tb1, tb2) => tb1.IsDel == "0" && tb2.IsDel == "0") + .WhereIF(!string.IsNullOrWhiteSpace(startTime), tb1 => tb1.CreateTime >= Convert.ToDateTime(startTime)) + .WhereIF(!string.IsNullOrWhiteSpace(endTime), tb1 => tb1.CreateTime <= Convert.ToDateTime(endTime).AddDays(1)) + .WhereIF(!string.IsNullOrEmpty(skuNo), (tb1, tb2) => tb2.SkuNo.Contains(skuNo)) + .WhereIF(!string.IsNullOrEmpty(skuName), (tb1, tb2) => tb2.SkuName.Contains(skuName)) + .WhereIF(!string.IsNullOrEmpty(ownerNo), (tb1, tb2) => tb2.OwnerNo.Contains(ownerNo)) + .WhereIF(!string.IsNullOrEmpty(ownerName), (tb1, tb2) => tb2.OwnerName.Contains(ownerName)) + .WhereIF(!string.IsNullOrEmpty(lotNo), (tb1, tb2) => tb2.LotNo.Contains(lotNo)) + .WhereIF(!string.IsNullOrEmpty(status), (tb1, tb2) => tb1.Status.Contains(status)) + .WhereIF(!string.IsNullOrEmpty(inspectStatus), (tb1, tb2) => tb1.InspectStatus.Contains(inspectStatus)) + //.GroupBy(a => new { a.LotNo, a.SkuNo, a.SkuName }) + .Select((tb1, tb2) => new StockDetailDto() + { + Status = tb1.Status, + InspectStatus = tb1.InspectStatus, + LotNo = tb1.LotNo, + SkuNo = tb2.SkuNo, + SkuName = tb2.SkuName, + OwnerNo = tb2.OwnerNo, + OwnerName = tb2.OwnerName, + CompleteTime = tb2.CreateTime, + }); + + // 鑾峰彇鍙栨牱鎷h揣淇℃伅 + var samplingList = Db.Queryable<DataStockDetail, DataStock> + (((tb1, tb2) => new JoinQueryInfos( + JoinType.Left, tb1.Id == tb2.Id + ))) + .Where((tb1, tb2) => tb1.IsDel == "0" && tb2.IsDel == "0") + .WhereIF(!string.IsNullOrWhiteSpace(startTime), tb1 => tb1.CreateTime >= Convert.ToDateTime(startTime)) + .WhereIF(!string.IsNullOrWhiteSpace(endTime), tb1 => tb1.CreateTime <= Convert.ToDateTime(endTime).AddDays(1)) + .WhereIF(!string.IsNullOrEmpty(skuNo), (tb1, tb2) => tb2.SkuNo.Contains(skuNo)) + .WhereIF(!string.IsNullOrEmpty(skuName), (tb1, tb2) => tb2.SkuName.Contains(skuName)) + .WhereIF(!string.IsNullOrEmpty(ownerNo), (tb1, tb2) => tb2.OwnerNo.Contains(ownerNo)) + .WhereIF(!string.IsNullOrEmpty(ownerName), (tb1, tb2) => tb2.OwnerName.Contains(ownerName)) + .WhereIF(!string.IsNullOrEmpty(lotNo), (tb1, tb2) => tb2.LotNo.Contains(lotNo)) + .WhereIF(!string.IsNullOrEmpty(status), (tb1, tb2) => tb1.Status.Contains(status)) + .WhereIF(!string.IsNullOrEmpty(inspectStatus), (tb1, tb2) => tb1.InspectStatus.Contains(inspectStatus)) + //.GroupBy(a => new { a.LotNo, a.SkuNo, a.SkuName }) + .Select((tb1, tb2) => new StockDetailDto() + { + Status = tb1.Status, + InspectStatus = tb1.InspectStatus, + LotNo = tb1.LotNo, + SkuNo = tb2.SkuNo, + SkuName = tb2.SkuName, + OwnerNo = tb2.OwnerNo, + OwnerName = tb2.OwnerName, + CompleteTime = tb2.CreateTime, + }); + + // 鍚堝苟闆嗗悎 + var dataList = Db.UnionAll(asnList, soList, samplingList) + .Select(a => new StockDetailDto() + { + Status = a.Status, + InspectStatus = a.InspectStatus, + LotNo = a.LotNo, + SkuNo = a.SkuNo, + SkuName = a.SkuName, + OwnerNo = a.OwnerNo, + OwnerName = a.OwnerName, + CompleteTime = a.CompleteTime, + }).ToList(); + + return dataList; } #endregion } -- Gitblit v1.8.0