From f40ba2a9fb9d3c2ece08e9a7cd987d4744dccab2 Mon Sep 17 00:00:00 2001
From: dengjunjie <dengjunjie@hnkhzn.com>
Date: 星期二, 17 六月 2025 15:22:05 +0800
Subject: [PATCH] 优化库内移库,堆垛机和穿梭车交互逻辑
---
项目代码/WMS/WIDESEA_WMSServer/WIDESEA_StockService/Base/StockViewService.cs | 228 +++++++++++++++++++++++++++++---------------------------
1 files changed, 117 insertions(+), 111 deletions(-)
diff --git "a/\351\241\271\347\233\256\344\273\243\347\240\201/WMS/WIDESEA_WMSServer/WIDESEA_StockService/Base/StockViewService.cs" "b/\351\241\271\347\233\256\344\273\243\347\240\201/WMS/WIDESEA_WMSServer/WIDESEA_StockService/Base/StockViewService.cs"
index b13506a..ab79b7d 100644
--- "a/\351\241\271\347\233\256\344\273\243\347\240\201/WMS/WIDESEA_WMSServer/WIDESEA_StockService/Base/StockViewService.cs"
+++ "b/\351\241\271\347\233\256\344\273\243\347\240\201/WMS/WIDESEA_WMSServer/WIDESEA_StockService/Base/StockViewService.cs"
@@ -42,128 +42,128 @@
{
#region MyRegion
- //try
- //{
- // List<StockViewDTO> stockViewDTOs = new List<StockViewDTO>();
+ try
+ {
+ List<StockViewDTO> stockViewDTOs = new List<StockViewDTO>();
- // string where = string.Empty;
- // ISugarQueryable<Dt_StockInfo> sugarQueryable1 = _dbBase.Queryable<Dt_StockInfo>().Includes(x => x.Details);
- // if (!string.IsNullOrEmpty(options.Wheres))
- // {
- // try
- // {
- // List<SearchParameters> searchParametersList = options.Wheres.DeserializeObject<List<SearchParameters>>();
- // if (searchParametersList.Count > 0)
- // {
- // {
- // SearchParameters? searchParameters = searchParametersList.FirstOrDefault(x => x.Name == nameof(Dt_StockInfoDetail.MaterielCode).FirstLetterToLower());
- // if (searchParameters != null)
- // {
- // sugarQueryable1 = sugarQueryable1.Where(x => x.Details.Any(v => v.MaterielCode.Contains(searchParameters.Value)));
- // }
- // }
+ string where = string.Empty;
+ ISugarQueryable<Dt_StockInfo> sugarQueryable1 = _dbBase.Queryable<Dt_StockInfo>().Includes(x => x.Details);
+ if (!string.IsNullOrEmpty(options.Wheres))
+ {
+ try
+ {
+ List<SearchParameters> searchParametersList = options.Wheres.DeserializeObject<List<SearchParameters>>();
+ if (searchParametersList.Count > 0)
+ {
+ {
+ SearchParameters? searchParameters = searchParametersList.FirstOrDefault(x => x.Name == nameof(Dt_StockInfoDetail.MaterielCode).FirstLetterToLower());
+ if (searchParameters != null)
+ {
+ sugarQueryable1 = sugarQueryable1.Where(x => x.Details.Any(v => v.MaterielCode.Contains(searchParameters.Value)));
+ }
+ }
- // {
- // SearchParameters? searchParameters = searchParametersList.FirstOrDefault(x => x.Name == nameof(Dt_StockInfoDetail.BatchNo).FirstLetterToLower());
- // if (searchParameters != null)
- // {
- // sugarQueryable1 = sugarQueryable1.Where(x => x.Details.Any(v => v.BatchNo.Contains(searchParameters.Value)));
- // }
- // }
+ {
+ SearchParameters? searchParameters = searchParametersList.FirstOrDefault(x => x.Name == nameof(Dt_StockInfoDetail.BatchNo).FirstLetterToLower());
+ if (searchParameters != null)
+ {
+ sugarQueryable1 = sugarQueryable1.Where(x => x.Details.Any(v => v.BatchNo.Contains(searchParameters.Value)));
+ }
+ }
- // }
+ }
- // }
- // catch { }
- // }
- // //string whereSto = GetDataRole(typeof(Dt_StockInfo));
- // //sugarQueryable1 = sugarQueryable1.Where(whereSto);
- // EntityProperties.ValidatePageOptions(options, ref sugarQueryable1);
+ }
+ catch { }
+ }
+ //string whereSto = GetDataRole(typeof(Dt_StockInfo));
+ sugarQueryable1 = sugarQueryable1.Where("1 = 1");
+ EntityProperties.ValidatePageOptions(options, ref sugarQueryable1);
- // //string whereLo = GetDataRole(typeof(Dt_LocationInfo));
- // //ISugarQueryable<Dt_LocationInfo> sugarQueryable = _dbBase.Queryable<Dt_LocationInfo>().Where(whereLo);
+ //string whereLo = GetDataRole(typeof(Dt_LocationInfo));
+ ISugarQueryable<Dt_LocationInfo> sugarQueryable = _dbBase.Queryable<Dt_LocationInfo>().Where("1 = 1");
- // //EntityProperties.ValidatePageOptions(options, ref sugarQueryable);
+ EntityProperties.ValidatePageOptions(options, ref sugarQueryable);
- // ISugarQueryable<StockViewDTO> list = sugarQueryable1.InnerJoin(sugarQueryable, (b, a) => a.LocationCode == b.LocationCode).Select((b, a)
- // => new StockViewDTO
- // {
- // LocationCode = b.LocationCode,
- // Column = a.Column,
- // CreateDate = b.CreateDate,
- // Creater = b.Creater,
- // Depth = a.Depth,
- // EnalbeStatus = a.EnableStatus,
- // Layer = a.Layer,
- // LocationName = a.LocationName,
- // LocationStatus = a.LocationStatus,
- // LocationType = a.LocationType,
- // Modifier = b.Modifier,
- // ModifyDate = b.ModifyDate,
- // PalletCode = b.PalletCode,
- // StockRemark = b.Remark,
- // RoadwayNo = a.RoadwayNo,
- // Row = a.Row,
- // StockId = b.Id,
- // StockStatus = b.StockStatus,
- // Details = b.Details,
- // });
+ ISugarQueryable<StockViewDTO> list = sugarQueryable1.InnerJoin(sugarQueryable, (b, a) => a.LocationCode == b.LocationCode).Select((b, a)
+ => new StockViewDTO
+ {
+ LocationCode = b.LocationCode,
+ Column = a.Column,
+ CreateDate = b.CreateDate,
+ Creater = b.Creater,
+ Depth = a.Depth,
+ EnalbeStatus = a.EnableStatus,
+ Layer = a.Layer,
+ LocationName = a.LocationName,
+ LocationStatus = a.LocationStatus,
+ LocationType = a.LocationType,
+ Modifier = b.Modifier,
+ ModifyDate = b.ModifyDate,
+ PalletCode = b.PalletCode,
+ StockRemark = b.Remark,
+ RoadwayNo = a.RoadwayNo,
+ Row = a.Row,
+ StockId = b.Id,
+ StockStatus = b.StockStatus,
+ Details = b.Details,
+ });
- // int totalCount = 0;
+ int totalCount = 0;
- // stockViewDTOs = list.ToPageList(options.Page, options.Rows, ref totalCount);
- // return new PageGridData<StockViewDTO>(totalCount, stockViewDTOs);
- //}
- //catch (Exception ex)
- //{
- // return new PageGridData<StockViewDTO>();
- //}
+ stockViewDTOs = list.ToPageList(options.Page, options.Rows, ref totalCount);
+ return new PageGridData<StockViewDTO>(totalCount, stockViewDTOs);
+ }
+ catch (Exception ex)
+ {
+ return new PageGridData<StockViewDTO>();
+ }
#endregion
#region MyRegion
- string where = options.ValidatePageOptions(typeof(StockViewDTO).GetProperties());
- //鑾峰彇鎺掑簭瀛楁
- //Dictionary<string, OrderByType> orderbyDic = options.GetPageDataSort(typeof(StockViewDTO).GetProperties());
- //List<OrderByModel> orderByModels = new List<OrderByModel>();
- //foreach (var item in orderbyDic)
+ //string where = options.ValidatePageOptions(typeof(StockViewDTO).GetProperties());
+ ////鑾峰彇鎺掑簭瀛楁
+ ////Dictionary<string, OrderByType> orderbyDic = options.GetPageDataSort(typeof(StockViewDTO).GetProperties());
+ ////List<OrderByModel> orderByModels = new List<OrderByModel>();
+ ////foreach (var item in orderbyDic)
+ ////{
+ //// OrderByModel orderByModel = new OrderByModel()
+ //// {
+ //// FieldName = item.Key,
+ //// OrderByType = item.Value
+ //// };
+ //// orderByModels.Add(orderByModel);
+ ////}
+ //int totalCount = 0;
+
+ //ISugarQueryable<Dt_StockInfo> sugarQueryable1 = _dbBase.Queryable<Dt_StockInfo>();
+ //ISugarQueryable<Dt_LocationInfo> sugarQueryable = _dbBase.Queryable<Dt_LocationInfo>();
+
+ //List<StockViewDTO> list = sugarQueryable1.InnerJoin(sugarQueryable, (b, a) => a.LocationCode == b.LocationCode).WhereIF(!string.IsNullOrEmpty(where), where).Select((b, a) => new StockViewDTO
//{
- // OrderByModel orderByModel = new OrderByModel()
- // {
- // FieldName = item.Key,
- // OrderByType = item.Value
- // };
- // orderByModels.Add(orderByModel);
- //}
- int totalCount = 0;
-
- ISugarQueryable<Dt_StockInfo> sugarQueryable1 = _dbBase.Queryable<Dt_StockInfo>();
- ISugarQueryable<Dt_LocationInfo> sugarQueryable = _dbBase.Queryable<Dt_LocationInfo>();
-
- List<StockViewDTO> list = sugarQueryable1.InnerJoin(sugarQueryable, (b, a) => a.LocationCode == b.LocationCode).WhereIF(!string.IsNullOrEmpty(where), where).Select((b, a) => new StockViewDTO
- {
- AreaId = a.AreaId,
- LocationCode = b.LocationCode,
- Column = a.Column,
- CreateDate = b.CreateDate,
- Creater = b.Creater,
- Depth = a.Depth,
- EnalbeStatus = a.EnableStatus,
- IsFull = b.IsFull,
- Layer = a.Layer,
- LocationName = a.LocationName,
- LocationStatus = a.LocationStatus,
- LocationType = a.LocationType,
- Modifier = b.Modifier,
- ModifyDate = b.ModifyDate,
- PalletCode = b.PalletCode,
- StockRemark = b.Remark,
- RoadwayNo = a.RoadwayNo,
- Row = a.Row,
- StockId = b.Id,
- StockStatus = b.StockStatus,
- Details = b.Details,
- }).ToPageList(options.Page, options.Rows, ref totalCount);
- return new PageGridData<StockViewDTO>(totalCount, list);
+ // AreaId = a.AreaId,
+ // LocationCode = b.LocationCode,
+ // Column = a.Column,
+ // CreateDate = b.CreateDate,
+ // Creater = b.Creater,
+ // Depth = a.Depth,
+ // EnalbeStatus = a.EnableStatus,
+ // IsFull = b.IsFull,
+ // Layer = a.Layer,
+ // LocationName = a.LocationName,
+ // LocationStatus = a.LocationStatus,
+ // LocationType = a.LocationType,
+ // Modifier = b.Modifier,
+ // ModifyDate = b.ModifyDate,
+ // PalletCode = b.PalletCode,
+ // StockRemark = b.Remark,
+ // RoadwayNo = a.RoadwayNo,
+ // Row = a.Row,
+ // StockId = b.Id,
+ // StockStatus = b.StockStatus,
+ // Details = b.Details,
+ //}).ToPageList(options.Page, options.Rows, ref totalCount);
+ //return new PageGridData<StockViewDTO>(totalCount, list);
#endregion
}
@@ -196,10 +196,16 @@
Row = dt_LocationInfo.Row
};
List<Dt_StockInfo> dt_StockInfos = StockInfos.Where(x => x.LocationCode == dt_LocationInfo.LocationCode).ToList();
+ List<Dt_StockInfoDetail> Details = new List<Dt_StockInfoDetail>();
+ foreach (var item in dt_StockInfos)
+ {
+ Details.AddRange(item.Details);
+ }
+ var BatchNo = string.Join(",", Details.GroupBy(x => x.BatchNo).Select(x => x.Key).ToList());
if (dt_StockInfos.Count > 0 && dt_StockInfos != null)
{
- locationStockView.BatchNo = dt_StockInfos.First().Details.First().BatchNo;
- locationStockView.InDate = dt_StockInfos.First().InDate;
+ locationStockView.BatchNo = BatchNo;
+ locationStockView.InDate = dt_StockInfos.OrderByDescending(x => x.InDate).First().InDate;
locationStockView.MaterielCode = dt_StockInfos.First().Details.First().MaterielCode;
locationStockView.MaterielName = dt_StockInfos.First().Details.First().MaterielName;
locationStockView.OrderNo = dt_StockInfos.First().Details.First().OrderNo;
--
Gitblit v1.9.3