From 7f26cd7c3e492062418cdc7dbe9d7ce14cbe5f05 Mon Sep 17 00:00:00 2001
From: username@email.com <yzy2002yzy@163.com>
Date: 星期三, 26 六月 2024 11:47:37 +0800
Subject: [PATCH] 铺货修改

---
 CoreCms.Net.IRepository/Stock/ICoreCmsStockRepository.cs                    |    2 
 CoreCms.Net.Web.Admin/wwwroot/views/baifenbingfa/puhuo/details.html         |    8 
 CoreCms.Net.Web.Admin/wwwroot/views/baifenbingfa/puhuo/index.html           |  115 +
 CoreCms.Net.Web.Admin/wwwroot/views/baifenbingfa/puhuoshoukuan/details.html |  234 +++
 CoreCms.Net.IServices/baifenbingfa/IPuhuoServices.cs                        |    2 
 CoreCms.Net.Web.Admin/Controllers/baifenbingfa/PuhuoShoukuanController.cs   | 1281 ++++++++++++++++++
 CoreCms.Net.IRepository/baifenbinfa/IPuhuoShoukuanRepository.cs             |   99 +
 CoreCms.Net.Repository/baifenbingfa/PuhuoRepository.cs                      |   54 
 CoreCms.Net.Web.Admin/wwwroot/views/content/stock/stocks/index.html         |    1 
 CoreCms.Net.Repository/baifenbingfa/PuhuoShoukuanRepository.cs              |  280 +++
 CoreCms.Net.Web.Admin/wwwroot/views/baifenbingfa/puhuo/create.html          |    2 
 CoreCms.Net.Web.Admin/wwwroot/views/baifenbingfa/puhuo/edit.html            |    4 
 CoreCms.Net.Web.Admin/wwwroot/views/baifenbingfa/puhuo/indexgroup.html      |   29 
 CoreCms.Net.IServices/Stock/ICoreCmsStockServices.cs                        |    2 
 CoreCms.Net.Configuration/GlobalEnumVars.cs                                 |    6 
 CoreCms.Net.Web.Admin/Controllers/baifenbingfa/PuhuoController.cs           |  282 +++
 CoreCms.Net.Web.Admin/wwwroot/views/baifenbingfa/puhuoshoukuan/create.html  |  204 ++
 CoreCms.Net.IServices/baifenbingfa/IPuhuoShoukuanServices.cs                |   95 +
 CoreCms.Net.Model/Entities/baifenbingfa/puhuo/Puhuo.cs                      |   24 
 CoreCms.Net.Services/baifenbingfa/PuhuoServices.cs                          |    4 
 CoreCms.Net.IRepository/baifenbinfa/IPuhuoRepository.cs                     |    2 
 CoreCms.Net.Model/Entities/baifenbingfa/puhuo/PuhuoShoukuan.cs              |  159 ++
 CoreCms.Net.Web.Admin/wwwroot/views/content/stock/stocklog/index.html       |    1 
 CoreCms.Net.Model/ViewModels/UI/AdminUiCallBack.cs                          |   12 
 CoreCms.Net.Services/Stock/CoreCmsStockServices.cs                          |    5 
 CoreCms.Net.Web.Admin/wwwroot/views/baifenbingfa/puhuoshoukuan/edit.html    |  202 ++
 CoreCms.Net.Repository/Stock/CoreCmsStockRepository.cs                      |  104 +
 CoreCms.Net.Web.Admin/Controllers/Stock/CoreCmsStockController.cs           |   40 
 CoreCms.Net.Model/Entities/Good/CoreCmsProducts.cs                          |    8 
 CoreCms.Net.Web.Admin/wwwroot/views/baifenbingfa/puhuoshoukuan/index.html   |  623 ++++++++
 CoreCms.Net.Web.Admin/wwwroot/views/content/stock/stocks/create.html        |   48 
 CoreCms.Net.Model/Entities/Stock/CoreCmsStockPartial.cs                     |    7 
 CoreCms.Net.Services/baifenbingfa/PuhuoShoukuanServices.cs                  |  130 +
 CoreCms.Net.Web.Admin/wwwroot/views/layout.html                             |    6 
 CoreCms.Net.Web.Admin/wwwroot/views/baifenbingfa/puhuo/editshoukuan.html    |  174 ++
 35 files changed, 4,138 insertions(+), 111 deletions(-)

diff --git a/CoreCms.Net.Configuration/GlobalEnumVars.cs b/CoreCms.Net.Configuration/GlobalEnumVars.cs
index acba533..42a8a21 100644
--- a/CoreCms.Net.Configuration/GlobalEnumVars.cs
+++ b/CoreCms.Net.Configuration/GlobalEnumVars.cs
@@ -2872,6 +2872,12 @@
             /// </summary>
             [Description("閫�璐�")]
             ReturnedGoods = 5,
+
+            /// <summary>
+            /// 閾鸿揣鐩樼偣
+            /// </summary>
+            [Description("閾鸿揣鐩樼偣")]
+            CheckPuhuo = 6,
         }
 
         #endregion
diff --git a/CoreCms.Net.IRepository/Stock/ICoreCmsStockRepository.cs b/CoreCms.Net.IRepository/Stock/ICoreCmsStockRepository.cs
index 07e03ba..b93ea20 100644
--- a/CoreCms.Net.IRepository/Stock/ICoreCmsStockRepository.cs
+++ b/CoreCms.Net.IRepository/Stock/ICoreCmsStockRepository.cs
@@ -55,7 +55,7 @@
         /// </summary>
         /// <param name="entity"></param>
         /// <returns></returns>
-        Task<AdminUiCallBack> InsertAsync(FMCreateStock entity);
+        Task<AdminUiCallBack> InsertAsync(FMCreateStock entity, string username, CoreCmsDistribution distribution);
 
         #endregion
     }
diff --git a/CoreCms.Net.IRepository/baifenbinfa/IPuhuoRepository.cs b/CoreCms.Net.IRepository/baifenbinfa/IPuhuoRepository.cs
index da7c86a..9bcd31f 100644
--- a/CoreCms.Net.IRepository/baifenbinfa/IPuhuoRepository.cs
+++ b/CoreCms.Net.IRepository/baifenbinfa/IPuhuoRepository.cs
@@ -109,7 +109,7 @@
         /// <returns></returns>
         Task<IPageList<Puhuo>> QueryPageGroupAsync(
             Expression<Func<Puhuo, bool>> predicate,
-            Expression<Func<Puhuo, object>> orderByExpression, OrderByType orderByType, int pageIndex = 1,
+            Expression<Func<Puhuo, object>> orderByExpression, OrderByType orderByType, OtherData otherData, int pageIndex = 1,
             int pageSize = 20, bool blUseNoLock = false);
 
     }
diff --git a/CoreCms.Net.IRepository/baifenbinfa/IPuhuoShoukuanRepository.cs b/CoreCms.Net.IRepository/baifenbinfa/IPuhuoShoukuanRepository.cs
new file mode 100644
index 0000000..8f9a9f1
--- /dev/null
+++ b/CoreCms.Net.IRepository/baifenbinfa/IPuhuoShoukuanRepository.cs
@@ -0,0 +1,99 @@
+/***********************************************************************
+ *            Project: baifenBinfa
+ *        ProjectName: 鐧惧垎鍏垫硶绠$悊绯荤粺                               
+ *                Web: http://chuanyin.com                     
+ *             Author:                                        
+ *              Email:                               
+ *         CreateTime: 2024/6/25 13:17:00
+ *        Description: 鏆傛棤
+ ***********************************************************************/
+
+using System;
+using System.Collections.Generic;
+using System.Linq.Expressions;
+using System.Threading.Tasks;
+using CoreCms.Net.Model.Entities;
+using CoreCms.Net.Model.Entities.baifenbingfa.puhuo;
+using CoreCms.Net.Model.ViewModels.Basics;
+using CoreCms.Net.Model.ViewModels.UI;
+using SqlSugar;
+
+
+namespace CoreCms.Net.IRepository
+{
+	/// <summary>
+    /// 閾鸿揣 宸ュ巶鎺ュ彛
+    /// </summary>
+    public interface IPuhuoShoukuanRepository : IBaseRepository<PuhuoShoukuan>
+    {
+        #region 閲嶅啓澧炲垹鏀规煡鎿嶄綔===========================================================
+
+        /// <summary>
+        /// 閲嶅啓寮傛鎻掑叆鏂规硶
+        /// </summary>
+        /// <param name="entity"></param>
+        /// <returns></returns>
+        Task<AdminUiCallBack> InsertAsync(PuhuoShoukuan entity);
+
+
+        /// <summary>
+        /// 閲嶅啓寮傛鏇存柊鏂规硶
+        /// </summary>
+        /// <param name="entity"></param>
+        /// <returns></returns>
+        Task<AdminUiCallBack> UpdateAsync(PuhuoShoukuan entity);
+
+
+        /// <summary>
+        /// 閲嶅啓寮傛鏇存柊鏂规硶
+        /// </summary>
+        /// <param name="entity"></param>
+        /// <returns></returns>
+        Task<AdminUiCallBack> UpdateAsync(List<PuhuoShoukuan> entity);
+
+
+        /// <summary>
+        /// 閲嶅啓鍒犻櫎鎸囧畾ID鐨勬暟鎹�
+        /// </summary>
+        /// <param name="id"></param>
+        /// <returns></returns>
+        Task<AdminUiCallBack> DeleteByIdAsync(object id);
+
+
+        /// <summary>
+        /// 閲嶅啓鍒犻櫎鎸囧畾ID闆嗗悎鐨勬暟鎹�(鎵归噺鍒犻櫎)
+        /// </summary>
+        /// <param name="ids"></param>
+        /// <returns></returns>
+        Task<AdminUiCallBack> DeleteByIdsAsync(int[] ids);
+
+        #endregion
+
+        #region 鑾峰彇缂撳瓨鐨勬墍鏈夋暟鎹�==========================================================
+
+        /// <summary>
+        /// 鑾峰彇缂撳瓨鐨勬墍鏈夋暟鎹�
+        /// </summary>
+        /// <returns></returns>
+        Task<List<PuhuoShoukuan>> GetCaChe();
+
+        #endregion
+
+
+        /// <summary>
+        ///     閲嶅啓鏍规嵁鏉′欢鏌ヨ鍒嗛〉鏁版嵁
+        /// </summary>
+        /// <param name="predicate">鍒ゆ柇闆嗗悎</param>
+        /// <param name="orderByType">鎺掑簭鏂瑰紡</param>
+        /// <param name="pageIndex">褰撳墠椤甸潰绱㈠紩</param>
+        /// <param name="pageSize">鍒嗗竷澶у皬</param>
+        /// <param name="orderByExpression"></param>
+        /// <param name="blUseNoLock">鏄惁浣跨敤WITH(NOLOCK)</param>
+        /// <returns></returns>
+        Task<IPageList<PuhuoShoukuan>> QueryPageAsync(
+            Expression<Func<PuhuoShoukuan, bool>> predicate,
+            Expression<Func<PuhuoShoukuan, object>> orderByExpression, OrderByType orderByType, OtherData otherData, int pageIndex = 1,
+            int pageSize = 20, bool blUseNoLock = false);
+
+    }
+}
diff --git a/CoreCms.Net.IServices/Stock/ICoreCmsStockServices.cs b/CoreCms.Net.IServices/Stock/ICoreCmsStockServices.cs
index 13040bf..a5afc84 100644
--- a/CoreCms.Net.IServices/Stock/ICoreCmsStockServices.cs
+++ b/CoreCms.Net.IServices/Stock/ICoreCmsStockServices.cs
@@ -51,7 +51,7 @@
         /// </summary>
         /// <param name="entity"></param>
         /// <returns></returns>
-        Task<AdminUiCallBack> InsertAsync(FMCreateStock entity);
+        Task<AdminUiCallBack> InsertAsync(FMCreateStock entity, string username, CoreCmsDistribution distribution);
 
         #endregion
     }
diff --git a/CoreCms.Net.IServices/baifenbingfa/IPuhuoServices.cs b/CoreCms.Net.IServices/baifenbingfa/IPuhuoServices.cs
index 64a4993..dd89c5e 100644
--- a/CoreCms.Net.IServices/baifenbingfa/IPuhuoServices.cs
+++ b/CoreCms.Net.IServices/baifenbingfa/IPuhuoServices.cs
@@ -105,7 +105,7 @@
         /// <returns></returns>
         Task<IPageList<Puhuo>> QueryPageGroupAsync(
             Expression<Func<Puhuo, bool>> predicate,
-            Expression<Func<Puhuo, object>> orderByExpression, OrderByType orderByType, int pageIndex = 1,
+            Expression<Func<Puhuo, object>> orderByExpression, OrderByType orderByType, OtherData otherData, int pageIndex = 1,
             int pageSize = 20, bool blUseNoLock = false);
         #endregion
     }
diff --git a/CoreCms.Net.IServices/baifenbingfa/IPuhuoShoukuanServices.cs b/CoreCms.Net.IServices/baifenbingfa/IPuhuoShoukuanServices.cs
new file mode 100644
index 0000000..fc3fb9b
--- /dev/null
+++ b/CoreCms.Net.IServices/baifenbingfa/IPuhuoShoukuanServices.cs
@@ -0,0 +1,95 @@
+/***********************************************************************
+ *            Project: baifenBinfa
+ *        ProjectName: 鐧惧垎鍏垫硶绠$悊绯荤粺                               
+ *                Web: http://chuanyin.com                     
+ *             Author:                                        
+ *              Email:                               
+ *         CreateTime: 2024/6/25 13:17:00
+ *        Description: 鏆傛棤
+ ***********************************************************************/
+
+using System;
+using System.Collections.Generic;
+using System.Linq.Expressions;
+using System.Threading.Tasks;
+using CoreCms.Net.Model.Entities;
+using CoreCms.Net.Model.Entities.baifenbingfa.puhuo;
+using CoreCms.Net.Model.ViewModels.Basics;
+using CoreCms.Net.Model.ViewModels.UI;
+using SqlSugar;
+
+namespace CoreCms.Net.IServices
+{
+	/// <summary>
+    /// 閾鸿揣 鏈嶅姟宸ュ巶鎺ュ彛
+    /// </summary>
+    public interface IPuhuoShoukuanServices : IBaseServices<PuhuoShoukuan>
+    {
+        #region 閲嶅啓澧炲垹鏀规煡鎿嶄綔===========================================================
+
+        /// <summary>
+        /// 閲嶅啓寮傛鎻掑叆鏂规硶
+        /// </summary>
+        /// <param name="entity"></param>
+        /// <returns></returns>
+        Task<AdminUiCallBack> InsertAsync(PuhuoShoukuan entity);
+
+        /// <summary>
+        /// 閲嶅啓寮傛鏇存柊鏂规硶
+        /// </summary>
+        /// <param name="entity"></param>
+        /// <returns></returns>
+        Task<AdminUiCallBack> UpdateAsync(PuhuoShoukuan entity);
+
+        /// <summary>
+        /// 閲嶅啓寮傛鏇存柊鏂规硶
+        /// </summary>
+        /// <param name="entity"></param>
+        /// <returns></returns>
+        Task<AdminUiCallBack> UpdateAsync(List<PuhuoShoukuan> entity);
+
+        /// <summary>
+        /// 閲嶅啓鍒犻櫎鎸囧畾ID鐨勬暟鎹�
+        /// </summary>
+        /// <param name="id"></param>
+        /// <returns></returns>
+        Task<AdminUiCallBack> DeleteByIdAsync(object id);
+
+        /// <summary>
+        /// 閲嶅啓鍒犻櫎鎸囧畾ID闆嗗悎鐨勬暟鎹�(鎵归噺鍒犻櫎)
+        /// </summary>
+        /// <param name="ids"></param>
+        /// <returns></returns>
+        Task<AdminUiCallBack> DeleteByIdsAsync(int[] ids);
+
+        #endregion
+
+        
+        #region 鑾峰彇缂撳瓨鐨勬墍鏈夋暟鎹�==========================================================
+
+        /// <summary>
+        /// 鑾峰彇缂撳瓨鐨勬墍鏈夋暟鎹�
+        /// </summary>
+        /// <returns></returns>
+        Task<List<PuhuoShoukuan>> GetCaChe();
+
+        #endregion
+
+        #region 閲嶅啓鏍规嵁鏉′欢鏌ヨ鍒嗛〉鏁版嵁
+        /// <summary>
+        ///     閲嶅啓鏍规嵁鏉′欢鏌ヨ鍒嗛〉鏁版嵁
+        /// </summary>
+        /// <param name="predicate">鍒ゆ柇闆嗗悎</param>
+        /// <param name="orderByType">鎺掑簭鏂瑰紡</param>
+        /// <param name="pageIndex">褰撳墠椤甸潰绱㈠紩</param>
+        /// <param name="pageSize">鍒嗗竷澶у皬</param>
+        /// <param name="orderByExpression"></param>
+        /// <param name="blUseNoLock">鏄惁浣跨敤WITH(NOLOCK)</param>
+        /// <returns></returns>
+        Task<IPageList<PuhuoShoukuan>> QueryPageAsync(
+            Expression<Func<PuhuoShoukuan, bool>> predicate,
+            Expression<Func<PuhuoShoukuan, object>> orderByExpression, OrderByType orderByType, OtherData otherData, int pageIndex = 1,
+            int pageSize = 20, bool blUseNoLock = false);
+        #endregion
+    }
+}
diff --git a/CoreCms.Net.Model/Entities/Good/CoreCmsProducts.cs b/CoreCms.Net.Model/Entities/Good/CoreCmsProducts.cs
index 8afe4af..cf2a0c5 100644
--- a/CoreCms.Net.Model/Entities/Good/CoreCmsProducts.cs
+++ b/CoreCms.Net.Model/Entities/Good/CoreCmsProducts.cs
@@ -265,5 +265,13 @@
         public bool  isCustomizable { get; set; }=false;
 
 
+
+        /// <summary>
+        /// 鍙樺姩鏁伴噺
+        /// </summary>
+        [Display(Name = "鍙樺姩鏁伴噺")]
+        [SugarColumn(IsIgnore = true)]
+        public System.Int32 nums { get; set; }
+
     }
 }
diff --git a/CoreCms.Net.Model/Entities/Stock/CoreCmsStockPartial.cs b/CoreCms.Net.Model/Entities/Stock/CoreCmsStockPartial.cs
index e42b53f..f4f1290 100644
--- a/CoreCms.Net.Model/Entities/Stock/CoreCmsStockPartial.cs
+++ b/CoreCms.Net.Model/Entities/Stock/CoreCmsStockPartial.cs
@@ -24,5 +24,12 @@
         [Display(Name = "鎿嶄綔鍛樻樀绉�")]
         [SugarColumn(IsIgnore = true)]
         public string managerName { get; set; }
+
+        /// <summary>
+        /// 缁忛攢鍟唅d
+        /// </summary>
+        [Display(Name = "缁忛攢鍟唅d")]
+        [SugarColumn(IsIgnore = true)]
+        public int distributionId { get; set; }
     }
 }
\ No newline at end of file
diff --git a/CoreCms.Net.Model/Entities/baifenbingfa/puhuo/Puhuo.cs b/CoreCms.Net.Model/Entities/baifenbingfa/puhuo/Puhuo.cs
index ddd39ef..06d7ba5 100644
--- a/CoreCms.Net.Model/Entities/baifenbingfa/puhuo/Puhuo.cs
+++ b/CoreCms.Net.Model/Entities/baifenbingfa/puhuo/Puhuo.cs
@@ -14,7 +14,7 @@
     /// <summary>
     /// 閾鸿揣
     /// </summary>
-   
+    [SqlCodeFirst]
     public class Puhuo : BFBaseModel
     {
         /// <summary>
@@ -126,5 +126,27 @@
         public System.Int32 tiaozhengnums { get; set; }
 
 
+        /// <summary>
+        /// 瀛︽牎鍚嶇О
+        /// </summary>
+        [Display(Name = "瀛︽牎鍚嶇О")]
+        [SugarColumn(IsIgnore = true)]
+        public string schoolName { get; set; }
+
+
+        /// <summary>
+        /// 鏀舵鏁伴噺
+        /// </summary>
+        [Display(Name = "鏀舵鏁伴噺")]
+        [SugarColumn(ColumnDescription = "鏀舵鏁伴噺", IsNullable = true, DefaultValue = "0")]
+        public System.Int32? shoukuannums { get; set; } = 0;
+        /// <summary>
+        /// 閲戦
+        /// </summary>
+        [Display(Name = "鏀舵閲戦")]
+        [SugarColumn(ColumnDescription = "鏀舵閲戦", IsNullable = true,DefaultValue = "0", Length = 18, DecimalDigits = 4)]
+        public System.Decimal? shoukuanamount { get; set; } = new decimal(0);
+
+
     }
 }
diff --git a/CoreCms.Net.Model/Entities/baifenbingfa/puhuo/PuhuoShoukuan.cs b/CoreCms.Net.Model/Entities/baifenbingfa/puhuo/PuhuoShoukuan.cs
new file mode 100644
index 0000000..6547bd6
--- /dev/null
+++ b/CoreCms.Net.Model/Entities/baifenbingfa/puhuo/PuhuoShoukuan.cs
@@ -0,0 +1,159 @@
+锘縰sing Chuanyin.Attribute;
+using CoreCms.Net.Model.Entities.baifenbingfa.jon;
+using CoreCms.Net.Model.Entities.baseModel;
+using SqlSugar;
+using System;
+using System.Collections.Generic;
+using System.ComponentModel.DataAnnotations;
+using System.Linq;
+using System.Text;
+using System.Threading.Tasks;
+
+
+namespace CoreCms.Net.Model.Entities.baifenbingfa.puhuo
+{
+    /// <summary>
+    /// 閾鸿揣
+    /// </summary>
+    [SqlCodeFirst]
+    public class PuhuoShoukuan : BFBaseModel
+    {
+
+        /// <summary>
+        /// 涓婚敭ID锛岃嚜澧為暱
+        /// </summary>
+        [SugarColumn(IsPrimaryKey = true, IsIdentity = true, ColumnDescription = "涓婚敭ID")]
+        public int id { get; set; }
+
+        /// <summary>
+        /// 閾鸿揣id
+        /// </summary>
+        public int puhuoId { get; set; }
+
+        /// <summary>
+        /// 缁忛攢鍟唅d
+        /// </summary>
+        public int distributionId { get; set; }
+
+        /// <summary>
+        /// 缁忛攢鍟�
+        /// </summary>
+        public string distributionName { get; set; }
+
+        /// <summary>
+        /// 鍖哄煙
+        /// </summary>
+        public string areaCode { get; set; }
+
+        /// <summary>
+        /// 鍖哄煙鍚嶇О
+        /// </summary>
+        public string areaCodeName { get; set; }
+
+        /// <summary>
+        /// 鍟嗗搧鍒嗙被id
+        /// </summary>
+        public int CategoryId { get; set; }
+
+
+
+        /// <summary>
+        /// 鍟嗗搧鍒嗙被
+        /// </summary>
+        public string CategoryName { get; set; }
+
+        /// <summary>
+        /// 鍟嗗搧id
+        /// </summary>
+        public int goodsId { get; set; }
+
+        /// <summary>
+        /// 鍟嗗搧鍚嶇О
+        /// </summary>
+        public string goodsName { get; set; }
+
+
+        /// <summary>
+        /// 璐у搧id
+        /// </summary>
+        public int productsId { get; set; }
+
+        /// <summary>
+        /// 璐у搧缂栧彿
+        /// </summary>
+        public string productsName { get; set; }
+
+        /// <summary>
+        /// 璐у搧瑙勬牸
+        /// </summary>
+        public string spesDesc { get; set; }
+
+
+        /// <summary>
+        /// 璐у搧浠锋牸
+        /// </summary>
+        [Display(Name = "璐у搧浠锋牸")]
+
+        [Required(ErrorMessage = "璇疯緭鍏0}")]
+
+
+
+        public System.Decimal price { get; set; }
+
+
+        /// <summary>
+        /// 鏁伴噺
+        /// </summary>
+        [Display(Name = "鏁伴噺")]
+        [SugarColumn(ColumnDescription = "鏁伴噺")]
+        [Required(ErrorMessage = "璇疯緭鍏0}")]
+        public System.Int32 nums { get; set; }
+        /// <summary>
+        /// 閲戦
+        /// </summary>
+        [Display(Name = "閲戦")]
+        [SugarColumn(ColumnDescription = "閲戦")]
+        [Required(ErrorMessage = "璇疯緭鍏0}")]
+        public System.Decimal amount { get; set; }
+
+
+
+        /// <summary>
+        /// 閾鸿揣閫�璐�
+        /// </summary>
+        [Display(Name = "閾鸿揣閫�璐�")]
+        [SugarColumn(IsIgnore = true)]
+        public System.Int32 jintui { get; set; }
+
+
+        /// <summary>
+        /// 璋冩暣鏁伴噺
+        /// </summary>
+        [Display(Name = "璋冩暣鏁伴噺")]
+        [SugarColumn(IsIgnore = true)]
+        public System.Int32 tiaozhengnums { get; set; }
+
+
+        /// <summary>
+        /// 瀛︽牎鍚嶇О
+        /// </summary>
+        [Display(Name = "瀛︽牎鍚嶇О")]
+        [SugarColumn(IsIgnore = true)]
+        public string schoolName { get; set; }
+
+
+        /// <summary>
+        /// 鏀舵鏁伴噺
+        /// </summary>
+        [Display(Name = "鏀舵鏁伴噺")]
+        [SugarColumn(ColumnDescription = "鏀舵鏁伴噺" )]
+        public System.Int32 shoukuannums { get; set; } = 0;
+        /// <summary>
+        /// 閲戦
+        /// </summary>
+        [Display(Name = "鏀舵閲戦")]
+        [SugarColumn(ColumnDescription = "鏀舵閲戦",  Length = 18, DecimalDigits = 4)]
+        public System.Decimal shoukuanamount { get; set; } = new decimal(0);
+
+    }
+}
diff --git a/CoreCms.Net.Model/ViewModels/UI/AdminUiCallBack.cs b/CoreCms.Net.Model/ViewModels/UI/AdminUiCallBack.cs
index 5b00948..5a0e5f0 100644
--- a/CoreCms.Net.Model/ViewModels/UI/AdminUiCallBack.cs
+++ b/CoreCms.Net.Model/ViewModels/UI/AdminUiCallBack.cs
@@ -30,5 +30,17 @@
         public object otherData { get; set; }
 
         public int count { get; set; }
+      
+    }
+
+    public class OtherData
+    {
+        public decimal heji1 { get; set; }
+        public decimal heji2 { get; set; }
+        public decimal heji3 { get; set; }
+
+        public decimal heji4 { get; set; }
+        public decimal heji5 { get; set; }
+        public decimal heji6 { get; set; }
     }
 }
\ No newline at end of file
diff --git a/CoreCms.Net.Repository/Stock/CoreCmsStockRepository.cs b/CoreCms.Net.Repository/Stock/CoreCmsStockRepository.cs
index 5f54c7c..b3b09cc 100644
--- a/CoreCms.Net.Repository/Stock/CoreCmsStockRepository.cs
+++ b/CoreCms.Net.Repository/Stock/CoreCmsStockRepository.cs
@@ -23,6 +23,7 @@
 using CoreCms.Net.Model.ViewModels.UI;
 using CoreCms.Net.Utility.Helper;
 using SqlSugar;
+using CoreCms.Net.Model.Entities.baifenbingfa.puhuo;
 
 namespace CoreCms.Net.Repository
 {
@@ -44,7 +45,7 @@
         /// </summary>
         /// <param name="entity">瀹炰綋鏁版嵁</param>
         /// <returns></returns>
-        public async Task<AdminUiCallBack> InsertAsync(FMCreateStock entity)
+        public async Task<AdminUiCallBack> InsertAsync(FMCreateStock entity, string username, CoreCmsDistribution distribution)
         {
             var jm = new AdminUiCallBack();
 
@@ -76,6 +77,10 @@
             {
                 stockModel.id = await CreateCode(GlobalEnumVars.StockType.Out.ToString());
             }
+            else if (entity.model.type == 3)
+            {
+                stockModel.id = await CreateCode(GlobalEnumVars.StockType.Out.ToString());
+            }
             else
             {
                 jm.msg = "鍗曟嵁绫诲瀷閿欒";
@@ -85,7 +90,20 @@
             stockModel.memo = entity.model.memo;
             stockModel.createTime = DateTime.Now;
             stockModel.manager = entity.model.manager;
-            stockModel.type = entity.model.type;
+            if (entity.model.type == 3 )
+            {
+                if (stockModel.memo == "鏃�")
+                {
+                    stockModel.memo = "";
+                }
+                stockModel.memo = distribution.name+ " 缁忛攢鍟嗛摵璐� " + stockModel.memo;
+                stockModel.type = 2;
+            }
+            else
+            {
+                stockModel.type = entity.model.type;
+            }
+              
 
             var logs = new List<CoreCmsStockLog>();
             var products = new List<CoreCmsProducts>();
@@ -116,7 +134,9 @@
                         name = good.name,
                         bn = good.bn,
                         isMarketable = good.isMarketable,
-                        unit = good.unit
+                        unit = good.unit,
+                        distributionPrice = p.distributionPrice,
+                        CategoryID = good.goodsCategoryId,
                     }).With(SqlWith.NoLock)
                     .MergeTable()
                     .Where(p => p.id == item.productId).FirstAsync();
@@ -136,6 +156,16 @@
                             return jm;
                         }
                     }
+                    else if (entity.model.type == 3)
+                    {
+                        stock = product.stock - item.nums;
+                        if (stock < 0)
+                        {
+                            jm.msg = $"绗瑊index}涓揣鍝佹渶澶у嚭搴撴暟閲忎负锛�" + product.stock;
+                            return jm;
+                        }
+                    }
+                    product.nums = item.nums;
                     product.stock = stock;
                     products.Add(product);
 
@@ -160,6 +190,9 @@
                 }
             }
 
