From 51f7eb771322a65ee552ca9b60280632f72760e6 Mon Sep 17 00:00:00 2001
From: wxw <Administrator@DESKTOP-5BIMHQ3>
Date: 星期三, 15 十月 2025 16:55:08 +0800
Subject: [PATCH] 修改物料管理列表

---
 Wms/WMS.BLL/SysServer/MaterialsServer.cs |   71 ++++++++++++++++++++++++++---------
 1 files changed, 52 insertions(+), 19 deletions(-)

diff --git a/Wms/WMS.BLL/SysServer/MaterialsServer.cs b/Wms/WMS.BLL/SysServer/MaterialsServer.cs
index d23f17a..aaa6ff4 100644
--- a/Wms/WMS.BLL/SysServer/MaterialsServer.cs
+++ b/Wms/WMS.BLL/SysServer/MaterialsServer.cs
@@ -8,10 +8,13 @@
 using System.Threading.Tasks;
 using AutoMapper;
 using Model.InterFaceModel;
+using Model.ModelDto.BllSoDto;
 using Model.ModelDto.SysDto;
+using Model.ModelVm.SysVm;
 using SqlSugar;
 using Utility;
 using WMS.DAL;
+using WMS.Entity.BllSoEntity;
 using WMS.Entity.Context;
 using WMS.Entity.SysEntity;
 using WMS.IBLL.ISysServer;
@@ -19,7 +22,7 @@
 
 namespace WMS.BLL.SysServer
 {
-    public class MaterialsServer : DbHelper<SysMaterialCategory>, IMaterialsServer
+    public class MaterialsServer : DbHelper<SysMaterials>, IMaterialsServer
     {
         /// <summary>
         /// 渚濊禆娉ㄥ叆
@@ -54,25 +57,55 @@
         /// <param name="environment">瀛樺偍鐜</param>
         /// <param name="categoryNo">绫诲埆缂栫爜</param>
         /// <returns></returns>
-        public Task<List<MaterialsDto>> GetMateList(string skuNo, string skuName, string auditStatusNo, string type, string isControlled, string isInspect, string environment, string categoryNo)
+        public async Task<List<MaterialsDto>> GetMateList(GetMaterialsVm model, RefAsync<int> count)
         {
-            var DA =  Db.Queryable<SysMaterials>()
-                     .LeftJoin<SysUserInfor>((a, b) => a.CreateUser == b.Id)
-                     .LeftJoin<SysPackag>((a, b,c) => a.PackagNo == c.PackagNo)
-                     //.LeftJoin<SysUnit> ((a,b,c,d)=>a.UnitNo == d.UnitNo)
-                     .LeftJoin<SysMaterialCategory>((a,b,c,d)=>a.CategoryNo == d.CategoryNo)
-                     .Where((a,b,c,d) => a.IsDel == "0" && d.IsDel == "0" )
-                     .WhereIF(!string.IsNullOrEmpty(skuNo), a => a.SkuNo.Contains(skuNo))
-                     .WhereIF(!string.IsNullOrEmpty(skuName), a => a.SkuName.Contains(skuName))
-                     .WhereIF(!string.IsNullOrEmpty(auditStatusNo), a => a.AuditStatusNo == auditStatusNo)
-                     .WhereIF(!string.IsNullOrEmpty(type), a => a.Type == type)
-                     .WhereIF(!string.IsNullOrEmpty(isControlled), a => a.IsControlled == isControlled)
-                     .WhereIF(!string.IsNullOrEmpty(isInspect), a => a.IsInspect == isInspect)
-                     .WhereIF(!string.IsNullOrEmpty(environment), a => a.Environment == environment)
-                     .WhereIF(!string.IsNullOrEmpty(categoryNo), a => a.CategoryNo == categoryNo)
-                     .Select<MaterialsDto>((a, b, c,d) => new MaterialsDto() { CreateUserName = b.RealName,PackagName = c.PackagName }, true)
-                     .ToListAsync();
-            return DA;
+            Expression<Func<SysMaterials, bool>> item = Expressionable.Create<SysMaterials>()
+             .AndIF(!string.IsNullOrWhiteSpace(model.SkuNo), it => it.SkuNo.Contains(model.SkuNo.Trim()))
+             .AndIF(!string.IsNullOrWhiteSpace(model.SkuName), it => it.SkuNo.Contains(model.SkuName.Trim()))
+             .AndIF(!string.IsNullOrWhiteSpace(model.AuditStatusNo), it => it.AuditStatusNo == model.AuditStatusNo)
+             .AndIF(!string.IsNullOrWhiteSpace(model.Type), it => it.Type == model.Type)
+             .AndIF(!string.IsNullOrWhiteSpace(model.IsControlled), it => it.IsControlled == model.IsControlled)
+             .AndIF(!string.IsNullOrWhiteSpace(model.IsInspect), it => it.IsInspect == model.IsInspect)
+             .AndIF(!string.IsNullOrWhiteSpace(model.Environment), it => it.Environment == model.Environment)
+             .AndIF(!string.IsNullOrWhiteSpace(model.CategoryNo), it => it.CategoryNo == model.CategoryNo)
+             .And(it => it.IsDel == "0")
+             .ToExpression();//娉ㄦ剰 杩欎竴鍙� 涓嶈兘灏�
+            //Db.Aop.OnLogExecuting = (sql, data) =>
+            //{
+            //    var nl = sql;
+            //};
+            var data = await GetAllWhereAsync(item)
+               .LeftJoin<SysUserInfor>((a, b) => a.CreateUser == b.Id && b.IsDel == "0")
+               .LeftJoin<SysPackag>((a, b, c) => a.PackagNo == c.PackagNo && c.IsDel == "0")
+               .LeftJoin<SysMaterialCategory>((a, b, c, d) => a.CategoryNo == d.CategoryNo && d.IsDel == "0")
+               .Select((a, b, c, d) => new MaterialsDto()
+               {
+                   SkuNo = a.SkuNo,
+                   SkuName = a.SkuName,
+                   Standard = a.Standard,
+                   Type = a.Type,
+                   IsControlled = a.IsControlled,
+                   IsInspect = a.IsInspect,
+                   IsPasteCode = a.IsPasteCode,
+                   Origin = a.Origin,
+                   UnitNo = a.UnitNo,
+                   PackagName = c.PackagName,
+                   Environment = a.Environment,
+                   CategoryNo = d.CategoryNo,
+                   Weight = a.Weight,
+                   Warranty = a.Warranty,
+                   UnpackWarranty = a.UnpackWarranty,
+                   AdventTime = a.AdventTime,
+                   LowInventory = a.LowInventory,
+                   Demo = a.Demo,
+                   CreateUserName = b.UserName,
+                   CreateTime = a.CreateTime
+               })
+               .Distinct()
+               .OrderByDescending(a => a.CreateTime)
+               .ToPageListAsync(model.Page, model.Limit, count);
+
+            return data;
         }
 
         /// <summary>

--
Gitblit v1.8.0