From 91ead18d0e92b6e1ed916c5159f3431bf2071a56 Mon Sep 17 00:00:00 2001
From: 647556386 <647556386@qq.com>
Date: 星期五, 12 十二月 2025 13:59:40 +0800
Subject: [PATCH] Merge branch 'master' of http://115.159.85.185:8098/r/ZhongRui/ALDbanyunxiangmu
---
项目代码/WMS无仓储版/WIDESEA_WMSServer/WIDESEA_InboundService/InboundOrderService.cs | 78 +++++++++++++++++++++++++++-----------
1 files changed, 55 insertions(+), 23 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_InboundService/InboundOrderService.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_InboundService/InboundOrderService.cs"
index ccbb4de..9d1cce9 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_InboundService/InboundOrderService.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_InboundService/InboundOrderService.cs"
@@ -34,6 +34,7 @@
private IStockService _stockService;
private readonly IMaterialUnitService _materialUnitService;
+ private readonly IMaterielInfoService _materielInfoService;
private readonly IInboundOrderDetailService _inboundOrderDetailService;
private readonly IRepository<Dt_InboundOrderDetail> _inboundOrderDetailRepository;
private readonly IRepository<Dt_StockInfoDetail> _stockDetailRepository;
@@ -43,7 +44,7 @@
private readonly IRepository<Dt_StockInfo> _stockRepository;
public IRepository<Dt_InboundOrder> Repository => BaseDal;
- public InboundOrderService(IRepository<Dt_InboundOrder> BaseDal, IMapper mapper, IUnitOfWorkManage unitOfWorkManage, IRepository<Dt_InboundOrderDetail> inboundOrderDetailRepository, IRepository<Dt_Task> taskRepository, IStockService stockService, IInboundOrderDetailService inboundOrderDetailService, IMaterialUnitService materialUnitService, IRepository<Dt_StockInfoDetail> stockDetailRepository, IRepository<Dt_InboundOrder> inboundOrderRepository, IRepository<Dt_WarehouseArea> warehouseAreaRepository, IRepository<Dt_StockInfo> stockRepository, IRepository<Dt_LocationType> locationTypeRepository) : base(BaseDal)
+ public InboundOrderService(IRepository<Dt_InboundOrder> BaseDal, IMapper mapper, IUnitOfWorkManage unitOfWorkManage, IRepository<Dt_InboundOrderDetail> inboundOrderDetailRepository, IRepository<Dt_Task> taskRepository, IStockService stockService, IInboundOrderDetailService inboundOrderDetailService, IMaterialUnitService materialUnitService, IRepository<Dt_StockInfoDetail> stockDetailRepository, IRepository<Dt_InboundOrder> inboundOrderRepository, IRepository<Dt_WarehouseArea> warehouseAreaRepository, IRepository<Dt_StockInfo> stockRepository, IRepository<Dt_LocationType> locationTypeRepository, IMaterielInfoService materielInfoService) : base(BaseDal)
{
_mapper = mapper;
_unitOfWorkManage = unitOfWorkManage;
@@ -57,6 +58,7 @@
_warehouseAreaRepository = warehouseAreaRepository;
_stockRepository = stockRepository;
_locationTypeRepository = locationTypeRepository;
+ _materielInfoService = materielInfoService;
}
public async Task<WebResponseContent> ReceiveInboundOrder(List<Dt_InboundOrder> models, int operateType)
@@ -86,17 +88,24 @@
{
if (BaseDal.QueryFirst(x => x.UpperOrderNo == model.UpperOrderNo) != null)
{
- return WebResponseContent.Instance.Error($"鍏ュ簱鍗曞彿閲嶅");
+ return WebResponseContent.Instance.Error($"{model.UpperOrderNo}鍏ュ簱鍗曞彿閲嶅");
}
}
foreach (var model in models)
{
+ var materielCodes = model.Details.Select(x => x.MaterielCode).Distinct().ToList();
+ var materielInfos = _materielInfoService.Db.Queryable<Dt_MaterielInfo>().Where(x => materielCodes.Contains(x.MaterielCode)).ToList();
+
foreach (var item in model.Details)
{
var purchaseToStockResult = await _materialUnitService.ConvertPurchaseToStockAsync(item.MaterielCode, item.BarcodeQty);
item.Unit = purchaseToStockResult.Unit;
item.OrderQuantity = purchaseToStockResult.Quantity;
+ if (materielInfos.Any())
+ {
+ item.MaterielName = materielInfos.FirstOrDefault(x => x.MaterielCode == item.MaterielCode)?.MaterielName ?? "";
+ }
}
if (model.OrderType != InOrderTypeEnum.AllocatInbound.ObjToInt())
{
@@ -134,13 +143,12 @@
List<Dt_InboundOrderDetail> inboundOrderDetails = new List<Dt_InboundOrderDetail>();
List<Dt_InboundOrderDetail> updateInboundOrderDetails = new List<Dt_InboundOrderDetail>();
List<int> detailIds = new List<int>();
+ var materielCodes = model.Details.Select(x => x.MaterielCode).Distinct().ToList();
+ var materielInfos = _materielInfoService.Db.Queryable<Dt_MaterielInfo>().Where(x => materielCodes.Contains(x.MaterielCode)).ToList();
+
foreach (var item in model.Details)
{
- if (string.IsNullOrEmpty(item.Barcode))
- {
-
- }
- else
+ if (!string.IsNullOrEmpty(item.Barcode))
{
Dt_InboundOrderDetail? inboundOrderDetail = inboundOrder.Details.FirstOrDefault(x => x.Barcode == item.Barcode);
if (inboundOrderDetail == null)
@@ -163,11 +171,18 @@
var purchaseToStockResult = await _materialUnitService.ConvertPurchaseToStockAsync(item.MaterielCode, item.BarcodeQty);
inboundOrderDetail.Unit = purchaseToStockResult.Unit;
inboundOrderDetail.OrderQuantity = purchaseToStockResult.Quantity;
-
+ if (materielInfos.Any())
+ {
+ inboundOrderDetail.MaterielName = materielInfos.FirstOrDefault(x => x.MaterielCode == item.MaterielCode)?.MaterielName ?? "";
+ }
inboundOrderDetails.Add(inboundOrderDetail);
}
else
{
+ if (materielInfos.Any())
+ {
+ inboundOrderDetail.MaterielName = materielInfos.FirstOrDefault(x => x.MaterielCode == item.MaterielCode)?.MaterielName ?? "";
+ }
inboundOrderDetail.lineNo = item.lineNo;
inboundOrderDetail.MaterielCode = item.MaterielCode;
inboundOrderDetail.SupplyCode = item.SupplyCode;
@@ -630,15 +645,19 @@
{
resultDTO.UniqueUnit = "";
}
- var validDetails = _stockDetailRepository.Db.Queryable<Dt_StockInfoDetail>().Where(s => s.OrderNo == orderNo).ToList();
- resultDTO.StockSumQuantity = orderDetail.Details.Sum(d => d.OrderQuantity);
- resultDTO.StockCount = orderDetail.Details.Count;
- if (validDetails.Any())
- {
- resultDTO.StockSumQuantity -= validDetails.Sum(d => d.StockQuantity);
- // 鏄庣粏璁板綍鏁帮細绗﹀悎鏉′欢鐨勬湁鏁堣褰曟潯鏁�
- resultDTO.StockCount -= validDetails.Count;
- }
+ var inbound =_inboundOrderRepository.Db.Queryable<Dt_InboundOrder>().Where(x => x.InboundOrderNo == orderNo);
+ var inboundDetails = _inboundOrderDetailRepository.Db.Queryable<Dt_InboundOrderDetail>().Where(x => x.OrderId == inbound.First().Id).ToList();
+ resultDTO.StockSumQuantity = inboundDetails.Where(x=>x.ReceiptQuantity==0).Sum(x=>x.OrderQuantity);
+ resultDTO.StockCount = inboundDetails.Where(x => x.ReceiptQuantity == 0).Count();
+ //var validDetails = _stockDetailRepository.Db.Queryable<Dt_StockInfoDetail>().Where(s => s.OrderNo == orderNo).ToList();
+ //resultDTO.StockSumQuantity = orderDetail.Details.Sum(d => d.OrderQuantity);
+ //resultDTO.StockCount = orderDetail.Details.Count;
+ //if (validDetails.Any())
+ //{
+ // resultDTO.StockSumQuantity -= validDetails.Sum(d => d.StockQuantity);
+ // // 鏄庣粏璁板綍鏁帮細绗﹀悎鏉′欢鐨勬湁鏁堣褰曟潯鏁�
+ // resultDTO.StockCount -= validDetails.Count;
+ //}
return content.OK("", resultDTO);
}
catch (Exception ex)
@@ -649,16 +668,16 @@
public WebResponseContent UndoPalletGroup(string palletCode, string barcode = "")
{
-
+
if (string.IsNullOrWhiteSpace(palletCode))
{
return WebResponseContent.Instance.Error("鎵樼洏鍙蜂笉鑳戒负绌�");
}
-
+
try
{
- _unitOfWorkManage.BeginTran();
+ _unitOfWorkManage.BeginTran();
// 2. 鏌ヨ鎵樼洏搴撳瓨涓昏褰曪紙閬垮厤鏃犳暟鎹姏寮傚父锛�
var stock = _stockRepository.Db.Queryable<Dt_StockInfo>()
@@ -682,7 +701,7 @@
return WebResponseContent.Instance.Error($"鎵樼洏{palletCode}涓嬫湭鎵惧埌鏉$爜{barcode}鐨勬槑缁嗚褰�");
}
- ResetInboundOrderStatus(new List<string> { targetDetail.OrderNo},new List<string> { targetDetail.Barcode});
+ ResetInboundOrderStatus(new List<string> { targetDetail.OrderNo }, new List<string> { targetDetail.Barcode });
// 鍒犻櫎鎸囧畾鏄庣粏
_stockDetailRepository.DeleteData(targetDetail);
@@ -735,7 +754,7 @@
}
catch (Exception ex)
{
- _unitOfWorkManage.RollbackTran();
+ _unitOfWorkManage.RollbackTran();
return WebResponseContent.Instance.Error($"鎵樼洏鎾ら攢澶辫触锛歿ex.Message}");
}
}
@@ -801,7 +820,7 @@
if (!string.IsNullOrEmpty(options.Wheres))
{
try
- {
+ {
searchParametersList = options.Wheres.DeserializeObject<List<SearchParameters>>();
if (searchParametersList.Count > 0)
{
@@ -866,5 +885,18 @@
// return new PageGridData<Dt_InboundOrder>();
//}
+ public WebResponseContent UnPalletGroupBarcode(string orderNo)
+ {
+ WebResponseContent content = new WebResponseContent();
+ var inbound = _inboundOrderRepository.Db.Queryable<Dt_InboundOrder>().Where(x => x.InboundOrderNo == orderNo).First();
+ if(inbound == null)
+ {
+ return content.Error();
+ }
+
+ var details = _inboundOrderDetailRepository.Db.Queryable<Dt_InboundOrderDetail>().Where(x => x.OrderId == inbound.Id && x.ReceiptQuantity == 0).ToList();
+
+ return content.OK(data:details);
+ }
}
}
--
Gitblit v1.9.3