222
schangxiang@126.com
2025-05-06 928c61ccddebc8d2c697b86ee9bee0c207330a8c
Weben_CMSרÓôúÂëÉú³ÉÆ÷/Code/MainForm.cs
@@ -6,6 +6,8 @@
using Newtonsoft.Json;
using System.Windows.Forms.VisualStyles;
using GenerateCode_WeiBen_WMS.DataBaseFactory;
using GenerateCode_WeiBen_WMS.Const;
using GenerateCode_WeiBen_WMS.Model;
namespace GenerateCode_GEBrilliantFactory
{
@@ -25,13 +27,14 @@
            this.tb_OrderBy.Text = "ModifyTime";//排序字段
            this.tb_ProjectNamePrefix.Text = "Test";
            this.tb_TableName.Text = "scms_auditlogs";//表名
            this.tb_WCF_NameSpacePath.Text = "WIP_";//WCF项目命名空间
            this.tb_TableName.Text = "scms_wmsmaterials";//表名
            this.tb_WCF_NameSpacePath.Text = "HIAWms";//WCF项目命名空间
            this.tb_FileName.Text = "Xiangzi";//文件前缀名
            this.tb_ChinaComment.Text = "表的中文注解";//中文注释
            this.tb_ChinaComment.Text = "物料基础信息表";//中文注释
            this.tb_CreatePerson.Text = "shaocx";//创建人
            this.tb_EntityName.Text = "XiangziEntity";//实体类名
            this.tb_EntityProName.Text = "xiangzi";//实体类对象名
            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();
@@ -125,6 +128,12 @@
                    this.tb_RoutePrefix.Focus();
                    return;
                }
                if (wcf_NameSpacePath == "")
                {
                    MessageBox.Show("请输入命名空间!");
                    this.tb_WCF_NameSpacePath.Focus();
                    return;
                }
                //读取Mysql
                var handler = DataBaseServiceFactory.GetHandle(dataBaseEnum);
