Procházet zdrojové kódy

适配MySQL数据库

蔡鑫 před 3 roky
rodič
revize
91e8c342c1

+ 4 - 1
src/main/java/com/yonyou/occ/codegenerator/CodeGenerator.java

@@ -45,9 +45,10 @@ public class CodeGenerator {
     private final String moduleName;
     private final String templateDir = getClass().getResource("/").getPath() + "generator/";
     private final String isMain;
+    private final Boolean isMySql;
 
     public CodeGenerator(String oldBasePackage, String newBasePackage, String pdmFile, String tableCode,
-                         String referenceType, boolean ifUseCustDocDefRef, String author, String targetProjectRootPath, String isMain) {
+                         String referenceType, boolean ifUseCustDocDefRef, String author, String targetProjectRootPath, String isMain, Boolean isMySql) {
         this.oldBasePackage = oldBasePackage;
         this.newBasePackage = newBasePackage;
         this.pdmFile = pdmFile;
@@ -57,6 +58,7 @@ public class CodeGenerator {
         this.author = author;
         this.targetProjectRootPath = targetProjectRootPath;
         this.isMain = isMain;
+        this.isMySql = isMySql;
         moduleName = getModuleNameByTable(tableCode);
 
         final String[] array = {"ID", "DR", "TS", "CREATOR", "CREATION_TIME", "MODIFIER", "MODIFIED_TIME"};
@@ -165,6 +167,7 @@ public class CodeGenerator {
         data.put("author", author);
         data.put("table", table);
         data.put("isMain", isMain);
+        data.put("isMySql", isMySql);
         // 输出文件
         String fileName = table.getClassName();
         // 文件后缀名

+ 9 - 4
src/main/java/com/yonyou/occ/codegenerator/CodeGeneratorEntry.java

@@ -22,12 +22,12 @@ public class CodeGeneratorEntry {
     /**
      * PDM文件路径
      */
-    private static final String PDM_FILE = "E:\\Yonyou\\project\\OCC\\PDM\\demo.pdm";
+    private static final String PDM_FILE = "D:\\Yonyou\\project\\OCC\\occ-toolkit\\code\\KUSI-AS-ACTIVITY.pdm";
 
     /**
      * 物理表名称(英文逗号分隔)
      */
-    private static final String TABLE_CODES = "DEMO_PERSON_INFO";
+    private static final String TABLE_CODES = "AS_AFTER_ACTIVITY_ENROLL";
 
     /**
      * 参照类型
@@ -47,13 +47,18 @@ public class CodeGeneratorEntry {
     /**
      * 目标项目根路径
      */
-    private static final String TARGET_PROJECT_ROOT_PATH = "E:\\Yonyou\\project\\OTHER\\occ-toolkit\\code\\";
+    private static final String TARGET_PROJECT_ROOT_PATH = "D:\\Yonyou\\project\\OCC\\KuSi\\code\\kusi\\occ\\occ-after-sales-web\\";
 
     /**
      * 元数据参数(是否主业务对象 1:主业务对象)
      */
     private static final String IS_MAIN = "1";
 
+    /**
+     * 元数据参数(是否MySql数据库)
+     */
+    private static final Boolean IS_MYSQL = true;
+
     /**
      * 代码生成主函数
      *
@@ -66,7 +71,7 @@ public class CodeGeneratorEntry {
             }
             tableCode = tableCode.trim();
             CodeGenerator codeGenerator = new CodeGenerator(OLD_BASE_PACKAGE, NEW_BASE_PACKAGE, PDM_FILE, tableCode,
-                    REFERENCE_TYPE, IF_USE_CUST_DOC_DEF_REF, AUTHOR, TARGET_PROJECT_ROOT_PATH, IS_MAIN);
+                    REFERENCE_TYPE, IF_USE_CUST_DOC_DEF_REF, AUTHOR, TARGET_PROJECT_ROOT_PATH, IS_MAIN,IS_MYSQL);
             codeGenerator.run();
         }
     }

+ 3 - 3
src/main/java/com/yonyou/occ/codegenerator/GeneratorHelper.java

@@ -87,15 +87,15 @@ public class GeneratorHelper {
 //			return "Boolean";
 //		}
 
-		if (typeInDb.matches("NUMBER\\(\\s*\\d+\\s*\\)")) {
+		if (typeInDb.matches("NUMBER\\(\\s*\\d+\\s*\\)") || typeInDb.matches("INTEGER\\(\\s*\\d+\\s*\\)") || typeInDb.matches("TINYINT\\(\\s*\\d+\\s*\\)")) {
 			return "Integer";
 		}
 
-		if (typeInDb.matches("NUMBER\\(\\s*\\d+\\s*,\\s*\\d+\\s*\\)")) {
+		if (typeInDb.matches("NUMBER\\(\\s*\\d+\\s*,\\s*\\d+\\s*\\)") || typeInDb.matches("DECIMAL\\(\\s*\\d+\\s*,\\s*\\d+\\s*\\)")) {
 			return "BigDecimal";
 		}
 
-		if (typeInDb.equals("DATE")) {
+		if (typeInDb.equals("DATE") || typeInDb.equals("TIMESTAMP")) {
 			return "Date";
 		}
 

Rozdílová data souboru nebyla zobrazena, protože soubor je příliš velký
+ 2 - 2
src/main/resources/generator/metaData.ftl