From b016d1eb02dd09fd1ffcd24e4e6ddee72fd1b3d6 Mon Sep 17 00:00:00 2001
From: luxiaotao1123 <t1341870251@163.com>
Date: 星期三, 28 二月 2024 10:27:25 +0800
Subject: [PATCH] #
---
zy-asrs-framework/src/main/java/com/zy/asrs/framework/generators/BetterGenerator.java | 136 ++++++++++++++++++++++++++++++++++++++++++++-
1 files changed, 132 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..a557854 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,118 @@
/************************************** 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 ("Date".equals(column.getType()) || !Cools.isEmpty(column.getEnums()) || !Cools.isEmpty(column.getForeignKeyMajor())){
+ // 鏃堕棿銆佹灇涓� 鏍煎紡鍖� 涓婚敭淇グ
+ sb.append(" placeholder=\"璇烽�夋嫨\"\n");
+ } else {
+ sb.append(" placeholder=\"璇疯緭鍏"\n");
+ }
+ // 闈炵┖
+ if (column.isNotNull()) {
+ sb.append(" rules={[{ required: true, message: \"").append(column.getComment()).append("涓嶈兘涓虹┖锛乗" }]}\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