From 0705cb6170a9ba77ba48bbb6dcebb9cf3d73cbea Mon Sep 17 00:00:00 2001
From: wangxinhui <wangxinhui@hnkhzn.com>
Date: 星期二, 14 十月 2025 02:12:25 +0800
Subject: [PATCH] Merge branch 'master' of http://115.159.85.185:8098/r/MeiRuiAn/HuaiAn
---
代码管理/WMS/WIDESEA_WMSServer/WIDESEA_StockService/ProStockViewService.cs | 235 +++++++++++++++++++++++++++++++++++++++++++++-------------
1 files changed, 183 insertions(+), 52 deletions(-)
diff --git "a/\344\273\243\347\240\201\347\256\241\347\220\206/WMS/WIDESEA_WMSServer/WIDESEA_StockService/ProStockViewService.cs" "b/\344\273\243\347\240\201\347\256\241\347\220\206/WMS/WIDESEA_WMSServer/WIDESEA_StockService/ProStockViewService.cs"
index 70287a3..f8c78c5 100644
--- "a/\344\273\243\347\240\201\347\256\241\347\220\206/WMS/WIDESEA_WMSServer/WIDESEA_StockService/ProStockViewService.cs"
+++ "b/\344\273\243\347\240\201\347\256\241\347\220\206/WMS/WIDESEA_WMSServer/WIDESEA_StockService/ProStockViewService.cs"
@@ -17,6 +17,12 @@
using Magicodes.ExporterAndImporter.Core;
using WIDESEA_Core.HostedService;
using WIDESEA_Core.DB.Models;
+using WIDESEA_IOutboundRepository;
+using WIDESEA_IStockRepository;
+using WIDESEA_Common.StockEnum;
+using WIDESEA_IBasicRepository;
+using WIDESEA_Common.WareHouseEnum;
+using WIDESEA_Core.Enums;
namespace WIDESEA_StockService
{
@@ -24,11 +30,17 @@
{
private readonly IUnitOfWorkManage _unitOfWorkManage;
private readonly SqlSugarClient _dbBase;
+ private readonly IOutboundRepository _outboundRepository;
+ private readonly IStockRepository _stockRepository;
+ private readonly IBasicRepository _basicRepository;
- public ProStockViewService(IUnitOfWorkManage unitOfWorkManage)
+ public ProStockViewService(IUnitOfWorkManage unitOfWorkManage, IOutboundRepository outboundRepository, IStockRepository stockRepository,IBasicRepository basicRepository)
{
_unitOfWorkManage = unitOfWorkManage;
_dbBase = unitOfWorkManage.GetDbClient();
+ _outboundRepository = outboundRepository;
+ _stockRepository = stockRepository;
+ _basicRepository = basicRepository;
}
public virtual PageGridData<ProStockViewDTO> GetPageData(PageDataOptions options)
@@ -44,28 +56,70 @@
try
{
List<SearchParameters> searchParametersList = options.Wheres.DeserializeObject<List<SearchParameters>>();
- if (searchParametersList.Count > 0)
+ if (searchParametersList?.Any() == true)
{
+ foreach (var param in searchParametersList)
{
- SearchParameters? searchParameters = searchParametersList.FirstOrDefault(x => x.Name == nameof(Dt_ProStockInfoDetail.ProductCode).FirstLetterToLower());
- if (searchParameters != null)
+ switch (param.Name)
{
- sugarQueryable1 = sugarQueryable1.Where(x => x.proStockInfoDetails.Any(v => v.ProductCode.Contains(searchParameters.Value)));
+ case var name when name == nameof(Dt_ProStockInfoDetail.ProductCode).FirstLetterToLower():
+ if (!string.IsNullOrEmpty(param.Value?.ToString()))
+ {
+ sugarQueryable1 = sugarQueryable1
+ .Where(x => x.proStockInfoDetails.Any(v => v.ProductCode.Contains(param.Value.ToString())));
+ }
+ break;
+ case var name when name == nameof(Dt_ProStockInfoDetail.LotNumber).FirstLetterToLower():
+ if (!string.IsNullOrEmpty(param.Value?.ToString()))
+ {
+ sugarQueryable1 = sugarQueryable1
+ .Where(x => x.proStockInfoDetails.Any(v => v.LotNumber.Contains(param.Value.ToString())));
+ }
+ break;
+
+ case var name when name == nameof(Dt_ProStockInfo.LocationCode).FirstLetterToLower():
+ if (!string.IsNullOrEmpty(param.Value?.ToString()))
+ {
+ sugarQueryable1 = sugarQueryable1
+ .Where(x => x.LocationCode == param.Value.ToString());
+ }
+ break;
+ case var name when name == nameof(Dt_ProStockInfoDetail.ProductVersion).FirstLetterToLower():
+ if (!string.IsNullOrEmpty(param.Value?.ToString()))
+ {
+ sugarQueryable1 = sugarQueryable1
+ .Where(x => x.proStockInfoDetails.Any(v => v.ProductVersion.Contains(param.Value.ToString())));
+ }
+ break;
+ case var name when name == nameof(Dt_ProStockInfoDetail.SpecifyVer).FirstLetterToLower():
+ if (!string.IsNullOrEmpty(param.Value?.ToString()))
+ {
+ sugarQueryable1 = sugarQueryable1
+ .Where(x => x.proStockInfoDetails.Any(v => v.SpecifyVer.Contains(param.Value.ToString())));
+ }
+ break;
+
+ case var name when name == nameof(Dt_ProStockInfo.CreateDate).FirstLetterToLower():
+ if (DateTime.TryParse(param.Value?.ToString(), out DateTime minDate))
+ {
+ LinqExpressionType expressionType = param.DisplayType.GetLinqCondition();
+ if (expressionType == LinqExpressionType.ThanOrEqual)
+ {
+ sugarQueryable1 = sugarQueryable1.Where(x => x.CreateDate >= minDate);
+ }
+ else if (expressionType == LinqExpressionType.LessThanOrEqual)
+ {
+ sugarQueryable1 = sugarQueryable1.Where(x => x.CreateDate <= minDate);
+ }
+ }
+ break;
}
}
-
- {
- SearchParameters? searchParameters = searchParametersList.FirstOrDefault(x => x.Name == nameof(Dt_ProStockInfoDetail.ProductVersion).FirstLetterToLower());
- if (searchParameters != null)
- {
- sugarQueryable1 = sugarQueryable1.Where(x => x.proStockInfoDetails.Any(v => v.ProductVersion.Contains(searchParameters.Value)));
- }
- }
-
}
-
}
- catch { }
+ catch (Exception ex)
+ {
+ }
}
string whereSto = GetDataRole(typeof(Dt_ProStockInfo));
sugarQueryable1 = sugarQueryable1.Where(whereSto);
@@ -97,50 +151,46 @@
ProStockId = b.Id,
StockStatus = b.StockStatus,
Details = b.proStockInfoDetails,
+ SumStocks=b.proStockInfoDetails.Sum(x=>x.StockPcsQty)
});
- //var pklist = sugarQueryable1.Where(b => b.LocationCode == "骞冲簱浣�").Select(b => new StockViewDTO
- //{
- // LocationCode = b.LocationCode,
- // Column = 0,
- // WarehouseId = b.WarehouseId,
- // CreateDate = b.CreateDate,
- // Creater = b.Creater,
- // Depth = 0,
- // EnalbeStatus = EnableStatusEnum.Normal.ObjToInt(),
- // Layer = 0,
- // LocationName = "骞冲簱浣�",
- // LocationStatus = LocationStatusEnum.InStock.ObjToInt(),
- // LocationType = LocationTypeEnum.Undefined.ObjToInt(),
- // Modifier = b.Modifier,
- // ModifyDate = b.ModifyDate,
- // PalletCode = b.PalletCode,
- // StockRemark = b.Remark,
- // RoadwayNo = "骞冲簱",
- // Row = 0,
- // StockId = b.Id,
- // StockStatus = b.StockStatus,
- // Details = b.Details,
- //});
+ var pklist = sugarQueryable1.Where(b => b.LocationCode == "鎴愬搧寰呭彂璐у尯" || b.LocationCode == "鎴愬搧鍖呰鎷h揣鍖�").Select(b => new ProStockViewDTO
+ {
+ ProStockAttribute = b.ProStockAttribute,
+ LocationCode = b.LocationCode,
+ WarehouseId = b.WarehouseId,
+ CreateDate = b.CreateDate,
+ Creater = b.Creater,
+ LocationName = b.LocationCode,
+ Modifier = b.Modifier,
+ ModifyDate = b.ModifyDate,
+ PalletCode = b.PalletCode,
+ StockRemark = b.Remark,
+ ProStockId = b.Id,
+ StockStatus = b.StockStatus,
+ Details = b.proStockInfoDetails,
+ SumStocks = b.proStockInfoDetails.Sum(x => x.StockPcsQty)
+ });
int totalCount = 0;
int pktotalCount = 0;
stockViewDTOs = list.ToPageList(options.Page, options.Rows, ref totalCount);
- //stockViewDTOs.AddRange(pklist.ToPageList(options.Page, options.Rows, ref pktotalCount));
+ stockViewDTOs.AddRange(pklist.ToPageList(options.Page, options.Rows, ref pktotalCount));
stockViewDTOs.ForEach(x =>
- {
- x.ProductCode = string.Join(",", x.Details.Select(x => x.ProductCode).Distinct());
- x.ProductVersion = string.Join(",", x.Details.Select(x => x.ProductVersion).Distinct());
- x.DateCode = x.Details.FirstOrDefault()?.DateCode ?? "";
- x.LotNumber = x.Details.FirstOrDefault()?.LotNumber ?? "";
- x.ERPOrder = x.Details.FirstOrDefault()?.ERPOrder ?? "";
- x.SaleOrder= x.Details.FirstOrDefault()?.SaleOrder ?? "";
- x.MoNumber = x.Details.FirstOrDefault()?.MoNumber ?? "";
- }
+ {
+ x.ProductCode = string.Join(",", x.Details.Select(x => x.ProductCode).Distinct());
+ x.ProductVersion = string.Join(",", x.Details.Select(x => x.ProductVersion).Distinct());
+ x.SpecifyVer = string.Join(",", x.Details.Select(x => x.SpecifyVer).Distinct());
+ x.DateCode = x.Details.FirstOrDefault()?.DateCode ?? "";
+ x.LotNumber = x.Details.FirstOrDefault()?.LotNumber ?? "";
+ x.ERPOrder = x.Details.FirstOrDefault()?.ERPOrder ?? "";
+ x.SaleOrder= x.Details.FirstOrDefault()?.SaleOrder ?? "";
+ x.MoNumber = x.Details.FirstOrDefault()?.MoNumber ?? "";
+ }
);
- return new PageGridData<ProStockViewDTO>(totalCount + pktotalCount, stockViewDTOs);
+ return new PageGridData<ProStockViewDTO>(totalCount + pktotalCount, stockViewDTOs.OrderByDescending(x=>x.CreateDate).ToList());
}
catch (Exception ex)
{
@@ -185,7 +235,7 @@
options.Order = "desc";
options.Sort = "proStockId";
List<ProStockViewDTO> stockViewDTOs = new List<ProStockViewDTO>();
-
+ List<Dt_Warehouse> warehouses = _basicRepository.WarehouseRepository.QueryData(x => x.WarehouseType == WarehouseTypEnum.鎴愬搧.ToString());
string where = string.Empty;
ISugarQueryable<Dt_ProStockInfo> sugarQueryable1 = _dbBase.Queryable<Dt_ProStockInfo>().Includes(x => x.proStockInfoDetails);
if (!string.IsNullOrEmpty(options.Wheres))
@@ -246,6 +296,8 @@
ProStockId = b.Id,
StockStatus = b.StockStatus,
Details = b.proStockInfoDetails,
+ SumStocks = b.proStockInfoDetails.Sum(x => x.StockPcsQty),
+
});
//var pklist = sugarQueryable1.Where(b => b.LocationCode == "骞冲簱浣�").Select(b => new StockViewDTO
@@ -277,17 +329,19 @@
{
x.ProductCode = string.Join(",", x.Details.Select(x => x.ProductCode).Distinct());
x.ProductVersion = string.Join(",", x.Details.Select(x => x.ProductVersion).Distinct());
+ x.SpecifyVer = string.Join(",", x.Details.Select(x => x.SpecifyVer).Distinct());
x.DateCode = x.Details.FirstOrDefault()?.DateCode ?? "";
x.LotNumber = x.Details.FirstOrDefault()?.LotNumber ?? "";
x.ERPOrder = x.Details.FirstOrDefault()?.ERPOrder ?? "";
x.SaleOrder = x.Details.FirstOrDefault()?.SaleOrder ?? "";
x.MoNumber = x.Details.FirstOrDefault()?.MoNumber ?? "";
+ x.StockRemark = warehouses.FirstOrDefault(v => v.WarehouseId == x.WarehouseId).WarehouseName;
}
);
byte[] data = exporter.ExportAsByteArray(stockViewDTOs).Result;
- string fileName = "搴撳瓨瑙嗗浘.xlsx";
+ string fileName = "鎴愬搧搴撳瓨瑙嗗浘.xlsx";
FileHelper.WriteFile(savePath, fileName, data);
@@ -346,5 +400,82 @@
throw new Exception($"鏃犳潈闄愶紝{ex.Message}");
}
}
+ public List<ProStockViewDTO> GetProPKSelectStocks(int orderId)
+ {
+ try
+ {
+ Dt_ProOutOrderDetail outOrderDetail = _outboundRepository.ProOutOrderDetailRepository.QueryFirst(x => x.Id == orderId);
+ if (outOrderDetail == null)
+ {
+ throw new Exception($"鏈壘鍒板嚭搴撳崟鏄庣粏");
+ }
+ List<ProStockViewDTO> stockViewDTOs = new List<ProStockViewDTO>();
+ ISugarQueryable<Dt_ProStockInfo> sugarQueryable1 = _dbBase.Queryable<Dt_ProStockInfo>().Includes(x => x.proStockInfoDetails);
+ var pklist = sugarQueryable1.Where(b => b.LocationCode == "鎴愬搧寰呭彂璐у尯" && b.StockStatus==StockStatusEmun.骞冲簱鍏ュ簱瀹屾垚.ObjToInt() && (b.ShipmentOrder==null|| b.ShipmentOrder =="")).Where(x=>x.proStockInfoDetails.Any(v=>v.ProductCode== outOrderDetail.PCode)).Select(b => new ProStockViewDTO
+ {
+ ProStockAttribute = b.ProStockAttribute,
+ LocationCode = b.LocationCode,
+ WarehouseId = b.WarehouseId,
+ CreateDate = b.CreateDate,
+ Creater = b.Creater,
+ LocationName = b.LocationCode,
+ Modifier = b.Modifier,
+ ModifyDate = b.ModifyDate,
+ PalletCode = b.PalletCode,
+ StockRemark = b.Remark,
+ ProStockId = b.Id,
+ StockStatus = b.StockStatus,
+ Details = b.proStockInfoDetails,
+ });
+ stockViewDTOs.AddRange(pklist.ToList());
+ stockViewDTOs.ForEach(x =>
+ {
+ x.ProductCode = string.Join(",", x.Details.Select(x => x.ProductCode).Distinct());
+ x.ProductVersion = string.Join(",", x.Details.Select(x => x.ProductVersion).Distinct());
+ x.SpecifyVer = string.Join(",", x.Details.Select(x => x.SpecifyVer).Distinct());
+ x.DateCode = x.Details.FirstOrDefault()?.DateCode ?? "";
+ x.LotNumber = x.Details.FirstOrDefault()?.LotNumber ?? "";
+ x.ERPOrder = x.Details.FirstOrDefault()?.ERPOrder ?? "";
+ x.SaleOrder = x.Details.FirstOrDefault()?.SaleOrder ?? "";
+ x.MoNumber = x.Details.FirstOrDefault()?.MoNumber ?? "";
+ x.SumStocks = x.Details.Sum(x => x.StockPcsQty);
+ }
+ );
+ return stockViewDTOs.OrderBy(x => x.DateCode).ThenBy(x => x.CreateDate).ToList();
+ //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,
+ // CreateDate=a.CreateDate,
+ // ERPOrder=b.ERPOrder,
+ // MoNumber=b.MoNumber
+ //}, 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,
+ // ERPOrder=x.FirstOrDefault()?.ERPOrder ?? "",
+ // MoNumber=x.FirstOrDefault()?.MoNumber ?? "",
+ // CreateDate=x.FirstOrDefault()?.CreateDate ?? new DateTime()
+ //}).ToList();
+ }
+ catch (Exception ex)
+ {
+ throw new Exception(ex.Message);
+ }
+ }
}
}
--
Gitblit v1.9.3