From 51f22e5c39abe7ed55a786520fcabe00f3cd1e8f Mon Sep 17 00:00:00 2001
From: zs <zhousong@weben-smart.com>
Date: 周三, 14 5月 2025 11:48:26 +0800
Subject: [PATCH] 命名空间修改

---
 HIAWms/server/src/CMS.Plugin.HIAWms.Application/Implements/WmsCommonAppService.cs |   31 +++++++++++++++++++++++++++----
 1 files changed, 27 insertions(+), 4 deletions(-)

diff --git a/HIAWms/server/src/CMS.Plugin.HIAWms.Application/Implements/WmsCommonAppService.cs b/HIAWms/server/src/CMS.Plugin.HIAWms.Application/Implements/WmsCommonAppService.cs
index 890f1c6..177cf9a 100644
--- a/HIAWms/server/src/CMS.Plugin.HIAWms.Application/Implements/WmsCommonAppService.cs
+++ b/HIAWms/server/src/CMS.Plugin.HIAWms.Application/Implements/WmsCommonAppService.cs
@@ -1,13 +1,15 @@
 锘縰sing CMS.Plugin.HIAWms.Application.Contracts.Dtos.CommonDto;
 using CMS.Plugin.HIAWms.Application.Contracts.Dtos.WmsMaterialStocks;
-using CMS.Plugin.HIAWms.Application.Contracts.Dtos.WmsPlaces;
+using CMS.Plugin.HIAWms.Application.Contracts.Dtos.WmsPlace;
 using CMS.Plugin.HIAWms.Application.Contracts.Services;
 using CMS.Plugin.HIAWms.Domain.WmsMaterials;
 using CMS.Plugin.HIAWms.Domain.WmsMaterialStocks;
 using CMS.Plugin.HIAWms.Domain.WmsPlaces;
+using CmsQueryExtensions.Extension;
 using System;
 using System.Collections.Generic;
 using System.Linq;
+using System.Linq.Expressions;
 using System.Text;
 using System.Threading.Tasks;
 using Volo.Abp;
@@ -44,11 +46,13 @@
         /// <exception cref="UserFriendlyException"></exception>
         public async Task<Dictionary<WmsPlaceDto, int>> FindAvailablePlacesAsync(string materialModel,int requiredNum, string materialNo="" )
         {
+
+            var whereConditions = DynamicGetQueryParams(new GetWmsMaterialStockInput { StorageTypeNo = Domain.Shared.Enums.PlaceTypeEnum.YUANLIAOKUWEI });
             // 1. 鑾峰彇鎵�鏈夊簱瀛樺拰搴撲綅淇℃伅
-            var stockList = await _wmsMaterialStockRepository.GetListAsync(new WmsMaterialStock { StorageTypeNo = Domain.Shared.Enums.PlaceTypeEnum.YUANLIAOKUWEI});
+            var stockList = await _wmsMaterialStockRepository.GetListAsync(whereConditions);
 
             var placeList = await _wmsPlaceRepository.GetListAsync(new WmsPlace { StorageTypeNo = Domain.Shared.Enums.PlaceTypeEnum.YUANLIAOKUWEI});
-            var allPlaceList = ObjectMapper.Map<List<WmsPlace>, List<WmsPlaceDto>>(placeList);
+            var allPlaceList = ObjectMapper.Map<List<WmsPlace>, List<WmsPlaceDto>>(placeList.Where(x => !x.IsDisabled).ToList());
 
             // 2. 鏌ユ壘鐩稿悓鐗╂枡鍨嬪彿鍜岀紪鍙风殑搴撳瓨锛堟寜搴撳瓨閲忛檷搴忥級
             var sameModelStocks = stockList
@@ -113,7 +117,8 @@
         public async Task<Dictionary<WmsMaterialStockDto, int>> FindStockAsync(string materialModel, int requiredNum, string materialNo = "")
         {
             // 1. 鑾峰彇鎵�鏈夊簱瀛橈紙鎺掗櫎閿佸畾搴撳瓨锛�
-            var stockList = (await _wmsMaterialStockRepository.GetListAsync(new WmsMaterialStock()))
+            var whereConditions = DynamicGetQueryParams(new GetWmsMaterialStockInput());
+            var stockList = (await _wmsMaterialStockRepository.GetListAsync(whereConditions))
                 .Where(x => x.IsLock == Domain.Shared.Enums.YesNoEnum.N)
                 .Where(x=>x.StorageTypeNo == Domain.Shared.Enums.PlaceTypeEnum.YUANLIAOKUWEI)
                 .ToList();
@@ -150,5 +155,23 @@
 
             return allocation;
         }
+
+        private FunReturnResultModel<Expression<Func<WmsMaterialStock, bool>>> DynamicGetQueryParams(GetWmsMaterialStockInput input)
+        {
+            //鍔ㄦ�佹瀯閫犳煡璇㈡潯浠�  
+            var whereConditions = WhereConditionsExtensions.GetWhereConditions<WmsMaterialStock, GetWmsMaterialStockInput>(input);
+            if (!whereConditions.IsSuccess)
+            {
+                throw new Exception("鍔ㄦ�佹瀯閫犳煡璇㈡潯浠跺け璐�:" + whereConditions.ErrMsg);
+            }
+
+            //涔熷彲鍐嶆鑷畾涔夋瀯寤烘煡璇㈡潯浠�  
+            Expression<Func<WmsMaterialStock, bool>> extendExpression = a => a.IsDeleted == false;
+            // 浣跨敤 System.Linq.PredicateBuilder 鐨� And 
+            var pres = (System.Linq.Expressions.Expression<Func<WmsMaterialStock, bool>>)(whereConditions.data);
+            whereConditions.data = System.Linq.PredicateBuilder.And(pres, extendExpression);
+
+            return whereConditions;
+        }
     }
 }

--
Gitblit v1.9.3