#
Junjie
2024-07-04 7a41565df8f9daf81889b504062d25a3b00d8400
zy-asrs-framework/src/main/java/com/zy/asrs/framework/generators/CoolGenerator.java
@@ -49,10 +49,11 @@
    public boolean entity = true;
    public boolean xml = true;
    public boolean html = true;
    public boolean htmlDetail = false;
    public boolean js = true;
    public boolean sql = true;
    public SqlOsType sqlOsType;
    public String backendPrefixPath;
    public String frontendPrefixPath;
    private List<Column> columns = new ArrayList<>();
    private String fullEntityName;
@@ -70,6 +71,7 @@
    private String majorColumn;
    private String systemPackagePath;
    private String systemPackage;
    private String itemName;
    public void build() throws Exception {
        init();
@@ -82,48 +84,49 @@
            switch (template){
                case "Controller":
                    pass = controller;
                    directory = JAVA_DIR + packagePath.replace(".", "/")+"/"+templatePath+"/";
                    directory = backendPrefixPath + JAVA_DIR + packagePath.replace(".", "/")+"/"+templatePath+"/";
                    fileName = fullEntityName+template+".java";
                    break;
                case "Service":
                    pass = service;
                    directory = JAVA_DIR + packagePath.replace(".", "/")+"/"+templatePath+"/";
                    directory = backendPrefixPath + JAVA_DIR + packagePath.replace(".", "/")+"/"+templatePath+"/";
                    fileName = fullEntityName+template+".java";
                    break;
                case "ServiceImpl":
                    pass = service;
                    directory = JAVA_DIR + packagePath.replace(".", "/")+"/"+templatePath+"/";
                    directory = backendPrefixPath + JAVA_DIR + packagePath.replace(".", "/")+"/"+templatePath+"/";
                    fileName = fullEntityName+template+".java";
                    break;
                case "Mapper":
                    pass = mapper;
                    directory = JAVA_DIR + packagePath.replace(".", "/")+"/"+templatePath+"/";
                    directory = backendPrefixPath + JAVA_DIR + packagePath.replace(".", "/")+"/"+templatePath+"/";
                    fileName = fullEntityName+template+".java";
                    break;
                case "Entity":
                    pass = entity;
                    directory = JAVA_DIR + packagePath.replace(".", "/")+"/"+templatePath+"/";
                    directory = backendPrefixPath + JAVA_DIR + packagePath.replace(".", "/")+"/"+templatePath+"/";
                    fileName = fullEntityName+".java";
                    break;
                case "Xml":
                    pass = xml;
                    directory = XML_DIR;
                    directory = backendPrefixPath + XML_DIR + itemName + "/";
                    fileName = fullEntityName+"Mapper.xml";
                    break;
                case "Sql":
                    pass = sql;
                    directory = backendPrefixPath + JAVA_DIR;
                    fileName = simpleEntityName+".sql";
                    break;
                case "Html":
                    pass = html;
                    directory = HTML_DIR + "/views/" + simpleEntityName + "/";
                    directory = frontendPrefixPath + HTML_DIR + "/views/" + simpleEntityName + "/";
                    fileName = simpleEntityName+".html";
                    break;
                case "Js":
                    pass = js;
                    directory = HTML_DIR + "/static/js/" + simpleEntityName + "/";
                    directory = frontendPrefixPath + HTML_DIR + "/static/js/" + simpleEntityName + "/";
                    fileName = simpleEntityName+".js";
                    break;
                case "Sql":
                    pass = sql;
                    directory = JAVA_DIR;
                    fileName = simpleEntityName+".sql";
                default:
                    break;
            }
@@ -138,7 +141,6 @@
        fullEntityName = GeneratorUtils.getNameSpace(table);
        simpleEntityName = fullEntityName.substring(0, 1).toLowerCase()+fullEntityName.substring(1);
        entityContent = createEntityMsg();
        xmlContent = createXmlMsg();
        htmlContent = createHtmlMsg();
        htmlDialogContent = createHtmlDialogMsg();
        jsTableContent = createJsTableMsg();
@@ -159,8 +161,8 @@
                    systemPackage = systemPackage + split[i-1] + ".";
                }
            }
        }
        itemName = packagePathSplit[packagePathSplit.length - 1];
    }
    private String readFile(String template){
@@ -183,6 +185,7 @@
        if(!codeDirectory.exists()){
            codeDirectory.mkdirs();
        }
        File writerFile=new File(directory+fileName);
        if(!writerFile.exists()){
            content=content.
@@ -193,7 +196,8 @@
                    .replaceAll("@\\{SIMPLEENTITYNAME}", simpleEntityName)
                    .replaceAll("@\\{UENTITYNAME}", simpleEntityName)
                    .replaceAll("@\\{COMPANYNAME}",packagePath)
                    .replaceAll("@\\{XMLCONTENT}", xmlContent)
                    .replaceAll("@\\{ITEMNAME}",itemName)
//                    .replaceAll("@\\{XMLCONTENT}", xmlContent)
                    .replaceAll("@\\{HTMLCONTENT}", htmlContent)
                    .replaceAll("@\\{HTMLDIALOGCONTENT}", htmlDialogContent)
                    .replaceAll("@\\{JSTABLECONTENT}", jsTableContent)
@@ -201,7 +205,8 @@
                    .replaceAll("@\\{JSDATECONTENT}", jsDateContent)
                    .replaceAll("@\\{JSPRIMARYKEYDOMS}", jsPrimaryKeyDoms)
                    .replaceAll("@\\{MAJORCOLUMN}", GeneratorUtils.humpToLine(majorColumn))
                    .replaceAll("@\\{MAJORCOLUMN_UP}", GeneratorUtils.firstCharConvert(GeneratorUtils.humpToLine(majorColumn), false))
                    .replaceAll("@\\{MAJORCOLUMN0}", GeneratorUtils.firstCharConvert(majorColumn, false))
                    .replaceAll("@\\{MAJORCOLUMN_UP}", GeneratorUtils.firstCharConvert(majorColumn, false))
                    .replaceAll("@\\{PRIMARYKEYCOLUMN}", GeneratorUtils.firstCharConvert(primaryKeyColumn, false))
                    .replaceAll("@\\{PRIMARYKEYCOLUMN0}", GeneratorUtils.firstCharConvert(primaryKeyColumn, true))
                    .replaceAll("@\\{UPCASEMARJORCOLUMN}", GeneratorUtils.firstCharConvert(primaryKeyColumn, false))
@@ -225,7 +230,7 @@
        }
        switch (this.sqlOsType) {
            case MYSQL:
                Class.forName("com.mysql.jdbc.Driver").newInstance();
                Class.forName("com.mysql.cj.jdbc.Driver").newInstance();
                conn = DriverManager.getConnection("jdbc:mysql://"+url, username, password);
                this.columns = getMysqlColumns(conn, table, true, sqlOsType);
                break;
@@ -357,7 +362,7 @@
            return null;
        }
        StringBuilder sb = new StringBuilder();
        StringBuilder entityIm = new StringBuilder("import com.core.common.Cools;");
        StringBuilder entityIm = new StringBuilder();
        boolean setTableField = true;
        boolean setTableId = true;
        boolean setDateTimeFormat = true;
@@ -385,11 +390,6 @@
            // 主键修饰
            if (column.isMainKey()){
                if (setTableId){
                    entityIm.append("import com.baomidou.mybatisplus.annotations.TableId;").append("\n")
                            .append("import com.baomidou.mybatisplus.enums.IdType;").append("\n");
                    setTableId = false;
                }
                if (column.isOnly()){
                    sb.append("    ")
                            .append("@TableId(value = \"")
@@ -406,24 +406,10 @@
            }
            // 外键修饰
            if (!Cools.isEmpty(column.getForeignKeyMajor())){
                entityIm.append("import com.core.common.SpringUtils;\n")
                        .append("import ").append(SYSTEM_MODEL.contains(column.getForeignKey())?systemPackagePath:packagePath).append(".service.").append(column.getForeignKey()).append("Service;\n")
                        .append("import ").append(SYSTEM_MODEL.contains(column.getForeignKey())?systemPackagePath:packagePath).append(".entity.").append(column.getForeignKey()).append(";\n");
            }
            // 命名转换注解
            if (!column.getName().equals(column.getHumpName())){
                if (setTableField){
                    entityIm.append("import com.baomidou.mybatisplus.annotations.TableField;").append("\n");
                    setTableField = false;
                }
            if (column.getName().equals("deleted")) {
                entityIm.append("import com.baomidou.mybatisplus.annotation.TableLogic;\n");
                sb.append("    ")
                        .append("@TableField(\"")
                        .append(column.getName())
                        .append("\")")
                        .append("\n");
                        .append("@TableLogic\n");
            }
            if ("Date".equals(column.getType())){
@@ -491,7 +477,7 @@
                        .append(column.getHumpName())
                        .append(");\n")
                        .append("    }\n\n");
            // 枚举字段增加$格式化
                // 枚举字段增加$格式化
            } else if (!Cools.isEmpty(column.getEnums())){
                sb.append("    public String get")
                        .append(column.getHumpName().substring(0, 1).toUpperCase()).append(column.getHumpName().substring(1))
@@ -516,7 +502,7 @@
                sb.append("    public String get").append(column.getHumpName().substring(0, 1).toUpperCase()).append(column.getHumpName().substring(1)).append("\\$").append("(){\n")
                        .append("        ").append(column.getForeignKey()).append("Service service = SpringUtils.getBean(").append(column.getForeignKey()).append("Service.class);\n")
                        .append("        ").append(column.getForeignKey()).append(" ").append(GeneratorUtils.firstCharConvert(column.getForeignKey()))
                        .append(" = service.selectById(this.").append(column.getHumpName()).append(");\n")
                        .append(" = service.getById(this.").append(column.getHumpName()).append(");\n")
                        .append("        if (!Cools.isEmpty(").append(GeneratorUtils.firstCharConvert(column.getForeignKey())).append(")){\n")
                        .append("            return String.valueOf(").append(GeneratorUtils.firstCharConvert(column.getForeignKey())).append(".get").append(column.getForeignKeyMajor()).append("());\n")
                        .append("        }\n")
@@ -563,25 +549,6 @@
            }
        }
        return defaultMajor;
    }
    /**********************************************************************************************/
    /*************************************** Xml动态字段 ********************************************/
    /**********************************************************************************************/
    private String createXmlMsg(){
        StringBuilder sb = new StringBuilder();
        for (Column column : columns){
            sb.append("        ")
                    .append("<")
                    .append(column.isOnly()?"id":"result")
                    .append(" column=\"")
                    .append(column.getName())
                    .append("\" property=\"")
                    .append(column.getHumpName())
                    .append("\" />\n");
        }
        return sb.toString();
    }
    /**********************************************************************************************/
@@ -762,7 +729,7 @@
                sb.append("            layDate.render({\n")
                        .append("                elem: '#").append(column.getHumpName()).append("\\\\\\\\\\$',\n")
                        .append("                type: 'datetime',\n")
                        .append("                value: data!==undefined?data['").append(column.getHumpName()).append("$'").append("]:null\n")
                        .append("                value: data!==undefined?data['").append(column.getHumpName()).append("\\$'").append("]:null\n")
                        .append("            });\n");
            }
        }