@@ -136,42 +145,145 @@
                }
                string groupName = this.tb_GroupName.Text.Trim();
                if (groupName == "")
                {
                    MessageBox.Show("请输入分组名!");
                    this.tb_GroupName.Focus();
                    return;
                }
                //if (groupName == "")
                //{
                //    MessageBox.Show("请输入分组名!");
                //    this.tb_GroupName.Focus();
                //    return;
                //}
                string addEntityParam = "Add" + modulelogo + "Param";//新增参数类名
                string str_generate = "";
                bool tf;
                GenerateCodeParam param = new GenerateCodeParam()
                {
                    Modulelogo = modulelogo,
                    ChinaComment = chinaComment,
                    NameSpacePath = wcf_NameSpacePath,
                    ColumnNameList = columnList,
                    EntityName = entityName,
                    EntityInstanceName = tableAlias
                };
                //处理枚举类型
                List<EnumModel> enumList = new List<EnumModel>();
                var str_enumList = this.tb_EnumList.Text.Trim();
                if (str_enumList.IndexOf(',') > -1)
                {
                    var arr_enumList = str_enumList.Split(',');
                    foreach (var item in arr_enumList)
                    {
                        var arr_single = item.Split('|');
                        enumList.Add(new EnumModel()
                        {
                            EnumAttrName = arr_single[0],
                            EnumType = arr_single[1],
                            EnumTypeDesc = arr_single[2]
                        });
                    }
                }
                param.EnumList = enumList;
                //生成Model
                //CreateModelFile(columnList, tableName, filePrefixName, wcf_NameSpacePath, createPerson, chinaComment, entityName, modulelogo);
                //CreateModelParamFile(columnList, tableName, filePrefixName, wcf_NameSpacePath, createPerson, chinaComment, entityName, modulelogo);
                //生成 InputModel æ–‡ä»¶
                str_generate = InputModel_Generate.CreateQueryModelLText(modulelogo, chinaComment, columnList, entityName);
                tf = TextHelper.Export2File(tbPath.Text, tableName, str_generate, FileType.InputModel, filePrefixName, entityName, modulelogo);
                #region å®žä½“ç±»
                var entityFilePath = tbPath.Text + @"\server\src\CMS.Plugin." + tb_WCF_NameSpacePath.Text.Trim() + @".Application.Contracts\Dtos\" + tb_EntityName.Text.Trim();
                //1、生成 åˆ†é¡µæŸ¥è¯¢å®žä½“ æ–‡ä»¶
                str_generate = InputQueryModel_Generate.CreateQueryModelLText(param);
                tf = TextHelper.Export2File_V2(entityFilePath, $"Get{param.EntityName}Input.cs", tableName, str_generate, FileType.InputModel, filePrefixName, entityName, modulelogo);
                //生成 OutputModel æ–‡ä»¶
                str_generate = OutputModel_Generate.CreateQueryModelLText(modulelogo, chinaComment, columnList, entityName);
                tf = TextHelper.Export2File(tbPath.Text, tableName, str_generate, FileType.OutputModel, filePrefixName, entityName, modulelogo);
                //2、生成 CreateDto æ–‡ä»¶
                str_generate = CreateDto_Generate.CreateText(param);
                tf = TextHelper.Export2File_V2(entityFilePath, $"{param.EntityName}CreateDto.cs", tableName, str_generate, FileType.InputModel, filePrefixName, entityName, modulelogo);
                //生成Controller文件
                //str_generate = Controller_Generate.CreateText(modulelogo, chinaComment, columnList, entityName, orderByName);
                //tf = TextHelper.Export2File(tbPath.Text, tableName, str_generate, FileType.Controller, filePrefixName, entityName, modulelogo);
                //3、生成 UpdateDto æ–‡ä»¶
                str_generate = UpdateDto_Generate.CreateText(param);
                tf = TextHelper.Export2File_V2(entityFilePath, $"{param.EntityName}UpdateDto.cs", tableName, str_generate, FileType.InputModel, filePrefixName, entityName, modulelogo);
                //生成Services接口文件
                str_generate = Services_Interface_Generate.CreateText(wcf_NameSpacePath, modulelogo, entityName, chinaComment, addEntityParam);
                tf = TextHelper.Export2File(tbPath.Text, tableName, str_generate, FileType.WCF_InterFace, filePrefixName, entityName, modulelogo);
                //4、生成 CreateOrUpdateDtoBase æ–‡ä»¶
                str_generate = CreateOrUpdateDtoBase_Generate.CreateText(param);
                tf = TextHelper.Export2File_V2(entityFilePath, $"{param.EntityName}CreateOrUpdateDtoBase.cs", tableName, str_generate, FileType.InputModel, filePrefixName, entityName, modulelogo);
                //5、生成 Dto æ–‡ä»¶
                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);
                //7、生成 Import æ–‡ä»¶
                str_generate = ImportModel_Generate.CreateText(param);
                tf = TextHelper.Export2File_V2(entityFilePath, $"{param.EntityName}sImportModel.cs", tableName, str_generate, FileType.InputModel, filePrefixName, entityName, modulelogo);
                #endregion
                #region AppSerivice
                //8、生成 IAppService æ–‡ä»¶
                var appServiceFilePath = tbPath.Text + @"\server\src\CMS.Plugin." + tb_WCF_NameSpacePath.Text.Trim() + @".Application.Contracts\Services";
                str_generate = IAppService_Generate.CreateText(param);
                tf = TextHelper.Export2File_V2(appServiceFilePath, $"I{param.EntityName}AppService.cs", tableName, str_generate, FileType.InputModel, filePrefixName, entityName, modulelogo);
                //9、生成 AppService æ–‡ä»¶
                appServiceFilePath = tbPath.Text + @"\server\src\CMS.Plugin." + tb_WCF_NameSpacePath.Text.Trim() + @".Application\Implements";
                str_generate = AppService_Generate.CreateText(param);
                tf = TextHelper.Export2File_V2(appServiceFilePath, $"{param.EntityName}AppService.cs", tableName, str_generate, FileType.InputModel, filePrefixName, entityName, modulelogo);
                //生成Services接口实现文件
                str_generate = Services_InterfaceRealize_Generate.CreateText(wcf_NameSpacePath, modulelogo,
                    entityName, chinaComment, filePrefixName, primaryKey, tableAlias, addEntityParam, columnList, groupName);
                tf = TextHelper.Export2File(tbPath.Text, tableName, str_generate, FileType.WCF_InterFaceRealize, filePrefixName, entityName, modulelogo);
                #endregion
                #region Contorller
                //10、生成 Contorller æ–‡ä»¶
                var continerlllePath = tbPath.Text + @"\server\src\CMS.Plugin." + tb_WCF_NameSpacePath.Text.Trim() + @"\Controller";
                str_generate = Controller_Generate.CreateText(param);
                tf = TextHelper.Export2File_V2(continerlllePath, $"{param.EntityName}Controller.cs", tableName, str_generate, FileType.InputModel, filePrefixName, entityName, modulelogo);
                #endregion
                #region Domain
                //11、生成 IRepository æ–‡ä»¶
                var iRepositoryPath = tbPath.Text + @"\server\src\CMS.Plugin." + tb_WCF_NameSpacePath.Text.Trim() + @".Domain\" + tb_EntityName.Text.Trim(); ;
                str_generate = IRepository_Generate.CreateText(param);
                tf = TextHelper.Export2File_V2(iRepositoryPath, $"I{param.EntityName}Repository.cs", tableName, str_generate, FileType.InputModel, filePrefixName, entityName, modulelogo);
                #endregion
                #region EntityFrameworkCore
                //12、生成 EfCoreRepository æ–‡ä»¶
                var efCoreRepositoryPath = tbPath.Text + @"\server\src\CMS.Plugin." + tb_WCF_NameSpacePath.Text.Trim() + @".EntityFrameworkCore\Repositories";
                str_generate = EfCoreRepository_Generate.CreateText(param);
                tf = TextHelper.Export2File_V2(efCoreRepositoryPath, $"EfCore{param.EntityName}Repository.cs", tableName, str_generate, FileType.InputModel, filePrefixName, entityName, modulelogo);
                #endregion
                ////生成 OutputModel æ–‡ä»¶
                //str_generate = OutputModel_Generate.CreateQueryModelLText(modulelogo, chinaComment, columnList, entityName);
                //tf = TextHelper.Export2File(tbPath.Text, tableName, str_generate, FileType.OutputModel, filePrefixName, entityName, modulelogo);
                ////生成Controller文件
                ////str_generate = Controller_Generate.CreateText(modulelogo, chinaComment, columnList, entityName, orderByName);
                ////tf = TextHelper.Export2File(tbPath.Text, tableName, str_generate, FileType.Controller, filePrefixName, entityName, modulelogo);
                ////生成Services接口文件
                //str_generate = Services_Interface_Generate.CreateText(wcf_NameSpacePath, modulelogo, entityName, chinaComment, addEntityParam);
                //tf = TextHelper.Export2File(tbPath.Text, tableName, str_generate, FileType.WCF_InterFace, filePrefixName, entityName, modulelogo);
                ////生成Services接口实现文件
                //str_generate = Services_InterfaceRealize_Generate.CreateText(wcf_NameSpacePath, modulelogo,
                //    entityName, chinaComment, filePrefixName, primaryKey, tableAlias, addEntityParam, columnList, groupName);
                //tf = TextHelper.Export2File(tbPath.Text, tableName, str_generate, FileType.WCF_InterFaceRealize, filePrefixName, entityName, modulelogo);
                /*
                //生成存储过程文件
@@ -218,7 +330,7 @@
            }
            //MessageBox.Show("生成文件成功!");
            //成功之后打开文件夹
            using (System.Diagnostics.Process.Start(this.tbPath.Text + "\\" + this.tb_TableName.Text))
            using (System.Diagnostics.Process.Start(this.tbPath.Text))
            {
            }
@@ -319,10 +431,10 @@
        private void MainForm_Load(object sender, EventArgs e)
        {
            tb_EntityProName.Enabled = false;
            //tb_EntityProName.Enabled = false;
            tb_FileName.Enabled = false;
            tb_Modulelogo.Enabled = false;
            tb_WCF_NameSpacePath.Enabled = false;
            tb_WCF_NameSpacePath.Enabled = true;
            tb_RoutePrefix.Enabled = false;
        }