From 9a886d711d8b21adc335fdf8c39350584c7ba6fd Mon Sep 17 00:00:00 2001
From: wangxinhui <wangxinhui@hnkhzn.com>
Date: 星期二, 14 十月 2025 02:12:14 +0800
Subject: [PATCH] 更新代码,取消MES出库单号同步标识,平库转立库功能,寄售周期判断取消,精品标识等
---
代码管理/WMS/WIDESEA_WMSServer/WIDESEA_StockRepository/ProStockInfoRepository.cs | 90 ++++++++++++++++++++++++++++++++++++++++-----
1 files changed, 80 insertions(+), 10 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..12f8f19 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,93 @@
{
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)
+ public List<Dt_ProStockInfo> GetProStocks(Dt_ProOutOrderDetail proOutOrderDetail,List<string> locationInfos, bool isFineWorks = false)
{
List<Dt_ProStockInfo>? proStockInfos = null;
- bool isCanLot= !string.IsNullOrEmpty(proOutOrderDetail.PLot);
- bool isCanDate = !string.IsNullOrEmpty(proOutOrderDetail.DateCode);
+ bool isCanLot= string.IsNullOrEmpty(proOutOrderDetail.PLot);
+ 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)
+ && (isFineWorks ? !isCanLot : v.IsFineWorks == 1)
+ ))
+ .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