From 051b5c867aa016250207b0c4633b8c29e36eb51d Mon Sep 17 00:00:00 2001
From: schangxiang@126.com <schangxiang@126.com>
Date: 周日, 11 5月 2025 12:20:03 +0800
Subject: [PATCH] 222

---
 Weben_CMS专用代码生成器/Code/Utility/StructStrHelper.cs |  197 ++++++++++++++++++++++++++++++++++++++++++++-----
 1 files changed, 176 insertions(+), 21 deletions(-)

diff --git "a/Weben_CMS\344\270\223\347\224\250\344\273\243\347\240\201\347\224\237\346\210\220\345\231\250/Code/Utility/StructStrHelper.cs" "b/Weben_CMS\344\270\223\347\224\250\344\273\243\347\240\201\347\224\237\346\210\220\345\231\250/Code/Utility/StructStrHelper.cs"
index 903e112..ca814b3 100644
--- "a/Weben_CMS\344\270\223\347\224\250\344\273\243\347\240\201\347\224\237\346\210\220\345\231\250/Code/Utility/StructStrHelper.cs"
+++ "b/Weben_CMS\344\270\223\347\224\250\344\273\243\347\240\201\347\224\237\346\210\220\345\231\250/Code/Utility/StructStrHelper.cs"
@@ -237,6 +237,7 @@
                 attrStr += "        /// " + columnModel.Description + "\n";
                 attrStr += "        /// </summary>\n";
 
