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