From a9a2dc2ce21a3a27e0179f331663f8ee9ee29107 Mon Sep 17 00:00:00 2001
From: 75349 <753495441@qq.com>
Date: Thu, 1 Dec 2022 15:55:13 +0800
Subject: [PATCH] =?UTF-8?q?=E5=88=9D=E5=A7=8B=E5=8C=96=E9=A1=B9=E7=9B=AE?=
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
---
pom.xml | 61 +++++++++++++++++++
.../liteflow/mysql/LiteFlowCommand.java | 48 +++++++++++++++
.../mysql/LiteflowMysqlApplication.java | 14 +++++
.../mysql/bean/BusinessCategoryBean.java | 21 +++++++
.../liteflow/mysql/bean/BusinessTypeBean.java | 21 +++++++
.../liteflow/mysql/bean/CostCenterBean.java | 17 ++++++
.../liteflow/mysql/bean/SalesmanBean.java | 21 +++++++
.../mysql/bean/SectionClassificationBean.java | 21 +++++++
.../mysql/cmp/BusinessCategoryCmp.java | 38 ++++++++++++
.../liteflow/mysql/cmp/BusinessTypeCmp.java | 38 ++++++++++++
.../liteflow/mysql/cmp/SalesmanCmp.java | 44 +++++++++++++
.../mysql/cmp/SectionClassificationCmp.java | 45 ++++++++++++++
.../example/liteflow/mysql/cmp/SoutCmp.java | 32 ++++++++++
.../liteflow/mysql/model/CostCenter.java | 32 ++++++++++
.../mysql/model/CostCenterContext.java | 32 ++++++++++
src/main/resources/application.properties | 18 ++++++
src/main/resources/application.yml | 23 +++++++
src/main/resources/db.sql | 37 +++++++++++
18 files changed, 563 insertions(+)
create mode 100644 pom.xml
create mode 100644 src/main/java/com/example/liteflow/mysql/LiteFlowCommand.java
create mode 100644 src/main/java/com/example/liteflow/mysql/LiteflowMysqlApplication.java
create mode 100644 src/main/java/com/example/liteflow/mysql/bean/BusinessCategoryBean.java
create mode 100644 src/main/java/com/example/liteflow/mysql/bean/BusinessTypeBean.java
create mode 100644 src/main/java/com/example/liteflow/mysql/bean/CostCenterBean.java
create mode 100644 src/main/java/com/example/liteflow/mysql/bean/SalesmanBean.java
create mode 100644 src/main/java/com/example/liteflow/mysql/bean/SectionClassificationBean.java
create mode 100644 src/main/java/com/example/liteflow/mysql/cmp/BusinessCategoryCmp.java
create mode 100644 src/main/java/com/example/liteflow/mysql/cmp/BusinessTypeCmp.java
create mode 100644 src/main/java/com/example/liteflow/mysql/cmp/SalesmanCmp.java
create mode 100644 src/main/java/com/example/liteflow/mysql/cmp/SectionClassificationCmp.java
create mode 100644 src/main/java/com/example/liteflow/mysql/cmp/SoutCmp.java
create mode 100644 src/main/java/com/example/liteflow/mysql/model/CostCenter.java
create mode 100644 src/main/java/com/example/liteflow/mysql/model/CostCenterContext.java
create mode 100644 src/main/resources/application.properties
create mode 100644 src/main/resources/application.yml
create mode 100644 src/main/resources/db.sql
diff --git a/pom.xml b/pom.xml
new file mode 100644
index 0000000..6dd5461
--- /dev/null
+++ b/pom.xml
@@ -0,0 +1,61 @@
+
+
+ 4.0.0
+
+ org.example
+ liteflow-demo
+ 1.0-SNAPSHOT
+
+
+ 8
+ 8
+ 5.8.4
+ 2.9.3
+ 2.7.5
+
+
+
+
+ org.springframework.boot
+ spring-boot-starter
+ ${spring-boot.version}
+
+
+
+ mysql
+ mysql-connector-java
+ runtime
+ 8.0.31
+
+
+
+ com.yomahub
+ liteflow-spring-boot-starter
+ ${liteflow.version}
+
+
+ com.yomahub
+ liteflow-rule-sql
+ ${liteflow.version}
+
+
+ com.yomahub
+ liteflow-script-groovy
+ ${liteflow.version}
+
+
+ org.projectlombok
+ lombok
+ provided
+ 1.18.24
+
+
+
+ cn.hutool
+ hutool-all
+ ${hutool.version}
+
+
+
\ No newline at end of file
diff --git a/src/main/java/com/example/liteflow/mysql/LiteFlowCommand.java b/src/main/java/com/example/liteflow/mysql/LiteFlowCommand.java
new file mode 100644
index 0000000..bbb8886
--- /dev/null
+++ b/src/main/java/com/example/liteflow/mysql/LiteFlowCommand.java
@@ -0,0 +1,48 @@
+package com.example.liteflow.mysql;
+
+import cn.hutool.json.JSONUtil;
+import com.example.liteflow.mysql.model.CostCenter;
+import com.example.liteflow.mysql.model.CostCenterContext;
+import com.yomahub.liteflow.core.FlowExecutor;
+import com.yomahub.liteflow.flow.LiteflowResponse;
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
+import org.springframework.boot.CommandLineRunner;
+import org.springframework.stereotype.Component;
+
+import javax.annotation.Resource;
+
+@Component
+public class LiteFlowCommand implements CommandLineRunner {
+
+ private final Logger log = LoggerFactory.getLogger(this.getClass());
+
+ @Resource
+ private FlowExecutor flowExecutor;
+
+ @Override
+ public void run(String... args) throws Exception {
+ // 事实对象
+ CostCenter costCenter = new CostCenter();
+ costCenter.setSectionClassification("成本科目");
+ costCenter.setBusinessType("货代");
+ costCenter.setSalesman("仓干配物流部(物流)");
+ costCenter.setBusinessCategory("全货船业务");
+
+ LiteflowResponse response = flowExecutor.execute2Resp("costCenter", costCenter, CostCenterContext.class);
+ CostCenterContext costCenterContext = response.getFirstContextBean();
+ String code = costCenterContext.getCode();
+ String name = costCenterContext.getName();
+ String generateCode = costCenterContext.getGenerateCode();
+ costCenter.setCode(code);
+ costCenter.setName(name);
+ costCenter.setGenerateCode(generateCode);
+ log.info(JSONUtil.toJsonStr(costCenter));
+ if (response.isSuccess()) {
+ log.info("执行成功");
+ } else {
+ log.info("执行失败");
+ }
+
+ }
+}
diff --git a/src/main/java/com/example/liteflow/mysql/LiteflowMysqlApplication.java b/src/main/java/com/example/liteflow/mysql/LiteflowMysqlApplication.java
new file mode 100644
index 0000000..2c2553e
--- /dev/null
+++ b/src/main/java/com/example/liteflow/mysql/LiteflowMysqlApplication.java
@@ -0,0 +1,14 @@
+package com.example.liteflow.mysql;
+
+import org.springframework.boot.SpringApplication;
+import org.springframework.boot.autoconfigure.SpringBootApplication;
+
+@SpringBootApplication
+public class LiteflowMysqlApplication {
+
+ public static void main(String[] args) {
+ SpringApplication.run(LiteflowMysqlApplication.class, args);
+ System.out.println("启动成功");
+ }
+
+}
diff --git a/src/main/java/com/example/liteflow/mysql/bean/BusinessCategoryBean.java b/src/main/java/com/example/liteflow/mysql/bean/BusinessCategoryBean.java
new file mode 100644
index 0000000..57d9b11
--- /dev/null
+++ b/src/main/java/com/example/liteflow/mysql/bean/BusinessCategoryBean.java
@@ -0,0 +1,21 @@
+package com.example.liteflow.mysql.bean;
+
+import com.yomahub.liteflow.script.ScriptBean;
+import org.springframework.stereotype.Component;
+
+import java.util.List;
+
+@Component
+@ScriptBean("businessCategory")
+public class BusinessCategoryBean {
+
+ private List globalBusinessCategoryList;
+
+ public void setGlobalBusinessCategoryList(List globalBusinessCategoryList) {
+ this.globalBusinessCategoryList = globalBusinessCategoryList;
+ }
+
+ public List getGlobalBusinessCategoryList() {
+ return this.globalBusinessCategoryList;
+ }
+}
diff --git a/src/main/java/com/example/liteflow/mysql/bean/BusinessTypeBean.java b/src/main/java/com/example/liteflow/mysql/bean/BusinessTypeBean.java
new file mode 100644
index 0000000..60de19a
--- /dev/null
+++ b/src/main/java/com/example/liteflow/mysql/bean/BusinessTypeBean.java
@@ -0,0 +1,21 @@
+package com.example.liteflow.mysql.bean;
+
+import com.yomahub.liteflow.script.ScriptBean;
+import org.springframework.stereotype.Component;
+
+import java.util.List;
+
+@Component
+@ScriptBean("globalBusinessType")
+public class BusinessTypeBean {
+
+ private List globalBusinessTypeList;
+
+ public void setGlobalBusinessTypeList(List globalBusinessTypeList) {
+ this.globalBusinessTypeList = globalBusinessTypeList;
+ }
+
+ public List getGlobalBusinessTypeList() {
+ return this.globalBusinessTypeList;
+ }
+}
diff --git a/src/main/java/com/example/liteflow/mysql/bean/CostCenterBean.java b/src/main/java/com/example/liteflow/mysql/bean/CostCenterBean.java
new file mode 100644
index 0000000..cd175a3
--- /dev/null
+++ b/src/main/java/com/example/liteflow/mysql/bean/CostCenterBean.java
@@ -0,0 +1,17 @@
+package com.example.liteflow.mysql.bean;
+
+import com.yomahub.liteflow.script.ScriptBean;
+import lombok.Data;
+import org.springframework.stereotype.Component;
+
+@Component
+@ScriptBean("costCenter")
+@Data
+public class CostCenterBean {
+
+ private String costCenter01Code;
+ private String costCenter01Name;
+ private String costCenter02Code;
+ private String costCenter02Name;
+
+}
diff --git a/src/main/java/com/example/liteflow/mysql/bean/SalesmanBean.java b/src/main/java/com/example/liteflow/mysql/bean/SalesmanBean.java
new file mode 100644
index 0000000..a9ed607
--- /dev/null
+++ b/src/main/java/com/example/liteflow/mysql/bean/SalesmanBean.java
@@ -0,0 +1,21 @@
+package com.example.liteflow.mysql.bean;
+
+import com.yomahub.liteflow.script.ScriptBean;
+import org.springframework.stereotype.Component;
+
+import java.util.List;
+
+@Component
+@ScriptBean("salesman")
+public class SalesmanBean {
+
+ private List globalSalesmanList;
+
+ public void setGlobalSalesmanList(List globalSalesmanList) {
+ this.globalSalesmanList = globalSalesmanList;
+ }
+
+ public List getGlobalSalesmanList() {
+ return this.globalSalesmanList;
+ }
+}
diff --git a/src/main/java/com/example/liteflow/mysql/bean/SectionClassificationBean.java b/src/main/java/com/example/liteflow/mysql/bean/SectionClassificationBean.java
new file mode 100644
index 0000000..2cc4122
--- /dev/null
+++ b/src/main/java/com/example/liteflow/mysql/bean/SectionClassificationBean.java
@@ -0,0 +1,21 @@
+package com.example.liteflow.mysql.bean;
+
+import com.yomahub.liteflow.script.ScriptBean;
+import org.springframework.stereotype.Component;
+
+import java.util.List;
+
+@Component
+@ScriptBean("globalSectionClassification")
+public class SectionClassificationBean {
+
+ private List globalSectionClassificationList;
+
+ public void setGlobalSectionClassificationList(List globalSectionClassificationList) {
+ this.globalSectionClassificationList = globalSectionClassificationList;
+ }
+
+ public List getGlobalSectionClassificationList() {
+ return this.globalSectionClassificationList;
+ }
+}
diff --git a/src/main/java/com/example/liteflow/mysql/cmp/BusinessCategoryCmp.java b/src/main/java/com/example/liteflow/mysql/cmp/BusinessCategoryCmp.java
new file mode 100644
index 0000000..9d19e18
--- /dev/null
+++ b/src/main/java/com/example/liteflow/mysql/cmp/BusinessCategoryCmp.java
@@ -0,0 +1,38 @@
+package com.example.liteflow.mysql.cmp;
+
+import com.example.liteflow.mysql.bean.BusinessCategoryBean;
+import com.example.liteflow.mysql.model.CostCenter;
+import com.yomahub.liteflow.annotation.LiteflowComponent;
+import com.yomahub.liteflow.core.NodeIfComponent;
+
+import javax.annotation.Resource;
+import java.util.List;
+
+@LiteflowComponent("businessCategory")
+public class BusinessCategoryCmp extends NodeIfComponent {
+
+ @Resource
+ private BusinessCategoryBean businessCategoryBean;
+
+// @Override
+// public void process() {
+// CostCenter requestData = this.getRequestData();
+// System.out.println("sectionClassificationCmp executed! ===>>>" + JsonUtil.toJsonString(requestData));
+//
+// String sectionClassification = requestData.getSectionClassification();
+// List globalSectionClassificationList = sectionClassificationBean.getGlobalSectionClassificationList();
+// if (globalSectionClassificationList.contains(sectionClassification)) {
+//
+// }
+// }
+
+ @Override
+ public boolean processIf() throws Exception {
+ CostCenter requestData = this.getRequestData();
+ System.out.println("BusinessCategoryCmp executed!");
+
+ String businessCategory = requestData.getBusinessCategory();
+ List globalBusinessCategoryList = businessCategoryBean.getGlobalBusinessCategoryList();
+ return globalBusinessCategoryList.contains(businessCategory);
+ }
+}
diff --git a/src/main/java/com/example/liteflow/mysql/cmp/BusinessTypeCmp.java b/src/main/java/com/example/liteflow/mysql/cmp/BusinessTypeCmp.java
new file mode 100644
index 0000000..6422452
--- /dev/null
+++ b/src/main/java/com/example/liteflow/mysql/cmp/BusinessTypeCmp.java
@@ -0,0 +1,38 @@
+package com.example.liteflow.mysql.cmp;
+
+import com.example.liteflow.mysql.bean.BusinessTypeBean;
+import com.example.liteflow.mysql.model.CostCenter;
+import com.yomahub.liteflow.annotation.LiteflowComponent;
+import com.yomahub.liteflow.core.NodeIfComponent;
+
+import javax.annotation.Resource;
+import java.util.List;
+
+@LiteflowComponent("businessType")
+public class BusinessTypeCmp extends NodeIfComponent {
+
+ @Resource
+ private BusinessTypeBean businessTypeBean;
+
+// @Override
+// public void process() {
+// CostCenter requestData = this.getRequestData();
+// System.out.println("sectionClassificationCmp executed! ===>>>" + JsonUtil.toJsonString(requestData));
+//
+// String sectionClassification = requestData.getSectionClassification();
+// List globalSectionClassificationList = sectionClassificationBean.getGlobalSectionClassificationList();
+// if (globalSectionClassificationList.contains(sectionClassification)) {
+//
+// }
+// }
+
+ @Override
+ public boolean processIf() throws Exception {
+ CostCenter requestData = this.getRequestData();
+ System.out.println("BusinessTypeCmp executed!");
+
+ String businessType = requestData.getBusinessType();
+ List globalBusinessTypeList = businessTypeBean.getGlobalBusinessTypeList();
+ return globalBusinessTypeList.contains(businessType);
+ }
+}
diff --git a/src/main/java/com/example/liteflow/mysql/cmp/SalesmanCmp.java b/src/main/java/com/example/liteflow/mysql/cmp/SalesmanCmp.java
new file mode 100644
index 0000000..f194d1c
--- /dev/null
+++ b/src/main/java/com/example/liteflow/mysql/cmp/SalesmanCmp.java
@@ -0,0 +1,44 @@
+/**
+ * Title: liteflow
+ * Description: 轻量级的组件式流程框架
+ * @author Bryan.Zhang
+ * @email weenyc31@163.com
+ * @Date 2020/4/1
+ */
+package com.example.liteflow.mysql.cmp;
+
+import com.example.liteflow.mysql.bean.SalesmanBean;
+import com.example.liteflow.mysql.model.CostCenter;
+import com.yomahub.liteflow.annotation.LiteflowComponent;
+import com.yomahub.liteflow.core.NodeIfComponent;
+
+import javax.annotation.Resource;
+import java.util.List;
+
+@LiteflowComponent("salesman")
+public class SalesmanCmp extends NodeIfComponent {
+
+ @Resource
+ private SalesmanBean salesmanBean;
+
+// @Override
+// public void process() {
+// CostCenter requestData = this.getRequestData();
+// System.out.println("sectionClassificationCmp executed! ===>>>" + JsonUtil.toJsonString(requestData));
+//
+// String sectionClassification = requestData.getSectionClassification();
+// List globalSectionClassificationList = sectionClassificationBean.getGlobalSectionClassificationList();
+// if (globalSectionClassificationList.contains(sectionClassification)) {
+//
+// }
+// }
+
+ @Override
+ public boolean processIf() throws Exception {
+ CostCenter requestData = this.getRequestData();
+ System.out.println("SalesmanCmp executed!");
+ String salesman = requestData.getSalesman();
+ List globalSalesmanList = salesmanBean.getGlobalSalesmanList();
+ return globalSalesmanList.contains(salesman);
+ }
+}
diff --git a/src/main/java/com/example/liteflow/mysql/cmp/SectionClassificationCmp.java b/src/main/java/com/example/liteflow/mysql/cmp/SectionClassificationCmp.java
new file mode 100644
index 0000000..a17e824
--- /dev/null
+++ b/src/main/java/com/example/liteflow/mysql/cmp/SectionClassificationCmp.java
@@ -0,0 +1,45 @@
+/**
+ * Title: liteflow
+ * Description: 轻量级的组件式流程框架
+ * @author Bryan.Zhang
+ * @email weenyc31@163.com
+ * @Date 2020/4/1
+ */
+package com.example.liteflow.mysql.cmp;
+
+import com.example.liteflow.mysql.bean.SectionClassificationBean;
+import com.example.liteflow.mysql.model.CostCenter;
+import com.yomahub.liteflow.annotation.LiteflowComponent;
+import com.yomahub.liteflow.core.NodeIfComponent;
+
+import javax.annotation.Resource;
+import java.util.List;
+
+@LiteflowComponent("sectionClassification")
+public class SectionClassificationCmp extends NodeIfComponent {
+
+ @Resource
+ private SectionClassificationBean sectionClassificationBean;
+
+// @Override
+// public void process() {
+// CostCenter requestData = this.getRequestData();
+// System.out.println("sectionClassificationCmp executed! ===>>>" + JsonUtil.toJsonString(requestData));
+//
+// String sectionClassification = requestData.getSectionClassification();
+// List globalSectionClassificationList = sectionClassificationBean.getGlobalSectionClassificationList();
+// if (globalSectionClassificationList.contains(sectionClassification)) {
+//
+// }
+// }
+
+ @Override
+ public boolean processIf() throws Exception {
+ CostCenter requestData = this.getRequestData();
+ System.out.println("sectionClassificationCmp executed!");
+
+ String sectionClassification = requestData.getSectionClassification();
+ List globalSectionClassificationList = sectionClassificationBean.getGlobalSectionClassificationList();
+ return globalSectionClassificationList.contains(sectionClassification);
+ }
+}
diff --git a/src/main/java/com/example/liteflow/mysql/cmp/SoutCmp.java b/src/main/java/com/example/liteflow/mysql/cmp/SoutCmp.java
new file mode 100644
index 0000000..e2508b3
--- /dev/null
+++ b/src/main/java/com/example/liteflow/mysql/cmp/SoutCmp.java
@@ -0,0 +1,32 @@
+package com.example.liteflow.mysql.cmp;
+
+import cn.hutool.core.util.StrUtil;
+import com.example.liteflow.mysql.model.CostCenter;
+import com.yomahub.liteflow.annotation.LiteflowComponent;
+import com.yomahub.liteflow.core.NodeComponent;
+
+@LiteflowComponent("sout")
+public class SoutCmp extends NodeComponent {
+
+ @Override
+ public void process() {
+ CostCenter costCenter = this.getRequestData();
+// LinkedHashMap map = new LinkedHashMap<>();
+// Field[] fields = ReflectUtil.getFields(CostCenter.class);
+// for (Field field : fields) {
+// Object fieldValue = ReflectUtil.getFieldValue(costCenter, field);
+// String name = field.getName();
+// map.put(name, fieldValue == null ? null : String.valueOf(fieldValue));
+// }
+// System.out.println(JsonUtil.toJsonString(map));
+
+ String code = costCenter.getCode();
+ String name = costCenter.getName();
+ String generateCode = costCenter.getGenerateCode();
+
+ if (StrUtil.isBlank(code) && StrUtil.isBlank(name) && StrUtil.isBlank(generateCode)) {
+ costCenter.setGenerateCode("无匹配项");
+ }
+ }
+
+}
diff --git a/src/main/java/com/example/liteflow/mysql/model/CostCenter.java b/src/main/java/com/example/liteflow/mysql/model/CostCenter.java
new file mode 100644
index 0000000..47c1e61
--- /dev/null
+++ b/src/main/java/com/example/liteflow/mysql/model/CostCenter.java
@@ -0,0 +1,32 @@
+package com.example.liteflow.mysql.model;
+
+import lombok.Data;
+
+/**
+ * @author: 陈韦龙
+ * @date: 2022年07月06日 12:08
+ */
+@Data
+public class CostCenter {
+ /**
+ * 业务类型
+ */
+ private String businessType;
+ /**
+ * 业务员
+ */
+ private String salesman;
+ /**
+ * 业务类别
+ */
+ private String businessCategory;
+ /**
+ * 科目分类
+ */
+ private String sectionClassification;
+
+ private String code;
+ private String name;
+ private String generateCode;
+
+}
diff --git a/src/main/java/com/example/liteflow/mysql/model/CostCenterContext.java b/src/main/java/com/example/liteflow/mysql/model/CostCenterContext.java
new file mode 100644
index 0000000..0b4989d
--- /dev/null
+++ b/src/main/java/com/example/liteflow/mysql/model/CostCenterContext.java
@@ -0,0 +1,32 @@
+package com.example.liteflow.mysql.model;
+
+import lombok.Data;
+
+/**
+ * @author: 陈韦龙
+ * @date: 2022年07月06日 12:08
+ */
+@Data
+public class CostCenterContext {
+ /**
+ * 业务类型
+ */
+ private String businessType;
+ /**
+ * 业务员
+ */
+ private String salesman;
+ /**
+ * 业务类别
+ */
+ private String businessCategory;
+ /**
+ * 科目分类
+ */
+ private String sectionClassification;
+
+ private String code;
+ private String name;
+ private String generateCode;
+
+}
diff --git a/src/main/resources/application.properties b/src/main/resources/application.properties
new file mode 100644
index 0000000..c060559
--- /dev/null
+++ b/src/main/resources/application.properties
@@ -0,0 +1,18 @@
+spring.application.name=liteflow-mysql
+liteflow.rule-source-ext-data={\
+ "url":"jdbc:mysql://localhost:3306/test_db",\
+ "driverClassName":"com.mysql.cj.jdbc.Driver",\
+ "username":"root",\
+ "password":"123456",\
+ "applicationName": "demo",\
+ "chainTableName": "chain",\
+ "chainApplicationNameField": "application_name",\
+ "chainNameField": "chain_name",\
+ "elDataField": "el_data",\
+ "scriptTableName": "script",\
+ "scriptApplicationNameField": "application_name",\
+ "scriptIdField": "script_id",\
+ "scriptNameField": "script_name",\
+ "scriptDataField": "script_data",\
+ "scriptTypeField": "script_type"
+ }
\ No newline at end of file
diff --git a/src/main/resources/application.yml b/src/main/resources/application.yml
new file mode 100644
index 0000000..b211918
--- /dev/null
+++ b/src/main/resources/application.yml
@@ -0,0 +1,23 @@
+spring:
+ application:
+ name: liteflow-mysql
+
+liteflow:
+ rule-source-ext-data-map:
+ url: jdbc:mysql://localhost:3306/test_db
+ driverClassName: com.mysql.cj.jdbc.Driver
+ username: root
+ password: 123456
+ applicationName: demo
+ #以下是chain表的配置,这个一定得有
+ chainTableName: chain
+ chainApplicationNameField: application_name
+ chainNameField: chain_name
+ elDataField: el_data
+ #以下是script表的配置,如果你没使用到脚本,下面可以不配置
+ scriptTableName: script
+ scriptApplicationNameField: application_name
+ scriptIdField: script_id
+ scriptNameField: script_name
+ scriptDataField: script_data
+ scriptTypeField: script_type
\ No newline at end of file
diff --git a/src/main/resources/db.sql b/src/main/resources/db.sql
new file mode 100644
index 0000000..72b15dc
--- /dev/null
+++ b/src/main/resources/db.sql
@@ -0,0 +1,37 @@
+create table chain
+(
+ id bigint auto_increment
+ primary key,
+ application_name varchar(32) null,
+ chain_name varchar(32) null,
+ chain_desc varchar(64) null,
+ el_data text null,
+ create_time datetime null
+);
+
+
+create table script
+(
+ id bigint auto_increment
+ primary key,
+ application_name varchar(32) null,
+ script_id varchar(32) null,
+ script_name varchar(64) null,
+ script_data text null,
+ script_type varchar(16) null
+);
+
+INSERT INTO `chain`(`id`, `application_name`, `chain_name`, `chain_desc`, `el_data`, `create_time`) VALUES (1, 'demo', 'chain1', '测试流程', 'THEN(s3, s4, s5, s6);', '2022-09-19 19:31:00');
+INSERT INTO `chain`(`id`, `application_name`, `chain_name`, `chain_desc`, `el_data`, `create_time`) VALUES (2, 'demo', 'costCenter', '测试流程', 'THEN(s3, s4, s5, s6, IF(sectionClassification, IF(businessType, IF(salesman, IF(businessCategory, s7, s9), s9), s9), IF(businessType, IF(salesman, s8, s9), IF(businessType, s8, s9))));', '2022-11-29 14:58:00');
+
+INSERT INTO `script`(`id`, `application_name`, `script_id`, `script_name`, `script_data`, `script_type`) VALUES (1, 'demo', 's1', '脚本s1', 'import cn.hutool.core.date.DateUtil\r\n\r\ndef date = DateUtil.parse(\"2022-10-17 13:31:43\")\r\nprintln(date)\r\ndefaultContext.setData(\"demoDate\", date)\r\n\r\nclass Student {\r\n int studentID\r\n String studentName\r\n}\r\n\r\nStudent student = new Student()\r\nstudent.studentID = 100301\r\nstudent.studentName = \"张三\"\r\ndefaultContext.setData(\"student\",student)\r\n\r\ndef a=3\r\ndef b=2\r\ndefaultContext.setData(\"s1\",a*b)', 'script');
+INSERT INTO `script`(`id`, `application_name`, `script_id`, `script_name`, `script_data`, `script_type`) VALUES (2, 'demo', 's2', '脚本s2', 'defaultContext.setData(\"s2\",\"hello\")', 'script');
+INSERT INTO `script`(`id`, `application_name`, `script_id`, `script_name`, `script_data`, `script_type`) VALUES (3, 'demo', 's3', 'sectionClassification', 'def globalSectionClassificationList = [\"汇差\",\"手续费\",\"成本科目\"]\r\nglobalSectionClassification.setGlobalSectionClassificationList(globalSectionClassificationList)\r\n', 'script');
+INSERT INTO `script`(`id`, `application_name`, `script_id`, `script_name`, `script_data`, `script_type`) VALUES (4, 'demo', 's4', 'globalBusinessType', 'def globalBusinessTypeList = [\"货代\",\"报关\",\"船代\",\"散杂货\"]\r\nglobalBusinessType.setGlobalBusinessTypeList(globalBusinessTypeList)', 'script');
+INSERT INTO `script`(`id`, `application_name`, `script_id`, `script_name`, `script_data`, `script_type`) VALUES (5, 'demo', 's5', 'salesman', 'def globalSalesmanList = [\"仓干配物流部(物流)\"]\r\nsalesman.setGlobalSalesmanList(globalSalesmanList)', 'script');
+INSERT INTO `script`(`id`, `application_name`, `script_id`, `script_name`, `script_data`, `script_type`) VALUES (6, 'demo', 's6', 'businessCategory', 'def globalBusinessCategoryList = [\"全货船业务\",\"进出岛仓干配\"]\r\nbusinessCategory.setGlobalBusinessCategoryList(globalBusinessCategoryList)', 'script');
+INSERT INTO `script`(`id`, `application_name`, `script_id`, `script_name`, `script_data`, `script_type`) VALUES (7, 'demo', 's7', 'costCenter01', 'def costCenter01Code = \"P350401028\"\r\ncostCenterContext.setCode(costCenter01Code)\r\n\r\ndef costCenter01Name = \"仓干配物流部利润中心\"\r\ncostCenterContext.setName(costCenter01Name)\r\n\r\ncostCenterContext.setGenerateCode(costCenter01Code + costCenter01Name)', 'script');
+INSERT INTO `script`(`id`, `application_name`, `script_id`, `script_name`, `script_data`, `script_type`) VALUES (8, 'demo', 's8', 'costCenter02', 'def costCenter02Code = \"P350401026\"\r\ncostCenterContext.setCode(costCenter02Code)\r\n\r\ndef costCenter02Name = \"商品车物流部利润中心\"\r\ncostCenterContext.setName(costCenter02Name)\r\n\r\ncostCenterContext.setGenerateCode(costCenter02Code + costCenter02Name)', 'script');
+INSERT INTO `script`(`id`, `application_name`, `script_id`, `script_name`, `script_data`, `script_type`) VALUES (9, 'demo', 's9', 'sout', 'def defaultName = \"无匹配项\"\r\ncostCenterContext.setGenerateCode(defaultName)', 'script');
+
+