|  |  | 
 |  |  |     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; | 
 |  |  | 
 |  |  |     private String majorColumn; | 
 |  |  |     private String systemPackagePath; | 
 |  |  |     private String systemPackage; | 
 |  |  |     private String itemName; | 
 |  |  |  | 
 |  |  |     public void build() throws Exception { | 
 |  |  |         init(); | 
 |  |  | 
 |  |  |             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; | 
 |  |  |             } | 
 |  |  | 
 |  |  |         fullEntityName = GeneratorUtils.getNameSpace(table); | 
 |  |  |         simpleEntityName = fullEntityName.substring(0, 1).toLowerCase()+fullEntityName.substring(1); | 
 |  |  |         entityContent = createEntityMsg(); | 
 |  |  |         xmlContent = createXmlMsg(); | 
 |  |  |         htmlContent = createHtmlMsg(); | 
 |  |  |         htmlDialogContent = createHtmlDialogMsg(); | 
 |  |  |         jsTableContent = createJsTableMsg(); | 
 |  |  | 
 |  |  |                     systemPackage = systemPackage + split[i-1] + "."; | 
 |  |  |                 } | 
 |  |  |             } | 
 |  |  |  | 
 |  |  |         } | 
 |  |  |         itemName = packagePathSplit[packagePathSplit.length - 1]; | 
 |  |  |     } | 
 |  |  |  | 
 |  |  |     private String readFile(String template){ | 
 |  |  | 
 |  |  |         if(!codeDirectory.exists()){ | 
 |  |  |             codeDirectory.mkdirs(); | 
 |  |  |         } | 
 |  |  |  | 
 |  |  |         File writerFile=new File(directory+fileName); | 
 |  |  |         if(!writerFile.exists()){ | 
 |  |  |             content=content. | 
 |  |  | 
 |  |  |                     .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) | 
 |  |  | 
 |  |  |                     .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)) | 
 |  |  | 
 |  |  |         } | 
 |  |  |         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; | 
 |  |  | 
 |  |  |             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; | 
 |  |  | 
 |  |  |  | 
 |  |  |             // 主键修饰 | 
 |  |  |             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 = \"") | 
 |  |  | 
 |  |  |  | 
 |  |  |             } | 
 |  |  |  | 
 |  |  |             // 外键修饰 | 
 |  |  |             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())){ | 
 |  |  | 
 |  |  |                         .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)) | 
 |  |  | 
 |  |  |                 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") | 
 |  |  | 
 |  |  |             } | 
 |  |  |         } | 
 |  |  |         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(); | 
 |  |  |     } | 
 |  |  |  | 
 |  |  |     /**********************************************************************************************/ | 
 |  |  | 
 |  |  |                 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"); | 
 |  |  |             } | 
 |  |  |         } |