+
+           
+
             try
             {
                 _unitOfWork.BeginTran();
@@ -172,6 +205,71 @@
                 {
                     await DbClient.Insertable(logs).ExecuteCommandAsync();
                 }
+
+                //閾鸿揣
+                if (entity.model.type == 3)
+                {
+                    if (products.Any() && distribution != null)
+                    {
+                        foreach (var products1 in products)
+                        {
+                            var puhuo = await DbClient.Queryable<Puhuo>().Where(x => x.isdelete == false && x.productsId == products1.id && x.distributionId == entity.model.distributionId).FirstAsync();
+                            if (puhuo != null)
+                            {
+                             
+                                puhuo.nums = puhuo.nums + products1.nums;
+                                puhuo.price = products1.distributionPrice;
+                                puhuo.amount = products1.distributionPrice * new decimal(puhuo.nums);
+                                puhuo.isdelete = false;
+                                //entity.createBy = username;
+                                puhuo.upDataBy = username;
+                                //entity.createTime = DateTime.Now;
+                                puhuo.upDataTime = DateTime.Now;
+                                await DbClient.Updateable<Puhuo>(puhuo).ExecuteCommandAsync();
+                            }
+                            else
+                            {
+                                puhuo = new Puhuo();
+                                puhuo.distributionId = entity.model.distributionId;
+                                puhuo.distributionName = distribution.name;
+                                puhuo.areaCode = distribution.areaCode;
+                                puhuo.areaCodeName = distribution.areaName;
+
+                                puhuo.CategoryId = products1.CategoryID??0;
+                                //鑾峰彇鍏ㄩ儴鏁版嵁缂撳瓨
+                                var categorie = await DbClient.Queryable<CoreCmsGoodsCategory>().Where(x => x.id == puhuo.CategoryId).FirstAsync(); ;
+                                if (categorie != null)
+                                {
+                                    puhuo.CategoryName = categorie.name;
+                                }
+                                puhuo.goodsId = products1.goodsId;
+                                puhuo.goodsName = products1.name;
+                                puhuo.productsId = products1.id;
+                                puhuo.productsName = products1.sn;
+                                puhuo.spesDesc = products1.spesDesc;
+                                puhuo.shoukuannums = 0;
+                                puhuo.shoukuanamount = 0;
+
+
+
+                                puhuo.nums = puhuo.nums + products1.nums;
+                                puhuo.price = products1.distributionPrice;
+                                puhuo.amount = products1.distributionPrice * new decimal(puhuo.nums);
+                                puhuo.isdelete = false;
+                                puhuo.createBy = username;
+                                puhuo.upDataBy = username;
+                                puhuo.createTime = DateTime.Now;
+                                puhuo.upDataTime = DateTime.Now;
+                                await DbClient.Insertable<Puhuo>(puhuo).ExecuteCommandAsync();
+                            }
+                        }
+                    }
+
+
+
+                }
+
+
                 jm.code = bl ? 0 : 1;
                 jm.msg = bl ? GlobalConstVars.CreateSuccess : GlobalConstVars.CreateFailure;
                 _unitOfWork.CommitTran();
diff --git a/CoreCms.Net.Repository/baifenbingfa/PuhuoRepository.cs b/CoreCms.Net.Repository/baifenbingfa/PuhuoRepository.cs
index bc78e62..e159d1f 100644
--- a/CoreCms.Net.Repository/baifenbingfa/PuhuoRepository.cs
+++ b/CoreCms.Net.Repository/baifenbingfa/PuhuoRepository.cs
@@ -89,7 +89,9 @@
             oldModel.createBy = entity.createBy;
             oldModel.upDataBy = entity.upDataBy;
             oldModel.isdelete = entity.isdelete;
-            
+            oldModel.shoukuannums = entity.shoukuannums;
+            oldModel.shoukuanamount = entity.shoukuanamount;
+
             //浜嬬墿澶勭悊杩囩▼缁撴潫
             var bl = await DbClient.Updateable(oldModel).ExecuteCommandHasChangeAsync();
             jm.code = bl ? 0 : 1;
@@ -196,7 +198,7 @@
                 goodsId = p.goodsId,
                 goodsName = p.goodsName,
                 productsId = p.productsId,
-                productsName = p.productsName,
+                productsName = p.productsName +" " + p.spesDesc,
                 spesDesc = p.spesDesc,
                 price = p.price,
                 nums = p.nums,
@@ -225,7 +227,7 @@
                 goodsId = p.goodsId,
                 goodsName = p.goodsName,
                 productsId = p.productsId,
-                productsName = p.productsName,
+                productsName = p.productsName + " " + p.spesDesc,
                 spesDesc = p.spesDesc,
                 price = p.price,
                 nums = p.nums,
@@ -238,6 +240,16 @@
                 
                 }).ToPageListAsync(pageIndex, pageSize, totalCount);
             }
+
+            foreach (var puhuo  in page)
+            {
+              var distribution = await  DbClient.Queryable<CoreCmsDistribution>().In(puhuo.distributionId).WithNoLockOrNot(blUseNoLock).WithCacheIF(false).SingleAsync();
+                if (distribution !=null)
+                {
+                    puhuo.schoolName = distribution.schoolName;
+                }
+            }
+
             var list = new PageList<Puhuo>(page, pageIndex, pageSize, totalCount);
             return list;
         }
