From 95c92db3c831c73b05068b09221c13ad4a250322 Mon Sep 17 00:00:00 2001
From: 647556386 <647556386@qq.com>
Date: 星期一, 02 二月 2026 20:07:00 +0800
Subject: [PATCH] 条码扫描成功音频播放功能,代码优化
---
项目代码/WMS无仓储版/WIDESEA_WMSServer/WIDESEA_StockService/StockDetailByMaterielService.cs | 118 ++++++++++++++++++++++++++++++----------------------------
1 files changed, 61 insertions(+), 57 deletions(-)
diff --git "a/\351\241\271\347\233\256\344\273\243\347\240\201/WMS\346\227\240\344\273\223\345\202\250\347\211\210/WIDESEA_WMSServer/WIDESEA_StockService/StockDetailByMaterielService.cs" "b/\351\241\271\347\233\256\344\273\243\347\240\201/WMS\346\227\240\344\273\223\345\202\250\347\211\210/WIDESEA_WMSServer/WIDESEA_StockService/StockDetailByMaterielService.cs"
index e7308e9..7ca9282 100644
--- "a/\351\241\271\347\233\256\344\273\243\347\240\201/WMS\346\227\240\344\273\223\345\202\250\347\211\210/WIDESEA_WMSServer/WIDESEA_StockService/StockDetailByMaterielService.cs"
+++ "b/\351\241\271\347\233\256\344\273\243\347\240\201/WMS\346\227\240\344\273\223\345\202\250\347\211\210/WIDESEA_WMSServer/WIDESEA_StockService/StockDetailByMaterielService.cs"
@@ -30,11 +30,11 @@
{
try
{
-
List<StockDetailByMateriel> materielnfoStatistics = new List<StockDetailByMateriel>();
ISugarQueryable<Dt_StockInfoDetail> sugarQueryable1 = _dbBase.Queryable<Dt_StockInfoDetail>();
-
ISugarQueryable<Dt_StockInfo> sugarQueryable = _dbBase.Queryable<Dt_StockInfo>();
+ ISugarQueryable<Dt_MaterielInfo> sugarQueryable3 = _dbBase.Queryable<Dt_MaterielInfo>();
+
if (!string.IsNullOrEmpty(options.Wheres))
{
try
@@ -42,78 +42,80 @@
List<SearchParameters> searchParametersList = options.Wheres.DeserializeObject<List<SearchParameters>>();
if (searchParametersList.Count > 0)
{
+
+ SearchParameters? searchParameters = searchParametersList.FirstOrDefault(x => x.Name == nameof(Dt_StockInfoDetail.MaterielCode).FirstLetterToLower());
+ if (searchParameters != null)
{
- SearchParameters? searchParameters = searchParametersList.FirstOrDefault(x => x.Name == nameof(Dt_StockInfoDetail.MaterielCode).FirstLetterToLower());
- if (searchParameters != null)
- {
- sugarQueryable1 = sugarQueryable1.Where(x => x.MaterielCode.Contains(searchParameters.Value));
- }
+ sugarQueryable1 = sugarQueryable1.Where(x => x.MaterielCode.Contains(searchParameters.Value));
}
+
+ searchParameters = searchParametersList.FirstOrDefault(x => x.Name == nameof(Dt_StockInfoDetail.WarehouseCode).FirstLetterToLower());
+ if (searchParameters != null)
{
- SearchParameters? searchParameters = searchParametersList.FirstOrDefault(x => x.Name == nameof(Dt_StockInfo.WarehouseId).FirstLetterToLower());
- if (searchParameters != null)
- {
- sugarQueryable = sugarQueryable.Where(x => x.WarehouseId.Equals(searchParameters.Value));
- }
+ sugarQueryable1 = sugarQueryable1.Where(x => x.WarehouseCode.Contains(searchParameters.Value));
}
+
+ searchParameters = searchParametersList.FirstOrDefault(x => x.Name == nameof(Dt_StockInfoDetail.MaterielName).FirstLetterToLower());
+ if (searchParameters != null)
{
- SearchParameters? searchParameters = searchParametersList.FirstOrDefault(x => x.Name == nameof(Dt_StockInfo.StockStatus).FirstLetterToLower());
- if (searchParameters != null)
- {
- sugarQueryable = sugarQueryable.Where(x => x.StockStatus.Equals(searchParameters.Value));
- }
+
+ sugarQueryable1 = sugarQueryable1.Where(x => x.MaterielName.Contains(searchParameters.Value));
}
+
+ searchParameters = searchParametersList.FirstOrDefault(x => x.Name == nameof(Dt_StockInfoDetail.BatchNo).FirstLetterToLower());
+ if (searchParameters != null)
{
- SearchParameters? searchParameters = searchParametersList.FirstOrDefault(x => x.Name == nameof(Dt_StockInfoDetail.MaterielName).FirstLetterToLower());
- if (searchParameters != null)
- {
- sugarQueryable1 = sugarQueryable1.Where(x => x.MaterielName.Contains(searchParameters.Value));
- }
+ sugarQueryable1 = sugarQueryable1.Where(x => x.BatchNo.Contains(searchParameters.Value));
+ }
+
+ searchParameters = searchParametersList.FirstOrDefault(x => x.Name == nameof(Dt_StockInfoDetail.SupplyCode).FirstLetterToLower());
+ if (searchParameters != null)
+ {
+ sugarQueryable1 = sugarQueryable1.Where(x => x.SupplyCode.Contains(searchParameters.Value));
}
}
-
}
catch (Exception ex)
{
-
+
}
}
-
- ISugarQueryable<StockDetailByMateriel> sugarQueryable2 = sugarQueryable1.InnerJoin(sugarQueryable, (b, a) => b.StockId == a.Id).Where((b, a) => a.LocationCode != "" && a.LocationCode != null).Select((b, a)
- => new StockDetailByMateriel
+ ISugarQueryable<StockDetailByMateriel> sugarQueryable2 = sugarQueryable1
+ .InnerJoin(sugarQueryable, (detail, stock) => detail.StockId == stock.Id)
+ .LeftJoin(sugarQueryable3, (detail, stock, materiel) => detail.MaterielCode == materiel.MaterielCode)
+ .Where((detail, stock, materiel) => !string.IsNullOrEmpty(stock.LocationCode))
+ .Select((detail, stock, materiel) => new StockDetailByMateriel
{
- StockId = b.StockId,
- MaterielCode = b.MaterielCode,
- MaterielName = b.MaterielName,
- StockQuantity = (decimal)b.StockQuantity,
- OutboundQuantity = (decimal)b.OutboundQuantity,
- OrderNo = b.OrderNo,
- BatchNo = b.BatchNo,
- SerialNumber = b.SerialNumber,
- SupplyCode = b.SupplyCode,
- WarehouseCode = b.WarehouseCode,
- Barcode = b.Barcode,
- Unit = b.Unit,
- Creater = b.Creater,
- CreateDate= b.CreateDate,
- Modifier = b.Modifier,
- ModifyDate = b.ModifyDate,
- Remark = a.Remark,
-
+ StockId = detail.StockId,
+ MaterielCode = detail.MaterielCode,
+ MaterielName = materiel.MaterielName ==null ?detail.MaterielName:materiel.MaterielName,
+ StockQuantity = (decimal)detail.StockQuantity,
+ OutboundQuantity = (decimal)detail.OutboundQuantity,
+ OrderNo = detail.OrderNo,
+ BatchNo = detail.BatchNo,
+ SerialNumber = detail.SerialNumber,
+ SupplyCode = detail.SupplyCode,
+ WarehouseCode = detail.WarehouseCode,
+ Barcode = detail.Barcode,
+ Unit = detail.Unit,
+ Creater = detail.Creater,
+ CreateDate = detail.CreateDate,
+ Modifier = detail.Modifier,
+ ModifyDate = detail.ModifyDate,
+ Remark = stock.Remark
});
- // 鑾峰彇鎵�鏈夋暟鎹�
+
+
var allData = sugarQueryable2.ToList();
- // 浣跨敤瀛楀吀杩涜鍒嗙粍姹囨��
+
var groupedData = new Dictionary<string, StockDetailByMateriel>();
foreach (var item in allData)
{
-
string groupKey = $"{item.MaterielCode}|{item.SupplyCode}|{item.BatchNo}|{item.WarehouseCode}";
- // 纭繚鍒濆鍊间负decimal绫诲瀷
if (groupedData.ContainsKey(groupKey))
{
groupedData[groupKey].StockQuantity += Convert.ToDecimal(item.StockQuantity);
@@ -144,24 +146,26 @@
}
}
- // 杞崲涓哄垪琛�
+
materielnfoStatistics = groupedData.Values.ToList();
-
- // 鍒嗛〉澶勭悊
int startIndex = (options.Page - 1) * options.Rows;
int endIndex = Math.Min(startIndex + options.Rows, materielnfoStatistics.Count);
- materielnfoStatistics = materielnfoStatistics.GetRange(startIndex, endIndex - startIndex);
+ if (startIndex < materielnfoStatistics.Count)
+ {
+ materielnfoStatistics = materielnfoStatistics.GetRange(startIndex, endIndex - startIndex);
+ }
+ else
+ {
+ materielnfoStatistics = new List<StockDetailByMateriel>();
+ }
int count = groupedData.Count;
-
return new PageGridData<StockDetailByMateriel>(count, materielnfoStatistics);
-
}
catch (Exception ex)
{
-
+ return new PageGridData<StockDetailByMateriel>();
}
- return new PageGridData<StockDetailByMateriel>();
}
}
}
--
Gitblit v1.9.3