From bcde5ea70330cb16597c2320b94b5f1d7cb15752 Mon Sep 17 00:00:00 2001 From: huangxiaoqiang <huangxiaoqiang@hnkhzn.com> Date: 星期六, 15 二月 2025 15:32:16 +0800 Subject: [PATCH] 优化页面 --- Code Management/WMS/WIDESEA_WMSServer/WIDESEA_StorageBasicServices/Stock/StockInfoService.cs | 117 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++-- 1 files changed, 112 insertions(+), 5 deletions(-) diff --git a/Code Management/WMS/WIDESEA_WMSServer/WIDESEA_StorageBasicServices/Stock/StockInfoService.cs b/Code Management/WMS/WIDESEA_WMSServer/WIDESEA_StorageBasicServices/Stock/StockInfoService.cs index 7bd4021..08ecdc5 100644 --- a/Code Management/WMS/WIDESEA_WMSServer/WIDESEA_StorageBasicServices/Stock/StockInfoService.cs +++ b/Code Management/WMS/WIDESEA_WMSServer/WIDESEA_StorageBasicServices/Stock/StockInfoService.cs @@ -1,4 +1,12 @@ -锘� +锘縰sing AngleSharp.Dom; +using Mapster; +using Masuit.Tools; +using SqlSugar; +using System.Collections.Generic; +using System.Drawing.Printing; +using System.Linq.Expressions; +using WIDESEA_Core; + namespace WIDESEA_StorageBasicService; public class StockInfoService : ServiceBase<DtStockInfo, IStockInfoRepository>, IStockInfoService @@ -7,13 +15,112 @@ { } + /// <summary> + /// 鍒嗛〉 + /// </summary> + /// <param name="options"></param> + /// <returns></returns> public override PageGridData<DtStockInfo> GetPageData(PageDataOptions options) { - var data = base.GetPageData(options); - foreach (var item in data.Rows) + string wheres = ValidatePageOptions(options); + //鑾峰彇鎺掑簭瀛楁 + Dictionary<string, SqlSugar.OrderByType> orderbyDic = GetPageDataSort(options, TProperties); + List<OrderByModel> orderByModels = new List<OrderByModel>(); + foreach (var item in orderbyDic) { - item.Remark = item.StockInfoDetails.Count().ToString(); + OrderByModel orderByModel = new() + { + FieldName = item.Key, + OrderByType = item.Value + }; + orderByModels.Add(orderByModel); } - return data; + + + int totalCount = 0; + List<SearchParameters> searchParametersList = new List<SearchParameters>(); + if (!string.IsNullOrEmpty(options.Wheres)) + { + try + { + searchParametersList = options.Wheres.DeserializeObject<List<SearchParameters>>(); + options.Filter = searchParametersList; + } + catch { } + } + + Expression<Func<DtStockInfo, bool>> locationStatus = null; + Expression<Func<DtStockInfo, bool>> roadwayNo = null; + foreach (var item in searchParametersList) + { + if (item.Name.Contains("locationStatus")) + { + locationStatus = x => x.LocationInfo.LocationStatus == Convert.ToInt32(item.Value); + } + else if (item.Name.Contains("roadwayNo")) + { + roadwayNo = x => x.LocationInfo.RoadwayNo.Contains(item.Value); + } + } + + var data = BaseDal.Db.Queryable<DtStockInfo>().IncludesAllFirstLayer().WhereIF(!wheres.IsNullOrEmpty(), wheres).WhereIF(locationStatus != null, locationStatus).WhereIF(roadwayNo != null, roadwayNo).OrderBy(orderByModels).ToPageList(options.Page, options.Rows, ref totalCount); + new PageGridData<DtStockInfo>(totalCount, data); + return new PageGridData<DtStockInfo>(totalCount, data); + //var data = base.GetPageData(options); + //foreach (var item in data.Rows) + //{ + // if (item.IsFull) + // item.Remark = item.StockInfoDetails.Count().ToString(); + // else + // item.Remark = "0"; + //} + //return data; + } + + /// <summary> + /// 鎵归噺鍒犻櫎 + /// </summary> + /// <param name="keys"></param> + /// <returns></returns> + public override WebResponseContent DeleteData(object[] keys) + { + try + { + List<DtStockInfo_Hty> stockInfos = new List<DtStockInfo_Hty>(); + List<DtLocationInfo> locationInfos = new List<DtLocationInfo>(); + foreach (var item in keys) + { + var stock = BaseDal.QueryFirstNavAsync(x => x.Id == item.ObjToInt()).Result; + var stockHty = stock.Adapt<DtStockInfo_Hty>(); + stockInfos.Add(stockHty); + + var location = SqlSugarHelper.DbWMS.Queryable<DtLocationInfo>().FirstAsync(x => x.Id == stock.LocationId).Result; + location.LocationStatus = (int)LocationEnum.Free; + locationInfos.Add(location); + } + + var hty = BaseDal.Db.InsertNav(stockInfos) + .Include(x => x.StockInfoDetails) + .ExecuteCommand(); + + var locationd = SqlSugarHelper.DbWMS.Updateable(locationInfos).ExecuteCommandHasChange(); + return base.DeleteData(keys); + } + catch (Exception ex) + { + return WebResponseContent.Instance.Error(ex.Message); + } + } + + // 鏍规嵁浼犲叆搴撳瓨绫诲瀷鑾峰彇涓嶅悓宸烽亾鐨勫簱瀛� + public async Task<Dictionary<string, int>> GetLocationByStockType(bool stockType, string areaCode) + { + var stockInfos = await BaseDal.Db.Queryable<DtStockInfo>().Where(x => x.IsFull == stockType && x.AreaCode == areaCode) + .Includes(x => x.LocationInfo).ToListAsync(); + + var result = stockInfos + .GroupBy(x => x.LocationInfo.RoadwayNo) + .ToDictionary(x => x.Key, x => x.Count()); + return result; } } \ No newline at end of file -- Gitblit v1.9.3