From d6a0e5667b4dde018b8244808fcc33f68f5b07ad Mon Sep 17 00:00:00 2001 From: Junjie <540245094@qq.com> Date: 星期二, 02 七月 2024 09:54:25 +0800 Subject: [PATCH] # --- zy-asrs-framework/src/main/java/com/zy/asrs/framework/generators/BetterGenerator.java | 130 ++++++++++++++++++++++++++++++++++++++++++- 1 files changed, 126 insertions(+), 4 deletions(-) diff --git a/zy-asrs-framework/src/main/java/com/zy/asrs/framework/generators/BetterGenerator.java b/zy-asrs-framework/src/main/java/com/zy/asrs/framework/generators/BetterGenerator.java index 2ba3ccc..5895730 100644 --- a/zy-asrs-framework/src/main/java/com/zy/asrs/framework/generators/BetterGenerator.java +++ b/zy-asrs-framework/src/main/java/com/zy/asrs/framework/generators/BetterGenerator.java @@ -41,6 +41,7 @@ public String username; public String password; public String table; + public String tableName; public String packagePath; public boolean controller = true; public boolean service = true; @@ -71,6 +72,7 @@ private String systemPackage; private String itemName; private String tableColumns; + private String formEditColumns; public void build() throws Exception { init(); @@ -163,6 +165,7 @@ } itemName = packagePathSplit[packagePathSplit.length - 1]; tableColumns = createTableColumns(); + formEditColumns = createFormEditColumns(); } private String readFile(String template){ @@ -190,6 +193,7 @@ if(!writerFile.exists()){ content=content. replaceAll("@\\{TABLENAME}", table) + .replaceAll("@\\{TABLEDESC}", tableName) .replaceAll("@\\{ENTITYIMPORT}", entityImport) .replaceAll("@\\{ENTITYCONTENT}", entityContent) .replaceAll("@\\{ENTITYNAME}", fullEntityName) @@ -212,6 +216,7 @@ .replaceAll("@\\{UPCASEMARJORCOLUMN}", GeneratorUtils.firstCharConvert(primaryKeyColumn, false)) .replaceAll("@\\{SYSTEMPACKAGE}",systemPackage) .replaceAll("@\\{TABLECOLUMNS}", tableColumns) + .replaceAll("@\\{FORMEDITCOLUMNS}", formEditColumns) ; writerFile.createNewFile(); BufferedWriter writer=new BufferedWriter(new FileWriter(writerFile)); @@ -227,7 +232,13 @@ private void gainDbInfo() throws Exception { Connection conn; if (null == this.sqlOsType) { - throw new RuntimeException("璇锋寚瀹氭暟鎹簱绫诲瀷锛�"); + throw new RuntimeException("璇烽�夋嫨sqlOsType锛�"); + } + if (null == this.table) { + throw new RuntimeException("璇疯緭鍏able锛�"); + } + if (null == this.tableName) { + throw new RuntimeException("璇疯緭鍏ableName锛�"); } switch (this.sqlOsType) { case MYSQL: @@ -775,13 +786,20 @@ sb.append(column.getHumpName()); } sb.append("',\n") - .append(" valueType: 'text',\n"); + .append(" valueType: 'text',\n") + .append(" hidden: false,\n") + .append(" width: 140,\n"); if (column.isMajor()) { sb.append(" copyable: true,\n"); } sb.append(" filterDropdown: (props) => <").append(getAntProFilterType(column)).append("\n") - .append(" name='").append(column.getHumpName()).append("'\n") - .append(" {...props}\n") + .append(" name='").append(column.getHumpName()).append("'\n"); + + if (!Cools.isEmpty(column.getForeignKey())) { + sb.append(" major='").append(GeneratorUtils.firstCharConvert(column.getForeignKey())).append("'\n"); + } + + sb.append(" {...props}\n") .append(" actionRef={actionRef}\n") .append(" setSearchParam={setSearchParam}\n"); if (!Cools.isEmpty(column.getEnums())) { @@ -839,8 +857,112 @@ /************************************** Edit鍔ㄦ�佸瓧娈� ********************************************/ /**********************************************************************************************/ + private String createFormEditColumns() { + StringBuilder sb = new StringBuilder(); + int times = 0; + boolean has = false;boolean init = false; + for (Column column : columns) { + if (column.isPrimaryKey() + || column.getHumpName().equals("deleted") + || column.getHumpName().equals("hostId") + ) { + continue; + } + if (times%2 == 0) { + sb.append(" <ProForm.Group>\n"); + has = true;init=true; + } + String itemType = "ProFormText"; + String precision = ""; + switch (column.getType()) { + case "Boolean": + itemType = "ProFormText"; + break; + case "Short": + itemType = "ProFormDigit"; + precision = "0"; + break; + case "Integer": + itemType = "ProFormDigit"; + precision = "0"; + break; + case "Long": + itemType = "ProFormDigit"; + precision = "0"; + break; + case "Double": + itemType = "ProFormDigit"; + precision = "2"; + break; + case "String": + itemType = "ProFormText"; + break; + case "Date": + itemType = "ProFormDateTimePicker"; + break; + default: + break; + } + if (!Cools.isEmpty(column.getEnums())) { + itemType = "ProFormSelect"; + } + if (!Cools.isEmpty(column.getForeignKey())) { + itemType = "ProFormSelect"; + } + sb.append(" <").append(itemType).append("\n") + .append(" name=\"").append(column.getHumpName()).append("\"\n") + .append(" label=\"").append(column.getComment()).append("\"\n") + .append(" colProps={{ md: 12, xl: 12 }}\n"); + // 鏁板瓧灏忔暟鐐� + if (!Cools.isEmpty(precision) && Cools.isEmpty(column.getEnums())) { + sb.append(" fieldProps={{ precision: ").append(precision).append(" }}\n"); + } + // 闈炵┖ + if (column.isNotNull()) { + sb.append(" rules={[{ required: true }]}\n"); + } + + // 鏋氫妇 + if (!Cools.isEmpty(column.getEnums())) { + sb.append(" options={[\n"); + for (Map<String, Object> map : column.getEnums()) { + for (Map.Entry<String, Object> entry : map.entrySet()){ + sb.append(" { label: '").append(entry.getValue()).append("', value: ").append(entry.getKey()).append(" },\n"); + } + } + sb.append(" ]}\n"); + } + + // 鏃堕棿 + if ("Date".equals(column.getType())) { + sb.append(" transform={(value) => moment(value).toISOString()}\n"); + } + + // 鍏宠仈琛� + if (!Cools.isEmpty(column.getForeignKey())) { + sb.append(" showSearch\n") + .append(" debounceTime={300}\n") + .append(" request={async ({ keyWords }) => {\n") + .append(" const resp = await Http.doPostForm('api/").append(GeneratorUtils.firstCharConvert(column.getForeignKey())).append("/query', { condition: keyWords });\n") + .append(" return resp.data;\n") + .append(" }}\n"); + } + + sb.append(" />\n"); + + if (times%2 != 0) { + sb.append(" </ProForm.Group>\n"); + has = false; + } + times++; + } + if (init && has) { + sb.append(" </ProForm.Group>\n"); + } + return sb.toString(); + } } -- Gitblit v1.9.1