diff --git a/.gitignore b/.gitignore index 7647865be8..2373a66776 100644 --- a/.gitignore +++ b/.gitignore @@ -51,6 +51,7 @@ pnpm-debug.log* *.classpath *.project .settings/ +.lh package-lock.json diff --git a/backend/src/main/java/io/dataease/base/domain/PanelPdfTemplate.java b/backend/src/main/java/io/dataease/base/domain/PanelPdfTemplate.java new file mode 100644 index 0000000000..4df504b8fc --- /dev/null +++ b/backend/src/main/java/io/dataease/base/domain/PanelPdfTemplate.java @@ -0,0 +1,21 @@ +package io.dataease.base.domain; + +import java.io.Serializable; +import lombok.Data; + +@Data +public class PanelPdfTemplate implements Serializable { + private String id; + + private String name; + + private Long createTime; + + private String createUser; + + private Integer sort; + + private String templateContent; + + private static final long serialVersionUID = 1L; +} \ No newline at end of file diff --git a/backend/src/main/java/io/dataease/base/domain/PanelPdfTemplateExample.java b/backend/src/main/java/io/dataease/base/domain/PanelPdfTemplateExample.java new file mode 100644 index 0000000000..3f3b9d343a --- /dev/null +++ b/backend/src/main/java/io/dataease/base/domain/PanelPdfTemplateExample.java @@ -0,0 +1,530 @@ +package io.dataease.base.domain; + +import java.util.ArrayList; +import java.util.List; + +public class PanelPdfTemplateExample { + protected String orderByClause; + + protected boolean distinct; + + protected List oredCriteria; + + public PanelPdfTemplateExample() { + 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 andNameIsNull() { + addCriterion("`name` is null"); + return (Criteria) this; + } + + public Criteria andNameIsNotNull() { + addCriterion("`name` is not null"); + return (Criteria) this; + } + + public Criteria andNameEqualTo(String value) { + addCriterion("`name` =", value, "name"); + return (Criteria) this; + } + + public Criteria andNameNotEqualTo(String value) { + addCriterion("`name` <>", value, "name"); + return (Criteria) this; + } + + public Criteria andNameGreaterThan(String value) { + addCriterion("`name` >", value, "name"); + return (Criteria) this; + } + + public Criteria andNameGreaterThanOrEqualTo(String value) { + addCriterion("`name` >=", value, "name"); + return (Criteria) this; + } + + public Criteria andNameLessThan(String value) { + addCriterion("`name` <", value, "name"); + return (Criteria) this; + } + + public Criteria andNameLessThanOrEqualTo(String value) { + addCriterion("`name` <=", value, "name"); + return (Criteria) this; + } + + public Criteria andNameLike(String value) { + addCriterion("`name` like", value, "name"); + return (Criteria) this; + } + + public Criteria andNameNotLike(String value) { + addCriterion("`name` not like", value, "name"); + return (Criteria) this; + } + + public Criteria andNameIn(List values) { + addCriterion("`name` in", values, "name"); + return (Criteria) this; + } + + public Criteria andNameNotIn(List values) { + addCriterion("`name` not in", values, "name"); + return (Criteria) this; + } + + public Criteria andNameBetween(String value1, String value2) { + addCriterion("`name` between", value1, value2, "name"); + return (Criteria) this; + } + + public Criteria andNameNotBetween(String value1, String value2) { + addCriterion("`name` not between", value1, value2, "name"); + return (Criteria) this; + } + + public Criteria andCreateTimeIsNull() { + addCriterion("create_time is null"); + return (Criteria) this; + } + + public Criteria andCreateTimeIsNotNull() { + addCriterion("create_time is not null"); + return (Criteria) this; + } + + public Criteria andCreateTimeEqualTo(Long value) { + addCriterion("create_time =", value, "createTime"); + return (Criteria) this; + } + + public Criteria andCreateTimeNotEqualTo(Long value) { + addCriterion("create_time <>", value, "createTime"); + return (Criteria) this; + } + + public Criteria andCreateTimeGreaterThan(Long value) { + addCriterion("create_time >", value, "createTime"); + return (Criteria) this; + } + + public Criteria andCreateTimeGreaterThanOrEqualTo(Long value) { + addCriterion("create_time >=", value, "createTime"); + return (Criteria) this; + } + + public Criteria andCreateTimeLessThan(Long value) { + addCriterion("create_time <", value, "createTime"); + return (Criteria) this; + } + + public Criteria andCreateTimeLessThanOrEqualTo(Long value) { + addCriterion("create_time <=", value, "createTime"); + return (Criteria) this; + } + + public Criteria andCreateTimeIn(List values) { + addCriterion("create_time in", values, "createTime"); + return (Criteria) this; + } + + public Criteria andCreateTimeNotIn(List values) { + addCriterion("create_time not in", values, "createTime"); + return (Criteria) this; + } + + public Criteria andCreateTimeBetween(Long value1, Long value2) { + addCriterion("create_time between", value1, value2, "createTime"); + return (Criteria) this; + } + + public Criteria andCreateTimeNotBetween(Long value1, Long value2) { + addCriterion("create_time not between", value1, value2, "createTime"); + return (Criteria) this; + } + + public Criteria andCreateUserIsNull() { + addCriterion("create_user is null"); + return (Criteria) this; + } + + public Criteria andCreateUserIsNotNull() { + addCriterion("create_user is not null"); + return (Criteria) this; + } + + public Criteria andCreateUserEqualTo(String value) { + addCriterion("create_user =", value, "createUser"); + return (Criteria) this; + } + + public Criteria andCreateUserNotEqualTo(String value) { + addCriterion("create_user <>", value, "createUser"); + return (Criteria) this; + } + + public Criteria andCreateUserGreaterThan(String value) { + addCriterion("create_user >", value, "createUser"); + return (Criteria) this; + } + + public Criteria andCreateUserGreaterThanOrEqualTo(String value) { + addCriterion("create_user >=", value, "createUser"); + return (Criteria) this; + } + + public Criteria andCreateUserLessThan(String value) { + addCriterion("create_user <", value, "createUser"); + return (Criteria) this; + } + + public Criteria andCreateUserLessThanOrEqualTo(String value) { + addCriterion("create_user <=", value, "createUser"); + return (Criteria) this; + } + + public Criteria andCreateUserLike(String value) { + addCriterion("create_user like", value, "createUser"); + return (Criteria) this; + } + + public Criteria andCreateUserNotLike(String value) { + addCriterion("create_user not like", value, "createUser"); + return (Criteria) this; + } + + public Criteria andCreateUserIn(List values) { + addCriterion("create_user in", values, "createUser"); + return (Criteria) this; + } + + public Criteria andCreateUserNotIn(List values) { + addCriterion("create_user not in", values, "createUser"); + return (Criteria) this; + } + + public Criteria andCreateUserBetween(String value1, String value2) { + addCriterion("create_user between", value1, value2, "createUser"); + return (Criteria) this; + } + + public Criteria andCreateUserNotBetween(String value1, String value2) { + addCriterion("create_user not between", value1, value2, "createUser"); + return (Criteria) this; + } + + public Criteria andSortIsNull() { + addCriterion("sort is null"); + return (Criteria) this; + } + + public Criteria andSortIsNotNull() { + addCriterion("sort is not null"); + return (Criteria) this; + } + + public Criteria andSortEqualTo(Integer value) { + addCriterion("sort =", value, "sort"); + return (Criteria) this; + } + + public Criteria andSortNotEqualTo(Integer value) { + addCriterion("sort <>", value, "sort"); + return (Criteria) this; + } + + public Criteria andSortGreaterThan(Integer value) { + addCriterion("sort >", value, "sort"); + return (Criteria) this; + } + + public Criteria andSortGreaterThanOrEqualTo(Integer value) { + addCriterion("sort >=", value, "sort"); + return (Criteria) this; + } + + public Criteria andSortLessThan(Integer value) { + addCriterion("sort <", value, "sort"); + return (Criteria) this; + } + + public Criteria andSortLessThanOrEqualTo(Integer value) { + addCriterion("sort <=", value, "sort"); + return (Criteria) this; + } + + public Criteria andSortIn(List values) { + addCriterion("sort in", values, "sort"); + return (Criteria) this; + } + + public Criteria andSortNotIn(List values) { + addCriterion("sort not in", values, "sort"); + return (Criteria) this; + } + + public Criteria andSortBetween(Integer value1, Integer value2) { + addCriterion("sort between", value1, value2, "sort"); + return (Criteria) this; + } + + public Criteria andSortNotBetween(Integer value1, Integer value2) { + addCriterion("sort not between", value1, value2, "sort"); + 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/mapper/PanelPdfTemplateMapper.java b/backend/src/main/java/io/dataease/base/mapper/PanelPdfTemplateMapper.java new file mode 100644 index 0000000000..1ec197728f --- /dev/null +++ b/backend/src/main/java/io/dataease/base/mapper/PanelPdfTemplateMapper.java @@ -0,0 +1,36 @@ +package io.dataease.base.mapper; + +import io.dataease.base.domain.PanelPdfTemplate; +import io.dataease.base.domain.PanelPdfTemplateExample; +import java.util.List; +import org.apache.ibatis.annotations.Param; + +public interface PanelPdfTemplateMapper { + long countByExample(PanelPdfTemplateExample example); + + int deleteByExample(PanelPdfTemplateExample example); + + int deleteByPrimaryKey(String id); + + int insert(PanelPdfTemplate record); + + int insertSelective(PanelPdfTemplate record); + + List selectByExampleWithBLOBs(PanelPdfTemplateExample example); + + List selectByExample(PanelPdfTemplateExample example); + + PanelPdfTemplate selectByPrimaryKey(String id); + + int updateByExampleSelective(@Param("record") PanelPdfTemplate record, @Param("example") PanelPdfTemplateExample example); + + int updateByExampleWithBLOBs(@Param("record") PanelPdfTemplate record, @Param("example") PanelPdfTemplateExample example); + + int updateByExample(@Param("record") PanelPdfTemplate record, @Param("example") PanelPdfTemplateExample example); + + int updateByPrimaryKeySelective(PanelPdfTemplate record); + + int updateByPrimaryKeyWithBLOBs(PanelPdfTemplate record); + + int updateByPrimaryKey(PanelPdfTemplate record); +} \ No newline at end of file diff --git a/backend/src/main/java/io/dataease/base/mapper/PanelPdfTemplateMapper.xml b/backend/src/main/java/io/dataease/base/mapper/PanelPdfTemplateMapper.xml new file mode 100644 index 0000000000..b2648a1365 --- /dev/null +++ b/backend/src/main/java/io/dataease/base/mapper/PanelPdfTemplateMapper.xml @@ -0,0 +1,270 @@ + + + + + + + + + + + + + + + + + + + + + + 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, `name`, create_time, create_user, sort + + + template_content + + + + + + delete from panel_pdf_template + where id = #{id,jdbcType=VARCHAR} + + + delete from panel_pdf_template + + + + + + insert into panel_pdf_template (id, `name`, create_time, + create_user, sort, template_content + ) + values (#{id,jdbcType=VARCHAR}, #{name,jdbcType=VARCHAR}, #{createTime,jdbcType=BIGINT}, + #{createUser,jdbcType=VARCHAR}, #{sort,jdbcType=INTEGER}, #{templateContent,jdbcType=LONGVARCHAR} + ) + + + insert into panel_pdf_template + + + id, + + + `name`, + + + create_time, + + + create_user, + + + sort, + + + template_content, + + + + + #{id,jdbcType=VARCHAR}, + + + #{name,jdbcType=VARCHAR}, + + + #{createTime,jdbcType=BIGINT}, + + + #{createUser,jdbcType=VARCHAR}, + + + #{sort,jdbcType=INTEGER}, + + + #{templateContent,jdbcType=LONGVARCHAR}, + + + + + + update panel_pdf_template + + + id = #{record.id,jdbcType=VARCHAR}, + + + `name` = #{record.name,jdbcType=VARCHAR}, + + + create_time = #{record.createTime,jdbcType=BIGINT}, + + + create_user = #{record.createUser,jdbcType=VARCHAR}, + + + sort = #{record.sort,jdbcType=INTEGER}, + + + template_content = #{record.templateContent,jdbcType=LONGVARCHAR}, + + + + + + + + update panel_pdf_template + set id = #{record.id,jdbcType=VARCHAR}, + `name` = #{record.name,jdbcType=VARCHAR}, + create_time = #{record.createTime,jdbcType=BIGINT}, + create_user = #{record.createUser,jdbcType=VARCHAR}, + sort = #{record.sort,jdbcType=INTEGER}, + template_content = #{record.templateContent,jdbcType=LONGVARCHAR} + + + + + + update panel_pdf_template + set id = #{record.id,jdbcType=VARCHAR}, + `name` = #{record.name,jdbcType=VARCHAR}, + create_time = #{record.createTime,jdbcType=BIGINT}, + create_user = #{record.createUser,jdbcType=VARCHAR}, + sort = #{record.sort,jdbcType=INTEGER} + + + + + + update panel_pdf_template + + + `name` = #{name,jdbcType=VARCHAR}, + + + create_time = #{createTime,jdbcType=BIGINT}, + + + create_user = #{createUser,jdbcType=VARCHAR}, + + + sort = #{sort,jdbcType=INTEGER}, + + + template_content = #{templateContent,jdbcType=LONGVARCHAR}, + + + where id = #{id,jdbcType=VARCHAR} + + + update panel_pdf_template + set `name` = #{name,jdbcType=VARCHAR}, + create_time = #{createTime,jdbcType=BIGINT}, + create_user = #{createUser,jdbcType=VARCHAR}, + sort = #{sort,jdbcType=INTEGER}, + template_content = #{templateContent,jdbcType=LONGVARCHAR} + where id = #{id,jdbcType=VARCHAR} + + + update panel_pdf_template + set `name` = #{name,jdbcType=VARCHAR}, + create_time = #{createTime,jdbcType=BIGINT}, + create_user = #{createUser,jdbcType=VARCHAR}, + sort = #{sort,jdbcType=INTEGER} + where id = #{id,jdbcType=VARCHAR} + + \ No newline at end of file diff --git a/backend/src/main/java/io/dataease/controller/panel/PanelPdfTemplateController.java b/backend/src/main/java/io/dataease/controller/panel/PanelPdfTemplateController.java new file mode 100644 index 0000000000..9d9bef9d16 --- /dev/null +++ b/backend/src/main/java/io/dataease/controller/panel/PanelPdfTemplateController.java @@ -0,0 +1,33 @@ +package io.dataease.controller.panel; + +import com.github.xiaoymin.knife4j.annotations.ApiSupport; +import io.dataease.base.domain.PanelPdfTemplate; +import io.dataease.service.panel.PanelPdfTemplateService; +import io.swagger.annotations.Api; +import org.springframework.web.bind.annotation.*; + +import javax.annotation.Resource; +import java.util.List; + + +/** + * Author: wangjiahao + * Date: 2021-03-05 + * Description: + */ +@Api(tags = "仪表板:PDF导出模板") +@ApiSupport(order = 170) +@RestController +@RequestMapping("pdf-template") +public class PanelPdfTemplateController { + + @Resource + private PanelPdfTemplateService panelPdfTemplateService; + + @GetMapping("queryAll") + public List queryAll(){ + return panelPdfTemplateService.queryAll(); + } + + +} diff --git a/backend/src/main/java/io/dataease/provider/doris/DorisQueryProvider.java b/backend/src/main/java/io/dataease/provider/doris/DorisQueryProvider.java index c1169c8fb5..05cf2142c3 100644 --- a/backend/src/main/java/io/dataease/provider/doris/DorisQueryProvider.java +++ b/backend/src/main/java/io/dataease/provider/doris/DorisQueryProvider.java @@ -690,7 +690,7 @@ public class DorisQueryProvider extends QueryProvider { if (field.getDeExtractType() == 0 || field.getDeExtractType() == 5 || field.getDeExtractType() == 1) { whereName = String.format(DorisConstants.STR_TO_DATE, originName, DorisConstants.DEFAULT_DATE_FORMAT); } - if (field.getDeExtractType() == 2 || field.getDeExtractType() == 3) { + if (field.getDeExtractType() == 2 || field.getDeExtractType() == 3 || field.getDeExtractType() == 4) { String cast = String.format(DorisConstants.CAST, originName, DorisConstants.DEFAULT_INT_FORMAT) + "/1000"; whereName = String.format(DorisConstants.FROM_UNIXTIME, cast, DorisConstants.DEFAULT_DATE_FORMAT); } @@ -747,7 +747,7 @@ public class DorisQueryProvider extends QueryProvider { if (field.getDeExtractType() == 0 || field.getDeExtractType() == 5 || field.getDeExtractType() == 1) { whereName = String.format(DorisConstants.STR_TO_DATE, originName, DorisConstants.DEFAULT_DATE_FORMAT); } - if (field.getDeExtractType() == 2 || field.getDeExtractType() == 3) { + if (field.getDeExtractType() == 2 || field.getDeExtractType() == 3 || field.getDeExtractType() == 4) { String cast = String.format(DorisConstants.CAST, originName, DorisConstants.DEFAULT_INT_FORMAT) + "/1000"; whereName = String.format(DorisConstants.FROM_UNIXTIME, cast, DorisConstants.DEFAULT_DATE_FORMAT); } diff --git a/backend/src/main/java/io/dataease/provider/mysql/MysqlQueryProvider.java b/backend/src/main/java/io/dataease/provider/mysql/MysqlQueryProvider.java index 8661579cf1..a102e894d2 100644 --- a/backend/src/main/java/io/dataease/provider/mysql/MysqlQueryProvider.java +++ b/backend/src/main/java/io/dataease/provider/mysql/MysqlQueryProvider.java @@ -675,10 +675,13 @@ public class MysqlQueryProvider extends QueryProvider { if (field.getDeExtractType() == 0 || field.getDeExtractType() == 5) { whereName = String.format(MySQLConstants.STR_TO_DATE, originName, MySQLConstants.DEFAULT_DATE_FORMAT); } - if (field.getDeExtractType() == 2 || field.getDeExtractType() == 3) { + if (field.getDeExtractType() == 2 || field.getDeExtractType() == 3 || field.getDeExtractType() == 4) { String cast = String.format(MySQLConstants.CAST, originName, MySQLConstants.DEFAULT_INT_FORMAT) + "/1000"; whereName = String.format(MySQLConstants.FROM_UNIXTIME, cast, MySQLConstants.DEFAULT_DATE_FORMAT); } + if (field.getDeExtractType() == 1) { + whereName = originName; + } } else { whereName = originName; } @@ -730,10 +733,13 @@ public class MysqlQueryProvider extends QueryProvider { if (field.getDeExtractType() == 0 || field.getDeExtractType() == 5) { whereName = String.format(MySQLConstants.STR_TO_DATE, originName, MySQLConstants.DEFAULT_DATE_FORMAT); } - if (field.getDeExtractType() == 2 || field.getDeExtractType() == 3) { + if (field.getDeExtractType() == 2 || field.getDeExtractType() == 3 || field.getDeExtractType() == 4) { String cast = String.format(MySQLConstants.CAST, originName, MySQLConstants.DEFAULT_INT_FORMAT) + "/1000"; whereName = String.format(MySQLConstants.FROM_UNIXTIME, cast, MySQLConstants.DEFAULT_DATE_FORMAT); } + if (field.getDeExtractType() == 1) { + whereName = originName; + } } else { whereName = originName; } diff --git a/backend/src/main/java/io/dataease/provider/oracle/OracleQueryProvider.java b/backend/src/main/java/io/dataease/provider/oracle/OracleQueryProvider.java index 4750b06fe7..5af732800e 100644 --- a/backend/src/main/java/io/dataease/provider/oracle/OracleQueryProvider.java +++ b/backend/src/main/java/io/dataease/provider/oracle/OracleQueryProvider.java @@ -710,10 +710,13 @@ public class OracleQueryProvider extends QueryProvider { if (field.getDeExtractType() == 0 || field.getDeExtractType() == 5) { whereName = String.format(OracleConstants.TO_DATE, originName, OracleConstants.DEFAULT_DATE_FORMAT); } - if (field.getDeExtractType() == 2 || field.getDeExtractType() == 3) { + if (field.getDeExtractType() == 2 || field.getDeExtractType() == 3 || field.getDeExtractType() == 4) { String cast = String.format(OracleConstants.CAST, originName, OracleConstants.DEFAULT_INT_FORMAT) + "/1000"; whereName = String.format(OracleConstants.FROM_UNIXTIME, cast, OracleConstants.DEFAULT_DATE_FORMAT); } + if (field.getDeExtractType() == 1) { + whereName = originName; + } } else { whereName = originName; } @@ -769,10 +772,13 @@ public class OracleQueryProvider extends QueryProvider { if (field.getDeExtractType() == 0 || field.getDeExtractType() == 5) { whereName = String.format(OracleConstants.TO_DATE, originName, OracleConstants.DEFAULT_DATE_FORMAT); } - if (field.getDeExtractType() == 2 || field.getDeExtractType() == 3) { + if (field.getDeExtractType() == 2 || field.getDeExtractType() == 3 || field.getDeExtractType() == 4) { String cast = String.format(OracleConstants.CAST, originName, OracleConstants.DEFAULT_INT_FORMAT) + "/1000"; whereName = String.format(OracleConstants.FROM_UNIXTIME, cast, OracleConstants.DEFAULT_DATE_FORMAT); } + if (field.getDeExtractType() == 1) { + whereName = originName; + } } else { whereName = originName; } diff --git a/backend/src/main/java/io/dataease/provider/pg/PgQueryProvider.java b/backend/src/main/java/io/dataease/provider/pg/PgQueryProvider.java index 5bdc712e38..6e8da1477f 100644 --- a/backend/src/main/java/io/dataease/provider/pg/PgQueryProvider.java +++ b/backend/src/main/java/io/dataease/provider/pg/PgQueryProvider.java @@ -702,10 +702,13 @@ public class PgQueryProvider extends QueryProvider { if (field.getDeExtractType() == 0 || field.getDeExtractType() == 5) { whereName = String.format(PgConstants.TO_DATE, originName, PgConstants.DEFAULT_DATE_FORMAT); } - if (field.getDeExtractType() == 2 || field.getDeExtractType() == 3) { + if (field.getDeExtractType() == 2 || field.getDeExtractType() == 3 || field.getDeExtractType() == 4) { String cast = String.format(PgConstants.CAST, originName, "bigint"); whereName = String.format(PgConstants.FROM_UNIXTIME, cast); } + if (field.getDeExtractType() == 1) { + whereName = originName; + } } else { whereName = originName; } @@ -757,10 +760,13 @@ public class PgQueryProvider extends QueryProvider { if (field.getDeExtractType() == 0 || field.getDeExtractType() == 5) { whereName = String.format(PgConstants.TO_DATE, originName, PgConstants.DEFAULT_DATE_FORMAT); } - if (field.getDeExtractType() == 2 || field.getDeExtractType() == 3) { + if (field.getDeExtractType() == 2 || field.getDeExtractType() == 3 || field.getDeExtractType() == 4) { String cast = String.format(PgConstants.CAST, originName, "bigint"); whereName = String.format(PgConstants.FROM_UNIXTIME, cast); } + if (field.getDeExtractType() == 1) { + whereName = originName; + } } else { whereName = originName; } diff --git a/backend/src/main/java/io/dataease/provider/sqlserver/SqlserverQueryProvider.java b/backend/src/main/java/io/dataease/provider/sqlserver/SqlserverQueryProvider.java index 6753379231..5645597100 100644 --- a/backend/src/main/java/io/dataease/provider/sqlserver/SqlserverQueryProvider.java +++ b/backend/src/main/java/io/dataease/provider/sqlserver/SqlserverQueryProvider.java @@ -657,10 +657,13 @@ public class SqlserverQueryProvider extends QueryProvider { if (field.getDeExtractType() == 0 || field.getDeExtractType() == 5) { whereName = String.format(SqlServerSQLConstants.STRING_TO_DATE, originName); } - if (field.getDeExtractType() == 2 || field.getDeExtractType() == 3) { + if (field.getDeExtractType() == 2 || field.getDeExtractType() == 3 || field.getDeExtractType() == 4) { String cast = String.format(SqlServerSQLConstants.LONG_TO_DATE, originName + "/1000"); whereName = String.format(SqlServerSQLConstants.FROM_UNIXTIME, cast); } + if (field.getDeExtractType() == 1) { + whereName = originName; + } } else { whereName = originName; } @@ -703,10 +706,13 @@ public class SqlserverQueryProvider extends QueryProvider { if (field.getDeExtractType() == 0 || field.getDeExtractType() == 5) { whereName = String.format(SqlServerSQLConstants.STRING_TO_DATE, originName); } - if (field.getDeExtractType() == 2 || field.getDeExtractType() == 3) { + if (field.getDeExtractType() == 2 || field.getDeExtractType() == 3 || field.getDeExtractType() == 4) { String cast = String.format(SqlServerSQLConstants.LONG_TO_DATE, originName + "/1000"); whereName = String.format(SqlServerSQLConstants.FROM_UNIXTIME, cast); } + if (field.getDeExtractType() == 1) { + whereName = originName; + } } else { whereName = originName; } 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 00ed8e5e45..b9b1f88c46 100644 --- a/backend/src/main/java/io/dataease/service/panel/PanelGroupService.java +++ b/backend/src/main/java/io/dataease/service/panel/PanelGroupService.java @@ -103,7 +103,19 @@ public class PanelGroupService { newDefaultPanel.setCreateBy(AuthUtils.getUser().getUsername()); checkPanelName(newDefaultPanel.getName(), newDefaultPanel.getPid(), PanelConstants.OPT_TYPE_INSERT, newDefaultPanel.getId()); panelGroupMapper.insertSelective(newDefaultPanel); - } else { + } else if ("copy".equals(request.getOptType())) { + panelId = UUID.randomUUID().toString(); + // 复制模板 + PanelGroupWithBLOBs newPanel = panelGroupMapper.selectByPrimaryKey(request.getId()); + // 插入校验 + if (StringUtils.isNotEmpty(request.getName())) { + checkPanelName(request.getName(), newPanel.getPid(), PanelConstants.OPT_TYPE_INSERT, request.getId()); + } + newPanel.setName(request.getName()); + newPanel.setId(panelId); + newPanel.setCreateBy(AuthUtils.getUser().getUsername()); + panelGroupMapper.insertSelective(newPanel); + }else { // 更新 if (StringUtils.isNotEmpty(request.getName())) { checkPanelName(request.getName(), request.getPid(), PanelConstants.OPT_TYPE_UPDATE, request.getId()); diff --git a/backend/src/main/java/io/dataease/service/panel/PanelPdfTemplateService.java b/backend/src/main/java/io/dataease/service/panel/PanelPdfTemplateService.java new file mode 100644 index 0000000000..ae1ae65e4f --- /dev/null +++ b/backend/src/main/java/io/dataease/service/panel/PanelPdfTemplateService.java @@ -0,0 +1,27 @@ +package io.dataease.service.panel; + +import io.dataease.base.domain.PanelPdfTemplate; +import io.dataease.base.domain.PanelPdfTemplateExample; +import io.dataease.base.mapper.PanelPdfTemplateMapper; +import org.springframework.stereotype.Service; + +import javax.annotation.Resource; +import java.util.List; + +/** + * Author: wangjiahao + * Date: 9/1/21 + * Description: + */ +@Service +public class PanelPdfTemplateService { + + @Resource + private PanelPdfTemplateMapper panelPdfTemplateMapper; + + public List queryAll(){ + PanelPdfTemplateExample example = new PanelPdfTemplateExample(); + example.setOrderByClause("sort asc"); + return panelPdfTemplateMapper.selectByExampleWithBLOBs(example); + } +} diff --git a/backend/src/main/resources/db/migration/V26__de1.3.sql b/backend/src/main/resources/db/migration/V26__de1.3.sql index ef59aa58cb..df2cdc0db9 100644 --- a/backend/src/main/resources/db/migration/V26__de1.3.sql +++ b/backend/src/main/resources/db/migration/V26__de1.3.sql @@ -4,4 +4,50 @@ BEGIN; INSERT INTO `sys_msg_type` VALUES (7, 0, 'i18n_msg_type_ds_invalid', 'datasource', 'to-msg-ds'); INSERT INTO `sys_msg_type` VALUES (8, 7, 'i18n_msg_type_ds_invalid', 'datasource', 'to-msg-ds'); -COMMIT; \ No newline at end of file +COMMIT; + +-- ---------------------------- +-- Table structure for system_parameter +-- ---------------------------- +DROP TABLE IF EXISTS `system_parameter`; +CREATE TABLE `system_parameter` ( + `param_key` varchar(64) NOT NULL COMMENT 'Parameter name', + `param_value` varchar(255) DEFAULT NULL COMMENT 'Parameter value', + `type` varchar(100) NOT NULL DEFAULT 'text' COMMENT 'Parameter type', + `sort` int(5) DEFAULT NULL COMMENT 'Sort', + PRIMARY KEY (`param_key`) +) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4; + +-- ---------------------------- +-- Records of system_parameter +-- ---------------------------- +BEGIN; +INSERT INTO `system_parameter` VALUES ('', NULL, 'text', NULL); +INSERT INTO `system_parameter` VALUES ('default.language', 'zh_CN', 'text', -1); +INSERT INTO `system_parameter` VALUES ('ui.favicon', NULL, 'file', -1); +INSERT INTO `system_parameter` VALUES ('ui.loginImage', NULL, 'file', 4); +INSERT INTO `system_parameter` VALUES ('ui.loginLogo', NULL, 'file', 5); +INSERT INTO `system_parameter` VALUES ('ui.loginTitle', NULL, 'text', 3); +INSERT INTO `system_parameter` VALUES ('ui.logo', NULL, 'file', 6); +INSERT INTO `system_parameter` VALUES ('ui.theme', NULL, 'text', 2); +INSERT INTO `system_parameter` VALUES ('ui.title', NULL, 'text', 1); +INSERT INTO `system_parameter` VALUES ('ui.topMenuActiveColor', NULL, 'text', 8); +INSERT INTO `system_parameter` VALUES ('ui.topMenuColor', NULL, 'text', 7); +INSERT INTO `system_parameter` VALUES ('ui.topMenuTextActiveColor', NULL, 'text', 10); +INSERT INTO `system_parameter` VALUES ('ui.topMenuTextColor', NULL, 'text', 9); +COMMIT; + +-- ---------------------------- +-- Table structure for panel_pdf_template +-- ---------------------------- +DROP TABLE IF EXISTS `panel_pdf_template`; +CREATE TABLE `panel_pdf_template` ( + `id` varchar(50) NOT NULL COMMENT 'id', + `name` varchar(255) DEFAULT NULL COMMENT '模板名称', + `create_time` bigint(13) DEFAULT NULL COMMENT '创建时间', + `create_user` varchar(255) DEFAULT NULL COMMENT '创建人', + `template_content` longtext COMMENT '模板内容', + `sort` int(8) DEFAULT NULL COMMENT '排序', + PRIMARY KEY (`id`) +) ENGINE=InnoDB DEFAULT CHARSET=utf8; + diff --git a/backend/src/main/resources/generatorConfig.xml b/backend/src/main/resources/generatorConfig.xml index 9764b3b112..2368a2540f 100644 --- a/backend/src/main/resources/generatorConfig.xml +++ b/backend/src/main/resources/generatorConfig.xml @@ -64,7 +64,7 @@ - +
diff --git a/frontend/package.json b/frontend/package.json index 5a7ce1ab24..2e3cd54833 100644 --- a/frontend/package.json +++ b/frontend/package.json @@ -45,6 +45,7 @@ "vue-fullscreen": "^2.5.2", "vue-i18n": "7.3.2", "vue-router": "3.0.6", + "vue-to-pdf": "^1.0.0", "vue-uuid": "2.0.2", "vuedraggable": "^2.24.3", "vuex": "3.1.0", diff --git a/frontend/src/api/panel/pdfTemplate.js b/frontend/src/api/panel/pdfTemplate.js new file mode 100644 index 0000000000..afd0efce18 --- /dev/null +++ b/frontend/src/api/panel/pdfTemplate.js @@ -0,0 +1,11 @@ +import request from '@/utils/request' + + +export function queryAll() { + return request({ + url: '/pdf-template/queryAll', + method: 'get', + loading: true, + timeout: 30000 + }) +} diff --git a/frontend/src/components/LangSelect/index.vue b/frontend/src/components/LangSelect/index.vue index a32137c94d..55b565ecb0 100644 --- a/frontend/src/components/LangSelect/index.vue +++ b/frontend/src/components/LangSelect/index.vue @@ -1,7 +1,7 @@ - - - - diff --git a/frontend/src/components/Settings/index.vue b/frontend/src/components/Settings/index.vue deleted file mode 100644 index 0fb565e14a..0000000000 --- a/frontend/src/components/Settings/index.vue +++ /dev/null @@ -1,107 +0,0 @@ - - - - - diff --git a/frontend/src/components/ThemePicker/index.vue b/frontend/src/components/ThemePicker/index.vue index 2fc497be2f..1bd21b4364 100644 --- a/frontend/src/components/ThemePicker/index.vue +++ b/frontend/src/components/ThemePicker/index.vue @@ -8,9 +8,9 @@ diff --git a/frontend/src/components/back-button/index.vue b/frontend/src/components/back-button/index.vue index 6d72ad6009..65f860fd03 100644 --- a/frontend/src/components/back-button/index.vue +++ b/frontend/src/components/back-button/index.vue @@ -31,8 +31,6 @@ export default { \ No newline at end of file diff --git a/frontend/src/icons/svg/docs.svg b/frontend/src/icons/svg/docs.svg index 42a1046e3d..f699a5931d 100644 --- a/frontend/src/icons/svg/docs.svg +++ b/frontend/src/icons/svg/docs.svg @@ -1 +1 @@ - \ No newline at end of file + \ No newline at end of file diff --git a/frontend/src/icons/svg/language.svg b/frontend/src/icons/svg/language.svg index 312f4f3b54..143b3a6d73 100644 --- a/frontend/src/icons/svg/language.svg +++ b/frontend/src/icons/svg/language.svg @@ -1 +1 @@ - \ No newline at end of file + \ No newline at end of file diff --git a/frontend/src/lang/en.js b/frontend/src/lang/en.js index 84bd044f92..9edbd7716b 100644 --- a/frontend/src/lang/en.js +++ b/frontend/src/lang/en.js @@ -849,7 +849,12 @@ export default { custom_case: 'Custom', last_layer: 'This Is The Last Layer', radar_size: 'Size', - chart_mix: 'Mix' + chart_mix: 'Mix', + axis_value: 'Axis Value', + axis_value_min: 'Min', + axis_value_max: 'Max', + axis_value_split: 'Split', + axis_auto: 'Auto' }, dataset: { sheet_warn: 'There are multiple sheet pages, and the first one is extracted by default', diff --git a/frontend/src/lang/tw.js b/frontend/src/lang/tw.js index 53387d65b8..064e9415dd 100644 --- a/frontend/src/lang/tw.js +++ b/frontend/src/lang/tw.js @@ -848,7 +848,12 @@ export default { custom_case: '自定義', last_layer: '當前已經是最後一級', radar_size: '大小', - chart_mix: '組合圖' + chart_mix: '組合圖', + axis_value: '軸值', + axis_value_min: '最小值', + axis_value_max: '最大值', + axis_value_split: '間隔', + axis_auto: '自動' }, dataset: { sheet_warn: '有多個sheet頁面,默認抽取第一個', diff --git a/frontend/src/lang/zh.js b/frontend/src/lang/zh.js index 804bf19ee3..3f07babb7c 100644 --- a/frontend/src/lang/zh.js +++ b/frontend/src/lang/zh.js @@ -848,7 +848,12 @@ export default { custom_case: '自定义', last_layer: '当前已经是最后一级', radar_size: '大小', - chart_mix: '组合图' + chart_mix: '组合图', + axis_value: '轴值', + axis_value_min: '最小值', + axis_value_max: '最大值', + axis_value_split: '间隔', + axis_auto: '自动' }, dataset: { sheet_warn: '有多个 Sheet 页,默认抽取第一个', @@ -1245,7 +1250,16 @@ export default { loginImage: '登录页面右侧图片', loginTitle: '登录页面标题', title: '系统名称', - advice_size: '建议图片大小' + advice_size: '建议图片大小', + theme: '主题颜色', + + topMenuColor: '头部背景', + topMenuActiveColor: '头部选中背景', + + topMenuTextColor: '头部字体颜色', + + topMenuTextActiveColor: '头部字体选中颜色' + }, auth: { authConfig: '权限配置', diff --git a/frontend/src/layout/components/AppMain.vue b/frontend/src/layout/components/AppMain.vue index eaf39b016c..2e72540801 100644 --- a/frontend/src/layout/components/AppMain.vue +++ b/frontend/src/layout/components/AppMain.vue @@ -20,7 +20,6 @@ export default { diff --git a/frontend/src/layout/components/Sidebar/Logo.vue b/frontend/src/layout/components/Sidebar/Logo.vue index 10a077f73f..d48754cfee 100644 --- a/frontend/src/layout/components/Sidebar/Logo.vue +++ b/frontend/src/layout/components/Sidebar/Logo.vue @@ -53,8 +53,7 @@ export default { width: 100%; height: 50px; line-height: 50px; -// background: #2b2f3a; - background-color: $menuBg; + background-color: $topBarBg; text-align: center; overflow: hidden; diff --git a/frontend/src/layout/components/Sidebar/index.vue b/frontend/src/layout/components/Sidebar/index.vue index e2cd53868a..1c8de2b267 100644 --- a/frontend/src/layout/components/Sidebar/index.vue +++ b/frontend/src/layout/components/Sidebar/index.vue @@ -1,13 +1,10 @@