diff --git a/backend/src/main/java/io/dataease/base/domain/PanelGroupExtend.java b/backend/src/main/java/io/dataease/base/domain/PanelGroupExtend.java new file mode 100644 index 0000000000..f11ea78bdd --- /dev/null +++ b/backend/src/main/java/io/dataease/base/domain/PanelGroupExtend.java @@ -0,0 +1,19 @@ +package io.dataease.base.domain; + +import java.io.Serializable; +import lombok.Data; + +@Data +public class PanelGroupExtend implements Serializable { + private String id; + + private String panelId; + + private String templateId; + + private String templateVersion; + + private String templateDynamicData; + + private static final long serialVersionUID = 1L; +} \ No newline at end of file diff --git a/backend/src/main/java/io/dataease/base/domain/PanelGroupExtendData.java b/backend/src/main/java/io/dataease/base/domain/PanelGroupExtendData.java new file mode 100644 index 0000000000..87fbf2a01e --- /dev/null +++ b/backend/src/main/java/io/dataease/base/domain/PanelGroupExtendData.java @@ -0,0 +1,17 @@ +package io.dataease.base.domain; + +import java.io.Serializable; +import lombok.Data; + +@Data +public class PanelGroupExtendData implements Serializable { + private String id; + + private String panelId; + + private String viewId; + + private String viewDetails; + + private static final long serialVersionUID = 1L; +} \ No newline at end of file diff --git a/backend/src/main/java/io/dataease/base/domain/PanelGroupExtendDataExample.java b/backend/src/main/java/io/dataease/base/domain/PanelGroupExtendDataExample.java new file mode 100644 index 0000000000..863e28c56e --- /dev/null +++ b/backend/src/main/java/io/dataease/base/domain/PanelGroupExtendDataExample.java @@ -0,0 +1,410 @@ +package io.dataease.base.domain; + +import java.util.ArrayList; +import java.util.List; + +public class PanelGroupExtendDataExample { + protected String orderByClause; + + protected boolean distinct; + + protected List oredCriteria; + + public PanelGroupExtendDataExample() { + oredCriteria = new ArrayList(); + } + + public void setOrderByClause(String orderByClause) { + this.orderByClause = orderByClause; + } + + public String getOrderByClause() { + return orderByClause; + } + + public void setDistinct(boolean distinct) { + this.distinct = distinct; + } + + public boolean isDistinct() { + return distinct; + } + + public List getOredCriteria() { + return oredCriteria; + } + + public void or(Criteria criteria) { + oredCriteria.add(criteria); + } + + public Criteria or() { + Criteria criteria = createCriteriaInternal(); + oredCriteria.add(criteria); + return criteria; + } + + public Criteria createCriteria() { + Criteria criteria = createCriteriaInternal(); + if (oredCriteria.size() == 0) { + oredCriteria.add(criteria); + } + return criteria; + } + + protected Criteria createCriteriaInternal() { + Criteria criteria = new Criteria(); + return criteria; + } + + public void clear() { + oredCriteria.clear(); + orderByClause = null; + distinct = false; + } + + protected abstract static class GeneratedCriteria { + protected List criteria; + + protected GeneratedCriteria() { + super(); + criteria = new ArrayList(); + } + + public boolean isValid() { + return criteria.size() > 0; + } + + public List getAllCriteria() { + return criteria; + } + + public List getCriteria() { + return criteria; + } + + protected void addCriterion(String condition) { + if (condition == null) { + throw new RuntimeException("Value for condition cannot be null"); + } + criteria.add(new Criterion(condition)); + } + + protected void addCriterion(String condition, Object value, String property) { + if (value == null) { + throw new RuntimeException("Value for " + property + " cannot be null"); + } + criteria.add(new Criterion(condition, value)); + } + + protected void addCriterion(String condition, Object value1, Object value2, String property) { + if (value1 == null || value2 == null) { + throw new RuntimeException("Between values for " + property + " cannot be null"); + } + criteria.add(new Criterion(condition, value1, value2)); + } + + public Criteria andIdIsNull() { + addCriterion("id is null"); + return (Criteria) this; + } + + public Criteria andIdIsNotNull() { + addCriterion("id is not null"); + return (Criteria) this; + } + + public Criteria andIdEqualTo(String value) { + addCriterion("id =", value, "id"); + return (Criteria) this; + } + + public Criteria andIdNotEqualTo(String value) { + addCriterion("id <>", value, "id"); + return (Criteria) this; + } + + public Criteria andIdGreaterThan(String value) { + addCriterion("id >", value, "id"); + return (Criteria) this; + } + + public Criteria andIdGreaterThanOrEqualTo(String value) { + addCriterion("id >=", value, "id"); + return (Criteria) this; + } + + public Criteria andIdLessThan(String value) { + addCriterion("id <", value, "id"); + return (Criteria) this; + } + + public Criteria andIdLessThanOrEqualTo(String value) { + addCriterion("id <=", value, "id"); + return (Criteria) this; + } + + public Criteria andIdLike(String value) { + addCriterion("id like", value, "id"); + return (Criteria) this; + } + + public Criteria andIdNotLike(String value) { + addCriterion("id not like", value, "id"); + return (Criteria) this; + } + + public Criteria andIdIn(List values) { + addCriterion("id in", values, "id"); + return (Criteria) this; + } + + public Criteria andIdNotIn(List values) { + addCriterion("id not in", values, "id"); + return (Criteria) this; + } + + public Criteria andIdBetween(String value1, String value2) { + addCriterion("id between", value1, value2, "id"); + return (Criteria) this; + } + + public Criteria andIdNotBetween(String value1, String value2) { + addCriterion("id not between", value1, value2, "id"); + return (Criteria) this; + } + + public Criteria andPanelIdIsNull() { + addCriterion("panel_id is null"); + return (Criteria) this; + } + + public Criteria andPanelIdIsNotNull() { + addCriterion("panel_id is not null"); + return (Criteria) this; + } + + public Criteria andPanelIdEqualTo(String value) { + addCriterion("panel_id =", value, "panelId"); + return (Criteria) this; + } + + public Criteria andPanelIdNotEqualTo(String value) { + addCriterion("panel_id <>", value, "panelId"); + return (Criteria) this; + } + + public Criteria andPanelIdGreaterThan(String value) { + addCriterion("panel_id >", value, "panelId"); + return (Criteria) this; + } + + public Criteria andPanelIdGreaterThanOrEqualTo(String value) { + addCriterion("panel_id >=", value, "panelId"); + return (Criteria) this; + } + + public Criteria andPanelIdLessThan(String value) { + addCriterion("panel_id <", value, "panelId"); + return (Criteria) this; + } + + public Criteria andPanelIdLessThanOrEqualTo(String value) { + addCriterion("panel_id <=", value, "panelId"); + return (Criteria) this; + } + + public Criteria andPanelIdLike(String value) { + addCriterion("panel_id like", value, "panelId"); + return (Criteria) this; + } + + public Criteria andPanelIdNotLike(String value) { + addCriterion("panel_id not like", value, "panelId"); + return (Criteria) this; + } + + public Criteria andPanelIdIn(List values) { + addCriterion("panel_id in", values, "panelId"); + return (Criteria) this; + } + + public Criteria andPanelIdNotIn(List values) { + addCriterion("panel_id not in", values, "panelId"); + return (Criteria) this; + } + + public Criteria andPanelIdBetween(String value1, String value2) { + addCriterion("panel_id between", value1, value2, "panelId"); + return (Criteria) this; + } + + public Criteria andPanelIdNotBetween(String value1, String value2) { + addCriterion("panel_id not between", value1, value2, "panelId"); + return (Criteria) this; + } + + public Criteria andViewIdIsNull() { + addCriterion("view_id is null"); + return (Criteria) this; + } + + public Criteria andViewIdIsNotNull() { + addCriterion("view_id is not null"); + return (Criteria) this; + } + + public Criteria andViewIdEqualTo(String value) { + addCriterion("view_id =", value, "viewId"); + return (Criteria) this; + } + + public Criteria andViewIdNotEqualTo(String value) { + addCriterion("view_id <>", value, "viewId"); + return (Criteria) this; + } + + public Criteria andViewIdGreaterThan(String value) { + addCriterion("view_id >", value, "viewId"); + return (Criteria) this; + } + + public Criteria andViewIdGreaterThanOrEqualTo(String value) { + addCriterion("view_id >=", value, "viewId"); + return (Criteria) this; + } + + public Criteria andViewIdLessThan(String value) { + addCriterion("view_id <", value, "viewId"); + return (Criteria) this; + } + + public Criteria andViewIdLessThanOrEqualTo(String value) { + addCriterion("view_id <=", value, "viewId"); + return (Criteria) this; + } + + public Criteria andViewIdLike(String value) { + addCriterion("view_id like", value, "viewId"); + return (Criteria) this; + } + + public Criteria andViewIdNotLike(String value) { + addCriterion("view_id not like", value, "viewId"); + return (Criteria) this; + } + + public Criteria andViewIdIn(List values) { + addCriterion("view_id in", values, "viewId"); + return (Criteria) this; + } + + public Criteria andViewIdNotIn(List values) { + addCriterion("view_id not in", values, "viewId"); + return (Criteria) this; + } + + public Criteria andViewIdBetween(String value1, String value2) { + addCriterion("view_id between", value1, value2, "viewId"); + return (Criteria) this; + } + + public Criteria andViewIdNotBetween(String value1, String value2) { + addCriterion("view_id not between", value1, value2, "viewId"); + return (Criteria) this; + } + } + + public static class Criteria extends GeneratedCriteria { + + protected Criteria() { + super(); + } + } + + public static class Criterion { + private String condition; + + private Object value; + + private Object secondValue; + + private boolean noValue; + + private boolean singleValue; + + private boolean betweenValue; + + private boolean listValue; + + private String typeHandler; + + public String getCondition() { + return condition; + } + + public Object getValue() { + return value; + } + + public Object getSecondValue() { + return secondValue; + } + + public boolean isNoValue() { + return noValue; + } + + public boolean isSingleValue() { + return singleValue; + } + + public boolean isBetweenValue() { + return betweenValue; + } + + public boolean isListValue() { + return listValue; + } + + public String getTypeHandler() { + return typeHandler; + } + + protected Criterion(String condition) { + super(); + this.condition = condition; + this.typeHandler = null; + this.noValue = true; + } + + protected Criterion(String condition, Object value, String typeHandler) { + super(); + this.condition = condition; + this.value = value; + this.typeHandler = typeHandler; + if (value instanceof List) { + this.listValue = true; + } else { + this.singleValue = true; + } + } + + protected Criterion(String condition, Object value) { + this(condition, value, null); + } + + protected Criterion(String condition, Object value, Object secondValue, String typeHandler) { + super(); + this.condition = condition; + this.value = value; + this.secondValue = secondValue; + this.typeHandler = typeHandler; + this.betweenValue = true; + } + + protected Criterion(String condition, Object value, Object secondValue) { + this(condition, value, secondValue, null); + } + } +} \ No newline at end of file diff --git a/backend/src/main/java/io/dataease/base/domain/PanelGroupExtendExample.java b/backend/src/main/java/io/dataease/base/domain/PanelGroupExtendExample.java new file mode 100644 index 0000000000..48eaf33980 --- /dev/null +++ b/backend/src/main/java/io/dataease/base/domain/PanelGroupExtendExample.java @@ -0,0 +1,480 @@ +package io.dataease.base.domain; + +import java.util.ArrayList; +import java.util.List; + +public class PanelGroupExtendExample { + protected String orderByClause; + + protected boolean distinct; + + protected List oredCriteria; + + public PanelGroupExtendExample() { + oredCriteria = new ArrayList(); + } + + public void setOrderByClause(String orderByClause) { + this.orderByClause = orderByClause; + } + + public String getOrderByClause() { + return orderByClause; + } + + public void setDistinct(boolean distinct) { + this.distinct = distinct; + } + + public boolean isDistinct() { + return distinct; + } + + public List getOredCriteria() { + return oredCriteria; + } + + public void or(Criteria criteria) { + oredCriteria.add(criteria); + } + + public Criteria or() { + Criteria criteria = createCriteriaInternal(); + oredCriteria.add(criteria); + return criteria; + } + + public Criteria createCriteria() { + Criteria criteria = createCriteriaInternal(); + if (oredCriteria.size() == 0) { + oredCriteria.add(criteria); + } + return criteria; + } + + protected Criteria createCriteriaInternal() { + Criteria criteria = new Criteria(); + return criteria; + } + + public void clear() { + oredCriteria.clear(); + orderByClause = null; + distinct = false; + } + + protected abstract static class GeneratedCriteria { + protected List criteria; + + protected GeneratedCriteria() { + super(); + criteria = new ArrayList(); + } + + public boolean isValid() { + return criteria.size() > 0; + } + + public List getAllCriteria() { + return criteria; + } + + public List getCriteria() { + return criteria; + } + + protected void addCriterion(String condition) { + if (condition == null) { + throw new RuntimeException("Value for condition cannot be null"); + } + criteria.add(new Criterion(condition)); + } + + protected void addCriterion(String condition, Object value, String property) { + if (value == null) { + throw new RuntimeException("Value for " + property + " cannot be null"); + } + criteria.add(new Criterion(condition, value)); + } + + protected void addCriterion(String condition, Object value1, Object value2, String property) { + if (value1 == null || value2 == null) { + throw new RuntimeException("Between values for " + property + " cannot be null"); + } + criteria.add(new Criterion(condition, value1, value2)); + } + + public Criteria andIdIsNull() { + addCriterion("id is null"); + return (Criteria) this; + } + + public Criteria andIdIsNotNull() { + addCriterion("id is not null"); + return (Criteria) this; + } + + public Criteria andIdEqualTo(String value) { + addCriterion("id =", value, "id"); + return (Criteria) this; + } + + public Criteria andIdNotEqualTo(String value) { + addCriterion("id <>", value, "id"); + return (Criteria) this; + } + + public Criteria andIdGreaterThan(String value) { + addCriterion("id >", value, "id"); + return (Criteria) this; + } + + public Criteria andIdGreaterThanOrEqualTo(String value) { + addCriterion("id >=", value, "id"); + return (Criteria) this; + } + + public Criteria andIdLessThan(String value) { + addCriterion("id <", value, "id"); + return (Criteria) this; + } + + public Criteria andIdLessThanOrEqualTo(String value) { + addCriterion("id <=", value, "id"); + return (Criteria) this; + } + + public Criteria andIdLike(String value) { + addCriterion("id like", value, "id"); + return (Criteria) this; + } + + public Criteria andIdNotLike(String value) { + addCriterion("id not like", value, "id"); + return (Criteria) this; + } + + public Criteria andIdIn(List values) { + addCriterion("id in", values, "id"); + return (Criteria) this; + } + + public Criteria andIdNotIn(List values) { + addCriterion("id not in", values, "id"); + return (Criteria) this; + } + + public Criteria andIdBetween(String value1, String value2) { + addCriterion("id between", value1, value2, "id"); + return (Criteria) this; + } + + public Criteria andIdNotBetween(String value1, String value2) { + addCriterion("id not between", value1, value2, "id"); + return (Criteria) this; + } + + public Criteria andPanelIdIsNull() { + addCriterion("panel_id is null"); + return (Criteria) this; + } + + public Criteria andPanelIdIsNotNull() { + addCriterion("panel_id is not null"); + return (Criteria) this; + } + + public Criteria andPanelIdEqualTo(String value) { + addCriterion("panel_id =", value, "panelId"); + return (Criteria) this; + } + + public Criteria andPanelIdNotEqualTo(String value) { + addCriterion("panel_id <>", value, "panelId"); + return (Criteria) this; + } + + public Criteria andPanelIdGreaterThan(String value) { + addCriterion("panel_id >", value, "panelId"); + return (Criteria) this; + } + + public Criteria andPanelIdGreaterThanOrEqualTo(String value) { + addCriterion("panel_id >=", value, "panelId"); + return (Criteria) this; + } + + public Criteria andPanelIdLessThan(String value) { + addCriterion("panel_id <", value, "panelId"); + return (Criteria) this; + } + + public Criteria andPanelIdLessThanOrEqualTo(String value) { + addCriterion("panel_id <=", value, "panelId"); + return (Criteria) this; + } + + public Criteria andPanelIdLike(String value) { + addCriterion("panel_id like", value, "panelId"); + return (Criteria) this; + } + + public Criteria andPanelIdNotLike(String value) { + addCriterion("panel_id not like", value, "panelId"); + return (Criteria) this; + } + + public Criteria andPanelIdIn(List values) { + addCriterion("panel_id in", values, "panelId"); + return (Criteria) this; + } + + public Criteria andPanelIdNotIn(List values) { + addCriterion("panel_id not in", values, "panelId"); + return (Criteria) this; + } + + public Criteria andPanelIdBetween(String value1, String value2) { + addCriterion("panel_id between", value1, value2, "panelId"); + return (Criteria) this; + } + + public Criteria andPanelIdNotBetween(String value1, String value2) { + addCriterion("panel_id not between", value1, value2, "panelId"); + return (Criteria) this; + } + + public Criteria andTemplateIdIsNull() { + addCriterion("template_id is null"); + return (Criteria) this; + } + + public Criteria andTemplateIdIsNotNull() { + addCriterion("template_id is not null"); + return (Criteria) this; + } + + public Criteria andTemplateIdEqualTo(String value) { + addCriterion("template_id =", value, "templateId"); + return (Criteria) this; + } + + public Criteria andTemplateIdNotEqualTo(String value) { + addCriterion("template_id <>", value, "templateId"); + return (Criteria) this; + } + + public Criteria andTemplateIdGreaterThan(String value) { + addCriterion("template_id >", value, "templateId"); + return (Criteria) this; + } + + public Criteria andTemplateIdGreaterThanOrEqualTo(String value) { + addCriterion("template_id >=", value, "templateId"); + return (Criteria) this; + } + + public Criteria andTemplateIdLessThan(String value) { + addCriterion("template_id <", value, "templateId"); + return (Criteria) this; + } + + public Criteria andTemplateIdLessThanOrEqualTo(String value) { + addCriterion("template_id <=", value, "templateId"); + return (Criteria) this; + } + + public Criteria andTemplateIdLike(String value) { + addCriterion("template_id like", value, "templateId"); + return (Criteria) this; + } + + public Criteria andTemplateIdNotLike(String value) { + addCriterion("template_id not like", value, "templateId"); + return (Criteria) this; + } + + public Criteria andTemplateIdIn(List values) { + addCriterion("template_id in", values, "templateId"); + return (Criteria) this; + } + + public Criteria andTemplateIdNotIn(List values) { + addCriterion("template_id not in", values, "templateId"); + return (Criteria) this; + } + + public Criteria andTemplateIdBetween(String value1, String value2) { + addCriterion("template_id between", value1, value2, "templateId"); + return (Criteria) this; + } + + public Criteria andTemplateIdNotBetween(String value1, String value2) { + addCriterion("template_id not between", value1, value2, "templateId"); + return (Criteria) this; + } + + public Criteria andTemplateVersionIsNull() { + addCriterion("template_version is null"); + return (Criteria) this; + } + + public Criteria andTemplateVersionIsNotNull() { + addCriterion("template_version is not null"); + return (Criteria) this; + } + + public Criteria andTemplateVersionEqualTo(String value) { + addCriterion("template_version =", value, "templateVersion"); + return (Criteria) this; + } + + public Criteria andTemplateVersionNotEqualTo(String value) { + addCriterion("template_version <>", value, "templateVersion"); + return (Criteria) this; + } + + public Criteria andTemplateVersionGreaterThan(String value) { + addCriterion("template_version >", value, "templateVersion"); + return (Criteria) this; + } + + public Criteria andTemplateVersionGreaterThanOrEqualTo(String value) { + addCriterion("template_version >=", value, "templateVersion"); + return (Criteria) this; + } + + public Criteria andTemplateVersionLessThan(String value) { + addCriterion("template_version <", value, "templateVersion"); + return (Criteria) this; + } + + public Criteria andTemplateVersionLessThanOrEqualTo(String value) { + addCriterion("template_version <=", value, "templateVersion"); + return (Criteria) this; + } + + public Criteria andTemplateVersionLike(String value) { + addCriterion("template_version like", value, "templateVersion"); + return (Criteria) this; + } + + public Criteria andTemplateVersionNotLike(String value) { + addCriterion("template_version not like", value, "templateVersion"); + return (Criteria) this; + } + + public Criteria andTemplateVersionIn(List values) { + addCriterion("template_version in", values, "templateVersion"); + return (Criteria) this; + } + + public Criteria andTemplateVersionNotIn(List values) { + addCriterion("template_version not in", values, "templateVersion"); + return (Criteria) this; + } + + public Criteria andTemplateVersionBetween(String value1, String value2) { + addCriterion("template_version between", value1, value2, "templateVersion"); + return (Criteria) this; + } + + public Criteria andTemplateVersionNotBetween(String value1, String value2) { + addCriterion("template_version not between", value1, value2, "templateVersion"); + return (Criteria) this; + } + } + + public static class Criteria extends GeneratedCriteria { + + protected Criteria() { + super(); + } + } + + public static class Criterion { + private String condition; + + private Object value; + + private Object secondValue; + + private boolean noValue; + + private boolean singleValue; + + private boolean betweenValue; + + private boolean listValue; + + private String typeHandler; + + public String getCondition() { + return condition; + } + + public Object getValue() { + return value; + } + + public Object getSecondValue() { + return secondValue; + } + + public boolean isNoValue() { + return noValue; + } + + public boolean isSingleValue() { + return singleValue; + } + + public boolean isBetweenValue() { + return betweenValue; + } + + public boolean isListValue() { + return listValue; + } + + public String getTypeHandler() { + return typeHandler; + } + + protected Criterion(String condition) { + super(); + this.condition = condition; + this.typeHandler = null; + this.noValue = true; + } + + protected Criterion(String condition, Object value, String typeHandler) { + super(); + this.condition = condition; + this.value = value; + this.typeHandler = typeHandler; + if (value instanceof List) { + this.listValue = true; + } else { + this.singleValue = true; + } + } + + protected Criterion(String condition, Object value) { + this(condition, value, null); + } + + protected Criterion(String condition, Object value, Object secondValue, String typeHandler) { + super(); + this.condition = condition; + this.value = value; + this.secondValue = secondValue; + this.typeHandler = typeHandler; + this.betweenValue = true; + } + + protected Criterion(String condition, Object value, Object secondValue) { + this(condition, value, secondValue, null); + } + } +} \ No newline at end of file diff --git a/backend/src/main/java/io/dataease/base/domain/PanelView.java b/backend/src/main/java/io/dataease/base/domain/PanelView.java index b04880b4d3..d9c240f3d8 100644 --- a/backend/src/main/java/io/dataease/base/domain/PanelView.java +++ b/backend/src/main/java/io/dataease/base/domain/PanelView.java @@ -29,6 +29,8 @@ public class PanelView implements Serializable { private String copyId; + private String dataFrom; + private byte[] content; private static final long serialVersionUID = 1L; diff --git a/backend/src/main/java/io/dataease/base/domain/PanelViewExample.java b/backend/src/main/java/io/dataease/base/domain/PanelViewExample.java index dbaaff8cec..66109efa0a 100644 --- a/backend/src/main/java/io/dataease/base/domain/PanelViewExample.java +++ b/backend/src/main/java/io/dataease/base/domain/PanelViewExample.java @@ -923,6 +923,76 @@ public class PanelViewExample { addCriterion("copy_id not between", value1, value2, "copyId"); return (Criteria) this; } + + public Criteria andDataFromIsNull() { + addCriterion("data_from is null"); + return (Criteria) this; + } + + public Criteria andDataFromIsNotNull() { + addCriterion("data_from is not null"); + return (Criteria) this; + } + + public Criteria andDataFromEqualTo(String value) { + addCriterion("data_from =", value, "dataFrom"); + return (Criteria) this; + } + + public Criteria andDataFromNotEqualTo(String value) { + addCriterion("data_from <>", value, "dataFrom"); + return (Criteria) this; + } + + public Criteria andDataFromGreaterThan(String value) { + addCriterion("data_from >", value, "dataFrom"); + return (Criteria) this; + } + + public Criteria andDataFromGreaterThanOrEqualTo(String value) { + addCriterion("data_from >=", value, "dataFrom"); + return (Criteria) this; + } + + public Criteria andDataFromLessThan(String value) { + addCriterion("data_from <", value, "dataFrom"); + return (Criteria) this; + } + + public Criteria andDataFromLessThanOrEqualTo(String value) { + addCriterion("data_from <=", value, "dataFrom"); + return (Criteria) this; + } + + public Criteria andDataFromLike(String value) { + addCriterion("data_from like", value, "dataFrom"); + return (Criteria) this; + } + + public Criteria andDataFromNotLike(String value) { + addCriterion("data_from not like", value, "dataFrom"); + return (Criteria) this; + } + + public Criteria andDataFromIn(List values) { + addCriterion("data_from in", values, "dataFrom"); + return (Criteria) this; + } + + public Criteria andDataFromNotIn(List values) { + addCriterion("data_from not in", values, "dataFrom"); + return (Criteria) this; + } + + public Criteria andDataFromBetween(String value1, String value2) { + addCriterion("data_from between", value1, value2, "dataFrom"); + return (Criteria) this; + } + + public Criteria andDataFromNotBetween(String value1, String value2) { + addCriterion("data_from not between", value1, value2, "dataFrom"); + return (Criteria) this; + } } public static class Criteria extends GeneratedCriteria { diff --git a/backend/src/main/java/io/dataease/base/mapper/PanelGroupExtendDataMapper.java b/backend/src/main/java/io/dataease/base/mapper/PanelGroupExtendDataMapper.java new file mode 100644 index 0000000000..c9ae44a992 --- /dev/null +++ b/backend/src/main/java/io/dataease/base/mapper/PanelGroupExtendDataMapper.java @@ -0,0 +1,36 @@ +package io.dataease.base.mapper; + +import io.dataease.base.domain.PanelGroupExtendData; +import io.dataease.base.domain.PanelGroupExtendDataExample; +import java.util.List; +import org.apache.ibatis.annotations.Param; + +public interface PanelGroupExtendDataMapper { + long countByExample(PanelGroupExtendDataExample example); + + int deleteByExample(PanelGroupExtendDataExample example); + + int deleteByPrimaryKey(String id); + + int insert(PanelGroupExtendData record); + + int insertSelective(PanelGroupExtendData record); + + List selectByExampleWithBLOBs(PanelGroupExtendDataExample example); + + List selectByExample(PanelGroupExtendDataExample example); + + PanelGroupExtendData selectByPrimaryKey(String id); + + int updateByExampleSelective(@Param("record") PanelGroupExtendData record, @Param("example") PanelGroupExtendDataExample example); + + int updateByExampleWithBLOBs(@Param("record") PanelGroupExtendData record, @Param("example") PanelGroupExtendDataExample example); + + int updateByExample(@Param("record") PanelGroupExtendData record, @Param("example") PanelGroupExtendDataExample example); + + int updateByPrimaryKeySelective(PanelGroupExtendData record); + + int updateByPrimaryKeyWithBLOBs(PanelGroupExtendData record); + + int updateByPrimaryKey(PanelGroupExtendData record); +} \ No newline at end of file diff --git a/backend/src/main/java/io/dataease/base/mapper/PanelGroupExtendDataMapper.xml b/backend/src/main/java/io/dataease/base/mapper/PanelGroupExtendDataMapper.xml new file mode 100644 index 0000000000..ed34994be1 --- /dev/null +++ b/backend/src/main/java/io/dataease/base/mapper/PanelGroupExtendDataMapper.xml @@ -0,0 +1,234 @@ + + + + + + + + + + + + + + + + + + + + and ${criterion.condition} + + + and ${criterion.condition} #{criterion.value} + + + and ${criterion.condition} #{criterion.value} and #{criterion.secondValue} + + + and ${criterion.condition} + + #{listItem} + + + + + + + + + + + + + + + + + + and ${criterion.condition} + + + and ${criterion.condition} #{criterion.value} + + + and ${criterion.condition} #{criterion.value} and #{criterion.secondValue} + + + and ${criterion.condition} + + #{listItem} + + + + + + + + + + + id, panel_id, view_id + + + view_details + + + + + + delete from panel_group_extend_data + where id = #{id,jdbcType=VARCHAR} + + + delete from panel_group_extend_data + + + + + + insert into panel_group_extend_data (id, panel_id, view_id, + view_details) + values (#{id,jdbcType=VARCHAR}, #{panelId,jdbcType=VARCHAR}, #{viewId,jdbcType=VARCHAR}, + #{viewDetails,jdbcType=LONGVARCHAR}) + + + insert into panel_group_extend_data + + + id, + + + panel_id, + + + view_id, + + + view_details, + + + + + #{id,jdbcType=VARCHAR}, + + + #{panelId,jdbcType=VARCHAR}, + + + #{viewId,jdbcType=VARCHAR}, + + + #{viewDetails,jdbcType=LONGVARCHAR}, + + + + + + update panel_group_extend_data + + + id = #{record.id,jdbcType=VARCHAR}, + + + panel_id = #{record.panelId,jdbcType=VARCHAR}, + + + view_id = #{record.viewId,jdbcType=VARCHAR}, + + + view_details = #{record.viewDetails,jdbcType=LONGVARCHAR}, + + + + + + + + update panel_group_extend_data + set id = #{record.id,jdbcType=VARCHAR}, + panel_id = #{record.panelId,jdbcType=VARCHAR}, + view_id = #{record.viewId,jdbcType=VARCHAR}, + view_details = #{record.viewDetails,jdbcType=LONGVARCHAR} + + + + + + update panel_group_extend_data + set id = #{record.id,jdbcType=VARCHAR}, + panel_id = #{record.panelId,jdbcType=VARCHAR}, + view_id = #{record.viewId,jdbcType=VARCHAR} + + + + + + update panel_group_extend_data + + + panel_id = #{panelId,jdbcType=VARCHAR}, + + + view_id = #{viewId,jdbcType=VARCHAR}, + + + view_details = #{viewDetails,jdbcType=LONGVARCHAR}, + + + where id = #{id,jdbcType=VARCHAR} + + + update panel_group_extend_data + set panel_id = #{panelId,jdbcType=VARCHAR}, + view_id = #{viewId,jdbcType=VARCHAR}, + view_details = #{viewDetails,jdbcType=LONGVARCHAR} + where id = #{id,jdbcType=VARCHAR} + + + update panel_group_extend_data + set panel_id = #{panelId,jdbcType=VARCHAR}, + view_id = #{viewId,jdbcType=VARCHAR} + where id = #{id,jdbcType=VARCHAR} + + \ No newline at end of file diff --git a/backend/src/main/java/io/dataease/base/mapper/PanelGroupExtendMapper.java b/backend/src/main/java/io/dataease/base/mapper/PanelGroupExtendMapper.java new file mode 100644 index 0000000000..8eadc6b1ff --- /dev/null +++ b/backend/src/main/java/io/dataease/base/mapper/PanelGroupExtendMapper.java @@ -0,0 +1,36 @@ +package io.dataease.base.mapper; + +import io.dataease.base.domain.PanelGroupExtend; +import io.dataease.base.domain.PanelGroupExtendExample; +import java.util.List; +import org.apache.ibatis.annotations.Param; + +public interface PanelGroupExtendMapper { + long countByExample(PanelGroupExtendExample example); + + int deleteByExample(PanelGroupExtendExample example); + + int deleteByPrimaryKey(String id); + + int insert(PanelGroupExtend record); + + int insertSelective(PanelGroupExtend record); + + List selectByExampleWithBLOBs(PanelGroupExtendExample example); + + List selectByExample(PanelGroupExtendExample example); + + PanelGroupExtend selectByPrimaryKey(String id); + + int updateByExampleSelective(@Param("record") PanelGroupExtend record, @Param("example") PanelGroupExtendExample example); + + int updateByExampleWithBLOBs(@Param("record") PanelGroupExtend record, @Param("example") PanelGroupExtendExample example); + + int updateByExample(@Param("record") PanelGroupExtend record, @Param("example") PanelGroupExtendExample example); + + int updateByPrimaryKeySelective(PanelGroupExtend record); + + int updateByPrimaryKeyWithBLOBs(PanelGroupExtend record); + + int updateByPrimaryKey(PanelGroupExtend record); +} \ No newline at end of file diff --git a/backend/src/main/java/io/dataease/base/mapper/PanelGroupExtendMapper.xml b/backend/src/main/java/io/dataease/base/mapper/PanelGroupExtendMapper.xml new file mode 100644 index 0000000000..d000043b4f --- /dev/null +++ b/backend/src/main/java/io/dataease/base/mapper/PanelGroupExtendMapper.xml @@ -0,0 +1,253 @@ + + + + + + + + + + + + + + + + + + + + + and ${criterion.condition} + + + and ${criterion.condition} #{criterion.value} + + + and ${criterion.condition} #{criterion.value} and #{criterion.secondValue} + + + and ${criterion.condition} + + #{listItem} + + + + + + + + + + + + + + + + + + and ${criterion.condition} + + + and ${criterion.condition} #{criterion.value} + + + and ${criterion.condition} #{criterion.value} and #{criterion.secondValue} + + + and ${criterion.condition} + + #{listItem} + + + + + + + + + + + id, panel_id, template_id, template_version + + + template_dynamic_data + + + + + + delete from panel_group_extend + where id = #{id,jdbcType=VARCHAR} + + + delete from panel_group_extend + + + + + + insert into panel_group_extend (id, panel_id, template_id, + template_version, template_dynamic_data + ) + values (#{id,jdbcType=VARCHAR}, #{panelId,jdbcType=VARCHAR}, #{templateId,jdbcType=VARCHAR}, + #{templateVersion,jdbcType=VARCHAR}, #{templateDynamicData,jdbcType=LONGVARCHAR} + ) + + + insert into panel_group_extend + + + id, + + + panel_id, + + + template_id, + + + template_version, + + + template_dynamic_data, + + + + + #{id,jdbcType=VARCHAR}, + + + #{panelId,jdbcType=VARCHAR}, + + + #{templateId,jdbcType=VARCHAR}, + + + #{templateVersion,jdbcType=VARCHAR}, + + + #{templateDynamicData,jdbcType=LONGVARCHAR}, + + + + + + update panel_group_extend + + + id = #{record.id,jdbcType=VARCHAR}, + + + panel_id = #{record.panelId,jdbcType=VARCHAR}, + + + template_id = #{record.templateId,jdbcType=VARCHAR}, + + + template_version = #{record.templateVersion,jdbcType=VARCHAR}, + + + template_dynamic_data = #{record.templateDynamicData,jdbcType=LONGVARCHAR}, + + + + + + + + update panel_group_extend + set id = #{record.id,jdbcType=VARCHAR}, + panel_id = #{record.panelId,jdbcType=VARCHAR}, + template_id = #{record.templateId,jdbcType=VARCHAR}, + template_version = #{record.templateVersion,jdbcType=VARCHAR}, + template_dynamic_data = #{record.templateDynamicData,jdbcType=LONGVARCHAR} + + + + + + update panel_group_extend + set id = #{record.id,jdbcType=VARCHAR}, + panel_id = #{record.panelId,jdbcType=VARCHAR}, + template_id = #{record.templateId,jdbcType=VARCHAR}, + template_version = #{record.templateVersion,jdbcType=VARCHAR} + + + + + + update panel_group_extend + + + panel_id = #{panelId,jdbcType=VARCHAR}, + + + template_id = #{templateId,jdbcType=VARCHAR}, + + + template_version = #{templateVersion,jdbcType=VARCHAR}, + + + template_dynamic_data = #{templateDynamicData,jdbcType=LONGVARCHAR}, + + + where id = #{id,jdbcType=VARCHAR} + + + update panel_group_extend + set panel_id = #{panelId,jdbcType=VARCHAR}, + template_id = #{templateId,jdbcType=VARCHAR}, + template_version = #{templateVersion,jdbcType=VARCHAR}, + template_dynamic_data = #{templateDynamicData,jdbcType=LONGVARCHAR} + where id = #{id,jdbcType=VARCHAR} + + + update panel_group_extend + set panel_id = #{panelId,jdbcType=VARCHAR}, + template_id = #{templateId,jdbcType=VARCHAR}, + template_version = #{templateVersion,jdbcType=VARCHAR} + where id = #{id,jdbcType=VARCHAR} + + \ No newline at end of file diff --git a/backend/src/main/java/io/dataease/base/mapper/PanelViewMapper.xml b/backend/src/main/java/io/dataease/base/mapper/PanelViewMapper.xml index fa2ef55907..8319e7f4ee 100644 --- a/backend/src/main/java/io/dataease/base/mapper/PanelViewMapper.xml +++ b/backend/src/main/java/io/dataease/base/mapper/PanelViewMapper.xml @@ -14,6 +14,7 @@ + @@ -78,7 +79,7 @@ id, panel_id, chart_view_id, create_by, create_time, update_by, update_time, `position`, - copy_from_panel, copy_from_view, copy_from, copy_id + copy_from_panel, copy_from_view, copy_from, copy_id, data_from content @@ -136,12 +137,12 @@ create_by, create_time, update_by, update_time, `position`, copy_from_panel, copy_from_view, copy_from, copy_id, - content) + data_from, content) values (#{id,jdbcType=VARCHAR}, #{panelId,jdbcType=VARCHAR}, #{chartViewId,jdbcType=VARCHAR}, #{createBy,jdbcType=VARCHAR}, #{createTime,jdbcType=BIGINT}, #{updateBy,jdbcType=VARCHAR}, #{updateTime,jdbcType=BIGINT}, #{position,jdbcType=VARCHAR}, #{copyFromPanel,jdbcType=VARCHAR}, #{copyFromView,jdbcType=VARCHAR}, #{copyFrom,jdbcType=VARCHAR}, #{copyId,jdbcType=VARCHAR}, - #{content,jdbcType=LONGVARBINARY}) + #{dataFrom,jdbcType=VARCHAR}, #{content,jdbcType=LONGVARBINARY}) insert into panel_view @@ -182,6 +183,9 @@ copy_id, + + data_from, + content, @@ -223,6 +227,9 @@ #{copyId,jdbcType=VARCHAR}, + + #{dataFrom,jdbcType=VARCHAR}, + #{content,jdbcType=LONGVARBINARY}, @@ -273,6 +280,9 @@ copy_id = #{record.copyId,jdbcType=VARCHAR}, + + data_from = #{record.dataFrom,jdbcType=VARCHAR}, + content = #{record.content,jdbcType=LONGVARBINARY}, @@ -295,6 +305,7 @@ copy_from_view = #{record.copyFromView,jdbcType=VARCHAR}, copy_from = #{record.copyFrom,jdbcType=VARCHAR}, copy_id = #{record.copyId,jdbcType=VARCHAR}, + data_from = #{record.dataFrom,jdbcType=VARCHAR}, content = #{record.content,jdbcType=LONGVARBINARY} @@ -313,7 +324,8 @@ copy_from_panel = #{record.copyFromPanel,jdbcType=VARCHAR}, copy_from_view = #{record.copyFromView,jdbcType=VARCHAR}, copy_from = #{record.copyFrom,jdbcType=VARCHAR}, - copy_id = #{record.copyId,jdbcType=VARCHAR} + copy_id = #{record.copyId,jdbcType=VARCHAR}, + data_from = #{record.dataFrom,jdbcType=VARCHAR} @@ -354,6 +366,9 @@ copy_id = #{copyId,jdbcType=VARCHAR}, + + data_from = #{dataFrom,jdbcType=VARCHAR}, + content = #{content,jdbcType=LONGVARBINARY}, @@ -373,6 +388,7 @@ copy_from_view = #{copyFromView,jdbcType=VARCHAR}, copy_from = #{copyFrom,jdbcType=VARCHAR}, copy_id = #{copyId,jdbcType=VARCHAR}, + data_from = #{dataFrom,jdbcType=VARCHAR}, content = #{content,jdbcType=LONGVARBINARY} where id = #{id,jdbcType=VARCHAR} @@ -388,7 +404,8 @@ copy_from_panel = #{copyFromPanel,jdbcType=VARCHAR}, copy_from_view = #{copyFromView,jdbcType=VARCHAR}, copy_from = #{copyFrom,jdbcType=VARCHAR}, - copy_id = #{copyId,jdbcType=VARCHAR} + copy_id = #{copyId,jdbcType=VARCHAR}, + data_from = #{dataFrom,jdbcType=VARCHAR} where id = #{id,jdbcType=VARCHAR} \ No newline at end of file diff --git a/backend/src/main/java/io/dataease/base/mapper/ext/ExtPanelGroupExtendDataMapper.java b/backend/src/main/java/io/dataease/base/mapper/ext/ExtPanelGroupExtendDataMapper.java new file mode 100644 index 0000000000..1de1596074 --- /dev/null +++ b/backend/src/main/java/io/dataease/base/mapper/ext/ExtPanelGroupExtendDataMapper.java @@ -0,0 +1,10 @@ +package io.dataease.base.mapper.ext; + +import io.dataease.dto.PanelGroupExtendDataDTO; +import org.apache.ibatis.annotations.Param; + +import java.util.List; + +public interface ExtPanelGroupExtendDataMapper { + void savePanelExtendData(@Param("records") List records); +} diff --git a/backend/src/main/java/io/dataease/base/mapper/ext/ExtPanelGroupExtendDataMapper.xml b/backend/src/main/java/io/dataease/base/mapper/ext/ExtPanelGroupExtendDataMapper.xml new file mode 100644 index 0000000000..e6380c910e --- /dev/null +++ b/backend/src/main/java/io/dataease/base/mapper/ext/ExtPanelGroupExtendDataMapper.xml @@ -0,0 +1,12 @@ + + + + + + INSERT INTO `panel_group_extend_data` (id, panel_id,view_id,view_details) VALUES + + (uuid(),#{item.panelId},#{item.viewId},#{item.viewDetails}) + + + + diff --git a/backend/src/main/java/io/dataease/commons/constants/PanelConstants.java b/backend/src/main/java/io/dataease/commons/constants/PanelConstants.java index 0f952ea6cb..9e099c67db 100644 --- a/backend/src/main/java/io/dataease/commons/constants/PanelConstants.java +++ b/backend/src/main/java/io/dataease/commons/constants/PanelConstants.java @@ -33,5 +33,18 @@ public class PanelConstants { public final static String PANEL_GATHER_PANEL_LIST = "panel_list"; + //新建仪表板来源 + public static final class NEW_PANEL_FROM { + + // 直接新建 + public static final String NEW = "new"; + + // 内部模板新建 + public static final String NEW_INNER_TEMPLATE = "new_inner_template"; + + // 外部模板新建 + public static final String NEW_OUTER_TEMPLATE = "new_outer_template"; + + } } diff --git a/backend/src/main/java/io/dataease/controller/request/panel/PanelGroupRequest.java b/backend/src/main/java/io/dataease/controller/request/panel/PanelGroupRequest.java index 1115d8a233..aa5dbf9003 100644 --- a/backend/src/main/java/io/dataease/controller/request/panel/PanelGroupRequest.java +++ b/backend/src/main/java/io/dataease/controller/request/panel/PanelGroupRequest.java @@ -17,6 +17,13 @@ public class PanelGroupRequest extends PanelGroupDTO { private String userId; @ApiModelProperty("操作类型") private String optType; + @ApiModelProperty("新建来源") + private String newFrom; + @ApiModelProperty("模板动态数据") + private String dynamicData; + @ApiModelProperty("内部模板ID") + private String templateId; + public PanelGroupRequest() { } diff --git a/backend/src/main/java/io/dataease/dto/PanelGroupExtendDataDTO.java b/backend/src/main/java/io/dataease/dto/PanelGroupExtendDataDTO.java new file mode 100644 index 0000000000..ef12f527ed --- /dev/null +++ b/backend/src/main/java/io/dataease/dto/PanelGroupExtendDataDTO.java @@ -0,0 +1,25 @@ +package io.dataease.dto; + +import io.dataease.base.domain.PanelGroupExtendData; +import lombok.Data; +import org.pentaho.di.core.util.UUIDUtil; + +/** + * Author: wangjiahao + * Date: 2022/3/14 + * Description: + */ +@Data +public class PanelGroupExtendDataDTO extends PanelGroupExtendData { + public PanelGroupExtendDataDTO(String panelId,String viewId,String viewDetails) { + super(); + super.setId(UUIDUtil.getUUIDAsString()); + super.setPanelId(panelId); + super.setViewId(viewId); + super.setViewDetails(viewDetails); + } + + public PanelGroupExtendDataDTO() { + super(); + } +} diff --git a/backend/src/main/java/io/dataease/dto/panel/po/PanelViewInsertDTO.java b/backend/src/main/java/io/dataease/dto/panel/po/PanelViewInsertDTO.java index bb1b8b9636..367b7763c9 100644 --- a/backend/src/main/java/io/dataease/dto/panel/po/PanelViewInsertDTO.java +++ b/backend/src/main/java/io/dataease/dto/panel/po/PanelViewInsertDTO.java @@ -24,5 +24,12 @@ public class PanelViewInsertDTO extends PanelView { super.setPanelId(panelGroupId); super.setPosition(position); } + public PanelViewInsertDTO(String chartViewId,String panelGroupId,String position,String dataFrom) { + super(); + super.setChartViewId(chartViewId); + super.setPanelId(panelGroupId); + super.setPosition(position); + super.setDataFrom(dataFrom); + } } diff --git a/backend/src/main/java/io/dataease/service/panel/PanelGroupService.java b/backend/src/main/java/io/dataease/service/panel/PanelGroupService.java index a53d283dd6..633747ee1e 100644 --- a/backend/src/main/java/io/dataease/service/panel/PanelGroupService.java +++ b/backend/src/main/java/io/dataease/service/panel/PanelGroupService.java @@ -3,10 +3,7 @@ package io.dataease.service.panel; import com.alibaba.fastjson.JSON; import io.dataease.auth.annotation.DeCleaner; import io.dataease.base.domain.*; -import io.dataease.base.mapper.ChartViewMapper; -import io.dataease.base.mapper.PanelGroupMapper; -import io.dataease.base.mapper.PanelViewMapper; -import io.dataease.base.mapper.VAuthModelMapper; +import io.dataease.base.mapper.*; import io.dataease.base.mapper.ext.*; import io.dataease.commons.constants.DePermissionType; import io.dataease.commons.constants.PanelConstants; @@ -16,16 +13,19 @@ import io.dataease.commons.utils.TreeUtils; import io.dataease.controller.request.authModel.VAuthModelRequest; import io.dataease.controller.request.dataset.DataSetTableRequest; import io.dataease.controller.request.panel.PanelGroupRequest; +import io.dataease.dto.PanelGroupExtendDataDTO; import io.dataease.dto.authModel.VAuthModelDTO; import io.dataease.dto.chart.ChartViewDTO; import io.dataease.dto.dataset.DataSetTableDTO; import io.dataease.dto.panel.PanelGroupDTO; import io.dataease.dto.panel.linkJump.PanelLinkJumpBaseRequest; +import io.dataease.dto.panel.po.PanelViewInsertDTO; import io.dataease.exception.DataEaseException; import io.dataease.i18n.Translator; import io.dataease.service.chart.ChartViewService; import io.dataease.service.dataset.DataSetTableService; import io.dataease.service.sys.SysAuthService; +import io.swagger.annotations.ApiModelProperty; import org.apache.commons.collections4.CollectionUtils; import org.apache.commons.lang3.StringUtils; import org.pentaho.di.core.util.UUIDUtil; @@ -85,6 +85,10 @@ public class PanelGroupService { private ExtDataSetTableMapper extDataSetTableMapper; @Resource private DataSetTableService dataSetTableService; + @Resource + private PanelTemplateMapper templateMapper; + @Resource + private ExtPanelGroupExtendDataMapper extPanelGroupExtendDataMapper; public List tree(PanelGroupRequest panelGroupRequest) { @@ -105,17 +109,13 @@ public class PanelGroupService { // @Transactional public PanelGroup saveOrUpdate(PanelGroupRequest request) { String panelId = request.getId(); - List viewIds = null; if(StringUtils.isNotEmpty(panelId)){ - viewIds = panelViewService.syncPanelViews(request); + panelViewService.syncPanelViews(request); } if (StringUtils.isEmpty(panelId)) { // 新建 checkPanelName(request.getName(), request.getPid(), PanelConstants.OPT_TYPE_INSERT, null, request.getNodeType()); - panelId = UUID.randomUUID().toString(); - request.setId(panelId); - request.setCreateTime(System.currentTimeMillis()); - request.setCreateBy(AuthUtils.getUser().getUsername()); + panelId = newPanel(request); panelGroupMapper.insert(request); } else if ("toDefaultPanel".equals(request.getOptType())) { panelId = UUID.randomUUID().toString(); @@ -164,9 +164,6 @@ public class PanelGroupService { if (!CollectionUtils.isNotEmpty(panelGroupDTOList)) { DataEaseException.throwException("未查询到用户对应的资源权限,请尝试刷新重新保存"); } - - //移除没有用到的仪表板私有视图 - extPanelGroupMapper.removeUselessViews(panelId,viewIds); return panelGroupDTOList.get(0); } @@ -303,6 +300,53 @@ public class PanelGroupService { return newPanelId; } + public String newPanel(PanelGroupRequest request){ + String newPanelId = UUIDUtil.getUUIDAsString(); + String newFrom = request.getNewFrom(); + String templateStyle = null; + String templateData = null; + String dynamicData = null; + if(PanelConstants.NEW_PANEL_FROM.NEW.equals(newFrom)){ + + }else{ + //内部模板新建 + if(PanelConstants.NEW_PANEL_FROM.NEW_INNER_TEMPLATE.equals(newFrom)){ + PanelTemplateWithBLOBs panelTemplate = templateMapper.selectByPrimaryKey(request.getTemplateId()); + templateStyle = panelTemplate.getTemplateStyle(); + templateData = panelTemplate.getTemplateData(); + dynamicData = panelTemplate.getDynamicData(); + }else if(PanelConstants.NEW_PANEL_FROM.NEW_OUTER_TEMPLATE.equals(newFrom)){ + templateStyle = request.getPanelStyle(); + templateData = request.getPanelData(); + dynamicData = request.getDynamicData(); + } + Map dynamicDataMap = JSON.parseObject(dynamicData,Map.class); + List panelViews = new ArrayList<>(); + List viewsData = new ArrayList<>(); + for(Map.Entry entry : dynamicDataMap.entrySet()){ + String originViewId = entry.getKey(); + String originViewData = entry.getValue(); + String position = JSON.parseObject(originViewData).getString("position"); + String newViewId = UUIDUtil.getUUIDAsString(); + //TODO 数据处理 1.替换viewId 2.加入panelView 数据(数据来源为template) 3.加入模板view data数据 + templateData = templateData.replaceAll(originViewId,newViewId); + panelViews.add(new PanelViewInsertDTO(newViewId,newPanelId,position,"template")); + viewsData.add(new PanelGroupExtendDataDTO(newPanelId,newViewId,originViewData)); + } + if(CollectionUtils.isNotEmpty(panelViews)){ + extPanelViewMapper.savePanelView(panelViews); + } + if(CollectionUtils.isNotEmpty(viewsData)){ + extPanelGroupExtendDataMapper.savePanelExtendData(viewsData); + } + request.setPanelData(templateData); + request.setPanelStyle(templateStyle); + } + request.setId(newPanelId); + request.setCreateTime(System.currentTimeMillis()); + request.setCreateBy(AuthUtils.getUser().getUsername()); + return newPanelId; + } public void sysInit1HistoryPanel() { LogUtil.info("=====v1.8版本 仪表板私有化【开始】====="); diff --git a/backend/src/main/java/io/dataease/service/panel/PanelViewService.java b/backend/src/main/java/io/dataease/service/panel/PanelViewService.java index ed54cc93c9..e18bc677af 100644 --- a/backend/src/main/java/io/dataease/service/panel/PanelViewService.java +++ b/backend/src/main/java/io/dataease/service/panel/PanelViewService.java @@ -8,6 +8,7 @@ import io.dataease.base.domain.PanelView; import io.dataease.base.domain.PanelViewExample; import io.dataease.base.mapper.PanelViewMapper; import io.dataease.base.mapper.ext.ExtChartViewMapper; +import io.dataease.base.mapper.ext.ExtPanelGroupMapper; import io.dataease.base.mapper.ext.ExtPanelViewMapper; import io.dataease.commons.utils.AuthUtils; import io.dataease.commons.utils.BeanUtils; @@ -43,6 +44,8 @@ public class PanelViewService { @Resource private ExtChartViewMapper extChartViewMapper; + private ExtPanelGroupMapper extPanelGroupMapper; + private final static String SCENE_TYPE = "scene"; public List groups() { @@ -127,6 +130,8 @@ public class PanelViewService { } } panelGroup.setMobileLayout(mobileLayout); + //移除没有用到的仪表板私有视图 + extPanelGroupMapper.removeUselessViews(panelId,viewIds); return viewIds; } diff --git a/backend/src/main/resources/db/migration/V33__1.9.sql b/backend/src/main/resources/db/migration/V33__1.9.sql index 7694874363..f08e9d9d1a 100644 --- a/backend/src/main/resources/db/migration/V33__1.9.sql +++ b/backend/src/main/resources/db/migration/V33__1.9.sql @@ -33,3 +33,38 @@ CREATE TABLE `chart_view_cache` ( ) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4; SET FOREIGN_KEY_CHECKS = 1; + +ALTER TABLE `panel_view` +ADD COLUMN `data_from` varchar(255) NULL DEFAULT 'chart' COMMENT '当前数据来源 chart 视图 template 模板' AFTER `copy_id`; + + +SET NAMES utf8mb4; +SET FOREIGN_KEY_CHECKS = 0; + +-- ---------------------------- +-- Table structure for panel_group_extend +-- ---------------------------- +DROP TABLE IF EXISTS `panel_group_extend`; +CREATE TABLE `panel_group_extend` ( + `id` varchar(50) NOT NULL, + `panel_id` varchar(50) DEFAULT NULL, + `template_id` varchar(50) DEFAULT NULL COMMENT '模板来源id', + `template_dynamic_data` longtext COMMENT '模板动态数据', + `template_version` varchar(255) DEFAULT NULL COMMENT '模板版本号(预留)', + PRIMARY KEY (`id`) +) ENGINE=InnoDB DEFAULT CHARSET=utf8; + +-- ---------------------------- +-- Table structure for panel_group_extend_data +-- ---------------------------- +DROP TABLE IF EXISTS `panel_group_extend_data`; +CREATE TABLE `panel_group_extend_data` ( + `id` varchar(50) NOT NULL, + `panel_id` varchar(50) DEFAULT NULL, + `view_id` varchar(50) DEFAULT NULL, + `view_details` longtext, + PRIMARY KEY (`id`) +) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4; + +SET FOREIGN_KEY_CHECKS = 1; + diff --git a/backend/src/main/resources/generatorConfig.xml b/backend/src/main/resources/generatorConfig.xml index 0c9e0bc55b..f0ffa9f387 100644 --- a/backend/src/main/resources/generatorConfig.xml +++ b/backend/src/main/resources/generatorConfig.xml @@ -60,11 +60,13 @@ + +
-
+ - +
diff --git a/frontend/src/components/canvas/custom-component/UserView.vue b/frontend/src/components/canvas/custom-component/UserView.vue index e383170521..b066fc279e 100644 --- a/frontend/src/components/canvas/custom-component/UserView.vue +++ b/frontend/src/components/canvas/custom-component/UserView.vue @@ -269,7 +269,8 @@ export default { 'publicLinkStatus', 'previewCanvasScale', 'mobileLayoutStatus', - 'componentData' + 'componentData', + 'panelViewDetailsInfo' ]) }, @@ -450,6 +451,9 @@ export default { // 将视图传入echart组件 if (response.success) { this.chart = response.data + this.chart['position'] = this.inTab ? 'tab' : 'panel' + // 记录当前数据 + this.panelViewDetailsInfo[id] = JSON.stringify(this.chart) this.sourceCustomAttrStr = this.chart.customAttr this.sourceCustomStyleStr = this.chart.customStyle this.chart.drillFields = this.chart.drillFields ? JSON.parse(this.chart.drillFields) : [] diff --git a/frontend/src/store/index.js b/frontend/src/store/index.js index 1e416ae701..e893100ee2 100644 --- a/frontend/src/store/index.js +++ b/frontend/src/store/index.js @@ -101,7 +101,9 @@ const data = { }, scrollAutoMove: 0, // 视图是否编辑记录 - panelViewEditInfo: {} + panelViewEditInfo: {}, + // 仪表板视图明细 + panelViewDetailsInfo: {} }, mutations: { ...animation.mutations, diff --git a/frontend/src/views/panel/list/EditPanel/index.vue b/frontend/src/views/panel/list/EditPanel/index.vue index 368b7c2e3c..1b1f46374f 100644 --- a/frontend/src/views/panel/list/EditPanel/index.vue +++ b/frontend/src/views/panel/list/EditPanel/index.vue @@ -2,13 +2,13 @@ - {{ $t('panel.custom') }} - - {{ $t('panel.copy_template') }} + {{ $t('panel.custom') }} + + {{ $t('panel.copy_template') }} - + {{ $t('panel.upload_template') }} - + @@ -17,7 +17,7 @@ - + @@ -48,7 +48,7 @@ export default { data() { return { loading: false, - inputType: 'self', + inputType: 'new', fieldName: 'name', tableRadio: null, keyWordSearch: '', @@ -73,13 +73,14 @@ export default { }, watch: { inputType(newVal) { - if (newVal === 'self') { + if (newVal === 'new') { this.editPanel = deepCopy(this.editPanelOut) } else { this.editPanel.panelInfo.name = null this.editPanel.panelInfo.panelStyle = null this.editPanel.panelInfo.panelData = null this.importTemplateInfo.snapshot = null + this.editPanel.panelInfo.templateId = null } } }, @@ -107,9 +108,10 @@ export default { document.removeEventListener('keypress', this.entryKey) }, showCurrentTemplateInfo(data) { + this.editPanel.panelInfo.templateId = data.id this.editPanel.panelInfo.name = data.name - this.editPanel.panelInfo.panelStyle = data.templateStyle - this.editPanel.panelInfo.panelData = data.templateData + // this.editPanel.panelInfo.panelStyle = data.templateStyle + // this.editPanel.panelInfo.panelData = data.templateData this.importTemplateInfo.snapshot = data.snapshot }, getTree() { @@ -139,10 +141,11 @@ export default { return false } - if (!this.editPanel.panelInfo.panelData && this.editPanel.optType === 'new' && this.inputType === 'copy') { + if (!this.editPanel.panelInfo.templateId && this.editPanel.optType === 'new' && this.inputType === 'new_inner_template') { this.$warning(this.$t('chart.template_can_not_empty')) return false } + this.editPanel.panelInfo['newFrom'] = this.inputType panelSave(this.editPanel.panelInfo).then(response => { this.$message({ message: this.$t('commons.save_success'), diff --git a/frontend/src/views/panel/list/PanelViewShow.vue b/frontend/src/views/panel/list/PanelViewShow.vue index 9e5fe6c2ae..06537cb697 100644 --- a/frontend/src/views/panel/list/PanelViewShow.vue +++ b/frontend/src/views/panel/list/PanelViewShow.vue @@ -187,7 +187,8 @@ export default { }, ...mapState([ 'componentData', - 'canvasStyleData' + 'canvasStyleData', + 'panelViewDetailsInfo' ]) }, watch: { @@ -246,7 +247,7 @@ export default { nodeType: 'template', level: 1, pid: null, - dynamicData: '' + dynamicData: JSON.stringify(this.panelViewDetailsInfo) } } }) @@ -265,10 +266,10 @@ export default { snapshot: snapshot, panelStyle: JSON.stringify(this.canvasStyleData), panelData: JSON.stringify(this.componentData), - dynamicData: '' + dynamicData: JSON.stringify(this.panelViewDetailsInfo) } const blob = new Blob([JSON.stringify(this.templateInfo)], { type: '' }) - FileSaver.saveAs(blob, this.$store.state.panel.panelInfo.name + '-TEMPLATE.DE') + FileSaver.saveAs(blob, this.$store.state.panel.panelInfo.name + '-TEMPLATE.DET') } }) }, 50) diff --git a/frontend/src/views/panel/template/component/TemplateImport.vue b/frontend/src/views/panel/template/component/TemplateImport.vue index 7538a3f00c..45bc215f66 100644 --- a/frontend/src/views/panel/template/component/TemplateImport.vue +++ b/frontend/src/views/panel/template/component/TemplateImport.vue @@ -7,7 +7,7 @@ {{ $t('panel.upload_template') }} - +