@@ -259,7 +271,7 @@
         /// <param name="blUseNoLock">鏄惁浣跨敤WITH(NOLOCK)</param>
         /// <returns></returns>
         public async Task<IPageList<Puhuo>> QueryPageGroupAsync(Expression<Func<Puhuo, bool>> predicate,
-            Expression<Func<Puhuo, object>> orderByExpression, OrderByType orderByType, int pageIndex = 1,
+            Expression<Func<Puhuo, object>> orderByExpression, OrderByType orderByType, OtherData otherData, int pageIndex = 1,
             int pageSize = 20, bool blUseNoLock = false)
         {
             RefAsync<int> totalCount = 0;
@@ -267,7 +279,7 @@
             if (blUseNoLock)
             {
                 page = await DbClient.Queryable<Puhuo>()
-                .GroupBy(it => new {  it.CategoryId, it.CategoryName, it.goodsId, it.goodsName, it.productsId, it.productsName, it.price })
+                .GroupBy(it => new {  it.CategoryId, it.CategoryName, it.goodsId, it.goodsName, it.productsId, it.productsName, it.price ,it.spesDesc })
                 .WhereIF(predicate != null, predicate)
                 .Select(p => new Puhuo
                 {
@@ -278,7 +290,7 @@
                     goodsId = p.goodsId,
                     goodsName = p.goodsName,
                     productsId = p.productsId,
-                    productsName = p.productsName,
+                    productsName =  p.productsName + " " + p.spesDesc,
                     price = p.price,
                     tiaozhengnums =SqlFunc.AggregateCount(p.id),
                     nums =  SqlFunc.AggregateSum(p.nums),
@@ -289,6 +301,9 @@
                .MergeTable()//闇�瑕佸姞MergeTable鎵嶈兘鎺掑簭缁熻杩囩殑鍒�
                 .OrderByIF(orderByExpression != null, orderByExpression, orderByType)
                 .With(SqlWith.NoLock).ToPageListAsync(pageIndex, pageSize, totalCount);
+
+
+               
             }
             else
             {
@@ -303,7 +318,7 @@
                      goodsId = p.goodsId,
                      goodsName = p.goodsName,
                      productsId = p.productsId,
-                     productsName = p.productsName,
+                     productsName = p.productsName + " " + p.spesDesc,
                      price = p.price,
                      tiaozhengnums = SqlFunc.AggregateCount(p.id),
                      nums = SqlFunc.AggregateSum(p.nums),
@@ -315,6 +330,31 @@
                  .OrderByIF(orderByExpression != null, orderByExpression, orderByType)
                  .ToPageListAsync(pageIndex, pageSize, totalCount);
             }
+
+
+            var pagetotal = DbClient.Queryable<Puhuo>()
+               // .GroupBy(it => new { it.CategoryId, it.CategoryName, it.goodsId, it.goodsName, it.productsId, it.productsName, it.price })
+               .WhereIF(predicate != null, predicate)
+               .Select(p => new Puhuo
+               {
+                   tiaozhengnums = SqlFunc.AggregateCount(p.id),
+                   nums = SqlFunc.AggregateSum(p.nums),
+                   amount = SqlFunc.AggregateSum(p.amount),
+               })
+                 .First(); // 鎴栬�呬娇鐢� Single/FirstOrDefault 绛夋柟娉曡幏鍙栫粨鏋�
+              //.Select(p => new Puhuo
+              //{
+              //    tiaozhengnums = SqlFunc.AggregateCount(p.id),
+              //    nums = SqlFunc.AggregateSum(p.nums),
+              //    amount = SqlFunc.AggregateSum(p.amount),
+
+
+            //});
+
+            otherData.heji4 = pagetotal.nums;
+            otherData.heji5 = pagetotal.amount;
+            otherData.heji6 = pagetotal.tiaozhengnums;
+
             var list = new PageList<Puhuo>(page, pageIndex, pageSize, totalCount);
             return list;
         }
diff --git a/CoreCms.Net.Repository/baifenbingfa/PuhuoShoukuanRepository.cs b/CoreCms.Net.Repository/baifenbingfa/PuhuoShoukuanRepository.cs
new file mode 100644
index 0000000..9516525
--- /dev/null
+++ b/CoreCms.Net.Repository/baifenbingfa/PuhuoShoukuanRepository.cs
@@ -0,0 +1,280 @@
+/***********************************************************************
+ *            Project: baifenBinfa
+ *        ProjectName: 鐧惧垎鍏垫硶绠$悊绯荤粺                               
+ *                Web: http://chuanyin.com                     
+ *             Author:                                        
+ *              Email:                               
+ *         CreateTime: 2024/6/25 13:17:00
+ *        Description: 鏆傛棤
+ ***********************************************************************/
+
+using System;
+using System.Collections.Generic;
+using System.Linq.Expressions;
+using System.Threading.Tasks;
+using CoreCms.Net.Caching.Manual;
+using CoreCms.Net.Configuration;
+using CoreCms.Net.Model.Entities;
+using CoreCms.Net.Model.ViewModels.Basics;
+using CoreCms.Net.IRepository;
+using CoreCms.Net.IRepository.UnitOfWork;
+using CoreCms.Net.Model.ViewModels.UI;
+using SqlSugar;
+using CoreCms.Net.Model.Entities.baifenbingfa.puhuo;
+
+namespace CoreCms.Net.Repository
+{
+    /// <summary>
+    /// 閾鸿揣 鎺ュ彛瀹炵幇
+    /// </summary>
+    public class PuhuoShoukuanRepository : BaseRepository<PuhuoShoukuan>, IPuhuoShoukuanRepository
+    {
+        private readonly IUnitOfWork _unitOfWork;
+        public PuhuoShoukuanRepository(IUnitOfWork unitOfWork) : base(unitOfWork)
+        {
+            _unitOfWork = unitOfWork;
+        }
+
+       #region 瀹炵幇閲嶅啓澧炲垹鏀规煡鎿嶄綔==========================================================
+
+        /// <summary>
+        /// 閲嶅啓寮傛鎻掑叆鏂规硶
+        /// </summary>
+        /// <param name="entity">瀹炰綋鏁版嵁</param>
+        /// <returns></returns>
+        public async Task<AdminUiCallBack> InsertAsync(PuhuoShoukuan entity)
+        {
+            var jm = new AdminUiCallBack();
+
+            var bl = await DbClient.Insertable(entity).ExecuteReturnIdentityAsync() > 0;
+            jm.code = bl ? 0 : 1;
+            jm.msg = bl ? GlobalConstVars.CreateSuccess : GlobalConstVars.CreateFailure;
+
+            return jm;
+        }
+
+        /// <summary>
+        /// 閲嶅啓寮傛鏇存柊鏂规硶
+        /// </summary>
+        /// <param name="entity"></param>
+        /// <returns></returns>
+        public async Task<AdminUiCallBack> UpdateAsync(PuhuoShoukuan entity)
+        {
+            var jm = new AdminUiCallBack();
+
+            var oldModel = await DbClient.Queryable<PuhuoShoukuan>().In(entity.id).SingleAsync();
+            if (oldModel == null)
+            {
+            jm.msg = "涓嶅瓨鍦ㄦ淇℃伅";
+            return jm;
+            }
+            //浜嬬墿澶勭悊杩囩▼寮�濮�
+        	oldModel.id = entity.id;
+            oldModel.puhuoId = entity.puhuoId;
+            oldModel.distributionId = entity.distributionId;
+            oldModel.distributionName = entity.distributionName;
+            oldModel.areaCode = entity.areaCode;
+            oldModel.areaCodeName = entity.areaCodeName;
+            oldModel.CategoryId = entity.CategoryId;
+            oldModel.CategoryName = entity.CategoryName;
+            oldModel.goodsId = entity.goodsId;
+            oldModel.goodsName = entity.goodsName;
+            oldModel.productsId = entity.productsId;
+            oldModel.productsName = entity.productsName;
+            oldModel.spesDesc = entity.spesDesc;
+            oldModel.price = entity.price;
+            oldModel.nums = entity.nums;
+            oldModel.amount = entity.amount;
+            oldModel.shoukuannums = entity.shoukuannums;
+            oldModel.shoukuanamount = entity.shoukuanamount;
+            oldModel.createTime = entity.createTime;
+            oldModel.upDataTime = entity.upDataTime;
+            oldModel.createBy = entity.createBy;
+            oldModel.upDataBy = entity.upDataBy;
+            oldModel.isdelete = entity.isdelete;
+            
+            //浜嬬墿澶勭悊杩囩▼缁撴潫
+            var bl = await DbClient.Updateable(oldModel).ExecuteCommandHasChangeAsync();
+            jm.code = bl ? 0 : 1;
+            jm.msg = bl ? GlobalConstVars.EditSuccess : GlobalConstVars.EditFailure;
+
+            return jm;
+        }
+
+        /// <summary>
+        /// 閲嶅啓寮傛鏇存柊鏂规硶
+        /// </summary>
+        /// <param name="entity"></param>
+        /// <returns></returns>
+        public async Task<AdminUiCallBack> UpdateAsync(List<PuhuoShoukuan> entity)
+        {
+            var jm = new AdminUiCallBack();
+
+            var bl = await DbClient.Updateable(entity).ExecuteCommandHasChangeAsync();
+            jm.code = bl ? 0 : 1;
+            jm.msg = bl ? GlobalConstVars.EditSuccess : GlobalConstVars.EditFailure;
+
+            return jm;
+        }
+
+        /// <summary>
+        /// 閲嶅啓鍒犻櫎鎸囧畾ID鐨勬暟鎹�
+        /// </summary>
+        /// <param name="id"></param>
+        /// <returns></returns>
+        public async Task<AdminUiCallBack> DeleteByIdAsync(object id)
+        {
+            var jm = new AdminUiCallBack();
+
+            var bl = await DbClient.Deleteable<PuhuoShoukuan>(id).ExecuteCommandHasChangeAsync();
+            jm.code = bl ? 0 : 1;
+            jm.msg = bl ? GlobalConstVars.DeleteSuccess : GlobalConstVars.DeleteFailure;
+
+            return jm;
+        }
+
+        /// <summary>
+        /// 閲嶅啓鍒犻櫎鎸囧畾ID闆嗗悎鐨勬暟鎹�(鎵归噺鍒犻櫎)
+        /// </summary>
+        /// <param name="ids"></param>
+        /// <returns></returns>
+        public async Task<AdminUiCallBack> DeleteByIdsAsync(int[] ids)
+        {
+            var jm = new AdminUiCallBack();
+
+            var bl = await DbClient.Deleteable<PuhuoShoukuan>().In(ids).ExecuteCommandHasChangeAsync();
+            jm.code = bl ? 0 : 1;
+            jm.msg = bl ? GlobalConstVars.DeleteSuccess : GlobalConstVars.DeleteFailure;
+
+            return jm;
+        }
+
+        #endregion
+
+       #region 鑾峰彇缂撳瓨鐨勬墍鏈夋暟鎹�==========================================================
+
+        /// <summary>
+        /// 鑾峰彇缂撳瓨鐨勬墍鏈夋暟鎹�
+        /// </summary>
+        /// <returns></returns>
+        public async Task<List<PuhuoShoukuan>> GetCaChe()
+        {
+           var list = await DbClient.Queryable<PuhuoShoukuan>().With(SqlWith.NoLock).WithCache().ToListAsync();
+            return list;
+        }
+
+        #endregion
+
+
+        #region 閲嶅啓鏍规嵁鏉′欢鏌ヨ鍒嗛〉鏁版嵁
+        /// <summary>
+        ///     閲嶅啓鏍规嵁鏉′欢鏌ヨ鍒嗛〉鏁版嵁
+        /// </summary>
+        /// <param name="predicate">鍒ゆ柇闆嗗悎</param>
+        /// <param name="orderByType">鎺掑簭鏂瑰紡</param>
+        /// <param name="pageIndex">褰撳墠椤甸潰绱㈠紩</param>
+        /// <param name="pageSize">鍒嗗竷澶у皬</param>
+        /// <param name="orderByExpression"></param>
+        /// <param name="blUseNoLock">鏄惁浣跨敤WITH(NOLOCK)</param>
+        /// <returns></returns>
+        public async Task<IPageList<PuhuoShoukuan>> QueryPageAsync(Expression<Func<PuhuoShoukuan, bool>> predicate,
+            Expression<Func<PuhuoShoukuan, object>> orderByExpression, OrderByType orderByType, OtherData otherData , int pageIndex = 1,
+            int pageSize = 20, bool blUseNoLock = false)
+        {
+            RefAsync<int> totalCount = 0;
+            List<PuhuoShoukuan> page;
+            if (blUseNoLock)
+            {
+                page = await DbClient.Queryable<PuhuoShoukuan>()
+                .OrderByIF(orderByExpression != null, orderByExpression, orderByType)
+                .WhereIF(predicate != null, predicate).Select(p => new PuhuoShoukuan
+                {
+                      id = p.id,
+                puhuoId = p.puhuoId,
+                distributionId = p.distributionId,
+                distributionName = p.distributionName,
+                areaCode = p.areaCode,
+                areaCodeName = p.areaCodeName,
+                CategoryId = p.CategoryId,
+                CategoryName = p.CategoryName,
+                goodsId = p.goodsId,
+                goodsName = p.goodsName,
+                productsId = p.productsId,
+                productsName = p.productsName,
+                spesDesc = p.spesDesc,
+                price = p.price,
+                nums = p.nums,
+                amount = p.amount,
+                shoukuannums = p.shoukuannums,
+                shoukuanamount = p.shoukuanamount,
+                createTime = p.createTime,
+                upDataTime = p.upDataTime,
+                createBy = p.createBy,
+                upDataBy = p.upDataBy,
+                isdelete = p.isdelete,
+                
+                }).With(SqlWith.NoLock).ToPageListAsync(pageIndex, pageSize, totalCount);
+            }
+            else
+            {
+                page = await DbClient.Queryable<PuhuoShoukuan>()
+                .OrderByIF(orderByExpression != null, orderByExpression, orderByType)
+                .WhereIF(predicate != null, predicate).Select(p => new PuhuoShoukuan
+                {
+                      id = p.id,
+                puhuoId = p.puhuoId,
+                distributionId = p.distributionId,
+                distributionName = p.distributionName,
+                areaCode = p.areaCode,
+                areaCodeName = p.areaCodeName,
+                CategoryId = p.CategoryId,
+                CategoryName = p.CategoryName,
+                goodsId = p.goodsId,
+                goodsName = p.goodsName,
+                productsId = p.productsId,
+                productsName = p.productsName,
+                spesDesc = p.spesDesc,
+                price = p.price,
+                nums = p.nums,
+                amount = p.amount,
+                shoukuannums = p.shoukuannums,
+                shoukuanamount = p.shoukuanamount,
+                createTime = p.createTime,
+                upDataTime = p.upDataTime,
+                createBy = p.createBy,
+                upDataBy = p.upDataBy,
+                isdelete = p.isdelete,
+                
+                }).ToPageListAsync(pageIndex, pageSize, totalCount);
+            }
+
+            foreach (var puhuo in page)
+            {
+                var distribution = await DbClient.Queryable<CoreCmsDistribution>().In(puhuo.distributionId).WithNoLockOrNot(blUseNoLock).WithCacheIF(false).SingleAsync();
+                if (distribution != null)
+                {
+                    puhuo.schoolName = distribution.schoolName;
+                }
+            }
+
+
+            var pagetotal = DbClient.Queryable<PuhuoShoukuan>()
+              .WhereIF(predicate != null, predicate)
+              .Select(p => new Puhuo
+              {
+                  shoukuanamount = SqlFunc.AggregateSum(p.shoukuanamount),
+                  shoukuannums = SqlFunc.AggregateSum(p.shoukuannums),
+              })
+                .First(); 
+
+            otherData.heji4 = pagetotal.shoukuannums??0;
+            otherData.heji5 = pagetotal.shoukuanamount??0;
+
+            var list = new PageList<PuhuoShoukuan>(page, pageIndex, pageSize, totalCount);
+            return list;
+        }
+
+        #endregion
+
+    }
+}
diff --git a/CoreCms.Net.Services/Stock/CoreCmsStockServices.cs b/CoreCms.Net.Services/Stock/CoreCmsStockServices.cs
index fb7ded6..f051705 100644
--- a/CoreCms.Net.Services/Stock/CoreCmsStockServices.cs
+++ b/CoreCms.Net.Services/Stock/CoreCmsStockServices.cs
@@ -20,6 +20,7 @@
 using CoreCms.Net.Model.FromBody;
 using CoreCms.Net.Model.ViewModels.Basics;
 using CoreCms.Net.Model.ViewModels.UI;
+using Essensoft.Paylink.Alipay.Domain;
 using SqlSugar;
 
 
@@ -47,9 +48,9 @@
         /// </summary>
         /// <param name="entity">瀹炰綋鏁版嵁</param>
         /// <returns></returns>
-        public async Task<AdminUiCallBack> InsertAsync(FMCreateStock entity)
+        public async Task<AdminUiCallBack> InsertAsync(FMCreateStock entity, string username, CoreCmsDistribution distribution)
         {
-            return await _dal.InsertAsync(entity);
+            return await _dal.InsertAsync(entity,  username, distribution);
         }
 
         #endregion
diff --git a/CoreCms.Net.Services/baifenbingfa/PuhuoServices.cs b/CoreCms.Net.Services/baifenbingfa/PuhuoServices.cs
index ac6acc9..843c92c 100644
--- a/CoreCms.Net.Services/baifenbingfa/PuhuoServices.cs
+++ b/CoreCms.Net.Services/baifenbingfa/PuhuoServices.cs
@@ -139,10 +139,10 @@
         /// <param name="blUseNoLock">鏄惁浣跨敤WITH(NOLOCK)</param>
         /// <returns></returns>
         public async Task<IPageList<Puhuo>> QueryPageGroupAsync(Expression<Func<Puhuo, bool>> predicate,
-            Expression<Func<Puhuo, object>> orderByExpression, OrderByType orderByType, int pageIndex = 1,
+            Expression<Func<Puhuo, object>> orderByExpression, OrderByType orderByType, OtherData otherData, int pageIndex = 1,
             int pageSize = 20, bool blUseNoLock = false)
         {
-            return await _dal.QueryPageGroupAsync(predicate, orderByExpression, orderByType, pageIndex, pageSize, blUseNoLock);
+            return await _dal.QueryPageGroupAsync(predicate, orderByExpression, orderByType,  otherData , pageIndex, pageSize, blUseNoLock);
         }
         #endregion
 
diff --git a/CoreCms.Net.Services/baifenbingfa/PuhuoShoukuanServices.cs b/CoreCms.Net.Services/baifenbingfa/PuhuoShoukuanServices.cs
new file mode 100644
index 0000000..af3ecad
--- /dev/null
+++ b/CoreCms.Net.Services/baifenbingfa/PuhuoShoukuanServices.cs
@@ -0,0 +1,130 @@
+/***********************************************************************
+ *            Project: baifenBinfa
+ *        ProjectName: 鐧惧垎鍏垫硶绠$悊绯荤粺                               
+ *                Web: http://chuanyin.com                     
+ *             Author:                                        
+ *              Email:                               
+ *         CreateTime: 2024/6/25 13:17:00
+ *        Description: 鏆傛棤
+ ***********************************************************************/
+
+using System;
+using System.Collections.Generic;
+using System.Linq.Expressions;
+using System.Threading.Tasks;
+using CoreCms.Net.Configuration;
+using CoreCms.Net.IRepository;
+using CoreCms.Net.IRepository.UnitOfWork;
+using CoreCms.Net.IServices;
+using CoreCms.Net.Model.Entities;
+using CoreCms.Net.Model.Entities.baifenbingfa.puhuo;
+using CoreCms.Net.Model.ViewModels.Basics;
+using CoreCms.Net.Model.ViewModels.UI;
+using SqlSugar;
+
+
+namespace CoreCms.Net.Services
+{
+    /// <summary>
+    /// 閾鸿揣 鎺ュ彛瀹炵幇
+    /// </summary>
+    public class PuhuoShoukuanServices : BaseServices<PuhuoShoukuan>, IPuhuoShoukuanServices
+    {
+        private readonly IPuhuoShoukuanRepository _dal;
+        private readonly IUnitOfWork _unitOfWork;
+
+        public PuhuoShoukuanServices(IUnitOfWork unitOfWork, IPuhuoShoukuanRepository dal)
+        {
+            this._dal = dal;
+            base.BaseDal = dal;
+            _unitOfWork = unitOfWork;
+        }
+
+        #region 瀹炵幇閲嶅啓澧炲垹鏀规煡鎿嶄綔==========================================================
+
+        /// <summary>
+        /// 閲嶅啓寮傛鎻掑叆鏂规硶
+        /// </summary>
+        /// <param name="entity">瀹炰綋鏁版嵁</param>
+        /// <returns></returns>
+        public async Task<AdminUiCallBack> InsertAsync(PuhuoShoukuan entity)
+        {
+            return await _dal.InsertAsync(entity);
+        }
+
+        /// <summary>
+        /// 閲嶅啓寮傛鏇存柊鏂规硶鏂规硶
+        /// </summary>
+        /// <param name="entity"></param>
+        /// <returns></returns>
+        public async Task<AdminUiCallBack> UpdateAsync(PuhuoShoukuan entity)
+        {
+            return await _dal.UpdateAsync(entity);
+        }
+
+        /// <summary>
+        /// 閲嶅啓寮傛鏇存柊鏂规硶鏂规硶
+        /// </summary>
+        /// <param name="entity"></param>
+        /// <returns></returns>
+        public async Task<AdminUiCallBack> UpdateAsync(List<PuhuoShoukuan> entity)
+        {
+            return await _dal.UpdateAsync(entity);
+        }
+
+        /// <summary>
+        /// 閲嶅啓鍒犻櫎鎸囧畾ID鐨勬暟鎹�
+        /// </summary>
+        /// <param name="id"></param>
+        /// <returns></returns>
+        public async Task<AdminUiCallBack> DeleteByIdAsync(object id)
+        {
+            return await _dal.DeleteByIdAsync(id);
+        }
+
+        /// <summary>
+        /// 閲嶅啓鍒犻櫎鎸囧畾ID闆嗗悎鐨勬暟鎹�(鎵归噺鍒犻櫎)
+        /// </summary>
+        /// <param name="ids"></param>
+        /// <returns></returns>
+        public async Task<AdminUiCallBack> DeleteByIdsAsync(int[] ids)
+        {
+            return await _dal.DeleteByIdsAsync(ids);
+        }
+
+        #endregion
+
+        #region 鑾峰彇缂撳瓨鐨勬墍鏈夋暟鎹�==========================================================
+
+        /// <summary>
+        /// 鑾峰彇缂撳瓨鐨勬墍鏈夋暟鎹�
+        /// </summary>
+        /// <returns></returns>
+        public async Task<List<PuhuoShoukuan>> GetCaChe()
+        {
+            return await _dal.GetCaChe();
+        }
+
+        #endregion
+
+       #region 閲嶅啓鏍规嵁鏉′欢鏌ヨ鍒嗛〉鏁版嵁
+        /// <summary>
+        ///     閲嶅啓鏍规嵁鏉′欢鏌ヨ鍒嗛〉鏁版嵁
+        /// </summary>
+        /// <param name="predicate">鍒ゆ柇闆嗗悎</param>
+        /// <param name="orderByType">鎺掑簭鏂瑰紡</param>
+        /// <param name="pageIndex">褰撳墠椤甸潰绱㈠紩</param>
+        /// <param name="pageSize">鍒嗗竷澶у皬</param>
+        /// <param name="orderByExpression"></param>
+        /// <param name="blUseNoLock">鏄惁浣跨敤WITH(NOLOCK)</param>
+        /// <returns></returns>
+        public async Task<IPageList<PuhuoShoukuan>> QueryPageAsync(Expression<Func<PuhuoShoukuan, bool>> predicate,
+            Expression<Func<PuhuoShoukuan, object>> orderByExpression, OrderByType orderByType, OtherData otherData, int pageIndex = 1,
+            int pageSize = 20, bool blUseNoLock = false)
+        {
+            return await _dal.QueryPageAsync(predicate, orderByExpression, orderByType, otherData, pageIndex, pageSize, blUseNoLock);
+        }
+        #endregion
+
+    }
+}
diff --git a/CoreCms.Net.Web.Admin/Controllers/Stock/CoreCmsStockController.cs b/CoreCms.Net.Web.Admin/Controllers/Stock/CoreCmsStockController.cs
index efbbc3e..fb528b9 100644
--- a/CoreCms.Net.Web.Admin/Controllers/Stock/CoreCmsStockController.cs
+++ b/CoreCms.Net.Web.Admin/Controllers/Stock/CoreCmsStockController.cs
@@ -31,6 +31,9 @@
 using Microsoft.AspNetCore.Mvc;
 using NPOI.HSSF.UserModel;
 using SqlSugar;
+using CoreCms.Net.Services;
+using Essensoft.Paylink.Alipay.Domain;
+using CoreCms.Net.Services.Basic;
 
 namespace CoreCms.Net.Web.Admin.Controllers
 {
@@ -50,12 +53,16 @@
         private readonly ICoreCmsStockLogServices _stockLogServices;
         private readonly ISysUserServices _sysUserServices;
         private readonly IHttpContextUser _user;
+        private readonly ICoreCmsDistributionServices _coreCmsDistributionServices;
+        private readonly ICoreCmsAreaServices _coreCmsAreaServices;
 
         /// <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
+            , ICoreCmsDistributionServices coreCmsDistributionServices
+            , ICoreCmsAreaServices coreCmsAreaServices)
         {
             _webHostEnvironment = webHostEnvironment;
             _stockServices = stockServices;
@@ -63,6 +70,8 @@
             _user = user;
             _stockLogServices = stockLogServices;
             _sysUserServices = sysUserServices;
+            _coreCmsDistributionServices = coreCmsDistributionServices;
+            _coreCmsAreaServices = coreCmsAreaServices;
         }
 
         #region 鑾峰彇鍒楄〃============================================================
@@ -199,10 +208,13 @@
 
             var products = await _productsServices.GetProducts();
 
+            var distributions = await _coreCmsDistributionServices.QueryListByClauseAsync(p => p.isDelete == false && p.verifyStatus == 1, p => p.createTime, OrderByType.Desc, true, true);
+
             jm.data = new
             {
                 stockType,
                 products,
+                distributions
             };
 
             return jm;
@@ -220,6 +232,8 @@
         [Description("鍒涘缓鎻愪氦")]
         public async Task<AdminUiCallBack> DoCreate([FromBody] FMCreateStock entity)
         {
+            //杩斿洖鏁版嵁
+            var jm = new AdminUiCallBack { code = 0 };
             if (_user != null)
             {
                 entity.model.manager = _user.ID;
@@ -228,8 +242,30 @@
             {
                 entity.model.manager = 0;
             }
+            var distributions = new CoreCmsDistribution();
+            if (entity.model.type == 3)
+            {
+                if (entity.model.distributionId == 0)
+                {
+                    jm.msg = "璇烽�夋嫨缁忛攢鍟�";
+                    return jm;
+                }
 
-            var jm = await _stockServices.InsertAsync(entity);
+                distributions = await _coreCmsDistributionServices.QueryByIdAsync(entity.model.distributionId);
+                if (distributions != null)
+                {
+ 
+                    var d = await _coreCmsAreaServices.GetAreaFullName(distributions.areaCode?.Split(",").ToList().OrderDescending()?.FirstOrDefault()?.ToInt32OrDefault(0) ?? 0);
+                    if (d.status == true)
+                    {
+                        distributions.areaName = d.data.ToString();
+                    }
+
+                }
+            }
+              
+
+            jm = await _stockServices.InsertAsync(entity,_user.Name, distributions);
             return jm;
         }
         #endregion
diff --git a/CoreCms.Net.Web.Admin/Controllers/baifenbingfa/PuhuoController.cs b/CoreCms.Net.Web.Admin/Controllers/baifenbingfa/PuhuoController.cs
index a0ccdb2..da67438 100644
--- a/CoreCms.Net.Web.Admin/Controllers/baifenbingfa/PuhuoController.cs
+++ b/CoreCms.Net.Web.Admin/Controllers/baifenbingfa/PuhuoController.cs
@@ -42,6 +42,8 @@
 using Essensoft.Paylink.Alipay.Domain;
 using CoreCms.Net.Auth.HttpContextUser;
 using MathNet.Numerics.Distributions;
+using EnumsNET;
+using CoreCms.Net.IRepository;
 
 namespace CoreCms.Net.Web.Admin.Controllers
 {
@@ -66,6 +68,10 @@
         private readonly IHttpContextUser _user;
         private readonly ICoreCmsAreaServices _areaServices;
         private readonly ICoreCmsGoodsCategoryServices _goodsCategoryServices;
+        private readonly ICoreCmsStockRepository _stockRepository;
+        private readonly ICoreCmsStockServices _stockServices;
+        private readonly ICoreCmsStockLogServices _stockLogServices;
+        private readonly IPuhuoShoukuanServices _puhuoShoukuanServices;
 
         /// <summary>
         /// 鏋勯�犲嚱鏁�
@@ -81,6 +87,10 @@
             , IHttpContextUser user
             , ICoreCmsAreaServices areaServices
             , ICoreCmsGoodsCategoryServices goodsCategoryServices
+            , ICoreCmsStockRepository stockRepository
+            , ICoreCmsStockServices stockServices
+             , ICoreCmsStockLogServices stockLogServices
+            , IPuhuoShoukuanServices puhuoShoukuanServices
             )
         {
             _webHostEnvironment = webHostEnvironment;
@@ -94,6 +104,10 @@
             _user = user;
             _areaServices = areaServices;
             _goodsCategoryServices = goodsCategoryServices;
+            _stockRepository = stockRepository;
+            _stockServices = stockServices;
+            _stockLogServices = stockLogServices;
+            _puhuoShoukuanServices = puhuoShoukuanServices;
         }
 
 
@@ -321,13 +335,21 @@
             {
                 where = where.And(p => p.isdelete == false);
             }
+            OtherData otherData = new OtherData();
             //鑾峰彇鏁版嵁
-            var list = await _PuhuoServices.QueryPageGroupAsync(where, orderEx, orderBy, pageCurrent, pageSize, true);
+            var list = await _PuhuoServices.QueryPageGroupAsync(where, orderEx, orderBy, otherData, pageCurrent, pageSize, true);
             //杩斿洖鏁版嵁
             jm.data = list;
             jm.code = 0;
             jm.count = list.TotalCount;
             jm.msg = "鏁版嵁璋冪敤鎴愬姛!";
+
+          
+            
+            otherData.heji1 = list.Sum(x=>x.nums);
+            otherData.heji2 = list.Sum(x => x.amount);
+            otherData.heji3 = list.Sum(x => x.tiaozhengnums);
+            jm.otherData = otherData;
             return jm;
         }
         #endregion
@@ -832,7 +854,26 @@
             coreCmsProduct.stock = coreCmsProduct.stock - entity.nums;
             var bb = await _coreCmsProductsServices.UpdateAsync(coreCmsProduct);
 
-          
+            //搴撳瓨鐩樼偣
+            var stockModel = new CoreCmsStock();
+            stockModel.id = await _stockRepository.CreateCode(GlobalEnumVars.StockType.CheckGoods.ToString());
+            stockModel.memo = entity.distributionName + " 缁忛攢鍟嗛摵璐�";
+            stockModel.type = (int)GlobalEnumVars.StockType.Out;
+            stockModel.manager = _user.ID;
+            stockModel.createTime = DateTime.Now;
+
+            var stockLogModel = new CoreCmsStockLog();
+            stockLogModel.stockId = stockModel.id;
+            stockLogModel.productId = entity.productsId;
+            stockLogModel.goodsId = entity.goodsId;
+            stockLogModel.nums = entity.nums;
+            stockLogModel.goodsName = entity.goodsName;
+            stockLogModel.sn = entity.productsName;
+            stockLogModel.bn = entity.productsName;
+            stockLogModel.spesDesc = entity.spesDesc;
+            var s = await _stockServices.InsertAsync(stockModel);
+            s = await _stockLogServices.InsertAsync(stockLogModel);
+
 
             jm = await _PuhuoServices.InsertAsync(entity);
             return jm;
@@ -883,74 +924,187 @@
 
             var jm = new AdminUiCallBack();
 
-
-            if (entity.tiaozhengnums <= 0)
+            if(entity.jintui == 4)
             {
-                jm.msg = "璇峰~鍐欒皟鏁存暟閲�";
-                return jm;
-            }
-           
-
-
-            var puhuo = await _PuhuoServices.QueryByIdAsync(entity.id);
-
-            if (entity.jintui == 2 && puhuo.nums < entity.tiaozhengnums)
-            {
-                jm.msg = "閫�璐ф暟閲忓ぇ浜庨摵璐ф暟閲忥紝涓嶈兘鎻愪氦";
-                return jm;
-            }
-
-           
-
-
-            var coreCmsProduct = await _coreCmsProductsServices.QueryByIdAsync(puhuo.productsId);
-            if (coreCmsProduct != null)
-            {
-                if (entity.jintui == 1 && coreCmsProduct.stock < entity.tiaozhengnums)
+                if (entity.shoukuannums <= 0)
                 {
-                    jm.msg = "搴撳瓨涓嶈冻锛�";
+                    jm.msg = "璇峰~鍐欐敹娆炬暟閲�";
                     return jm;
                 }
-                if (entity.jintui == 1)
+
+                var puhuo = await _PuhuoServices.QueryByIdAsync(entity.id);
+                var aaaa = puhuo.shoukuannums ?? 0;
+                if ( puhuo.nums < (aaaa + entity.shoukuannums))
                 {
-                    puhuo.nums = puhuo.nums + entity.tiaozhengnums;
+                    jm.msg = "鏀舵鏁伴噺澶т簬閾鸿揣鏁伴噺锛屼笉鑳芥彁浜�";
+                    return jm;
                 }
-                else if (entity.jintui == 2)
-                {
-                    puhuo.nums = puhuo.nums - entity.tiaozhengnums;
-                }
-                puhuo.price = coreCmsProduct.distributionPrice;
-                puhuo.amount = coreCmsProduct.distributionPrice * new decimal(puhuo.nums);
+                PuhuoShoukuan puhuoShoukuan = new PuhuoShoukuan();
+                puhuoShoukuan.puhuoId = puhuo.id;
+                puhuoShoukuan.distributionId = puhuo.distributionId;
+                puhuoShoukuan.distributionName = puhuo.distributionName;
+                puhuoShoukuan.areaCode = puhuo.areaCode;
+                puhuoShoukuan.areaCodeName = puhuo.areaCodeName;
+                puhuoShoukuan.CategoryId = puhuo.CategoryId;
+                puhuoShoukuan.CategoryName = puhuo.CategoryName;
+                puhuoShoukuan.goodsId = puhuo.goodsId;
+                puhuoShoukuan.goodsName = puhuo.goodsName;
+                puhuoShoukuan.productsId = puhuo.productsId;
+                puhuoShoukuan.productsName = puhuo.productsName;
+                puhuoShoukuan.spesDesc = puhuo.spesDesc;
+                puhuoShoukuan.price = puhuo.price;
+
+                puhuoShoukuan.nums = puhuo.nums;
+                puhuoShoukuan.amount = puhuo.amount;
+                puhuoShoukuan.shoukuannums = entity.shoukuannums.Value;
+                puhuoShoukuan.shoukuanamount = new decimal(entity.shoukuannums.Value) * puhuo.price;
+                puhuoShoukuan.isdelete = false;
+                puhuoShoukuan.createBy = _user.Name;
+                puhuoShoukuan.upDataBy = _user.Name;
+                puhuoShoukuan.createTime = DateTime.Now;
+                puhuoShoukuan.upDataTime = DateTime.Now;
+                jm = await _puhuoShoukuanServices.InsertAsync(puhuoShoukuan);
+
+
+                puhuo.upDataBy = _user.Name;
+                puhuo.upDataTime = DateTime.Now;
+                var sss = puhuo.shoukuannums ?? 0;
+                puhuo.shoukuannums = sss + entity.shoukuannums.Value;
+                var aaa = puhuo.shoukuanamount ?? new decimal(0);
+                puhuo.shoukuanamount = aaa + (new decimal(entity.shoukuannums.Value) * puhuo.price);
+                jm = await _PuhuoServices.UpdateAsync(puhuo);
+
+
+
             }
             else
             {
-                jm.msg = "娌℃壘鍒颁骇鍝�";
-                return jm;
+                if (entity.tiaozhengnums <= 0 && entity.jintui != 3)
+                {
+                    jm.msg = "璇峰~鍐欒皟鏁存暟閲�";
+                    return jm;
+                }
+
+
+
+                var puhuo = await _PuhuoServices.QueryByIdAsync(entity.id);
+
+                if (entity.jintui == 2 && puhuo.nums < entity.tiaozhengnums)
+                {
+                    jm.msg = "閫�璐ф暟閲忓ぇ浜庨摵璐ф暟閲忥紝涓嶈兘鎻愪氦";
+                    return jm;
+                }
+
+                if (entity.jintui == 3 && puhuo.nums < -entity.tiaozhengnums)
+                {
+                    jm.msg = "鐩樼偣鍑忓皯鏁伴噺澶т簬閾鸿揣鏁伴噺锛屼笉鑳芥彁浜�";
+                    return jm;
+                }
+
+
+
+
+                var coreCmsProduct = await _coreCmsProductsServices.QueryByIdAsync(puhuo.productsId);
+                if (coreCmsProduct != null)
+                {
+                    if (entity.jintui == 1 && coreCmsProduct.stock < entity.tiaozhengnums)
+                    {
+                        jm.msg = "搴撳瓨涓嶈冻锛�";
+                        return jm;
+                    }
+                    if (entity.jintui == 1)
+                    {
+                        puhuo.nums = puhuo.nums + entity.tiaozhengnums;
+                    }
+                    else if (entity.jintui == 2)
+                    {
+                        puhuo.nums = puhuo.nums - entity.tiaozhengnums;
+                    }
+                    else if (entity.jintui == 3)
+                    {
+                        puhuo.nums = puhuo.nums + entity.tiaozhengnums;
+                    }
+                    puhuo.price = coreCmsProduct.distributionPrice;
+                    puhuo.amount = coreCmsProduct.distributionPrice * new decimal(puhuo.nums);
+                }
+                else
+                {
+                    jm.msg = "娌℃壘鍒颁骇鍝�";
+                    return jm;
+                }
+
+
+                puhuo.isdelete = false;
+                //entity.createBy = _user.Name;
+                puhuo.upDataBy = _user.Name;
+                //entity.createTime = DateTime.Now;
+                puhuo.upDataTime = DateTime.Now;
+
+
+
+                if (entity.jintui == 1)
+                {
+                    coreCmsProduct.stock = coreCmsProduct.stock - entity.tiaozhengnums;
+                }
+                else if (entity.jintui == 2)
+                {
+                    coreCmsProduct.stock = coreCmsProduct.stock + entity.tiaozhengnums;
+                }
+
+                //鐩樼偣涓嶆墸鍑忓簱瀛�
+                if (entity.jintui != 3)
+                {
+                    var bb = await _coreCmsProductsServices.UpdateAsync(coreCmsProduct);
+
+                }
+
+
+
+
+
+                var stockModel = new CoreCmsStock();
+                stockModel.id = await _stockRepository.CreateCode(GlobalEnumVars.StockType.CheckGoods.ToString());
+
+
+                stockModel.manager = _user.ID;
+                stockModel.createTime = DateTime.Now;
+
+                var stockLogModel = new CoreCmsStockLog();
+                stockLogModel.stockId = stockModel.id;
+                stockLogModel.productId = puhuo.productsId;
+                stockLogModel.goodsId = puhuo.goodsId;
+                if (entity.jintui == 1)
+                {
+                    stockModel.memo = puhuo.distributionName + " 缁忛攢鍟嗛摵璐�";
+                    stockModel.type = (int)GlobalEnumVars.StockType.Out;
+                    stockLogModel.nums = entity.tiaozhengnums;
+                }
+                else if (entity.jintui == 2)
+                {
+                    stockModel.memo = puhuo.distributionName + " 缁忛攢鍟嗛摵璐ч��璐�";
+                    stockModel.type = (int)GlobalEnumVars.StockType.In;
+                    stockLogModel.nums = entity.tiaozhengnums;
+                }
+                else if (entity.jintui == 3)
+                {
+                    stockModel.memo = puhuo.distributionName + " 閾鸿揣鐩樼偣鏍稿噺鎹熻��";
+                    stockModel.type = (int)GlobalEnumVars.StockType.CheckPuhuo;
+                    stockLogModel.nums = entity.tiaozhengnums;
+                }
+
+                stockLogModel.goodsName = puhuo.goodsName;
+                stockLogModel.sn = puhuo.productsName;
+                stockLogModel.bn = puhuo.productsName;
+                stockLogModel.spesDesc = puhuo.spesDesc;
+                var s = await _stockServices.InsertAsync(stockModel);
+                s = await _stockLogServices.InsertAsync(stockLogModel);
+
+
+
+                jm = await _PuhuoServices.UpdateAsync(puhuo);
             }
 
-
-            puhuo.isdelete = false;
-            //entity.createBy = _user.Name;
-            puhuo.upDataBy = _user.Name;
-            //entity.createTime = DateTime.Now;
-            puhuo.upDataTime = DateTime.Now;
-
-
-
-            if (entity.jintui == 1)
-            {
-                coreCmsProduct.stock = coreCmsProduct.stock - entity.tiaozhengnums;
-            }
-            else if (entity.jintui == 2)
-            {
-                coreCmsProduct.stock = coreCmsProduct.stock + entity.tiaozhengnums;
-            }
-           
-            var bb = await _coreCmsProductsServices.UpdateAsync(coreCmsProduct);
-
-
-
-            jm = await _PuhuoServices.UpdateAsync(puhuo);
+            
             return jm;
         }
         #endregion
@@ -1010,6 +1164,16 @@
         {
             var jm = new AdminUiCallBack();
             var puhuoss = await _PuhuoServices.QueryListByClauseAsync(p => p.productsId == entity.productsId);
+
+            foreach (var puhuo in puhuoss)
+            {
+                puhuo.productsName = puhuo.productsName + " " + puhuo.spesDesc;
+             var distribution   = await   _coreCmsDistributionServices.QueryByIdAsync(puhuo.distributionId);
+                if (distribution != null)
+                {
+                    puhuo.schoolName = distribution.schoolName;
+                }
+            }
             //var model = await _PuhuoServices.QueryByIdAsync(entity.id, false);
             //if (model == null)
             //{
diff --git a/CoreCms.Net.Web.Admin/Controllers/baifenbingfa/PuhuoShoukuanController.cs b/CoreCms.Net.Web.Admin/Controllers/baifenbingfa/PuhuoShoukuanController.cs
new file mode 100644
index 0000000..c3de4f2
--- /dev/null
+++ b/CoreCms.Net.Web.Admin/Controllers/baifenbingfa/PuhuoShoukuanController.cs
@@ -0,0 +1,1281 @@
+/***********************************************************************
+ *            Project: baifenBinfa
+ *        ProjectName: 鐧惧垎鍏垫硶绠$悊绯荤粺                               
+ *                Web: http://chuanyin.com                     
+ *             Author:                                        
+ *              Email:                               
+ *         CreateTime: 2024/6/25 13:17:00
+ *        Description: 鏆傛棤
+ ***********************************************************************/
+
+
+using System;
+using System.ComponentModel;
+using System.IO;
+using System.Linq;
+using System.Linq.Expressions;
+using System.Threading.Tasks;
+using CoreCms.Net.Configuration;
+using CoreCms.Net.Model.Entities;
+using CoreCms.Net.Model.Entities.Expression;
+using CoreCms.Net.Model.FromBody;
+using CoreCms.Net.Model.ViewModels.UI;
+using CoreCms.Net.Filter;
+using CoreCms.Net.Loging;
+using CoreCms.Net.IServices;
+using CoreCms.Net.Utility.Helper;
+using CoreCms.Net.Utility.Extensions;
+using Microsoft.AspNetCore.Authorization;
+using Microsoft.AspNetCore.Hosting;
+using Microsoft.AspNetCore.Mvc;
+using NPOI.HSSF.UserModel;
+using SqlSugar;
+using CoreCms.Net.Web.Admin.Infrastructure;
+using CoreCms.Net.Model.Entities.baifenbingfa.puhuo;
+
+namespace CoreCms.Net.Web.Admin.Controllers
+{
+    /// <summary>
+    /// 閾鸿揣
+    ///</summary>
+    [Description("閾鸿揣")]
+    [Route("api/[controller]/[action]")]
+    [ApiController]
+    [RequiredErrorForAdmin]
+    [Authorize(Permissions.Name)]
+    public class PuhuoShoukuanController : ControllerBase
+    {
+        private readonly IWebHostEnvironment _webHostEnvironment;
+        private readonly IPuhuoShoukuanServices _PuhuoShoukuanServices;
+        private readonly ICoreCmsAreaServices _areaServices;
+
+        /// <summary>
+        /// 鏋勯�犲嚱鏁�
+        ///</summary>
+        public PuhuoShoukuanController(IWebHostEnvironment webHostEnvironment
+            ,IPuhuoShoukuanServices PuhuoShoukuanServices
+            , ICoreCmsAreaServices areaServices
+            )
+        {
+            _webHostEnvironment = webHostEnvironment;
+            _PuhuoShoukuanServices = PuhuoShoukuanServices;
+            _areaServices = areaServices;
+        }
+
+        #region 鑾峰彇鍒楄〃============================================================
+        // POST: Api/PuhuoShoukuan/GetPageList
+         /// <summary>
+        /// 鑾峰彇鍒楄〃
+        /// </summary>
+        /// <returns></returns>
+        [HttpPost]
+        [Description("鑾峰彇鍒楄〃")]
+        public async Task<AdminUiCallBack> GetPageList()
+        {
+            var jm = new AdminUiCallBack();
+            var pageCurrent = Request.Form["page"].FirstOrDefault().ObjectToInt(1);
+            var pageSize = Request.Form["limit"].FirstOrDefault().ObjectToInt(30);
+            var where = PredicateBuilder.True<PuhuoShoukuan>();
+            //鑾峰彇鎺掑簭瀛楁
+            var orderField = Request.Form["orderField"].FirstOrDefault();
+
+            Expression<Func<PuhuoShoukuan, object>> orderEx = orderField switch
+            {
+                "id" => p => p.id,"puhuoId" => p => p.puhuoId,"distributionId" => p => p.distributionId,"distributionName" => p => p.distributionName,"areaCode" => p => p.areaCode,"areaCodeName" => p => p.areaCodeName,"CategoryId" => p => p.CategoryId,"CategoryName" => p => p.CategoryName,"goodsId" => p => p.goodsId,"goodsName" => p => p.goodsName,"productsId" => p => p.productsId,"productsName" => p => p.productsName,"spesDesc" => p => p.spesDesc,"price" => p => p.price,"nums" => p => p.nums,"amount" => p => p.amount,"shoukuannums" => p => p.shoukuannums,"shoukuanamount" => p => p.shoukuanamount,"createTime" => p => p.createTime,"upDataTime" => p => p.upDataTime,"createBy" => p => p.createBy,"upDataBy" => p => p.upDataBy,"isdelete" => p => p.isdelete,
+                _ => p => p.id
+            };
+
+            //璁剧疆鎺掑簭鏂瑰紡
+            var orderDirection = Request.Form["orderDirection"].FirstOrDefault();
+            var orderBy = orderDirection switch
+            {
+                "asc" => OrderByType.Asc,
+                "desc" => OrderByType.Desc,
+                _ => OrderByType.Desc
+            };
+            //鏌ヨ绛涢��
+			
+			//涓婚敭ID int
+			var id = Request.Form["id"].FirstOrDefault().ObjectToInt(0);
+            if (id > 0)
+            {
+                where = where.And(p => p.id == id);
+            }
+			//閾鸿揣id int
+			var puhuoId = Request.Form["puhuoId"].FirstOrDefault().ObjectToInt(0);
+            if (puhuoId > 0)
+            {
+                where = where.And(p => p.puhuoId == puhuoId);
+            }
+			//缁忛攢鍟唅d int
+			var distributionId = Request.Form["distributionId"].FirstOrDefault().ObjectToInt(0);
+            if (distributionId > 0)
+            {
+                where = where.And(p => p.distributionId == distributionId);
+            }
+			//缁忛攢鍟� varchar
+			var distributionName = Request.Form["distributionName"].FirstOrDefault();
+            if (!string.IsNullOrEmpty(distributionName))
+            {
+                where = where.And(p => p.distributionName.Contains(distributionName));
+            }
+            //鍖哄煙 varchar
+            var sheng = Request.Form["sheng"].FirstOrDefault();
+            if (!string.IsNullOrEmpty(sheng))
+            {
+                where = where.And(p => p.areaCode.Contains(sheng));
+            }
+            var shi = Request.Form["shi"].FirstOrDefault();
+            if (!string.IsNullOrEmpty(shi))
+            {
+                where = where.And(p => p.areaCode.Contains(shi));
+            }
+            var quxian = Request.Form["quxian"].FirstOrDefault();
+            if (!string.IsNullOrEmpty(quxian))
+            {
+                where = where.And(p => p.areaCode.Contains(quxian));
+            }
+            //鍖哄煙鍚嶇О varchar
+            var areaCodeName = Request.Form["areaCodeName"].FirstOrDefault();
+            if (!string.IsNullOrEmpty(areaCodeName))
+            {
+                where = where.And(p => p.areaCodeName.Contains(areaCodeName));
+            }
+			//鍟嗗搧鍒嗙被id int
+			var CategoryId = Request.Form["CategoryId"].FirstOrDefault().ObjectToInt(0);
+            if (CategoryId > 0)
+            {
+                where = where.And(p => p.CategoryId == CategoryId);
+            }
+			//鍟嗗搧鍒嗙被 varchar
+			var CategoryName = Request.Form["CategoryName"].FirstOrDefault();
+            if (!string.IsNullOrEmpty(CategoryName))
+            {
+                where = where.And(p => p.CategoryName.Contains(CategoryName));
+            }
+			//鍟嗗搧id int
+			var goodsId = Request.Form["goodsId"].FirstOrDefault().ObjectToInt(0);
+            if (goodsId > 0)
+            {
+                where = where.And(p => p.goodsId == goodsId);
+            }
+			//鍟嗗搧鍚嶇О varchar
+			var goodsName = Request.Form["goodsName"].FirstOrDefault();
+            if (!string.IsNullOrEmpty(goodsName))
+            {
+                where = where.And(p => p.goodsName.Contains(goodsName));
+            }
+			//璐у搧id int
+			var productsId = Request.Form["productsId"].FirstOrDefault().ObjectToInt(0);
+            if (productsId > 0)
+            {
+                where = where.And(p => p.productsId == productsId);
+            }
+			//璐у搧缂栧彿 varchar
+			var productsName = Request.Form["productsName"].FirstOrDefault();
+            if (!string.IsNullOrEmpty(productsName))
+            {
+                where = where.And(p => p.productsName.Contains(productsName));
+            }
+			//璐у搧瑙勬牸 varchar
+			var spesDesc = Request.Form["spesDesc"].FirstOrDefault();
+            if (!string.IsNullOrEmpty(spesDesc))
+            {
+                where = where.And(p => p.spesDesc.Contains(spesDesc));
+            }
+			//璐у搧浠锋牸 decimal
+			var price = Request.Form["price"].FirstOrDefault().ObjectToDecimal(0);
+            if (price > 0)
+            {
+                where = where.And(p => p.price == price);
+            }
+			//鏁伴噺 int
+			var nums = Request.Form["nums"].FirstOrDefault().ObjectToInt(0);
+            if (nums > 0)
+            {
+                where = where.And(p => p.nums == nums);
+            }
+			//閲戦 decimal
+			var amount = Request.Form["amount"].FirstOrDefault().ObjectToDecimal(0);
+            if (amount > 0)
+            {
+                where = where.And(p => p.amount == amount);
+            }
+			//鏀舵鏁伴噺 int
+			var shoukuannums = Request.Form["shoukuannums"].FirstOrDefault().ObjectToInt(0);
+            if (shoukuannums > 0)
+            {
+                where = where.And(p => p.shoukuannums == shoukuannums);
+            }
+			//鏀舵閲戦 decimal
+			var shoukuanamount = Request.Form["shoukuanamount"].FirstOrDefault().ObjectToDecimal(0);
+            if (shoukuanamount > 0)
+            {
+                where = where.And(p => p.shoukuanamount == shoukuanamount);
+            }
+			//寤虹珛鏃堕棿 datetime
+			var createTime = Request.Form["createTime"].FirstOrDefault();
+            if (!string.IsNullOrEmpty(createTime))
+            {
+                if (createTime.Contains("鍒�"))
+                {
+                    var dts = createTime.Split("鍒�");
+                    var dtStart = dts[0].Trim().ObjectToDate();
+                    where = where.And(p => p.createTime > dtStart);
+                    var dtEnd = dts[1].Trim().ObjectToDate();
+                    where = where.And(p => p.createTime < dtEnd);
+                }
+                else
+                {
+                    var dt = createTime.ObjectToDate();
+                    where = where.And(p => p.createTime > dt);
+                }
+            }
+			//淇敼鏃堕棿 datetime
+			var upDataTime = Request.Form["upDataTime"].FirstOrDefault();
+            if (!string.IsNullOrEmpty(upDataTime))
+            {
+                if (upDataTime.Contains("鍒�"))
+                {
+                    var dts = upDataTime.Split("鍒�");
+                    var dtStart = dts[0].Trim().ObjectToDate();
+                    where = where.And(p => p.upDataTime > dtStart);
+                    var dtEnd = dts[1].Trim().ObjectToDate();
+                    where = where.And(p => p.upDataTime < dtEnd);
+                }
+                else
+                {
+                    var dt = upDataTime.ObjectToDate();
+                    where = where.And(p => p.upDataTime > dt);
+                }
+            }
+			//鍒涘缓浜� varchar
+			var createBy = Request.Form["createBy"].FirstOrDefault();
+            if (!string.IsNullOrEmpty(createBy))
+            {
+                where = where.And(p => p.createBy.Contains(createBy));
+            }
+			//淇敼浜� varchar
+			var upDataBy = Request.Form["upDataBy"].FirstOrDefault();
+            if (!string.IsNullOrEmpty(upDataBy))
+            {
+                where = where.And(p => p.upDataBy.Contains(upDataBy));
+            }
+			//鍒犻櫎鏍囧織 bit
+			var isdelete = Request.Form["isdelete"].FirstOrDefault();
+            if (!string.IsNullOrEmpty(isdelete) && isdelete.ToLowerInvariant() == "true")
+            {
+                where = where.And(p => p.isdelete == true);
+            }
+            else if (!string.IsNullOrEmpty(isdelete) && isdelete.ToLowerInvariant() == "false")
+            {
+                where = where.And(p => p.isdelete == false);
+            }
+            OtherData otherData = new OtherData();
+            //鑾峰彇鏁版嵁
+            var list = await _PuhuoShoukuanServices.QueryPageAsync(where, orderEx, orderBy, otherData, pageCurrent, pageSize, true);
+            //杩斿洖鏁版嵁
+            jm.data = list;
+            jm.code = 0;
+            jm.count = list.TotalCount;
+            jm.msg = "鏁版嵁璋冪敤鎴愬姛!";
+
+            otherData.heji1 = list.Sum(x => x.shoukuannums);
+            otherData.heji2 = list.Sum(x => x.shoukuanamount);
+            jm.otherData = otherData;
+
+            return jm;
+        }
+        #endregion
+
+        #region 棣栭〉鏁版嵁============================================================
+        // POST: Api/PuhuoShoukuan/GetIndex
+        /// <summary>
+        /// 棣栭〉鏁版嵁
+        /// </summary>
+        /// <returns></returns>
+        [HttpPost]
+        [Description("棣栭〉鏁版嵁")]
+        public async Task<AdminUiCallBack> GetIndex()
+        {
+            //杩斿洖鏁版嵁
+            var jm = new AdminUiCallBack { code = 0 };
+
+            var shi = await _areaServices.QueryListByClauseAsync(p => p.parentId == 0);//510000
+
+            var sss = shi.Where(x => x.id == 510000).FirstOrDefault();
+
+
+            if (shi.Remove(sss))
+            {
+                shi.Insert(0, sss);
+            }
+            jm.data = shi;
+
+            return jm;
+        }
+        #endregion
+
+        #region 鍒涘缓鏁版嵁============================================================
+        // POST: Api/PuhuoShoukuan/GetCreate
+        /// <summary>
+        /// 鍒涘缓鏁版嵁
+        /// </summary>
+        /// <returns></returns>
+        [HttpPost]
+        [Description("鍒涘缓鏁版嵁")]
+        public AdminUiCallBack GetCreate()
+        {
+            //杩斿洖鏁版嵁
+            var jm = new AdminUiCallBack { code = 0 };
+            return jm;
+        }
+        #endregion
+
+        #region 鍒涘缓鎻愪氦============================================================
+        // POST: Api/PuhuoShoukuan/DoCreate
+        /// <summary>
+        /// 鍒涘缓鎻愪氦
+        /// </summary>
+        /// <param name="entity"></param>
+        /// <returns></returns>
+        [HttpPost]
+        [Description("鍒涘缓鎻愪氦")]
+        public async Task<AdminUiCallBack> DoCreate([FromBody]PuhuoShoukuan entity)
+        {
+            var jm = await _PuhuoShoukuanServices.InsertAsync(entity);
+            return jm;
+        }
+        #endregion
+
+        #region 缂栬緫鏁版嵁============================================================
+        // POST: Api/PuhuoShoukuan/GetEdit
+        /// <summary>
+        /// 缂栬緫鏁版嵁
+        /// </summary>
+        /// <param name="entity"></param>
+        /// <returns></returns>
+        [HttpPost]
+        [Description("缂栬緫鏁版嵁")]
+        public async Task<AdminUiCallBack> GetEdit([FromBody]FMIntId entity)
+        {
+            var jm = new AdminUiCallBack();
+
+            var model = await _PuhuoShoukuanServices.QueryByIdAsync(entity.id, false);
+            if (model == null)
+            {
+                jm.msg = "涓嶅瓨鍦ㄦ淇℃伅";
+                return jm;
+            }
+            jm.code = 0;
+            jm.data = model;
+
+            return jm;
+        }
+        #endregion
+
+        #region 缂栬緫鎻愪氦============================================================
+        // POST: Api/PuhuoShoukuan/Edit
+        /// <summary>
+        /// 缂栬緫鎻愪氦
+        /// </summary>
+        /// <param name="entity"></param>
+        /// <returns></returns>
+        [HttpPost]
+        [Description("缂栬緫鎻愪氦")]
+        public async Task<AdminUiCallBack> DoEdit([FromBody]PuhuoShoukuan entity)
+        {
+            var jm = await _PuhuoShoukuanServices.UpdateAsync(entity);
+            return jm;
+        }
+        #endregion
+
+        #region 鍒犻櫎鏁版嵁============================================================
+        // POST: Api/PuhuoShoukuan/DoDelete/10
+        /// <summary>
+        /// 鍗曢�夊垹闄�
+        /// </summary>
+        /// <param name="entity"></param>
+        /// <returns></returns>
+        [HttpPost]
+        [Description("鍗曢�夊垹闄�")]
+        public async Task<AdminUiCallBack> DoDelete([FromBody]FMIntId entity)
+        {
+            var jm = new AdminUiCallBack();
+
+            var model = await _PuhuoShoukuanServices.ExistsAsync(p => p.id == entity.id, true);
+            if (!model)
+            {
+                jm.msg = GlobalConstVars.DataisNo;
+				return jm;
+            }
+            jm = await _PuhuoShoukuanServices.DeleteByIdAsync(entity.id);
+
+            return jm;
+        }
+        #endregion
+
+        #region 鎵归噺鍒犻櫎============================================================
+        // POST: Api/PuhuoShoukuan/DoBatchDelete/10,11,20
+        /// <summary>
+        /// 鎵归噺鍒犻櫎
+        /// </summary>
+        /// <param name="entity"></param>
+        /// <returns></returns>
+        [HttpPost]
+        [Description("鎵归噺鍒犻櫎")]
+        public async Task<AdminUiCallBack> DoBatchDelete([FromBody]FMArrayIntIds entity)
+        {
+            var jm = await _PuhuoShoukuanServices.DeleteByIdsAsync(entity.id);
+            return jm;
+        }
+
+        #endregion
+
+        #region 棰勮鏁版嵁============================================================
+        // POST: Api/PuhuoShoukuan/GetDetails/10
+        /// <summary>
+        /// 棰勮鏁版嵁
+        /// </summary>
+        /// <param name="entity"></param>
+        /// <returns></returns>
+        [HttpPost]
+        [Description("棰勮鏁版嵁")]
+        public async Task<AdminUiCallBack> GetDetails([FromBody]FMIntId entity)
+        {
+            var jm = new AdminUiCallBack();
+
+            var model = await _PuhuoShoukuanServices.QueryByIdAsync(entity.id, false);
+            if (model == null)
+            {
+                jm.msg = "涓嶅瓨鍦ㄦ淇℃伅";
+                return jm;
+            }
+            jm.code = 0;
+            jm.data = model;
+
+            return jm;
+        }
+        #endregion
+
+        #region 閫夋嫨瀵煎嚭============================================================
+        // POST: Api/PuhuoShoukuan/SelectExportExcel/10
+        /// <summary>
+        /// 閫夋嫨瀵煎嚭
+        /// </summary>
+        /// <param name="entity"></param>
+        /// <returns></returns>
+        [HttpPost]
+        [Description("閫夋嫨瀵煎嚭")]
+        public async Task<AdminUiCallBack> SelectExportExcel([FromBody]FMArrayIntIds entity)
+        {
+            var jm = new AdminUiCallBack();
+
+            //鍒涘缓Excel鏂囦欢鐨勫璞�
+            var book = new HSSFWorkbook();
+            //娣诲姞涓�涓猻heet
+            var mySheet = book.CreateSheet("Sheet1");
+            //鑾峰彇list鏁版嵁
+            var listModel = await _PuhuoShoukuanServices.QueryListByClauseAsync(p => entity.id.Contains(p.id), p => p.id, OrderByType.Asc, true);
+            //缁檚heet1娣诲姞绗竴琛岀殑澶撮儴鏍囬
+            var headerRow = mySheet.CreateRow(0);
+            var headerStyle = ExcelHelper.GetHeaderStyle(book);
+            var cellNum = 0;
+
+            var cell0 = headerRow.CreateCell(cellNum);
+            cell0.SetCellValue("涓婚敭ID");
+            cell0.CellStyle = headerStyle;
+            mySheet.SetColumnWidth(cellNum, 10 * 256);
+            cellNum++;
+
+            var cell1 = headerRow.CreateCell(cellNum);
+            cell1.SetCellValue("閾鸿揣id");
+            cell1.CellStyle = headerStyle;
+            mySheet.SetColumnWidth(cellNum, 10 * 256);
+            cellNum++;
+
+            var cell2 = headerRow.CreateCell(cellNum);
+            cell2.SetCellValue("缁忛攢鍟唅d");
+            cell2.CellStyle = headerStyle;
+            mySheet.SetColumnWidth(cellNum, 10 * 256);
+            cellNum++;
+
+            var cell3 = headerRow.CreateCell(cellNum);
+            cell3.SetCellValue("缁忛攢鍟�");
+            cell3.CellStyle = headerStyle;
+            mySheet.SetColumnWidth(cellNum, 10 * 256);
+            cellNum++;
+
+            var cell4 = headerRow.CreateCell(cellNum);
+            cell4.SetCellValue("鍖哄煙");
+            cell4.CellStyle = headerStyle;
+            mySheet.SetColumnWidth(cellNum, 10 * 256);
+            cellNum++;
+
+            var cell5 = headerRow.CreateCell(cellNum);
+            cell5.SetCellValue("鍖哄煙鍚嶇О");
+            cell5.CellStyle = headerStyle;
+            mySheet.SetColumnWidth(cellNum, 10 * 256);
+            cellNum++;
+
+            var cell6 = headerRow.CreateCell(cellNum);
+            cell6.SetCellValue("鍟嗗搧鍒嗙被id");
+            cell6.CellStyle = headerStyle;
+            mySheet.SetColumnWidth(cellNum, 10 * 256);
+            cellNum++;
+
+            var cell7 = headerRow.CreateCell(cellNum);
+            cell7.SetCellValue("鍟嗗搧鍒嗙被");
+            cell7.CellStyle = headerStyle;
+            mySheet.SetColumnWidth(cellNum, 10 * 256);
+            cellNum++;
+
+            var cell8 = headerRow.CreateCell(cellNum);
+            cell8.SetCellValue("鍟嗗搧id");
+            cell8.CellStyle = headerStyle;
+            mySheet.SetColumnWidth(cellNum, 10 * 256);
+            cellNum++;
+
+            var cell9 = headerRow.CreateCell(cellNum);
+            cell9.SetCellValue("鍟嗗搧鍚嶇О");
+            cell9.CellStyle = headerStyle;
+            mySheet.SetColumnWidth(cellNum, 10 * 256);
+            cellNum++;
+
+            var cell10 = headerRow.CreateCell(cellNum);
+            cell10.SetCellValue("璐у搧id");
+            cell10.CellStyle = headerStyle;
+            mySheet.SetColumnWidth(cellNum, 10 * 256);
+            cellNum++;
+
+            var cell11 = headerRow.CreateCell(cellNum);
+            cell11.SetCellValue("璐у搧缂栧彿");
+            cell11.CellStyle = headerStyle;
+            mySheet.SetColumnWidth(cellNum, 10 * 256);
+            cellNum++;
+
+            var cell12 = headerRow.CreateCell(cellNum);
+            cell12.SetCellValue("璐у搧瑙勬牸");
+            cell12.CellStyle = headerStyle;
+            mySheet.SetColumnWidth(cellNum, 10 * 256);
+            cellNum++;
+
+            var cell13 = headerRow.CreateCell(cellNum);
+            cell13.SetCellValue("璐у搧浠锋牸");
+            cell13.CellStyle = headerStyle;
+            mySheet.SetColumnWidth(cellNum, 10 * 256);
+            cellNum++;
+
+            var cell14 = headerRow.CreateCell(cellNum);
+            cell14.SetCellValue("鏁伴噺");
+            cell14.CellStyle = headerStyle;
+            mySheet.SetColumnWidth(cellNum, 10 * 256);
+            cellNum++;
+
+            var cell15 = headerRow.CreateCell(cellNum);
+            cell15.SetCellValue("閲戦");
+            cell15.CellStyle = headerStyle;
+            mySheet.SetColumnWidth(cellNum, 10 * 256);
+            cellNum++;
+
+            var cell16 = headerRow.CreateCell(cellNum);
+            cell16.SetCellValue("鏀舵鏁伴噺");
+            cell16.CellStyle = headerStyle;
+            mySheet.SetColumnWidth(cellNum, 10 * 256);
+            cellNum++;
+
+            var cell17 = headerRow.CreateCell(cellNum);
+            cell17.SetCellValue("鏀舵閲戦");
+            cell17.CellStyle = headerStyle;
+            mySheet.SetColumnWidth(cellNum, 10 * 256);
+            cellNum++;
+
+            var cell18 = headerRow.CreateCell(cellNum);
+            cell18.SetCellValue("寤虹珛鏃堕棿");
+            cell18.CellStyle = headerStyle;
+            mySheet.SetColumnWidth(cellNum, 10 * 256);
+            cellNum++;
+
+            var cell19 = headerRow.CreateCell(cellNum);
+            cell19.SetCellValue("淇敼鏃堕棿");
+            cell19.CellStyle = headerStyle;
+            mySheet.SetColumnWidth(cellNum, 10 * 256);
+            cellNum++;
+
+            var cell20 = headerRow.CreateCell(cellNum);
+            cell20.SetCellValue("鍒涘缓浜�");
+            cell20.CellStyle = headerStyle;
+            mySheet.SetColumnWidth(cellNum, 10 * 256);
+            cellNum++;
+
+            var cell21 = headerRow.CreateCell(cellNum);
+            cell21.SetCellValue("淇敼浜�");
+            cell21.CellStyle = headerStyle;
+            mySheet.SetColumnWidth(cellNum, 10 * 256);
+            cellNum++;
+
+            var cell22 = headerRow.CreateCell(cellNum);
+            cell22.SetCellValue("鍒犻櫎鏍囧織");
+            cell22.CellStyle = headerStyle;
+            mySheet.SetColumnWidth(cellNum, 10 * 256);
+            cellNum++;
+
+            headerRow.Height = 30 * 20;
+            var commonCellStyle = ExcelHelper.GetCommonStyle(book);
+
+            //灏嗘暟鎹�愭鍐欏叆sheet1鍚勪釜琛�
+            for (var i = 0; i < listModel.Count; i++)
+            {
+                var rowTemp = mySheet.CreateRow(i + 1);
+                var cellNumTemp = 0;
+
+                    var rowTemp0 = rowTemp.CreateCell(cellNumTemp);
+                        rowTemp0.SetCellValue(listModel[i].id.ToString());
+                        rowTemp0.CellStyle = commonCellStyle;
+                        cellNumTemp++;
+
+                    var rowTemp1 = rowTemp.CreateCell(cellNumTemp);
+                        rowTemp1.SetCellValue(listModel[i].puhuoId.ToString());
+                        rowTemp1.CellStyle = commonCellStyle;
+                        cellNumTemp++;
+
+                    var rowTemp2 = rowTemp.CreateCell(cellNumTemp);
+                        rowTemp2.SetCellValue(listModel[i].distributionId.ToString());
+                        rowTemp2.CellStyle = commonCellStyle;
+                        cellNumTemp++;
+
+                    var rowTemp3 = rowTemp.CreateCell(cellNumTemp);
+                        rowTemp3.SetCellValue(listModel[i].distributionName.ToString());
+                        rowTemp3.CellStyle = commonCellStyle;
+                        cellNumTemp++;
+
+                    var rowTemp4 = rowTemp.CreateCell(cellNumTemp);
+                        rowTemp4.SetCellValue(listModel[i].areaCode.ToString());
+                        rowTemp4.CellStyle = commonCellStyle;
+                        cellNumTemp++;
+
+                    var rowTemp5 = rowTemp.CreateCell(cellNumTemp);
+                        rowTemp5.SetCellValue(listModel[i].areaCodeName.ToString());
+                        rowTemp5.CellStyle = commonCellStyle;
+                        cellNumTemp++;
+
+                    var rowTemp6 = rowTemp.CreateCell(cellNumTemp);
+                        rowTemp6.SetCellValue(listModel[i].CategoryId.ToString());
+                        rowTemp6.CellStyle = commonCellStyle;
+                        cellNumTemp++;
+
+                    var rowTemp7 = rowTemp.CreateCell(cellNumTemp);
+                        rowTemp7.SetCellValue(listModel[i].CategoryName.ToString());
+                        rowTemp7.CellStyle = commonCellStyle;
+                        cellNumTemp++;
+
+                    var rowTemp8 = rowTemp.CreateCell(cellNumTemp);
+                        rowTemp8.SetCellValue(listModel[i].goodsId.ToString());
+                        rowTemp8.CellStyle = commonCellStyle;
+                        cellNumTemp++;
+
+                    var rowTemp9 = rowTemp.CreateCell(cellNumTemp);
+                        rowTemp9.SetCellValue(listModel[i].goodsName.ToString());
+                        rowTemp9.CellStyle = commonCellStyle;
+                        cellNumTemp++;
+
+                    var rowTemp10 = rowTemp.CreateCell(cellNumTemp);
+                        rowTemp10.SetCellValue(listModel[i].productsId.ToString());
+                        rowTemp10.CellStyle = commonCellStyle;
+                        cellNumTemp++;
+
+                    var rowTemp11 = rowTemp.CreateCell(cellNumTemp);
+                        rowTemp11.SetCellValue(listModel[i].productsName.ToString());
+                        rowTemp11.CellStyle = commonCellStyle;
+                        cellNumTemp++;
+
+                    var rowTemp12 = rowTemp.CreateCell(cellNumTemp);
+                        rowTemp12.SetCellValue(listModel[i].spesDesc.ToString());
+                        rowTemp12.CellStyle = commonCellStyle;
+                        cellNumTemp++;
+
+                    var rowTemp13 = rowTemp.CreateCell(cellNumTemp);
+                        rowTemp13.SetCellValue(listModel[i].price.ToString());
+                        rowTemp13.CellStyle = commonCellStyle;
+                        cellNumTemp++;
+
+                    var rowTemp14 = rowTemp.CreateCell(cellNumTemp);
+                        rowTemp14.SetCellValue(listModel[i].nums.ToString());
+                        rowTemp14.CellStyle = commonCellStyle;
+                        cellNumTemp++;
+
+                    var rowTemp15 = rowTemp.CreateCell(cellNumTemp);
+                        rowTemp15.SetCellValue(listModel[i].amount.ToString());
+                        rowTemp15.CellStyle = commonCellStyle;
+                        cellNumTemp++;
+
+                    var rowTemp16 = rowTemp.CreateCell(cellNumTemp);
+                        rowTemp16.SetCellValue(listModel[i].shoukuannums.ToString());
+                        rowTemp16.CellStyle = commonCellStyle;
+                        cellNumTemp++;
+
+                    var rowTemp17 = rowTemp.CreateCell(cellNumTemp);
+                        rowTemp17.SetCellValue(listModel[i].shoukuanamount.ToString());
+                        rowTemp17.CellStyle = commonCellStyle;
+                        cellNumTemp++;
+
+                    var rowTemp18 = rowTemp.CreateCell(cellNumTemp);
+                        rowTemp18.SetCellValue(listModel[i].createTime.ToString());
+                        rowTemp18.CellStyle = commonCellStyle;
+                        cellNumTemp++;
+
+                    var rowTemp19 = rowTemp.CreateCell(cellNumTemp);
+                        rowTemp19.SetCellValue(listModel[i].upDataTime.ToString());
+                        rowTemp19.CellStyle = commonCellStyle;
+                        cellNumTemp++;
+
+                    var rowTemp20 = rowTemp.CreateCell(cellNumTemp);
+                        rowTemp20.SetCellValue(listModel[i].createBy.ToString());
+                        rowTemp20.CellStyle = commonCellStyle;
+                        cellNumTemp++;
+
+                    var rowTemp21 = rowTemp.CreateCell(cellNumTemp);
+                        rowTemp21.SetCellValue(listModel[i].upDataBy.ToString());
+                        rowTemp21.CellStyle = commonCellStyle;
+                        cellNumTemp++;
+
+                    var rowTemp22 = rowTemp.CreateCell(cellNumTemp);
+                        rowTemp22.SetCellValue(listModel[i].isdelete.ToString());
+                        rowTemp22.CellStyle = commonCellStyle;
+                        cellNumTemp++;
+
+            }
+            // 瀵煎嚭excel
+            string webRootPath = _webHostEnvironment.WebRootPath;
+            string tpath = "/files/" + DateTime.Now.ToString("yyyy-MM-dd") + "/";
+            string fileName = DateTime.Now.ToString("yyyyMMddHHmmssfff") + "-PuhuoShoukuan瀵煎嚭(閫夋嫨缁撴灉).xls";
+            string filePath = webRootPath + tpath;
+            DirectoryInfo di = new DirectoryInfo(filePath);
+            if (!di.Exists)
+            {
+                di.Create();
+            }
+            FileStream fileHssf = new FileStream(filePath + fileName, FileMode.Create);
+            book.Write(fileHssf);
+            fileHssf.Close();
+
+            jm.code = 0;
+            jm.msg = GlobalConstVars.ExcelExportSuccess;
+            jm.data = tpath + fileName;
+
+            return jm;
+        }
+        #endregion
+
+        #region 鏌ヨ瀵煎嚭============================================================
+        // POST: Api/PuhuoShoukuan/QueryExportExcel/10
+        /// <summary>
+        /// 鏌ヨ瀵煎嚭
+        /// </summary>
+        /// <returns></returns>
+        [HttpPost]
+        [Description("鏌ヨ瀵煎嚭")]
+        public async Task<AdminUiCallBack> QueryExportExcel()
+        {
+            var jm = new AdminUiCallBack();
+
+            var where = PredicateBuilder.True<PuhuoShoukuan>();
+                //鏌ヨ绛涢��
+			
+			//涓婚敭ID int
+			var id = Request.Form["id"].FirstOrDefault().ObjectToInt(0);
+            if (id > 0)
+            {
+                where = where.And(p => p.id == id);
+            }
+			//閾鸿揣id int
+			var puhuoId = Request.Form["puhuoId"].FirstOrDefault().ObjectToInt(0);
+            if (puhuoId > 0)
+            {
+                where = where.And(p => p.puhuoId == puhuoId);
+            }
+			//缁忛攢鍟唅d int
+			var distributionId = Request.Form["distributionId"].FirstOrDefault().ObjectToInt(0);
+            if (distributionId > 0)
+            {
+                where = where.And(p => p.distributionId == distributionId);
+            }
+			//缁忛攢鍟� varchar
+			var distributionName = Request.Form["distributionName"].FirstOrDefault();
+            if (!string.IsNullOrEmpty(distributionName))
+            {
+                where = where.And(p => p.distributionName.Contains(distributionName));
+            }
+			//鍖哄煙 varchar
+			var areaCode = Request.Form["areaCode"].FirstOrDefault();
+            if (!string.IsNullOrEmpty(areaCode))
+            {
+                where = where.And(p => p.areaCode.Contains(areaCode));
+            }
+			//鍖哄煙鍚嶇О varchar
+			var areaCodeName = Request.Form["areaCodeName"].FirstOrDefault();
+            if (!string.IsNullOrEmpty(areaCodeName))
+            {
+                where = where.And(p => p.areaCodeName.Contains(areaCodeName));
+            }
+			//鍟嗗搧鍒嗙被id int
+			var CategoryId = Request.Form["CategoryId"].FirstOrDefault().ObjectToInt(0);
+            if (CategoryId > 0)
+            {
+                where = where.And(p => p.CategoryId == CategoryId);
+            }
+			//鍟嗗搧鍒嗙被 varchar
+			var CategoryName = Request.Form["CategoryName"].FirstOrDefault();
+            if (!string.IsNullOrEmpty(CategoryName))
+            {
+                where = where.And(p => p.CategoryName.Contains(CategoryName));
+            }
+			//鍟嗗搧id int
+			var goodsId = Request.Form["goodsId"].FirstOrDefault().ObjectToInt(0);
+            if (goodsId > 0)
+            {
+                where = where.And(p => p.goodsId == goodsId);
+            }
+			//鍟嗗搧鍚嶇О varchar
+			var goodsName = Request.Form["goodsName"].FirstOrDefault();
+            if (!string.IsNullOrEmpty(goodsName))
+            {
+                where = where.And(p => p.goodsName.Contains(goodsName));
+            }
+			//璐у搧id int
+			var productsId = Request.Form["productsId"].FirstOrDefault().ObjectToInt(0);
+            if (productsId > 0)
+            {
+                where = where.And(p => p.productsId == productsId);
+            }
+			//璐у搧缂栧彿 varchar
+			var productsName = Request.Form["productsName"].FirstOrDefault();
+            if (!string.IsNullOrEmpty(productsName))
+            {
+                where = where.And(p => p.productsName.Contains(productsName));
+            }
+			//璐у搧瑙勬牸 varchar
+			var spesDesc = Request.Form["spesDesc"].FirstOrDefault();
+            if (!string.IsNullOrEmpty(spesDesc))
+            {
+                where = where.And(p => p.spesDesc.Contains(spesDesc));
+            }
+			//璐у搧浠锋牸 decimal
+			var price = Request.Form["price"].FirstOrDefault().ObjectToDecimal(0);
+            if (price > 0)
+            {
+                where = where.And(p => p.price == price);
+            }
+			//鏁伴噺 int
+			var nums = Request.Form["nums"].FirstOrDefault().ObjectToInt(0);
+            if (nums > 0)
+            {
+                where = where.And(p => p.nums == nums);
+            }
+			//閲戦 decimal
+			var amount = Request.Form["amount"].FirstOrDefault().ObjectToDecimal(0);
+            if (amount > 0)
+            {
+                where = where.And(p => p.amount == amount);
+            }
+			//鏀舵鏁伴噺 int
+			var shoukuannums = Request.Form["shoukuannums"].FirstOrDefault().ObjectToInt(0);
+            if (shoukuannums > 0)
+            {
+                where = where.And(p => p.shoukuannums == shoukuannums);
+            }
+			//鏀舵閲戦 decimal
+			var shoukuanamount = Request.Form["shoukuanamount"].FirstOrDefault().ObjectToDecimal(0);
+            if (shoukuanamount > 0)
+            {
+                where = where.And(p => p.shoukuanamount == shoukuanamount);
+            }
+			//寤虹珛鏃堕棿 datetime
+			var createTime = Request.Form["createTime"].FirstOrDefault();
+            if (!string.IsNullOrEmpty(createTime))
+            {
+                if (createTime.Contains("鍒�"))
+                {
+                    var dts = createTime.Split("鍒�");
+                    var dtStart = dts[0].Trim().ObjectToDate();
+                    where = where.And(p => p.createTime > dtStart);
+                    var dtEnd = dts[1].Trim().ObjectToDate();
+                    where = where.And(p => p.createTime < dtEnd);
+                }
+                else
+                {
+                    var dt = createTime.ObjectToDate();
+                    where = where.And(p => p.createTime > dt);
+                }
+            }
+			//淇敼鏃堕棿 datetime
+			var upDataTime = Request.Form["upDataTime"].FirstOrDefault();
+            if (!string.IsNullOrEmpty(upDataTime))
+            {
+                if (upDataTime.Contains("鍒�"))
+                {
+                    var dts = upDataTime.Split("鍒�");
+                    var dtStart = dts[0].Trim().ObjectToDate();
+                    where = where.And(p => p.upDataTime > dtStart);
+                    var dtEnd = dts[1].Trim().ObjectToDate();
+                    where = where.And(p => p.upDataTime < dtEnd);
+                }
+                else
+                {
+                    var dt = upDataTime.ObjectToDate();
+                    where = where.And(p => p.upDataTime > dt);
+                }
+            }
+			//鍒涘缓浜� varchar
+			var createBy = Request.Form["createBy"].FirstOrDefault();
+            if (!string.IsNullOrEmpty(createBy))
+            {
+                where = where.And(p => p.createBy.Contains(createBy));
+            }
+			//淇敼浜� varchar
+			var upDataBy = Request.Form["upDataBy"].FirstOrDefault();
+            if (!string.IsNullOrEmpty(upDataBy))
+            {
+                where = where.And(p => p.upDataBy.Contains(upDataBy));
+            }
+			//鍒犻櫎鏍囧織 bit
+			var isdelete = Request.Form["isdelete"].FirstOrDefault();
+            if (!string.IsNullOrEmpty(isdelete) && isdelete.ToLowerInvariant() == "true")
+            {
+                where = where.And(p => p.isdelete == true);
+            }
+            else if (!string.IsNullOrEmpty(isdelete) && isdelete.ToLowerInvariant() == "false")
+            {
+                where = where.And(p => p.isdelete == false);
+            }
+            //鑾峰彇鏁版嵁
+            //鍒涘缓Excel鏂囦欢鐨勫璞�
+            var book = new HSSFWorkbook();
+            //娣诲姞涓�涓猻heet
+            var mySheet = book.CreateSheet("Sheet1");
+            //鑾峰彇list鏁版嵁
+            var listModel = await _PuhuoShoukuanServices.QueryListByClauseAsync(where, p => p.id, OrderByType.Asc, true);
+            //缁檚heet1娣诲姞绗竴琛岀殑澶撮儴鏍囬
+                var headerRow = mySheet.CreateRow(0);
+            var headerStyle = ExcelHelper.GetHeaderStyle(book);
+            var cellNum = 0;
+            
+            var cell0 = headerRow.CreateCell(cellNum);
+            cell0.SetCellValue("涓婚敭ID");
+            cell0.CellStyle = headerStyle;
+            mySheet.SetColumnWidth(cellNum, 10 * 256);
+            cellNum++;
+			
+            var cell1 = headerRow.CreateCell(cellNum);
+            cell1.SetCellValue("閾鸿揣id");
+            cell1.CellStyle = headerStyle;
+            mySheet.SetColumnWidth(cellNum, 10 * 256);
+            cellNum++;
+			
+            var cell2 = headerRow.CreateCell(cellNum);
+            cell2.SetCellValue("缁忛攢鍟唅d");
+            cell2.CellStyle = headerStyle;
+            mySheet.SetColumnWidth(cellNum, 10 * 256);
+            cellNum++;
+			
+            var cell3 = headerRow.CreateCell(cellNum);
+            cell3.SetCellValue("缁忛攢鍟�");
+            cell3.CellStyle = headerStyle;
+            mySheet.SetColumnWidth(cellNum, 10 * 256);
+            cellNum++;
+			
+            var cell4 = headerRow.CreateCell(cellNum);
+            cell4.SetCellValue("鍖哄煙");
+            cell4.CellStyle = headerStyle;
+            mySheet.SetColumnWidth(cellNum, 10 * 256);
+            cellNum++;
+			
+            var cell5 = headerRow.CreateCell(cellNum);
+            cell5.SetCellValue("鍖哄煙鍚嶇О");
+            cell5.CellStyle = headerStyle;
+            mySheet.SetColumnWidth(cellNum, 10 * 256);
+            cellNum++;
+			
+            var cell6 = headerRow.CreateCell(cellNum);
+            cell6.SetCellValue("鍟嗗搧鍒嗙被id");
+            cell6.CellStyle = headerStyle;
+            mySheet.SetColumnWidth(cellNum, 10 * 256);
+            cellNum++;
+			
+            var cell7 = headerRow.CreateCell(cellNum);
+            cell7.SetCellValue("鍟嗗搧鍒嗙被");
+            cell7.CellStyle = headerStyle;
+            mySheet.SetColumnWidth(cellNum, 10 * 256);
+            cellNum++;
+			
+            var cell8 = headerRow.CreateCell(cellNum);
+            cell8.SetCellValue("鍟嗗搧id");
+            cell8.CellStyle = headerStyle;
+            mySheet.SetColumnWidth(cellNum, 10 * 256);
+            cellNum++;
+			
+            var cell9 = headerRow.CreateCell(cellNum);
+            cell9.SetCellValue("鍟嗗搧鍚嶇О");
+            cell9.CellStyle = headerStyle;
+            mySheet.SetColumnWidth(cellNum, 10 * 256);
+            cellNum++;
+			
+            var cell10 = headerRow.CreateCell(cellNum);
+            cell10.SetCellValue("璐у搧id");
+            cell10.CellStyle = headerStyle;
+            mySheet.SetColumnWidth(cellNum, 10 * 256);
+            cellNum++;
+			
+            var cell11 = headerRow.CreateCell(cellNum);
+            cell11.SetCellValue("璐у搧缂栧彿");
+            cell11.CellStyle = headerStyle;
+            mySheet.SetColumnWidth(cellNum, 10 * 256);
+            cellNum++;
+			
+            var cell12 = headerRow.CreateCell(cellNum);
+            cell12.SetCellValue("璐у搧瑙勬牸");
+            cell12.CellStyle = headerStyle;
+            mySheet.SetColumnWidth(cellNum, 10 * 256);
+            cellNum++;
+			
+            var cell13 = headerRow.CreateCell(cellNum);
+            cell13.SetCellValue("璐у搧浠锋牸");
+            cell13.CellStyle = headerStyle;
+            mySheet.SetColumnWidth(cellNum, 10 * 256);
+            cellNum++;
+			
+            var cell14 = headerRow.CreateCell(cellNum);
+            cell14.SetCellValue("鏁伴噺");
+            cell14.CellStyle = headerStyle;
+            mySheet.SetColumnWidth(cellNum, 10 * 256);
+            cellNum++;
+			
+            var cell15 = headerRow.CreateCell(cellNum);
+            cell15.SetCellValue("閲戦");
+            cell15.CellStyle = headerStyle;
+            mySheet.SetColumnWidth(cellNum, 10 * 256);
+            cellNum++;
+			
+            var cell16 = headerRow.CreateCell(cellNum);
+            cell16.SetCellValue("鏀舵鏁伴噺");
+            cell16.CellStyle = headerStyle;
+            mySheet.SetColumnWidth(cellNum, 10 * 256);
+            cellNum++;
+			
+            var cell17 = headerRow.CreateCell(cellNum);
+            cell17.SetCellValue("鏀舵閲戦");
+            cell17.CellStyle = headerStyle;
+            mySheet.SetColumnWidth(cellNum, 10 * 256);
+            cellNum++;
+			
+            var cell18 = headerRow.CreateCell(cellNum);
+            cell18.SetCellValue("寤虹珛鏃堕棿");
+            cell18.CellStyle = headerStyle;
+            mySheet.SetColumnWidth(cellNum, 10 * 256);
+            cellNum++;
+			
+            var cell19 = headerRow.CreateCell(cellNum);
+            cell19.SetCellValue("淇敼鏃堕棿");
+            cell19.CellStyle = headerStyle;
+            mySheet.SetColumnWidth(cellNum, 10 * 256);
+            cellNum++;
+			
+            var cell20 = headerRow.CreateCell(cellNum);
+            cell20.SetCellValue("鍒涘缓浜�");
+            cell20.CellStyle = headerStyle;
+            mySheet.SetColumnWidth(cellNum, 10 * 256);
+            cellNum++;
+			
+            var cell21 = headerRow.CreateCell(cellNum);
+            cell21.SetCellValue("淇敼浜�");
+            cell21.CellStyle = headerStyle;
+            mySheet.SetColumnWidth(cellNum, 10 * 256);
+            cellNum++;
+			
+            var cell22 = headerRow.CreateCell(cellNum);
+            cell22.SetCellValue("鍒犻櫎鏍囧織");
+            cell22.CellStyle = headerStyle;
+            mySheet.SetColumnWidth(cellNum, 10 * 256);
+            cellNum++;
+			
+
+            headerRow.Height = 30 * 20;
+            var commonCellStyle = ExcelHelper.GetCommonStyle(book);
+
+            //灏嗘暟鎹�愭鍐欏叆sheet1鍚勪釜琛�
+            for (var i = 0; i < listModel.Count; i++)
+            {
+                var rowTemp = mySheet.CreateRow(i + 1);
+                var cellNumTemp = 0;
+
+            var rowTemp0 = rowTemp.CreateCell(cellNumTemp);
+                rowTemp0.SetCellValue(listModel[i].id.ToString());
+                rowTemp0.CellStyle = commonCellStyle;
+                cellNumTemp++;
+
+            var rowTemp1 = rowTemp.CreateCell(cellNumTemp);
+                rowTemp1.SetCellValue(listModel[i].puhuoId.ToString());
+                rowTemp1.CellStyle = commonCellStyle;
+                cellNumTemp++;
+
+            var rowTemp2 = rowTemp.CreateCell(cellNumTemp);
+                rowTemp2.SetCellValue(listModel[i].distributionId.ToString());
+                rowTemp2.CellStyle = commonCellStyle;
+                cellNumTemp++;
+
+            var rowTemp3 = rowTemp.CreateCell(cellNumTemp);
+                rowTemp3.SetCellValue(listModel[i].distributionName.ToString());
+                rowTemp3.CellStyle = commonCellStyle;
+                cellNumTemp++;
+
+            var rowTemp4 = rowTemp.CreateCell(cellNumTemp);
+                rowTemp4.SetCellValue(listModel[i].areaCode.ToString());
+                rowTemp4.CellStyle = commonCellStyle;
+                cellNumTemp++;
+
+            var rowTemp5 = rowTemp.CreateCell(cellNumTemp);
+                rowTemp5.SetCellValue(listModel[i].areaCodeName.ToString());
+                rowTemp5.CellStyle = commonCellStyle;
+                cellNumTemp++;
+
+            var rowTemp6 = rowTemp.CreateCell(cellNumTemp);
+                rowTemp6.SetCellValue(listModel[i].CategoryId.ToString());
+                rowTemp6.CellStyle = commonCellStyle;
+                cellNumTemp++;
+
+            var rowTemp7 = rowTemp.CreateCell(cellNumTemp);
+                rowTemp7.SetCellValue(listModel[i].CategoryName.ToString());
+                rowTemp7.CellStyle = commonCellStyle;
+                cellNumTemp++;
+
+            var rowTemp8 = rowTemp.CreateCell(cellNumTemp);
+                rowTemp8.SetCellValue(listModel[i].goodsId.ToString());
+                rowTemp8.CellStyle = commonCellStyle;
+                cellNumTemp++;
+
+            var rowTemp9 = rowTemp.CreateCell(cellNumTemp);
+                rowTemp9.SetCellValue(listModel[i].goodsName.ToString());
+                rowTemp9.CellStyle = commonCellStyle;
+                cellNumTemp++;
+
+            var rowTemp10 = rowTemp.CreateCell(cellNumTemp);
+                rowTemp10.SetCellValue(listModel[i].productsId.ToString());
+                rowTemp10.CellStyle = commonCellStyle;
+                cellNumTemp++;
+
+            var rowTemp11 = rowTemp.CreateCell(cellNumTemp);
+                rowTemp11.SetCellValue(listModel[i].productsName.ToString());
+                rowTemp11.CellStyle = commonCellStyle;
+                cellNumTemp++;
+
+            var rowTemp12 = rowTemp.CreateCell(cellNumTemp);
+                rowTemp12.SetCellValue(listModel[i].spesDesc.ToString());
+                rowTemp12.CellStyle = commonCellStyle;
+                cellNumTemp++;
+
+            var rowTemp13 = rowTemp.CreateCell(cellNumTemp);
+                rowTemp13.SetCellValue(listModel[i].price.ToString());
+                rowTemp13.CellStyle = commonCellStyle;
+                cellNumTemp++;
+
+            var rowTemp14 = rowTemp.CreateCell(cellNumTemp);
+                rowTemp14.SetCellValue(listModel[i].nums.ToString());
+                rowTemp14.CellStyle = commonCellStyle;
+                cellNumTemp++;
+
+            var rowTemp15 = rowTemp.CreateCell(cellNumTemp);
+                rowTemp15.SetCellValue(listModel[i].amount.ToString());
+                rowTemp15.CellStyle = commonCellStyle;
+                cellNumTemp++;
+
+            var rowTemp16 = rowTemp.CreateCell(cellNumTemp);
+                rowTemp16.SetCellValue(listModel[i].shoukuannums.ToString());
+                rowTemp16.CellStyle = commonCellStyle;
+                cellNumTemp++;
+
+            var rowTemp17 = rowTemp.CreateCell(cellNumTemp);
+                rowTemp17.SetCellValue(listModel[i].shoukuanamount.ToString());
+                rowTemp17.CellStyle = commonCellStyle;
+                cellNumTemp++;
+
+            var rowTemp18 = rowTemp.CreateCell(cellNumTemp);
+                rowTemp18.SetCellValue(listModel[i].createTime.ToString());
+                rowTemp18.CellStyle = commonCellStyle;
+                cellNumTemp++;
+
+            var rowTemp19 = rowTemp.CreateCell(cellNumTemp);
+                rowTemp19.SetCellValue(listModel[i].upDataTime.ToString());
+                rowTemp19.CellStyle = commonCellStyle;
+                cellNumTemp++;
+
+            var rowTemp20 = rowTemp.CreateCell(cellNumTemp);
+                rowTemp20.SetCellValue(listModel[i].createBy.ToString());
+                rowTemp20.CellStyle = commonCellStyle;
+                cellNumTemp++;
+
+            var rowTemp21 = rowTemp.CreateCell(cellNumTemp);
+                rowTemp21.SetCellValue(listModel[i].upDataBy.ToString());
+                rowTemp21.CellStyle = commonCellStyle;
+                cellNumTemp++;
+
+            var rowTemp22 = rowTemp.CreateCell(cellNumTemp);
+                rowTemp22.SetCellValue(listModel[i].isdelete.ToString());
+                rowTemp22.CellStyle = commonCellStyle;
+                cellNumTemp++;
+
+            }
+            // 鍐欏叆鍒癳xcel
+            string webRootPath = _webHostEnvironment.WebRootPath;
+            string tpath = "/files/" + DateTime.Now.ToString("yyyy-MM-dd") + "/";
+            string fileName = DateTime.Now.ToString("yyyyMMddHHmmssfff") + "-PuhuoShoukuan瀵煎嚭(鏌ヨ缁撴灉).xls";
+            string filePath = webRootPath + tpath;
+            DirectoryInfo di = new DirectoryInfo(filePath);
+            if (!di.Exists)
+            {
+                di.Create();
+            }
+            FileStream fileHssf = new FileStream(filePath + fileName, FileMode.Create);
+            book.Write(fileHssf);
+            fileHssf.Close();
+
+            jm.code = 0;
+            jm.msg = GlobalConstVars.ExcelExportSuccess;
+            jm.data = tpath + fileName;
+
+            return jm;
+        }
+        #endregion
+
+        
+        #region 璁剧疆鍒犻櫎鏍囧織============================================================
+        // POST: Api/PuhuoShoukuan/DoSetisdelete/10
+        /// <summary>
+        /// 璁剧疆鍒犻櫎鏍囧織
+        /// </summary>
+        /// <param name="entity"></param>
+        /// <returns></returns>
+        [HttpPost]
+        [Description("璁剧疆鍒犻櫎鏍囧織")]
+        public async Task<AdminUiCallBack> DoSetisdelete([FromBody]FMUpdateBoolDataByIntId entity)
+        {
+            var jm = new AdminUiCallBack();
+
+            var oldModel = await _PuhuoShoukuanServices.QueryByIdAsync(entity.id, false);
+            if (oldModel == null)
+            {
+                jm.msg = "涓嶅瓨鍦ㄦ淇℃伅";
+                return jm;
+            }
+            oldModel.isdelete = (bool)entity.data;
+
+            var bl = await _PuhuoShoukuanServices.UpdateAsync(p => new PuhuoShoukuan() { isdelete = oldModel.isdelete }, p => p.id == oldModel.id);
+            jm.code = bl ? 0 : 1;
+            jm.msg = bl ? GlobalConstVars.EditSuccess : GlobalConstVars.EditFailure;
+
+            return jm;
+		}
+        #endregion
+        
+
+    }
+}
diff --git a/CoreCms.Net.Web.Admin/wwwroot/views/baifenbingfa/puhuo/create.html b/CoreCms.Net.Web.Admin/wwwroot/views/baifenbingfa/puhuo/create.html
index 23e5b53..3d7e8ae 100644
--- a/CoreCms.Net.Web.Admin/wwwroot/views/baifenbingfa/puhuo/create.html
+++ b/CoreCms.Net.Web.Admin/wwwroot/views/baifenbingfa/puhuo/create.html
@@ -217,7 +217,7 @@
                             if (data.data.length > 0) {
                                 for (var i = 0; i < data.data.length; i++) {
 
-                                    var o = '<option value="' + data.data[i].id + '" >' + data.data[i].sn + '</option>';
+                                    var o = '<option value="' + data.data[i].id + '" >' + data.data[i].sn + ' ' + data.data[i].spesDesc + '</option>';
                                     quxian.append(o);
                                 }
                                 // 浣跨敤form.render鏂规硶閲嶆柊娓叉煋select
diff --git a/CoreCms.Net.Web.Admin/wwwroot/views/baifenbingfa/puhuo/details.html b/CoreCms.Net.Web.Admin/wwwroot/views/baifenbingfa/puhuo/details.html
index c661d6c..8fd2ac1 100644
--- a/CoreCms.Net.Web.Admin/wwwroot/views/baifenbingfa/puhuo/details.html
+++ b/CoreCms.Net.Web.Admin/wwwroot/views/baifenbingfa/puhuo/details.html
@@ -7,11 +7,14 @@
         <tbody>
 
             <tr>
-                <td style="background-color:lightsteelblue;width:12.5%;">
+                <td style="background-color:lightsteelblue;width:15.5%;">
                     鍖哄煙
                 </td>
                 <td style="background-color: lightsteelblue; width: 12.5%;">
                     缁忛攢鍟�
+                </td>
+                <td style="background-color: lightsteelblue; width: 12.5%;">
+                    瀛︽牎
                 </td>
                 <td style="background-color: lightsteelblue; width: 12.5%;">
                     鍟嗗搧绫诲埆
@@ -42,6 +45,9 @@
                 {{ item.distributionName }}
             </td>
             <td>
+                {{ item.schoolName }}
+            </td>
+            <td>
                 {{ item.categoryName }}
             </td>
             <td>
diff --git a/CoreCms.Net.Web.Admin/wwwroot/views/baifenbingfa/puhuo/edit.html b/CoreCms.Net.Web.Admin/wwwroot/views/baifenbingfa/puhuo/edit.html
index a707b6c..fa15f5e 100644
--- a/CoreCms.Net.Web.Admin/wwwroot/views/baifenbingfa/puhuo/edit.html
+++ b/CoreCms.Net.Web.Admin/wwwroot/views/baifenbingfa/puhuo/edit.html
@@ -86,7 +86,7 @@
         <div class="layui-form-item">
             <label for="price" class="layui-form-label  ">鍗曚环</label>
             <div class="layui-input-block">
-                <input name="price" lay-verType="tips" lay-verify="required" class="layui-input" readonly="readonly" placeholder="璇疯緭鍏ヨ揣鍝佷环鏍�" lay-reqText="璇疯緭鍏ヨ揣鍝佷环鏍�" value="{{d.params.data.price || '' }}" />
+                <input name="price" lay-verType="tips" lay-verify="required" class="layui-input" readonly="readonly" placeholder="璇疯緭鍏ヨ揣鍝佷环鏍�" lay-reqText="璇疯緭鍏ヨ揣鍝佷环鏍�" value="{{d.params.data.price || '0' }}" />
             </div>
         </div>
 
@@ -100,7 +100,7 @@
         <div class="layui-form-item">
             <label for="amount" class="layui-form-label  ">閲戦</label>
             <div class="layui-input-block">
-                <input name="amount" lay-verType="tips" lay-verify="required" class="layui-input" readonly="readonly" placeholder="璇疯緭鍏ラ噾棰�" lay-reqText="璇疯緭鍏ラ噾棰�" value="{{d.params.data.amount || '' }}" />
+                <input name="amount" lay-verType="tips" lay-verify="required" class="layui-input" readonly="readonly" placeholder="璇疯緭鍏ラ噾棰�" lay-reqText="璇疯緭鍏ラ噾棰�" value="{{d.params.data.amount || '0' }}" />
             </div>
         </div>
         <div class="layui-form-item">
diff --git a/CoreCms.Net.Web.Admin/wwwroot/views/baifenbingfa/puhuo/editshoukuan.html b/CoreCms.Net.Web.Admin/wwwroot/views/baifenbingfa/puhuo/editshoukuan.html
new file mode 100644
index 0000000..c7b7621
--- /dev/null
+++ b/CoreCms.Net.Web.Admin/wwwroot/views/baifenbingfa/puhuo/editshoukuan.html
@@ -0,0 +1,174 @@
+<script type="text/html" template lay-done="layui.data.sendParams(d);">
+    <div class="layui-form coreshop-form layui-form-pane" lay-filter="LAY-app-Puhuo-editForm" id="LAY-app-Puhuo-editForm">
+        <input type="hidden" name="id" value="{{d.params.data.id || '' }}" />
+        <input type="hidden" name="jintui" value="{{d.params.data.jintui || '' }}" />
+
+        <!--<div class="layui-form-item">
+        <label for="id" class="layui-form-label  ">涓婚敭ID</label>
+        <div class="layui-input-block">
+            <input  type="number" min="0" max="999999" name="id"   lay-verType="tips" lay-verify="required|number" class="layui-input" value="{{d.params.data.id || '' }}" placeholder="璇疯緭鍏ヤ富閿甀D" lay-reqText="璇疯緭鍏ヤ富閿甀D骞朵负鏁板瓧"  />
+        </div>
+    </div>-->
+        <!--<div class="layui-form-item">
+        <label for="distributionId" class="layui-form-label  ">缁忛攢鍟唅d</label>
+        <div class="layui-input-block">
+            <input  type="number" min="0" max="999999" name="distributionId"   lay-verType="tips" lay-verify="required|number" class="layui-input" value="{{d.params.data.distributionId || '' }}" placeholder="璇疯緭鍏ョ粡閿�鍟唅d" lay-reqText="璇疯緭鍏ョ粡閿�鍟唅d骞朵负鏁板瓧"  />
+        </div>
+    </div>-->
+        <div class="layui-form-item">
+            <label for="areaCodeName" class="layui-form-label  ">鍖哄煙鍚嶇О</label>
+            <div class="layui-input-block">
+                <input name="areaCodeName" lay-verType="tips" readonly="readonly" class="layui-input" placeholder="璇疯緭鍏ュ尯鍩熷悕绉�" lay-reqText="璇疯緭鍏ュ尯鍩熷悕绉�" value="{{d.params.data.areaCodeName || '' }}" />
+            </div>
+        </div>
+        <div class="layui-form-item">
+            <label for="distributionName" class="layui-form-label  ">缁忛攢鍟�</label>
+            <div class="layui-input-block">
+                <input name="distributionName" lay-verType="tips" readonly="readonly" class="layui-input" placeholder="璇疯緭鍏ョ粡閿�鍟�" lay-reqText="璇疯緭鍏ョ粡閿�鍟�" value="{{d.params.data.distributionName || '' }}" />
+            </div>
+        </div>
+
+        <!--<div class="layui-form-item">
+        <label for="areaCode" class="layui-form-label  ">鍖哄煙</label>
+        <div class="layui-input-block">
+            <input name="areaCode"   lay-verType="tips"   class="layui-input" placeholder="璇疯緭鍏ュ尯鍩�" lay-reqText="璇疯緭鍏ュ尯鍩�"  value="{{d.params.data.areaCode || '' }}" />
+        </div>
+    </div>-->
+        <!--<div class="layui-form-item">
+        <label for="CategoryId" class="layui-form-label  ">鍟嗗搧鍒嗙被id</label>
+        <div class="layui-input-block">
+            <input type="number" min="0" max="999999" name="CategoryId" lay-verType="tips"   class="layui-input" value="{{d.params.data.CategoryId || '' }}" placeholder="璇疯緭鍏ュ晢鍝佸垎绫籭d" lay-reqText="璇疯緭鍏ュ晢鍝佸垎绫籭d骞朵负鏁板瓧" />
+        </div>
+    </div>-->
+
+        <div class="layui-form-item">
+            <label for="CategoryName" class="layui-form-label  ">鍟嗗搧鍒嗙被</label>
+            <div class="layui-input-block">
+                <input name="CategoryName" lay-verType="tips" readonly="readonly" class="layui-input" placeholder="璇疯緭鍏ュ晢鍝佸垎绫�" lay-reqText="璇疯緭鍏ュ晢鍝佸垎绫�" value="{{d.params.data.categoryName || '' }}" />
+            </div>
+        </div>
+
+        <!--<div class="layui-form-item">
+        <label for="goodsId" class="layui-form-label  ">鍟嗗搧id</label>
+        <div class="layui-input-block">
+            <input type="number" min="0" max="999999" name="goodsId" lay-verType="tips"   class="layui-input" value="{{d.params.data.goodsId || '' }}" placeholder="璇疯緭鍏ュ晢鍝乮d" lay-reqText="璇疯緭鍏ュ晢鍝乮d骞朵负鏁板瓧" />
+        </div>
+    </div>-->
+
+        <div class="layui-form-item">
+            <label for="goodsName" class="layui-form-label  ">鍟嗗搧鍚嶇О</label>
+            <div class="layui-input-block">
+                <input name="goodsName" lay-verType="tips" readonly="readonly" class="layui-input" placeholder="璇疯緭鍏ュ晢鍝佸悕绉�" lay-reqText="璇疯緭鍏ュ晢鍝佸悕绉�" value="{{d.params.data.goodsName || '' }}" />
+            </div>
+        </div>
+
+        <!--<div class="layui-form-item">
+        <label for="productsId" class="layui-form-label  ">璐у搧id</label>
+        <div class="layui-input-block">
+            <input type="number" min="0" max="999999" name="productsId" lay-verType="tips" lay-verify="required|number" class="layui-input" value="{{d.params.data.productsId || '' }}" placeholder="璇疯緭鍏ヨ揣鍝乮d" lay-reqText="璇疯緭鍏ヨ揣鍝乮d骞朵负鏁板瓧" />
+        </div>
+    </div>-->
+
+        <div class="layui-form-item">
+            <label for="productsName" class="layui-form-label  ">璐у搧缂栧彿</label>
+            <div class="layui-input-block">
+                <input name="productsName" lay-verType="tips" readonly="readonly" class="layui-input" placeholder="璇疯緭鍏ヨ揣鍝佺紪鍙�" lay-reqText="璇疯緭鍏ヨ揣鍝佺紪鍙�" value="{{d.params.data.productsName || '' }}" />
+            </div>
+        </div>
+
+        <!--<div class="layui-form-item">
+        <label for="spesDesc" class="layui-form-label  ">璐у搧瑙勬牸</label>
+        <div class="layui-input-block">
+            <input name="spesDesc" lay-verType="tips" lay-verify="required" class="layui-input" placeholder="璇疯緭鍏ヨ揣鍝佽鏍�" lay-reqText="璇疯緭鍏ヨ揣鍝佽鏍�" value="{{d.params.data.spesDesc || '' }}" />
+        </div>
+    </div>-->
+
+        <div class="layui-form-item">
+            <label for="price" class="layui-form-label  ">鍗曚环</label>
+            <div class="layui-input-block">
+                <input name="price" id="price" lay-verType="tips" lay-verify="required" class="layui-input" readonly="readonly" placeholder="璇疯緭鍏ヨ揣鍝佷环鏍�" lay-reqText="璇疯緭鍏ヨ揣鍝佷环鏍�" value="{{d.params.data.price || '' }}" />
+            </div>
+        </div>
+
+        <div class="layui-form-item">
+            <label for="nums" class="layui-form-label  ">鏁伴噺</label>
+            <div class="layui-input-block">
+                <input type="number" min="0" max="999999" name="nums" lay-verType="tips" readonly="readonly" class="layui-input" value="{{d.params.data.nums || '' }}" placeholder="璇疯緭鍏ユ暟閲�" lay-reqText="璇疯緭鍏ユ暟閲忓苟涓烘暟瀛�" />
+            </div>
+        </div>
+
+        <div class="layui-form-item">
+            <label for="amount" class="layui-form-label  ">閲戦</label>
+            <div class="layui-input-block">
+                <input name="amount" lay-verType="tips" class="layui-input" readonly="readonly" placeholder="璇疯緭鍏ラ噾棰�" lay-reqText="璇疯緭鍏ラ噾棰�" value="{{d.params.data.amount || '' }}" />
+            </div>
+        </div>
+        <div class="layui-form-item">
+            <label for="shoukuannumsshoukuan" class="layui-form-label">鏀舵鏁伴噺</label>
+            <div class="layui-input-block">
+                <input type="number" min="0" max="999999" name="shoukuannumsshoukuan" id="shoukuannumsshoukuan" lay-verType="tips"  class="layui-input" value="{{d.params.data.shoukuannums || '0' }}" placeholder="璇疯緭鍏ユ暟閲�" lay-reqText="璇疯緭鍏ユ暟閲忓苟涓烘暟瀛�" onchange="sumjine();" />
+            </div>
+        </div>
+        <div class="layui-form-item">
+            <label for="shoukuannums" class="layui-form-label  layui-form-required">鍥炴鏁伴噺</label>
+            <div class="layui-input-block">
+                <input type="number" min="0" max="999999" name="shoukuannums" id="shoukuannums" lay-verType="tips" lay-verify="required|number" class="layui-input" value="0" placeholder="璇疯緭鍏ユ暟閲�" lay-reqText="璇疯緭鍏ユ暟閲忓苟涓烘暟瀛�" onchange="sumjine();" />
+            </div>
+        </div>
+
+        <div class="layui-form-item">
+            <label for="shoukuanamount" class="layui-form-label  layui-form-required">鍥炴閲戦</label>
+            <div class="layui-input-block">
+                <input type="number" min="0" max="999999" name="shoukuanamount" id="shoukuanamount" lay-verType="tips" readonly="readonly" lay-verify="required|number" class="layui-input" value="0" placeholder="璇疯緭鍏ユ暟閲�" lay-reqText="璇疯緭鍏ユ暟閲忓苟涓烘暟瀛�" />
+            </div>
+        </div>
+
+        <div class="layui-form-item text-right core-hidden">
+            <input type="button" class="layui-btn" lay-submit lay-filter="LAY-app-Puhuo-editForm-submit" id="LAY-app-Puhuo-editForm-submit" value="纭鏀舵">
+        </div>
+    </div>
+</script>
+<script>
+    var debug= layui.setter.debug;
+    layui.data.sendParams = function (d) {
+        //寮�鍚皟璇曟儏鍐典笅鑾峰彇鎺ュ彛璧嬪�兼暟鎹�
+        if (debug) { console.log(d.params.data); }
+        layui.use(['admin', 'form', 'laydate', 'upload', 'coreHelper', 'cropperImg'],
+        function () {
+            var $ = layui.$
+                , form = layui.form
+                , admin = layui.admin
+                , laydate = layui.laydate
+                , upload = layui.upload
+                , cropperImg = layui.cropperImg
+                , coreHelper = layui.coreHelper;
+        
+            laydate.render({
+                elem: '#editTime-Puhuo-createTime',
+                type: 'datetime',
+                fullPanel: true
+            });
+            laydate.render({
+                elem: '#editTime-Puhuo-upDataTime',
+                type: 'datetime',
+                fullPanel: true
+            });
+            form.verify({
+                
+            });
+
+            
+            //閲嶈浇form
+            form.render(null, 'LAY-app-Puhuo-editForm');
+        })
+    };
+
+    function sumjine() {
+
+       
+        var price = parseFloat($('#price').val()) || 0; // 鑾峰彇鍊煎苟杞崲涓烘诞鐐规暟锛屽鏋滄棤娉曡浆鎹㈠垯榛樿涓�0
+        var shoukuannums = parseFloat($('#shoukuannums').val()) || 0; // 鑾峰彇鍊煎苟杞崲涓烘诞鐐规暟锛屽鏋滄棤娉曡浆鎹㈠垯榛樿涓�0
+        var result = price * shoukuannums; // 杩涜涔樻硶杩愮畻
+        $('#shoukuanamount').val(result); // 鏄剧ず缁撴灉
+    }
+</script>
diff --git a/CoreCms.Net.Web.Admin/wwwroot/views/baifenbingfa/puhuo/index.html b/CoreCms.Net.Web.Admin/wwwroot/views/baifenbingfa/puhuo/index.html
index 9ce45d8..b392421 100644
--- a/CoreCms.Net.Web.Admin/wwwroot/views/baifenbingfa/puhuo/index.html
+++ b/CoreCms.Net.Web.Admin/wwwroot/views/baifenbingfa/puhuo/index.html
@@ -188,8 +188,10 @@
 
 <script type="text/html" id="LAY-app-Puhuo-tableBox-bar">
     <!--<a class="layui-btn layui-btn-primary layui-btn-xs" lay-event="detail">鏌ョ湅</a>-->
+    <a class="layui-btn layui-btn-xs" lay-event="editshoukuan">鍥炴</a>
     <a class="layui-btn layui-btn-xs" lay-event="edit">閾鸿揣</a>
     <a class="layui-btn layui-btn-xs" lay-event="edittui">閫�璐�</a>
+    <a class="layui-btn layui-btn-xs" lay-event="editpandian">鐩樼偣</a>
     <!--<a class="layui-btn layui-btn-danger layui-btn-xs" data-dropdown="#PuhuoTbDelDrop{{d.LAY_INDEX}}" no-shade="true">鍒犻櫎</a>-->
     <div class="dropdown-menu-nav dropdown-popconfirm dropdown-top-right layui-hide" id="PuhuoTbDelDrop{{d.LAY_INDEX}}"
          style="max-width: 200px;white-space: normal;min-width: auto;margin-left: 10px;">
@@ -255,20 +257,21 @@
                             /*  { field: 'id', title: '涓婚敭ID', width: 60, sort: false},*/
                             { field: 'areaCodeName', title: '鍖哄煙鍚嶇О', sort: false, width: 165 },
 						   /* { field: 'distributionId', title: '缁忛攢鍟唅d', sort: false,width: 105 },*/
-                            { field: 'distributionName', title: '缁忛攢鍟�', sort: false, width: 165 },
+                            { field: 'distributionName', title: '缁忛攢鍟�', sort: false, width: 125 },
+                            { field: 'schoolName', title: '瀛︽牎', sort: false, width: 125 },
 						   /* { field: 'areaCode', title: '鍖哄煙', sort: false,width: 105 },*/
 						   
 						  /*  { field: 'categoryId', title: '鍟嗗搧鍒嗙被id', sort: false,width: 105 },*/
-                            { field: 'categoryName', title: '鍟嗗搧绫诲埆', sort: false, width: 165 },
+                            { field: 'categoryName', title: '鍟嗗搧绫诲埆', sort: false, width: 105 },
 						   /* { field: 'goodsId', title: '鍟嗗搧id', sort: false,width: 105 },*/
                             { field: 'goodsName', title: '鍟嗗搧鍚嶇О', sort: false, width: 165 },
 						   /* { field: 'productsId', title: '璐у搧id', sort: false,width: 105 },*/
-                            { field: 'productsName', title: '璐у搧缂栧彿', sort: false, width: 165 },
+                            { field: 'productsName', title: '璐у搧缂栧彿', sort: false, width: 215 },
                             /*   { field: 'spesDesc', title: '璐у搧瑙勬牸', sort: false,width: 105 },*/
-                            { field: 'nums', title: '鏁伴噺', sort: false, width: 165 },
-                            { field: 'price', title: '鍗曚环', sort: false, width: 165 },
+                            { field: 'nums', title: '鏁伴噺', sort: false, width: 125 },
+                            { field: 'price', title: '鍗曚环', sort: false, width: 125 },
 						 
-                            { field: 'amount', title: '閲戦', sort: false, width: 165 },
+                            { field: 'amount', title: '閲戦', sort: false, width: 125 },
 						    //{ field: 'createTime', title: '寤虹珛鏃堕棿', width: 130, sort: false},
 						    //{ field: 'upDataTime', title: '淇敼鏃堕棿', width: 130, sort: false},
 						    //{ field: 'createBy', title: '鍒涘缓浜�', sort: false,width: 105 },
@@ -322,6 +325,10 @@
                             doEdit(obj)
                         } else if (obj.event === 'edittui') {
                             doEdittui(obj)
+                        } else if (obj.event === 'editpandian') {
+                            doEditpandian(obj)
+                        } else if (obj.event === 'editshoukuan') {
+                            doEditshoukuan(obj)
                         }
                        
                     });