+                var findEnumObj = param.EnumList.Where(x => x.EnumAttrName == attr).FirstOrDefault();
                 DataTypeEnum myDataType = (DataTypeEnum)Enum.Parse(typeof(DataTypeEnum), "dt_" + columnModel.DataType);
                 switch (myDataType)
                 {
@@ -259,12 +260,21 @@
                     case DataTypeEnum.dt_tinyint:
                     case DataTypeEnum.dt_bit:
                         if (columnModel.IsNullable) { str_NullFlag = "? "; }
-                        attrStr += "        public bool" + str_NullFlag + attr + " { get; set; }\n";
-                        attrStr += "\n";//鏈�鍚庢槸鍔犱竴涓┖鏍�
+                        if (findEnumObj != null)
+                        {
+                            attrStr += $"        public {findEnumObj.EnumType}" + str_NullFlag + attr + " { get; set; }\n";
+                            attrStr += "\n";//鏈�鍚庢槸鍔犱竴涓┖鏍�
+                        }
+                        else
+                        {
+                            attrStr += "        public bool" + str_NullFlag + attr + " { get; set; }\n";
+                            attrStr += "\n";//鏈�鍚庢槸鍔犱竴涓┖鏍�
+                        }
+
                         break;
                     case DataTypeEnum.dt_int:
                         if (columnModel.IsNullable) { str_NullFlag = "? "; }
-                        var findEnumObj = param.EnumList.Where(x => x.EnumAttrName == attr).FirstOrDefault();
+
                         if (findEnumObj != null)
                         {
                             attrStr += $"        public {findEnumObj.EnumType}" + str_NullFlag + attr + " { get; set; }\n";
@@ -454,6 +464,7 @@
                 attrStr += "        /// " + columnModel.Description + "\n";
                 attrStr += "        /// </summary>\n";
 
+                var findEnumObj = param.EnumList.Where(x => x.EnumAttrName == attr).FirstOrDefault();
                 DataTypeEnum myDataType = (DataTypeEnum)Enum.Parse(typeof(DataTypeEnum), "dt_" + columnModel.DataType);
                 switch (myDataType)
                 {
@@ -476,12 +487,21 @@
                     case DataTypeEnum.dt_tinyint:
                     case DataTypeEnum.dt_bit:
                         if (columnModel.IsNullable) { str_NullFlag = "? "; }
-                        attrStr += "        public bool" + str_NullFlag + attr + " { get; set; }\n";
-                        attrStr += "\n";//鏈�鍚庢槸鍔犱竴涓┖鏍�
+
+                        if (findEnumObj != null)
+                        {
+                            attrStr += $"        public {findEnumObj.EnumType}" + str_NullFlag + attr + " { get; set; }\n";
+                            attrStr += "\n";//鏈�鍚庢槸鍔犱竴涓┖鏍�
+                        }
+                        else
+                        {
+                            attrStr += "        public bool" + str_NullFlag + attr + " { get; set; }\n";
+                            attrStr += "\n";//鏈�鍚庢槸鍔犱竴涓┖鏍�
+                        }
                         break;
                     case DataTypeEnum.dt_int:
                         if (columnModel.IsNullable) { str_NullFlag = "? "; }
-                        var findEnumObj = param.EnumList.Where(x => x.EnumAttrName == attr).FirstOrDefault();
+
                         if (findEnumObj != null)
                         {
                             attrStr += $"        public {findEnumObj.EnumType}" + str_NullFlag + attr + " { get; set; }\n";
@@ -511,7 +531,6 @@
                 //澧炲姞瀵规灇涓剧被鍨嬬殑鏀寔 
                 if (param.EnumList?.Count > 0)
                 {
-                    var findEnumObj = param.EnumList.Where(x => x.EnumAttrName == attr).FirstOrDefault();
                     if (findEnumObj != null)
                     {
                         attrStr += "        /// <summary>\n";
@@ -558,6 +577,7 @@
                 attrStr += "        /// </summary>\n";
                 attrStr += $"        [ExcelColumn(Name = \"{columnModel.Description}\", Width = 25)]\n";
 
+                var findEnumObj = param.EnumList.Where(x => x.EnumAttrName == attr).FirstOrDefault();
                 DataTypeEnum myDataType = (DataTypeEnum)Enum.Parse(typeof(DataTypeEnum), "dt_" + columnModel.DataType);
                 switch (myDataType)
                 {
@@ -580,12 +600,21 @@
                     case DataTypeEnum.dt_tinyint:
                     case DataTypeEnum.dt_bit:
                         if (columnModel.IsNullable) { str_NullFlag = "? "; }
-                        attrStr += "        public bool" + str_NullFlag + attr + " { get; set; }\n";
-                        attrStr += "\n";//鏈�鍚庢槸鍔犱竴涓┖鏍�
+                        if (findEnumObj != null)
+                        {
+                            attrStr += $"        public {findEnumObj.EnumType}" + str_NullFlag + attr + " { get; set; }\n";
+                            attrStr += "\n";//鏈�鍚庢槸鍔犱竴涓┖鏍�
+                        }
+                        else
+                        {
+                            attrStr += "        public bool" + str_NullFlag + attr + " { get; set; }\n";
+                            attrStr += "\n";//鏈�鍚庢槸鍔犱竴涓┖鏍�
+                        }
+
                         break;
                     case DataTypeEnum.dt_int:
                         if (columnModel.IsNullable) { str_NullFlag = "? "; }
-                        var findEnumObj = param.EnumList.Where(x => x.EnumAttrName == attr).FirstOrDefault();
+
                         if (findEnumObj != null)
                         {
                             attrStr += $"        public {findEnumObj.EnumType}" + str_NullFlag + attr + " { get; set; }\n";
@@ -620,7 +649,7 @@
         /// </summary>
         /// <param name="columnModel"></param>
         /// <returns></returns>
-        public static string GenerateAttributeForQueryModel(ColumnModel columnModel)
+        public static string GenerateAttributeForQueryModel(ColumnModel columnModel, GenerateCodeParam param)
         {
             try
             {
@@ -643,6 +672,7 @@
                 attrStr += "        /// " + columnModel.Description + "\n";
                 attrStr += "        /// </summary>\n";
 
+                var findEnumObj = param.EnumList.Where(x => x.EnumAttrName == attr).FirstOrDefault();
                 DataTypeEnum myDataType = (DataTypeEnum)Enum.Parse(typeof(DataTypeEnum), "dt_" + columnModel.DataType);
                 switch (myDataType)
                 {
@@ -663,13 +693,29 @@
                         attrStr += "\n";//鏈�鍚庢槸鍔犱竴涓┖鏍�
                         break;
                     case DataTypeEnum.dt_int:
-                        attrStr += "        public int" + str_NullFlag + emptyStr + attr + " { get; set; }\n";
-                        attrStr += "\n";//鏈�鍚庢槸鍔犱竴涓┖鏍�
+                        if (findEnumObj != null)
+                        {
+                            attrStr += $"        public {findEnumObj.EnumType}" + str_NullFlag + emptyStr + attr + " { get; set; }\n";
+                            attrStr += "\n";//鏈�鍚庢槸鍔犱竴涓┖鏍�
+                        }
+                        else
+                        {
+                            attrStr += "        public int" + str_NullFlag + emptyStr + attr + " { get; set; }\n";
+                            attrStr += "\n";//鏈�鍚庢槸鍔犱竴涓┖鏍�
+                        }
                         break;
                     case DataTypeEnum.dt_bit:
                     case DataTypeEnum.dt_tinyint:
-                        attrStr += "        public bool" + str_NullFlag + emptyStr + attr + " { get; set; }\n";
-                        attrStr += "\n";//鏈�鍚庢槸鍔犱竴涓┖鏍�
+                        if (findEnumObj != null)
+                        {
+                            attrStr += $"        public {findEnumObj.EnumType}" + str_NullFlag + emptyStr + attr + " { get; set; }\n";
+                            attrStr += "\n";//鏈�鍚庢槸鍔犱竴涓┖鏍�
+                        }
+                        else
+                        {
+                            attrStr += "        public bool" + str_NullFlag + emptyStr + attr + " { get; set; }\n";
+                            attrStr += "\n";//鏈�鍚庢槸鍔犱竴涓┖鏍�
+                        }
                         break;
                     default:
                         attrStr += "        public string" + emptyStr + attr + " { get; set; }\n";
@@ -1916,6 +1962,7 @@
                             {
                                 elment = "select";
                                 sb.Append("                   el: '" + elment + "', \n");
+                                sb.Append("                   clearable:true, \n");
                                 sb.Append("                   options: [], \n");
                                 isWriteInt = false;
                             }
@@ -1951,7 +1998,24 @@
                     {
                         case DataTypeEnum.dt_bit:
                         case DataTypeEnum.dt_tinyint:
-                            sb.Append("                 options: [{label: '鏄�',value: true}, {label: '鍚�',value: false}] \n");
+                            //澧炲姞瀵规灇涓剧被鍨嬬殑鏀寔 
+                            if (param.EnumList?.Count > 0)
+                            {
+                                var findEnumObj = param.EnumList.Where(x => x.EnumAttrName == columnModel.ColumnName).FirstOrDefault();
+                                if (findEnumObj != null)
+                                {
+                                    sb.Append("                   clearable:true, \n");
+                                    sb.Append("                   option: [], \n");
+                                }
+                                else
+                                {
+                                    sb.Append("                 options: [{label: '鏄�',value: true}, {label: '鍚�',value: false}] \n");
+                                }
+                            }
+                            else
+                            {
+                                sb.Append("                 options: [{label: '鏄�',value: true}, {label: '鍚�',value: false}] \n");
+                            }
                             break;
                         default:
                             break;
@@ -2067,6 +2131,7 @@
                             {
                                 elment = "select";
                                 sb.Append("                   el: '" + elment + "', \n");
+                                sb.Append("                   clearable:true, \n");
                                 sb.Append("                   option: [], \n");
                                 isWriteInt = false;
                             }
@@ -2100,7 +2165,25 @@
                     {
                         case DataTypeEnum.dt_bit:
                         case DataTypeEnum.dt_tinyint:
-                            sb.Append("                 options: [{label: '鏄�',value: true}, {label: '鍚�',value: false}] \n");
+                            //澧炲姞瀵规灇涓剧被鍨嬬殑鏀寔 
+                            if (param.EnumList?.Count > 0)
+                            {
+                                var findEnumObj = param.EnumList.Where(x => x.EnumAttrName == columnModel.ColumnName).FirstOrDefault();
+                                if (findEnumObj != null)
+                                {
+                                    sb.Append("                   clearable:true, \n");
+                                    sb.Append("                   option: [], \n");
+                                }
+                                else
+                                {
+                                    sb.Append("                 options: [{label: '鏄�',value: true}, {label: '鍚�',value: false}] \n");
+                                }
+                            }
+                            else
+                            {
+                                sb.Append("                 options: [{label: '鏄�',value: true}, {label: '鍚�',value: false}] \n");
+                            }
+                            
                             break;
                         default:
                             break;
@@ -2214,8 +2297,7 @@
                 /*
                   materialCode: formData.value.materialCode,
                  */
-                List<ColumnModel> newList = ListHelper.RemoveForPageAddFormAttributes(columnModelList);
-                foreach (var columnModel in newList)
+                foreach (var columnModel in columnModelList)
                 {
                     //棣栧瓧姣嶅皬鍐�
                     var low_prop_ColumnName = CommonHelper.FirstLowercase(columnModel.ColumnName);
@@ -2261,6 +2343,80 @@
             }
         }
 
+
+        public static string Get_LikeQueryAttrs(List<ColumnModel> columnModelList, GenerateCodeParam param)
+        {
+            StringBuilder sb = new StringBuilder();
+            try
+            {
+                /*
+                  [妯$硦鏌ヨ瀛楁]:'TaskCode','MaterialMode', 'ProductCode'
+                 */
+                List<ColumnModel> newList = ListHelper.RemoveForPageTableListQueryAttributes(columnModelList);
+                foreach (var columnModel in newList)
+                {
+                    //鑾峰彇鏁版嵁绫诲瀷
+                    DataTypeEnum enumDT = (DataTypeEnum)Enum.Parse(typeof(DataTypeEnum), "dt_" + columnModel.DataType.ToString());
+                    switch (enumDT)
+                    {
+                        case DataTypeEnum.dt_nvarchar:
+                        case DataTypeEnum.dt_varchar:
+                        case DataTypeEnum.dt_longtext:
+                            sb.Append($"'{columnModel.ColumnName}',");
+                            break;
+                        default:
+                            break;
+                    }
+                }
+                //鍘绘帀鏈�鍚庝竴涓�,
+                var res = sb.ToString();
+                if (res.Length > 1)
+                {
+                    res = res.Substring(0, res.Length - 1);
+                }
+                return res;
+            }
+            catch (Exception ex)
+            {
+                throw ex;
+            }
+        }
+
+        public static string Get_LikeQueryAttrsName(List<ColumnModel> columnModelList, GenerateCodeParam param)
+        {
+            StringBuilder sb = new StringBuilder();
+            try
+            {
+                /*
+                  [妯$硦鏌ヨ瀛楁鍚峕:璇疯緭鍏ヤ换鍔$紪鐮�/鍘熸枡鍨嬪彿/浜у搧浠g爜
+                 */
+                List<ColumnModel> newList = ListHelper.RemoveForPageTableListQueryAttributes(columnModelList);
+                sb.Append("璇疯緭鍏�");
+                foreach (var columnModel in newList)
+                {
+                    //鑾峰彇鏁版嵁绫诲瀷
+                    DataTypeEnum enumDT = (DataTypeEnum)Enum.Parse(typeof(DataTypeEnum), "dt_" + columnModel.DataType.ToString());
+                    switch (enumDT)
+                    {
+                        case DataTypeEnum.dt_nvarchar:
+                        case DataTypeEnum.dt_varchar:
+                        case DataTypeEnum.dt_longtext:
+                            sb.Append($"{columnModel.Description}/");
+                            break;
+                        default:
+                            break;
+                    }
+                }
+                //鍘绘帀鏈�鍚庝竴涓�,
+                var res = sb.ToString();
+                res = res.Substring(0, res.Length - 1);
+                return res;
+            }
+            catch (Exception ex)
+            {
+                throw ex;
+            }
+        }
 
         /// <summary>
         /// 椤甸潰琛ㄦ牸鍒楁樉绀�
@@ -2334,8 +2490,7 @@
                 /*
                   materialCode: res.materialCode,
                  */
-                List<ColumnModel> newList = ListHelper.RemoveForPageAddFormAttributes(columnModelList);
-                foreach (var columnModel in newList)
+                foreach (var columnModel in columnModelList)
                 {
                     //棣栧瓧姣嶅皬鍐�
                     var low_prop_ColumnName = CommonHelper.FirstLowercase(columnModel.ColumnName);

--
Gitblit v1.9.3