From 7ca9651f81d7b84f054194d3d46fdbd1d9c8b922 Mon Sep 17 00:00:00 2001
From: dengjunjie <dengjunjie@hnkhzn.com>
Date: 星期三, 09 七月 2025 22:55:27 +0800
Subject: [PATCH] 增加质检出入库逻辑

---
 项目代码/WMS/WIDESEA_WMSServer/WIDESEA_Core/Seed/FrameSeed.cs |  582 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
 1 files changed, 582 insertions(+), 0 deletions(-)

diff --git "a/\351\241\271\347\233\256\344\273\243\347\240\201/WMS/WIDESEA_WMSServer/WIDESEA_Core/Seed/FrameSeed.cs" "b/\351\241\271\347\233\256\344\273\243\347\240\201/WMS/WIDESEA_WMSServer/WIDESEA_Core/Seed/FrameSeed.cs"
new file mode 100644
index 0000000..4711bda
--- /dev/null
+++ "b/\351\241\271\347\233\256\344\273\243\347\240\201/WMS/WIDESEA_WMSServer/WIDESEA_Core/Seed/FrameSeed.cs"
@@ -0,0 +1,582 @@
+锘縰sing SqlSugar;
+using System;
+using System.Collections.Generic;
+using System.Linq;
+using System.Text;
+using System.Threading.Tasks;
+
+namespace WIDESEA_Core.Seed
+{
+    public class FrameSeed
+    {
+
+        /// <summary>
+        /// 鐢熸垚Controller灞�
+        /// </summary>
+        /// <param name="sqlSugarClient">sqlsugar瀹炰緥</param>
+        /// <param name="ConnId">鏁版嵁搴撻摼鎺D</param>
+        /// <param name="tableNames">鏁版嵁搴撹〃鍚嶆暟缁勶紝榛樿绌猴紝鐢熸垚鎵�鏈夎〃</param>
+        /// <param name="isMuti"></param>
+        /// <returns></returns>
+        public static bool CreateControllers(SqlSugarScope sqlSugarClient, string ConnId = null, bool isMuti = false, string[] tableNames = null)
+        {
+            Create_Controller_ClassFileByDBTalbe(sqlSugarClient, ConnId, $@"C:\my-file\Blog.Core.Api.Controllers", "Blog.Core.Api.Controllers", tableNames, "", isMuti);
+            return true;
+        }
+
+        /// <summary>
+        /// 鐢熸垚Model灞�
+        /// </summary>
+        /// <param name="sqlSugarClient">sqlsugar瀹炰緥</param>
+        /// <param name="ConnId">鏁版嵁搴撻摼鎺D</param>
+        /// <param name="tableNames">鏁版嵁搴撹〃鍚嶆暟缁勶紝榛樿绌猴紝鐢熸垚鎵�鏈夎〃</param>
+        /// <param name="isMuti"></param>
+        /// <returns></returns>
+        public static bool CreateModels(SqlSugarScope sqlSugarClient, string ConnId, bool isMuti = false, string[] tableNames = null)
+        {
+            Create_Model_ClassFileByDBTalbe(sqlSugarClient, ConnId, $@"C:\my-file\Blog.Core.Model", "Blog.Core.Model.Models", tableNames, "", isMuti);
+            return true;
+        }
+
+        /// <summary>
+        /// 鐢熸垚IRepository灞�
+        /// </summary>
+        /// <param name="sqlSugarClient">sqlsugar瀹炰緥</param>
+        /// <param name="ConnId">鏁版嵁搴撻摼鎺D</param>
+        /// <param name="isMuti"></param>
+        /// <param name="tableNames">鏁版嵁搴撹〃鍚嶆暟缁勶紝榛樿绌猴紝鐢熸垚鎵�鏈夎〃</param>
+        /// <returns></returns>
+        public static bool CreateIRepositorys(SqlSugarScope sqlSugarClient, string ConnId, bool isMuti = false, string[] tableNames = null)
+        {
+            Create_IRepository_ClassFileByDBTalbe(sqlSugarClient, ConnId, $@"C:\my-file\Blog.Core.IRepository", "Blog.Core.IRepository", tableNames, "", isMuti);
+            return true;
+        }
+
+
+
+        /// <summary>
+        /// 鐢熸垚 IService 灞�
+        /// </summary>
+        /// <param name="sqlSugarClient">sqlsugar瀹炰緥</param>
+        /// <param name="ConnId">鏁版嵁搴撻摼鎺D</param>
+        /// <param name="isMuti"></param>
+        /// <param name="tableNames">鏁版嵁搴撹〃鍚嶆暟缁勶紝榛樿绌猴紝鐢熸垚鎵�鏈夎〃</param>
+        /// <returns></returns>
+        public static bool CreateIServices(SqlSugarScope sqlSugarClient, string ConnId, bool isMuti = false, string[] tableNames = null)
+        {
+            Create_IServices_ClassFileByDBTalbe(sqlSugarClient, ConnId, $@"C:\my-file\Blog.Core.IServices", "Blog.Core.IServices", tableNames, "", isMuti);
+            return true;
+        }
+
+
+
+        /// <summary>
+        /// 鐢熸垚 Repository 灞�
+        /// </summary>
+        /// <param name="sqlSugarClient">sqlsugar瀹炰緥</param>
+        /// <param name="ConnId">鏁版嵁搴撻摼鎺D</param>
+        /// <param name="isMuti"></param>
+        /// <param name="tableNames">鏁版嵁搴撹〃鍚嶆暟缁勶紝榛樿绌猴紝鐢熸垚鎵�鏈夎〃</param>
+        /// <returns></returns>
+        public static bool CreateRepository(SqlSugarScope sqlSugarClient, string ConnId, bool isMuti = false, string[] tableNames = null)
+        {
+            Create_Repository_ClassFileByDBTalbe(sqlSugarClient, ConnId, $@"C:\my-file\Blog.Core.Repository", "Blog.Core.Repository", tableNames, "", isMuti);
+            return true;
+        }
+
+
+
+        /// <summary>
+        /// 鐢熸垚 Service 灞�
+        /// </summary>
+        /// <param name="sqlSugarClient">sqlsugar瀹炰緥</param>
+        /// <param name="ConnId">鏁版嵁搴撻摼鎺D</param>
+        /// <param name="isMuti"></param>
+        /// <param name="tableNames">鏁版嵁搴撹〃鍚嶆暟缁勶紝榛樿绌猴紝鐢熸垚鎵�鏈夎〃</param>
+        /// <returns></returns>
+        public static bool CreateServices(SqlSugarScope sqlSugarClient, string ConnId, bool isMuti = false, string[] tableNames = null)
+        {
+            Create_Services_ClassFileByDBTalbe(sqlSugarClient, ConnId, $@"C:\my-file\Blog.Core.Services", "Blog.Core.Services", tableNames, "", isMuti);
+            return true;
+        }
+
+
+        #region 鏍规嵁鏁版嵁搴撹〃鐢熶骇Controller灞�
+
+        /// <summary>
+        /// 鍔熻兘鎻忚堪:鏍规嵁鏁版嵁搴撹〃鐢熶骇Controller灞�
+        /// 浣溿��銆�鑰�:Blog.Core
+        /// </summary>
+        /// <param name="sqlSugarClient"></param>
+        /// <param name="ConnId">鏁版嵁搴撻摼鎺D</param>
+        /// <param name="strPath">瀹炰綋绫诲瓨鏀捐矾寰�</param>
+        /// <param name="strNameSpace">鍛藉悕绌洪棿</param>
+        /// <param name="lstTableNames">鐢熶骇鎸囧畾鐨勮〃</param>
+        /// <param name="strInterface">瀹炵幇鎺ュ彛</param>
+        /// <param name="isMuti"></param>
+        /// <param name="blnSerializable">鏄惁搴忓垪鍖�</param>
+        private static void Create_Controller_ClassFileByDBTalbe(
+          SqlSugarScope sqlSugarClient,
+          string ConnId,
+          string strPath,
+          string strNameSpace,
+          string[] lstTableNames,
+          string strInterface,
+          bool isMuti = false,
+          bool blnSerializable = false)
+        {
+            var IDbFirst = sqlSugarClient.DbFirst;
+            if (lstTableNames != null && lstTableNames.Length > 0)
+            {
+                IDbFirst = IDbFirst.Where(lstTableNames);
+            }
+            var ls = IDbFirst.IsCreateDefaultValue().IsCreateAttribute()
+
+                 .SettingClassTemplate(p => p =
+@"using Blog.Core.IServices;
+using Blog.Core.Model;
+using Blog.Core.Model.Models;
+using Microsoft.AspNetCore.Authorization;
+using Microsoft.AspNetCore.Mvc;
+using System;
+using System.Linq.Expressions;
+using System.Threading.Tasks;
+
+namespace " + strNameSpace + @"
+{
+	[Route(""api/[controller]/[action]"")]
+	[ApiController]
+    [Authorize(Permissions.Name)]
+     public class {ClassName}Controller : ControllerBase
+    {
+            /// <summary>
+            /// 鏈嶅姟鍣ㄦ帴鍙o紝鍥犱负鏄ā鏉跨敓鎴愶紝鎵�浠ラ瀛楁瘝鏄ぇ鍐欑殑锛岃嚜宸卞彲浠ラ噸鏋勪笅
+            /// </summary>
+            private readonly I{ClassName}Services _{ClassName}Services;
+    
+            public {ClassName}Controller(I{ClassName}Services {ClassName}Services)
+            {
+                _{ClassName}Services = {ClassName}Services;
+            }
+    
+            [HttpGet]
+            public async Task<MessageModel<PageModel<{ClassName}>>> Get(int page = 1, string key = """",int intPageSize = 50)
+            {
+                if (string.IsNullOrEmpty(key) || string.IsNullOrWhiteSpace(key))
+                {
+                    key = """";
+                }
+    
+                Expression<Func<{ClassName}, bool>> whereExpression = a => true;
+    
+                return new MessageModel<PageModel<{ClassName}>>()
+                {
+                    msg = ""鑾峰彇鎴愬姛"",
+                    success = true,
+                    response = await _{ClassName}Services.QueryPage(whereExpression, page, intPageSize)
+                };
+
+            }
+
+            [HttpGet(""{id}"")]
+            public async Task<MessageModel<{ClassName}>> Get(string id)
+            {
+                return new MessageModel<{ClassName}>()
+                {
+                    msg = ""鑾峰彇鎴愬姛"",
+                    success = true,
+                    response = await _{ClassName}Services.QueryById(id)
+                };
+            }
+
+            [HttpPost]
+            public async Task<MessageModel<string>> Post([FromBody] {ClassName} request)
+            {
+                var data = new MessageModel<string>();
+
+                var id = await _{ClassName}Services.Add(request);
+                data.success = id > 0;
+                if (data.success)
+                {
+                    data.response = id.ObjToString();
+                    data.msg = ""娣诲姞鎴愬姛"";
+                } 
+
+                return data;
+            }
+
+            [HttpPut]
+            public async Task<MessageModel<string>> Put([FromBody] {ClassName} request)
+            {
+                var data = new MessageModel<string>();
+                data.success = await _{ClassName}Services.Update(request);
+                if (data.success)
+                {
+                    data.msg = ""鏇存柊鎴愬姛"";
+                    data.response = request?.id.ObjToString();
+                }
+
+                return data;
+            }
+
+            [HttpDelete]
+            public async Task<MessageModel<string>> Delete(int id)
+            {
+                var data = new MessageModel<string>();
+                var model = await _{ClassName}Services.QueryById(id);
+                model.IsDeleted = true;
+                data.success = await _departmentServices.Update(model);
+                if (data.success)
+                {
+                    data.msg = ""鍒犻櫎鎴愬姛"";
+                    data.response = model?.Id.ObjToString();
+                }
+
+                return data;
+            }
+    }
+}")
+
+                  .ToClassStringList(strNameSpace);
+
+            Dictionary<string, string> newdic = new Dictionary<string, string>();
+            //寰幆澶勭悊 棣栧瓧姣嶅皬鍐� 骞舵彃鍏ユ柊鐨� Dictionary
+            foreach (KeyValuePair<string, string> item in ls)
+            {
+                string newkey = "_" + item.Key.First().ToString().ToLower() + item.Key.Substring(1);
+                string newvalue = item.Value.Replace("_" + item.Key, newkey);
+                newdic.Add(item.Key, newvalue);
+            }
+            CreateFilesByClassStringList(newdic, strPath, "{0}Controller");
+        }
+        #endregion
+
+
+        #region 鏍规嵁鏁版嵁搴撹〃鐢熶骇Model灞�
+
+        /// <summary>
+        /// 鍔熻兘鎻忚堪:鏍规嵁鏁版嵁搴撹〃鐢熶骇Model灞�
+        /// 浣溿��銆�鑰�:Blog.Core
+        /// </summary>
+        /// <param name="sqlSugarClient"></param>
+        /// <param name="ConnId">鏁版嵁搴撻摼鎺D</param>
+        /// <param name="strPath">瀹炰綋绫诲瓨鏀捐矾寰�</param>
+        /// <param name="strNameSpace">鍛藉悕绌洪棿</param>
+        /// <param name="lstTableNames">鐢熶骇鎸囧畾鐨勮〃</param>
+        /// <param name="strInterface">瀹炵幇鎺ュ彛</param>
+        /// <param name="isMuti"></param>
+        /// <param name="blnSerializable">鏄惁搴忓垪鍖�</param>
+        private static void Create_Model_ClassFileByDBTalbe(
+          SqlSugarScope sqlSugarClient,
+          string ConnId,
+          string strPath,
+          string strNameSpace,
+          string[] lstTableNames,
+          string strInterface,
+          bool isMuti = false,
+          bool blnSerializable = false)
+        {
+            //澶氬簱鏂囦欢鍒嗙
+            if (isMuti)
+            {
+                strPath = strPath + @"\Models\" + ConnId;
+                strNameSpace = strNameSpace + "." + ConnId;
+            }
+
+            var IDbFirst = sqlSugarClient.DbFirst;
+            if (lstTableNames != null && lstTableNames.Length > 0)
+            {
+                IDbFirst = IDbFirst.Where(lstTableNames);
+            }
+            var ls = IDbFirst.IsCreateDefaultValue().IsCreateAttribute()
+
+                  .SettingClassTemplate(p => p =
+@"{using}
+
+namespace " + strNameSpace + @"
+{
+{ClassDescription}
+    [SugarTable( ""{ClassName}"", """ + ConnId + @""")]" + (blnSerializable ? "\n    [Serializable]" : "") + @"
+    public class {ClassName}" + (string.IsNullOrEmpty(strInterface) ? "" : (" : " + strInterface)) + @"
+    {
+           public {ClassName}()
+           {
+           }
+{PropertyName}
+    }
+}")
+                  //.SettingPropertyDescriptionTemplate(p => p = string.Empty)
+                  .SettingPropertyTemplate(p => p =
+@"{SugarColumn}
+           public {PropertyType} {PropertyName} { get; set; }")
+
+                   //.SettingConstructorTemplate(p => p = "              this._{PropertyName} ={DefaultValue};")
+
+                   .ToClassStringList(strNameSpace);
+            CreateFilesByClassStringList(ls, strPath, "{0}");
+        }
+        #endregion
+
+
+        #region 鏍规嵁鏁版嵁搴撹〃鐢熶骇IRepository灞�
+
+        /// <summary>
+        /// 鍔熻兘鎻忚堪:鏍规嵁鏁版嵁搴撹〃鐢熶骇IRepository灞�
+        /// 浣溿��銆�鑰�:Blog.Core
+        /// </summary>
+        /// <param name="sqlSugarClient"></param>
+        /// <param name="ConnId">鏁版嵁搴撻摼鎺D</param>
+        /// <param name="strPath">瀹炰綋绫诲瓨鏀捐矾寰�</param>
+        /// <param name="strNameSpace">鍛藉悕绌洪棿</param>
+        /// <param name="lstTableNames">鐢熶骇鎸囧畾鐨勮〃</param>
+        /// <param name="strInterface">瀹炵幇鎺ュ彛</param>
+        /// <param name="isMuti"></param>
+        private static void Create_IRepository_ClassFileByDBTalbe(
+          SqlSugarScope sqlSugarClient,
+          string ConnId,
+          string strPath,
+          string strNameSpace,
+          string[] lstTableNames,
+          string strInterface,
+          bool isMuti = false
+            )
+        {
+            //澶氬簱鏂囦欢鍒嗙
+            if (isMuti)
+            {
+                strPath = strPath + @"\" + ConnId;
+                strNameSpace = strNameSpace + "." + ConnId;
+            }
+
+            var IDbFirst = sqlSugarClient.DbFirst;
+            if (lstTableNames != null && lstTableNames.Length > 0)
+            {
+                IDbFirst = IDbFirst.Where(lstTableNames);
+            }
+            var ls = IDbFirst.IsCreateDefaultValue().IsCreateAttribute()
+
+                 .SettingClassTemplate(p => p =
+@"using Blog.Core.IRepository.Base;
+using Blog.Core.Model.Models" + (isMuti ? "." + ConnId + "" : "") + @";
+
+namespace " + strNameSpace + @"
+{
+	/// <summary>
+	/// I{ClassName}Repository
+	/// </summary>	
+    public interface I{ClassName}Repository : IBaseRepository<{ClassName}>" + (string.IsNullOrEmpty(strInterface) ? "" : (" , " + strInterface)) + @"
+    {
+    }
+}")
+
+                  .ToClassStringList(strNameSpace);
+            CreateFilesByClassStringList(ls, strPath, "I{0}Repository");
+        }
+        #endregion
+
+
+        #region 鏍规嵁鏁版嵁搴撹〃鐢熶骇IServices灞�
+
+        /// <summary>
+        /// 鍔熻兘鎻忚堪:鏍规嵁鏁版嵁搴撹〃鐢熶骇IServices灞�
+        /// 浣溿��銆�鑰�:Blog.Core
+        /// </summary>
+        /// <param name="sqlSugarClient"></param>
+        /// <param name="ConnId">鏁版嵁搴撻摼鎺D</param>
+        /// <param name="strPath">瀹炰綋绫诲瓨鏀捐矾寰�</param>
+        /// <param name="strNameSpace">鍛藉悕绌洪棿</param>
+        /// <param name="lstTableNames">鐢熶骇鎸囧畾鐨勮〃</param>
+        /// <param name="strInterface">瀹炵幇鎺ュ彛</param>
+        /// <param name="isMuti"></param>
+        private static void Create_IServices_ClassFileByDBTalbe(
+          SqlSugarScope sqlSugarClient,
+          string ConnId,
+          string strPath,
+          string strNameSpace,
+          string[] lstTableNames,
+          string strInterface,
+          bool isMuti = false)
+        {
+            //澶氬簱鏂囦欢鍒嗙
+            if (isMuti)
+            {
+                strPath = strPath + @"\" + ConnId;
+                strNameSpace = strNameSpace + "." + ConnId;
+            }
+
+            var IDbFirst = sqlSugarClient.DbFirst;
+            if (lstTableNames != null && lstTableNames.Length > 0)
+            {
+                IDbFirst = IDbFirst.Where(lstTableNames);
+            }
+            var ls = IDbFirst.IsCreateDefaultValue().IsCreateAttribute()
+
+                  .SettingClassTemplate(p => p =
+@"using Blog.Core.IServices.BASE;
+using Blog.Core.Model.Models" + (isMuti ? "." + ConnId + "" : "") + @";
+
+namespace " + strNameSpace + @"
+{	
+	/// <summary>
+	/// I{ClassName}Services
+	/// </summary>	
+    public interface I{ClassName}Services :IBaseServices<{ClassName}>" + (string.IsNullOrEmpty(strInterface) ? "" : (" , " + strInterface)) + @"
+	{
+    }
+}")
+
+                   .ToClassStringList(strNameSpace);
+            CreateFilesByClassStringList(ls, strPath, "I{0}Services");
+        }
+        #endregion
+
+
+
+        #region 鏍规嵁鏁版嵁搴撹〃鐢熶骇 Repository 灞�
+
+        /// <summary>
+        /// 鍔熻兘鎻忚堪:鏍规嵁鏁版嵁搴撹〃鐢熶骇 Repository 灞�
+        /// 浣溿��銆�鑰�:Blog.Core
+        /// </summary>
+        /// <param name="sqlSugarClient"></param>
+        /// <param name="ConnId">鏁版嵁搴撻摼鎺D</param>
+        /// <param name="strPath">瀹炰綋绫诲瓨鏀捐矾寰�</param>
+        /// <param name="strNameSpace">鍛藉悕绌洪棿</param>
+        /// <param name="lstTableNames">鐢熶骇鎸囧畾鐨勮〃</param>
+        /// <param name="strInterface">瀹炵幇鎺ュ彛</param>
+        /// <param name="isMuti"></param>
+        private static void Create_Repository_ClassFileByDBTalbe(
+          SqlSugarScope sqlSugarClient,
+          string ConnId,
+          string strPath,
+          string strNameSpace,
+          string[] lstTableNames,
+          string strInterface,
+          bool isMuti = false)
+        {
+            //澶氬簱鏂囦欢鍒嗙
+            if (isMuti)
+            {
+                strPath = strPath + @"\" + ConnId;
+                strNameSpace = strNameSpace + "." + ConnId;
+            }
+
+            var IDbFirst = sqlSugarClient.DbFirst;
+            if (lstTableNames != null && lstTableNames.Length > 0)
+            {
+                IDbFirst = IDbFirst.Where(lstTableNames);
+            }
+            var ls = IDbFirst.IsCreateDefaultValue().IsCreateAttribute()
+
+                  .SettingClassTemplate(p => p =
+@"using Blog.Core.IRepository" + (isMuti ? "." + ConnId + "" : "") + @";
+using Blog.Core.IRepository.UnitOfWork;
+using Blog.Core.Model.Models" + (isMuti ? "." + ConnId + "" : "") + @";
+using Blog.Core.Repository.Base;
+
+namespace " + strNameSpace + @"
+{
+	/// <summary>
+	/// {ClassName}Repository
+	/// </summary>
+    public class {ClassName}Repository : BaseRepository<{ClassName}>, I{ClassName}Repository" + (string.IsNullOrEmpty(strInterface) ? "" : (" , " + strInterface)) + @"
+    {
+        public {ClassName}Repository(IUnitOfWork unitOfWork) : base(unitOfWork)
+        {
+        }
+    }
+}")
+                  .ToClassStringList(strNameSpace);
+
+
+            CreateFilesByClassStringList(ls, strPath, "{0}Repository");
+        }
+        #endregion
+
+
+        #region 鏍规嵁鏁版嵁搴撹〃鐢熶骇 Services 灞�
+
+        /// <summary>
+        /// 鍔熻兘鎻忚堪:鏍规嵁鏁版嵁搴撹〃鐢熶骇 Services 灞�
+        /// 浣溿��銆�鑰�:Blog.Core
+        /// </summary>
+        /// <param name="sqlSugarClient"></param>
+        /// <param name="ConnId">鏁版嵁搴撻摼鎺D</param>
+        /// <param name="strPath">瀹炰綋绫诲瓨鏀捐矾寰�</param>
+        /// <param name="strNameSpace">鍛藉悕绌洪棿</param>
+        /// <param name="lstTableNames">鐢熶骇鎸囧畾鐨勮〃</param>
+        /// <param name="strInterface">瀹炵幇鎺ュ彛</param>
+        /// <param name="isMuti"></param>
+        private static void Create_Services_ClassFileByDBTalbe(
+          SqlSugarScope sqlSugarClient,
+          string ConnId,
+          string strPath,
+          string strNameSpace,
+          string[] lstTableNames,
+          string strInterface,
+          bool isMuti = false)
+        {
+            //澶氬簱鏂囦欢鍒嗙
+            if (isMuti)
+            {
+                strPath = strPath + @"\" + ConnId;
+                strNameSpace = strNameSpace + "." + ConnId;
+            }
+
+            var IDbFirst = sqlSugarClient.DbFirst;
+            if (lstTableNames != null && lstTableNames.Length > 0)
+            {
+                IDbFirst = IDbFirst.Where(lstTableNames);
+            }
+            var ls = IDbFirst.IsCreateDefaultValue().IsCreateAttribute()
+
+                  .SettingClassTemplate(p => p =
+@"
+using Blog.Core.IServices" + (isMuti ? "." + ConnId + "" : "") + @";
+using Blog.Core.Model.Models" + (isMuti ? "." + ConnId + "" : "") + @";
+using Blog.Core.Services.BASE;
+using Blog.Core.IRepository.Base;
+
+namespace " + strNameSpace + @"
+{
+    public class {ClassName}Services : BaseServices<{ClassName}>, I{ClassName}Services" + (string.IsNullOrEmpty(strInterface) ? "" : (" , " + strInterface)) + @"
+    {
+        private readonly IBaseRepository<{ClassName}> _dal;
+        public {ClassName}Services(IBaseRepository<{ClassName}> dal)
+        {
+            this._dal = dal;
+            base.BaseDal = dal;
+        }
+    }
+}")
+                  .ToClassStringList(strNameSpace);
+
+            CreateFilesByClassStringList(ls, strPath, "{0}Services");
+        }
+        #endregion
+
+
+        #region 鏍规嵁妯℃澘鍐呭鎵归噺鐢熸垚鏂囦欢
+        /// <summary>
+        /// 鏍规嵁妯℃澘鍐呭鎵归噺鐢熸垚鏂囦欢
+        /// </summary>
+        /// <param name="ls">绫绘枃浠跺瓧绗︿覆list</param>
+        /// <param name="strPath">鐢熸垚璺緞</param>
+        /// <param name="fileNameTp">鏂囦欢鍚嶆牸寮忔ā鏉�</param>
+        private static void CreateFilesByClassStringList(Dictionary<string, string> ls, string strPath, string fileNameTp)
+        {
+
+            foreach (var item in ls)
+            {
+                var fileName = $"{string.Format(fileNameTp, item.Key)}.cs";
+                var fileFullPath = Path.Combine(strPath, fileName);
+                if (!Directory.Exists(strPath))
+                {
+                    Directory.CreateDirectory(strPath);
+                }
+                File.WriteAllText(fileFullPath, item.Value, Encoding.UTF8);
+            }
+        }
+        #endregion
+    }
+}

--
Gitblit v1.9.3