using GenerateCode_WeiBen_WMS.Const; using GenerateCode_WeiBen_WMS.Model; using System; using System.Collections.Generic; using System.Configuration; using System.Data; using System.Data.SqlClient; using System.Linq; using System.Text; namespace GenerateCode_GEBrilliantFactory { /// /// 构造字符串帮助类 /// public class StructStrHelper { /// /// 根据表名获取列集合 /// /// /// public static List GetColumnList(string tableName, string connStr) { string strSql = @" select col.name as ColumnName, t.name as DataType, ep.value as Description, col.max_length as DataLength, col.is_nullable as IsNullable, ( select top 1 ind.is_primary_key from sys.index_columns ic left join sys.indexes ind on ic.object_id=ind.object_id and ic.index_id=ind.index_id and ind.name like 'PK_%' where ic.object_id=obj.object_id and ic.column_id=col.column_id ) as IsPrimaryKey, col.Precision, col.Scale from sys.objects obj inner join sys.columns col on obj.object_id=col.object_id left join sys.types t on t.user_type_id=col.user_type_id left join sys.extended_properties ep on ep.major_id=obj.object_id and ep.minor_id=col.column_id and ep.name='MS_Description' where obj.name='" + tableName + "' "; List columnList = new List(); try { DataSet ds = SqlHelper.Query(connStr, strSql); columnList = DataTableToList(ds.Tables[0]); } catch { throw; } finally { } return columnList; } /// /// 获得数据列表 /// private static List DataTableToList(DataTable dt) { try { List modelList = new List(); int rowsCount = dt.Rows.Count; if (rowsCount > 0) { ColumnModel model; for (int n = 0; n < rowsCount; n++) { model = new ColumnModel(); if (dt.Rows[n]["Precision"].ToString() != "") { model.MyPrecision = int.Parse(dt.Rows[n]["Precision"].ToString()); } if (dt.Rows[n]["Scale"].ToString() != "") { model.Scale = int.Parse(dt.Rows[n]["Scale"].ToString()); } model.ColumnName = dt.Rows[n]["ColumnName"].ToString(); model.DataLength = dt.Rows[n]["DataLength"].ToString(); model.DataType = dt.Rows[n]["DataType"].ToString(); if (model.DataType.ToUpper() == "nvarchar".ToUpper()) { if (model.DataLength != "-1") { model.DataLength = ((int)Convert.ToInt32(model.DataLength) / 2).ToString(); } } model.Description = dt.Rows[n]["Description"].ToString(); if (dt.Rows[n]["IsNullable"].ToString() != "") { if ((dt.Rows[n]["IsNullable"].ToString() == "1") || (dt.Rows[n]["IsNullable"].ToString().ToLower() == "true")) { model.IsNullable = true; } else { model.IsNullable = false; } } if (dt.Rows[n]["IsPrimaryKey"].ToString() != "") { if ((dt.Rows[n]["IsPrimaryKey"].ToString() == "1") || (dt.Rows[n]["IsPrimaryKey"].ToString().ToLower() == "true")) { model.IsPrimaryKey = true; } else { model.IsPrimaryKey = false; } } modelList.Add(model); } } return modelList; } catch (Exception) { throw; } } /// /// 生成属性字符串 /// /// /// public static string GenerateAttribute(int index, ColumnModel columnModel, bool isShowExcelDataOptionAttribute = false) { try { string attr = columnModel.ColumnName; string str_NullFlag = " "; //获取数据类型 DataTypeEnum enumDT = (DataTypeEnum)Enum.Parse(typeof(DataTypeEnum), "dt_" + columnModel.DataType.ToString()); string attrStr = ""; attrStr += " /// \n"; attrStr += " /// " + columnModel.Description + "\n"; attrStr += " /// \n"; if (isShowExcelDataOptionAttribute) { attrStr += " [ExcelDataOptionAttribute(DisplayName = \"" + columnModel.Description + "\", ColumnIndex = " + index + ")]\n"; } switch (enumDT) { case DataTypeEnum.dt_Varchar_Desc: case DataTypeEnum.dt_uniqueidentifier: case DataTypeEnum.dt_Varchar_Ext_Link: case DataTypeEnum.dt_char: case DataTypeEnum.dt_varchar: case DataTypeEnum.dt_nvarchar: attrStr += " public string" + str_NullFlag + attr + " { get; set; }\n"; break; case DataTypeEnum.dt_datetime: case DataTypeEnum.dt_datetime2: if (columnModel.IsNullable) { str_NullFlag = "? "; } attrStr += " public DateTime" + str_NullFlag + attr + " { get; set; }\n"; break; case DataTypeEnum.dt_datetimeoffset: if (columnModel.IsNullable) { str_NullFlag = "? "; } attrStr += " public DateTimeOffset" + str_NullFlag + attr + " { get; set; }\n"; break; case DataTypeEnum.dt_int: if (columnModel.IsNullable) { str_NullFlag = "? "; } attrStr += " public int" + str_NullFlag + attr + " { get; set; }\n"; break; case DataTypeEnum.dt_bigint: if (columnModel.IsNullable) { str_NullFlag = "? "; } attrStr += " public long" + str_NullFlag + attr + " { get; set; }\n"; break; case DataTypeEnum.dt_decimal: if (columnModel.IsNullable) { str_NullFlag = "? "; } attrStr += " public decimal" + str_NullFlag + attr + " { get; set; }\n"; break; case DataTypeEnum.dt_float: if (columnModel.IsNullable) { str_NullFlag = "? "; } attrStr += " public float" + str_NullFlag + attr + " { get; set; }\n"; break; case DataTypeEnum.dt_bit: case DataTypeEnum.dt_tinyint: if (columnModel.IsNullable) { str_NullFlag = "? "; } attrStr += " public bool" + str_NullFlag + attr + " { get; set; }\n"; break; } attrStr += "\n";//最后是加一个空格 return attrStr; } catch (Exception ex) { throw ex; } } /// /// 生成属性字符串ForAddModel-新增实体专用 /// /// /// public static string GenerateAttributeForAddModel(ColumnModel columnModel, GenerateCodeParam param) { try { string attr = columnModel.ColumnName; //if (attr.ToUpper() == "DBId".ToUpper()) //{ // var bb = ""; //} string str_NullFlag = " "; if (columnModel.IsNullable) { str_NullFlag = "? "; } string attrStr = ""; attrStr += " /// \n"; attrStr += " /// " + columnModel.Description + "\n"; attrStr += " /// \n"; DataTypeEnum myDataType = (DataTypeEnum)Enum.Parse(typeof(DataTypeEnum), "dt_" + columnModel.DataType); switch (myDataType) { case DataTypeEnum.dt_datetime: case DataTypeEnum.dt_datetime2: case DataTypeEnum.dt_datetimeoffset: attrStr += " public DateTime" + str_NullFlag + attr + " { get; set; }\n"; attrStr += "\n";//最后是加一个空格 break; case DataTypeEnum.dt_bigint: if (columnModel.IsNullable) { str_NullFlag = "? "; } attrStr += " public long" + str_NullFlag + attr + " { get; set; }\n"; attrStr += "\n";//最后是加一个空格 break; case DataTypeEnum.dt_decimal: if (columnModel.IsNullable) { str_NullFlag = "? "; } attrStr += " public decimal" + str_NullFlag + attr + " { get; set; }\n"; attrStr += "\n";//最后是加一个空格 break; case DataTypeEnum.dt_tinyint: case DataTypeEnum.dt_bit: if (columnModel.IsNullable) { str_NullFlag = "? "; } 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"; attrStr += "\n";//最后是加一个空格 } else { attrStr += " public int" + str_NullFlag + attr + " { get; set; }\n"; attrStr += "\n";//最后是加一个空格 } break; default: attrStr += " public string" + str_NullFlag + attr + " { get; set; }\n"; attrStr += "\n";//最后是加一个空格 break; } return attrStr; } catch (Exception ex) { throw ex; } } /// /// 生成属性字符串ForAddModel-更新实体专用 /// /// /// public static string GenerateAttributeForUpdateModel(ColumnModel columnModel, GenerateCodeParam param) { try { string attr = columnModel.ColumnName; string attrStr = ""; attrStr += $" updateObj.{attr} = input.{attr};\n"; return attrStr; } catch (Exception ex) { throw ex; } } public static string GenerateAttribute_AppService_ImportAsync(ColumnModel columnModel, GenerateCodeParam param) { try { /* MaterialCode = impItem.MaterialCode, */ string attr = columnModel.ColumnName; string attrStr = ""; attrStr += $"{attr} = impItem.{attr},\n"; return attrStr; } catch (Exception ex) { throw ex; } } /// /// 生成属性字符串ForAddModel-更新实体专用(导入时) /// /// /// public static string GenerateAttributeForUpdateModelByImport(ColumnModel columnModel, GenerateCodeParam param) { try { string attr = columnModel.ColumnName; string attrStr = ""; attrStr += $" {attr} = {param.EntityInstanceName}.{attr},\n"; return attrStr; } catch (Exception ex) { throw ex; } } /// /// 生成属性字符串ForAddModel-CheckCreateOrUpdateDtoAsync专用 /// /// /// public static string GenerateAttributeForCheckCreateOrUpdateDtoAsync(ColumnModel columnModel, GenerateCodeParam param) { try { string attr = columnModel.ColumnName; string attrStr = ""; bool isHaveMaxLength = false; if (!string.IsNullOrEmpty(columnModel.DataLength)) { isHaveMaxLength = true; } if (columnModel.IsNullable == false) {//必填 DataTypeEnum myDataType = (DataTypeEnum)Enum.Parse(typeof(DataTypeEnum), "dt_" + columnModel.DataType); switch (myDataType) { case DataTypeEnum.dt_datetime: case DataTypeEnum.dt_datetime2: case DataTypeEnum.dt_datetimeoffset: if (isHaveMaxLength) { attrStr += $" Check.NotNull(input.{attr}, \"{columnModel.Description}\", {columnModel.DataLength});\n"; } else { attrStr += $" Check.NotNull(input.{attr}, \"{columnModel.Description}\");\n"; } break; case DataTypeEnum.dt_bigint: case DataTypeEnum.dt_decimal: case DataTypeEnum.dt_tinyint: case DataTypeEnum.dt_bit: case DataTypeEnum.dt_int: if (isHaveMaxLength) { attrStr += $" Check.NotNull(input.{attr}, \"{columnModel.Description}\", {columnModel.DataLength});\n"; } else { attrStr += $" Check.NotNull(input.{attr}, \"{columnModel.Description}\");\n"; } break; default: if (isHaveMaxLength) { attrStr += $" Check.NotNullOrWhiteSpace(input.{attr}, \"{columnModel.Description}\", {columnModel.DataLength});\n"; } else { attrStr += $" Check.NotNullOrWhiteSpace(input.{attr}, \"{columnModel.Description}\");\n"; } break; } } return attrStr; } catch (Exception ex) { throw ex; } } /// /// 生成属性字符串ForAddModel-Dto实体专用 /// /// /// public static string GenerateAttributeForDto(ColumnModel columnModel, GenerateCodeParam param) { try { string attr = columnModel.ColumnName; //if (attr.ToUpper() == "DBId".ToUpper()) //{ // var bb = ""; //} string str_NullFlag = " "; if (columnModel.IsNullable) { str_NullFlag = "? "; } string attrStr = ""; attrStr += " /// \n"; attrStr += " /// " + columnModel.Description + "\n"; attrStr += " /// \n"; DataTypeEnum myDataType = (DataTypeEnum)Enum.Parse(typeof(DataTypeEnum), "dt_" + columnModel.DataType); switch (myDataType) { case DataTypeEnum.dt_datetime: case DataTypeEnum.dt_datetime2: case DataTypeEnum.dt_datetimeoffset: attrStr += " public DateTime" + str_NullFlag + attr + " { get; set; }\n"; attrStr += "\n";//最后是加一个空格 break; case DataTypeEnum.dt_bigint: if (columnModel.IsNullable) { str_NullFlag = "? "; } attrStr += " public long" + str_NullFlag + attr + " { get; set; }\n"; attrStr += "\n";//最后是加一个空格 break; case DataTypeEnum.dt_decimal: if (columnModel.IsNullable) { str_NullFlag = "? "; } attrStr += " public decimal" + str_NullFlag + attr + " { get; set; }\n"; attrStr += "\n";//最后是加一个空格 break; case DataTypeEnum.dt_tinyint: case DataTypeEnum.dt_bit: if (columnModel.IsNullable) { str_NullFlag = "? "; } 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"; attrStr += "\n";//最后是加一个空格 } else { attrStr += " public int" + str_NullFlag + attr + " { get; set; }\n"; attrStr += "\n";//最后是加一个空格 } break; default: //特殊处理 字段 ExtraProperties if (columnModel.ColumnName.ToUpper() == SystemConst.pro_ExtraProperties.ToUpper()) { attrStr += " public ExtraPropertyDictionary" + str_NullFlag + attr + " { get; set; }\n"; } else { attrStr += " public string" + str_NullFlag + attr + " { get; set; }\n"; } attrStr += "\n";//最后是加一个空格 break; } //增加对枚举类型的支持 if (param.EnumList?.Count > 0) { var findEnumObj = param.EnumList.Where(x => x.EnumAttrName == attr).FirstOrDefault(); if (findEnumObj != null) { attrStr += " /// \n"; attrStr += " /// " + columnModel.Description + "\n"; attrStr += " /// \n"; attrStr += " public string" + str_NullFlag + findEnumObj.EnumTypeDesc + "\n"; attrStr += " { \n"; attrStr += " get \n"; attrStr += " { \n"; attrStr += $" return GetEnumDescriptionUtil.GetEnumDescription({findEnumObj.EnumAttrName}); \n"; attrStr += " } \n"; attrStr += " } \n"; } } return attrStr; } catch (Exception ex) { throw ex; } } /// /// 生成属性字符串ForAddModel-Export实体专用 /// /// /// public static string GenerateAttributeForExport(ColumnModel columnModel, GenerateCodeParam param) { try { string attr = columnModel.ColumnName; //if (attr.ToUpper() == "DBId".ToUpper()) //{ // var bb = ""; //} string str_NullFlag = " "; string attrStr = ""; attrStr += " /// \n"; attrStr += " /// " + columnModel.Description + "\n"; attrStr += " /// \n"; attrStr += $" [ExcelColumn(Name = \"{columnModel.Description}\", Width = 25)]\n"; DataTypeEnum myDataType = (DataTypeEnum)Enum.Parse(typeof(DataTypeEnum), "dt_" + columnModel.DataType); switch (myDataType) { case DataTypeEnum.dt_datetime: case DataTypeEnum.dt_datetime2: case DataTypeEnum.dt_datetimeoffset: attrStr += " public DateTime" + str_NullFlag + attr + " { get; set; }\n"; attrStr += "\n";//最后是加一个空格 break; case DataTypeEnum.dt_bigint: if (columnModel.IsNullable) { str_NullFlag = "? "; } attrStr += " public long" + str_NullFlag + attr + " { get; set; }\n"; attrStr += "\n";//最后是加一个空格 break; case DataTypeEnum.dt_decimal: if (columnModel.IsNullable) { str_NullFlag = "? "; } attrStr += " public decimal" + str_NullFlag + attr + " { get; set; }\n"; attrStr += "\n";//最后是加一个空格 break; case DataTypeEnum.dt_tinyint: case DataTypeEnum.dt_bit: if (columnModel.IsNullable) { str_NullFlag = "? "; } 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"; attrStr += "\n";//最后是加一个空格 } else { attrStr += " public int" + str_NullFlag + attr + " { get; set; }\n"; attrStr += "\n";//最后是加一个空格 } break; default: attrStr += " public string" + str_NullFlag + attr + " { get; set; }\n"; attrStr += "\n";//最后是加一个空格 break; } return attrStr; } catch (Exception ex) { throw ex; } } /// /// 生成属性字符串ForQueryModel- 查询实体专用 /// /// /// public static string GenerateAttributeForQueryModel(ColumnModel columnModel) { try { string attr = columnModel.ColumnName; if (CommonHelper.IsIgnore(attr)) { return ""; } //if (attr.ToUpper() == "DBId".ToUpper()) //{ // var bb = ""; //} //注意:查询实体就不能按照数据库的可NULL限制了,因为查询内容随时可以为NULL哦 string str_NullFlag = " "; str_NullFlag = "? "; string emptyStr = " ";//空格 string attrStr = ""; attrStr += " /// \n"; attrStr += " /// " + columnModel.Description + "\n"; attrStr += " /// \n"; DataTypeEnum myDataType = (DataTypeEnum)Enum.Parse(typeof(DataTypeEnum), "dt_" + columnModel.DataType); switch (myDataType) { case DataTypeEnum.dt_datetime: case DataTypeEnum.dt_datetime2: case DataTypeEnum.dt_datetimeoffset: attrStr += " //表示是 高级查询范围查询特性\n"; attrStr += " [HighSearchRangeAttribute]\n"; attrStr += " public List" + emptyStr + attr + " { get; set; }\n"; attrStr += "\n";//最后是加一个空格 break; case DataTypeEnum.dt_bigint: attrStr += " public long" + str_NullFlag + emptyStr + attr + " { get; set; }\n"; attrStr += "\n";//最后是加一个空格 break; case DataTypeEnum.dt_decimal: attrStr += " public decimal" + str_NullFlag + emptyStr + attr + " { get; set; }\n"; attrStr += "\n";//最后是加一个空格 break; case DataTypeEnum.dt_int: 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";//最后是加一个空格 break; default: attrStr += " public string" + emptyStr + attr + " { get; set; }\n"; attrStr += "\n";//最后是加一个空格 break; } return attrStr; } catch (Exception ex) { throw ex; } } /// /// 生成属性字符串ForQueryModel /// /// /// public static string GenerateAttributeForQueryModelMode(ColumnModel columnModel) { try { string attr = columnModel.ColumnName; if (CommonHelper.IsIgnore(attr)) { return ""; } string attrStr = ""; attrStr += " /// \n"; attrStr += " /// " + columnModel.Description + "-查询关系运算符 \n"; attrStr += " /// \n"; string highSearchModeSuffix = "_FilterMode"; DataTypeEnum myDataType = (DataTypeEnum)Enum.Parse(typeof(DataTypeEnum), "dt_" + columnModel.DataType); switch (myDataType) { case DataTypeEnum.dt_datetime: case DataTypeEnum.dt_datetime2: case DataTypeEnum.dt_datetimeoffset: return "\n"; case DataTypeEnum.dt_bigint: case DataTypeEnum.dt_decimal: case DataTypeEnum.dt_int: case DataTypeEnum.dt_tinyint: attrStr += " public SearchFilterModeEnum " + attr + highSearchModeSuffix + " { get; set; }= SearchFilterModeEnum.精准查询;\n"; attrStr += "\n";//最后是加一个空格 break; default: attrStr += " public SearchFilterModeEnum " + attr + highSearchModeSuffix + " { get; set; }= SearchFilterModeEnum.模糊查询;\n"; attrStr += "\n";//最后是加一个空格 break; } return attrStr; } catch (Exception ex) { throw ex; } } /// /// 获取查询列字符串 /// /// 列集合 /// 表别名 /// 字符串,格式如 列1,列2,列3 public static string GetQueryColumnsStr(List columnNameList, string tableAlias = null) { StringBuilder selectSql = new StringBuilder(); tableAlias = tableAlias == null ? "" : (tableAlias + "."); ColumnModel columnModel = null; string attrColumnName = null; for (int i = 0; i < columnNameList.Count; i++) { columnModel = columnNameList[i]; attrColumnName = columnModel.ColumnName; if (i == (columnNameList.Count - 1)) selectSql.Append(" " + tableAlias + attrColumnName + "\n"); else selectSql.Append(" " + tableAlias + attrColumnName + ",\n"); } return selectSql.ToString(); } /// /// 获取列字符串(不包括ID) 【插入用】 /// /// 列集合 /// @前缀 /// 字符串,格式如 列1,列2,列3 public static string GetColumnsStrNoIDForAdd(List columnNameList, string prefix) { StringBuilder selectSql = new StringBuilder(); ColumnModel columnModel = null; string description = ""; for (int i = 0; i < columnNameList.Count; i++) { columnModel = columnNameList[i]; description = " -- " + columnModel.ColumnName + " " + columnModel.Description; string attrColumnName = columnModel.ColumnName; if (attrColumnName.ToUpper() == "ID") continue; if (i == (columnNameList.Count - 1)) selectSql.Append(" " + prefix + attrColumnName + description + "\n"); else selectSql.Append(" " + prefix + attrColumnName + "," + description + "\n"); } return selectSql.ToString(); } /// /// 获取列字符串(不包括ID) 【生成InsertSQL文本使用】 /// /// 列集合 /// 字符串,格式如 列1,列2,列3 public static string GetColumnsStrNoIDForInsertSQL(List columnNameList) { StringBuilder selectSql = new StringBuilder(); ColumnModel columnModel = null; string description = ""; string defaultValue = ""; for (int i = 0; i < columnNameList.Count; i++) { columnModel = columnNameList[i]; description = " -- " + columnModel.ColumnName + " " + columnModel.Description; string attrColumnName = columnModel.ColumnName; if (attrColumnName.ToUpper() == "ID") continue; DataTypeEnum myDataType = (DataTypeEnum)Enum.Parse(typeof(DataTypeEnum), "dt_" + columnModel.DataType); switch (myDataType) { case DataTypeEnum.dt_bigint: case DataTypeEnum.dt_int: defaultValue = "0"; break; case DataTypeEnum.dt_decimal: case DataTypeEnum.dt_float: defaultValue = "0.00"; break; case DataTypeEnum.dt_datetime: case DataTypeEnum.dt_datetime2: case DataTypeEnum.dt_datetimeoffset: defaultValue = "getdate()"; break; case DataTypeEnum.dt_bit: case DataTypeEnum.dt_tinyint: defaultValue = "0"; break; default: defaultValue = "''"; break; } if (i == (columnNameList.Count - 1)) selectSql.Append(" " + defaultValue + description + "\n"); else selectSql.Append(" " + defaultValue + "," + description + "\n"); } return selectSql.ToString(); } /// /// 获取增加使用的存储过程参数列字符串(要排除id) /// /// 列集合 /// 字符串,@processCardNumber nvarchar(50),@partNumber nvarchar(50), /// public static string GetInputParamColumnsStrForAdd(List columnNameList) { StringBuilder sql = new StringBuilder(); ColumnModel columnModel = null; for (int i = 0; i < columnNameList.Count; i++) { columnModel = columnNameList[i]; string attrColumnName = columnModel.ColumnName; if (attrColumnName.ToUpper() == "ID") continue; var fuhao = ","; if (i == columnNameList.Count - 1) { fuhao = ""; } DataTypeEnum enumDT = (DataTypeEnum)Enum.Parse(typeof(DataTypeEnum), "dt_" + columnModel.DataType.ToString()); switch (enumDT) { case DataTypeEnum.dt_char: case DataTypeEnum.dt_varchar: case DataTypeEnum.dt_Varchar_Desc: case DataTypeEnum.dt_uniqueidentifier: case DataTypeEnum.dt_Varchar_Ext_Link: case DataTypeEnum.dt_nvarchar: var dataLength = columnModel.DataLength; if (dataLength == "-1") { dataLength = "max"; } sql.Append("@" + attrColumnName + " " + columnModel.DataType + "(" + dataLength + ") " + fuhao + "\n"); break; case DataTypeEnum.dt_bigint: case DataTypeEnum.dt_int: case DataTypeEnum.dt_datetime: case DataTypeEnum.dt_datetime2: case DataTypeEnum.dt_datetimeoffset: case DataTypeEnum.dt_bit: case DataTypeEnum.dt_tinyint: sql.Append("@" + attrColumnName + " " + columnModel.DataType + " " + fuhao + "\n"); break; case DataTypeEnum.dt_decimal: case DataTypeEnum.dt_float: sql.Append("@" + attrColumnName + " " + columnModel.DataType + "(" + columnModel.MyPrecision.ToString() + "," + columnModel.Scale.ToString() + ") " + fuhao + "\n"); break; default: break; } } return sql.ToString(); } /// /// 获取更新使用的存储过程参数列字符串(要排除id) /// /// 列集合 /// 字符串,@processCardNumber nvarchar(50),@partNumber nvarchar(50), /// public static string GetInputParamColumnsStrForUpdate(List columnNameList) { //构造新的List columnNameList = ListHelper.RemoveCreator(columnNameList); StringBuilder sql = new StringBuilder(); ColumnModel columnModel = null; string attrColumnName = null; for (int i = 0; i < columnNameList.Count; i++) { columnModel = columnNameList[i]; attrColumnName = columnModel.ColumnName; var fuhao = ","; if (i == columnNameList.Count - 1) { fuhao = ""; } DataTypeEnum enumDT = (DataTypeEnum)Enum.Parse(typeof(DataTypeEnum), "dt_" + columnModel.DataType.ToString()); switch (enumDT) { case DataTypeEnum.dt_char: case DataTypeEnum.dt_varchar: case DataTypeEnum.dt_Varchar_Desc: case DataTypeEnum.dt_uniqueidentifier: case DataTypeEnum.dt_Varchar_Ext_Link: case DataTypeEnum.dt_nvarchar: var dataLength = columnModel.DataLength; if (dataLength == "-1") { dataLength = "max"; } sql.Append("@" + attrColumnName + " " + columnModel.DataType + "(" + dataLength + ") " + fuhao + "\n"); break; case DataTypeEnum.dt_bigint: case DataTypeEnum.dt_int: case DataTypeEnum.dt_datetime: case DataTypeEnum.dt_datetime2: case DataTypeEnum.dt_datetimeoffset: case DataTypeEnum.dt_bit: case DataTypeEnum.dt_tinyint: sql.Append("@" + attrColumnName + " " + columnModel.DataType + " " + fuhao + "\n"); break; case DataTypeEnum.dt_decimal: case DataTypeEnum.dt_float: sql.Append("@" + attrColumnName + " " + columnModel.DataType + "(" + columnModel.MyPrecision.ToString() + "," + columnModel.Scale.ToString() + ") " + fuhao + "\n"); break; default: break; } } return sql.ToString(); } /// /// 获取查询分页使用的存储过程参数列字符串 /// /// 列集合 /// 字符串,@processCardNumber nvarchar(50),@partNumber nvarchar(50), /// public static string GetInputParamColumnsStrForQueryPage(List columnNameList) { //构造新的List columnNameList = ListHelper.RemoveAll(columnNameList); StringBuilder sql = new StringBuilder(); ColumnModel columnModel = null; string attrColumnName = null; for (int i = 0; i < columnNameList.Count; i++) { columnModel = columnNameList[i]; attrColumnName = columnModel.ColumnName; var fuhao = "," + "\n"; if (i == columnNameList.Count - 1) { fuhao = ","; } DataTypeEnum enumDT = (DataTypeEnum)Enum.Parse(typeof(DataTypeEnum), "dt_" + columnModel.DataType.ToString()); switch (enumDT) { case DataTypeEnum.dt_char: case DataTypeEnum.dt_varchar: case DataTypeEnum.dt_Varchar_Desc: case DataTypeEnum.dt_uniqueidentifier: case DataTypeEnum.dt_Varchar_Ext_Link: case DataTypeEnum.dt_nvarchar: var dataLength = columnModel.DataLength; if (dataLength == "-1") { dataLength = "max"; } sql.Append("@" + attrColumnName + " " + columnModel.DataType + "(" + dataLength + ") " + fuhao); break; case DataTypeEnum.dt_bigint: case DataTypeEnum.dt_int: case DataTypeEnum.dt_datetime: case DataTypeEnum.dt_datetime2: case DataTypeEnum.dt_datetimeoffset: case DataTypeEnum.dt_bit: case DataTypeEnum.dt_tinyint: sql.Append("@" + attrColumnName + " " + columnModel.DataType + " " + fuhao); break; case DataTypeEnum.dt_decimal: case DataTypeEnum.dt_float: sql.Append("@" + attrColumnName + " " + columnModel.DataType + "(" + columnModel.MyPrecision.ToString() + "," + columnModel.Scale.ToString() + ") " + fuhao); break; default: break; } } return sql.ToString(); } /// /// 生成赋值sql字符串,用于修改 /// /// /// /// public static string GetCols_AssignmentStrForUpdate(List columnNameList) { //构造新的List columnNameList = ListHelper.RemoveCreator(columnNameList); StringBuilder sql = new StringBuilder(); ColumnModel columnModel = null; string attrColumnName = null; for (int i = 0; i < columnNameList.Count; i++) { columnModel = columnNameList[i]; attrColumnName = columnModel.ColumnName; if (columnModel.IsPrimaryKey) continue; if (i == columnNameList.Count - 1) { sql.Append(attrColumnName + "=@" + attrColumnName + " \n"); } else { sql.Append(attrColumnName + "=@" + attrColumnName + ",\n"); } } return sql.ToString(); } /// /// 生成赋值sql字符串,用于查询分页 /// /// /// /// public static string GetCols_AssignmentStrForWherePage(string TableAlias, List columnNameList) { //构造新的List columnNameList = ListHelper.RemoveAll(columnNameList); StringBuilder sql = new StringBuilder(); ColumnModel columnModel = null; string attrColumnName = null; sql.Append(" 1=1 \n"); for (int i = 0; i < columnNameList.Count; i++) { columnModel = columnNameList[i]; attrColumnName = columnModel.ColumnName; sql.Append(" AND ( @" + attrColumnName + " IS NULL OR @" + attrColumnName + "='' OR " + TableAlias + "." + attrColumnName + "=@" + attrColumnName + " ) \n"); } return sql.ToString(); } /// /// 生成赋值sql字符串,用于修改 /// /// /// /// public static string GetCols_AssignmentStrForUpdate2(List columnNameList) { //构造新的List columnNameList = ListHelper.RemoveCreator(columnNameList); StringBuilder sql = new StringBuilder(); ColumnModel columnModel = null; string attrColumnName = null; var updateSql = ""; for (int i = 0; i < columnNameList.Count; i++) { columnModel = columnNameList[i]; attrColumnName = columnModel.ColumnName; if (columnModel.IsPrimaryKey) continue; if (attrColumnName.ToUpper() == "lastModifier".ToUpper() || attrColumnName.ToUpper() == "lastModifyTime".ToUpper()) { updateSql = " " + attrColumnName + "=@" + attrColumnName + " "; } else { DataTypeEnum enumDT = (DataTypeEnum)Enum.Parse(typeof(DataTypeEnum), "dt_" + columnModel.DataType.ToString()); switch (enumDT) { case DataTypeEnum.dt_char: case DataTypeEnum.dt_varchar: case DataTypeEnum.dt_Varchar_Desc: case DataTypeEnum.dt_uniqueidentifier: case DataTypeEnum.dt_Varchar_Ext_Link: case DataTypeEnum.dt_nvarchar: updateSql = " " + attrColumnName + "= case ISNULL(@" + attrColumnName + ",'') when '' then " + attrColumnName + " else @" + attrColumnName + " end "; break; case DataTypeEnum.dt_bigint: case DataTypeEnum.dt_int: case DataTypeEnum.dt_decimal: case DataTypeEnum.dt_float: updateSql = " " + attrColumnName + "= case ISNULL(@" + attrColumnName + ",0) when 0 then " + attrColumnName + " else @" + attrColumnName + " end "; break; case DataTypeEnum.dt_datetime: case DataTypeEnum.dt_datetime2: case DataTypeEnum.dt_datetimeoffset: case DataTypeEnum.dt_bit: case DataTypeEnum.dt_tinyint: updateSql = " " + attrColumnName + "= case @" + attrColumnName + " when NULL then " + attrColumnName + " else @" + attrColumnName + " end "; break; default: updateSql = " " + attrColumnName + "=@" + attrColumnName + " "; break; } } sql.Append(updateSql + ",\n"); } //截取掉最后一个 ,\n var strSql = sql.ToString().Substring(0, sql.ToString().Length - 2); return strSql; } /// /// 构造新增SQL的参数ForDAL文件 /// /// /// public static string GetParameterForAddDAL(List columnNameList) { //构造新的List List newList = new List(); ColumnModel columnModel = null; for (int i = 0; i < columnNameList.Count; i++) { columnModel = columnNameList[i]; if (columnModel.IsPrimaryKey) {//新增的时候,不用主键 continue; } newList.Add(columnModel); } StringBuilder paramSql = new StringBuilder(); paramSql.Append("SqlParameter[] parameters = { " + "\n"); for (int i = 0; i < newList.Count; i++) { paramSql.Append(GetSqlParameterStr(newList[i])); } paramSql.Append(" param_id \n"); paramSql.Append(" };\n"); for (int i = 0; i < newList.Count; i++) { paramSql.Append(" parameters[" + i.ToString() + "].Value = model." + newList[i].ColumnName + ";\n"); } return paramSql.ToString(); } /// /// 构造更新SQL的参数ForDAL文件 /// /// /// public static string GetParameterForUpdateDAL(List columnNameList) { //构造新的List columnNameList = ListHelper.RemoveCreator(columnNameList); StringBuilder paramSql = new StringBuilder(); paramSql.Append("SqlParameter[] parameters = { " + "\n"); string firstParam = "", secondParam = ""; ColumnModel columnModel = null; for (int i = 0; i < columnNameList.Count; i++) { columnModel = columnNameList[i]; firstParam += GetSqlParameterStr(columnModel); secondParam += " parameters[" + i.ToString() + "].Value = model." + columnModel.ColumnName + ";\n"; } paramSql.Append(firstParam); paramSql.Append(" };\n"); paramSql.Append(secondParam); return paramSql.ToString(); } /// /// 构造查询分页SQL的参数ForDAL文件 /// /// /// public static string GetParameterForQueryPageDAL(List columnNameList) { //构造新的List columnNameList = ListHelper.RemoveAll(columnNameList); StringBuilder paramSql = new StringBuilder(); paramSql.Append("SqlParameter[] parameters = { " + "\n"); string firstParam = "", secondParam = ""; ColumnModel columnModel = null; for (int i = 0; i < columnNameList.Count; i++) { columnModel = columnNameList[i]; firstParam += GetSqlParameterStr(columnModel); secondParam += " parameters[" + i.ToString() + "].Value = pageParam." + columnModel.ColumnName + ";\n"; if (i == (columnNameList.Count - 1)) { //增加分页参数 firstParam += " new SqlParameter(\"@pageIndex\", SqlDbType.Int) , \n"; firstParam += " new SqlParameter(\"@pageSize\", SqlDbType.Int) \n"; secondParam += " parameters[" + (i + 1).ToString() + "].Value = pageParam.pageIndex;\n"; secondParam += " parameters[" + (i + 2).ToString() + "].Value = pageParam.pageSize;\n"; } } paramSql.Append(firstParam); paramSql.Append(" };\n"); paramSql.Append(secondParam); return paramSql.ToString(); } private static string GetSqlParameterStr(ColumnModel columnModel) { string str = " new SqlParameter(\"@" + columnModel.ColumnName + "\","; try { string attr = columnModel.ColumnName; //获取数据类型 DataTypeEnum enumDT = (DataTypeEnum)Enum.Parse(typeof(DataTypeEnum), "dt_" + columnModel.DataType.ToString()); switch (enumDT) { case DataTypeEnum.dt_char: str += "SqlDbType.NChar," + columnModel.DataLength.ToString(); break; case DataTypeEnum.dt_varchar: str += "SqlDbType.VarChar," + columnModel.DataLength.ToString(); break; case DataTypeEnum.dt_Varchar_Desc: case DataTypeEnum.dt_uniqueidentifier: case DataTypeEnum.dt_Varchar_Ext_Link: case DataTypeEnum.dt_nvarchar: str += "SqlDbType.NVarChar," + columnModel.DataLength.ToString(); break; case DataTypeEnum.dt_datetime: case DataTypeEnum.dt_datetime2: case DataTypeEnum.dt_datetimeoffset: str += "SqlDbType.DateTime"; break; case DataTypeEnum.dt_int: str += "SqlDbType.Int," + columnModel.DataLength.ToString(); break; case DataTypeEnum.dt_bigint: str += "SqlDbType.BigInt," + columnModel.DataLength.ToString(); break; case DataTypeEnum.dt_decimal: str += "SqlDbType.Decimal," + columnModel.DataLength.ToString(); break; case DataTypeEnum.dt_float: str += "SqlDbType.Float," + columnModel.DataLength.ToString(); break; case DataTypeEnum.dt_bit: case DataTypeEnum.dt_tinyint: str += "SqlDbType.Bit," + columnModel.DataLength.ToString(); break; } str += "),\n";//最后是加一个回车 return str; } catch (Exception ex) { throw ex; } } /// /// 生成赋值实体类的字符串 /// /// /// public static string GetToModelStr(List columnModelList) { StringBuilder sb = new StringBuilder(); try { foreach (var columnModel in columnModelList) { string attr = columnModel.ColumnName; //获取数据类型 DataTypeEnum enumDT = (DataTypeEnum)Enum.Parse(typeof(DataTypeEnum), "dt_" + columnModel.DataType.ToString()); switch (enumDT) { case DataTypeEnum.dt_char: case DataTypeEnum.dt_varchar: case DataTypeEnum.dt_Varchar_Desc: case DataTypeEnum.dt_uniqueidentifier: case DataTypeEnum.dt_Varchar_Ext_Link: case DataTypeEnum.dt_nvarchar: sb.Append("model." + columnModel.ColumnName.ToString() + "=dataRow[\"" + columnModel.ColumnName.ToString() + "\"].ToString();\n"); break; case DataTypeEnum.dt_datetime: case DataTypeEnum.dt_datetime2: case DataTypeEnum.dt_datetimeoffset: sb.Append("if (dataRow[\"" + columnModel.ColumnName.ToString() + "\"].ToString() != \"\") \n"); sb.Append("{ \n"); sb.Append(" model." + columnModel.ColumnName.ToString() + " = DateTime.Parse(dataRow[\"" + columnModel.ColumnName.ToString() + "\"].ToString()); \n"); sb.Append("} \n"); break; case DataTypeEnum.dt_int: sb.Append("if (dataRow[\"" + columnModel.ColumnName.ToString() + "\"].ToString() != \"\") \n"); sb.Append("{ \n"); sb.Append(" model." + columnModel.ColumnName.ToString() + " = int.Parse(dataRow[\"" + columnModel.ColumnName.ToString() + "\"].ToString()); \n"); sb.Append("} \n"); break; case DataTypeEnum.dt_bigint: sb.Append("if (dataRow[\"" + columnModel.ColumnName.ToString() + "\"].ToString() != \"\") \n"); sb.Append("{ \n"); sb.Append(" model." + columnModel.ColumnName.ToString() + " = long.Parse(dataRow[\"" + columnModel.ColumnName.ToString() + "\"].ToString()); \n"); sb.Append("} \n"); break; case DataTypeEnum.dt_decimal: sb.Append("if (dataRow[\"" + columnModel.ColumnName.ToString() + "\"].ToString() != \"\") \n"); sb.Append("{ \n"); sb.Append(" model." + columnModel.ColumnName.ToString() + " = decimal.Parse(dataRow[\"" + columnModel.ColumnName.ToString() + "\"].ToString()); \n"); sb.Append("} \n"); break; case DataTypeEnum.dt_float: sb.Append("if (dataRow[\"" + columnModel.ColumnName.ToString() + "\"].ToString() != \"\") \n"); sb.Append("{ \n"); sb.Append(" model." + columnModel.ColumnName.ToString() + " = float.Parse(dataRow[\"" + columnModel.ColumnName.ToString() + "\"].ToString()); \n"); sb.Append("} \n"); break; case DataTypeEnum.dt_bit: case DataTypeEnum.dt_tinyint: sb.Append("if (dataRow[\"" + columnModel.ColumnName.ToString() + "\"].ToString() != \"\") \n"); sb.Append("{ \n"); sb.Append(" if ((dataRow[\"" + columnModel.ColumnName.ToString() + "\"].ToString() == \"1\") || (dataRow[\"" + columnModel.ColumnName.ToString() + "\"].ToString().ToLower() == \"true\")) \n"); sb.Append("{ \n"); sb.Append(" model." + columnModel.ColumnName.ToString() + " = true; \n"); sb.Append("} \n"); sb.Append("else \n"); sb.Append("{ \n"); sb.Append(" model." + columnModel.ColumnName.ToString() + " = false; \n"); sb.Append("} \n"); sb.Append("} \n"); break; } } return sb.ToString(); } catch (Exception ex) { throw ex; } } #region WCF层 /// /// 生成需要验证不为空的字符串 /// /// /// 是否是新增 /// public static string GetValidateEmptyStr(List columnModelList, bool isInsert = true) { StringBuilder sb = new StringBuilder(); try { List newList = null; if (isInsert) {//新增 newList = ListHelper.RemoveAll(columnModelList); } else {//更新 newList = ListHelper.RemoveDelFlagCreatorModifier(columnModelList); } sb.Append(" List columnsList = new List() { \n"); foreach (var columnModel in newList) { string attr = columnModel.ColumnName; //获取数据类型 DataTypeEnum enumDT = (DataTypeEnum)Enum.Parse(typeof(DataTypeEnum), "dt_" + columnModel.DataType.ToString()); switch (enumDT) { case DataTypeEnum.dt_char: case DataTypeEnum.dt_varchar: case DataTypeEnum.dt_Varchar_Desc: case DataTypeEnum.dt_uniqueidentifier: case DataTypeEnum.dt_Varchar_Ext_Link: case DataTypeEnum.dt_nvarchar: if (!columnModel.IsNullable) { sb.Append(" new ColumnsModel(){ ChinaName=\"" + columnModel.Description + "\",PropertyName=\"" + columnModel.ColumnName + "\" },\n"); } break; case DataTypeEnum.dt_datetime: case DataTypeEnum.dt_datetime2: case DataTypeEnum.dt_datetimeoffset: if (!columnModel.IsNullable) {//日期必输 sb.Append(" new ColumnsModel(){ ChinaName=\"" + columnModel.Description + "\",PropertyName=\"" + columnModel.ColumnName + "\",DataType=typeof(DateTime) },\n"); } else {//日期不必输 sb.Append(" new ColumnsModel(){ ChinaName=\"" + columnModel.Description + "\",PropertyName=\"" + columnModel.ColumnName + "\",DataType=typeof(DateTime),IsNullable=true },\n"); } break; default: break; } } sb.Append(" };\n"); return sb.ToString(); } catch (Exception ex) { throw ex; } } /// /// 根据主键类型获取验证主键的字符串 /// /// /// /// public static string GetValidateEmptyStrForPrimaryKey(List columnModelList, string primaryKey) { if (primaryKey.ToUpper() == "ID".ToUpper()) { return " model.id == 0 "; } foreach (var item in columnModelList) { if (item.ColumnName.ToUpper() == primaryKey.ToUpper()) { DataTypeEnum enumDT = (DataTypeEnum)Enum.Parse(typeof(DataTypeEnum), "dt_" + item.DataType.ToString()); switch (enumDT) { case DataTypeEnum.dt_char: case DataTypeEnum.dt_varchar: case DataTypeEnum.dt_Varchar_Desc: case DataTypeEnum.dt_uniqueidentifier: case DataTypeEnum.dt_Varchar_Ext_Link: case DataTypeEnum.dt_nvarchar: return " string.IsNullOrEmpty(model.$PrimaryKey$) "; case DataTypeEnum.dt_int: case DataTypeEnum.dt_bigint: return " model.$PrimaryKey$ == 0 "; default: break; } } } return ""; } #endregion #region Controller层 #region Controller层 /// /// 生成需要验证不为空的字符串 /// /// /// 是否是新增 /// public static string GetValidateEmptyStrForController(List columnModelList, bool isInsert = true) { StringBuilder sb = new StringBuilder(); try { List newList = null; if (isInsert) {//新增 newList = ListHelper.RemoveAll(columnModelList); } else {//更新 newList = ListHelper.RemoveDelFlagCreatorModifier(columnModelList); } var commonStr = string.Empty; foreach (var columnModel in newList) { commonStr = " new ValidateModel(){ ChinaName=\"" + columnModel.Description + "\",PropertyName=\"" + columnModel.ColumnName + "\",DataValue=request." + columnModel.ColumnName; string attr = columnModel.ColumnName; //获取数据类型 DataTypeEnum enumDT = (DataTypeEnum)Enum.Parse(typeof(DataTypeEnum), "dt_" + columnModel.DataType.ToString()); switch (enumDT) { case DataTypeEnum.dt_char: case DataTypeEnum.dt_varchar: case DataTypeEnum.dt_Varchar_Desc: case DataTypeEnum.dt_uniqueidentifier: case DataTypeEnum.dt_Varchar_Ext_Link: case DataTypeEnum.dt_nvarchar: if (!columnModel.IsNullable) { sb.Append(commonStr + " },\n"); } break; case DataTypeEnum.dt_int: if (!columnModel.IsNullable) {//数字必输 sb.Append(commonStr + ",DataType=typeof(int) },\n"); } else {//数字不必输 sb.Append(commonStr + ",DataType=typeof(int),IsNullable=true },\n"); } break; case DataTypeEnum.dt_datetime: case DataTypeEnum.dt_datetime2: if (!columnModel.IsNullable) {//日期必输 sb.Append(commonStr + ",DataType=typeof(DateTime) },\n"); } else {//日期不必输 sb.Append(commonStr + ",DataType=typeof(DateTime),IsNullable=true },\n"); } break; case DataTypeEnum.dt_datetimeoffset: if (!columnModel.IsNullable) {//日期必输 sb.Append(commonStr + ",DataType=typeof(DateTimeOffset) },\n"); } else {//日期不必输 sb.Append(commonStr + ",DataType=typeof(DateTimeOffset),IsNullable=true },\n"); } break; default: break; } } return sb.ToString(); } catch (Exception ex) { throw ex; } } #endregion #endregion #region VUE文件 /// /// 获取VUE el-table-column /// /// /// public static string GetElTableColumnStr(List columnModelList) { StringBuilder sb = new StringBuilder(); try { List newList = ListHelper.RemoveIdOperationRemarkCreateIdModifyId(columnModelList); foreach (var columnModel in newList) { DataTypeEnum enumDT = (DataTypeEnum)Enum.Parse(typeof(DataTypeEnum), "dt_" + columnModel.DataType.ToString()); switch (enumDT) { case DataTypeEnum.dt_datetime: case DataTypeEnum.dt_datetime2: case DataTypeEnum.dt_datetimeoffset: sb.Append(" \n"); sb.Append(" \n"); break; case DataTypeEnum.dt_bit: case DataTypeEnum.dt_tinyint: sb.Append(" \n"); sb.Append(""); sb.Append(" \n"); break; default: sb.Append(" \n"); sb.Append(" \n"); break; } } return sb.ToString(); } catch (Exception ex) { throw ex; } } /// /// 获取VUE el-form-item (新增/编辑界面) /// /// /// public static string GetElFormItemStrForAddEditForm(List columnModelList) { StringBuilder sb = new StringBuilder(); try { List newList = ListHelper.RemoveIdCreatorModifier(columnModelList); foreach (var columnModel in newList) { if (columnModel.IsNullable) {//可以为空 sb.Append(" \n"); } else { sb.Append(" \n"); } DataTypeEnum enumDT = (DataTypeEnum)Enum.Parse(typeof(DataTypeEnum), "dt_" + columnModel.DataType.ToString()); switch (enumDT) { case DataTypeEnum.dt_bit: case DataTypeEnum.dt_tinyint: sb.Append(" \n"); break; case DataTypeEnum.dt_datetime: case DataTypeEnum.dt_datetime2: case DataTypeEnum.dt_datetimeoffset: sb.Append(" \n"); break; case DataTypeEnum.dt_int: case DataTypeEnum.dt_bigint: case DataTypeEnum.dt_decimal: case DataTypeEnum.dt_float: sb.Append(" \n"); break; default: sb.Append(" \n"); break; } sb.Append(" \n"); } return sb.ToString(); } catch (Exception ex) { throw ex; } } /// /// 获取VUE el-form-item (查看界面) /// /// /// public static string GetElFormItemStrForViewForm(List columnModelList) { StringBuilder sb = new StringBuilder(); try { List newList = ListHelper.RemoveIdCreateIdModifyId(columnModelList); foreach (var columnModel in newList) { sb.Append(" \n"); DataTypeEnum enumDT = (DataTypeEnum)Enum.Parse(typeof(DataTypeEnum), "dt_" + columnModel.DataType.ToString()); switch (enumDT) { case DataTypeEnum.dt_bit: case DataTypeEnum.dt_tinyint: sb.Append(" \n"); break; case DataTypeEnum.dt_datetime: case DataTypeEnum.dt_datetime2: case DataTypeEnum.dt_datetimeoffset: sb.Append(" \n"); break; case DataTypeEnum.dt_int: case DataTypeEnum.dt_bigint: case DataTypeEnum.dt_decimal: case DataTypeEnum.dt_float: sb.Append(" \n"); break; default: sb.Append(" \n"); break; } sb.Append(" \n"); } return sb.ToString(); } catch (Exception ex) { throw ex; } } /// /// 获取VUE formOptions字符串(高级查询中的) /// /// /// public static string GetVueFormOptionsStr(List columnModelList) { StringBuilder sb = new StringBuilder(); try { /* { label: '代码编码', prop: 'code', element: 'el-input' }, */ List newList = ListHelper.RemoveIdOperationRemarkCreateIdModifyId(columnModelList); foreach (var columnModel in newList) { //首字母小写 var low_prop_ColumnName = CommonHelper.FirstLowercase(columnModel.ColumnName); DataTypeEnum enumDT = (DataTypeEnum)Enum.Parse(typeof(DataTypeEnum), "dt_" + columnModel.DataType.ToString()); var elment = "el-input"; switch (enumDT) { case DataTypeEnum.dt_datetime: elment = "el-date-picker"; break; case DataTypeEnum.dt_bit: case DataTypeEnum.dt_tinyint: elment = "el-select"; break; default: break; } sb.Append(" { \n"); sb.Append(" label: '" + columnModel.Description + "', \n"); sb.Append(" prop: '" + low_prop_ColumnName + "', \n"); //添加类型 switch (enumDT) { case DataTypeEnum.dt_datetime: sb.Append(" type: 'datetimerange', \n"); break; default: break; } sb.Append(" element: '" + elment + "', \n"); //添加类型 switch (enumDT) { case DataTypeEnum.dt_bit: case DataTypeEnum.dt_tinyint: sb.Append(" options: [{label: '是',value: true}, {label: '否',value: false}] \n"); break; default: break; } sb.Append(" }, \n"); } //去掉最后一个, var res = sb.ToString(); res = res.Substring(0, res.Length - 1); return res; } catch (Exception ex) { throw ex; } } /// /// 获取VUE formOptions字符串(高级查询中的) /// /// /// public static string GetVueFormOptionsStrForPageAddFormAttributes_formItems(List columnModelList, GenerateCodeParam param) { StringBuilder sb = new StringBuilder(); try { /* { label: '物料编码', prop: 'materialCode', el: 'input', disabled: disabled, placeholder: '请输入物料编码', rules: [{ required: true, message: '物料编码不能为空', trigger: 'blur' }], }, */ List newList = ListHelper.RemoveForPageAddFormAttributes(columnModelList); foreach (var columnModel in newList) { //首字母小写 var low_prop_ColumnName = CommonHelper.FirstLowercase(columnModel.ColumnName); DataTypeEnum enumDT = (DataTypeEnum)Enum.Parse(typeof(DataTypeEnum), "dt_" + columnModel.DataType.ToString()); var elment = "input"; switch (enumDT) { //case DataTypeEnum.dt_datetime: // elment = "date-picker"; // break; case DataTypeEnum.dt_bit: case DataTypeEnum.dt_tinyint: elment = "select"; break; default: break; } sb.Append(" { \n"); sb.Append(" label: '" + columnModel.Description + "', \n"); sb.Append(" prop: '" + low_prop_ColumnName + "', \n"); //添加类型 //switch (enumDT) //{ // case DataTypeEnum.dt_datetime: // sb.Append(" el: (props: any, { attrs }: SetupContext) => { \n"); // sb.Append(" return h(datePicker, { \n"); // sb.Append(" ...props, \n"); // sb.Append(" clearable: true, \n"); // sb.Append(" ...attrs, \n"); // sb.Append(" }) \n"); // sb.Append(" },\n"); // sb.Append(" width: '100%',\n"); // break; // default: // break; //} if (enumDT == DataTypeEnum.dt_datetime) { sb.Append(" el: (props: any, { attrs }: SetupContext) => { \n"); sb.Append(" return h(datePicker, { \n"); sb.Append(" ...props, \n"); sb.Append(" clearable: true, \n"); sb.Append(" ...attrs, \n"); sb.Append(" }) \n"); sb.Append(" },\n"); sb.Append(" width: '100%',\n"); } else if (enumDT == DataTypeEnum.dt_decimal) { sb.Append(" el: (props: any, { attrs }: SetupContext) => { \n"); sb.Append(" return h(inputNumber, { \n"); sb.Append(" ...props, \n"); sb.Append(" clearable: true, \n"); sb.Append(" ...attrs, \n"); sb.Append(" }) \n"); sb.Append(" },\n"); sb.Append(" width: '100%',\n"); //配置精度?这里需要获取数据库中的精度!!!TODO: sb.Append(" step: 0.01,\n"); sb.Append(" precision: 2, \n"); } else if (enumDT == DataTypeEnum.dt_int) { bool isWriteInt = true; //判断是否是下拉类型 //增加对枚举类型的支持 if (param.EnumList?.Count > 0) { var findEnumObj = param.EnumList.Where(x => x.EnumAttrName == columnModel.ColumnName).FirstOrDefault(); if (findEnumObj != null) { elment = "select"; sb.Append(" el: '" + elment + "', \n"); sb.Append(" options: [], \n"); isWriteInt = false; } } if (isWriteInt) { sb.Append(" el: (props: any, { attrs }: SetupContext) => { \n"); sb.Append(" return h(inputNumber, { \n"); sb.Append(" ...props, \n"); sb.Append(" clearable: true, \n"); sb.Append(" ...attrs, \n"); sb.Append(" }) \n"); sb.Append(" },\n"); sb.Append(" width: '100%',\n"); //配置精度? sb.Append(" step: 1,\n"); sb.Append(" precision: 0, \n"); } } else { sb.Append(" el: '" + elment + "', \n"); } sb.Append(" //disabled: disabled, \n"); sb.Append(" placeholder: '请输入" + columnModel.Description + "', \n"); if (columnModel.IsNullable == false) { sb.Append(" rules: [{required: true, message: '" + columnModel.Description + "不能为空', trigger: 'blur' }], \n"); } //添加类型 switch (enumDT) { case DataTypeEnum.dt_bit: case DataTypeEnum.dt_tinyint: sb.Append(" options: [{label: '是',value: true}, {label: '否',value: false}] \n"); break; default: break; } sb.Append(" }, \n"); } //去掉最后一个, var res = sb.ToString(); res = res.Substring(0, res.Length - 1); return res; } catch (Exception ex) { throw ex; } } /// /// 获取VUE formOptions字符串(高级查询中的) /// /// /// public static string GetVueFormOptionsStrForPageAddFormAttributes_Query(List columnModelList, GenerateCodeParam param) { StringBuilder sb = new StringBuilder(); try { /* { label: '物料编码', prop: 'materialCode', el: 'input', disabled: disabled, placeholder: '请输入物料编码', }, */ //List newList = ListHelper.RemoveForPageAddFormAttributes(columnModelList); foreach (var columnModel in columnModelList) { //首字母小写 var low_prop_ColumnName = CommonHelper.FirstLowercase(columnModel.ColumnName); DataTypeEnum enumDT = (DataTypeEnum)Enum.Parse(typeof(DataTypeEnum), "dt_" + columnModel.DataType.ToString()); var elment = "input"; switch (enumDT) { //case DataTypeEnum.dt_datetime: // elment = "date-picker"; // break; case DataTypeEnum.dt_bit: case DataTypeEnum.dt_tinyint: elment = "select"; break; default: break; } sb.Append(" { \n"); sb.Append(" label: '" + columnModel.Description + "', \n"); sb.Append(" prop: '" + low_prop_ColumnName + "', \n"); //添加类型 //switch (enumDT) //{ // case DataTypeEnum.dt_datetime: // sb.Append(" el: (props: any, { attrs }: SetupContext) => { \n"); // sb.Append(" return h(dateTimePickerRange, { \n"); // sb.Append(" ...props,\n"); // sb.Append(" clearable: true, \n"); // sb.Append(" ...attrs, \n"); // sb.Append(" }) \n"); // sb.Append(" },\n"); // sb.Append(" width: '100%',\n"); // break; // default: // break; //} if (enumDT == DataTypeEnum.dt_datetime) { sb.Append(" el: (props: any, { attrs }: SetupContext) => { \n"); sb.Append(" return h(dateTimePickerRange, { \n"); sb.Append(" ...props,\n"); sb.Append(" clearable: true, \n"); sb.Append(" ...attrs, \n"); sb.Append(" }) \n"); sb.Append(" },\n"); sb.Append(" width: '100%',\n"); } else if (enumDT == DataTypeEnum.dt_decimal) { sb.Append(" el: (props: any, { attrs }: SetupContext) => { \n"); sb.Append(" return h(inputNumber, { \n"); sb.Append(" ...props,\n"); sb.Append(" clearable: true, \n"); sb.Append(" ...attrs, \n"); sb.Append(" }) \n"); sb.Append(" },\n"); sb.Append(" width: '100%',\n"); //配置精度?这里需要获取数据库中的精度!!!TODO: sb.Append(" step: 0.01,\n"); sb.Append(" precision: 2, \n"); } else if (enumDT == DataTypeEnum.dt_int) { bool isWriteInt = true; //判断是否是下拉类型 //增加对枚举类型的支持 if (param.EnumList?.Count > 0) { var findEnumObj = param.EnumList.Where(x => x.EnumAttrName == columnModel.ColumnName).FirstOrDefault(); if (findEnumObj != null) { elment = "select"; sb.Append(" el: '" + elment + "', \n"); sb.Append(" option: [], \n"); isWriteInt = false; } } if (isWriteInt) { sb.Append(" el: (props: any, { attrs }: SetupContext) => { \n"); sb.Append(" return h(inputNumber, { \n"); sb.Append(" ...props, \n"); sb.Append(" clearable: true, \n"); sb.Append(" ...attrs, \n"); sb.Append(" }) \n"); sb.Append(" },\n"); sb.Append(" width: '100%',\n"); //配置精度? sb.Append(" step: 1,\n"); sb.Append(" precision: 0, \n"); } } else { sb.Append(" el: '" + elment + "', \n"); } sb.Append(" //disabled: disabled, \n"); sb.Append(" placeholder: '请输入" + columnModel.Description + "', \n"); //添加类型 switch (enumDT) { case DataTypeEnum.dt_bit: case DataTypeEnum.dt_tinyint: sb.Append(" options: [{label: '是',value: true}, {label: '否',value: false}] \n"); break; default: break; } sb.Append(" }, \n"); } //去掉最后一个, var res = sb.ToString(); res = res.Substring(0, res.Length - 1); return res; } catch (Exception ex) { throw ex; } } /// /// 获取VUE formOptions字符串(高级查询中的) /// /// /// public static string GetVueFormOptionsStrForCommonQueryEnumForFrom(List columnModelList, GenerateCodeParam param) { StringBuilder sb = new StringBuilder(); try { /* const yesOrNoTypeEnum = await wmsMaterialDrawer.getWmsEnumData({ EnumName: 'YesNoEnum', }) updateFormItemOptions('isMainBranch', yesOrNoTypeEnum) */ if (param.EnumList?.Count > 0) { foreach (var item in param.EnumList) { //属性小写 var instanceName = CommonHelper.FirstLowercase(item.EnumType); var _enumAttrName = CommonHelper.FirstLowercase(item.EnumAttrName); sb.Append("const " + instanceName + "Enum = await " + param.PageMenuInstanceName + "Drawer.getWmsEnumData({ \n"); sb.Append(" EnumName: '" + item.EnumType + "', \n"); sb.Append("}) \n"); sb.Append("updateFormItemOptions('" + _enumAttrName + "', " + instanceName + "Enum) \n"); } } var res = sb.ToString(); return res; } catch (Exception ex) { throw ex; } } public static string GetVueFormOptionsStr_EntityNameClass_fetchEnumData(List columnModelList, GenerateCodeParam param) { StringBuilder sb = new StringBuilder(); try { /* // 获取物料类型枚举 const materialTypeData = await getWmsEnumData({ EnumName: 'MaterialTypeEnum', }) enumOptions.materialType = materialTypeData.map((item) => ({ label: item.description, value: item.value, })) */ if (param.EnumList?.Count > 0) { foreach (var item in param.EnumList) { //属性小写 var instanceName = CommonHelper.FirstLowercase(item.EnumType); var _enumAttrName = CommonHelper.FirstLowercase(item.EnumAttrName); sb.Append("const " + instanceName + "Data = await getWmsEnumData({ \n"); sb.Append(" EnumName: '" + item.EnumType + "', \n"); sb.Append("}) \n"); sb.Append("enumOptions." + _enumAttrName + " = " + instanceName + "Data.map((item) => ({ \n"); sb.Append(" label: item.description, \n"); sb.Append(" value: item.value, \n"); sb.Append("})) \n"); } } var res = sb.ToString(); return res; } catch (Exception ex) { throw ex; } } /// /// 获取VUE formOptions字符串(高级查询中的) /// /// /// public static string GetVueFormOptionsStrForSave_PageAddFormAttributes(List columnModelList, GenerateCodeParam param) { StringBuilder sb = new StringBuilder(); try { /* materialCode: formData.value.materialCode, */ List newList = ListHelper.RemoveForPageAddFormAttributes(columnModelList); foreach (var columnModel in newList) { //首字母小写 var low_prop_ColumnName = CommonHelper.FirstLowercase(columnModel.ColumnName); sb.Append($"{low_prop_ColumnName}: formData.value.{low_prop_ColumnName}, \n"); } //去掉最后一个, var res = sb.ToString(); res = res.Substring(0, res.Length - 1); return res; } catch (Exception ex) { throw ex; } } public static string GetVueFormOptionsStrForSave_PageAddFormAttributes_Query(List columnModelList, GenerateCodeParam param) { StringBuilder sb = new StringBuilder(); try { /* materialCode: formData.value.materialCode, */ List newList = ListHelper.RemoveForPageTableListQueryAttributes(columnModelList); foreach (var columnModel in newList) { //首字母小写 var low_prop_ColumnName = CommonHelper.FirstLowercase(columnModel.ColumnName); sb.Append($"{low_prop_ColumnName}: formData.value.{low_prop_ColumnName} || '', \n"); } //去掉最后一个, var res = sb.ToString(); res = res.Substring(0, res.Length - 1); return res; } catch (Exception ex) { throw ex; } } /// /// 页面表格列显示 /// /// /// /// public static string GetVueFormOptionsStr_EntityNameClass_Config_Attrs(List columnModelList, GenerateCodeParam param) { StringBuilder sb = new StringBuilder(); try { /* { field: 'materialCode', title: '物料编码', }, */ List newList = ListHelper.RemoveForPageTableListQueryAttributes(columnModelList); foreach (var columnModel in newList) { sb.Append("{ \n"); //首字母小写 var lowerCaseColumnName = CommonHelper.FirstLowercase(columnModel.ColumnName); var findEnumObj = param.EnumList.Where(x => x.EnumAttrName == columnModel.ColumnName).FirstOrDefault(); if (findEnumObj != null) { sb.Append(" field: '" + lowerCaseColumnName + "Desc', \n"); } else { sb.Append(" field: '" + lowerCaseColumnName + "', \n"); } sb.Append(" title: '" + columnModel.Description + "', \n"); //获取数据类型 //设置宽度 DataTypeEnum enumDT = (DataTypeEnum)Enum.Parse(typeof(DataTypeEnum), "dt_" + columnModel.DataType.ToString()); switch (enumDT) { case DataTypeEnum.dt_datetime: sb.Append(" width:180, \n"); break; case DataTypeEnum.dt_bit: case DataTypeEnum.dt_tinyint: sb.Append(" width:80, \n"); break; default: sb.Append(" width:160, \n"); break; } sb.Append("}, \n"); } //去掉最后一个, var res = sb.ToString(); res = res.Substring(0, res.Length - 1); return res; } catch (Exception ex) { throw ex; } } public static string GetVueFormOptionsStrForPageAddFormAttributesByOpen(List columnModelList, GenerateCodeParam param) { StringBuilder sb = new StringBuilder(); try { /* materialCode: res.materialCode, */ List newList = ListHelper.RemoveForPageAddFormAttributes(columnModelList); foreach (var columnModel in newList) { //首字母小写 var low_prop_ColumnName = CommonHelper.FirstLowercase(columnModel.ColumnName); sb.Append($"{low_prop_ColumnName}: res.{low_prop_ColumnName}, \n"); } //去掉最后一个, var res = sb.ToString(); res = res.Substring(0, res.Length - 1); return res; } catch (Exception ex) { throw ex; } } public static string GetVueFormOptionsStrForPageAddFormAttributes_Query_Clear(List columnModelList, GenerateCodeParam param) { StringBuilder sb = new StringBuilder(); try { /* materialCode: res.materialCode, */ List newList = ListHelper.RemoveForPageAddFormAttributes(columnModelList); foreach (var columnModel in newList) { sb.Append($"formData.value.{columnModel.ColumnName} = '' \n"); } //去掉最后一个, var res = sb.ToString(); res = res.Substring(0, res.Length - 1); return res; } catch (Exception ex) { throw ex; } } public static string GetVueFormOptionsStrForPageAdd_EntityNameClass_enumOptions(List columnModelList, GenerateCodeParam param) { StringBuilder sb = new StringBuilder(); try { /* isMainBranch: [] as Array<{ label: string; value: any }>, */ if (param.EnumList?.Count > 0) { foreach (var item in param.EnumList) { //属性小写 var instanceName = CommonHelper.FirstLowercase(item.EnumType); var _enumAttrName = CommonHelper.FirstLowercase(item.EnumAttrName); sb.Append(_enumAttrName + ": [] as Array<{label: string; value: any }>, \n"); } //去掉最后一个, var res = sb.ToString(); res = res.Substring(0, res.Length - 1); return res; } else { return ""; } } catch (Exception ex) { throw ex; } } public static string GetVueFormOptionsStrForPageAdd_QueryTableListForBool(List columnModelList, GenerateCodeParam param) { StringBuilder sb = new StringBuilder(); try { /* isRead: ({ row }: any) => { return (
{row.isRead != null ? (row.isRead ? '是' : '否') : '-'}
) }, creationTime: ({ row }: any) => { return (
{row.creationTime != null ? dayjs(row.creationTime).format('YYYY-MM-DD HH:mm:ss') : '-'}
) }, */ foreach (var columnModel in columnModelList) { //属性小写 var instanceColumnName = CommonHelper.FirstLowercase(columnModel.ColumnName); //获取数据类型 DataTypeEnum enumDT = (DataTypeEnum)Enum.Parse(typeof(DataTypeEnum), "dt_" + columnModel.DataType.ToString()); switch (enumDT) { case DataTypeEnum.dt_datetime: sb.Append(instanceColumnName + ": ({ row }: any) => { \n"); sb.Append(" return ( \n"); sb.Append("
\n"); sb.Append(" {row." + instanceColumnName + " != null \n"); sb.Append(" ? dayjs(row." + instanceColumnName + ").format('YYYY-MM-DD HH:mm:ss') \n"); sb.Append(" : '-'} \n"); sb.Append("
\n"); sb.Append(" ) \n"); sb.Append("},\n"); break; case DataTypeEnum.dt_bit: case DataTypeEnum.dt_tinyint: sb.Append(instanceColumnName + ": ({ row }: any) => { \n"); sb.Append(" return ( \n"); sb.Append("
\n"); sb.Append(" {row." + instanceColumnName + " != null ? (row." + instanceColumnName + " ? '是' : '否') : '-'} \n"); sb.Append("
\n"); sb.Append(" ) \n"); sb.Append("},\n"); break; } } //去掉最后一个, var res = sb.ToString(); res = res.Substring(0, res.Length - 1); return res; } catch (Exception ex) { throw ex; } } /// /// 获取VUE 导出数组字符串-汉字+属性 /// /// /// public static string GetVueExportTHeaderArrayStr(List columnModelList) { StringBuilder sb = new StringBuilder(); try { List newList = ListHelper.RemoveIdOperationRemarkCreateIdModifyId(columnModelList); foreach (var columnModel in newList) { if (columnModel.IsPrimaryKey == false) { sb.Append("'" + columnModel.ColumnName + "':'" + columnModel.Description + "',"); } } //去掉最后一个, var res = sb.ToString(); res = res.Substring(0, res.Length - 1); return res; } catch (Exception ex) { throw ex; } } /// /// 获取VUE 搜索框输入的提示文本 /// /// /// public static string GetVueSearchFormInputPlaceholderStr(List columnModelList, ref string names) { StringBuilder sb = new StringBuilder(); try { List newList = ListHelper.OnlyStringProValue(columnModelList); foreach (var columnModel in newList) { if (columnModel.IsPrimaryKey == false) { sb.Append("" + columnModel.Description + "/"); names += "'" + columnModel.ColumnName + "',"; } } //去掉最后一个, var res = sb.ToString(); res = res.Substring(0, res.Length - 1); names = names.Substring(0, names.Length - 1); return res; } catch (Exception ex) { throw ex; } } /// /// 获取VUE el-form-item 查询用 /// /// /// public static string GetElFormItemForSearchStr(List columnModelList) { StringBuilder sb = new StringBuilder(); try { List newList = ListHelper.RemoveIdCreatorModifier(columnModelList); foreach (var columnModel in newList) { sb.Append(" \n"); //获取数据类型 DataTypeEnum enumDT = (DataTypeEnum)Enum.Parse(typeof(DataTypeEnum), "dt_" + columnModel.DataType.ToString()); switch (enumDT) { case DataTypeEnum.dt_char: case DataTypeEnum.dt_varchar: case DataTypeEnum.dt_Varchar_Desc: case DataTypeEnum.dt_uniqueidentifier: case DataTypeEnum.dt_Varchar_Ext_Link: case DataTypeEnum.dt_nvarchar: sb.Append(" \n"); break; case DataTypeEnum.dt_bit: case DataTypeEnum.dt_tinyint: sb.Append("\n"); sb.Append(" \n"); sb.Append(" \n"); sb.Append(" \n"); break; default: break; } sb.Append(" \n"); } return sb.ToString(); } catch (Exception ex) { throw ex; } } #endregion #region Controller /// /// 获取分页筛选字符串 /// /// /// public static string GetPageFilterStrForController(List columnModelList) { StringBuilder sb = new StringBuilder(); try { string mohuFilter = "&& (";//模糊查询 string filter = "";//非模糊查询 List newList = ListHelper.RemoveIdCreatorModifier(columnModelList); foreach (var columnModel in newList) { DataTypeEnum enumDT = (DataTypeEnum)Enum.Parse(typeof(DataTypeEnum), "dt_" + columnModel.DataType.ToString()); switch (enumDT) { case DataTypeEnum.dt_bit: case DataTypeEnum.dt_tinyint: case DataTypeEnum.dt_datetime: case DataTypeEnum.dt_datetime2: case DataTypeEnum.dt_datetimeoffset: case DataTypeEnum.dt_int: case DataTypeEnum.dt_decimal: case DataTypeEnum.dt_float: break; default: if (columnModel.IsPrimaryKey == false) { mohuFilter += "(a." + columnModel.ColumnName + " != null && a." + columnModel.ColumnName + ".Contains(param.searchVal))"; mohuFilter += " ||"; filter += "&& (string.IsNullOrEmpty(param." + columnModel.ColumnName + ") || param." + columnModel.ColumnName + " == a." + columnModel.ColumnName + ") \n"; } else { } break; } } mohuFilter += "1==1)"; filter += ";"; return mohuFilter + filter; } catch (Exception ex) { throw ex; } } #endregion /// /// 生成Where查询条件的字符串 /// /// /// public static string GetStrForWhereQuery(List columnModelList) { StringBuilder sb = new StringBuilder(); try { List newList = ListHelper.RemoveIdCreatorModifier(columnModelList); foreach (var columnModel in newList) { string attr = columnModel.ColumnName; //获取数据类型 DataTypeEnum enumDT = (DataTypeEnum)Enum.Parse(typeof(DataTypeEnum), "dt_" + columnModel.DataType.ToString()); switch (enumDT) { case DataTypeEnum.dt_char: case DataTypeEnum.dt_varchar: case DataTypeEnum.dt_Varchar_Desc: case DataTypeEnum.dt_uniqueidentifier: case DataTypeEnum.dt_Varchar_Ext_Link: case DataTypeEnum.dt_nvarchar: sb.Append(" if (!string.IsNullOrEmpty(queryModel." + columnModel.ColumnName + ")) \n"); sb.Append(" { \n"); sb.Append(" strWhere += \" AND $TableAlias$." + columnModel.ColumnName + " LIKE '%\" + queryModel." + columnModel.ColumnName + " + \"%'\"; \n"); sb.Append(" } \n"); break; case DataTypeEnum.dt_bit: case DataTypeEnum.dt_tinyint: sb.Append(" if (!string.IsNullOrEmpty(queryModel." + columnModel.ColumnName + ")) \n"); sb.Append(" { \n"); sb.Append(" strWhere += \" AND $TableAlias$." + columnModel.ColumnName + " = '\" + queryModel." + columnModel.ColumnName + " + \"'\"; \n"); sb.Append(" } \n"); break; case DataTypeEnum.dt_int: case DataTypeEnum.dt_bigint: sb.Append(" if (queryModel." + columnModel.ColumnName + " !=0) \n"); sb.Append(" { \n"); sb.Append(" strWhere += \" AND $TableAlias$." + columnModel.ColumnName + " = \" + queryModel." + columnModel.ColumnName + " + \"\"; \n"); sb.Append(" } \n"); break; default: break; } } return sb.ToString(); } catch (Exception ex) { throw ex; } } /// /// 通过列名查找列对象 /// /// /// /// public static ColumnModel GetColumnModelByName(string columnName, List columnModelList) { foreach (var item in columnModelList) { if (item.ColumnName.ToUpper() == columnName.ToUpper()) { return item; } } return null; } } }