From e6b190354191122069b1a0518f050d6504f7ec5e Mon Sep 17 00:00:00 2001
From: wanshenmean <cathay_xy@163.com>
Date: 星期三, 11 二月 2026 15:29:39 +0800
Subject: [PATCH] 重构WMS服务并简化逻辑
---
Code/WMS/WIDESEA_WMSServer/WIDESEA_StockService/StockViewService.cs | 108 ++++++++++++++++++++++-------------------------------
1 files changed, 45 insertions(+), 63 deletions(-)
diff --git a/Code/WMS/WIDESEA_WMSServer/WIDESEA_StockService/StockViewService.cs b/Code/WMS/WIDESEA_WMSServer/WIDESEA_StockService/StockViewService.cs
index 7f7fcea..2f69d4f 100644
--- a/Code/WMS/WIDESEA_WMSServer/WIDESEA_StockService/StockViewService.cs
+++ b/Code/WMS/WIDESEA_WMSServer/WIDESEA_StockService/StockViewService.cs
@@ -1,13 +1,10 @@
锘縰sing SqlSugar;
using System.Dynamic;
using System.Reflection;
-using WIDESEA_Common.LocationEnum;
using WIDESEA_Core;
using WIDESEA_Core.BaseRepository;
using WIDESEA_Core.DB.Models;
using WIDESEA_Core.Helper;
-//using WIDESEA_Core.HostedService;
-using WIDESEA_Core.Utilities;
using WIDESEA_DTO.Stock;
using WIDESEA_IStockService;
using WIDESEA_Model.Models;
@@ -16,86 +13,71 @@
{
public partial class StockViewService : IStockViewService
{
- private readonly IUnitOfWorkManage _unitOfWorkManage;
private readonly SqlSugarClient _dbBase;
public StockViewService(IUnitOfWorkManage unitOfWorkManage)
{
- _unitOfWorkManage = unitOfWorkManage;
_dbBase = unitOfWorkManage.GetDbClient();
}
public virtual PageGridData<StockViewDTO> GetPageData(PageDataOptions options)
{
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>();
- ISugarQueryable<Dt_StockInfoDetail> sugarQueryable2 = _dbBase.Queryable<Dt_StockInfoDetail>();
-
-
- List<StockViewDTO> list = sugarQueryable1.InnerJoin(sugarQueryable, (b, a) => a.LocationCode == b.LocationCode).WhereIF(!string.IsNullOrEmpty(where), where).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,
- }).ToPageList(options.Page, options.Rows, ref totalCount);
-
+ var list = _dbBase.Queryable<Dt_StockInfo>()
+ .InnerJoin<Dt_LocationInfo>((b, a) => a.LocationCode == b.LocationCode)
+ .WhereIF(!string.IsNullOrEmpty(where), where)
+ .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,
+ })
+ .ToPageList(options.Page, options.Rows, ref totalCount);
return new PageGridData<StockViewDTO>(totalCount, list);
-
}
public virtual object GetDetailPage(PageDataOptions pageData)
{
- Type t = typeof(StockViewDTO);
+ if (pageData.Value == null)
+ return new PageGridData<object>(total: 0, null);
- if (pageData.Value == null) return new PageGridData<object>(total: 0, null);
- string keyName = t.GetKeyName();
- ////鐢熸垚鏌ヨ鏉′欢
- //Expression<Func<TEntity, bool>> whereExpression = keyName.CreateExpression<TEntity>(pageData.Value, LinqExpressionType.Equal);
+ var propertyInfo = typeof(StockViewDTO).GetProperties()
+ .FirstOrDefault(x => x.GetCustomAttribute<Navigate>() != null);
+
+ if (propertyInfo == null)
+ return new PageGridData<object>(total: 0, null);
+
+ var detailType = propertyInfo.PropertyType.GetGenericArguments()[0];
+ var navigate = propertyInfo.GetCustomAttribute<Navigate>();
+
+ if (navigate == null)
+ return new PageGridData<object>(total: 0, null);
+
int totalCount = 0;
- PropertyInfo? propertyInfo = t.GetProperties().FirstOrDefault(x => x.GetCustomAttribute<Navigate>() != null);
- if (propertyInfo != null)
- {
- Type detailType = propertyInfo.PropertyType.GetGenericArguments()[0];
- Navigate? navigate = propertyInfo.GetCustomAttribute<Navigate>();
- if (navigate != null)
- {
- List<ExpandoObject> list = _dbBase.Queryable(detailType.Name, "detail").Where(navigate.GetName(), "=", pageData.Value).ToPageList(pageData.Page, pageData.Rows, ref totalCount);
- return new PageGridData<ExpandoObject>(totalCount, list);
- }
- }
- return new PageGridData<object>(total: 0, null);
+ var list = _dbBase.Queryable(detailType.Name, "detail")
+ .Where(navigate.GetName(), "=", pageData.Value)
+ .ToPageList(pageData.Page, pageData.Rows, ref totalCount);
+
+ return new PageGridData<ExpandoObject>(totalCount, list);
}
}
}
--
Gitblit v1.9.3