From 50d74d230a1d3cdcf38f077270aef4d25dfba652 Mon Sep 17 00:00:00 2001
From: xiamaofa <951755725@qq.com>
Date: Thu, 11 Apr 2024 15:32:40 +0800
Subject: [PATCH] =?UTF-8?q?=E6=8F=92=E4=BB=B6=E6=BA=90=E7=A0=81?=
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
---
README.md | 3 +-
build.gradle | 122 +
encrypt.xml | 13 +
plugin.xml | 26 +
.../shsytzfsds/ServerTable/ServerTable.java | 42 +
.../ServerTable/ServerTableSheet.java | 43 +
.../shsytzfsds/ServerTable/TableDataPane.java | 94 +
.../ServerTable/TableDataPaneSheet.java | 90 +
.../DatasetComponent.java | 37 +
.../biPlublicServerTable/DatasetProvider.java | 18 +
.../data/feishu/DBConfig.java | 26 +
.../FeishuDatasetDatasourceGenerator.java | 28 +
.../data/feishu/FeishuRowIterator.java | 91 +
.../generator/DatasetGenerator.java | 37 +
.../generator/DatasetPageGenerator.java | 49 +
.../sheet/DatasetComponent.java | 37 +
.../sheet/DatasetProvider.java | 18 +
.../sheet/feishu/DBConfig.java | 26 +
.../FeishuDatasetDatasourceGenerator.java | 34 +
.../sheet/feishu/FeishuRowIterator.java | 100 +
.../sheet/generator/DatasetGenerator.java | 37 +
.../sheet/generator/DatasetPageGenerator.java | 49 +
.../plugin/shsytzfsds/constants/Result.java | 9 +
.../ControllerRegisterProvider.java | 20 +
.../shsytzfsds/controller/ControllerSelf.java | 255 +
.../plugin/shsytzfsds/db/bean/DBEntity.java | 73 +
.../db/controller/DBController.java | 153 +
.../eco/plugin/shsytzfsds/db/dao/DBDao.java | 66 +
.../univalsalServerTable/DataModel.java | 144 +
.../univalsalServerTable/DataModelSheet.java | 169 +
.../univalsalServerTable/TableData.java | 58 +
.../univalsalServerTable/TableDataBean.java | 63 +
.../TableDataBeanSheet.java | 63 +
.../univalsalServerTable/TableDataSheet.java | 58 +
.../UniversalServerTableData.java | 69 +
.../UniversalServerTableDataSheet.java | 67 +
.../plugin/shsytzfsds/utils/DataSetUtils.java | 89 +
.../eco/plugin/shsytzfsds/utils/FRUtils.java | 378 +
.../plugin/shsytzfsds/utils/FeiShuUtils.java | 290 +
.../plugin/shsytzfsds/utils/HttpUtils.java | 260 +
.../shsytzfsds/utils/ResponseUtils.java | 108 +
.../eco/plugin/shsytzfsds/utils/Utils.java | 385 +
.../WebResourceProvider.java | 35 +
.../com/eco/plugin/shsytzfsds/css/wink.css | 16 +
.../com/eco/plugin/shsytzfsds/html/dwb.html | 290 +
.../com/eco/plugin/shsytzfsds/html/sheet.html | 356 +
.../eco/plugin/shsytzfsds/js/bi/feishu.png | Bin 0 -> 1467 bytes
.../eco/plugin/shsytzfsds/js/bi/publicds.css | 5 +
.../eco/plugin/shsytzfsds/js/bi/publicds.js | 34 +
.../shsytzfsds/js/jquery/jquery-2.1.3.min.js | 4 +
.../shsytzfsds/js/jquery/jquery.tool.js | 1484 +++
.../plugin/shsytzfsds/js/layui/css/layui.css | 1 +
.../shsytzfsds/js/layui/css/modules/code.css | 1 +
.../css/modules/laydate/default/laydate.css | 1 +
.../css/modules/layer/default/icon-ext.png | Bin 0 -> 5911 bytes
.../layui/css/modules/layer/default/icon.png | Bin 0 -> 11493 bytes
.../layui/css/modules/layer/default/layer.css | 1 +
.../css/modules/layer/default/loading-0.gif | Bin 0 -> 5793 bytes
.../css/modules/layer/default/loading-1.gif | Bin 0 -> 701 bytes
.../css/modules/layer/default/loading-2.gif | Bin 0 -> 1787 bytes
.../shsytzfsds/js/layui/font/iconfont.eot | Bin 0 -> 46684 bytes
.../shsytzfsds/js/layui/font/iconfont.svg | 554 +
.../shsytzfsds/js/layui/font/iconfont.ttf | Bin 0 -> 46508 bytes
.../shsytzfsds/js/layui/font/iconfont.woff | Bin 0 -> 30628 bytes
.../shsytzfsds/js/layui/font/iconfont.woff2 | Bin 0 -> 25964 bytes
.../eco/plugin/shsytzfsds/js/layui/layui.js | 10543 ++++++++++++++++
.../com/eco/plugin/shsytzfsds/js/ui.js | 1789 +++
.../shsytzfsds/js/univalsalServerTable.js | 382 +
.../js/univalsalServerTableSheet.js | 493 +
69 files changed, 19785 insertions(+), 1 deletion(-)
create mode 100644 build.gradle
create mode 100644 encrypt.xml
create mode 100644 plugin.xml
create mode 100644 src/main/java/com/eco/plugin/shsytzfsds/ServerTable/ServerTable.java
create mode 100644 src/main/java/com/eco/plugin/shsytzfsds/ServerTable/ServerTableSheet.java
create mode 100644 src/main/java/com/eco/plugin/shsytzfsds/ServerTable/TableDataPane.java
create mode 100644 src/main/java/com/eco/plugin/shsytzfsds/ServerTable/TableDataPaneSheet.java
create mode 100644 src/main/java/com/eco/plugin/shsytzfsds/biPlublicServerTable/DatasetComponent.java
create mode 100644 src/main/java/com/eco/plugin/shsytzfsds/biPlublicServerTable/DatasetProvider.java
create mode 100644 src/main/java/com/eco/plugin/shsytzfsds/biPlublicServerTable/data/feishu/DBConfig.java
create mode 100644 src/main/java/com/eco/plugin/shsytzfsds/biPlublicServerTable/data/feishu/FeishuDatasetDatasourceGenerator.java
create mode 100644 src/main/java/com/eco/plugin/shsytzfsds/biPlublicServerTable/data/feishu/FeishuRowIterator.java
create mode 100644 src/main/java/com/eco/plugin/shsytzfsds/biPlublicServerTable/generator/DatasetGenerator.java
create mode 100644 src/main/java/com/eco/plugin/shsytzfsds/biPlublicServerTable/generator/DatasetPageGenerator.java
create mode 100644 src/main/java/com/eco/plugin/shsytzfsds/biPlublicServerTable/sheet/DatasetComponent.java
create mode 100644 src/main/java/com/eco/plugin/shsytzfsds/biPlublicServerTable/sheet/DatasetProvider.java
create mode 100644 src/main/java/com/eco/plugin/shsytzfsds/biPlublicServerTable/sheet/feishu/DBConfig.java
create mode 100644 src/main/java/com/eco/plugin/shsytzfsds/biPlublicServerTable/sheet/feishu/FeishuDatasetDatasourceGenerator.java
create mode 100644 src/main/java/com/eco/plugin/shsytzfsds/biPlublicServerTable/sheet/feishu/FeishuRowIterator.java
create mode 100644 src/main/java/com/eco/plugin/shsytzfsds/biPlublicServerTable/sheet/generator/DatasetGenerator.java
create mode 100644 src/main/java/com/eco/plugin/shsytzfsds/biPlublicServerTable/sheet/generator/DatasetPageGenerator.java
create mode 100644 src/main/java/com/eco/plugin/shsytzfsds/constants/Result.java
create mode 100644 src/main/java/com/eco/plugin/shsytzfsds/controller/ControllerRegisterProvider.java
create mode 100644 src/main/java/com/eco/plugin/shsytzfsds/controller/ControllerSelf.java
create mode 100644 src/main/java/com/eco/plugin/shsytzfsds/db/bean/DBEntity.java
create mode 100644 src/main/java/com/eco/plugin/shsytzfsds/db/controller/DBController.java
create mode 100644 src/main/java/com/eco/plugin/shsytzfsds/db/dao/DBDao.java
create mode 100644 src/main/java/com/eco/plugin/shsytzfsds/univalsalServerTable/DataModel.java
create mode 100644 src/main/java/com/eco/plugin/shsytzfsds/univalsalServerTable/DataModelSheet.java
create mode 100644 src/main/java/com/eco/plugin/shsytzfsds/univalsalServerTable/TableData.java
create mode 100644 src/main/java/com/eco/plugin/shsytzfsds/univalsalServerTable/TableDataBean.java
create mode 100644 src/main/java/com/eco/plugin/shsytzfsds/univalsalServerTable/TableDataBeanSheet.java
create mode 100644 src/main/java/com/eco/plugin/shsytzfsds/univalsalServerTable/TableDataSheet.java
create mode 100644 src/main/java/com/eco/plugin/shsytzfsds/univalsalServerTable/UniversalServerTableData.java
create mode 100644 src/main/java/com/eco/plugin/shsytzfsds/univalsalServerTable/UniversalServerTableDataSheet.java
create mode 100644 src/main/java/com/eco/plugin/shsytzfsds/utils/DataSetUtils.java
create mode 100644 src/main/java/com/eco/plugin/shsytzfsds/utils/FRUtils.java
create mode 100644 src/main/java/com/eco/plugin/shsytzfsds/utils/FeiShuUtils.java
create mode 100644 src/main/java/com/eco/plugin/shsytzfsds/utils/HttpUtils.java
create mode 100644 src/main/java/com/eco/plugin/shsytzfsds/utils/ResponseUtils.java
create mode 100644 src/main/java/com/eco/plugin/shsytzfsds/utils/Utils.java
create mode 100644 src/main/java/com/eco/plugin/shsytzfsds/webresourceProvider/WebResourceProvider.java
create mode 100644 src/main/resources/com/eco/plugin/shsytzfsds/css/wink.css
create mode 100644 src/main/resources/com/eco/plugin/shsytzfsds/html/dwb.html
create mode 100644 src/main/resources/com/eco/plugin/shsytzfsds/html/sheet.html
create mode 100644 src/main/resources/com/eco/plugin/shsytzfsds/js/bi/feishu.png
create mode 100644 src/main/resources/com/eco/plugin/shsytzfsds/js/bi/publicds.css
create mode 100644 src/main/resources/com/eco/plugin/shsytzfsds/js/bi/publicds.js
create mode 100644 src/main/resources/com/eco/plugin/shsytzfsds/js/jquery/jquery-2.1.3.min.js
create mode 100644 src/main/resources/com/eco/plugin/shsytzfsds/js/jquery/jquery.tool.js
create mode 100644 src/main/resources/com/eco/plugin/shsytzfsds/js/layui/css/layui.css
create mode 100644 src/main/resources/com/eco/plugin/shsytzfsds/js/layui/css/modules/code.css
create mode 100644 src/main/resources/com/eco/plugin/shsytzfsds/js/layui/css/modules/laydate/default/laydate.css
create mode 100644 src/main/resources/com/eco/plugin/shsytzfsds/js/layui/css/modules/layer/default/icon-ext.png
create mode 100644 src/main/resources/com/eco/plugin/shsytzfsds/js/layui/css/modules/layer/default/icon.png
create mode 100644 src/main/resources/com/eco/plugin/shsytzfsds/js/layui/css/modules/layer/default/layer.css
create mode 100644 src/main/resources/com/eco/plugin/shsytzfsds/js/layui/css/modules/layer/default/loading-0.gif
create mode 100644 src/main/resources/com/eco/plugin/shsytzfsds/js/layui/css/modules/layer/default/loading-1.gif
create mode 100644 src/main/resources/com/eco/plugin/shsytzfsds/js/layui/css/modules/layer/default/loading-2.gif
create mode 100644 src/main/resources/com/eco/plugin/shsytzfsds/js/layui/font/iconfont.eot
create mode 100644 src/main/resources/com/eco/plugin/shsytzfsds/js/layui/font/iconfont.svg
create mode 100644 src/main/resources/com/eco/plugin/shsytzfsds/js/layui/font/iconfont.ttf
create mode 100644 src/main/resources/com/eco/plugin/shsytzfsds/js/layui/font/iconfont.woff
create mode 100644 src/main/resources/com/eco/plugin/shsytzfsds/js/layui/font/iconfont.woff2
create mode 100644 src/main/resources/com/eco/plugin/shsytzfsds/js/layui/layui.js
create mode 100644 src/main/resources/com/eco/plugin/shsytzfsds/js/ui.js
create mode 100644 src/main/resources/com/eco/plugin/shsytzfsds/js/univalsalServerTable.js
create mode 100644 src/main/resources/com/eco/plugin/shsytzfsds/js/univalsalServerTableSheet.js
diff --git a/README.md b/README.md
index 199b753..a2b7648 100644
--- a/README.md
+++ b/README.md
@@ -1,2 +1,3 @@
-# shopself-fsds
+# JSD-13470
+JSD-13470
\ No newline at end of file
diff --git a/build.gradle b/build.gradle
new file mode 100644
index 0000000..89632b2
--- /dev/null
+++ b/build.gradle
@@ -0,0 +1,122 @@
+
+apply plugin: 'java'
+
+
+ext {
+ /**
+ * 项目中依赖的jar的路径
+ * 1.如果依赖的jar需要打包到zip中,放置在lib根目录下
+ * 2.如果依赖的jar仅仅是编译时需要,防止在lib下子目录下即可
+ */
+ libPath = "$projectDir/../webroot/WEB-INF/lib"
+
+ /**
+ * 是否对插件的class进行加密保护,防止反编译
+ */
+ guard = true
+
+ def pluginInfo = getPluginInfo()
+ pluginPre = "fine-plugin"
+ pluginName = pluginInfo.id
+ pluginVersion = pluginInfo.version
+
+ outputPath = "$projectDir/../webroot/WEB-INF/plugins/plugin-" + pluginName + "-1.0/classes"
+}
+
+group = 'com.fr.plugin'
+version = '10.0'
+sourceCompatibility = '8'
+
+sourceSets {
+ main {
+ java.outputDir = file(outputPath)
+ output.resourcesDir = file(outputPath)
+ }
+}
+
+ant.importBuild("encrypt.xml")
+//定义ant变量
+ant.projectDir = projectDir
+ant.references["compile.classpath"] = ant.path {
+ fileset(dir: libPath, includes: '**/*.jar')
+ fileset(dir: ".",includes:"**/*.jar" )
+}
+
+classes.dependsOn('clean')
+
+task copyFiles(type: Copy,dependsOn: 'classes'){
+ from outputPath
+ into "$projectDir/classes"
+}
+
+task preJar(type:Copy,dependsOn: guard ? 'compile_encrypt_javas' : 'compile_plain_javas'){
+ from "$projectDir/classes"
+ into "$projectDir/transform-classes"
+ include "**/*.*"
+}
+jar.dependsOn("preJar")
+
+task makeJar(type: Jar,dependsOn: preJar){
+ from fileTree(dir: "$projectDir/transform-classes")
+ baseName pluginPre
+ appendix pluginName
+ version pluginVersion
+ destinationDir = file("$buildDir/libs")
+
+ doLast(){
+ delete file("$projectDir/classes")
+ delete file("$projectDir/transform-classes")
+ }
+}
+
+task copyFile(type: Copy,dependsOn: ["makeJar"]){
+ from "$buildDir/libs"
+ from("$projectDir/lib") {
+ include "*.jar"
+ }
+ from "$projectDir/plugin.xml"
+ into file("$buildDir/temp/plugin")
+}
+
+task zip(type:Zip,dependsOn:["copyFile"]){
+ from "$buildDir/temp/plugin"
+ destinationDir file("$buildDir/install")
+ baseName pluginPre
+ appendix pluginName
+ version pluginVersion
+}
+
+//控制build时包含哪些文件,排除哪些文件
+processResources {
+// exclude everything
+// 用*.css没效果
+// exclude '**/*.css'
+// except this file
+// include 'xx.xml'
+}
+
+/*读取plugin.xml中的version*/
+def getPluginInfo(){
+ def xmlFile = file("plugin.xml")
+ if (!xmlFile.exists()) {
+ return ["id":"none", "version":"1.0.0"]
+ }
+ def plugin = new XmlParser().parse(xmlFile)
+ def version = plugin.version[0].text()
+ def id = plugin.id[0].text()
+ return ["id":id,"version":version]
+}
+
+repositories {
+ mavenLocal()
+ maven {
+ url = uri('http://mvn.finedevelop.com/repository/maven-public/')
+ }
+}
+
+dependencies {
+ //使用本地jar
+ implementation fileTree(dir: 'lib', include: ['**/*.jar'])
+ implementation fileTree(dir: libPath, include: ['**/*.jar'])
+}
+
diff --git a/encrypt.xml b/encrypt.xml
new file mode 100644
index 0000000..1401cd1
--- /dev/null
+++ b/encrypt.xml
@@ -0,0 +1,13 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/plugin.xml b/plugin.xml
new file mode 100644
index 0000000..af17d86
--- /dev/null
+++ b/plugin.xml
@@ -0,0 +1,26 @@
+
+ com.eco.plugin.shsytzfsds
+
+ yes
+ 1.0.6
+ 10.0
+ 2018-07-31
+ wink
+
+
+ com.eco.plugin.shsytzfsds
+
+
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/src/main/java/com/eco/plugin/shsytzfsds/ServerTable/ServerTable.java b/src/main/java/com/eco/plugin/shsytzfsds/ServerTable/ServerTable.java
new file mode 100644
index 0000000..6779d89
--- /dev/null
+++ b/src/main/java/com/eco/plugin/shsytzfsds/ServerTable/ServerTable.java
@@ -0,0 +1,42 @@
+//package com.eco.plugin.shsytzfsds.ServerTable;
+//
+//import com.fr.base.TableData;
+//import com.fr.design.data.tabledata.tabledatapane.AbstractTableDataPane;
+//import com.fr.design.fun.impl.AbstractServerTableDataDefineProvider;
+//
+///**
+// * @author 秃破天际
+// * @version 10.0
+// * Created by 秃破天际 on 2021-03-29
+// **/
+//public class ServerTable extends AbstractServerTableDataDefineProvider {
+// @Override
+// public Class extends TableData> classForTableData() {
+// return com.eco.plugin.shsytzfsds.univalsalServerTable.TableData.class;
+// }
+//
+// @Override
+// public Class extends TableData> classForInitTableData() {
+// return com.eco.plugin.shsytzfsds.univalsalServerTable.TableData.class;
+// }
+//
+// @Override
+// public Class extends AbstractTableDataPane> appearanceForTableData() {
+// return TableDataPane.class;
+// }
+//
+// @Override
+// public String nameForTableData() {
+// return "飞书多维表格";
+// }
+//
+// @Override
+// public String prefixForTableData() {
+// return "飞书多维表格";
+// }
+//
+// @Override
+// public String iconPathForTableData() {
+// return "com/eco/plugin/shsytzfsds/js/bi/feishu.png";
+// }
+//}
diff --git a/src/main/java/com/eco/plugin/shsytzfsds/ServerTable/ServerTableSheet.java b/src/main/java/com/eco/plugin/shsytzfsds/ServerTable/ServerTableSheet.java
new file mode 100644
index 0000000..99af6d7
--- /dev/null
+++ b/src/main/java/com/eco/plugin/shsytzfsds/ServerTable/ServerTableSheet.java
@@ -0,0 +1,43 @@
+//package com.eco.plugin.shsytzfsds.ServerTable;
+//
+//import com.eco.plugin.shsytzfsds.univalsalServerTable.TableDataSheet;
+//import com.fr.base.TableData;
+//import com.fr.design.data.tabledata.tabledatapane.AbstractTableDataPane;
+//import com.fr.design.fun.impl.AbstractServerTableDataDefineProvider;
+//
+///**
+// * @author 秃破天际
+// * @version 10.0
+// * Created by 秃破天际 on 2021-03-29
+// **/
+//public class ServerTableSheet extends AbstractServerTableDataDefineProvider {
+// @Override
+// public Class extends TableData> classForTableData() {
+// return TableDataSheet.class;
+// }
+//
+// @Override
+// public Class extends TableData> classForInitTableData() {
+// return TableDataSheet.class;
+// }
+//
+// @Override
+// public Class extends AbstractTableDataPane> appearanceForTableData() {
+// return TableDataPaneSheet.class;
+// }
+//
+// @Override
+// public String nameForTableData() {
+// return "飞书电子表格";
+// }
+//
+// @Override
+// public String prefixForTableData() {
+// return "飞书电子表格";
+// }
+//
+// @Override
+// public String iconPathForTableData() {
+// return "com/eco/plugin/shsytzfsds/js/bi/feishu.png";
+// }
+//}
diff --git a/src/main/java/com/eco/plugin/shsytzfsds/ServerTable/TableDataPane.java b/src/main/java/com/eco/plugin/shsytzfsds/ServerTable/TableDataPane.java
new file mode 100644
index 0000000..6174f66
--- /dev/null
+++ b/src/main/java/com/eco/plugin/shsytzfsds/ServerTable/TableDataPane.java
@@ -0,0 +1,94 @@
+//package com.eco.plugin.shsytzfsds.ServerTable;
+//
+//import com.eco.plugin.shsytzfsds.univalsalServerTable.TableData;
+//import com.fr.base.BaseUtils;
+//import com.fr.base.Parameter;
+//import com.fr.design.data.datapane.preview.PreviewTablePane;
+//import com.fr.design.data.tabledata.tabledatapane.AbstractTableDataPane;
+//import com.fr.design.gui.ibutton.UIButton;
+//import com.fr.design.gui.icontainer.UIScrollPane;
+//import com.fr.design.gui.ilable.UILabel;
+//import com.fr.design.gui.itableeditorpane.ParameterTableModel;
+//import com.fr.design.gui.itableeditorpane.UITableEditorPane;
+//import com.fr.design.gui.itableeditorpane.UITableModelAdapter;
+//import com.fr.design.gui.itextarea.UITextArea;
+//import com.fr.design.layout.TableLayout;
+//import com.fr.design.layout.TableLayoutHelper;
+//import com.fr.script.Calculator;
+//import com.fr.stable.ParameterProvider;
+//
+//import javax.swing.*;
+//import java.awt.*;
+//import java.awt.event.ActionEvent;
+//import java.awt.event.ActionListener;
+//
+///**
+// * @author 秃破天际
+// * @version 10.0
+// * Created by 秃破天际 on 2021-03-29
+// **/
+//public class TableDataPane extends AbstractTableDataPane {
+//
+// private UITextArea config;
+// private UITableEditorPane parameterTableEditorPane;
+//
+// public TableDataPane(){
+// config = new UITextArea();
+// setLayout(new BorderLayout());
+//
+// UIButton preview = new UIButton(BaseUtils.readIcon("/com/fr/design/images/m_file/preview.png"));
+// preview.addActionListener(new ActionListener() {
+// @Override
+// public void actionPerformed(ActionEvent e) {
+// SwingUtilities.invokeLater(new Runnable() {
+// @Override
+// public void run() {
+// PreviewTablePane.previewTableData(TableDataPane.this.updateBean());
+// }
+// });
+// }
+// });
+//
+// add(TableLayoutHelper.createTableLayoutPane(
+// new Component[][] {{
+// new UILabel("配置"),preview
+// }},
+// new double[] { TableLayout.PREFERRED },
+// new double[] { TableLayout.FILL,TableLayout.PREFERRED }
+// ),BorderLayout.NORTH);
+//
+// UIScrollPane loadArea = new UIScrollPane(config);
+// add(loadArea, BorderLayout.CENTER);
+//
+// UITableModelAdapter model = new ParameterTableModel();
+// parameterTableEditorPane = new UITableEditorPane(model);
+//
+// add(parameterTableEditorPane,BorderLayout.SOUTH);
+// }
+//
+// @Override
+// public void populateBean(TableData data) {
+// if (data == null) {
+// return;
+// }
+// Calculator c = Calculator.createCalculator();
+// ParameterProvider[] parameters = data.getParameters(c);
+// parameterTableEditorPane.populate(parameters);
+// config.setText( data.getConfig() );
+// }
+//
+// @Override
+// public TableData updateBean() {
+// TableData data = new TableData();
+// data.setConfig( config.getText() );
+// java.util.List parameterProviderList = parameterTableEditorPane.update();
+// Parameter[] parameters = parameterProviderList.toArray(new Parameter[parameterProviderList.size()]);
+// data.setParameters(parameters);
+// return data;
+// }
+//
+// @Override
+// protected String title4PopupWindow() {
+// return "飞书多维表格";
+// }
+//}
diff --git a/src/main/java/com/eco/plugin/shsytzfsds/ServerTable/TableDataPaneSheet.java b/src/main/java/com/eco/plugin/shsytzfsds/ServerTable/TableDataPaneSheet.java
new file mode 100644
index 0000000..54d792e
--- /dev/null
+++ b/src/main/java/com/eco/plugin/shsytzfsds/ServerTable/TableDataPaneSheet.java
@@ -0,0 +1,90 @@
+//package com.eco.plugin.shsytzfsds.ServerTable;
+//
+//import com.eco.plugin.shsytzfsds.univalsalServerTable.TableDataSheet;
+//import com.fr.base.BaseUtils;
+//import com.fr.base.Parameter;
+//import com.fr.design.data.datapane.preview.PreviewTablePane;
+//import com.fr.design.data.tabledata.tabledatapane.AbstractTableDataPane;
+//import com.fr.design.gui.ibutton.UIButton;
+//import com.fr.design.gui.icontainer.UIScrollPane;
+//import com.fr.design.gui.ilable.UILabel;
+//import com.fr.design.gui.itableeditorpane.ParameterTableModel;
+//import com.fr.design.gui.itableeditorpane.UITableEditorPane;
+//import com.fr.design.gui.itableeditorpane.UITableModelAdapter;
+//import com.fr.design.gui.itextarea.UITextArea;
+//import com.fr.design.layout.TableLayout;
+//import com.fr.design.layout.TableLayoutHelper;
+//import com.fr.script.Calculator;
+//import com.fr.stable.ParameterProvider;
+//
+//import javax.swing.*;
+//import java.awt.*;
+//import java.awt.event.ActionEvent;
+//import java.awt.event.ActionListener;
+//
+//
+//public class TableDataPaneSheet extends AbstractTableDataPane {
+//
+// private UITextArea config;
+// private UITableEditorPane parameterTableEditorPane;
+//
+// public TableDataPaneSheet(){
+// config = new UITextArea();
+// setLayout(new BorderLayout());
+//
+// UIButton preview = new UIButton(BaseUtils.readIcon("/com/fr/design/images/m_file/preview.png"));
+// preview.addActionListener(new ActionListener() {
+// @Override
+// public void actionPerformed(ActionEvent e) {
+// SwingUtilities.invokeLater(new Runnable() {
+// @Override
+// public void run() {
+// PreviewTablePane.previewTableData(TableDataPaneSheet.this.updateBean());
+// }
+// });
+// }
+// });
+//
+// add(TableLayoutHelper.createTableLayoutPane(
+// new Component[][] {{
+// new UILabel("配置"),preview
+// }},
+// new double[] { TableLayout.PREFERRED },
+// new double[] { TableLayout.FILL,TableLayout.PREFERRED }
+// ),BorderLayout.NORTH);
+//
+// UIScrollPane loadArea = new UIScrollPane(config);
+// add(loadArea, BorderLayout.CENTER);
+//
+// UITableModelAdapter model = new ParameterTableModel();
+// parameterTableEditorPane = new UITableEditorPane(model);
+//
+// add(parameterTableEditorPane,BorderLayout.SOUTH);
+// }
+//
+// @Override
+// public void populateBean(TableDataSheet data) {
+// if (data == null) {
+// return;
+// }
+// Calculator c = Calculator.createCalculator();
+// ParameterProvider[] parameters = data.getParameters(c);
+// parameterTableEditorPane.populate(parameters);
+// config.setText( data.getConfig() );
+// }
+//
+// @Override
+// public TableDataSheet updateBean() {
+// TableDataSheet data = new TableDataSheet();
+// data.setConfig( config.getText() );
+// java.util.List parameterProviderList = parameterTableEditorPane.update();
+// Parameter[] parameters = parameterProviderList.toArray(new Parameter[parameterProviderList.size()]);
+// data.setParameters(parameters);
+// return data;
+// }
+//
+// @Override
+// protected String title4PopupWindow() {
+// return "飞书电子表格";
+// }
+//}
diff --git a/src/main/java/com/eco/plugin/shsytzfsds/biPlublicServerTable/DatasetComponent.java b/src/main/java/com/eco/plugin/shsytzfsds/biPlublicServerTable/DatasetComponent.java
new file mode 100644
index 0000000..46766d9
--- /dev/null
+++ b/src/main/java/com/eco/plugin/shsytzfsds/biPlublicServerTable/DatasetComponent.java
@@ -0,0 +1,37 @@
+package com.eco.plugin.shsytzfsds.biPlublicServerTable;
+
+import com.fr.web.struct.AssembleComponent;
+import com.fr.web.struct.Atom;
+import com.fr.web.struct.Registry;
+import com.fr.web.struct.category.ScriptPath;
+import com.fr.web.struct.category.StylePath;
+
+/**
+ * @author Heng.J
+ * @version 6.0
+ * Created by Heng.J on 2023/5/30
+ */
+public class DatasetComponent extends AssembleComponent {
+
+ public static final DatasetComponent KEY = new DatasetComponent();
+
+ @Override
+ public Atom[] refer() {
+ return new Atom[]{};
+ }
+
+ @Override
+ public ScriptPath script() {
+ return ScriptPath.build("com/eco/plugin/shsytzfsds/js/bi/publicds.js");
+ }
+
+ @Override
+ public StylePath style() {
+ return StylePath.build("com/eco/plugin/shsytzfsds/js/bi/publicds.css");
+ }
+
+ @Override
+ public Atom[] children() {
+ return Registry.getChildren(DatasetComponent.class);
+ }
+}
diff --git a/src/main/java/com/eco/plugin/shsytzfsds/biPlublicServerTable/DatasetProvider.java b/src/main/java/com/eco/plugin/shsytzfsds/biPlublicServerTable/DatasetProvider.java
new file mode 100644
index 0000000..d72d0a1
--- /dev/null
+++ b/src/main/java/com/eco/plugin/shsytzfsds/biPlublicServerTable/DatasetProvider.java
@@ -0,0 +1,18 @@
+package com.eco.plugin.shsytzfsds.biPlublicServerTable;
+
+import com.eco.plugin.shsytzfsds.biPlublicServerTable.generator.DatasetGenerator;
+import com.finebi.provider.api.dataset.datasource.AbstractCustomDatasetProvider;
+import com.finebi.provider.api.dataset.datasource.CustomDatasetGenerator;
+
+/**
+ * @author wink
+ * @version 6.0
+ * Created by wink on 2023/5/30
+ */
+public class DatasetProvider extends AbstractCustomDatasetProvider {
+
+ @Override
+ public CustomDatasetGenerator getGenerator() {
+ return new DatasetGenerator();
+ }
+}
diff --git a/src/main/java/com/eco/plugin/shsytzfsds/biPlublicServerTable/data/feishu/DBConfig.java b/src/main/java/com/eco/plugin/shsytzfsds/biPlublicServerTable/data/feishu/DBConfig.java
new file mode 100644
index 0000000..18f43a7
--- /dev/null
+++ b/src/main/java/com/eco/plugin/shsytzfsds/biPlublicServerTable/data/feishu/DBConfig.java
@@ -0,0 +1,26 @@
+package com.eco.plugin.shsytzfsds.biPlublicServerTable.data.feishu;
+
+import java.util.HashMap;
+import java.util.Map;
+
+/**
+ * 用户自定义数据链接
+ *
+ * @author Heng.J
+ * @version 6.0
+ * Created by Heng.J on 2023/6/14
+ */
+public class DBConfig {
+
+ public static final String URL = "jdbc:mysql://localhost:3306/swift_data1?serverTimezone=Asia/Shanghai&useSSL=false";
+ public static final String USER = "root";
+ public static final String PASSWORD = "123456";
+
+ public static final Map> PARAMETER_MAP = new HashMap<>();
+
+ static {
+ PARAMETER_MAP.put("driver", String.class);
+ PARAMETER_MAP.put("appId", String.class);
+ }
+
+}
diff --git a/src/main/java/com/eco/plugin/shsytzfsds/biPlublicServerTable/data/feishu/FeishuDatasetDatasourceGenerator.java b/src/main/java/com/eco/plugin/shsytzfsds/biPlublicServerTable/data/feishu/FeishuDatasetDatasourceGenerator.java
new file mode 100644
index 0000000..e2ffcb0
--- /dev/null
+++ b/src/main/java/com/eco/plugin/shsytzfsds/biPlublicServerTable/data/feishu/FeishuDatasetDatasourceGenerator.java
@@ -0,0 +1,28 @@
+package com.eco.plugin.shsytzfsds.biPlublicServerTable.data.feishu;
+
+import com.eco.plugin.shsytzfsds.utils.DataSetUtils;
+import com.finebi.cbb.api.model.RowIterator;
+import com.finebi.provider.api.dataset.datasource.AbstractDefaultDatasourceGenerator;
+import com.finebi.provider.api.dataset.datasource.CustomDatasetContext;
+import com.fr.data.core.db.ColumnInformation;
+
+import java.util.Collections;
+import java.util.Map;
+
+public class FeishuDatasetDatasourceGenerator extends AbstractDefaultDatasourceGenerator {
+
+ @Override
+ public RowIterator getRowIterator(String jsonContext, CustomDatasetContext datasetContext, ColumnInformation[] columnInfos) {
+ return new FeishuRowIterator(jsonContext, Collections.singletonList(datasetContext), null);
+ }
+
+ @Override
+ public Map> getParameters(String jsonContext, CustomDatasetContext datasetContext) {
+ return DBConfig.PARAMETER_MAP;
+ }
+
+ @Override
+ public ColumnInformation[] createColumnInfos(String jsonContext, CustomDatasetContext datasetContext) {
+ return DataSetUtils.getHeader(jsonContext);
+ }
+}
diff --git a/src/main/java/com/eco/plugin/shsytzfsds/biPlublicServerTable/data/feishu/FeishuRowIterator.java b/src/main/java/com/eco/plugin/shsytzfsds/biPlublicServerTable/data/feishu/FeishuRowIterator.java
new file mode 100644
index 0000000..6011dc4
--- /dev/null
+++ b/src/main/java/com/eco/plugin/shsytzfsds/biPlublicServerTable/data/feishu/FeishuRowIterator.java
@@ -0,0 +1,91 @@
+package com.eco.plugin.shsytzfsds.biPlublicServerTable.data.feishu;
+
+import com.eco.plugin.shsytzfsds.db.bean.DBEntity;
+import com.eco.plugin.shsytzfsds.db.controller.DBController;
+import com.eco.plugin.shsytzfsds.utils.FeiShuUtils;
+import com.eco.plugin.shsytzfsds.utils.Utils;
+import com.finebi.base.concurrent.ExecutorServiceFactory;
+import com.finebi.cbb.api.model.RowIterator;
+import com.finebi.provider.api.dataset.datasource.CustomDatasetContext;
+import com.fr.data.core.db.ColumnInformation;
+import com.fr.json.JSONArray;
+import com.fr.json.JSONObject;
+
+import java.util.ArrayList;
+import java.util.List;
+
+
+public class FeishuRowIterator implements RowIterator {
+
+ private static int count = 0;
+ private String jsonContexts = "";
+ private static List