@@ -462,6 +469,102 @@
                         }
                     });
                 }
+
+
+
+                //鎵ц鐩樼偣鎿嶄綔
+                function doEditpandian(obj) {
+                    coreHelper.Post("Api/Puhuo/GetEdit", { id: obj.data.id, jintui: 3 }, function (e) {
+                        if (e.code === 0) {
+                            admin.popup({
+                                shadeClose: false,
+                                title: '鐩樼偣',
+                                area: ['1200px', '90%'],
+                                id: 'LAY-popup-Puhuo-edit',
+                                success: function (layero, index) {
+                                    view(this.id).render('baifenbingfa/Puhuo/edit', { data: e.data }).done(function () {
+                                        //鐩戝惉鎻愪氦
+                                        form.on('submit(LAY-app-Puhuo-editForm-submit)',
+                                            function (data) {
+                                                var field = data.field; //鑾峰彇鎻愪氦鐨勫瓧娈�
+
+                                                field.isdelete = field.isdelete == 'on';
+
+                                                if (debug) { console.log(field); } //寮�鍚皟璇曡繑鍥炴暟鎹�
+                                                //鎻愪氦 Ajax 鎴愬姛鍚庯紝鍏抽棴褰撳墠寮瑰眰骞堕噸杞借〃鏍�
+                                                coreHelper.Post("Api/Puhuo/DoEdit", field, function (e) {
+                                                    console.log(e)
+                                                    if (e.code === 0) {
+                                                        layui.table.reloadData('LAY-app-Puhuo-tableBox'); //閲嶈浇琛ㄦ牸
+                                                        layer.close(index); //鍐嶆墽琛屽叧闂�
+                                                        layer.msg(e.msg);
+                                                    } else {
+                                                        layer.msg(e.msg);
+                                                    }
+                                                });
+                                            });
+                                    })
+                                    //// 绂佹寮圭獥鍑虹幇婊氬姩鏉�
+                                    //$(layero).children('.layui-layer-content').css('overflow', 'visible');
+                                }
+                                , btn: ['纭畾', '鍙栨秷']
+                                , yes: function (index, layero) {
+                                    layero.contents().find("#LAY-app-Puhuo-editForm-submit").click();
+                                }
+                            });
+                        } else {
+                            layer.msg(e.msg);
+                        }
+                    });
+                }
+
+
+                //鎵ц閫�璐ф搷浣�
+                function doEditshoukuan(obj) {
+                    coreHelper.Post("Api/Puhuo/GetEdit", { id: obj.data.id, jintui: 4 }, function (e) {
+                        if (e.code === 0) {
+                            admin.popup({
+                                shadeClose: false,
+                                title: '鍥炴',
+                                area: ['1200px', '90%'],
+                                id: 'LAY-popup-Puhuo-edit',
+                                success: function (layero, index) {
+                                    view(this.id).render('baifenbingfa/Puhuo/editshoukuan', { data: e.data }).done(function () {
+                                        //鐩戝惉鎻愪氦
+                                        form.on('submit(LAY-app-Puhuo-editForm-submit)',
+                                            function (data) {
+                                                var field = data.field; //鑾峰彇鎻愪氦鐨勫瓧娈�
+
+                                                field.isdelete = field.isdelete == 'on';
+
+                                                if (debug) { console.log(field); } //寮�鍚皟璇曡繑鍥炴暟鎹�
+                                                //鎻愪氦 Ajax 鎴愬姛鍚庯紝鍏抽棴褰撳墠寮瑰眰骞堕噸杞借〃鏍�
+                                                coreHelper.Post("Api/Puhuo/DoEdit", field, function (e) {
+                                                    console.log(e)
+                                                    if (e.code === 0) {
+                                                        layui.table.reloadData('LAY-app-Puhuo-tableBox'); //閲嶈浇琛ㄦ牸
+                                                        layer.close(index); //鍐嶆墽琛屽叧闂�
+                                                        layer.msg(e.msg);
+                                                    } else {
+                                                        layer.msg(e.msg);
+                                                    }
+                                                });
+                                            });
+                                    })
+                                    //// 绂佹寮圭獥鍑虹幇婊氬姩鏉�
+                                    //$(layero).children('.layui-layer-content').css('overflow', 'visible');
+                                }
+                                , btn: ['纭畾', '鍙栨秷']
+                                , yes: function (index, layero) {
+                                    layero.contents().find("#LAY-app-Puhuo-editForm-submit").click();
+                                }
+                            });
+                        } else {
+                            layer.msg(e.msg);
+                        }
+                    });
+                }
+
                 //鎵ц棰勮鎿嶄綔
                 function doDetails(obj) {
                     coreHelper.Post("Api/Puhuo/GetDetails", { id: obj.data.id }, function (e) {
diff --git a/CoreCms.Net.Web.Admin/wwwroot/views/baifenbingfa/puhuo/indexgroup.html b/CoreCms.Net.Web.Admin/wwwroot/views/baifenbingfa/puhuo/indexgroup.html
index 462001a..be9f880 100644
--- a/CoreCms.Net.Web.Admin/wwwroot/views/baifenbingfa/puhuo/indexgroup.html
+++ b/CoreCms.Net.Web.Admin/wwwroot/views/baifenbingfa/puhuo/indexgroup.html
@@ -236,7 +236,7 @@
                     text: {none: '鏆傛棤鐩稿叧鏁版嵁'},
                     cols: [
                         [
-                            { type: "checkbox", fixed: "left" },
+                            { type: "checkbox"  },
                             { type: 'numbers', title: '搴忓彿', width: 60, sort: false },
                             /*  { field: 'id', title: '涓婚敭ID', width: 60, sort: false},*/
                            /* { field: 'areaCodeName', title: '鍖哄煙鍚嶇О', sort: false, width: 165 },*/
@@ -245,25 +245,38 @@
 						   /* { field: 'areaCode', title: '鍖哄煙', sort: false,width: 105 },*/
 						   
 						  /*  { field: 'categoryId', title: '鍟嗗搧鍒嗙被id', sort: false,width: 105 },*/
-                            { field: 'categoryName', title: '鍟嗗搧绫诲埆', sort: false, width: 185 },
+                            { field: 'categoryName', title: '鍟嗗搧绫诲埆', sort: false, width: 125 },
 						   /* { field: 'goodsId', title: '鍟嗗搧id', sort: false,width: 105 },*/
                             { field: 'goodsName', title: '鍟嗗搧鍚嶇О', sort: false, width: 185 },
 						   /* { field: 'productsId', title: '璐у搧id', sort: false,width: 105 },*/
-                            { field: 'productsName', title: '璐у搧缂栧彿', sort: false, width: 185 },
+                            { field: 'productsName', title: '璐у搧缂栧彿', sort: false, width: 265 },
                             /*   { field: 'spesDesc', title: '璐у搧瑙勬牸', sort: false,width: 105 },*/
-                            { field: 'nums', title: '鏁伴噺', sort: false, width: 185 },
-                            { field: 'price', title: '鍗曚环', sort: false, width: 185 },
+                            { field: 'nums', title: '鏁伴噺', sort: false, width: 165 },
+                            { field: 'price', title: '鍗曚环', sort: false, width: 165 },
 						 
-                            { field: 'amount', title: '閲戦', sort: false, width: 185 },
+                            { field: 'amount', title: '閲戦', sort: false, width: 165 },
                             { field: 'tiaozhengnums', title: '缁忛攢鍟嗘暟閲�', sort: false, width: 185 },
 						    //{ field: 'createTime', title: '寤虹珛鏃堕棿', width: 130, sort: false},
 						    //{ field: 'upDataTime', title: '淇敼鏃堕棿', width: 130, sort: false},
 						    //{ field: 'createBy', title: '鍒涘缓浜�', sort: false,width: 105 },
 						    //{ field: 'upDataBy', title: '淇敼浜�', sort: false,width: 105 },
 						    //{ field: 'isdelete', title: '鍒犻櫎鏍囧織', width: 95, templet: '#switch_isdelete', sort: false , unresize: true},
-                            { width: 230, align: 'center', title:'鎿嶄綔', fixed: 'right', toolbar: '#LAY-app-Puhuo-tableBox-bar' }
+                            { width: 230, align: 'center', title:'鎿嶄綔' , toolbar: '#LAY-app-Puhuo-tableBox-bar' }
                         ]
-                    ]
+                    ], done: function (res, curr, count) {
+
+                        console.log(res);
+                        // 鍒涘缓鍚堣琛岀殑HTML
+                        var totalRowHtml = '<tr class="layui-table-total" style="background-color: #f2f2f2; font-weight: bold;">\
+    <td></td><td></td><td colspan="3">褰撻〉鍚堣</td><td>&nbsp;&nbsp;&nbsp;'+ res.otherData.heji1 + '</td><td></td><td>&nbsp;&nbsp;&nbsp;' + res.otherData.heji2 + '</td><td>&nbsp;&nbsp;&nbsp;' + res.otherData.heji3 +'</td><td></td>\
+  </tr>\
+  <tr class="layui-table-total" style="background-color: #e9e9e9; font-weight: bold;">\
+    <td></td><td></td><td colspan="3">鎬诲悎璁�</td><td>&nbsp;&nbsp;&nbsp;'+ res.otherData.heji4 + '</td><td></td><td>&nbsp;&nbsp;&nbsp;' + res.otherData.heji5 + '</td><td>&nbsp;&nbsp;&nbsp;' + res.otherData.heji6 + '</td><td></td>\
+  </tr>';
+
+                        // 灏嗗悎璁¤娣诲姞鍒拌〃鏍煎簳閮�
+                        $('#LAY-app-Puhuo-tableBox').next().find('.layui-table-body tbody').append(totalRowHtml);
+                    }
                 });
                 //鐩戝惉鎺掑簭浜嬩欢
                 table.on('sort(LAY-app-Puhuo-tableBox)', function(obj){
diff --git a/CoreCms.Net.Web.Admin/wwwroot/views/baifenbingfa/puhuoshoukuan/create.html b/CoreCms.Net.Web.Admin/wwwroot/views/baifenbingfa/puhuoshoukuan/create.html
new file mode 100644
index 0000000..a09ed6e
--- /dev/null
+++ b/CoreCms.Net.Web.Admin/wwwroot/views/baifenbingfa/puhuoshoukuan/create.html
@@ -0,0 +1,204 @@
+<script type="text/html" template lay-done="layui.data.done(d);">
+<div class="layui-form coreshop-form layui-form-pane" lay-filter="LAY-app-PuhuoShoukuan-createForm" id="LAY-app-PuhuoShoukuan-createForm">
+	
+	<div class="layui-form-item">
+        <label for="id" class="layui-form-label  layui-form-required">涓婚敭ID</label>
+        <div class="layui-input-block">
+            <input  type="number" min="0" max="999999" name="id"   lay-verType="tips" lay-verify="required|number" class="layui-input" value="1" placeholder="璇疯緭鍏ヤ富閿甀D" lay-reqText="璇疯緭鍏ヤ富閿甀D骞朵负鏁板瓧"  />
+        </div>
+    </div>
+	
+	<div class="layui-form-item">
+        <label for="puhuoId" class="layui-form-label  layui-form-required">閾鸿揣id</label>
+        <div class="layui-input-block">
+            <input  type="number" min="0" max="999999" name="puhuoId"   lay-verType="tips" lay-verify="required|number" class="layui-input" value="1" placeholder="璇疯緭鍏ラ摵璐d" lay-reqText="璇疯緭鍏ラ摵璐d骞朵负鏁板瓧"  />
+        </div>
+    </div>
+	
+	<div class="layui-form-item">
+        <label for="distributionId" class="layui-form-label  layui-form-required">缁忛攢鍟唅d</label>
+        <div class="layui-input-block">
+            <input  type="number" min="0" max="999999" name="distributionId"   lay-verType="tips" lay-verify="required|number" class="layui-input" value="1" placeholder="璇疯緭鍏ョ粡閿�鍟唅d" lay-reqText="璇疯緭鍏ョ粡閿�鍟唅d骞朵负鏁板瓧"  />
+        </div>
+    </div>
+	
+	<div class="layui-form-item">
+        <label for="distributionName" class="layui-form-label  layui-form-required">缁忛攢鍟�</label>
+        <div class="layui-input-block">
+            <input name="distributionName"   lay-verType="tips" lay-verify="required" class="layui-input"  placeholder="璇疯緭鍏ョ粡閿�鍟�" lay-reqText="璇疯緭鍏ョ粡閿�鍟�"  />
+        </div>
+    </div>
+	
+	<div class="layui-form-item">
+        <label for="areaCode" class="layui-form-label  layui-form-required">鍖哄煙</label>
+        <div class="layui-input-block">
+            <input name="areaCode"   lay-verType="tips" lay-verify="required" class="layui-input"  placeholder="璇疯緭鍏ュ尯鍩�" lay-reqText="璇疯緭鍏ュ尯鍩�"  />
+        </div>
+    </div>
+	
+	<div class="layui-form-item">
+        <label for="areaCodeName" class="layui-form-label  layui-form-required">鍖哄煙鍚嶇О</label>
+        <div class="layui-input-block">
+            <input name="areaCodeName"   lay-verType="tips" lay-verify="required" class="layui-input"  placeholder="璇疯緭鍏ュ尯鍩熷悕绉�" lay-reqText="璇疯緭鍏ュ尯鍩熷悕绉�"  />
+        </div>
+    </div>
+	
+	<div class="layui-form-item">
+        <label for="CategoryId" class="layui-form-label  layui-form-required">鍟嗗搧鍒嗙被id</label>
+        <div class="layui-input-block">
+            <input  type="number" min="0" max="999999" name="CategoryId"   lay-verType="tips" lay-verify="required|number" class="layui-input" value="1" placeholder="璇疯緭鍏ュ晢鍝佸垎绫籭d" lay-reqText="璇疯緭鍏ュ晢鍝佸垎绫籭d骞朵负鏁板瓧"  />
+        </div>
+    </div>
+	
+	<div class="layui-form-item">
+        <label for="CategoryName" class="layui-form-label  layui-form-required">鍟嗗搧鍒嗙被</label>
+        <div class="layui-input-block">
+            <input name="CategoryName"   lay-verType="tips" lay-verify="required" class="layui-input"  placeholder="璇疯緭鍏ュ晢鍝佸垎绫�" lay-reqText="璇疯緭鍏ュ晢鍝佸垎绫�"  />
+        </div>
+    </div>
+	
+	<div class="layui-form-item">
+        <label for="goodsId" class="layui-form-label  layui-form-required">鍟嗗搧id</label>
+        <div class="layui-input-block">
+            <input  type="number" min="0" max="999999" name="goodsId"   lay-verType="tips" lay-verify="required|number" class="layui-input" value="1" placeholder="璇疯緭鍏ュ晢鍝乮d" lay-reqText="璇疯緭鍏ュ晢鍝乮d骞朵负鏁板瓧"  />
+        </div>
+    </div>
+	
+	<div class="layui-form-item">
+        <label for="goodsName" class="layui-form-label  layui-form-required">鍟嗗搧鍚嶇О</label>
+        <div class="layui-input-block">
+            <input name="goodsName"   lay-verType="tips" lay-verify="required" class="layui-input"  placeholder="璇疯緭鍏ュ晢鍝佸悕绉�" lay-reqText="璇疯緭鍏ュ晢鍝佸悕绉�"  />
+        </div>
+    </div>
+	
+	<div class="layui-form-item">
+        <label for="productsId" class="layui-form-label  layui-form-required">璐у搧id</label>
+        <div class="layui-input-block">
+            <input  type="number" min="0" max="999999" name="productsId"   lay-verType="tips" lay-verify="required|number" class="layui-input" value="1" placeholder="璇疯緭鍏ヨ揣鍝乮d" lay-reqText="璇疯緭鍏ヨ揣鍝乮d骞朵负鏁板瓧"  />
+        </div>
+    </div>
+	
+	<div class="layui-form-item">
+        <label for="productsName" class="layui-form-label  layui-form-required">璐у搧缂栧彿</label>
+        <div class="layui-input-block">
+            <input name="productsName"   lay-verType="tips" lay-verify="required" class="layui-input"  placeholder="璇疯緭鍏ヨ揣鍝佺紪鍙�" lay-reqText="璇疯緭鍏ヨ揣鍝佺紪鍙�"  />
+        </div>
+    </div>
+	
+	<div class="layui-form-item">
+        <label for="spesDesc" class="layui-form-label  layui-form-required">璐у搧瑙勬牸</label>
+        <div class="layui-input-block">
+            <input name="spesDesc"   lay-verType="tips" lay-verify="required" class="layui-input"  placeholder="璇疯緭鍏ヨ揣鍝佽鏍�" lay-reqText="璇疯緭鍏ヨ揣鍝佽鏍�"  />
+        </div>
+    </div>
+	
+	<div class="layui-form-item">
+        <label for="price" class="layui-form-label  layui-form-required">璐у搧浠锋牸</label>
+        <div class="layui-input-block">
+            <input name="price"   lay-verType="tips" lay-verify="required" class="layui-input"  placeholder="璇疯緭鍏ヨ揣鍝佷环鏍�" lay-reqText="璇疯緭鍏ヨ揣鍝佷环鏍�"  />
+        </div>
+    </div>
+	
+	<div class="layui-form-item">
+        <label for="nums" class="layui-form-label  layui-form-required">鏁伴噺</label>
+        <div class="layui-input-block">
+            <input  type="number" min="0" max="999999" name="nums"   lay-verType="tips" lay-verify="required|number" class="layui-input" value="1" placeholder="璇疯緭鍏ユ暟閲�" lay-reqText="璇疯緭鍏ユ暟閲忓苟涓烘暟瀛�"  />
+        </div>
+    </div>
+	
+	<div class="layui-form-item">
+        <label for="amount" class="layui-form-label  layui-form-required">閲戦</label>
+        <div class="layui-input-block">
+            <input name="amount"   lay-verType="tips" lay-verify="required" class="layui-input"  placeholder="璇疯緭鍏ラ噾棰�" lay-reqText="璇疯緭鍏ラ噾棰�"  />
+        </div>
+    </div>
+	
+	<div class="layui-form-item">
+        <label for="shoukuannums" class="layui-form-label  layui-form-required">鏀舵鏁伴噺</label>
+        <div class="layui-input-block">
+            <input  type="number" min="0" max="999999" name="shoukuannums"   lay-verType="tips" lay-verify="required|number" class="layui-input" value="1" placeholder="璇疯緭鍏ユ敹娆炬暟閲�" lay-reqText="璇疯緭鍏ユ敹娆炬暟閲忓苟涓烘暟瀛�"  />
+        </div>
+    </div>
+	
+	<div class="layui-form-item">
+        <label for="shoukuanamount" class="layui-form-label  layui-form-required">鏀舵閲戦</label>
+        <div class="layui-input-block">
+            <input name="shoukuanamount"   lay-verType="tips" lay-verify="required" class="layui-input"  placeholder="璇疯緭鍏ユ敹娆鹃噾棰�" lay-reqText="璇疯緭鍏ユ敹娆鹃噾棰�"  />
+        </div>
+    </div>
+	
+	<div class="layui-form-item">
+        <label for="createTime" class="layui-form-label  layui-form-required">寤虹珛鏃堕棿</label>
+        <div class="layui-input-block">
+            <input name="createTime"  id="createTime-PuhuoShoukuan-createTime" type="text" lay-verType="tips" lay-verify="required|datetime" class="layui-input" placeholder="璇疯緭鍏ュ缓绔嬫椂闂�" lay-reqText="璇疯緭鍏ュ缓绔嬫椂闂�"  />
+        </div>
+    </div>
+	
+	<div class="layui-form-item">
+        <label for="upDataTime" class="layui-form-label  layui-form-required">淇敼鏃堕棿</label>
+        <div class="layui-input-block">
+            <input name="upDataTime"  id="createTime-PuhuoShoukuan-upDataTime" type="text" lay-verType="tips" lay-verify="required|datetime" class="layui-input" placeholder="璇疯緭鍏ヤ慨鏀规椂闂�" lay-reqText="璇疯緭鍏ヤ慨鏀规椂闂�"  />
+        </div>
+    </div>
+	
+	<div class="layui-form-item">
+        <label for="createBy" class="layui-form-label  layui-form-required">鍒涘缓浜�</label>
+        <div class="layui-input-block">
+            <input name="createBy"   lay-verType="tips" lay-verify="required" class="layui-input"  placeholder="璇疯緭鍏ュ垱寤轰汉" lay-reqText="璇疯緭鍏ュ垱寤轰汉"  />
+        </div>
+    </div>
+	
+	<div class="layui-form-item">
+        <label for="upDataBy" class="layui-form-label  layui-form-required">淇敼浜�</label>
+        <div class="layui-input-block">
+            <input name="upDataBy"   lay-verType="tips" lay-verify="required" class="layui-input"  placeholder="璇疯緭鍏ヤ慨鏀逛汉" lay-reqText="璇疯緭鍏ヤ慨鏀逛汉"  />
+        </div>
+    </div>
+	
+	<div class="layui-form-item" pane>
+        <label for="isdelete" class="layui-form-label  layui-form-required">鍒犻櫎鏍囧織</label>
+        <div class="layui-input-block">
+            <input type="checkbox" lay-filter="switch" name="isdelete"   lay-skin="switch" lay-text="寮�鍚瘄鍏抽棴">
+        </div>
+    </div>
+	
+      <div class="layui-form-item text-right core-hidden">
+        <input type="button" class="layui-btn" lay-submit lay-filter="LAY-app-PuhuoShoukuan-createForm-submit" id="LAY-app-PuhuoShoukuan-createForm-submit" value="纭娣诲姞">
+    </div>
+</div>
+</script>
+<script>
+    var debug= layui.setter.debug;
+    layui.data.done = function (d) {
+        //寮�鍚皟璇曟儏鍐典笅鑾峰彇鎺ュ彛璧嬪�兼暟鎹�
+        if (debug) { console.log(d.params.data); }
+        layui.use(['admin', 'form', 'laydate', 'upload', 'coreHelper', 'cropperImg'],
+        function () {
+            var $ = layui.$
+                , form = layui.form
+                , admin = layui.admin
+                , laydate = layui.laydate
+                , upload = layui.upload
+                , cropperImg = layui.cropperImg
+                , coreHelper = layui.coreHelper;
+	        
+            laydate.render({
+                elem: '#createTime-PuhuoShoukuan-createTime',
+                type: 'datetime',
+                value: new Date(),
+                fullPanel: true
+            });
+            laydate.render({
+                elem: '#createTime-PuhuoShoukuan-upDataTime',
+                type: 'datetime',
+                value: new Date(),
+                fullPanel: true
+            });
+	        form.verify({
+                
+	        });
+            //閲嶈浇form
+            form.render(null, 'LAY-app-PuhuoShoukuan-createForm');
+        })
+    };
+</script>
diff --git a/CoreCms.Net.Web.Admin/wwwroot/views/baifenbingfa/puhuoshoukuan/details.html b/CoreCms.Net.Web.Admin/wwwroot/views/baifenbingfa/puhuoshoukuan/details.html
new file mode 100644
index 0000000..b9e8efc
--- /dev/null
+++ b/CoreCms.Net.Web.Admin/wwwroot/views/baifenbingfa/puhuoshoukuan/details.html
@@ -0,0 +1,234 @@
+<script type="text/html" template  lay-done="layui.data.done(d);">
+    <table class="layui-table layui-form" lay-filter="LAY-app-PuhuoShoukuan-detailsForm" id="LAY-app-PuhuoShoukuan-detailsForm">
+        <colgroup>
+            <col width="100">
+            <col>
+        </colgroup>
+        <tbody>
+		    
+		    <tr>
+                <td>
+                    <label for="id">涓婚敭ID</label>
+                </td>
+                <td>
+                    {{ d.params.data.id || '' }}
+                </td>
+            </tr>
+		    
+		    <tr>
+                <td>
+                    <label for="puhuoId">閾鸿揣id</label>
+                </td>
+                <td>
+                    {{ d.params.data.puhuoId || '' }}
+                </td>
+            </tr>
+		    
+		    <tr>
+                <td>
+                    <label for="distributionId">缁忛攢鍟唅d</label>
+                </td>
+                <td>
+                    {{ d.params.data.distributionId || '' }}
+                </td>
+            </tr>
+		    
+		    <tr>
+                <td>
+                    <label for="distributionName">缁忛攢鍟�</label>
+                </td>
+                <td>
+                    {{ d.params.data.distributionName || '' }}
+                </td>
+            </tr>
+		    
+		    <tr>
+                <td>
+                    <label for="areaCode">鍖哄煙</label>
+                </td>
+                <td>
+                    {{ d.params.data.areaCode || '' }}
+                </td>
+            </tr>
+		    
+		    <tr>
+                <td>
+                    <label for="areaCodeName">鍖哄煙鍚嶇О</label>
+                </td>
+                <td>
+                    {{ d.params.data.areaCodeName || '' }}
+                </td>
+            </tr>
+		    
+		    <tr>
+                <td>
+                    <label for="CategoryId">鍟嗗搧鍒嗙被id</label>
+                </td>
+                <td>
+                    {{ d.params.data.CategoryId || '' }}
+                </td>
+            </tr>
+		    
+		    <tr>
+                <td>
+                    <label for="CategoryName">鍟嗗搧鍒嗙被</label>
+                </td>
+                <td>
+                    {{ d.params.data.CategoryName || '' }}
+                </td>
+            </tr>
+		    
+		    <tr>
+                <td>
+                    <label for="goodsId">鍟嗗搧id</label>
+                </td>
+                <td>
+                    {{ d.params.data.goodsId || '' }}
+                </td>
+            </tr>
+		    
+		    <tr>
+                <td>
+                    <label for="goodsName">鍟嗗搧鍚嶇О</label>
+                </td>
+                <td>
+                    {{ d.params.data.goodsName || '' }}
+                </td>
+            </tr>
+		    
+		    <tr>
+                <td>
+                    <label for="productsId">璐у搧id</label>
+                </td>
+                <td>
+                    {{ d.params.data.productsId || '' }}
+                </td>
+            </tr>
+		    
+		    <tr>
+                <td>
+                    <label for="productsName">璐у搧缂栧彿</label>
+                </td>
+                <td>
+                    {{ d.params.data.productsName || '' }}
+                </td>
+            </tr>
+		    
+		    <tr>
+                <td>
+                    <label for="spesDesc">璐у搧瑙勬牸</label>
+                </td>
+                <td>
+                    {{ d.params.data.spesDesc || '' }}
+                </td>
+            </tr>
+		    
+		    <tr>
+                <td>
+                    <label for="price">璐у搧浠锋牸</label>
+                </td>
+                <td>
+                    {{ d.params.data.price || '' }}
+                </td>
+            </tr>
+		    
+		    <tr>
+                <td>
+                    <label for="nums">鏁伴噺</label>
+                </td>
+                <td>
+                    {{ d.params.data.nums || '' }}
+                </td>
+            </tr>
+		    
+		    <tr>
+                <td>
+                    <label for="amount">閲戦</label>
+                </td>
+                <td>
+                    {{ d.params.data.amount || '' }}
+                </td>
+            </tr>
+		    
+		    <tr>
+                <td>
+                    <label for="shoukuannums">鏀舵鏁伴噺</label>
+                </td>
+                <td>
+                    {{ d.params.data.shoukuannums || '' }}
+                </td>
+            </tr>
+		    
+		    <tr>
+                <td>
+                    <label for="shoukuanamount">鏀舵閲戦</label>
+                </td>
+                <td>
+                    {{ d.params.data.shoukuanamount || '' }}
+                </td>
+            </tr>
+		    
+		    <tr>
+                <td>
+                    <label for="createTime">寤虹珛鏃堕棿</label>
+                </td>
+                <td>
+                    {{ d.params.data.createTime || '' }}
+                </td>
+            </tr>
+		    
+		    <tr>
+                <td>
+                    <label for="upDataTime">淇敼鏃堕棿</label>
+                </td>
+                <td>
+                    {{ d.params.data.upDataTime || '' }}
+                </td>
+            </tr>
+		    
+		    <tr>
+                <td>
+                    <label for="createBy">鍒涘缓浜�</label>
+                </td>
+                <td>
+                    {{ d.params.data.createBy || '' }}
+                </td>
+            </tr>
+		    
+		    <tr>
+                <td>
+                    <label for="upDataBy">淇敼浜�</label>
+                </td>
+                <td>
+                    {{ d.params.data.upDataBy || '' }}
+                </td>
+            </tr>
+		    
+		    <tr>
+                <td>
+                    <label for="isdelete">鍒犻櫎鏍囧織</label>
+                </td>
+                <td>
+                    <input type="checkbox" disabled name="isdelete" value="{{d.params.data.isdelete}}" lay-skin="switch" lay-text="寮�鍚瘄鍏抽棴" lay-filter="isdelete" {{ d.params.data.isdelete ? 'checked' : '' }}>
+                </td>
+            </tr>
+		    
+        </tbody>
+    </table>
+</script>
+<script>
+    var debug= layui.setter.debug;
+    layui.data.done = function (d) {
+        //寮�鍚皟璇曟儏鍐典笅鑾峰彇鎺ュ彛璧嬪�兼暟鎹�
+        if (debug) { console.log(d.params.data); }
+
+        layui.use(['admin', 'form', 'coreHelper'], function () {
+            var $ = layui.$
+                , setter = layui.setter
+                , admin = layui.admin
+                , coreHelper = layui.coreHelper
+                , form = layui.form;
+            form.render(null, 'LAY-app-PuhuoShoukuan-detailsForm');
+        });
+    };
+</script>
\ No newline at end of file
diff --git a/CoreCms.Net.Web.Admin/wwwroot/views/baifenbingfa/puhuoshoukuan/edit.html b/CoreCms.Net.Web.Admin/wwwroot/views/baifenbingfa/puhuoshoukuan/edit.html
new file mode 100644
index 0000000..7fcdeef
--- /dev/null
+++ b/CoreCms.Net.Web.Admin/wwwroot/views/baifenbingfa/puhuoshoukuan/edit.html
@@ -0,0 +1,202 @@
+<script type="text/html" template lay-done="layui.data.sendParams(d);">
+    <div class="layui-form coreshop-form layui-form-pane" lay-filter="LAY-app-PuhuoShoukuan-editForm" id="LAY-app-PuhuoShoukuan-editForm">
+	    <input type="hidden" name="id"  value="{{d.params.data.id || '' }}" />
+	    <div class="layui-form-item">
+            <label for="id" class="layui-form-label  layui-form-required">涓婚敭ID</label>
+            <div class="layui-input-block">
+                <input  type="number" min="0" max="999999" name="id"   lay-verType="tips" lay-verify="required|number" class="layui-input" value="{{d.params.data.id || '' }}" placeholder="璇疯緭鍏ヤ富閿甀D" lay-reqText="璇疯緭鍏ヤ富閿甀D骞朵负鏁板瓧"  />
+            </div>
+        </div>
+	    
+	    <div class="layui-form-item">
+            <label for="puhuoId" class="layui-form-label  layui-form-required">閾鸿揣id</label>
+            <div class="layui-input-block">
+                <input  type="number" min="0" max="999999" name="puhuoId"   lay-verType="tips" lay-verify="required|number" class="layui-input" value="{{d.params.data.puhuoId || '' }}" placeholder="璇疯緭鍏ラ摵璐d" lay-reqText="璇疯緭鍏ラ摵璐d骞朵负鏁板瓧"  />
+            </div>
+        </div>
+	    
+	    <div class="layui-form-item">
+            <label for="distributionId" class="layui-form-label  layui-form-required">缁忛攢鍟唅d</label>
+            <div class="layui-input-block">
+                <input  type="number" min="0" max="999999" name="distributionId"   lay-verType="tips" lay-verify="required|number" class="layui-input" value="{{d.params.data.distributionId || '' }}" placeholder="璇疯緭鍏ョ粡閿�鍟唅d" lay-reqText="璇疯緭鍏ョ粡閿�鍟唅d骞朵负鏁板瓧"  />
+            </div>
+        </div>
+	    
+	    <div class="layui-form-item">
+            <label for="distributionName" class="layui-form-label  layui-form-required">缁忛攢鍟�</label>
+            <div class="layui-input-block">
+                <input name="distributionName"   lay-verType="tips" lay-verify="required" class="layui-input" placeholder="璇疯緭鍏ョ粡閿�鍟�" lay-reqText="璇疯緭鍏ョ粡閿�鍟�"  value="{{d.params.data.distributionName || '' }}" />
+            </div>
+        </div>
+	    
+	    <div class="layui-form-item">
+            <label for="areaCode" class="layui-form-label  layui-form-required">鍖哄煙</label>
+            <div class="layui-input-block">
+                <input name="areaCode"   lay-verType="tips" lay-verify="required" class="layui-input" placeholder="璇疯緭鍏ュ尯鍩�" lay-reqText="璇疯緭鍏ュ尯鍩�"  value="{{d.params.data.areaCode || '' }}" />
+            </div>
+        </div>
+	    
+	    <div class="layui-form-item">
+            <label for="areaCodeName" class="layui-form-label  layui-form-required">鍖哄煙鍚嶇О</label>
+            <div class="layui-input-block">
+                <input name="areaCodeName"   lay-verType="tips" lay-verify="required" class="layui-input" placeholder="璇疯緭鍏ュ尯鍩熷悕绉�" lay-reqText="璇疯緭鍏ュ尯鍩熷悕绉�"  value="{{d.params.data.areaCodeName || '' }}" />
+            </div>
+        </div>
+	    
+	    <div class="layui-form-item">
+            <label for="CategoryId" class="layui-form-label  layui-form-required">鍟嗗搧鍒嗙被id</label>
+            <div class="layui-input-block">
+                <input  type="number" min="0" max="999999" name="CategoryId"   lay-verType="tips" lay-verify="required|number" class="layui-input" value="{{d.params.data.CategoryId || '' }}" placeholder="璇疯緭鍏ュ晢鍝佸垎绫籭d" lay-reqText="璇疯緭鍏ュ晢鍝佸垎绫籭d骞朵负鏁板瓧"  />
+            </div>
+        </div>
+	    
+	    <div class="layui-form-item">
+            <label for="CategoryName" class="layui-form-label  layui-form-required">鍟嗗搧鍒嗙被</label>
+            <div class="layui-input-block">
+                <input name="CategoryName"   lay-verType="tips" lay-verify="required" class="layui-input" placeholder="璇疯緭鍏ュ晢鍝佸垎绫�" lay-reqText="璇疯緭鍏ュ晢鍝佸垎绫�"  value="{{d.params.data.CategoryName || '' }}" />
+            </div>
+        </div>
+	    
+	    <div class="layui-form-item">
+            <label for="goodsId" class="layui-form-label  layui-form-required">鍟嗗搧id</label>
+            <div class="layui-input-block">
+                <input  type="number" min="0" max="999999" name="goodsId"   lay-verType="tips" lay-verify="required|number" class="layui-input" value="{{d.params.data.goodsId || '' }}" placeholder="璇疯緭鍏ュ晢鍝乮d" lay-reqText="璇疯緭鍏ュ晢鍝乮d骞朵负鏁板瓧"  />
+            </div>
+        </div>
+	    
+	    <div class="layui-form-item">
+            <label for="goodsName" class="layui-form-label  layui-form-required">鍟嗗搧鍚嶇О</label>
+            <div class="layui-input-block">
+                <input name="goodsName"   lay-verType="tips" lay-verify="required" class="layui-input" placeholder="璇疯緭鍏ュ晢鍝佸悕绉�" lay-reqText="璇疯緭鍏ュ晢鍝佸悕绉�"  value="{{d.params.data.goodsName || '' }}" />
+            </div>
+        </div>
+	    
+	    <div class="layui-form-item">
+            <label for="productsId" class="layui-form-label  layui-form-required">璐у搧id</label>
+            <div class="layui-input-block">
+                <input  type="number" min="0" max="999999" name="productsId"   lay-verType="tips" lay-verify="required|number" class="layui-input" value="{{d.params.data.productsId || '' }}" placeholder="璇疯緭鍏ヨ揣鍝乮d" lay-reqText="璇疯緭鍏ヨ揣鍝乮d骞朵负鏁板瓧"  />
+            </div>
+        </div>
+	    
+	    <div class="layui-form-item">
+            <label for="productsName" class="layui-form-label  layui-form-required">璐у搧缂栧彿</label>
+            <div class="layui-input-block">
+                <input name="productsName"   lay-verType="tips" lay-verify="required" class="layui-input" placeholder="璇疯緭鍏ヨ揣鍝佺紪鍙�" lay-reqText="璇疯緭鍏ヨ揣鍝佺紪鍙�"  value="{{d.params.data.productsName || '' }}" />
+            </div>
+        </div>
+	    
+	    <div class="layui-form-item">
+            <label for="spesDesc" class="layui-form-label  layui-form-required">璐у搧瑙勬牸</label>
+            <div class="layui-input-block">
+                <input name="spesDesc"   lay-verType="tips" lay-verify="required" class="layui-input" placeholder="璇疯緭鍏ヨ揣鍝佽鏍�" lay-reqText="璇疯緭鍏ヨ揣鍝佽鏍�"  value="{{d.params.data.spesDesc || '' }}" />
+            </div>
+        </div>
+	    
+	    <div class="layui-form-item">
+            <label for="price" class="layui-form-label  layui-form-required">璐у搧浠锋牸</label>
+            <div class="layui-input-block">
+                <input name="price"   lay-verType="tips" lay-verify="required" class="layui-input" placeholder="璇疯緭鍏ヨ揣鍝佷环鏍�" lay-reqText="璇疯緭鍏ヨ揣鍝佷环鏍�"  value="{{d.params.data.price || '' }}" />
+            </div>
+        </div>
+	    
+	    <div class="layui-form-item">
+            <label for="nums" class="layui-form-label  layui-form-required">鏁伴噺</label>
+            <div class="layui-input-block">
+                <input  type="number" min="0" max="999999" name="nums"   lay-verType="tips" lay-verify="required|number" class="layui-input" value="{{d.params.data.nums || '' }}" placeholder="璇疯緭鍏ユ暟閲�" lay-reqText="璇疯緭鍏ユ暟閲忓苟涓烘暟瀛�"  />
+            </div>
+        </div>
+	    
+	    <div class="layui-form-item">
+            <label for="amount" class="layui-form-label  layui-form-required">閲戦</label>
+            <div class="layui-input-block">
+                <input name="amount"   lay-verType="tips" lay-verify="required" class="layui-input" placeholder="璇疯緭鍏ラ噾棰�" lay-reqText="璇疯緭鍏ラ噾棰�"  value="{{d.params.data.amount || '' }}" />
+            </div>
+        </div>
+	    
+	    <div class="layui-form-item">
+            <label for="shoukuannums" class="layui-form-label  layui-form-required">鏀舵鏁伴噺</label>
+            <div class="layui-input-block">
+                <input  type="number" min="0" max="999999" name="shoukuannums"   lay-verType="tips" lay-verify="required|number" class="layui-input" value="{{d.params.data.shoukuannums || '' }}" placeholder="璇疯緭鍏ユ敹娆炬暟閲�" lay-reqText="璇疯緭鍏ユ敹娆炬暟閲忓苟涓烘暟瀛�"  />
+            </div>
+        </div>
+	    
+	    <div class="layui-form-item">
+            <label for="shoukuanamount" class="layui-form-label  layui-form-required">鏀舵閲戦</label>
+            <div class="layui-input-block">
+                <input name="shoukuanamount"   lay-verType="tips" lay-verify="required" class="layui-input" placeholder="璇疯緭鍏ユ敹娆鹃噾棰�" lay-reqText="璇疯緭鍏ユ敹娆鹃噾棰�"  value="{{d.params.data.shoukuanamount || '' }}" />
+            </div>
+        </div>
+	    
+	    <div class="layui-form-item">
+            <label for="createTime" class="layui-form-label  layui-form-required">寤虹珛鏃堕棿</label>
+            <div class="layui-input-block">
+                <input name="createTime"  id="editTime-PuhuoShoukuan-createTime" type="text" lay-verType="tips" lay-verify="required|datetime" class="layui-input" placeholder="璇疯緭鍏ュ缓绔嬫椂闂�" lay-reqText="璇疯緭鍏ュ缓绔嬫椂闂�"   value="{{d.params.data.createTime || '' }}"/>
+            </div>
+        </div>
+	    
+	    <div class="layui-form-item">
+            <label for="upDataTime" class="layui-form-label  layui-form-required">淇敼鏃堕棿</label>
+            <div class="layui-input-block">
+                <input name="upDataTime"  id="editTime-PuhuoShoukuan-upDataTime" type="text" lay-verType="tips" lay-verify="required|datetime" class="layui-input" placeholder="璇疯緭鍏ヤ慨鏀规椂闂�" lay-reqText="璇疯緭鍏ヤ慨鏀规椂闂�"   value="{{d.params.data.upDataTime || '' }}"/>
+            </div>
+        </div>
+	    
+	    <div class="layui-form-item">
+            <label for="createBy" class="layui-form-label  layui-form-required">鍒涘缓浜�</label>
+            <div class="layui-input-block">
+                <input name="createBy"   lay-verType="tips" lay-verify="required" class="layui-input" placeholder="璇疯緭鍏ュ垱寤轰汉" lay-reqText="璇疯緭鍏ュ垱寤轰汉"  value="{{d.params.data.createBy || '' }}" />
+            </div>
+        </div>
+	    
+	    <div class="layui-form-item">
+            <label for="upDataBy" class="layui-form-label  layui-form-required">淇敼浜�</label>
+            <div class="layui-input-block">
+                <input name="upDataBy"   lay-verType="tips" lay-verify="required" class="layui-input" placeholder="璇疯緭鍏ヤ慨鏀逛汉" lay-reqText="璇疯緭鍏ヤ慨鏀逛汉"  value="{{d.params.data.upDataBy || '' }}" />
+            </div>
+        </div>
+	    
+	    <div class="layui-form-item" pane>
+            <label for="isdelete" class="layui-form-label  layui-form-required">鍒犻櫎鏍囧織</label>
+            <div class="layui-input-block">
+                <input type="checkbox" lay-filter="switch" name="isdelete"   {{ d.params.data.isdelete ? 'checked' : '' }} lay-skin="switch" lay-text="寮�鍚瘄鍏抽棴">
+            </div>
+        </div>
+	    
+        <div class="layui-form-item text-right core-hidden">
+            <input type="button" class="layui-btn" lay-submit lay-filter="LAY-app-PuhuoShoukuan-editForm-submit" id="LAY-app-PuhuoShoukuan-editForm-submit" value="纭缂栬緫">
+        </div>
+    </div>
+</script>
+<script>
+    var debug= layui.setter.debug;
+    layui.data.sendParams = function (d) {
+        //寮�鍚皟璇曟儏鍐典笅鑾峰彇鎺ュ彛璧嬪�兼暟鎹�
+        if (debug) { console.log(d.params.data); }
+        layui.use(['admin', 'form', 'laydate', 'upload', 'coreHelper', 'cropperImg'],
+        function () {
+            var $ = layui.$
+                , form = layui.form
+                , admin = layui.admin
+                , laydate = layui.laydate
+                , upload = layui.upload
+                , cropperImg = layui.cropperImg
+                , coreHelper = layui.coreHelper;
+        
+            laydate.render({
+                elem: '#editTime-PuhuoShoukuan-createTime',
+                type: 'datetime',
+                fullPanel: true
+            });
+            laydate.render({
+                elem: '#editTime-PuhuoShoukuan-upDataTime',
+                type: 'datetime',
+                fullPanel: true
+            });
+            form.verify({
+                
+            });
+            //閲嶈浇form
+            form.render(null, 'LAY-app-PuhuoShoukuan-editForm');
+        })
+    };
+</script>
diff --git a/CoreCms.Net.Web.Admin/wwwroot/views/baifenbingfa/puhuoshoukuan/index.html b/CoreCms.Net.Web.Admin/wwwroot/views/baifenbingfa/puhuoshoukuan/index.html
new file mode 100644
index 0000000..2faff99
--- /dev/null
+++ b/CoreCms.Net.Web.Admin/wwwroot/views/baifenbingfa/puhuoshoukuan/index.html
@@ -0,0 +1,623 @@
+<title>閾鸿揣</title>
+<!--褰撳墠浣嶇疆寮�濮�-->
+<div class="layui-card layadmin-header">
+    <div class="layui-breadcrumb" lay-filter="breadcrumb">
+        <script type="text/html" template lay-done="layui.data.updateMainBreadcrumb();">
+        </script>
+    </div>
+</div>
+<!--褰撳墠浣嶇疆缁撴潫-->
+<style>
+    /* 閲嶅啓鏍峰紡 */
+</style>
+<script type="text/html" template lay-type="Post" lay-url="Api/PuhuoShoukuan/GetIndex" lay-done="layui.data.done(d);">
+    
+</script>
+<div class="table-body">
+    <table  id="LAY-app-PuhuoShoukuan-tableBox" lay-filter="LAY-app-PuhuoShoukuan-tableBox"></table>
+</div>
+
+<script type="text/html" id="LAY-app-PuhuoShoukuan-toolbar">
+    <div class="layui-form coreshop-toolbar-search-form">
+        <div class="layui-form-item">
+
+            <!--<div class="layui-inline">
+        <label class="layui-form-label" for="id">涓婚敭ID</label>
+        <div class="layui-input-inline">
+            <input type="text" name="id"  placeholder="璇疯緭鍏ヤ富閿甀D" class="layui-input">
+        </div>
+    </div>
+    <div class="layui-inline">
+        <label class="layui-form-label" for="distributionId">缁忛攢鍟唅d</label>
+        <div class="layui-input-inline">
+            <input type="text" name="distributionId"  placeholder="璇疯緭鍏ョ粡閿�鍟唅d" class="layui-input">
+        </div>
+    </div>-->
+            <div class="layui-inline">
+                <label class="layui-form-label" for="areaCode">鐪�</label>
+                <div class="layui-input-inline">
+                    <!--<input type="text" name="areaCode" placeholder="璇疯緭鍏ョ渷" class="layui-input">-->
+                    <select name="sheng" id="sheng" lay-filter="shengFilter">
+                        <option value="0">璇烽�夋嫨</option>
+                        {{# layui.each(indexData, function(index, item){ }}
+                        <option value="{{ item.id }}">{{ item.name }}</option>
+                        {{# }); }}
+                    </select>
+                </div>
+            </div>
+
+            <div class="layui-inline">
+                <label class="layui-form-label" for="shi">甯�</label>
+                <div class="layui-input-inline">
+                    <!--<input type="text" name="shi" placeholder="璇疯緭鍏ュ競" class="layui-input">-->
+
+                    <select name="shi" id="shi" lay-filter="cityFilter">
+                    </select>
+                </div>
+            </div>
+            <div class="layui-inline">
+                <label class="layui-form-label" for="quxian">鍖哄幙</label>
+                <div class="layui-input-inline">
+                    <!--<input type="text" name="quxian" placeholder="璇疯緭鍏ュ尯鍘�" class="layui-input">-->
+                    <select name="quxian" id="quxian" lay-filter="quxian">
+                    </select>
+                </div>
+            </div>
+            <div class="layui-inline">
+                <label class="layui-form-label" for="distributionName">缁忛攢鍟�</label>
+                <div class="layui-input-inline">
+                    <input type="text" name="distributionName" placeholder="璇疯緭鍏ョ粡閿�鍟�" class="layui-input">
+                </div>
+            </div>
+            <div class="layui-inline">
+                <label class="layui-form-label" for="goodsName">鍟嗗搧鍚嶇О</label>
+                <div class="layui-input-inline">
+                    <input type="text" name="goodsName" placeholder="璇疯緭鍏ュ晢鍝佸悕绉�" class="layui-input">
+                </div>
+            </div>
+            <div class="layui-inline">
+                <label class="layui-form-label" for="productsName">璐у搧缂栧彿</label>
+                <div class="layui-input-inline">
+                    <input type="text" name="productsName" placeholder="璇疯緭鍏ヨ揣鍝佺紪鍙�" class="layui-input">
+                </div>
+            </div>
+
+            <!--<div class="layui-inline">
+        <label class="layui-form-label" for="areaCodeName">鍖哄煙鍚嶇О</label>
+        <div class="layui-input-inline">
+            <input type="text" name="areaCodeName" placeholder="璇疯緭鍏ュ尯鍩熷悕绉�" class="layui-input">
+        </div>
+    </div>
+    <div class="layui-inline">
+        <label class="layui-form-label" for="CategoryId">鍟嗗搧鍒嗙被id</label>
+        <div class="layui-input-inline">
+            <input type="text" name="CategoryId" placeholder="璇疯緭鍏ュ晢鍝佸垎绫籭d" class="layui-input">
+        </div>
+    </div>
+    <div class="layui-inline">
+        <label class="layui-form-label" for="CategoryName">鍟嗗搧鍒嗙被</label>
+        <div class="layui-input-inline">
+            <input type="text" name="CategoryName" placeholder="璇疯緭鍏ュ晢鍝佸垎绫�" class="layui-input">
+        </div>
+    </div>
+    <div class="layui-inline">
+        <label class="layui-form-label" for="goodsId">鍟嗗搧id</label>
+        <div class="layui-input-inline">
+            <input type="text" name="goodsId" placeholder="璇疯緭鍏ュ晢鍝乮d" class="layui-input">
+        </div>
+    </div>
+    <div class="layui-inline">
+        <label class="layui-form-label" for="goodsName">鍟嗗搧鍚嶇О</label>
+        <div class="layui-input-inline">
+            <input type="text" name="goodsName" placeholder="璇疯緭鍏ュ晢鍝佸悕绉�" class="layui-input">
+        </div>
+    </div>
+    <div class="layui-inline">
+        <label class="layui-form-label" for="productsId">璐у搧id</label>
+        <div class="layui-input-inline">
+            <input type="text" name="productsId" placeholder="璇疯緭鍏ヨ揣鍝乮d" class="layui-input">
+        </div>
+    </div>
+    <div class="layui-inline">
+        <label class="layui-form-label" for="productsName">璐у搧缂栧彿</label>
+        <div class="layui-input-inline">
+            <input type="text" name="productsName" placeholder="璇疯緭鍏ヨ揣鍝佺紪鍙�" class="layui-input">
+        </div>
+    </div>
+    <div class="layui-inline">
+        <label class="layui-form-label" for="spesDesc">璐у搧瑙勬牸</label>
+        <div class="layui-input-inline">
+            <input type="text" name="spesDesc" placeholder="璇疯緭鍏ヨ揣鍝佽鏍�" class="layui-input">
+        </div>
+    </div>
+    <div class="layui-inline">
+        <label class="layui-form-label" for="price">璐у搧浠锋牸</label>
+        <div class="layui-input-inline">
+            <input type="text" name="price" placeholder="璇疯緭鍏ヨ揣鍝佷环鏍�" class="layui-input">
+        </div>
+    </div>
+    <div class="layui-inline">
+        <label class="layui-form-label" for="nums">鏁伴噺</label>
+        <div class="layui-input-inline">
+            <input type="text" name="nums" placeholder="璇疯緭鍏ユ暟閲�" class="layui-input">
+        </div>
+    </div>
+    <div class="layui-inline">
+        <label class="layui-form-label" for="amount">閲戦</label>
+        <div class="layui-input-inline">
+            <input type="text" name="amount" placeholder="璇疯緭鍏ラ噾棰�" class="layui-input">
+        </div>
+    </div>
+    <div class="layui-inline">
+        <label class="layui-form-label" for="createTime">寤虹珛鏃堕棿</label>
+        <div class="layui-input-inline" style="width: 260px;">
+            <input type="text" name="createTime" id="searchTime-Puhuo-createTime" placeholder="璇疯緭鍏ュ缓绔嬫椂闂�" class="layui-input">
+        </div>
+    </div>
+    <div class="layui-inline">
+        <label class="layui-form-label" for="upDataTime">淇敼鏃堕棿</label>
+        <div class="layui-input-inline" style="width: 260px;">
+            <input type="text" name="upDataTime" id="searchTime-Puhuo-upDataTime" placeholder="璇疯緭鍏ヤ慨鏀规椂闂�" class="layui-input">
+        </div>
+    </div>
+    <div class="layui-inline">
+        <label class="layui-form-label" for="createBy">鍒涘缓浜�</label>
+        <div class="layui-input-inline">
+            <input type="text" name="createBy" placeholder="璇疯緭鍏ュ垱寤轰汉" class="layui-input">
+        </div>
+    </div>
+    <div class="layui-inline">
+        <label class="layui-form-label" for="upDataBy">淇敼浜�</label>
+        <div class="layui-input-inline">
+            <input type="text" name="upDataBy" placeholder="璇疯緭鍏ヤ慨鏀逛汉" class="layui-input">
+        </div>
+    </div>
+    <div class="layui-inline">
+        <label class="layui-form-label" for="isdelete">鍒犻櫎鏍囧織</label>
+        <div class="layui-input-inline">
+            <select name="isdelete">
+                <option value="">璇烽�夋嫨</option>
+                <option value="True">鏄�</option>
+                <option value="False">鍚�</option>
+            </select>
+        </div>
+    </div>-->
+            <div class="layui-inline">
+                <button class="layui-btn layui-btn-sm" lay-submit lay-filter="LAY-app-PuhuoShoukuan-search"><i class="layui-icon layui-icon-search"></i>绛涢��</button>
+            </div>
+        </div>
+    </div>
+</script>
+
+<script type="text/html" id="LAY-app-PuhuoShoukuan-pagebar">
+    <div class="layui-btn-container">
+        <!--<button class="layui-btn layui-btn-sm" lay-event="addData"><i class="layui-icon layui-icon-add-1"></i>娣诲姞鏁版嵁</button>
+        <button class="layui-btn layui-btn-sm" lay-event="batchDelete"><i class="layui-icon layui-icon-delete"></i>鎵归噺鍒犻櫎</button>-->
+        <button class="layui-btn layui-btn-sm" lay-event="selectExportExcel"><i class="layui-icon layui-icon-add-circle"></i>閫夋嫨瀵煎嚭</button>
+        <button class="layui-btn layui-btn-sm" lay-event="queryExportExcel"><i class="layui-icon layui-icon-download-circle"></i>鏌ヨ瀵煎嚭</button>
+    </div>
+</script>
+
+<script type="text/html" id="LAY-app-PuhuoShoukuan-tableBox-bar">
+    <!--<a class="layui-btn layui-btn-primary layui-btn-xs" lay-event="detail">鏌ョ湅</a>
+    <a class="layui-btn layui-btn-xs" lay-event="edit">缂栬緫</a>
+    <a class="layui-btn layui-btn-danger layui-btn-xs" data-dropdown="#PuhuoShoukuanTbDelDrop{{d.LAY_INDEX}}" no-shade="true">鍒犻櫎</a>-->
+    <div class="dropdown-menu-nav dropdown-popconfirm dropdown-top-right layui-hide" id="PuhuoShoukuanTbDelDrop{{d.LAY_INDEX}}"
+         style="max-width: 200px;white-space: normal;min-width: auto;margin-left: 10px;">
+        <div class="dropdown-anchor"></div>
+        <div class="dropdown-popconfirm-title">
+            <i class="layui-icon layui-icon-help"></i>
+            纭畾瑕佸垹闄ゅ悧锛�
+        </div>
+        <div class="dropdown-popconfirm-btn">
+            <a class="layui-btn layui-btn-primary cursor" btn-cancel>鍙栨秷</a>
+            <a class="layui-btn layui-btn-normal cursor" lay-event="del">纭畾</a>
+        </div>
+    </div>
+</script>
+
+<script>
+    var indexData;
+    var debug= layui.setter.debug;
+    layui.data.done = function (d) {
+        //寮�鍚皟璇曟儏鍐典笅鑾峰彇鎺ュ彛璧嬪�兼暟鎹�
+        if (debug) { console.log(d); }
+
+        indexData = d.data;
+        layui.use(['index', 'table', 'laydate', 'util', 'coredropdown', 'coreHelper'],
+            function () {
+                var $ = layui.$
+                    , admin = layui.admin
+                    , table = layui.table
+                    , form = layui.form
+                    , laydate = layui.laydate
+                    , setter = layui.setter
+                    , coreHelper = layui.coreHelper
+                    , util = layui.util
+                    , view = layui.view;
+			    
+                var searchwhere;
+                //鐩戝惉鎼滅储
+                form.on('submit(LAY-app-PuhuoShoukuan-search)',
+                    function(data) {
+                        var field = data.field;
+                        searchwhere = field;
+                        //鎵ц閲嶈浇
+                        table.reloadData('LAY-app-PuhuoShoukuan-tableBox',{ where: field });
+                    });
+                //鏁版嵁缁戝畾
+                table.render({
+                    elem: '#LAY-app-PuhuoShoukuan-tableBox',
+                    url: layui.setter.apiUrl + 'Api/PuhuoShoukuan/GetPageList',
+                    method: 'POST',
+				    toolbar: '#LAY-app-PuhuoShoukuan-toolbar',
+				    pagebar: '#LAY-app-PuhuoShoukuan-pagebar',
+                    className: 'pagebarbox',
+                    defaultToolbar: ['filter', 'print', 'exports'],
+                    height: 'full-127',//闈㈠寘灞�142px,鎼滅储妗�4琛�172,3琛�137,2琛�102,1琛�67
+                    page: true,
+                    limit: 30,
+                    limits: [10, 15, 20, 25, 30, 50, 100, 200],
+                    text: {none: '鏆傛棤鐩稿叧鏁版嵁'},
+                    cols: [
+                        [
+                            { type: "checkbox" },
+                            { type: 'numbers', title: '搴忓彿', width: 60, sort: false },
+                            /*  { field: 'id', title: '涓婚敭ID', width: 60, sort: false},*/
+                            { field: 'areaCodeName', title: '鍖哄煙鍚嶇О', sort: false, width: 165 },
+                            /* { field: 'distributionId', title: '缁忛攢鍟唅d', sort: false,width: 105 },*/
+                            { field: 'distributionName', title: '缁忛攢鍟�', sort: false, width: 125 },
+                            { field: 'schoolName', title: '瀛︽牎', sort: false, width: 165 },
+                            /* { field: 'areaCode', title: '鍖哄煙', sort: false,width: 105 },*/
+
+                            /*  { field: 'categoryId', title: '鍟嗗搧鍒嗙被id', sort: false,width: 105 },*/
+                            { field: 'categoryName', title: '鍟嗗搧绫诲埆', sort: false, width: 165 },
+                            /* { field: 'goodsId', title: '鍟嗗搧id', sort: false,width: 105 },*/
+                            { field: 'goodsName', title: '鍟嗗搧鍚嶇О', sort: false, width: 165 },
+                            /* { field: 'productsId', title: '璐у搧id', sort: false,width: 105 },*/
+                            { field: 'productsName', title: '璐у搧缂栧彿', sort: false, width: 215 },
+                            /*   { field: 'spesDesc', title: '璐у搧瑙勬牸', sort: false,width: 105 },*/
+                            { field: 'shoukuannums', title: '鏀舵鏁伴噺', sort: false, width: 165 },
+                            { field: 'price', title: '鍗曚环', sort: false, width: 165 },
+
+                            { field: 'shoukuanamount', title: '鏀舵閲戦', sort: false, width: 165 },
+                        ]
+                    ], done: function (res, curr, count) {
+
+                        console.log(res);
+                        // 鍒涘缓鍚堣琛岀殑HTML
+                        var totalRowHtml = '<tr class="layui-table-total" style="background-color: #f2f2f2; font-weight: bold;">\
+    <td></td><td></td><td colspan="6">褰撻〉鍚堣</td><td>&nbsp;&nbsp;&nbsp;'+ res.otherData.heji1 + '</td><td></td><td>&nbsp;&nbsp;&nbsp;' + res.otherData.heji2 + '</td>\
+  </tr>\
+  <tr class="layui-table-total" style="background-color: #e9e9e9; font-weight: bold;">\
+    <td></td><td></td><td colspan="6">鎬诲悎璁�</td><td>&nbsp;&nbsp;&nbsp;'+ res.otherData.heji4 + '</td><td></td><td>&nbsp;&nbsp;&nbsp;' + res.otherData.heji5 + '</td>\
+  </tr>';
+
+                        // 灏嗗悎璁¤娣诲姞鍒拌〃鏍煎簳閮�
+                        $('#LAY-app-PuhuoShoukuan-tableBox').next().find('.layui-table-body tbody').append(totalRowHtml);
+                    }
+                });
+                //鐩戝惉鎺掑簭浜嬩欢
+                table.on('sort(LAY-app-PuhuoShoukuan-tableBox)', function(obj){
+                    table.reloadData('LAY-app-PuhuoShoukuan-tableBox', {
+                        initSort: obj, //璁板綍鍒濆鎺掑簭锛屽鏋滀笉璁剧殑璇濓紝灏嗘棤娉曟爣璁拌〃澶寸殑鎺掑簭鐘舵�併��
+                        where: { //璇锋眰鍙傛暟锛堟敞鎰忥細杩欓噷闈㈢殑鍙傛暟鍙换鎰忓畾涔夛紝骞堕潪涓嬮潰鍥哄畾鐨勬牸寮忥級
+                            orderField: obj.field, //鎺掑簭瀛楁
+                            orderDirection: obj.type //鎺掑簭鏂瑰紡
+                        }
+                    });
+                });
+                //鐩戝惉琛屽弻鍑讳簨浠�
+                table.on('rowDouble(LAY-app-PuhuoShoukuan-tableBox)', function (obj) {
+                    //鏌ョ湅璇︽儏
+                    doDetails(obj);
+                });
+                //澶村伐鍏锋爮浜嬩欢
+                table.on('pagebar(LAY-app-PuhuoShoukuan-tableBox)', function (obj) {
+                    var checkStatus = table.checkStatus(obj.config.id);
+                    switch (obj.event) {
+                    case 'addData':
+                        doCreate();
+                        break;
+                    case 'batchDelete':
+                        doBatchDelete(checkStatus);
+                        break;
+                    case 'selectExportExcel':
+                        doSelectExportExcel(checkStatus);
+                        break;
+                    case 'queryExportExcel':
+                        doQueryExportexcel();
+                        break;
+                    };
+                });
+                //鐩戝惉宸ュ叿鏉�
+                table.on('tool(LAY-app-PuhuoShoukuan-tableBox)',
+                    function(obj) {
+                        if (obj.event === 'detail') {
+                            doDetails(obj);
+                        } else if (obj.event === 'del') {
+                            doDelete(obj);
+                        } else if (obj.event === 'edit') {
+                            doEdit(obj)
+                        }
+                    });
+                //鎵ц鍒涘缓鎿嶄綔
+                function doCreate(){
+                    coreHelper.Post("Api/PuhuoShoukuan/GetCreate", null, function (e) {
+                            if (e.code === 0) {
+                                admin.popup({
+                                    shadeClose: false,
+                                    title: '鍒涘缓鏁版嵁',
+                                    area: ['1200px', '90%'],
+                                    id: 'LAY-popup-PuhuoShoukuan-create',
+                                    success: function (layero, index) {
+                                        view(this.id).render('base/PuhuoShoukuan/create', { data: e.data }).done(function () {
+                                            //鐩戝惉鎻愪氦
+                                            form.on('submit(LAY-app-PuhuoShoukuan-createForm-submit)',
+                                                function(data) {
+                                                    var field = data.field; //鑾峰彇鎻愪氦鐨勫瓧娈�
+                                                    
+                                                    field.isdelete = field.isdelete == 'on';
+
+                                                    if (debug) { console.log(field); } //寮�鍚皟璇曡繑鍥炴暟鎹�
+                                                    //鎻愪氦 Ajax 鎴愬姛鍚庯紝鍏抽棴褰撳墠寮瑰眰骞堕噸杞借〃鏍�
+                                                    coreHelper.Post("Api/PuhuoShoukuan/DoCreate", field, function (e) {
+                                                            console.log(e)
+                                                            if (e.code === 0) {
+                                                                layui.table.reloadData('LAY-app-PuhuoShoukuan-tableBox'); //閲嶈浇琛ㄦ牸
+                                                                layer.close(index); //鍐嶆墽琛屽叧闂�
+                                                                layer.msg(e.msg);
+                                                            } else {
+                                                                layer.msg(e.msg);
+                                                            }
+                                                        });
+                                                });
+                                        });
+                                        // 绂佹寮圭獥鍑虹幇婊氬姩鏉�
+                                        $(layero).children('.layui-layer-content').css('overflow', 'visible');
+                                    }
+                                    , btn: ['纭畾', '鍙栨秷']
+                                    , yes: function (index, layero) {
+                                        layero.contents().find("#LAY-app-PuhuoShoukuan-createForm-submit").click();
+                                    }
+                                });
+                            } else {
+                                layer.msg(e.msg);
+                            }
+                        });
+			    }
+                //鎵ц缂栬緫鎿嶄綔
+                function doEdit(obj){
+                    coreHelper.Post("Api/PuhuoShoukuan/GetEdit", {id:obj.data.id}, function (e) {
+                        if (e.code === 0) {
+                            admin.popup({
+                                shadeClose: false,
+                                title: '缂栬緫鏁版嵁',
+                                area: ['1200px', '90%'],
+                                id: 'LAY-popup-PuhuoShoukuan-edit',
+                                success: function (layero, index) {
+                                    view(this.id).render('base/PuhuoShoukuan/edit', { data: e.data }).done(function () {
+                                        //鐩戝惉鎻愪氦
+                                        form.on('submit(LAY-app-PuhuoShoukuan-editForm-submit)',
+                                            function(data) {
+                                                var field = data.field; //鑾峰彇鎻愪氦鐨勫瓧娈�
+                                                
+                                                field.isdelete = field.isdelete == 'on';
+
+                                                if (debug) { console.log(field); } //寮�鍚皟璇曡繑鍥炴暟鎹�
+                                                //鎻愪氦 Ajax 鎴愬姛鍚庯紝鍏抽棴褰撳墠寮瑰眰骞堕噸杞借〃鏍�
+                                                coreHelper.Post("Api/PuhuoShoukuan/DoEdit", field, function (e) {
+                                                        console.log(e)
+                                                        if (e.code === 0) {
+                                                            layui.table.reloadData('LAY-app-PuhuoShoukuan-tableBox'); //閲嶈浇琛ㄦ牸
+                                                            layer.close(index); //鍐嶆墽琛屽叧闂�
+                                                            layer.msg(e.msg);
+                                                        } else {
+                                                            layer.msg(e.msg);
+                                                        }
+                                                    });
+                                            });
+                                    })
+                                    // 绂佹寮圭獥鍑虹幇婊氬姩鏉�
+                                    $(layero).children('.layui-layer-content').css('overflow', 'visible');
+                                }
+                                 , btn: ['纭畾', '鍙栨秷']
+                                , yes: function (index, layero) {
+                                     layero.contents().find("#LAY-app-PuhuoShoukuan-editForm-submit").click();
+                                }
+                            });
+                        } else {
+                            layer.msg(e.msg);
+                        }
+                    });
+			    }
+                //鎵ц棰勮鎿嶄綔
+                function doDetails(obj) {
+                    coreHelper.Post("Api/PuhuoShoukuan/GetDetails", { id: obj.data.id }, function (e) {
+                        if (e.code === 0) {
+                            admin.popup({
+                                shadeClose: false,
+                                title: '鏌ョ湅璇︽儏',
+                                area: ['1200px', '90%'],
+                                id: 'LAY-popup-PuhuoShoukuan-details',
+                                success: function (layero, index) {
+                                    view(this.id).render('base/PuhuoShoukuan/details', { data: e.data }).done(function () {
+                                        form.render();
+                                    });
+                                    // 绂佹寮圭獥鍑虹幇婊氬姩鏉�
+                                    $(layero).children('.layui-layer-content').css('overflow', 'visible');
+                                }
+                            });
+                        } else {
+                            layer.msg(e.msg);
+                        }
+                    });
+                }
+                //鎵ц鍗曚釜鍒犻櫎
+                function doDelete(obj){
+                    coreHelper.Post("Api/PuhuoShoukuan/DoDelete", { id: obj.data.id }, function (e) {
+                            if (debug) { console.log(e); } //寮�鍚皟璇曡繑鍥炴暟鎹�
+                            table.reloadData('LAY-app-PuhuoShoukuan-tableBox');
+                            layer.msg(e.msg);
+                        });
+                }
+
+                // 鐩戝惉鎻愪氦浜嬩欢
+                form.on('select(shengFilter)', function (data) {
+                    var city = $("#sheng").val();
+                    $.ajax({
+                        type: "GET",
+                        url: layui.setter.apiUrl + 'Api/CoreCmsPlanOrder/GetCityId?shengid=' + city,
+                        dataType: "json",
+                        global: false,
+                        data: "",
+                        success: function (data) {
+                            console.log(data.data);
+                            var quxian = $("#shi");
+                            quxian.find('option').remove();
+                            var aaa = '<option value="0">璇烽�夋嫨</option>';
+                            quxian.append(aaa);
+                            if (data.data.length > 0) {
+                                for (var i = 0; i < data.data.length; i++) {
+
+                                    var o = '<option value="' + data.data[i].id + '" >' + data.data[i].name + '</option>';
+                                    quxian.append(o);
+                                }
+                                // 浣跨敤form.render鏂规硶閲嶆柊娓叉煋select
+                                form.render('select');
+                            }
+                        },
+                        error: function () {
+
+
+                            parent.layer.msg('澶辫触', { icon: 5 });
+                        }
+                    });
+                });
+
+                // 鐩戝惉鎻愪氦浜嬩欢
+                form.on('select(cityFilter)', function (data) {
+                    var city = $("#shi").val();
+                    $.ajax({
+                        type: "GET",
+                        url: layui.setter.apiUrl + 'Api/CoreCmsPlanOrder/GetAreaId?cityid=' + city,
+                        dataType: "json",
+                        global: false,
+                        data: "",
+                        success: function (data) {
+                            console.log(data.data);
+                            var quxian = $("#quxian");
+                            quxian.find('option').remove();
+                            var aaa = '<option value="0">璇烽�夋嫨</option>';
+                            quxian.append(aaa);
+                            if (data.data.length > 0) {
+                                for (var i = 0; i < data.data.length; i++) {
+
+                                    var o = '<option value="' + data.data[i].id + '" >' + data.data[i].name + '</option>';
+                                    quxian.append(o);
+                                }
+                                // 浣跨敤form.render鏂规硶閲嶆柊娓叉煋select
+                                form.render('select');
+                            }
+                        },
+                        error: function () {
+
+
+                            parent.layer.msg('澶辫触', { icon: 5 });
+                        }
+                    });
+                });
+                //鎵ц鎵归噺鍒犻櫎
+                function doBatchDelete(checkStatus){
+                    var checkData = checkStatus.data;
+                    if (checkData.length === 0) {
+                        return layer.msg('璇烽�夋嫨瑕佸垹闄ょ殑鏁版嵁');
+                    }
+                    layer.confirm('纭畾鍒犻櫎鍚楋紵鍒犻櫎鍚庡皢鏃犳硶鎭㈠銆�',
+                        function(index) {
+                            var delidsStr = [];
+                            layui.each(checkData,
+                                function(index, item) {
+                                    delidsStr.push(item.id);
+                                });
+                            coreHelper.Post("Api/PuhuoShoukuan/DoBatchDelete", { id: delidsStr }, function (e) {
+                                    if (debug) { console.log(e); } //寮�鍚皟璇曡繑鍥炴暟鎹�
+                                    table.reloadData('LAY-app-PuhuoShoukuan-tableBox');
+                                    layer.msg(e.msg);
+                                });
+                        });
+			    }
+                //鎵ц鏌ヨ鏉′欢瀵煎嚭excel
+                function doQueryExportexcel(){
+                    layer.confirm('纭畾鏍规嵁褰撳墠鐨勬煡璇㈡潯浠跺鍑烘暟鎹悧锛�',
+                        function(index) {
+                            var field = searchwhere;
+                            coreHelper.PostForm("Api/PuhuoShoukuan/QueryExportExcel", field, function (e) {
+                                    if (debug) { console.log(e); } //寮�鍚皟璇曡繑鍥炴暟鎹�
+                                    if (e.code === 0) {
+                                        window.open(e.data);
+                                    } else {
+                                        layer.msg(e.msg);
+                                    }
+                                });
+                        });
+			    }
+                //鎵ц閫夋嫨鐩綍瀵煎嚭鏁版嵁
+                function doSelectExportExcel(checkStatus){
+                    var checkData = checkStatus.data;
+                    if (checkData.length === 0) {
+                        return layer.msg('璇烽�夋嫨鎮ㄨ瀵煎嚭鐨勬暟鎹�');
+                    }
+                    layer.confirm('纭畾瀵煎嚭閫夋嫨鐨勫唴瀹瑰悧锛�',
+                        function(index) {
+                            var delidsStr = [];
+                            layui.each(checkData,
+                                function(index, item) {
+                                    delidsStr.push(item.id);
+                                });
+                            layer.close(index);
+                            coreHelper.Post("Api/PuhuoShoukuan/SelectExportExcel", { id: delidsStr }, function (e) {
+                                    if (debug) { console.log(e); } //寮�鍚皟璇曡繑鍥炴暟鎹�
+                                    if (e.code === 0) {
+                                        window.open(e.data);
+                                    } else {
+                                        layer.msg(e.msg);
+                                    }
+                                });
+                        });
+			    }
+
+                
+                laydate.render({
+                    elem: '#searchTime-PuhuoShoukuan-createTime',
+                    type: 'datetime',
+                    range: '鍒�',
+                });
+                laydate.render({
+                    elem: '#searchTime-PuhuoShoukuan-upDataTime',
+                    type: 'datetime',
+                    range: '鍒�',
+                });
+
+                //鐩戝惉 琛ㄦ牸澶嶉�夋鎿嶄綔
+                
+                layui.form.on('switch(switch_isdelete)', function (obj) {
+                    coreHelper.Post("Api/PuhuoShoukuan/DoSetisdelete", { id: this.value, data: obj.elem.checked }, function (e) {
+                        if (debug) { console.log(e); } //寮�鍚皟璇曡繑鍥炴暟鎹�
+                        //table.reloadData('LAY-app-PuhuoShoukuan-tableBox');
+                        layer.msg(e.msg);
+                    });
+                });
+                
+
+                //閲嶈浇form
+                form.render();
+            });
+    };
+</script>
+
+<!--璁剧疆鍒犻櫎鏍囧織-->
+<script type="text/html" id="switch_isdelete">
+    <input type="checkbox" name="switch_isdelete" value="{{d.id}}" lay-skin="switch" lay-text="寮�鍚瘄鍏抽棴" lay-filter="switch_isdelete" {{ d.isdelete ? 'checked' : '' }}>
+</script>
+
diff --git a/CoreCms.Net.Web.Admin/wwwroot/views/content/stock/stocklog/index.html b/CoreCms.Net.Web.Admin/wwwroot/views/content/stock/stocklog/index.html
index 21a6262..b0167ac 100644
--- a/CoreCms.Net.Web.Admin/wwwroot/views/content/stock/stocklog/index.html
+++ b/CoreCms.Net.Web.Admin/wwwroot/views/content/stock/stocklog/index.html
@@ -112,6 +112,7 @@
                         [
                             { field: 'id', title: '搴忓垪', width: 40, sort: false },
                             { field: 'stockId', title: '鍏宠仈鍗曞彿', sort: false, width: 150 },
+                            { field: 'memo', title: '澶囨敞', sort: false, width: 250 },
                             { field: 'goodsName', title: '鍟嗗搧鍚嶇О', sort: false },
                             { field: 'spesDesc', title: '璐у搧瑙勬牸', sort: false },
                             //{ field: 'productId', title: '璐у搧搴忓垪', sort: false, width: 105 },
diff --git a/CoreCms.Net.Web.Admin/wwwroot/views/content/stock/stocks/create.html b/CoreCms.Net.Web.Admin/wwwroot/views/content/stock/stocks/create.html
index f0dfb9d..605620a 100644
--- a/CoreCms.Net.Web.Admin/wwwroot/views/content/stock/stocks/create.html
+++ b/CoreCms.Net.Web.Admin/wwwroot/views/content/stock/stocks/create.html
@@ -12,15 +12,16 @@
         <div class="layui-form-item">
             <label for="type" class="layui-form-label  layui-form-required">鎿嶄綔绫诲瀷</label>
             <div class="layui-input-block">
-                {{# layui.each(d.params.data.stockType, function(index, item){ }}
-                <input type="radio" name="type" value="{{ item.value }}" title="{{ item.description }}" lay-verify="required">
-                {{# }); }}
-                <!--<select name="type" lay-verify="required" lay-reqText="璇烽�夋嫨鍏ュ簱鍗曠被鍨�">
-                    <option value="">璇烽�夋嫨鍑哄簱鍏ュ簱绫诲瀷</option>
+                <!--{{# layui.each(d.params.data.stockType, function(index, item){ }}
+            <input type="radio" name="type" value="{{ item.value }}" title="{{ item.description }}" lay-verify="required">
+            {{# }); }}-->
+                <select name="type" lay-verify="required" lay-reqText="璇烽�夋嫨鎿嶄綔绫诲瀷" lay-filter="cityFilter">
+                    <option value="">璇烽�夋嫨鎿嶄綔绫诲瀷</option>
                     {{# layui.each(d.params.data.stockType, function(index, item){ }}
                     <option value="{{ item.value }}">{{ item.description }}</option>
                     {{# }); }}
-                </select>-->
+                    <option value="3">缁忛攢鍟嗛摵璐�</option>
+                </select>
             </div>
         </div>
         <div class="layui-form-item">
@@ -31,6 +32,18 @@
         </div>
 
 
+        <div class="layui-form-item" id="jingxiaoshang" style="display:none;">
+            <label for="distributionId" class="layui-form-label  layui-form-required">缁忛攢鍟�</label>
+            <div class="layui-input-block">
+               
+                <select name="distributionId" lay-verify="required" lay-reqText="璇烽�夋嫨缁忛攢鍟�" lay-filter="cityFilter" lay-search>
+                    {{# layui.each(d.params.data.distributions, function(index, item){ }}
+                    <option value="{{ item.id }}">{{ item.name }}</option>
+                    {{# }); }}
+                </select>
+            </div>
+        </div>
+
         <div class="layui-form-item">
             <label for="memo" class="layui-form-label  layui-form-required">閫夋嫨璐у搧</label>
             <div class="layui-input-block" style="padding: 0 0 10px 10px;" id="father">
@@ -38,7 +51,7 @@
                     <label class="layui-form-label layui-form-required">閫夋嫨璐у搧</label>
                     <div class="pro clearfix">
                         <div class="layui-input-inline layui-inline-13">
-                            <select name="item.productId[0]" id="productId" lay-verify="required">
+                            <select name="item.productId[0]" id="productId" lay-verify="required" lay-search>
                                 <option value="">鏍规嵁鍟嗗搧鍚嶇О銆佽揣鍝佺紪鍙锋悳绱�</option>
                                 {{# layui.each(d.params.data.products, function(index, item){ }}
                                 <option value="{{ item.id }}">鍟嗗搧鍚嶇О锛歿{ item.name }}{{ item.spesDesc ? '-'+item.spesDesc :''}}锛岃揣鍝佺紪鍙凤細{{ item.sn }}锛屽綋鍓嶅簱瀛橈細{{ item.stock }}</option>
@@ -54,8 +67,8 @@
                                     <i class="layui-icon">&#xe654;</i>
                                 </button>
                                 <!--<button type="button" class="layui-btn layui-btn-primary layui-btn-sm del">
-                                    <i class="layui-icon">&#xe640;</i>
-                                </button>-->
+                                <i class="layui-icon">&#xe640;</i>
+                            </button>-->
                             </div>
                         </div>
                     </div>
@@ -79,7 +92,7 @@
         <label class="layui-form-label layui-form-required">閫夋嫨璐у搧</label>
         <div class="pro clearfix">
             <div class="layui-input-inline layui-inline-13">
-                <select name="item.productId[{{ d.id }}]" id="productId" lay-verify="required">
+                <select name="item.productId[{{ d.id }}]" id="productId" lay-verify="required" lay-search>
                     <option value="">鏍规嵁鍟嗗搧鍚嶇О銆佽揣鍝佺紪鍙锋悳绱�</option>
                     {{# layui.each(paramsData, function(index, item){ }}
                     <option value="{{ item.id }}">鍟嗗搧鍚嶇О锛歿{ item.name }}{{ item.spesDesc ? '-'+item.spesDesc :''}}锛岃揣鍝佺紪鍙凤細{{ item.sn }}锛屽綋鍓嶅簱瀛橈細{{ item.stock }}</option>
@@ -156,6 +169,20 @@
                     form.render();
                 }
 
+                // 鐩戝惉鎻愪氦浜嬩欢
+                form.on('select(cityFilter)', function (data) {
+                    //console.log(data.value); // 琚�変腑鐨勫��
+                    //console.log(data.elem); // 琚�変腑鐨勫厓绱�
+                    //console.log(data.field); // 鐩稿叧琛ㄥ崟鐨勫瓧娈靛悕
+                    // 鍦ㄨ繖閲屽彲浠ユ墽琛屽叾浠栨搷浣�
+                    if (data.value == '3') {
+                        $('#jingxiaoshang').show();
+                    } else {
+                        $('#jingxiaoshang').hide();
+                    }
+                   
+                });
+
                 form.verify({
 
                     verifyid: [/^.{0,20}$/, '搴忓垪鏈�澶у彧鍏佽杈撳叆20浣嶅瓧绗�'],
@@ -165,4 +192,5 @@
                 form.render(null, 'LAY-app-CoreCmsStock-createForm');
             })
     };
+
 </script>
diff --git a/CoreCms.Net.Web.Admin/wwwroot/views/content/stock/stocks/index.html b/CoreCms.Net.Web.Admin/wwwroot/views/content/stock/stocks/index.html
index b8fc3e3..dc99936 100644
--- a/CoreCms.Net.Web.Admin/wwwroot/views/content/stock/stocks/index.html
+++ b/CoreCms.Net.Web.Admin/wwwroot/views/content/stock/stocks/index.html
@@ -209,6 +209,7 @@
                                                 model.id = field.id;
                                                 model.type = field.type;
                                                 model.memo = field.memo;
+                                                model.distributionId = field.distributionId;
                                                 field.model = model;
 
                                                 if (debug) { console.log(field); } //寮�鍚皟璇曡繑鍥炴暟鎹�
diff --git a/CoreCms.Net.Web.Admin/wwwroot/views/layout.html b/CoreCms.Net.Web.Admin/wwwroot/views/layout.html
index 4181eed..ce3c828 100644
--- a/CoreCms.Net.Web.Admin/wwwroot/views/layout.html
+++ b/CoreCms.Net.Web.Admin/wwwroot/views/layout.html
@@ -82,7 +82,7 @@
             ,url = (item.jump && typeof item.jump === 'string') ? item.jump : item.name;
         }}
           <li data-name="{{ item.name || '' }}" data-jump="{{ item.jump || '' }}" class="layui-nav-item {{ classSelected() }}">
-            <a href="javascript:;" {{ hasChildren ? '' : 'lay-href="'+ url+'"' }} lay-tips="{{ item.title }}" lay-direction="2">
+            <a style="padding-top:0px;padding-bottom:0px;" href="javascript:;" {{ hasChildren ? '' : 'lay-href="'+ url+'"' }} lay-tips="{{ item.title }}" lay-direction="2">
               <i class="layui-icon {{ item.icon }}"></i>
               <cite>{{ item.title }}</cite>
             </a>
@@ -104,7 +104,7 @@
               }}
                 <dd  data-name="{{ item2.name || '' }}"  data-jump="{{ item2.jump || '' }}" 
                 {{ classSelected2() ? ('class='+ classSelected2()) : '' }}>
-                  <a href="javascript:;" {{ hasChildren2 ? '' : 'lay-href='+ url2+' ' }}>{{ item2.title }}</a>
+                  <a style="padding-top:0px;padding-bottom:0px;"  href="javascript:;" {{ hasChildren2 ? '' : 'lay-href='+ url2+' ' }}>{{ item2.title }}</a>
                   {{# if(hasChildren2){ }}
                     <dl class="layui-nav-child">
                       {{# layui.each(item2.list, function(index3, item3){ 
@@ -116,7 +116,7 @@
                       }}
                         <dd data-name="{{ item3.name || '' }}"  data-jump="{{ item3.jump || '' }}" 
                         {{ match ? 'class="layui-this"' : '' }}>
-                          <a href="javascript:;" lay-href="{{ url3 }}" {{ item3.iframe ? 'lay-iframe="true"' : '' }}>{{ item3.title }}</a>
+                          <a style="padding-top:0px;padding-bottom:0px;"  href="javascript:;" lay-href="{{ url3 }}" {{ item3.iframe ? 'lay-iframe="true"' : '' }}>{{ item3.title }}</a>
                         </dd>
                       {{# }); }}
                     </dl>

--
Gitblit v1.9.1