From 1e12c140c041c0cb52306a0db9ff0ba18354d0d8 Mon Sep 17 00:00:00 2001
From: dengjunjie <dengjunjie@hnkhzn.com>
Date: 星期四, 03 四月 2025 18:01:52 +0800
Subject: [PATCH] 优化WMS前端首页,货位查询column数据库关键字处理
---
项目代码/WMS/WIDESEA_WMSServer/WIDESEA_StockService/Base/StockViewService.cs | 164 ++++++++++++++++++++++++++++++++++++++++++++++++++++++
1 files changed, 163 insertions(+), 1 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 fff5b33..b13506a 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"
@@ -1,4 +1,5 @@
锘�
+using MailKit.Search;
using Microsoft.AspNetCore.Http;
using SqlSugar;
using System;
@@ -9,6 +10,7 @@
using System.Reflection;
using System.Text;
using System.Threading.Tasks;
+using WIDESEA_Common;
using WIDESEA_Core;
using WIDESEA_Core.BaseRepository;
using WIDESEA_Core.BaseServices;
@@ -16,6 +18,7 @@
using WIDESEA_Core.Helper;
using WIDESEA_Core.Utilities;
using WIDESEA_DTO.Stock;
+using WIDESEA_IBasicRepository;
using WIDESEA_IStockRepository;
using WIDESEA_IStockService;
using WIDESEA_Model.Models;
@@ -25,16 +28,99 @@
public partial class StockViewService : IStockViewService
{
private readonly IUnitOfWorkManage _unitOfWorkManage;
+ private readonly IStockRepository _stockRepository;
private readonly SqlSugarClient _dbBase;
- public StockViewService(IUnitOfWorkManage unitOfWorkManage)
+ public StockViewService(IUnitOfWorkManage unitOfWorkManage, IStockRepository stockRepository)
{
_unitOfWorkManage = unitOfWorkManage;
_dbBase = unitOfWorkManage.GetDbClient();
+ _stockRepository = stockRepository;
}
public virtual PageGridData<StockViewDTO> GetPageData(PageDataOptions options)
{
+
+ #region MyRegion
+ //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)));
+ // }
+ // }
+
+ // {
+ // 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);
+
+ // //string whereLo = GetDataRole(typeof(Dt_LocationInfo));
+ // //ISugarQueryable<Dt_LocationInfo> sugarQueryable = _dbBase.Queryable<Dt_LocationInfo>().Where(whereLo);
+
+ // //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,
+ // });
+
+ // 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>();
+ //}
+ #endregion
+
+ #region MyRegion
string where = options.ValidatePageOptions(typeof(StockViewDTO).GetProperties());
//鑾峰彇鎺掑簭瀛楁
//Dictionary<string, OrderByType> orderbyDic = options.GetPageDataSort(typeof(StockViewDTO).GetProperties());
@@ -78,9 +164,85 @@
Details = b.Details,
}).ToPageList(options.Page, options.Rows, ref totalCount);
return new PageGridData<StockViewDTO>(totalCount, list);
+ #endregion
}
+ public virtual WebResponseContent GetLocationStockView(int Layer)
+ {
+ WebResponseContent content = new WebResponseContent();
+ try
+ {
+ List<LocationStockView> locationStockViews = new List<LocationStockView>();
+ ISugarQueryable<Dt_LocationInfo> sugarQueryable = _dbBase.Queryable<Dt_LocationInfo>();
+ List<Dt_LocationInfo> dt_LocationInfos = sugarQueryable.ToList();
+
+ ISugarQueryable<Dt_StockInfo> sugarQueryable1 = _dbBase.Queryable<Dt_StockInfo>().Where(x => dt_LocationInfos.Select(x => x.LocationCode).ToList().Contains(x.LocationCode)).Includes(x => x.Details);
+ List<Dt_StockInfo> StockInfos = sugarQueryable1.OrderBy(x => x.InDate).ToList();
+ foreach (var dt_LocationInfo in dt_LocationInfos)
+ {
+ LocationStockView locationStockView = new LocationStockView()
+ {
+ AreaId = dt_LocationInfo.AreaId,
+ Column = dt_LocationInfo.Column,
+ Depth = dt_LocationInfo.Depth,
+ EnalbeStatus = dt_LocationInfo.EnableStatus,
+ Layer = dt_LocationInfo.Layer,
+ LocationCode = dt_LocationInfo.LocationCode,
+ LocationName = dt_LocationInfo.LocationName,
+ LocationStatus = dt_LocationInfo.LocationStatus,
+ LocationType = dt_LocationInfo.LocationType,
+ RoadwayNo = dt_LocationInfo.RoadwayNo,
+ Row = dt_LocationInfo.Row
+ };
+ List<Dt_StockInfo> dt_StockInfos = StockInfos.Where(x => x.LocationCode == dt_LocationInfo.LocationCode).ToList();
+ if (dt_StockInfos.Count > 0 && dt_StockInfos != null)
+ {
+ locationStockView.BatchNo = dt_StockInfos.First().Details.First().BatchNo;
+ locationStockView.InDate = dt_StockInfos.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;
+ locationStockView.PalletCode = string.Join(",", dt_StockInfos.Select(x => x.PalletCode).ToList());
+ locationStockView.Quantity = dt_StockInfos.Count;
+ }
+ locationStockViews.Add(locationStockView);
+ }
+ if (locationStockViews.Count > 0)
+ {
+ #region MyRegion
+ List<LocationLayer> layers = new List<LocationLayer>();
+ foreach (var layer in locationStockViews.GroupBy(x => x.Layer))
+ {
+ var rows = new List<LocationRow>();
+ var data_rows = layer.GroupBy(t => t.Row);
+ foreach (var data_row in data_rows)
+ {
+ rows.Add(new LocationRow()
+ {
+ index = data_row.Key,
+ cols = data_row.OrderBy(x => x.Column).ToList()
+ });
+ }
+ //rows=rows.OrderBy(x=>x.index).ToList();
+ layers.Add(new LocationLayer()
+ {
+ index = layer.Key,
+ rows = rows
+ });
+ }
+ #endregion
+ layers = layers.OrderBy(x => x.index).ToList();
+ content.OK(data: layers);
+ }
+ }
+ catch (Exception ex)
+ {
+ content.Error(ex.Message);
+ }
+ return content;
+ }
+
public virtual object GetDetailPage(PageDataOptions pageData)
{
Type t = typeof(StockViewDTO);
--
Gitblit v1.9.3