LA24030_LuLiPackageLine_Wms/Admin.NET.Application/Service/WmsBase/WmsBasePlace/Dto/WmsBasePlaceOutput.cs
@@ -1,4 +1,6 @@ namespace Admin.NET.Application; using Admin.NET.Application.Entity; namespace Admin.NET.Application; /// <summary> /// 库位信息输出参数 @@ -131,5 +133,121 @@ public bool IsDelete { get; set; } } /// <summary> /// 库位视图输出参 /// </summary> public class LocationViewOutput { /// <summary> /// 进入时间 /// </summary> public DateTime? InTime { get; set; } /// <summary> /// 部件条码 /// </summary> public string Upi { get; set; } /// <summary> /// 部件名称 /// </summary> public string DetailName { get; set; } /// <summary> /// 批次 /// </summary> public string PlanNo { get; set; } /// <summary> /// 订单号 /// </summary> public string OrderId { get; set; } /// <summary> /// 包装号 /// </summary> public string PackageCode { get; set; } public float Length { get; set; } public float Width { get; set; } public float Thk { get; set; } /// <summary> /// 库存状态 /// </summary> public StockStatusEnum StockStatus { get; set; } /// <summary> /// 库存状态名称 /// </summary> public string StockStatusName { get; set; } /// <summary> /// 操作原因 /// </summary> public string? OperReason { get; set; } /// <summary> /// 操作人 /// </summary> public string? OperUser { get; set; } /// <summary> /// 操作时间 /// </summary> public DateTime? OperTime { get; set; } /// <summary> /// 锁定状态 /// </summary> public LockStatusEnum LockStatus { get; set; } /// <summary> /// 锁定原因 /// </summary> public string? LockReason { get; set; } /// <summary> /// 锁定人 /// </summary> public string? LockUser { get; set; } /// <summary> /// 锁定时间 /// </summary> public DateTime? LockTime { get; set; } public int? LaneNo { get; set; } public int? ColumnNo { get; set; } public int? LayerNo { get; set; } /// <summary> /// 库位属性 /// </summary> public PlaceStatusEnum PlaceStatus { get; set; } } LA24030_LuLiPackageLine_Wms/Admin.NET.Application/Service/WmsBase/WmsBasePlace/WmsBasePlaceService.cs
@@ -12,9 +12,12 @@ public class WmsBasePlaceService : IDynamicApiController, ITransient { private readonly SqlSugarRepository<WmsBasePlace> _rep; public WmsBasePlaceService(SqlSugarRepository<WmsBasePlace> rep) private readonly SqlSugarRepository<V_Station_Quan> _V_Station_Quan; public WmsBasePlaceService(SqlSugarRepository<WmsBasePlace> rep, SqlSugarRepository<V_Station_Quan> V_Station_Quan_Rep) { _rep = rep; _V_Station_Quan = V_Station_Quan_Rep; } /// <summary> @@ -260,5 +263,31 @@ await _rep.InsertRangeAsync(places); } /// <summary> /// 不分页查询库位信息 /// </summary> /// <param name="input"></param> /// <returns></returns> [HttpGet] [ApiDescriptionSettings(Name = "ListView")] [Description("WmsBasePlace/ListView")] public async Task<List<LocationViewOutput>> ListView([FromQuery] WmsBasePlaceInput input) { var query = await _V_Station_Quan.AsQueryable() .WhereIF(!string.IsNullOrWhiteSpace(input.SearchKey), u => u.PlaceCode.Contains(input.SearchKey.Trim()) // || u.WareContainerCode.Contains(input.SearchKey.Trim()) //|| u.Lane==input.Lane //|| u.Row==input.Row ) .OrderBy(u => u.LaneNo) //.OrderBy(u => u.Row) .OrderBy(u => u.LayerNo) .OrderBy(u => u.ColumnNo) .Select<LocationViewOutput>().ToListAsync(); return query; } } LA24030_LuLiPackageLine_Wms/Admin.NET.Application/Service/WmsStockQuan/WmsStockQuan/Dto/WmsStockQuanInput.cs
@@ -381,3 +381,88 @@ { } /// <summary> /// 库存信息分页查询输入参数 /// </summary> public class PackListInput : BasePageInput { /// <summary> /// 关键字查询 /// </summary> public string? SearchKey { get; set; } /// <summary> /// 是否齐套 /// </summary> public bool? IsPack { get; set; } /// <summary> /// 进入时间 /// </summary> public DateTime? InTime { get; set; } /// <summary> /// 进入时间范围 /// </summary> public List<DateTime?> InTimeRange { get; set; } /// <summary> /// 部件条码 /// </summary> public string? Upi { get; set; } /// <summary> /// 部件名称 /// </summary> public string? DetailName { get; set; } /// <summary> /// 批次 /// </summary> public string? PlanNo { get; set; } } /// <summary> /// 库存信息分页查询输入参数 /// </summary> public class KittingListInput : BasePageInput { /// <summary> /// 关键字查询 /// </summary> public string? SearchKey { get; set; } /// <summary> /// 是否齐套 /// </summary> public bool? IsKitting { get; set; } /// <summary> /// 进入时间 /// </summary> public DateTime? InTime { get; set; } /// <summary> /// 进入时间范围 /// </summary> public List<DateTime?> InTimeRange { get; set; } /// <summary> /// 部件条码 /// </summary> public string? Upi { get; set; } /// <summary> /// 部件名称 /// </summary> public string? DetailName { get; set; } /// <summary> /// 批次 /// </summary> public string? PlanNo { get; set; } } LA24030_LuLiPackageLine_Wms/Admin.NET.Application/Service/WmsStockQuan/WmsStockQuan/Dto/WmsStockQuanOutput.cs
@@ -146,5 +146,24 @@ public bool IsDelete { get; set; } } /// <summary> /// 整包的入参 /// </summary> public class WmsPackListOutput { public string PackageCode { get; set; } // 包装代码 public int Count { get; set; } // 对应的数量 public bool IsPack { get; set; } } /// <summary> /// 齐套入参 /// </summary> public class WmsKittingListOutput { public string OrderId { get; set; } // 单号 public int Count { get; set; } // 对应的数量 public bool IsKitting { get; set; } } LA24030_LuLiPackageLine_Wms/Admin.NET.Application/Service/WmsStockQuan/WmsStockQuan/WmsStockQuanService.cs
@@ -4,6 +4,7 @@ using System.Data; using System.Web; using System.Text; using System; namespace Admin.NET.Application; /// <summary> /// 库存信息服务 @@ -189,13 +190,13 @@ return query; } /// <summary> /// 重复性验证 /// </summary> /// <param name="input">验证对象</param> /// <param name="isEdit">是否是编辑</param> /// <returns></returns> private async Task CheckExist( WmsStockQuan input,bool isEdit=false) /// <summary> /// 重复性验证 /// </summary> /// <param name="input">验证对象</param> /// <param name="isEdit">是否是编辑</param> /// <returns></returns> private async Task CheckExist( WmsStockQuan input,bool isEdit=false) { @@ -231,7 +232,75 @@ } #endregion #endregion /// <summary> /// 不分页查询齐包管理 /// </summary> /// <param name="input"></param> /// <returns></returns> [HttpGet] [ApiDescriptionSettings(Name = "packList")] [Description("WmsStockQuan/packList")] public async Task<List<WmsPackListOutput>> packList([FromQuery] PackListInput input) { // 查询并转换为 WmsKittingListOutput 对象的列表 var list = await _rep.AsQueryable() .WhereIF(!string.IsNullOrWhiteSpace(input.DetailName), u => u.PlaceCode.Contains(input.DetailName.Trim())) .Select(x => new WmsPackListOutput { PackageCode = x.PackageCode, // 映射其他字段 }) .ToListAsync(); // 确保获取结果为 List // 分组并返回分组信息 var groupedResult = list .GroupBy(x => x.PackageCode) // 按 PackageCode 分组 .Select(g => new WmsPackListOutput { PackageCode = g.Key, // 获取分组的键 Count = g.Count(), // 统计每组的数量 IsPack = g.Count() == 5 ? true : false // 如果 Count 为 5 则 IsKitting 为 1,否则为 0 }) .WhereIF(input.IsPack.HasValue, u => u.IsPack == input.IsPack) .OrderBy(g => g.PackageCode) // 根据 PackageCode 排序 .ToList(); // 转换为 List return groupedResult; // 返回分组结果 } /// <summary> /// 不分页查询齐套管理 /// </summary> /// <param name="input"></param> /// <returns></returns> [HttpGet] [ApiDescriptionSettings(Name = "KittingList")] [Description("WmsStockQuan/KittingList")] public async Task<List<WmsKittingListOutput>> KittingList([FromQuery] KittingListInput input) { var list = await _rep.AsQueryable() .WhereIF(!string.IsNullOrWhiteSpace(input.DetailName), u => u.PlaceCode.Contains(input.DetailName.Trim())) .Select(x => new WmsKittingListOutput { OrderId = x.OrderId }) .ToListAsync(); // 确保获取结果为 List // 分组并返回分组信息 var groupedResult = list .GroupBy(x => x.OrderId) // 按 PackageCode 分组 .Select(g => new WmsKittingListOutput { OrderId = g.Key, // 获取分组的键 Count = g.Count(), // 统计每组的数量 IsKitting = g.Count() == 5 ? true : false // 如果 Count 为 5 则 IsKitting 为 1,否则为 0 }) .WhereIF(input.IsKitting.HasValue, u => u.IsKitting == input.IsKitting) .OrderBy(g => g.OrderId) // 根据 PackageCode 排序 .ToList(); // 转换为 List return groupedResult; // 返回分组结果 } }