From 02657602712a84b35ba7fcd44fd589ecdeff5a43 Mon Sep 17 00:00:00 2001 From: linbangquan <1437892690@qq.com> Date: Thu, 22 Feb 2024 17:39:58 +0800 Subject: [PATCH 1/9] =?UTF-8?q?[=E5=8A=9F=E8=83=BD]=20=E8=A1=A8=E5=8D=95?= =?UTF-8?q?=E5=AE=9E=E4=BE=8B=E6=95=B0=E6=8D=AE=E6=8A=BD=E7=A6=BB?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit 关联 #[1096897488453632]表单实例数据抽离 http://192.168.0.96:8090/demo/rdm.html#/story-detail/939050947543040/939050947543042/1096897488453632 --- .../framework/form/dao/mapper/FormMapper.java | 11 +++-- .../framework/form/dao/mapper/FormMapper.xml | 45 +++++++++++++++++++ .../framework/form/dto/AttributeDataVo.java | 42 +++++++++++++---- .../attribute/handler/UserSelectHandler.java | 4 +- .../form/service/FormServiceImpl.java | 4 +- 5 files changed, 89 insertions(+), 17 deletions(-) diff --git a/src/main/java/neatlogic/framework/form/dao/mapper/FormMapper.java b/src/main/java/neatlogic/framework/form/dao/mapper/FormMapper.java index e1f58ccce..4d0674afc 100644 --- a/src/main/java/neatlogic/framework/form/dao/mapper/FormMapper.java +++ b/src/main/java/neatlogic/framework/form/dao/mapper/FormMapper.java @@ -18,10 +18,7 @@ package neatlogic.framework.form.dao.mapper; import neatlogic.framework.common.dto.BasePageVo; import neatlogic.framework.common.dto.ValueTextVo; -import neatlogic.framework.form.dto.FormAttributeVo; -import neatlogic.framework.form.dto.FormCustomItemVo; -import neatlogic.framework.form.dto.FormVersionVo; -import neatlogic.framework.form.dto.FormVo; +import neatlogic.framework.form.dto.*; import org.springframework.stereotype.Component; import java.util.List; @@ -79,6 +76,8 @@ public interface FormMapper { List getFormVersionList(); + List getFormAttributeDataListByIdList(List idList); + int insertForm(FormVo formVo); int resetFormVersionIsActiveByFormUuid(String formUuid); @@ -97,6 +96,8 @@ public interface FormMapper { int insertFormAttribute(FormAttributeVo formAttributeVo); + int insertFormAttributeData(AttributeDataVo attributeDataVo); + int deleteFormAttributeByFormUuid(String formUuid); int deleteFormByUuid(String uuid); @@ -106,4 +107,6 @@ public interface FormMapper { int deleteFormVersionByUuid(String uuid); void deleteFormCustomItem(Long id); + + int deleteFormAttributeDataByIdList(List idList); } diff --git a/src/main/java/neatlogic/framework/form/dao/mapper/FormMapper.xml b/src/main/java/neatlogic/framework/form/dao/mapper/FormMapper.xml index 96596d27b..d3a89067a 100644 --- a/src/main/java/neatlogic/framework/form/dao/mapper/FormMapper.xml +++ b/src/main/java/neatlogic/framework/form/dao/mapper/FormMapper.xml @@ -351,6 +351,21 @@ limitations under the License. ORDER BY a.`form_uuid` + + UPDATE `form_version` @@ -478,6 +493,28 @@ limitations under the License. #{data}) + + INSERT INTO `form_attribute_data` ( + `id`, + `form_uuid`, + `handler`, + `attribute_label`, + `attribute_uuid`, + `data` + ) + VALUES + ( + #{id}, + #{formUuid}, + #{handler}, + #{attributeLabel}, + #{attributeUuid}, + #{data} + ) + ON DUPLICATE KEY + UPDATE `data` = #{data,typeHandler=CompressHandler} + + DELETE FROM `form_attribute` @@ -507,4 +544,12 @@ limitations under the License. FROM `form_customitem` WHERE id = #{value} + + + DELETE FROM `form_attribute_data` + WHERE `id` IN + + #{id} + + diff --git a/src/main/java/neatlogic/framework/form/dto/AttributeDataVo.java b/src/main/java/neatlogic/framework/form/dto/AttributeDataVo.java index 3b08b4a66..3725791f7 100644 --- a/src/main/java/neatlogic/framework/form/dto/AttributeDataVo.java +++ b/src/main/java/neatlogic/framework/form/dto/AttributeDataVo.java @@ -26,14 +26,33 @@ import org.apache.commons.lang3.StringUtils; import com.alibaba.fastjson.JSONArray; import com.alibaba.fastjson.JSONObject; -public class AttributeDataVo { +public class AttributeDataVo implements Comparable { + private Long id; + private String formUuid; private String attributeUuid; private String attributeLabel; private String type; @JSONField(serialize = false) private String data; private Object dataObj; - private Integer isMultiple; + + public Long getId() { + return id; + } + + public void setId(Long id) { + this.id = id; + } + + public String getFormUuid() { + return formUuid; + } + + public void setFormUuid(String formUuid) { + this.formUuid = formUuid; + } + + // private Integer isMultiple; public String getAttributeUuid() { return attributeUuid; } @@ -95,13 +114,13 @@ public class AttributeDataVo { this.dataObj = dataObj; } - public Integer getIsMultiple() { - return isMultiple; - } - - public void setIsMultiple(Integer isMultiple) { - this.isMultiple = isMultiple; - } +// public Integer getIsMultiple() { +// return isMultiple; +// } +// +// public void setIsMultiple(Integer isMultiple) { +// this.isMultiple = isMultiple; +// } public boolean dataIsEmpty() { Object dataObj = getDataObj(); @@ -160,4 +179,9 @@ public class AttributeDataVo { return dataObj.equals(otherDataObj); } } + + @Override + public int compareTo(AttributeDataVo attributeData) { + return this.id.compareTo(attributeData.getId()); + } } diff --git a/src/main/java/neatlogic/module/framework/form/attribute/handler/UserSelectHandler.java b/src/main/java/neatlogic/module/framework/form/attribute/handler/UserSelectHandler.java index 7bc522e7a..781f4ebb6 100644 --- a/src/main/java/neatlogic/module/framework/form/attribute/handler/UserSelectHandler.java +++ b/src/main/java/neatlogic/module/framework/form/attribute/handler/UserSelectHandler.java @@ -413,8 +413,8 @@ public class UserSelectHandler extends FormHandlerBase { List valueList = new ArrayList<>(); List textList = new ArrayList<>(); List valueTextList = new ArrayList<>(); - boolean isMultiple = configObj.getBooleanValue("isMultiple"); - attributeDataVo.setIsMultiple(isMultiple ? 1 : 0); +// boolean isMultiple = configObj.getBooleanValue("isMultiple"); +// attributeDataVo.setIsMultiple(isMultiple ? 1 : 0); if (dataObj instanceof JSONArray) { JSONArray valueArray = (JSONArray) dataObj; if (CollectionUtils.isNotEmpty(valueArray)) { diff --git a/src/main/java/neatlogic/module/framework/form/service/FormServiceImpl.java b/src/main/java/neatlogic/module/framework/form/service/FormServiceImpl.java index 68c325ee2..2aefa48da 100644 --- a/src/main/java/neatlogic/module/framework/form/service/FormServiceImpl.java +++ b/src/main/java/neatlogic/module/framework/form/service/FormServiceImpl.java @@ -467,8 +467,8 @@ public class FormServiceImpl implements FormService, IFormCrossoverService { } List valueList = new ArrayList<>(); List textList = new ArrayList<>(); - boolean isMultiple = configObj.getBooleanValue("isMultiple"); - attributeDataVo.setIsMultiple(isMultiple ? 1 : 0); +// boolean isMultiple = configObj.getBooleanValue("isMultiple"); +// attributeDataVo.setIsMultiple(isMultiple ? 1 : 0); String dataSource = configObj.getString("dataSource"); if ("static".equals(dataSource)) { JSONArray dataArray = configObj.getJSONArray("dataList"); -- Gitee From a4eb3986cd3600b52e1df452f6ca3378cdae0c90 Mon Sep 17 00:00:00 2001 From: linbangquan <1437892690@qq.com> Date: Thu, 22 Feb 2024 18:10:31 +0800 Subject: [PATCH 2/9] =?UTF-8?q?[=E5=8A=9F=E8=83=BD]=20=E8=A1=A8=E5=8D=95?= =?UTF-8?q?=E5=AE=9E=E4=BE=8B=E6=95=B0=E6=8D=AE=E6=8A=BD=E7=A6=BB?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit 关联 #[1096897488453632]表单实例数据抽离 http://192.168.0.96:8090/demo/rdm.html#/story-detail/939050947543040/939050947543042/1096897488453632 --- .../framework/changelog/2024-02-22/neatlogic.sql | 15 +++++++++++++++ .../framework/changelog/2024-02-22/version.json | 10 ++++++++++ .../resources/framework/sqlscript/ddl.sql | 13 +++++++++++++ 3 files changed, 38 insertions(+) create mode 100644 src/main/resources/neatlogic/resources/framework/changelog/2024-02-22/neatlogic.sql create mode 100644 src/main/resources/neatlogic/resources/framework/changelog/2024-02-22/version.json diff --git a/src/main/resources/neatlogic/resources/framework/changelog/2024-02-22/neatlogic.sql b/src/main/resources/neatlogic/resources/framework/changelog/2024-02-22/neatlogic.sql new file mode 100644 index 000000000..06aba3e08 --- /dev/null +++ b/src/main/resources/neatlogic/resources/framework/changelog/2024-02-22/neatlogic.sql @@ -0,0 +1,15 @@ +CREATE TABLE `form_attribute_data` ( + `id` bigint NOT NULL COMMENT 'id', + `form_uuid` char(32) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NOT NULL COMMENT '表单uuid', + `handler` varchar(50) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NOT NULL COMMENT '类型', + `attribute_label` varchar(100) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NOT NULL COMMENT '属性名', + `attribute_uuid` char(32) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NOT NULL COMMENT '属性uuid', + `data` mediumtext CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci COMMENT '属性值,json格式', + PRIMARY KEY (`id`) USING BTREE +) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_general_ci COMMENT='表单实例属性当前值'; + +CREATE TABLE `processtask_formattribute` ( + `processtask_id` bigint NOT NULL COMMENT '工单id', + `form_attribute_data_id` bigint NOT NULL COMMENT '表单属性值id', + PRIMARY KEY (`processtask_id`,`form_attribute_data_id`) +) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_general_ci COMMENT='工单与表单属性值关系表'; diff --git a/src/main/resources/neatlogic/resources/framework/changelog/2024-02-22/version.json b/src/main/resources/neatlogic/resources/framework/changelog/2024-02-22/version.json new file mode 100644 index 000000000..945bc29b7 --- /dev/null +++ b/src/main/resources/neatlogic/resources/framework/changelog/2024-02-22/version.json @@ -0,0 +1,10 @@ +{ + "content":[ + { + "type":"新增功能", + "detail":[ + {"msg":"1.表单实例数据抽离"} + ] + } + ] +} diff --git a/src/main/resources/neatlogic/resources/framework/sqlscript/ddl.sql b/src/main/resources/neatlogic/resources/framework/sqlscript/ddl.sql index 2c656f9fd..c032f5dd7 100644 --- a/src/main/resources/neatlogic/resources/framework/sqlscript/ddl.sql +++ b/src/main/resources/neatlogic/resources/framework/sqlscript/ddl.sql @@ -238,6 +238,19 @@ CREATE TABLE IF NOT EXISTS `form_attribute` ( PRIMARY KEY (`form_uuid`,`formversion_uuid`,`uuid`) USING BTREE ) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_general_ci COMMENT='表单版本属性'; +-- ---------------------------- +-- Table structure for form_attribute_data +-- ---------------------------- +CREATE TABLE IF NOT EXISTS `form_attribute_data` ( + `id` bigint NOT NULL COMMENT 'id', + `form_uuid` char(32) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NOT NULL COMMENT '表单uuid', + `handler` varchar(50) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NOT NULL COMMENT '类型', + `attribute_label` varchar(100) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NOT NULL COMMENT '属性名', + `attribute_uuid` char(32) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NOT NULL COMMENT '属性uuid', + `data` mediumtext CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci COMMENT '属性值,json格式', + PRIMARY KEY (`id`) USING BTREE +) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_general_ci COMMENT='表单实例属性当前值'; + -- ---------------------------- -- Table structure for form_customitem -- ---------------------------- -- Gitee From 6756257c83465acba1608d4891123f8d47f2eeb9 Mon Sep 17 00:00:00 2001 From: linbangquan <1437892690@qq.com> Date: Thu, 22 Feb 2024 18:36:03 +0800 Subject: [PATCH 3/9] =?UTF-8?q?[=E5=8A=9F=E8=83=BD]=20=E8=A1=A8=E5=8D=95?= =?UTF-8?q?=E5=AE=9E=E4=BE=8B=E6=95=B0=E6=8D=AE=E6=8A=BD=E7=A6=BB?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit 关联 #[1096897488453632]表单实例数据抽离 http://192.168.0.96:8090/demo/rdm.html#/story-detail/939050947543040/939050947543042/1096897488453632 --- .../framework/form/dto/AttributeDataVo.java | 28 +++++++++++-------- .../form/dto/AttributeExtendedDataVo.java | 2 +- .../framework/notify/widget/FormTable.java | 2 +- 3 files changed, 18 insertions(+), 14 deletions(-) diff --git a/src/main/java/neatlogic/framework/form/dto/AttributeDataVo.java b/src/main/java/neatlogic/framework/form/dto/AttributeDataVo.java index 3725791f7..58c914ee3 100644 --- a/src/main/java/neatlogic/framework/form/dto/AttributeDataVo.java +++ b/src/main/java/neatlogic/framework/form/dto/AttributeDataVo.java @@ -19,6 +19,7 @@ package neatlogic.framework.form.dto; import com.alibaba.fastjson.annotation.JSONField; import neatlogic.framework.form.attribute.core.FormAttributeHandlerFactory; import neatlogic.framework.form.attribute.core.IFormAttributeHandler; +import neatlogic.framework.util.SnowflakeUtil; import org.apache.commons.collections4.CollectionUtils; import org.apache.commons.collections4.MapUtils; import org.apache.commons.lang3.StringUtils; @@ -31,12 +32,15 @@ public class AttributeDataVo implements Comparable { private String formUuid; private String attributeUuid; private String attributeLabel; - private String type; + private String handler; @JSONField(serialize = false) private String data; private Object dataObj; public Long getId() { + if (id == null) { + id = SnowflakeUtil.uniqueLong(); + } return id; } @@ -69,12 +73,12 @@ public class AttributeDataVo implements Comparable { this.attributeLabel = attributeLabel; } - public String getType() { - return type; + public String getHandler() { + return handler; } - public void setType(String type) { - this.type = type; + public void setHandler(String handler) { + this.handler = handler; } public String getData() { @@ -87,26 +91,26 @@ public class AttributeDataVo implements Comparable { public Object getDataObj() { if (dataObj != null) { - if (StringUtils.isBlank(type)) { + if (StringUtils.isBlank(handler)) { return dataObj; } - IFormAttributeHandler handler = FormAttributeHandlerFactory.getHandler(type); + IFormAttributeHandler formAttributeHandler = FormAttributeHandlerFactory.getHandler(handler); if (handler == null) { return dataObj; } - return handler.conversionDataType(dataObj, attributeLabel); + return formAttributeHandler.conversionDataType(dataObj, attributeLabel); } else { if (data == null) { return null; } - if (StringUtils.isBlank(type)) { + if (StringUtils.isBlank(handler)) { return data; } - IFormAttributeHandler handler = FormAttributeHandlerFactory.getHandler(type); - if (handler == null) { + IFormAttributeHandler formAttributeHandler = FormAttributeHandlerFactory.getHandler(handler); + if (formAttributeHandler == null) { return data; } - return handler.conversionDataType(data, attributeLabel); + return formAttributeHandler.conversionDataType(data, attributeLabel); } } diff --git a/src/main/java/neatlogic/framework/form/dto/AttributeExtendedDataVo.java b/src/main/java/neatlogic/framework/form/dto/AttributeExtendedDataVo.java index b2aab7a33..cb57ac1cc 100644 --- a/src/main/java/neatlogic/framework/form/dto/AttributeExtendedDataVo.java +++ b/src/main/java/neatlogic/framework/form/dto/AttributeExtendedDataVo.java @@ -22,7 +22,7 @@ public class AttributeExtendedDataVo extends AttributeDataVo{ public AttributeExtendedDataVo(AttributeDataVo attributeDataVo, Object extendedData) { this.setAttributeUuid(attributeDataVo.getAttributeUuid()); this.setAttributeLabel(attributeDataVo.getAttributeLabel()); - this.setType(attributeDataVo.getType()); + this.setHandler(attributeDataVo.getHandler()); this.extendedData = extendedData; } diff --git a/src/main/java/neatlogic/framework/notify/widget/FormTable.java b/src/main/java/neatlogic/framework/notify/widget/FormTable.java index 7b1c7d8c3..c51f9190d 100644 --- a/src/main/java/neatlogic/framework/notify/widget/FormTable.java +++ b/src/main/java/neatlogic/framework/notify/widget/FormTable.java @@ -368,7 +368,7 @@ public class FormTable implements TemplateMethodModelEx { continue; } String attributeLabel = attributeDataVo.getAttributeLabel(); - String type = attributeDataVo.getType(); + String type = attributeDataVo.getHandler(); Object dataObj = attributeDataVo.getExtendedData(); String result = StringUtils.EMPTY; if (dataObj != null) { -- Gitee From 97e70fdc640d5244d05af5d35a83e27437e280dd Mon Sep 17 00:00:00 2001 From: linbangquan <1437892690@qq.com> Date: Fri, 23 Feb 2024 19:49:12 +0800 Subject: [PATCH 4/9] =?UTF-8?q?[=E5=8A=9F=E8=83=BD]=20=E8=A1=A8=E5=8D=95?= =?UTF-8?q?=E5=AE=9E=E4=BE=8B=E6=95=B0=E6=8D=AE=E6=8A=BD=E7=A6=BB?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit 关联 #[1096897488453632]表单实例数据抽离 http://192.168.0.96:8090/demo/rdm.html#/story-detail/939050947543040/939050947543042/1096897488453632 --- .../framework/sqlfile/ScriptRunnerManager.java | 12 ++++++++++-- .../framework/changelog/2024-02-22/neatlogic.sql | 15 --------------- .../framework/changelog/2024-02-22/version.json | 10 ---------- 3 files changed, 10 insertions(+), 27 deletions(-) delete mode 100644 src/main/resources/neatlogic/resources/framework/changelog/2024-02-22/neatlogic.sql delete mode 100644 src/main/resources/neatlogic/resources/framework/changelog/2024-02-22/version.json diff --git a/src/main/java/neatlogic/framework/sqlfile/ScriptRunnerManager.java b/src/main/java/neatlogic/framework/sqlfile/ScriptRunnerManager.java index e5488d34f..18d0eb573 100644 --- a/src/main/java/neatlogic/framework/sqlfile/ScriptRunnerManager.java +++ b/src/main/java/neatlogic/framework/sqlfile/ScriptRunnerManager.java @@ -236,14 +236,22 @@ public class ScriptRunnerManager { // Resources.setCharset(Charset.forName("UTF-8")); runner.setLogWriter(logWriter); runner.setErrorLogWriter(errWriter); - runner.setDelimiter(";"); +// runner.setDelimiter(";"); + // 语句结束符号 + String delimiter = ";"; + runner.setDelimiter(delimiter); String line; StringBuilder sqlSb = new StringBuilder(); while ((line = scriptBufferedReader.readLine()) != null) { if (StringUtils.isBlank(line.trim())) { continue; } - if (!line.trim().toLowerCase(Locale.ROOT).endsWith(";")) { + if (line.trim().toLowerCase(Locale.ROOT).startsWith("delimiter")) { + delimiter = line.substring(9).trim(); + runner.setDelimiter(delimiter); + continue; + } else if (!line.trim().toLowerCase(Locale.ROOT).endsWith(delimiter)) { + sqlSb.append("\n"); sqlSb.append(line); continue; } diff --git a/src/main/resources/neatlogic/resources/framework/changelog/2024-02-22/neatlogic.sql b/src/main/resources/neatlogic/resources/framework/changelog/2024-02-22/neatlogic.sql deleted file mode 100644 index 06aba3e08..000000000 --- a/src/main/resources/neatlogic/resources/framework/changelog/2024-02-22/neatlogic.sql +++ /dev/null @@ -1,15 +0,0 @@ -CREATE TABLE `form_attribute_data` ( - `id` bigint NOT NULL COMMENT 'id', - `form_uuid` char(32) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NOT NULL COMMENT '表单uuid', - `handler` varchar(50) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NOT NULL COMMENT '类型', - `attribute_label` varchar(100) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NOT NULL COMMENT '属性名', - `attribute_uuid` char(32) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NOT NULL COMMENT '属性uuid', - `data` mediumtext CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci COMMENT '属性值,json格式', - PRIMARY KEY (`id`) USING BTREE -) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_general_ci COMMENT='表单实例属性当前值'; - -CREATE TABLE `processtask_formattribute` ( - `processtask_id` bigint NOT NULL COMMENT '工单id', - `form_attribute_data_id` bigint NOT NULL COMMENT '表单属性值id', - PRIMARY KEY (`processtask_id`,`form_attribute_data_id`) -) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_general_ci COMMENT='工单与表单属性值关系表'; diff --git a/src/main/resources/neatlogic/resources/framework/changelog/2024-02-22/version.json b/src/main/resources/neatlogic/resources/framework/changelog/2024-02-22/version.json deleted file mode 100644 index 945bc29b7..000000000 --- a/src/main/resources/neatlogic/resources/framework/changelog/2024-02-22/version.json +++ /dev/null @@ -1,10 +0,0 @@ -{ - "content":[ - { - "type":"新增功能", - "detail":[ - {"msg":"1.表单实例数据抽离"} - ] - } - ] -} -- Gitee From d8901b7a553ff8216a3f2f369aaa436dcef259b8 Mon Sep 17 00:00:00 2001 From: linbangquan <1437892690@qq.com> Date: Fri, 23 Feb 2024 19:49:57 +0800 Subject: [PATCH 5/9] =?UTF-8?q?[=E5=8A=9F=E8=83=BD]=20=E8=A1=A8=E5=8D=95?= =?UTF-8?q?=E5=AE=9E=E4=BE=8B=E6=95=B0=E6=8D=AE=E6=8A=BD=E7=A6=BB?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit 关联 #[1096897488453632]表单实例数据抽离 http://192.168.0.96:8090/demo/rdm.html#/story-detail/939050947543040/939050947543042/1096897488453632 --- .../changelog/2024-02-23/neatlogic_tenant.sql | 122 ++++++++++++++++++ .../changelog/2024-02-23/version.json | 10 ++ 2 files changed, 132 insertions(+) create mode 100644 src/main/resources/neatlogic/resources/framework/changelog/2024-02-23/neatlogic_tenant.sql create mode 100644 src/main/resources/neatlogic/resources/framework/changelog/2024-02-23/version.json diff --git a/src/main/resources/neatlogic/resources/framework/changelog/2024-02-23/neatlogic_tenant.sql b/src/main/resources/neatlogic/resources/framework/changelog/2024-02-23/neatlogic_tenant.sql new file mode 100644 index 000000000..4b5e43ebd --- /dev/null +++ b/src/main/resources/neatlogic/resources/framework/changelog/2024-02-23/neatlogic_tenant.sql @@ -0,0 +1,122 @@ +CREATE TABLE IF NOT EXISTS `form_attribute_data` ( + `id` bigint NOT NULL COMMENT 'id', + `form_uuid` char(32) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NOT NULL COMMENT '表单uuid', + `handler` varchar(50) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NOT NULL COMMENT '类型', + `attribute_label` varchar(100) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NOT NULL COMMENT '属性名', + `attribute_uuid` char(32) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NOT NULL COMMENT '属性uuid', + `data` mediumtext CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci COMMENT '属性值,json格式', + PRIMARY KEY (`id`) USING BTREE +) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_general_ci COMMENT='表单实例属性当前值'; + +CREATE TABLE IF NOT EXISTS `processtask_formattribute` ( + `processtask_id` bigint NOT NULL COMMENT '工单id', + `form_attribute_data_id` bigint NOT NULL COMMENT '表单属性值id', + PRIMARY KEY (`processtask_id`,`form_attribute_data_id`) +) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_general_ci COMMENT='工单与表单属性值关系表'; + +DROP FUNCTION IF EXISTS `generateSnowflakeId`; + +DELIMITER $$ +CREATE FUNCTION `generateSnowflakeId`() RETURNS BIGINT +BEGIN + DECLARE SCHEDULE_SERVER_ID BIGINT DEFAULT 1; + DECLARE START_TIMESTAMP BIGINT DEFAULT 1577808000; + DECLARE SEQUENCE_BIT BIGINT DEFAULT 13; + DECLARE MACHINE_BIT BIGINT DEFAULT 10; + DECLARE TIMESTAMP_LEFT BIGINT DEFAULT SEQUENCE_BIT + MACHINE_BIT; + DECLARE MAX_SEQUENCE BIGINT DEFAULT ~(-1 << SEQUENCE_BIT); + DECLARE MAX_MACHINE_ID BIGINT DEFAULT ~(-1 << MACHINE_BIT); + DECLARE machineIdPart BIGINT DEFAULT (SCHEDULE_SERVER_ID & MAX_MACHINE_ID) << SEQUENCE_BIT; + + DECLARE currentStamp BIGINT; + SET currentStamp = UNIX_TIMESTAMP(NOW()); + + IF currentStamp < @lastStamp THEN + WHILE currentStamp < @lastStamp DO + SET currentStamp = UNIX_TIMESTAMP(NOW()); + END WHILE; + END IF; + + IF currentStamp = @lastStamp THEN + SET @sequence = (@sequence + 1) & MAX_SEQUENCE; + IF @sequence = 0 THEN + WHILE currentStamp < @lastStamp DO + SET currentStamp = UNIX_TIMESTAMP(NOW()); + END WHILE; + END IF; + ELSE + SET @sequence = 0; + END IF; + + SET @lastStamp = currentStamp; + + RETURN ((currentStamp - START_TIMESTAMP) << TIMESTAMP_LEFT) | machineIdPart | @sequence; +END $$ + +DELIMITER ; + +DROP PROCEDURE IF EXISTS `handleProcessTaskFormAttributeData`; + +DELIMITER $$ +CREATE PROCEDURE handleProcessTaskFormAttributeData() +BEGIN + DECLARE rowNum LONG; + DECLARE currentPage INT DEFAULT 1; + DECLARE pageSize INT DEFAULT 1000; + DECLARE pageCount INT DEFAULT 0; + DECLARE yu INT DEFAULT 0; + + SELECT COUNT(1) INTO rowNum FROM `processtask_formattribute_data`; + IF rowNum > 0 THEN + SET @lastStamp = -1; + SET @sequence = 0; + + SET pageCount = CEIL(rowNum / pageSize); + WHILE currentPage <= pageCount DO + BEGIN + DECLARE done INT DEFAULT FALSE; + + DECLARE v_id BIGINT; + DECLARE v_processTaskId BIGINT; + DECLARE v_type VARCHAR(50); + DECLARE v_attributeLabel VARCHAR(50); + DECLARE v_attributeUuid CHAR(32); + DECLARE v_formUuid CHAR(32); + DECLARE v_data MEDIUMTEXT; + + DECLARE startNum INT DEFAULT (currentPage - 1) * pageSize; + DECLARE cur CURSOR FOR SELECT a.`processtask_id`, a.`type`, a.`attribute_label`, a.`attribute_uuid`, a.`data`, b.`form_uuid` + FROM `processtask_formattribute_data` a + JOIN `processtask_form` b ON b.`processtask_id` = a.`processtask_id` + ORDER BY a.`processtask_id`, a.`sort` + LIMIT startNum, pageSize; + + DECLARE CONTINUE HANDLER FOR NOT FOUND SET done = TRUE; + OPEN cur; + read_loop: LOOP + FETCH cur INTO v_processTaskId, v_type, v_attributeLabel, v_attributeUuid, v_data, v_formUuid; + IF done THEN + LEAVE read_loop; + END IF; + IF v_attributeLabel IS NULL THEN + SET v_attributeLabel = ''; + END IF; + SET v_id = generateSnowflakeId(); + INSERT INTO `form_attribute_data` (`id`, `form_uuid`, `handler`, `attribute_label`, `attribute_uuid`, `data`) + VALUES (v_id, v_formUuid, v_type, v_attributeLabel, v_attributeUuid, v_data); + INSERT INTO `processtask_formattribute` (`processtask_id`, `form_attribute_data_id`) + VALUES (v_processTaskId, v_id); + END LOOP; + CLOSE cur; + END; + SET currentPage = currentPage + 1; + END WHILE; + END IF; +END $$ +DELIMITER ; + +CALL handleProcessTaskFormAttributeData(); + +DROP PROCEDURE `handleProcessTaskFormAttributeData`; + +DROP FUNCTION `generateSnowflakeId`; diff --git a/src/main/resources/neatlogic/resources/framework/changelog/2024-02-23/version.json b/src/main/resources/neatlogic/resources/framework/changelog/2024-02-23/version.json new file mode 100644 index 000000000..945bc29b7 --- /dev/null +++ b/src/main/resources/neatlogic/resources/framework/changelog/2024-02-23/version.json @@ -0,0 +1,10 @@ +{ + "content":[ + { + "type":"新增功能", + "detail":[ + {"msg":"1.表单实例数据抽离"} + ] + } + ] +} -- Gitee From 95ab9918381309ea8d511e793e4598a92d8fd0f1 Mon Sep 17 00:00:00 2001 From: linbangquan <1437892690@qq.com> Date: Fri, 23 Feb 2024 19:59:31 +0800 Subject: [PATCH 6/9] =?UTF-8?q?[=E5=8A=9F=E8=83=BD]=20=E8=A1=A8=E5=8D=95?= =?UTF-8?q?=E5=AE=9E=E4=BE=8B=E6=95=B0=E6=8D=AE=E6=8A=BD=E7=A6=BB?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit 关联 #[1096897488453632]表单实例数据抽离 http://192.168.0.96:8090/demo/rdm.html#/story-detail/939050947543040/939050947543042/1096897488453632 --- .../changelog/2024-02-23/neatlogic_tenant.sql | 5 - .../changelog/2024-02-24/neatlogic_tenant.sql | 116 ++++++++++++++++++ .../changelog/2024-02-24/version.json | 10 ++ 3 files changed, 126 insertions(+), 5 deletions(-) create mode 100644 src/main/resources/neatlogic/resources/framework/changelog/2024-02-24/neatlogic_tenant.sql create mode 100644 src/main/resources/neatlogic/resources/framework/changelog/2024-02-24/version.json diff --git a/src/main/resources/neatlogic/resources/framework/changelog/2024-02-23/neatlogic_tenant.sql b/src/main/resources/neatlogic/resources/framework/changelog/2024-02-23/neatlogic_tenant.sql index 4b5e43ebd..1cffc84c4 100644 --- a/src/main/resources/neatlogic/resources/framework/changelog/2024-02-23/neatlogic_tenant.sql +++ b/src/main/resources/neatlogic/resources/framework/changelog/2024-02-23/neatlogic_tenant.sql @@ -115,8 +115,3 @@ BEGIN END $$ DELIMITER ; -CALL handleProcessTaskFormAttributeData(); - -DROP PROCEDURE `handleProcessTaskFormAttributeData`; - -DROP FUNCTION `generateSnowflakeId`; diff --git a/src/main/resources/neatlogic/resources/framework/changelog/2024-02-24/neatlogic_tenant.sql b/src/main/resources/neatlogic/resources/framework/changelog/2024-02-24/neatlogic_tenant.sql new file mode 100644 index 000000000..f0ae76a72 --- /dev/null +++ b/src/main/resources/neatlogic/resources/framework/changelog/2024-02-24/neatlogic_tenant.sql @@ -0,0 +1,116 @@ +CREATE TABLE IF NOT EXISTS `form_attribute_data` ( + `id` bigint NOT NULL COMMENT 'id', + `form_uuid` char(32) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NOT NULL COMMENT '表单uuid', + `handler` varchar(50) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NOT NULL COMMENT '类型', + `attribute_label` varchar(100) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NOT NULL COMMENT '属性名', + `attribute_uuid` char(32) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NOT NULL COMMENT '属性uuid', + `data` mediumtext CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci COMMENT '属性值,json格式', + PRIMARY KEY (`id`) USING BTREE +) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_general_ci COMMENT='表单实例属性当前值'; + +CREATE TABLE IF NOT EXISTS `processtask_formattribute` ( + `processtask_id` bigint NOT NULL COMMENT '工单id', + `form_attribute_data_id` bigint NOT NULL COMMENT '表单属性值id', + PRIMARY KEY (`processtask_id`,`form_attribute_data_id`) +) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_general_ci COMMENT='工单与表单属性值关系表'; + +DROP FUNCTION IF EXISTS `generateSnowflakeId`; + +DELIMITER $$ +CREATE FUNCTION `generateSnowflakeId`() RETURNS BIGINT +BEGIN + DECLARE SCHEDULE_SERVER_ID BIGINT DEFAULT 1; + DECLARE START_TIMESTAMP BIGINT DEFAULT 1577808000; + DECLARE SEQUENCE_BIT BIGINT DEFAULT 13; + DECLARE MACHINE_BIT BIGINT DEFAULT 10; + DECLARE TIMESTAMP_LEFT BIGINT DEFAULT SEQUENCE_BIT + MACHINE_BIT; + DECLARE MAX_SEQUENCE BIGINT DEFAULT ~(-1 << SEQUENCE_BIT); + DECLARE MAX_MACHINE_ID BIGINT DEFAULT ~(-1 << MACHINE_BIT); + DECLARE machineIdPart BIGINT DEFAULT (SCHEDULE_SERVER_ID & MAX_MACHINE_ID) << SEQUENCE_BIT; + + DECLARE currentStamp BIGINT; + SET currentStamp = UNIX_TIMESTAMP(NOW()); + + IF currentStamp < @lastStamp THEN + WHILE currentStamp < @lastStamp DO + SET currentStamp = UNIX_TIMESTAMP(NOW()); + END WHILE; + END IF; + + IF currentStamp = @lastStamp THEN + SET @sequence = (@sequence + 1) & MAX_SEQUENCE; + IF @sequence = 0 THEN + WHILE currentStamp < @lastStamp DO + SET currentStamp = UNIX_TIMESTAMP(NOW()); + END WHILE; + END IF; + ELSE + SET @sequence = 0; + END IF; + + SET @lastStamp = currentStamp; + + RETURN ((currentStamp - START_TIMESTAMP) << TIMESTAMP_LEFT) | machineIdPart | @sequence; +END $$ + +DELIMITER ; + +DROP PROCEDURE IF EXISTS `handleProcessTaskFormAttributeData`; + +DELIMITER $$ +CREATE PROCEDURE handleProcessTaskFormAttributeData() +BEGIN + DECLARE rowNum LONG; + DECLARE currentPage INT DEFAULT 1; + DECLARE pageSize INT DEFAULT 1000; + DECLARE pageCount INT DEFAULT 0; + DECLARE yu INT DEFAULT 0; + + SELECT COUNT(1) INTO rowNum FROM `processtask_formattribute_data`; + IF rowNum > 0 THEN + SET @lastStamp = -1; + SET @sequence = 0; + + SET pageCount = CEIL(rowNum / pageSize); + WHILE currentPage <= pageCount DO + BEGIN + DECLARE done INT DEFAULT FALSE; + + DECLARE v_id BIGINT; + DECLARE v_processTaskId BIGINT; + DECLARE v_type VARCHAR(50); + DECLARE v_attributeLabel VARCHAR(50); + DECLARE v_attributeUuid CHAR(32); + DECLARE v_formUuid CHAR(32); + DECLARE v_data MEDIUMTEXT; + + DECLARE startNum INT DEFAULT (currentPage - 1) * pageSize; + DECLARE cur CURSOR FOR SELECT a.`processtask_id`, a.`type`, a.`attribute_label`, a.`attribute_uuid`, a.`data`, b.`form_uuid` + FROM `processtask_formattribute_data` a + JOIN `processtask_form` b ON b.`processtask_id` = a.`processtask_id` + ORDER BY a.`processtask_id`, a.`sort` + LIMIT startNum, pageSize; + + DECLARE CONTINUE HANDLER FOR NOT FOUND SET done = TRUE; + OPEN cur; + read_loop: LOOP + FETCH cur INTO v_processTaskId, v_type, v_attributeLabel, v_attributeUuid, v_data, v_formUuid; + IF done THEN + LEAVE read_loop; + END IF; + IF v_attributeLabel IS NULL THEN + SET v_attributeLabel = ''; + END IF; + SET v_id = generateSnowflakeId(); + INSERT INTO `form_attribute_data` (`id`, `form_uuid`, `handler`, `attribute_label`, `attribute_uuid`, `data`) + VALUES (v_id, v_formUuid, v_type, v_attributeLabel, v_attributeUuid, v_data); + INSERT INTO `processtask_formattribute` (`processtask_id`, `form_attribute_data_id`) + VALUES (v_processTaskId, v_id); + END LOOP; + CLOSE cur; + END; + SET currentPage = currentPage + 1; + END WHILE; + END IF; +END $$ +DELIMITER ; diff --git a/src/main/resources/neatlogic/resources/framework/changelog/2024-02-24/version.json b/src/main/resources/neatlogic/resources/framework/changelog/2024-02-24/version.json new file mode 100644 index 000000000..a55eba295 --- /dev/null +++ b/src/main/resources/neatlogic/resources/framework/changelog/2024-02-24/version.json @@ -0,0 +1,10 @@ +{ + "content":[ + { + "type":"新增功能", + "detail":[ + {"msg":"1.表单实例数据抽离2"} + ] + } + ] +} -- Gitee From b77dda94ab9d4c93f1e23f1d7989565935d6bfc8 Mon Sep 17 00:00:00 2001 From: linbangquan <1437892690@qq.com> Date: Sat, 24 Feb 2024 11:14:21 +0800 Subject: [PATCH 7/9] =?UTF-8?q?[=E5=8A=9F=E8=83=BD]=20=E8=A1=A8=E5=8D=95?= =?UTF-8?q?=E5=AE=9E=E4=BE=8B=E6=95=B0=E6=8D=AE=E6=8A=BD=E7=A6=BB?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit 关联 #[1096897488453632]表单实例数据抽离 http://192.168.0.96:8090/demo/rdm.html#/story-detail/939050947543040/939050947543042/1096897488453632 --- .../changelog/2024-02-24/neatlogic_tenant.sql | 117 +----------------- 1 file changed, 3 insertions(+), 114 deletions(-) diff --git a/src/main/resources/neatlogic/resources/framework/changelog/2024-02-24/neatlogic_tenant.sql b/src/main/resources/neatlogic/resources/framework/changelog/2024-02-24/neatlogic_tenant.sql index f0ae76a72..087009826 100644 --- a/src/main/resources/neatlogic/resources/framework/changelog/2024-02-24/neatlogic_tenant.sql +++ b/src/main/resources/neatlogic/resources/framework/changelog/2024-02-24/neatlogic_tenant.sql @@ -1,116 +1,5 @@ -CREATE TABLE IF NOT EXISTS `form_attribute_data` ( - `id` bigint NOT NULL COMMENT 'id', - `form_uuid` char(32) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NOT NULL COMMENT '表单uuid', - `handler` varchar(50) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NOT NULL COMMENT '类型', - `attribute_label` varchar(100) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NOT NULL COMMENT '属性名', - `attribute_uuid` char(32) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NOT NULL COMMENT '属性uuid', - `data` mediumtext CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci COMMENT '属性值,json格式', - PRIMARY KEY (`id`) USING BTREE -) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_general_ci COMMENT='表单实例属性当前值'; +CALL handleProcessTaskFormAttributeData(); -CREATE TABLE IF NOT EXISTS `processtask_formattribute` ( - `processtask_id` bigint NOT NULL COMMENT '工单id', - `form_attribute_data_id` bigint NOT NULL COMMENT '表单属性值id', - PRIMARY KEY (`processtask_id`,`form_attribute_data_id`) -) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_general_ci COMMENT='工单与表单属性值关系表'; +DROP PROCEDURE `handleProcessTaskFormAttributeData`; -DROP FUNCTION IF EXISTS `generateSnowflakeId`; - -DELIMITER $$ -CREATE FUNCTION `generateSnowflakeId`() RETURNS BIGINT -BEGIN - DECLARE SCHEDULE_SERVER_ID BIGINT DEFAULT 1; - DECLARE START_TIMESTAMP BIGINT DEFAULT 1577808000; - DECLARE SEQUENCE_BIT BIGINT DEFAULT 13; - DECLARE MACHINE_BIT BIGINT DEFAULT 10; - DECLARE TIMESTAMP_LEFT BIGINT DEFAULT SEQUENCE_BIT + MACHINE_BIT; - DECLARE MAX_SEQUENCE BIGINT DEFAULT ~(-1 << SEQUENCE_BIT); - DECLARE MAX_MACHINE_ID BIGINT DEFAULT ~(-1 << MACHINE_BIT); - DECLARE machineIdPart BIGINT DEFAULT (SCHEDULE_SERVER_ID & MAX_MACHINE_ID) << SEQUENCE_BIT; - - DECLARE currentStamp BIGINT; - SET currentStamp = UNIX_TIMESTAMP(NOW()); - - IF currentStamp < @lastStamp THEN - WHILE currentStamp < @lastStamp DO - SET currentStamp = UNIX_TIMESTAMP(NOW()); - END WHILE; - END IF; - - IF currentStamp = @lastStamp THEN - SET @sequence = (@sequence + 1) & MAX_SEQUENCE; - IF @sequence = 0 THEN - WHILE currentStamp < @lastStamp DO - SET currentStamp = UNIX_TIMESTAMP(NOW()); - END WHILE; - END IF; - ELSE - SET @sequence = 0; - END IF; - - SET @lastStamp = currentStamp; - - RETURN ((currentStamp - START_TIMESTAMP) << TIMESTAMP_LEFT) | machineIdPart | @sequence; -END $$ - -DELIMITER ; - -DROP PROCEDURE IF EXISTS `handleProcessTaskFormAttributeData`; - -DELIMITER $$ -CREATE PROCEDURE handleProcessTaskFormAttributeData() -BEGIN - DECLARE rowNum LONG; - DECLARE currentPage INT DEFAULT 1; - DECLARE pageSize INT DEFAULT 1000; - DECLARE pageCount INT DEFAULT 0; - DECLARE yu INT DEFAULT 0; - - SELECT COUNT(1) INTO rowNum FROM `processtask_formattribute_data`; - IF rowNum > 0 THEN - SET @lastStamp = -1; - SET @sequence = 0; - - SET pageCount = CEIL(rowNum / pageSize); - WHILE currentPage <= pageCount DO - BEGIN - DECLARE done INT DEFAULT FALSE; - - DECLARE v_id BIGINT; - DECLARE v_processTaskId BIGINT; - DECLARE v_type VARCHAR(50); - DECLARE v_attributeLabel VARCHAR(50); - DECLARE v_attributeUuid CHAR(32); - DECLARE v_formUuid CHAR(32); - DECLARE v_data MEDIUMTEXT; - - DECLARE startNum INT DEFAULT (currentPage - 1) * pageSize; - DECLARE cur CURSOR FOR SELECT a.`processtask_id`, a.`type`, a.`attribute_label`, a.`attribute_uuid`, a.`data`, b.`form_uuid` - FROM `processtask_formattribute_data` a - JOIN `processtask_form` b ON b.`processtask_id` = a.`processtask_id` - ORDER BY a.`processtask_id`, a.`sort` - LIMIT startNum, pageSize; - - DECLARE CONTINUE HANDLER FOR NOT FOUND SET done = TRUE; - OPEN cur; - read_loop: LOOP - FETCH cur INTO v_processTaskId, v_type, v_attributeLabel, v_attributeUuid, v_data, v_formUuid; - IF done THEN - LEAVE read_loop; - END IF; - IF v_attributeLabel IS NULL THEN - SET v_attributeLabel = ''; - END IF; - SET v_id = generateSnowflakeId(); - INSERT INTO `form_attribute_data` (`id`, `form_uuid`, `handler`, `attribute_label`, `attribute_uuid`, `data`) - VALUES (v_id, v_formUuid, v_type, v_attributeLabel, v_attributeUuid, v_data); - INSERT INTO `processtask_formattribute` (`processtask_id`, `form_attribute_data_id`) - VALUES (v_processTaskId, v_id); - END LOOP; - CLOSE cur; - END; - SET currentPage = currentPage + 1; - END WHILE; - END IF; -END $$ -DELIMITER ; +DROP FUNCTION `generateSnowflakeId`; -- Gitee From 8aae7435dc613ee4adde21ae7a321528ab580ae6 Mon Sep 17 00:00:00 2001 From: linbangquan <1437892690@qq.com> Date: Sat, 24 Feb 2024 17:44:29 +0800 Subject: [PATCH 8/9] =?UTF-8?q?[=E5=8A=9F=E8=83=BD]=20=E8=A1=A8=E5=8D=95?= =?UTF-8?q?=E5=AE=9E=E4=BE=8B=E6=95=B0=E6=8D=AE=E6=8A=BD=E7=A6=BB?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit 关联 #[1096897488453632]表单实例数据抽离 http://192.168.0.96:8090/demo/rdm.html#/story-detail/939050947543040/939050947543042/1096897488453632 --- .../changelog/2024-02-23/neatlogic_tenant.sql | 41 ++++++++++++++++--- .../changelog/2024-02-24/neatlogic_tenant.sql | 5 --- .../changelog/2024-02-24/version.json | 10 ----- 3 files changed, 36 insertions(+), 20 deletions(-) delete mode 100644 src/main/resources/neatlogic/resources/framework/changelog/2024-02-24/neatlogic_tenant.sql delete mode 100644 src/main/resources/neatlogic/resources/framework/changelog/2024-02-24/version.json diff --git a/src/main/resources/neatlogic/resources/framework/changelog/2024-02-23/neatlogic_tenant.sql b/src/main/resources/neatlogic/resources/framework/changelog/2024-02-23/neatlogic_tenant.sql index 1cffc84c4..6bef9a353 100644 --- a/src/main/resources/neatlogic/resources/framework/changelog/2024-02-23/neatlogic_tenant.sql +++ b/src/main/resources/neatlogic/resources/framework/changelog/2024-02-23/neatlogic_tenant.sql @@ -62,7 +62,7 @@ CREATE PROCEDURE handleProcessTaskFormAttributeData() BEGIN DECLARE rowNum LONG; DECLARE currentPage INT DEFAULT 1; - DECLARE pageSize INT DEFAULT 1000; + DECLARE pageSize INT DEFAULT 100; DECLARE pageCount INT DEFAULT 0; DECLARE yu INT DEFAULT 0; @@ -92,22 +92,48 @@ BEGIN LIMIT startNum, pageSize; DECLARE CONTINUE HANDLER FOR NOT FOUND SET done = TRUE; + + SET @batchInsertSql_form_attribute_data = NULL; + SET @batchInsertSql_processtask_formattribute = NULL; + OPEN cur; read_loop: LOOP FETCH cur INTO v_processTaskId, v_type, v_attributeLabel, v_attributeUuid, v_data, v_formUuid; IF done THEN LEAVE read_loop; END IF; + IF v_type IS NULL THEN + SET v_type = ''; + END IF; IF v_attributeLabel IS NULL THEN SET v_attributeLabel = ''; END IF; + IF v_data IS NULL THEN + SET v_data = ''; + END IF; SET v_id = generateSnowflakeId(); - INSERT INTO `form_attribute_data` (`id`, `form_uuid`, `handler`, `attribute_label`, `attribute_uuid`, `data`) - VALUES (v_id, v_formUuid, v_type, v_attributeLabel, v_attributeUuid, v_data); - INSERT INTO `processtask_formattribute` (`processtask_id`, `form_attribute_data_id`) - VALUES (v_processTaskId, v_id); + IF @batchInsertSql_form_attribute_data IS NULL THEN + SET @batchInsertSql_form_attribute_data = CONCAT('INSERT INTO `form_attribute_data` (`id`, `form_uuid`, `handler`, `attribute_label`, `attribute_uuid`, `data`) VALUES', ' (', v_id, ', \'', v_formUuid, '\', \'', v_type, '\', \'', v_attributeLabel, '\', \'', v_attributeUuid, '\', \'', v_data, '\')'); + ELSE + SET @batchInsertSql_form_attribute_data = CONCAT(@batchInsertSql_form_attribute_data, ', (', v_id, ', \'', v_formUuid, '\', \'', v_type, '\', \'', v_attributeLabel, '\', \'', v_attributeUuid, '\', \'', v_data, '\')'); + END IF; + IF @batchInsertSql_processtask_formattribute IS NULL THEN + SET @batchInsertSql_processtask_formattribute = CONCAT('INSERT INTO `processtask_formattribute` (`processtask_id`, `form_attribute_data_id`) VALUES', ' (', v_processTaskId, ',', v_id, ')'); + ELSE + SET @batchInsertSql_processtask_formattribute = CONCAT(@batchInsertSql_processtask_formattribute, ', (', v_processTaskId, ',', v_id, ')'); + END IF; END LOOP; CLOSE cur; + + PREPARE stmt_1 FROM @batchInsertSql_form_attribute_data; + EXECUTE stmt_1; + DEALLOCATE PREPARE stmt_1; + PREPARE stmt_2 FROM @batchInsertSql_processtask_formattribute; + EXECUTE stmt_2; + DEALLOCATE PREPARE stmt_2; + + SET @batchInsertSql_form_attribute_data = NULL; + SET @batchInsertSql_processtask_formattribute = NULL; END; SET currentPage = currentPage + 1; END WHILE; @@ -115,3 +141,8 @@ BEGIN END $$ DELIMITER ; +CALL handleProcessTaskFormAttributeData(); + +DROP PROCEDURE `handleProcessTaskFormAttributeData`; + +DROP FUNCTION `generateSnowflakeId`; diff --git a/src/main/resources/neatlogic/resources/framework/changelog/2024-02-24/neatlogic_tenant.sql b/src/main/resources/neatlogic/resources/framework/changelog/2024-02-24/neatlogic_tenant.sql deleted file mode 100644 index 087009826..000000000 --- a/src/main/resources/neatlogic/resources/framework/changelog/2024-02-24/neatlogic_tenant.sql +++ /dev/null @@ -1,5 +0,0 @@ -CALL handleProcessTaskFormAttributeData(); - -DROP PROCEDURE `handleProcessTaskFormAttributeData`; - -DROP FUNCTION `generateSnowflakeId`; diff --git a/src/main/resources/neatlogic/resources/framework/changelog/2024-02-24/version.json b/src/main/resources/neatlogic/resources/framework/changelog/2024-02-24/version.json deleted file mode 100644 index a55eba295..000000000 --- a/src/main/resources/neatlogic/resources/framework/changelog/2024-02-24/version.json +++ /dev/null @@ -1,10 +0,0 @@ -{ - "content":[ - { - "type":"新增功能", - "detail":[ - {"msg":"1.表单实例数据抽离2"} - ] - } - ] -} -- Gitee From 60a02e8a7cbbe358341fa09f76d06f1f82523cb8 Mon Sep 17 00:00:00 2001 From: linbangquan <1437892690@qq.com> Date: Sat, 24 Feb 2024 18:02:41 +0800 Subject: [PATCH 9/9] =?UTF-8?q?[=E5=8A=9F=E8=83=BD]=20=E8=A1=A8=E5=8D=95?= =?UTF-8?q?=E5=AE=9E=E4=BE=8B=E6=95=B0=E6=8D=AE=E6=8A=BD=E7=A6=BB?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit 关联 #[1096897488453632]表单实例数据抽离 http://192.168.0.96:8090/demo/rdm.html#/story-detail/939050947543040/939050947543042/1096897488453632 --- .../framework/changelog/2024-02-23/neatlogic_tenant.sql | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/src/main/resources/neatlogic/resources/framework/changelog/2024-02-23/neatlogic_tenant.sql b/src/main/resources/neatlogic/resources/framework/changelog/2024-02-23/neatlogic_tenant.sql index 6bef9a353..a2220bb41 100644 --- a/src/main/resources/neatlogic/resources/framework/changelog/2024-02-23/neatlogic_tenant.sql +++ b/src/main/resources/neatlogic/resources/framework/changelog/2024-02-23/neatlogic_tenant.sql @@ -60,11 +60,10 @@ DROP PROCEDURE IF EXISTS `handleProcessTaskFormAttributeData`; DELIMITER $$ CREATE PROCEDURE handleProcessTaskFormAttributeData() BEGIN - DECLARE rowNum LONG; + DECLARE rowNum BIGINT DEFAULT 0; DECLARE currentPage INT DEFAULT 1; DECLARE pageSize INT DEFAULT 100; DECLARE pageCount INT DEFAULT 0; - DECLARE yu INT DEFAULT 0; SELECT COUNT(1) INTO rowNum FROM `processtask_formattribute_data`; IF rowNum > 0 THEN @@ -85,6 +84,7 @@ BEGIN DECLARE v_data MEDIUMTEXT; DECLARE startNum INT DEFAULT (currentPage - 1) * pageSize; + DECLARE cur CURSOR FOR SELECT a.`processtask_id`, a.`type`, a.`attribute_label`, a.`attribute_uuid`, a.`data`, b.`form_uuid` FROM `processtask_formattribute_data` a JOIN `processtask_form` b ON b.`processtask_id` = a.`processtask_id` -- Gitee