From 367979de838ec3655d37dc618d98924c6b43b324 Mon Sep 17 00:00:00 2001
From: tjx <t2856754968@163.com>
Date: 星期三, 24 十二月 2025 09:46:05 +0800
Subject: [PATCH] 111
---
StandardPda/MES.Service/service/Warehouse/MesInvItemStocksManager.cs | 142 +++++++++--------------------------------------
1 files changed, 28 insertions(+), 114 deletions(-)
diff --git a/StandardPda/MES.Service/service/Warehouse/MesInvItemStocksManager.cs b/StandardPda/MES.Service/service/Warehouse/MesInvItemStocksManager.cs
index ab4db63..b14bd2d 100644
--- a/StandardPda/MES.Service/service/Warehouse/MesInvItemStocksManager.cs
+++ b/StandardPda/MES.Service/service/Warehouse/MesInvItemStocksManager.cs
@@ -204,6 +204,7 @@
.Select((stock, item, depot, org, unit) => new
{
stock.IqcStatus,
+ stock.Visible,
DepotCode = stock.DepotsCode,
depot.DepotName,
stock.DepotSectionsCode,
@@ -242,9 +243,15 @@
stockStatus = rackingTask?.Code == "200" ? "宸插湪绔嬪簱涓�" : "杩涘叆绔嬪簱鐨勮矾涓�";
}
+ // 鍐荤粨鏍囪瘑锛歏isible涓�1琛ㄧず宸插喕缁�
+ var frozenValue = x.Visible == 1 ? "1" : "0";
+ // 鑹搧鐘舵�侊細鏍规嵁IqcStatus鍒ゆ柇锛堢嫭绔嬩簬鍐荤粨鏍囪瘑锛�
+ var iqcStatusValue = x.IqcStatus == "鐗归噰鐩存帴浣跨敤" || x.IqcStatus == "宸叉" || x.IqcStatus == "鍏嶆" ? "1" : "0";
+
return new
{
- IqcStatus = x.IqcStatus == "宸叉" ? "1" : "0",
+ IqcStatus = iqcStatusValue,
+ Frozen = frozenValue,
ItemType = x.DepotName == "鍘熸潗鏂欎粨" ? "0" : "1",
StackCode = rackingTask?.PalletCode,
x.DepotCode,
@@ -284,6 +291,7 @@
.GroupBy(x => new
{
x.IqcStatus,
+ x.Frozen,
x.ItemType,
x.StackCode,
x.DepotCode,
@@ -302,6 +310,7 @@
.Select(g => new ReturnableStockDto
{
IqcStatus = g.Key.IqcStatus,
+ Frozen = g.Key.Frozen,
ItemType = g.Key.ItemType,
StackCode = g.Key.StackCode,
DepotCode = g.Key.DepotCode,
@@ -346,104 +355,7 @@
}
};
}
-
- /// <summary>
- /// 鏌ヨ鍙互閫�璐х殑鐗╂枡(鏃х増鏈�,淇濈暀鍏煎)
- /// </summary>
- /// <returns>鍙��璐х墿鏂欏簱瀛樺垪琛�</returns>
- public List<ReturnableStockDto> GetReturnableStocks()
- {
- // 浼樺寲鐐�1: 浣跨敤鍘熺敓SQL鍦ㄦ暟鎹簱绔畬鎴愬幓閲嶅拰鎺掑簭锛岄伩鍏嶅叏琛ㄥ姞杞藉埌鍐呭瓨
- // Oracle 11g浣跨敤ROW_NUMBER()绐楀彛鍑芥暟鑾峰彇姣忎釜鏉$爜鐨勬渶鏂拌褰�
- var rackingTaskSql = @"
- SELECT ITEM_BARCODE AS ItemBarcode, PALLETCODE AS PalletCode, CODE AS Code
- FROM (
- SELECT ITEM_BARCODE, PALLETCODE, CODE,
- ROW_NUMBER() OVER (PARTITION BY ITEM_BARCODE ORDER BY ID DESC) AS RN
- FROM XB_RACKING_TASK_SYXT_LOG
- WHERE ITEM_BARCODE IS NOT NULL AND (CODE IS NULL OR CODE != '500')
- ) WHERE RN = 1";
-
- var rackingTaskData = Db.Ado.SqlQuery<RackingTaskDto>(rackingTaskSql);
-
- if (rackingTaskData == null || !rackingTaskData.Any())
- {
- return new List<ReturnableStockDto>();
- }
-
- // 浼樺寲鐐�2: 杩囨护null鍊煎苟浣跨敤瀛楀吀鎻愰珮鏉$爜鍖归厤鏁堢巼锛屼粠O(n)闄嶄綆鍒癘(1)
- var validRackingData = rackingTaskData.Where(x => !string.IsNullOrEmpty(x.ItemBarcode)).ToList();
- var rackingTaskDict = validRackingData.ToDictionary(x => x.ItemBarcode);
- var distinctBarcodes = validRackingData.Select(x => x.ItemBarcode).ToList();
-
- // 浼樺寲鐐�3: 鍦ㄦ暟鎹簱灞傞潰瀹屾垚鍏宠仈鏌ヨ锛屼竴娆℃�ц幏鍙栨墍鏈夐渶瑕佺殑鏁版嵁
- var queryResult = Db.Queryable<MesInvItemStocks>()
- .LeftJoin<MesItems>((stock, item) => stock.ItemId == item.Id)
- .LeftJoin<MesDepots>((stock, item, depot) =>
- stock.DepotsCode == depot.DepotCode)
- .LeftJoin<Organize>((stock, item, depot, org) =>
- item.UseOrg == org.Id.ToString())
- .LeftJoin<MesUnit>((stock, item, depot, org, unit) =>
- item.ItemUnit == unit.Id.ToString())
- .Where((stock, item, depot, org, unit) =>
- distinctBarcodes.Contains(stock.ItemBarcode) &&
- stock.Quantity > 0)
- .Select((stock, item, depot, org, unit) => new
- {
- stock.IqcStatus,
- stock.StackCode,
- DepotCode = stock.DepotsCode,
- depot.DepotName,
- stock.DepotSectionsCode,
- item.ItemNo,
- item.ItemName,
- item.ItemModel,
- stock.Quantity,
- item.ItemUnit,
- ItemUnitName = unit.Fname,
- stock.IndepDate,
- OrgCode = org.Fnumber,
- OrgName = org.Fname,
- stock.ItemBarcode
- })
- .ToList();
-
- // 浼樺寲鐐�4: 浣跨敤瀛楀吀鏌ユ壘鏇夸唬Where().FirstOrDefault()锛屾彁楂樺尮閰嶆�ц兘
- var result = queryResult.Select(x =>
- {
- rackingTaskDict.TryGetValue(x.ItemBarcode, out var rackingTask);
-
- string stockStatus = "0";
- if (rackingTask?.Code != null)
- {
- stockStatus = rackingTask.Code == "200" ? "1" : "2";
- }
-
- return new ReturnableStockDto
- {
- IqcStatus = x.IqcStatus == "宸叉" ? "1" : "0",
- ItemType = x.DepotName == "鍘熸潗鏂欎粨" ? "0" : "1",
- StackCode = x.StackCode,
- DepotCode = x.DepotCode,
- DepotName = x.DepotName,
- DepotSectionsCode = x.DepotSectionsCode,
- ItemNo = x.ItemNo,
- ItemName = x.ItemName,
- ItemModel = x.ItemModel,
- Quantity = x.Quantity,
- ItemUnit = x.ItemUnit,
- ItemUnitName = x.ItemUnitName,
- IndepDate = x.IndepDate,
- OrgCode = x.OrgCode,
- OrgName = x.OrgName,
- ItemBarcode = x.ItemBarcode,
- StockStatus = stockStatus
- };
- }).ToList();
-
- return result;
- }
-
+
private class RackingTaskDto
{
public string ItemBarcode { get; set; }
@@ -722,6 +634,7 @@
var headers = new[]
{
"鑹搧鐘舵��",
+ "鍐荤粨鏍囪瘑",
"鏄惁鎴愬搧",
"姣嶆墭鐩樼紪鍙�",
"浠撳簱缂栫爜",
@@ -758,22 +671,23 @@
{
worksheet.Cells[row, 1].Value =
item.IqcStatus == "1" ? "鑹搧" : "涓嶈壇鍝�";
- worksheet.Cells[row, 2].Value = item.ItemType == "1" ? "鎴愬搧" : "闈炴垚鍝�";
- worksheet.Cells[row, 3].Value = item.StackCode;
- worksheet.Cells[row, 4].Value = item.DepotCode;
- worksheet.Cells[row, 5].Value = item.DepotName;
- worksheet.Cells[row, 6].Value = item.DepotSectionsCode;
- worksheet.Cells[row, 7].Value = item.ItemNo;
- worksheet.Cells[row, 8].Value = item.ItemName;
- worksheet.Cells[row, 9].Value = item.ItemModel;
- worksheet.Cells[row, 10].Value = item.Quantity;
- worksheet.Cells[row, 11].Value = item.ItemUnitName;
- worksheet.Cells[row, 12].Value =
+ worksheet.Cells[row, 2].Value = item.Frozen == "1" ? "宸插喕缁�" : "鏈喕缁�";
+ worksheet.Cells[row, 3].Value = item.ItemType == "1" ? "鎴愬搧" : "闈炴垚鍝�";
+ worksheet.Cells[row, 4].Value = item.StackCode;
+ worksheet.Cells[row, 5].Value = item.DepotCode;
+ worksheet.Cells[row, 6].Value = item.DepotName;
+ worksheet.Cells[row, 7].Value = item.DepotSectionsCode;
+ worksheet.Cells[row, 8].Value = item.ItemNo;
+ worksheet.Cells[row, 9].Value = item.ItemName;
+ worksheet.Cells[row, 10].Value = item.ItemModel;
+ worksheet.Cells[row, 11].Value = item.Quantity;
+ worksheet.Cells[row, 12].Value = item.ItemUnitName;
+ worksheet.Cells[row, 13].Value =
item.IndepDate?.ToString("yyyy-MM-dd HH:mm:ss");
- worksheet.Cells[row, 13].Value = item.OrgCode;
- worksheet.Cells[row, 14].Value = item.OrgName;
- worksheet.Cells[row, 15].Value = item.ItemBarcode;
- worksheet.Cells[row, 16].Value = item.StockStatus;
+ worksheet.Cells[row, 14].Value = item.OrgCode;
+ worksheet.Cells[row, 15].Value = item.OrgName;
+ worksheet.Cells[row, 16].Value = item.ItemBarcode;
+ worksheet.Cells[row, 17].Value = item.StockStatus;
row++;
}
--
Gitblit v1.9.3