From 52ed22fbccb23e1ffe7a8f179eb753947300ed8e Mon Sep 17 00:00:00 2001
From: 移动系统liao <liaoxujun@qq.com>
Date: 星期二, 25 六月 2024 09:05:19 +0800
Subject: [PATCH] 仓储管理 增加类型筛选

---
 CoreCms.Net.Web.Admin/Controllers/Good/CoreCmsProductsController.cs   |   16 +++++++-
 CoreCms.Net.Repository/Good/CoreCmsProductsRepository.cs              |   20 ++++++----
 CoreCms.Net.Web.Admin/Controllers/Stock/CoreCmsStockController.cs     |   19 ++++++++-
 CoreCms.Net.Web.Admin/wwwroot/views/content/stock/products/index.html |   34 +++++++++++++++--
 4 files changed, 72 insertions(+), 17 deletions(-)

diff --git a/CoreCms.Net.Repository/Good/CoreCmsProductsRepository.cs b/CoreCms.Net.Repository/Good/CoreCmsProductsRepository.cs
index 1e87016..51cc9d9 100644
--- a/CoreCms.Net.Repository/Good/CoreCmsProductsRepository.cs
+++ b/CoreCms.Net.Repository/Good/CoreCmsProductsRepository.cs
@@ -112,9 +112,10 @@
             List<CoreCmsProducts> page;
             if (blUseNoLock)
             {
-                page = await DbClient.Queryable<CoreCmsGoods, CoreCmsProducts>((good, product) => new JoinQueryInfos(
-                         JoinType.Inner, good.id == product.goodsId))
-                    .Select((good, product) => new CoreCmsProducts
+                page = await DbClient.Queryable<CoreCmsGoods, CoreCmsProducts, CoreCmsGoodsCategory>((good, product, Category) => new JoinQueryInfos(
+                         JoinType.Inner, good.id == product.goodsId,
+                         JoinType.Inner, good.goodsCategoryId == Category.id))
+                    .Select((good, product, Category) => new CoreCmsProducts
                     {
                         id = product.id,
                         goodsId = product.goodsId,
@@ -136,7 +137,8 @@
                         name = good.name,
                         bn = good.bn,
                         isMarketable = good.isMarketable,
-                        unit = good.unit
+                        unit = good.unit,
+                        CategoryID = Category.id
                     }).With(SqlWith.NoLock)
                     .MergeTable()
                     .OrderByIF(orderByExpression != null, orderByExpression, orderByType)
@@ -145,9 +147,10 @@
             }
             else
             {
-                page = await DbClient.Queryable<CoreCmsGoods, CoreCmsProducts>((good, product) => new JoinQueryInfos(
-                        JoinType.Inner, good.id == product.goodsId))
-                    .Select((good, product) => new CoreCmsProducts
+                page = await DbClient.Queryable<CoreCmsGoods, CoreCmsProducts, CoreCmsGoodsCategory>((good, product, Category) => new JoinQueryInfos(
+                        JoinType.Inner, good.id == product.goodsId,
+                         JoinType.Inner, good.goodsCategoryId == Category.id))
+                    .Select((good, product, Category) => new CoreCmsProducts
                     {
                         id = product.id,
                         goodsId = product.goodsId,
@@ -169,7 +172,8 @@
                         name = good.name,
                         bn = good.bn,
                         isMarketable = good.isMarketable,
-                        unit = good.unit
+                        unit = good.unit,
+                        CategoryID = Category.id
                     })
                     .MergeTable()
                     .OrderByIF(orderByExpression != null, orderByExpression, orderByType)
diff --git a/CoreCms.Net.Web.Admin/Controllers/Good/CoreCmsProductsController.cs b/CoreCms.Net.Web.Admin/Controllers/Good/CoreCmsProductsController.cs
index 7498747..c88b9b7 100644
--- a/CoreCms.Net.Web.Admin/Controllers/Good/CoreCmsProductsController.cs
+++ b/CoreCms.Net.Web.Admin/Controllers/Good/CoreCmsProductsController.cs
@@ -30,6 +30,7 @@
 using Microsoft.AspNetCore.Mvc;
 using NPOI.HSSF.UserModel;
 using SqlSugar;
+using CoreCms.Net.Services;
 
 namespace CoreCms.Net.Web.Admin.Controllers
 {
@@ -45,16 +46,19 @@
     {
         private readonly IWebHostEnvironment _webHostEnvironment;
         private readonly ICoreCmsProductsServices _coreCmsProductsServices;
+        private readonly ICoreCmsGoodsCategoryServices _coreCmsGoodsCategoryServices;
 
         /// <summary>
         /// 鏋勯�犲嚱鏁�
         ///</summary>
         public CoreCmsProductsController(IWebHostEnvironment webHostEnvironment
             , ICoreCmsProductsServices coreCmsProductsServices
+            , ICoreCmsGoodsCategoryServices coreCmsGoodsCategoryServices
             )
         {
             _webHostEnvironment = webHostEnvironment;
             _coreCmsProductsServices = coreCmsProductsServices;
+            _coreCmsGoodsCategoryServices = coreCmsGoodsCategoryServices;
         }
 
         #region 鑾峰彇鍒楄〃============================================================
@@ -132,7 +136,12 @@
             {
                 where = where.And(p => p.name.Contains(name));
             }
-
+            //鍟嗗搧鍒嗙被 decimal
+            var Category = Request.Form["categoryId"].FirstOrDefault().ToInt32OrDefault();
+            if (Category > 0)
+            {
+                where = where.And(p => p.CategoryID == Category);
+            }
             //鑾峰彇鏁版嵁
             var list = await _coreCmsProductsServices.QueryDetailPageAsync(where, orderEx, orderBy, pageCurrent, pageSize, true);
             //杩斿洖鏁版嵁
@@ -152,10 +161,13 @@
         /// <returns></returns>
         [HttpPost]
         [Description("棣栭〉鏁版嵁")]
-        public AdminUiCallBack GetIndex()
+        public async Task<AdminUiCallBack> GetIndexAsync()
         {
             //杩斿洖鏁版嵁
             var jm = new AdminUiCallBack { code = 0 };
+            var categories = await _coreCmsGoodsCategoryServices.QueryListByClauseAsync(p => p.isShow, p => p.sort, OrderByType.Asc, true, true);
+            var categoriesTree = GoodsHelper.GetTree(categories, false);
+            jm.data= categoriesTree;
             return jm;
         }
         #endregion
diff --git a/CoreCms.Net.Web.Admin/Controllers/Stock/CoreCmsStockController.cs b/CoreCms.Net.Web.Admin/Controllers/Stock/CoreCmsStockController.cs
index efbbc3e..7c15698 100644
--- a/CoreCms.Net.Web.Admin/Controllers/Stock/CoreCmsStockController.cs
+++ b/CoreCms.Net.Web.Admin/Controllers/Stock/CoreCmsStockController.cs
@@ -31,6 +31,7 @@
 using Microsoft.AspNetCore.Mvc;
 using NPOI.HSSF.UserModel;
 using SqlSugar;
+using CoreCms.Net.Services;
 
 namespace CoreCms.Net.Web.Admin.Controllers
 {
@@ -50,12 +51,18 @@
         private readonly ICoreCmsStockLogServices _stockLogServices;
         private readonly ISysUserServices _sysUserServices;
         private readonly IHttpContextUser _user;
+        private readonly ICoreCmsGoodsCategoryServices _coreCmsGoodsCategoryServices;
 
         /// <summary>
         /// 鏋勯�犲嚱鏁�
         ///</summary>
         public CoreCmsStockController(IWebHostEnvironment webHostEnvironment
-            , ICoreCmsStockServices stockServices, ICoreCmsProductsServices productsServices, IHttpContextUser user, ICoreCmsStockLogServices stockLogServices, ISysUserServices sysUserServices)
+            , ICoreCmsStockServices stockServices
+            , ICoreCmsProductsServices productsServices
+            , IHttpContextUser user
+            , ICoreCmsStockLogServices stockLogServices
+            , ISysUserServices sysUserServices,
+ICoreCmsGoodsCategoryServices coreCmsGoodsCategoryServices)
         {
             _webHostEnvironment = webHostEnvironment;
             _stockServices = stockServices;
@@ -63,6 +70,8 @@
             _user = user;
             _stockLogServices = stockLogServices;
             _sysUserServices = sysUserServices;
+            _coreCmsGoodsCategoryServices = coreCmsGoodsCategoryServices;
+
         }
 
         #region 鑾峰彇鍒楄〃============================================================
@@ -167,16 +176,20 @@
         /// <returns></returns>
         [HttpPost]
         [Description("棣栭〉鏁版嵁")]
-        public AdminUiCallBack GetIndex()
+        public async Task<AdminUiCallBack> GetIndex()
         {
             //杩斿洖鏁版嵁
             var jm = new AdminUiCallBack { code = 0 };
 
             var stockType = EnumHelper.EnumToList<GlobalEnumVars.StockType>();
             stockType = stockType.Where(p => p.value < 3).ToList();
+
+            var categories = await _coreCmsGoodsCategoryServices.QueryListByClauseAsync(p => p.isShow, p => p.sort, OrderByType.Asc, true, true);
+            var categoriesTree = GoodsHelper.GetTree(categories, false);
             jm.data = new
             {
-                stockType,
+                stockType
+                
             };
             return jm;
         }
diff --git a/CoreCms.Net.Web.Admin/wwwroot/views/content/stock/products/index.html b/CoreCms.Net.Web.Admin/wwwroot/views/content/stock/products/index.html
index c6d4a19..27e187f 100644
--- a/CoreCms.Net.Web.Admin/wwwroot/views/content/stock/products/index.html
+++ b/CoreCms.Net.Web.Admin/wwwroot/views/content/stock/products/index.html
@@ -18,6 +18,12 @@
     <div class="layui-form coreshop-toolbar-search-form">
         <div class="layui-form-item">
             <div class="layui-inline">
+                <label class="layui-form-label" for="category">鍟嗗搧鍒嗙被</label>
+                <div class="layui-input-inline" style="width: 200px;">                   
+                    <div id="sel_category_stortPrducts" class="ew-xmselect-tree"  lay-reqText="璇烽�夋嫨鍟嗗搧鍒嗙被"></div>
+                </div>
+            </div>
+            <div class="layui-inline">
                 <div class="layui-input-inline">
                     <input type="text" name="name" placeholder="璇疯緭鍏ュ晢鍝佸悕绉�" class="layui-input">
                 </div>
@@ -64,9 +70,9 @@
     layui.data.done = function (d) {
         //寮�鍚皟璇曟儏鍐典笅鑾峰彇鎺ュ彛璧嬪�兼暟鎹�
         if (debug) { console.log(d); }
-
-        indexData = d.data;
-        layui.use(['index', 'table', 'laydate', 'util', 'coredropdown', 'coreHelper'],
+     
+        indexData = d.data.data;
+        layui.use(['index', 'table', 'laydate', 'util', 'coredropdown', 'coreHelper','xmSelect'],
             function () {
                 var $ = layui.$
                     , admin = layui.admin
@@ -76,6 +82,7 @@
                     , setter = layui.setter
                     , coreHelper = layui.coreHelper
                     , util = layui.util
+                    ,xmSelect = layui.xmSelect
                     , view = layui.view;
 
                 //閲嶈浇form
@@ -158,7 +165,26 @@
                             doDetails(obj);
                         }
                     });
-
+                    xmSelect.render({
+                    el: '#sel_category_stortPrducts',
+                    height: '250px',
+                    data: indexData,
+                    //initValue: mData ? [mData.parentId] : [],
+                    //model: { label: { type: 'text' } },
+                    name: 'categoryId',
+                    prop: {
+                        name: 'title',
+                        value: 'id'
+                    },                
+                    radio: true,
+                    clickClose: true,
+                    tree: {
+                        show: true,
+                        indent: 15,
+                        strict: false,
+                        expandedKeys: true
+                    }
+                });
 
                 //鐩戝惉鍗曞厓鏍肩紪杈�
                 table.on('edit(LAY-app-CoreCmsProducts-tableBox)', function (obj) {

--
Gitblit v1.9.1