From a9a3f943efb083de8ed88b293897886b3ef612a2 Mon Sep 17 00:00:00 2001
From: helongyang <647556386@qq.com>
Date: 星期一, 11 八月 2025 17:37:09 +0800
Subject: [PATCH] 功能增添优化
---
代码管理/WMS/WIDESEA_WMSServer/WIDESEA_StockRepository/ProStockInfoRepository.cs | 89 ++++++++++++++++++++++++++++++++++++++++----
1 files changed, 80 insertions(+), 9 deletions(-)
diff --git "a/\344\273\243\347\240\201\347\256\241\347\220\206/WMS/WIDESEA_WMSServer/WIDESEA_StockRepository/ProStockInfoRepository.cs" "b/\344\273\243\347\240\201\347\256\241\347\220\206/WMS/WIDESEA_WMSServer/WIDESEA_StockRepository/ProStockInfoRepository.cs"
index 9861ce4..7063262 100644
--- "a/\344\273\243\347\240\201\347\256\241\347\220\206/WMS/WIDESEA_WMSServer/WIDESEA_StockRepository/ProStockInfoRepository.cs"
+++ "b/\344\273\243\347\240\201\347\256\241\347\220\206/WMS/WIDESEA_WMSServer/WIDESEA_StockRepository/ProStockInfoRepository.cs"
@@ -4,8 +4,11 @@
using System.Linq;
using System.Text;
using System.Threading.Tasks;
+using WIDESEA_Common.CommonEnum;
+using WIDESEA_Common.StockEnum;
using WIDESEA_Core.BaseRepository;
using WIDESEA_Core.Helper;
+using WIDESEA_IBasicRepository;
using WIDESEA_IStockRepository;
using WIDESEA_Model.Models;
@@ -13,26 +16,94 @@
{
public class ProStockInfoRepository : RepositoryBase<Dt_ProStockInfo>, IProStockInfoRepository
{
- public ProStockInfoRepository(IUnitOfWorkManage unitOfWorkManage) : base(unitOfWorkManage)
+ private readonly IBasicRepository _basicRepository;
+ public ProStockInfoRepository(IUnitOfWorkManage unitOfWorkManage,IBasicRepository basicRepository) : base(unitOfWorkManage)
{
+ _basicRepository = basicRepository;
}
//鏍规嵁鏄庣粏鏁版嵁鏌ユ壘鍙敤搴撳瓨搴撳瓨
public List<Dt_ProStockInfo> GetProStocks(Dt_ProOutOrderDetail proOutOrderDetail,List<string> locationInfos)
{
List<Dt_ProStockInfo>? proStockInfos = null;
- bool isCanLot= !string.IsNullOrEmpty(proOutOrderDetail.PLot);
- bool isCanDate = !string.IsNullOrEmpty(proOutOrderDetail.DateCode);
+ bool isCanLot= string.IsNullOrEmpty(proOutOrderDetail.PLot);
+ bool isCanDate = string.IsNullOrEmpty(proOutOrderDetail.DateCode);
+ bool isCanVer = string.IsNullOrEmpty(proOutOrderDetail.OutSpecifyVer);
+ ////鍒ゆ柇瀹㈡埛鍑哄叆瑙勫垯
+ //Dt_CustomerInfo customerInfo = _basicRepository.CustomerInfoRepository.QueryFirst(x=>x.Code== proOutOrderDetail.Customer);
+ //if (customerInfo==null)
+ //{
+ // throw new Exception("鏈壘鍒板鎴蜂俊鎭�");
+ //}
+ //if (customerInfo.OutRule==CustomerOutRuleEnum.SaleOrderRule.ObjToInt())
+ //{
+ // proStockInfos = Db.Queryable<Dt_ProStockInfo>().Where(x => locationInfos.Contains(x.LocationCode) && x.ProStockAttribute == ProStockAttributeEnum.鎴愬搧.ObjToInt())
+ // .Includes(x => x.proStockInfoDetails)
+ // .Where(x => x.proStockInfoDetails
+ // .Any(v =>
+ // v.SaleOrder==proOutOrderDetail.SaleOrder
+ // && v.ProductCode == proOutOrderDetail.PCode
+ // && v.ProductVersion == proOutOrderDetail.PVer
+ // && (isCanLot ? isCanLot : v.BagNo == proOutOrderDetail.PLot)
+ // && (isCanDate ? isCanDate : v.DateCode == proOutOrderDetail.DateCode)
+ // ))
+ // .ToList();
+ //}
+ //else
+ //{
+ proStockInfos = Db.Queryable<Dt_ProStockInfo>().Where(x => locationInfos.Contains(x.LocationCode) && x.ProStockAttribute == ProStockAttributeEnum.鎴愬搧.ObjToInt())
+ .Includes(x => x.proStockInfoDetails)
+ .Where(x => x.proStockInfoDetails
+ .Any(v =>
+ v.ProductCode == proOutOrderDetail.PCode
+ && v.ProductVersion.StartsWith(proOutOrderDetail.PVer.Substring(0,1))
+ && (isCanLot ? isCanLot : v.ProductCode == proOutOrderDetail.PLot)
+ && (isCanDate ? isCanDate : v.DateCode == proOutOrderDetail.DateCode)
+ ))
+ .ToList();
+ //}
+ proStockInfos = proStockInfos?.OrderBy(x => x.proStockInfoDetails.FirstOrDefault()?.DateCode).ThenBy(x=>x.CreateDate).ThenBy(x=>x.proStockInfoDetails.Sum(x=>x.StockPcsQty)).ToList();
+ return proStockInfos;
+ }
+ /// <summary>
+ /// 鑾峰彇MES鎻愬簱搴撳瓨(灏炬暟浠�)
+ /// </summary>
+ /// <param name="mesRworkOutboundOrder"></param>
+ /// <param name="locationInfos"></param>
+ /// <returns></returns>
+ public List<Dt_ProStockInfo> GetProStocks(Dt_MesRworkOutboundOrder mesRworkOutboundOrder, List<string> locationInfos)
+ {
+ List<Dt_ProStockInfo>? proStockInfos = null;
+ bool isCanDate = string.IsNullOrEmpty(mesRworkOutboundOrder.DateCode);
proStockInfos = Db.Queryable<Dt_ProStockInfo>().Where(x => locationInfos.Contains(x.LocationCode))
.Includes(x => x.proStockInfoDetails)
.Where(x => x.proStockInfoDetails
- .Any(x => x.SaleOrder == proOutOrderDetail.SaleOrder
- && x.ProductCode == proOutOrderDetail.PCode
- && x.ProductVersion == proOutOrderDetail.PVer
- && (isCanLot ? x.LotNumber == proOutOrderDetail.PLot : true)
- && (isCanDate ? x.DateCode == proOutOrderDetail.DateCode : true)
+ .Any(v => v.ProductCode == mesRworkOutboundOrder.ProductCode
+ && v.ProductVersion == mesRworkOutboundOrder.ProductVersion
+ && (isCanDate ? isCanDate : v.DateCode == mesRworkOutboundOrder.DateCode)
))
.ToList();
- proStockInfos = proStockInfos.OrderBy(x => x.proStockInfoDetails.FirstOrDefault().DateCode).ToList();
+ proStockInfos = proStockInfos.OrderBy(x => x.proStockInfoDetails.FirstOrDefault()?.DateCode).ThenBy(x => x.proStockInfoDetails.Sum(x => x.StockPcsQty)).ToList();
+ return proStockInfos;
+ }
+ /// <summary>
+ /// 鑾峰彇MES鎻愬簱搴撳瓨(灏炬暟浠�)
+ /// </summary>
+ /// <param name="mesRworkOutboundOrder"></param>
+ /// <param name="locationInfos"></param>
+ /// <returns></returns>
+ public List<Dt_ProStockInfo> GetProStocks(Dt_ErpProScrapSheetDetail erpProScrapSheetDetail, List<string> locationInfos)
+ {
+ List<Dt_ProStockInfo>? proStockInfos = null;
+ proStockInfos = Db.Queryable<Dt_ProStockInfo>().Where(x => locationInfos.Contains(x.LocationCode) && x.ProStockAttribute == ProStockAttributeEnum.鎴愬搧.ObjToInt())
+ .Includes(x => x.proStockInfoDetails)
+ .Where(x => x.proStockInfoDetails
+ .Any(v =>
+ v.LotNumber == erpProScrapSheetDetail.ScrapProLotNo
+ && v.ProductCode == erpProScrapSheetDetail.ScrapProCode
+ && v.ProductVersion == erpProScrapSheetDetail.ScrapProVersion
+ ))
+ .ToList();
+ proStockInfos = proStockInfos.OrderBy(x => x.proStockInfoDetails.FirstOrDefault()?.DateCode).ThenBy(x => x.proStockInfoDetails.Sum(x => x.StockPcsQty)).ToList();
return proStockInfos;
}
}
--
Gitblit v1.9.3