wangxinhui
2025-04-08 dcecb039035f4b2e82e31c39b74db9402444c536
代码管理/WMS/WIDESEA_WMSServer/WIDESEA_StockService/ProStockViewService.cs
@@ -17,6 +17,9 @@
using Magicodes.ExporterAndImporter.Core;
using WIDESEA_Core.HostedService;
using WIDESEA_Core.DB.Models;
using WIDESEA_IOutboundRepository;
using WIDESEA_IStockRepository;
using WIDESEA_Common.StockEnum;
namespace WIDESEA_StockService
{
@@ -24,11 +27,15 @@
    {
        private readonly IUnitOfWorkManage _unitOfWorkManage;
        private readonly SqlSugarClient _dbBase;
        private readonly IOutboundRepository _outboundRepository;
        private readonly IStockRepository  _stockRepository;
        public ProStockViewService(IUnitOfWorkManage unitOfWorkManage)
        public ProStockViewService(IUnitOfWorkManage unitOfWorkManage, IOutboundRepository outboundRepository, IStockRepository stockRepository)
        {
            _unitOfWorkManage = unitOfWorkManage;
            _dbBase = unitOfWorkManage.GetDbClient();
            _outboundRepository = outboundRepository;
            _stockRepository = stockRepository;
        }
        public virtual PageGridData<ProStockViewDTO> GetPageData(PageDataOptions options)
@@ -346,5 +353,45 @@
                throw new Exception($"鏃犳潈闄愶紝{ex.Message}");
            }
        }
        public List<ProStockViewDTO> GetProPKSelectStocks(int orderId)
        {
            try
            {
                Dt_ProOutOrderDetail outOrderDetail = _outboundRepository.ProOutOrderDetailRepository.QueryFirst(x => x.Id == orderId);
                Dt_ProOutOrder outOrder = _outboundRepository.ProOutOrderRepository.QueryFirst(x => x.Id == outOrderDetail.Id);
                if (outOrderDetail == null)
                {
                    throw new Exception($"鏈壘鍒板嚭搴撳崟鏄庣粏");
                }
                return _stockRepository.ProStockInfoRepository.QueryTabs<Dt_ProStockInfo, Dt_ProStockInfoDetail, ProStockViewDTO>((a, b) => a.Id == b.ProStockId, (a, b) => new ProStockViewDTO
                {
                    LocationCode = a.LocationCode,
                    ProductCode = b.ProductCode,
                    ProStockAttribute = a.ProStockAttribute,
                    ProductVersion=b.ProductVersion,
                    DateCode=b.DateCode,
                    ProStockId=a.Id,
                    SumStocks=b.StockPcsQty,
                    SaleOrder=b.SaleOrder,
                    PalletCode = a.PalletCode
                }, a => a.LocationCode == "鎴愬搧寰呭彂璐у尯", b => b.ProductCode == outOrderDetail.PCode, x => true).GroupBy(x => x.PalletCode).Select(x => new ProStockViewDTO
                {
                    LocationCode = x.FirstOrDefault()?.LocationCode ?? "",
                    ProductCode = x.FirstOrDefault()?.ProductCode ?? "",
                    ProductVersion = x.FirstOrDefault()?.ProductVersion ?? "",
                    DateCode = x.FirstOrDefault()?.DateCode ?? "",
                    ProStockId = x.FirstOrDefault().ProStockId,
                    SumStocks=x.FirstOrDefault().SumStocks,
                    SaleOrder = x.FirstOrDefault()?.SaleOrder ?? "",
                    ProStockAttribute=x.FirstOrDefault()?.ProStockAttribute ?? 0,
                    PalletCode = x.Key,
                }).ToList();
            }
            catch (Exception ex)
            {
                throw new Exception(ex.Message);
            }
        }
    }
}