From 63328dd80adc6331db581dda6418308e6fd4da12 Mon Sep 17 00:00:00 2001
From: maven <2163098428@qq.com>
Date: 星期二, 13 一月 2026 16:50:21 +0800
Subject: [PATCH] Merge remote-tracking branch 'origin/dev_New' into dev_New

---
 src/main/java/com/ruoyi/CodeGenerator.java |  130 +++++++++++++++++++++++++++++++++++++++++++
 1 files changed, 130 insertions(+), 0 deletions(-)

diff --git a/src/main/java/com/ruoyi/CodeGenerator.java b/src/main/java/com/ruoyi/CodeGenerator.java
new file mode 100644
index 0000000..9e75ced
--- /dev/null
+++ b/src/main/java/com/ruoyi/CodeGenerator.java
@@ -0,0 +1,130 @@
+package com.ruoyi;
+
+import com.baomidou.mybatisplus.annotation.FieldFill;
+import com.baomidou.mybatisplus.annotation.IdType;
+import com.baomidou.mybatisplus.core.exceptions.MybatisPlusException;
+import com.baomidou.mybatisplus.core.toolkit.StringUtils;
+import com.baomidou.mybatisplus.generator.FastAutoGenerator;
+import com.baomidou.mybatisplus.generator.config.*;
+import com.baomidou.mybatisplus.generator.config.converts.MySqlTypeConvert;
+import com.baomidou.mybatisplus.generator.config.po.TableField;
+import com.baomidou.mybatisplus.generator.config.rules.DbColumnType;
+import com.baomidou.mybatisplus.generator.config.rules.NamingStrategy;
+import com.baomidou.mybatisplus.generator.engine.FreemarkerTemplateEngine;
+import com.baomidou.mybatisplus.generator.fill.Column;
+
+import java.util.Collections;
+import java.util.Scanner;
+
+// 婕旂ず渚嬪瓙锛屾墽琛� main 鏂规硶鎺у埗鍙拌緭鍏ユā鍧楄〃鍚嶅洖杞﹁嚜鍔ㄧ敓鎴愬搴旈」鐩洰褰曚腑
+public class CodeGenerator {
+
+    public static String database_url = "jdbc:mysql://127.0.0.1:3306/product-inventory-management";
+    public static String database_username = "root";
+    public static String database_password= "123456";
+    public static String author = "鑺杞欢锛堟睙鑻忥級鏈夐檺鍏徃";
+    public static String model = "quality"; // 妯″潡
+    public static String setParent = "com.ruoyi."+ model; // 鍖呰矾寰�
+    public static String tablePrefix = ""; // 璁剧疆杩囨护琛ㄥ墠缂�
+    public static void main(String[] args) {
+        String projectPath = System.getProperty("user.dir");
+        FastAutoGenerator.create(database_url, database_username, database_password)
+                // 鍏ㄥ眬閰嶇疆
+                .globalConfig(builder -> {
+                    builder.author(author) // 璁剧疆浣滆��
+                            .commentDate("yyyy-MM-dd hh:mm:ss")   //娉ㄩ噴鏃ユ湡
+                            .outputDir(projectPath  + "/src/main/java") // 鎸囧畾杈撳嚭鐩綍
+                            .disableOpenDir() //绂佹鎵撳紑杈撳嚭鐩綍锛岄粯璁ゆ墦寮�
+                            .enableSwagger() // 寮�鍚痵wagger
+
+                    ;
+                })
+                // 鏁版嵁婧愰厤缃紙鏍稿績锛氳嚜瀹氫箟绫诲瀷杞崲锛屽己鍒秚enant_id涓篖ong锛�
+                .dataSourceConfig(builder -> {
+                    builder.typeConvert(new MySqlTypeConvert() {
+                        /**
+                         * 鑷畾涔夊瓧娈电被鍨嬭浆鎹�
+                         * @param globalConfig 鍏ㄥ眬閰嶇疆
+                         * @param tableField 琛ㄥ瓧娈典俊鎭�
+                         * @return 杞崲鍚庣殑瀛楁绫诲瀷
+                         */
+                        @Override
+                        public DbColumnType processTypeConvert(GlobalConfig globalConfig, TableField tableField) {
+                            // 寮哄埗tenant_id瀛楁绫诲瀷涓篖ong
+                            if ("tenant_id".equalsIgnoreCase(tableField.getName())) {
+                                return DbColumnType.LONG;
+                            }
+                            // 鍏朵粬瀛楁浣跨敤榛樿杞崲瑙勫垯
+                            return (DbColumnType) super.processTypeConvert(globalConfig, tableField);
+                        }
+                    });
+                })
+                // 鍖呴厤缃�
+                .packageConfig(builder -> {
+                    builder.entity("pojo");
+                    builder.parent(setParent) // 璁剧疆鐖跺寘鍚�
+                            .pathInfo(Collections.singletonMap(OutputFile.xml, projectPath  +  "/src/main/resources/mapper/"+model)); // 璁剧疆mapperXml鐢熸垚璺緞
+                })
+                // 绛栫暐閰嶇疆
+                .strategyConfig(builder -> {
+                    builder.addInclude(scanner("琛ㄥ悕锛屽涓┖鏍煎垎鍓�").split(" ")) // 璁剧疆闇�瑕佺敓鎴愮殑琛ㄥ悕
+                            .addTablePrefix(tablePrefix) // 璁剧疆杩囨护琛ㄥ墠缂�
+                            // Entity 绛栫暐閰嶇疆
+                            .entityBuilder()
+                            .enableLombok() //寮�鍚� Lombok
+                            .naming(NamingStrategy.underline_to_camel)  //鏁版嵁搴撹〃鏄犲皠鍒板疄浣撶殑鍛藉悕绛栫暐锛氫笅鍒掔嚎杞┘宄板懡
+                            .columnNaming(NamingStrategy.underline_to_camel)    //鏁版嵁搴撹〃瀛楁鏄犲皠鍒板疄浣撶殑鍛藉悕绛栫暐锛氫笅鍒掔嚎杞┘宄板懡
+                            .enableFileOverride() // 瑕嗙洊宸茬粡鐢熸垚鐨凟ntity鏂囦欢
+                            .logicDeleteColumnName("state")
+                            .addTableFills(
+                                    new Column("create_time", FieldFill.INSERT),
+                                    new Column("update_time", FieldFill.INSERT_UPDATE),
+                                    new Column("create_user", FieldFill.INSERT),
+                                    new Column("update_user", FieldFill.INSERT_UPDATE),
+                                    new Column("tenant_id", FieldFill.INSERT)
+                            )
+                            .idType(IdType.AUTO) // 鑷涓婚敭
+
+                            // Mapper 绛栫暐閰嶇疆
+                            .mapperBuilder()
+                            .enableFileOverride() // 瑕嗙洊宸茬敓鎴怣apper鏂囦欢
+                            .enableBaseResultMap() // 鑷姩鐢熸垚resultMap
+                            .mapperAnnotation(org.apache.ibatis.annotations.Mapper.class)
+
+                            // Service 绛栫暐閰嶇疆
+                            .serviceBuilder()
+                            .formatServiceFileName("%sService") //鏍煎紡鍖� service 鎺ュ彛鏂囦欢鍚嶇О锛�%s杩涜鍖归厤琛ㄥ悕锛屽 UserService
+                            .formatServiceImplFileName("%sServiceImpl") //鏍煎紡鍖� service 瀹炵幇绫绘枃浠跺悕绉帮紝%s杩涜鍖归厤琛ㄥ悕锛屽 UserServiceImpl
+                            .enableFileOverride() // 瑕嗙洊宸茬敓鎴愭枃浠�
+
+                            // Controller 绛栫暐閰嶇疆
+                            .controllerBuilder()
+                            .enableFileOverride() // 瑕嗙洊宸茬敓鎴愭枃浠�
+                            .enableRestStyle() // 寮�鍚敓鎴怈RestController 鎺у埗鍣�
+                    ;
+                })
+                //5銆佹ā鏉垮紩鎿�
+                .templateEngine(new FreemarkerTemplateEngine())	//榛樿
+                .execute();
+    }
+
+    /**
+     * <p>
+     * 璇诲彇鎺у埗鍙板唴瀹�
+     * </p>
+     */
+    public static String scanner(String tip) {
+        Scanner scanner = new Scanner(System.in);
+        StringBuilder help = new StringBuilder();
+        help.append("璇疯緭鍏�" + tip + "锛�");
+        System.out.println(help.toString());
+        if (scanner.hasNext()) {
+            String ipt = scanner.next();
+
+            if (StringUtils.isNotBlank(ipt)) {
+                return ipt;
+            }
+        }
+        throw new MybatisPlusException("璇疯緭鍏ユ纭殑" + tip + "锛�");
+    }
+}

--
Gitblit v1.9.3