From ca4a0e7ffc11dc6f4c19b75f625444b06768ea15 Mon Sep 17 00:00:00 2001
From: pan <antony1029@163.com>
Date: 星期三, 12 十一月 2025 08:51:30 +0800
Subject: [PATCH] 提交
---
项目代码/WMS无仓储版/WIDESEA_WMSServer/WIDESEA_OutboundService/OutStockLockInfoService.cs | 94 +++++++++++++++++++++-------------------------
1 files changed, 43 insertions(+), 51 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_OutboundService/OutStockLockInfoService.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_OutboundService/OutStockLockInfoService.cs"
index ca2bf8b..d407809 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_OutboundService/OutStockLockInfoService.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_OutboundService/OutStockLockInfoService.cs"
@@ -32,59 +32,52 @@
_recordService = recordService;
}
- public Dt_OutStockLockInfo GetOutStockLockInfo(Dt_OutboundOrder outboundOrder, Dt_OutboundOrderDetail outboundOrderDetail, Dt_StockInfo outStock, decimal assignQuantity, int? taskNum = null)
- {
-
- Dt_OutStockLockInfo outStockLockInfo = new Dt_OutStockLockInfo()
- {
- PalletCode = outStock.PalletCode,
- AssignQuantity = assignQuantity,
- MaterielCode = outboundOrderDetail.MaterielCode,
- BatchNo = outboundOrderDetail.BatchNo ?? outStock.Details.FirstOrDefault()?.BatchNo,
- LocationCode = outStock.LocationCode,
- MaterielName = outboundOrderDetail.MaterielName,
- OrderDetailId = outboundOrderDetail.Id,
- OrderNo = outboundOrder.OrderNo,
- OrderType = outboundOrder.OrderType,
-
- OriginalQuantity = outStock.Details.Where(x => x.MaterielCode == outboundOrderDetail.MaterielCode).Sum(x => x.StockQuantity),
- Status = taskNum == null ? OutLockStockStatusEnum.宸插垎閰�.ObjToInt() : OutLockStockStatusEnum.鍑哄簱涓�.ObjToInt(),
- StockId = outStock.Id,
- TaskNum = taskNum,
- OrderQuantity = outboundOrderDetail.OrderQuantity,
- Unit = outboundOrderDetail.Unit,
- //ProductionDate = outStock.Details.Where(x => x.MaterielCode == outboundOrderDetail.MaterielCode).FirstOrDefault()?.ProductionDate,
- //EffectiveDate = outStock.Details.Where(x => x.MaterielCode == outboundOrderDetail.MaterielCode).FirstOrDefault()?.EffectiveDate
- };
-
- return outStockLockInfo;
- }
-
+
/// <summary>
- /// 鍒涘缓鍑哄簱閿佸畾淇℃伅
+ /// 鍒涘缓鍑哄簱閿佸畾淇℃伅 - 淇鐗堟湰
/// </summary>
- public Dt_OutStockLockInfo GetOutStockLockInfo(Dt_OutboundOrder outboundOrder, Dt_OutboundOrderDetail outboundOrderDetail, Dt_StockInfo outStock, decimal assignQuantity, string barcode = null, int? taskNum = null)
+ public Dt_OutStockLockInfo GetOutStockLockInfo(
+ Dt_OutboundOrder outboundOrder,
+ Dt_OutboundOrderDetail outboundOrderDetail,
+ Dt_StockInfo outStock,
+ decimal assignQuantity,
+ string barcode = null)
{
- // 鑾峰彇搴撳瓨鏄庣粏涓殑鏉$爜淇℃伅锛堝鏋滄湭鎸囧畾鏉$爜锛屼娇鐢ㄧ涓�涓彲鐢ㄦ潯鐮侊級
- var stockDetails = outStock.Details.Where(x => x.MaterielCode == outboundOrderDetail.MaterielCode && x.StockQuantity > x.OutboundQuantity)
- .OrderBy(x => x.ProductionDate).ToList();
+ // 鑾峰彇搴撳瓨鏄庣粏淇℃伅
+ var stockDetails = outStock.Details
+ .Where(x => x.MaterielCode == outboundOrderDetail.MaterielCode)
+ .ToList();
if (!stockDetails.Any())
{
- throw new Exception($"鏈壘鍒扮墿鏂橻{outboundOrderDetail.MaterielCode}]鐨勫彲鐢ㄥ簱瀛樻槑缁�");
+ throw new Exception($"鏈壘鍒扮墿鏂橻{outboundOrderDetail.MaterielCode}]鐨勫簱瀛樻槑缁�");
}
- // 纭畾鏉$爜锛堝鏋滄湭鎸囧畾锛屼娇鐢ㄦ渶鏃╁叆搴撶殑鏉$爜锛�
- var targetBarcode = barcode;
- if (string.IsNullOrEmpty(targetBarcode))
+ // 纭畾鏉$爜
+ string targetBarcode;
+ if (!string.IsNullOrEmpty(barcode))
{
- targetBarcode = stockDetails.First().Barcode;
+ // 楠岃瘉鎸囧畾鐨勬潯鐮佹槸鍚﹀瓨鍦�
+ var specifiedBarcodeDetail = stockDetails.FirstOrDefault(x => x.Barcode == barcode);
+ if (specifiedBarcodeDetail == null)
+ {
+ throw new Exception($"鎸囧畾鐨勬潯鐮乕{barcode}]鍦ㄥ簱瀛樹腑涓嶅瓨鍦�");
+ }
+ targetBarcode = barcode;
}
- // 鑾峰彇璇ユ潯鐮佺殑鍙敤鏁伴噺
- var barcodeDetail = stockDetails.FirstOrDefault(x => x.Barcode == targetBarcode);
- if (barcodeDetail == null)
+ else
{
- throw new Exception($"鏉$爜[{targetBarcode}]鍦ㄥ簱瀛樹腑涓嶅瓨鍦�");
+ // 浣跨敤绗竴涓彲鐢ㄦ潯鐮�
+ var firstAvailableDetail = stockDetails
+ .Where(x => x.StockQuantity > x.OutboundQuantity)
+ .OrderBy(x => x.ProductionDate)
+ .FirstOrDefault();
+
+ if (firstAvailableDetail == null)
+ {
+ throw new Exception($"鐗╂枡[{outboundOrderDetail.MaterielCode}]娌℃湁鍙敤搴撳瓨");
+ }
+ targetBarcode = firstAvailableDetail.Barcode;
}
return new Dt_OutStockLockInfo()
@@ -101,19 +94,18 @@
OriginalQuantity = outStock.Details
.Where(x => x.MaterielCode == outboundOrderDetail.MaterielCode)
.Sum(x => x.StockQuantity),
- Status = taskNum == null ? (int)OutLockStockStatusEnum.宸插垎閰� : (int)OutLockStockStatusEnum.鍑哄簱涓�,
+ Status = (int)OutLockStockStatusEnum.宸插垎閰�,
StockId = outStock.Id,
- TaskNum = taskNum,
Unit = outboundOrderDetail.Unit,
-
-
- // 鏂板瀛楁璧嬪��
- CurrentBarcode = targetBarcode, // 褰撳墠鍒嗛厤鐨勬潯鐮�
- OriginalLockQuantity = assignQuantity, // 鍘熷閿佸畾鏁伴噺
- IsSplitted = 0 // 鍒濆鏈媶鍖�
+
+ SupplyCode = outboundOrderDetail.SupplyCode,
+ WarehouseCode = outboundOrderDetail.WarehouseCode,
+ // 鏂板瀛楁
+ CurrentBarcode = targetBarcode,
+ OriginalLockQuantity = assignQuantity,
+ IsSplitted = 0
};
}
-
/// <summary>
/// 鏍规嵁璁㈠崟鏄庣粏ID鑾峰彇鍑哄簱閿佸畾淇℃伅
/// </summary>
--
Gitblit v1.9.3