From 47bb3e5ae5ab71ef0867435635024e21fa77f73c Mon Sep 17 00:00:00 2001 From: schangxiang@126.com <schangxiang@126.com> Date: 周日, 04 5月 2025 16:58:29 +0800 Subject: [PATCH] 222 --- Weben_CMS专用代码生成器/Code/MainForm.cs | 5 + Weben_CMS专用代码生成器/Code/Utility/ListHelper.cs | 30 ++++++++++ Weben_CMS专用代码生成器/Code/Templete/Entity/ExportModel模板.txt | 24 ++++++++ Weben_CMS专用代码生成器/Code/GenerateCode_WeiBen_CMS.csproj | 7 ++ Weben_CMS专用代码生成器/版本说明.txt | 2 Weben_CMS专用代码生成器/Code/Utility/StructStrHelper.cs | 68 ++++++++++++++++++++++ Weben_CMS专用代码生成器/Code/Model/SystemCommonVar.cs | 2 Weben_CMS专用代码生成器/Code/Generate/Entity/ExportModel_Generate.cs | 35 +++++++++++ Weben_CMS专用代码生成器/Code/Utility/CommonHelper.cs | 4 + 9 files changed, 175 insertions(+), 2 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/Generate/Entity/ExportModel_Generate.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/Generate/Entity/ExportModel_Generate.cs" new file mode 100644 index 0000000..130b6de --- /dev/null +++ "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/Generate/Entity/ExportModel_Generate.cs" @@ -0,0 +1,35 @@ +锘� + +using GenerateCode_WeiBen_WMS.Model; +using System; +using System.Collections.Generic; +using System.Linq; +using System.Text; + +namespace GenerateCode_GEBrilliantFactory +{ + /// <summary> + /// 鐢熸垚鏌ヨ瀹炰綋绫� + /// </summary> + public class ExportModel_Generate : BaseGenerate + { + public static string CreateText(GenerateCodeParam param) + { + var str = TextHelper.ReadText(@"Templete\Entity\ExportModel妯℃澘.txt"); + CommonReplace(ref str); + + CommonHelper.CommonReplaceStr(param, ref str); + + string attrString = ""; + + List<ColumnModel> newColumnNameList = ListHelper.RemoveAttrForExport(param.ColumnNameList); + for (int i = 0; i < newColumnNameList.Count; ++i) + { + attrString += StructStrHelper.GenerateAttributeForExport(newColumnNameList[i], param); + } + str = str.Replace("$AddAttributes$", attrString); + + return str; + } + } +} 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/GenerateCode_WeiBen_CMS.csproj" "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/GenerateCode_WeiBen_CMS.csproj" index 9a11d30..6ae95b5 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/GenerateCode_WeiBen_CMS.csproj" +++ "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/GenerateCode_WeiBen_CMS.csproj" @@ -109,6 +109,7 @@ <Compile Include="Generate\BaseGenerate.cs" /> <Compile Include="Generate\Controller\Controller_Generate.cs" /> <Compile Include="Generate\Entity\AddModel_Generate.cs" /> + <Compile Include="Generate\Entity\ExportModel_Generate.cs" /> <Compile Include="Generate\Entity\Dto_Generate.cs" /> <Compile Include="Generate\Entity\UpdateDto_Generate.cs" /> <Compile Include="Generate\Entity\CreateOrUpdateDtoBase_Generate.cs" /> @@ -195,6 +196,9 @@ <Content Include="Templete\Entity\AddModel妯℃澘.txt"> <CopyToOutputDirectory>Always</CopyToOutputDirectory> </Content> + <Content Include="Templete\Entity\ExportModel妯℃澘.txt"> + <CopyToOutputDirectory>Always</CopyToOutputDirectory> + </Content> <Content Include="Templete\Entity\Dto妯℃澘.txt"> <CopyToOutputDirectory>Always</CopyToOutputDirectory> </Content> @@ -256,6 +260,9 @@ <CopyToOutputDirectory>Always</CopyToOutputDirectory> </Content> </ItemGroup> + <ItemGroup> + <Folder Include="Generate\AppService\" /> + </ItemGroup> <Import Project="$(MSBuildToolsPath)\Microsoft.CSharp.targets" /> <!-- To modify your build process, add your task inside one of the targets below and uncomment it. Other similar extension points exist, see Microsoft.Common.targets. 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/MainForm.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/MainForm.cs" index f5ade14..0198e97 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/MainForm.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/MainForm.cs" @@ -34,6 +34,7 @@ this.tb_CreatePerson.Text = "shaocx";//鍒涘缓浜� this.tb_EntityName.Text = "WmsMaterial";//瀹炰綋绫诲悕 this.tb_EntityProName.Text = "_wmsMaterial";//瀹炰綋绫诲璞″悕 + this.tb_EnumList.Text = "PurchaseType|PurchaseTypeEnum|PurchaseTypeDesc,MaterialType|MaterialTypeEnum|MaterialTypeDesc,IsMainBranch|YesNoEnum|IsMainBranchDesc"; this.cmb_DataSource.DropDownStyle = ComboBoxStyle.DropDownList; List<ListItem> itemList = CommonHelper.GetDataSources(); @@ -208,6 +209,10 @@ str_generate = Dto_Generate.CreateText(param); tf = TextHelper.Export2File_V2(entityFilePath, $"{param.EntityName}Dto.cs", tableName, str_generate, FileType.InputModel, filePrefixName, entityName, modulelogo); + //6銆佺敓鎴� Export 鏂囦欢 + str_generate = ExportModel_Generate.CreateText(param); + tf = TextHelper.Export2File_V2(entityFilePath, $"{param.EntityName}ExportModel.cs", tableName, str_generate, FileType.InputModel, filePrefixName, entityName, modulelogo); + #endregion 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/Model/SystemCommonVar.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/Model/SystemCommonVar.cs" index e0cea39..2197ec0 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/Model/SystemCommonVar.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/Model/SystemCommonVar.cs" @@ -32,6 +32,8 @@ public const string c_ExtraProperties = "ExtraProperties"; + public const string c_ConcurrencyStamp = "ConcurrencyStamp"; + } } 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/Templete/Entity/ExportModel\346\250\241\346\235\277.txt" "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/Templete/Entity/ExportModel\346\250\241\346\235\277.txt" new file mode 100644 index 0000000..a5884fd --- /dev/null +++ "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/Templete/Entity/ExportModel\346\250\241\346\235\277.txt" @@ -0,0 +1,24 @@ +using MiniExcelLibs.Attributes; +using System.ComponentModel.DataAnnotations; +using System.ComponentModel; +using CMS.Plugin.HIAWms.Domain.Shared.Enums; +namespace CMS.Plugin.$NameSpacePath$.Application.Contracts.Dtos.$EntityName$; + +/// <summary> +/// $ChinaComment$导出模型 +/// </summary> +public class $EntityName$ExportModel +{ + $AddAttributes$ + + public Dictionary<string, object> GetExportData() + { + var exportData = new Dictionary<string, object>(); + foreach (var property in this.GetType().GetProperties()) + { + exportData.Add(property.Name, property.GetValue(this)); + } + + return exportData; + } +} 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/CommonHelper.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/CommonHelper.cs" index 5d6d6b9..763f657 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/CommonHelper.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/CommonHelper.cs" @@ -23,7 +23,9 @@ /// <returns></returns> public static bool IsIgnore(string columnName) { - if (columnName.ToUpper() == SystemCommonVar.c_ExtraProperties.ToUpper()) + if (columnName.ToUpper() == SystemCommonVar.c_ExtraProperties.ToUpper() + || columnName.ToUpper() == SystemCommonVar.c_ConcurrencyStamp.ToUpper() + ) { return true; } 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/ListHelper.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/ListHelper.cs" index 27ccaf5..da83f96 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/ListHelper.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/ListHelper.cs" @@ -241,6 +241,7 @@ || columnModel.ColumnName.ToUpper() == SystemCommonVar.c_ModifyTime.ToUpper() || columnModel.ColumnName.ToUpper() == SystemCommonVar.c_Id.ToUpper() || columnModel.ColumnName.ToUpper() == SystemCommonVar.c_ExtraProperties.ToUpper() + || columnModel.ColumnName.ToUpper() == SystemCommonVar.c_ConcurrencyStamp.ToUpper() || columnModel.ColumnName.ToUpper() == SystemCommonVar.c_DeleterId.ToUpper() || columnModel.ColumnName.ToUpper() == SystemCommonVar.c_delFlag.ToUpper() ) @@ -252,6 +253,35 @@ return newList; } + public static List<ColumnModel> RemoveAttrForExport(List<ColumnModel> columnNameList) + { + List<ColumnModel> newList = new List<ColumnModel>(); + ColumnModel columnModel = null; + for (int i = 0; i < columnNameList.Count; i++) + { + columnModel = columnNameList[i]; + if (columnModel.ColumnName.ToUpper() == SystemCommonVar.c_creator.ToUpper() + || columnModel.ColumnName.ToUpper() == SystemCommonVar.c_createTime.ToUpper() + || columnModel.ColumnName.ToUpper() == SystemCommonVar.c_lastModifier.ToUpper() + || columnModel.ColumnName.ToUpper() == SystemCommonVar.c_lastModifyTime.ToUpper() + || columnModel.ColumnName.ToUpper() == SystemCommonVar.c_ModifyTime.ToUpper() + || columnModel.ColumnName.ToUpper() == SystemCommonVar.c_Id.ToUpper() + || columnModel.ColumnName.ToUpper() == SystemCommonVar.c_ExtraProperties.ToUpper() + || columnModel.ColumnName.ToUpper() == SystemCommonVar.c_ConcurrencyStamp.ToUpper() + || columnModel.ColumnName.ToUpper() == SystemCommonVar.c_DeleterId.ToUpper() + || columnModel.ColumnName.ToUpper() == SystemCommonVar.c_delFlag.ToUpper() + || columnModel.ColumnName.ToUpper() == SystemCommonVar.c_CreateId.ToUpper() + || columnModel.ColumnName.ToUpper() == SystemCommonVar.c_ModifyId.ToUpper() + + ) + { + continue; + } + newList.Add(columnModel); + } + return newList; + } + /// <summary> /// 鑾峰彇鏈�鏂扮殑鍒桳ist闆嗗悎(鍘绘帀 ID) /// </summary> 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 73c8103..a4dcf5a 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" @@ -362,6 +362,74 @@ } /// <summary> + /// 鐢熸垚灞炴�у瓧绗︿覆ForAddModel-Export瀹炰綋涓撶敤 + /// </summary> + /// <param name="columnModel"></param> + /// <returns></returns> + 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 += " /// <summary>\n"; + attrStr += " /// " + columnModel.Description + "\n"; + attrStr += " /// </summary>\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_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; + } + + } + + /// <summary> /// 鐢熸垚灞炴�у瓧绗︿覆ForQueryModel- 鏌ヨ瀹炰綋涓撶敤 /// </summary> /// <param name="columnModel"></param> 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/\347\211\210\346\234\254\350\257\264\346\230\216.txt" "b/Weben_CMS\344\270\223\347\224\250\344\273\243\347\240\201\347\224\237\346\210\220\345\231\250/\347\211\210\346\234\254\350\257\264\346\230\216.txt" index 2b34f76..c8e7aae 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/\347\211\210\346\234\254\350\257\264\346\230\216.txt" +++ "b/Weben_CMS\344\270\223\347\224\250\344\273\243\347\240\201\347\224\237\346\210\220\345\231\250/\347\211\210\346\234\254\350\257\264\346\230\216.txt" @@ -3,5 +3,5 @@ 1、创建 2025-04-29 枚举例子 -PurchaseType|PurchaseTypeEnum|PurchaseTypeDesc,MaterialType|MaterialTypeEnum|MaterialTypeDesc +PurchaseType|PurchaseTypeEnum|PurchaseTypeDesc,MaterialType|MaterialTypeEnum|MaterialTypeDesc,IsMainBranch|YesNoEnum|IsMainBranchDesc -- Gitblit v1.9.3