diff --git a/.gitignore b/.gitignore
new file mode 100644
index 00000000..ff96ea4d
--- /dev/null
+++ b/.gitignore
@@ -0,0 +1,7 @@
+.idea
+target
+*.iml
+/view/flutter/**/gen/*
+**/*.log
+dist
+logs
diff --git a/derby.log b/derby.log
new file mode 100644
index 00000000..e69de29b
diff --git a/pom.xml b/pom.xml
new file mode 100644
index 00000000..4dc13d53
--- /dev/null
+++ b/pom.xml
@@ -0,0 +1,104 @@
+
+
+
+ 4.0.0
+
+ com.anji-plus
+ spring-boot-gaea-parent
+ 1.0.0.RELEASE
+
+
+ com.anjiplus.template.gaea
+ template-gaea
+ anjiplus-template-gaea
+ 1.0.0-SNAPSHOT
+ template-gaea
+ pom
+
+
+ report-core
+
+
+
+ 1.0.0-SNAPSHOT
+ 1.0.0-SNAPSHOT
+ 1.0.0-SNAPSHOT
+ 1.0.0-SNAPSHOT
+ 1.0.0-SNAPSHOT
+ true
+
+
+
+
+
+ com.anjiplus.template.gaea
+ template-gaea-auth
+ ${project.version}
+
+
+ com.anjiplus.template.gaea
+ template-gaea-business
+ ${project.version}
+
+
+ com.anjiplus.template.gaea
+ template-gaea-common
+ ${project.version}
+
+
+
+ com.anjiplus.template.gaea
+ template-gaea-generator
+ ${gaea.generator.version}
+
+
+
+ com.anji-plus
+ spring-boot-gaea
+ ${gaea.version}
+
+
+ com.anji-plus
+ spring-boot-starter-gaea-security
+ ${gaea.security.version}
+
+
+
+ com.anji-plus
+ spring-boot-starter-gaea-export
+ ${gaea.export.version}
+
+
+
+ com.anji-plus
+ spring-boot-starter-gaea-log
+ ${gaea.log.version}
+
+
+
+
+
+
+
+ dev
+
+ dev
+
+
+ true
+
+
+
+
+
+
+ nexus-releases
+ http://nexus.anji-plus.com:8081/repository/maven-releases/
+
+
+ nexus-snapshots
+ http://nexus.anji-plus.com:8081/repository/maven-snapshots/
+
+
+
diff --git a/report-core/pom.xml b/report-core/pom.xml
new file mode 100644
index 00000000..da3c9e3b
--- /dev/null
+++ b/report-core/pom.xml
@@ -0,0 +1,115 @@
+
+
+
+
+ com.anjiplus.template.gaea
+ template-gaea
+ 1.0.0-SNAPSHOT
+ ../
+
+ 4.0.0
+ aj-report
+ aj-report
+
+
+
+ com.anjiplus.template.gaea
+ template-gaea-common
+
+
+
+
+
+
+
+
+
+
+
+
+
+ com.anjiplus.template.gaea
+ template-gaea-generator
+
+
+
+ com.baomidou
+ mybatis-plus-boot-starter
+
+
+
+ mysql
+ mysql-connector-java
+
+
+
+ org.springframework.boot
+ spring-boot-starter-test
+ test
+
+
+
+
+
+
+
+
+
+
+
+
+ com.anji-plus
+ spring-boot-starter-gaea-export
+
+
+ com.anji-plus
+ spring-boot-starter-gaea-log
+
+
+
+
+ com.alibaba
+ druid
+ 1.1.22
+
+
+
+
+ owinfo
+ impalajdbc41
+ 1.0.0
+ system
+ ${project.basedir}/src/main/resources/lib/ImpalaJDBC41.jar
+
+
+ org.apache.hive
+ hive-jdbc
+ 1.2.1
+
+
+ org.eclipse.jetty.aggregate
+ jetty-all
+
+
+
+
+
+
+
+
+ src/main/resources
+ true
+
+
+
+
+ org.springframework.boot
+ spring-boot-maven-plugin
+
+ true
+
+
+
+
+
diff --git a/report-core/src/main/java/com/anjiplus/template/gaea/business/ReportApplication.java b/report-core/src/main/java/com/anjiplus/template/gaea/business/ReportApplication.java
new file mode 100644
index 00000000..ce50103e
--- /dev/null
+++ b/report-core/src/main/java/com/anjiplus/template/gaea/business/ReportApplication.java
@@ -0,0 +1,27 @@
+package com.anjiplus.template.gaea.business;
+
+import com.anji.plus.gaea.annotation.enabled.EnabledGaeaConfiguration;
+import org.mybatis.spring.annotation.MapperScan;
+import org.springframework.boot.SpringApplication;
+import org.springframework.boot.autoconfigure.SpringBootApplication;
+
+/**
+ * 业务模板
+ * @author lr
+ * @since 2021-02-03
+ */
+@EnabledGaeaConfiguration
+@SpringBootApplication(scanBasePackages = {
+ "com.anjiplus.template.gaea",
+ "com.anji.plus"
+})
+@MapperScan(basePackages = {
+ "com.anjiplus.template.gaea.business.modules.*.dao",
+ "com.anjiplus.template.gaea.business.modules.*.**.dao",
+ "com.anji.plus.gaea.*.module.*.dao"
+})
+public class ReportApplication {
+ public static void main( String[] args ) {
+ SpringApplication.run(ReportApplication.class);
+ }
+}
diff --git a/report-core/src/main/java/com/anjiplus/template/gaea/business/base/BaseController.java b/report-core/src/main/java/com/anjiplus/template/gaea/business/base/BaseController.java
new file mode 100644
index 00000000..0052d6c5
--- /dev/null
+++ b/report-core/src/main/java/com/anjiplus/template/gaea/business/base/BaseController.java
@@ -0,0 +1,25 @@
+package com.anjiplus.template.gaea.business.base;
+
+import org.springframework.context.i18n.LocaleContextHolder;
+
+import com.anji.plus.gaea.curd.controller.GaeaBaseController;
+import com.anji.plus.gaea.curd.dto.BaseDTO;
+import com.anji.plus.gaea.curd.entity.BaseEntity;
+import com.anji.plus.gaea.curd.params.PageParam;
+
+/**
+ * 项目级的Controller公共处理基类
+ *
+ * @author WongBin
+ * @date 2021/3/26
+ */
+public abstract class BaseController
+ extends GaeaBaseController
{
+ /**
+ * 获取当前语言类型
+ * @return
+ */
+ public String getI18nLang(){
+ return LocaleContextHolder.getLocale().getLanguage();
+ }
+}
diff --git a/report-core/src/main/java/com/anjiplus/template/gaea/business/base/BaseService.java b/report-core/src/main/java/com/anjiplus/template/gaea/business/base/BaseService.java
new file mode 100644
index 00000000..6808cb91
--- /dev/null
+++ b/report-core/src/main/java/com/anjiplus/template/gaea/business/base/BaseService.java
@@ -0,0 +1,15 @@
+package com.anjiplus.template.gaea.business.base;
+
+import com.anji.plus.gaea.curd.entity.BaseEntity;
+import com.anji.plus.gaea.curd.params.PageParam;
+import com.anji.plus.gaea.curd.service.GaeaBaseService;
+import org.springframework.context.i18n.LocaleContextHolder;
+
+/**
+ * 项目级的Service公共处理基类
+ * @author WongBin
+ * @date 2021/3/26
+ */
+public interface BaseService
extends GaeaBaseService
{
+
+}
diff --git a/report-core/src/main/java/com/anjiplus/template/gaea/business/code/ResponseCode.java b/report-core/src/main/java/com/anjiplus/template/gaea/business/code/ResponseCode.java
new file mode 100644
index 00000000..d4c5ed63
--- /dev/null
+++ b/report-core/src/main/java/com/anjiplus/template/gaea/business/code/ResponseCode.java
@@ -0,0 +1,68 @@
+package com.anjiplus.template.gaea.business.code;
+
+/**
+ * 响应码
+ * @author lr
+ * @since 2021-02-22
+ */
+public interface ResponseCode {
+
+ /**
+ * 字典项重复
+ */
+ String DICT_ITEM_REPEAT = "Dict.item.code.exist";
+
+ /**
+ * 数字字典国际化标识不能为null
+ */
+ String DICT_CODE_LOCALE_NULL = "500-00002";
+
+ /**
+ * 参数为空
+ */
+ String PARAM_IS_NULL = "Rule.execute.param.null";
+
+ /**
+ * 规则编译不通过
+ */
+ String RULE_CONTENT_COMPILE_ERROR = "Rule.content.compile.error";
+
+ /**
+ * 规则执行不通过
+ */
+ String RULE_CONTENT_EXECUTE_ERROR = "Rule.content.execute.error";
+
+ /**
+ * 规则编码已存在
+ */
+ String RULE_CODE_EXIST = "Rule.code.exist";
+
+ /**
+ * 对应规则内容不存在
+ */
+ String RULE_CONTENT_NOT_EXIST = "Rule.content.not.exist";
+
+ /**
+ * 对应规则字段值不存在
+ */
+ String RULE_FIELDS_NOT_EXIST = "Rule.fields.not.exist";
+
+ /**
+ * 规则字段必填
+ */
+ String RULE_FIELD_VALUE_IS_REQUIRED = "Rule.field.value.is.required";
+
+ /**
+ * 规则字段值类型错误
+ */
+ String RULE_FIELD_VALUE_TYPE_ERROR = "Rule.field.value.type.error";
+
+ /**
+ * 规则参数校验不通过
+ */
+ String RULE_FIELDS_CHECK_ERROR = "Rule.fields.check.error";
+ /**
+ * 组件未加载
+ */
+ String COMPONENT_NOT_LOAD = "Component.load.check.error";
+}
diff --git a/report-core/src/main/java/com/anjiplus/template/gaea/business/config/BusinessAutoConfiguration.java b/report-core/src/main/java/com/anjiplus/template/gaea/business/config/BusinessAutoConfiguration.java
new file mode 100644
index 00000000..9c6751a1
--- /dev/null
+++ b/report-core/src/main/java/com/anjiplus/template/gaea/business/config/BusinessAutoConfiguration.java
@@ -0,0 +1,29 @@
+package com.anjiplus.template.gaea.business.config;
+
+import com.anjiplus.template.gaea.business.runner.ApplicationInitRunner;
+
+import org.mybatis.spring.annotation.MapperScan;
+import org.springframework.context.annotation.Bean;
+import org.springframework.context.annotation.Configuration;
+
+/**
+ * business配置类
+ * @author lr
+ * @since 2021-04-08
+ */
+@Configuration
+@MapperScan(basePackages = {
+ "com.anjiplus.template.gaea.business.modules.*.dao",
+ "com.anjiplus.template.gaea.business.modules.*.**.dao"
+})
+public class BusinessAutoConfiguration {
+
+ /**
+ * 系统启动完执行
+ * @return
+ */
+ @Bean
+ public ApplicationInitRunner applicationInitRunner() {
+ return new ApplicationInitRunner();
+ }
+}
diff --git a/report-core/src/main/java/com/anjiplus/template/gaea/business/constant/BusinessConstant.java b/report-core/src/main/java/com/anjiplus/template/gaea/business/constant/BusinessConstant.java
new file mode 100644
index 00000000..3c825b93
--- /dev/null
+++ b/report-core/src/main/java/com/anjiplus/template/gaea/business/constant/BusinessConstant.java
@@ -0,0 +1,14 @@
+package com.anjiplus.template.gaea.business.constant;
+
+/**
+ * 常量
+ * @author lr
+ * @since 2021-03-26
+ */
+public interface BusinessConstant {
+
+ /**
+ * 字典项重复
+ */
+ String DICT_ITEM_EXIST_GROUP = "dictItemExist";
+}
diff --git a/report-core/src/main/java/com/anjiplus/template/gaea/business/modules/data/dashboard/controller/ReportDashboardController.java b/report-core/src/main/java/com/anjiplus/template/gaea/business/modules/data/dashboard/controller/ReportDashboardController.java
new file mode 100644
index 00000000..a1754871
--- /dev/null
+++ b/report-core/src/main/java/com/anjiplus/template/gaea/business/modules/data/dashboard/controller/ReportDashboardController.java
@@ -0,0 +1,64 @@
+
+package com.anjiplus.template.gaea.business.modules.data.dashboard.controller;
+
+import com.anji.plus.gaea.annotation.Permission;
+import com.anji.plus.gaea.annotation.log.GaeaAuditLog;
+import com.anji.plus.gaea.bean.ResponseBean;
+import com.anjiplus.template.gaea.business.modules.data.dashboard.controller.dto.ChartDto;
+import com.anjiplus.template.gaea.business.modules.data.dashboard.controller.dto.ReportDashboardObjectDto;
+import com.anjiplus.template.gaea.business.modules.data.dashboard.service.ReportDashboardService;
+import io.swagger.annotations.Api;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.web.bind.annotation.*;
+
+/**
+* @desc 大屏设计 controller
+* @website https://gitee.com/anji-plus/gaea
+* @author Raod
+* @date 2021-04-12 14:52:21.761
+**/
+@RestController
+@Api(tags = "大屏设计管理")
+@RequestMapping("/reportDashboard")
+public class ReportDashboardController {
+
+ @Autowired
+ private ReportDashboardService reportDashboardService;
+
+ /**
+ * 预览、查询大屏详情
+ * @param reportCode
+ * @return
+ */
+ @GetMapping({"/{reportCode}"})
+ @Permission(code = "DETAIL", name = "明细")
+ public ResponseBean detail(@PathVariable("reportCode") String reportCode) {
+ return ResponseBean.builder().data(reportDashboardService.getDetail(reportCode)).build();
+ }
+
+ /**
+ * 保存大屏设计
+ * @param dto
+ * @return
+ */
+ @PostMapping
+ @Permission(code = "INSERT", name = "新增")
+ @GaeaAuditLog(pageTitle = "新增")
+ public ResponseBean insert(@RequestBody ReportDashboardObjectDto dto) {
+ reportDashboardService.insertDashboard(dto);
+ return ResponseBean.builder().build();
+ }
+
+
+ /**
+ * 获取去单个图层数据
+ * @param dto
+ * @return
+ */
+ @PostMapping("/getData")
+ @Permission(code = "DETAIL", name = "明细图表数据")
+ public ResponseBean getData(@RequestBody ChartDto dto) {
+ return ResponseBean.builder().data(reportDashboardService.getChartData(dto)).build();
+ }
+
+}
diff --git a/report-core/src/main/java/com/anjiplus/template/gaea/business/modules/data/dashboard/controller/dto/ChartDto.java b/report-core/src/main/java/com/anjiplus/template/gaea/business/modules/data/dashboard/controller/dto/ChartDto.java
new file mode 100644
index 00000000..b821eff3
--- /dev/null
+++ b/report-core/src/main/java/com/anjiplus/template/gaea/business/modules/data/dashboard/controller/dto/ChartDto.java
@@ -0,0 +1,51 @@
+
+package com.anjiplus.template.gaea.business.modules.data.dashboard.controller.dto;
+
+import lombok.Data;
+
+import java.io.Serializable;
+import java.util.Map;
+
+
+/**
+*
+* @description 大屏设计 dto
+* @author Raod
+* @date 2021-04-12 14:52:21.761
+**/
+@Data
+public class ChartDto implements Serializable {
+
+ private String chartType;
+
+ /**数据集编码*/
+ private String setCode;
+
+ /** 传入的自定义参数*/
+ private Map contextData;
+
+ /**图表属性*/
+ private Map chartProperties;
+
+ /**时间字段*/
+ private String timeLineFiled;
+
+ /**时间颗粒度*/
+ private String particles;
+
+ /**时间格式化*/
+ private String dataTimeFormat;
+
+ /**时间展示层*/
+ private String timeLineFormat;
+
+ private int timeUnit;
+
+ /**时间区间*/
+ private String startTime;
+
+ /**时间区间*/
+ private String endTime;
+
+
+}
diff --git a/report-core/src/main/java/com/anjiplus/template/gaea/business/modules/data/dashboard/controller/dto/ReportDashboardDto.java b/report-core/src/main/java/com/anjiplus/template/gaea/business/modules/data/dashboard/controller/dto/ReportDashboardDto.java
new file mode 100644
index 00000000..b4ba347a
--- /dev/null
+++ b/report-core/src/main/java/com/anjiplus/template/gaea/business/modules/data/dashboard/controller/dto/ReportDashboardDto.java
@@ -0,0 +1,55 @@
+
+package com.anjiplus.template.gaea.business.modules.data.dashboard.controller.dto;
+
+import com.anji.plus.gaea.curd.dto.GaeaBaseDTO;
+import com.anjiplus.template.gaea.business.modules.data.dashboardwidget.controller.dto.ReportDashboardWidgetDto;
+import lombok.Data;
+
+import java.io.Serializable;
+import java.util.List;
+
+
+/**
+*
+* @description 大屏设计 dto
+* @author Raod
+* @date 2021-04-12 14:52:21.761
+**/
+@Data
+public class ReportDashboardDto extends GaeaBaseDTO implements Serializable {
+ /** 报表编码 */
+ private String reportCode;
+
+ /** 看板标题 */
+ private String title;
+
+ /** 宽度px */
+ private Long width;
+
+ /** 高度px */
+ private Long height;
+
+ /** 背景色 */
+ private String backgroundColor;
+
+ /** 背景图片 */
+ private String backgroundImage;
+
+ /** 工作台中的辅助线 */
+ private String presetLine;
+
+ /** 自动刷新间隔秒,数据字典REFRESH_TYPE */
+ private Integer refreshSeconds;
+
+ /** 0--已禁用 1--已启用 DIC_NAME=ENABLE_FLAG */
+ private Integer enableFlag;
+
+ /** 0--未删除 1--已删除 DIC_NAME=DEL_FLAG */
+ private Integer deleteFlag;
+
+ /** 排序,降序 */
+ private Integer sort;
+
+ private List widgets;
+
+}
\ No newline at end of file
diff --git a/report-core/src/main/java/com/anjiplus/template/gaea/business/modules/data/dashboard/controller/dto/ReportDashboardObjectDto.java b/report-core/src/main/java/com/anjiplus/template/gaea/business/modules/data/dashboard/controller/dto/ReportDashboardObjectDto.java
new file mode 100644
index 00000000..a74d3fa9
--- /dev/null
+++ b/report-core/src/main/java/com/anjiplus/template/gaea/business/modules/data/dashboard/controller/dto/ReportDashboardObjectDto.java
@@ -0,0 +1,32 @@
+
+package com.anjiplus.template.gaea.business.modules.data.dashboard.controller.dto;
+
+import com.anjiplus.template.gaea.business.modules.data.dashboardwidget.controller.dto.ReportDashboardWidgetDto;
+import lombok.Data;
+
+import java.io.Serializable;
+import java.util.List;
+
+
+/**
+*
+* @description 大屏设计 dto
+* @author Raod
+* @date 2021-04-12 14:52:21.761
+**/
+@Data
+public class ReportDashboardObjectDto implements Serializable {
+
+ /** 报表编码 */
+ private String reportCode;
+ /**
+ * 报表编码
+ */
+ private ReportDashboardDto dashboard;
+
+ /**
+ * 大屏画布中的组件
+ */
+ private List widgets;
+
+}
diff --git a/report-core/src/main/java/com/anjiplus/template/gaea/business/modules/data/dashboard/controller/param/ReportDashboardParam.java b/report-core/src/main/java/com/anjiplus/template/gaea/business/modules/data/dashboard/controller/param/ReportDashboardParam.java
new file mode 100644
index 00000000..f2045fcd
--- /dev/null
+++ b/report-core/src/main/java/com/anjiplus/template/gaea/business/modules/data/dashboard/controller/param/ReportDashboardParam.java
@@ -0,0 +1,20 @@
+/**/
+package com.anjiplus.template.gaea.business.modules.data.dashboard.controller.param;
+
+import lombok.Data;
+import java.io.Serializable;
+import com.anji.plus.gaea.annotation.Query;
+import com.anji.plus.gaea.constant.QueryEnum;
+import com.anji.plus.gaea.curd.params.PageParam;
+
+import java.util.List;
+
+
+/**
+* @desc ReportDashboard 大屏设计查询输入类
+* @author Raod
+* @date 2021-04-12 14:52:21.761
+**/
+@Data
+public class ReportDashboardParam extends PageParam implements Serializable{
+}
\ No newline at end of file
diff --git a/report-core/src/main/java/com/anjiplus/template/gaea/business/modules/data/dashboard/dao/ReportDashboardMapper.java b/report-core/src/main/java/com/anjiplus/template/gaea/business/modules/data/dashboard/dao/ReportDashboardMapper.java
new file mode 100644
index 00000000..9c339a02
--- /dev/null
+++ b/report-core/src/main/java/com/anjiplus/template/gaea/business/modules/data/dashboard/dao/ReportDashboardMapper.java
@@ -0,0 +1,16 @@
+package com.anjiplus.template.gaea.business.modules.data.dashboard.dao;
+
+import org.apache.ibatis.annotations.Mapper;
+
+import com.anji.plus.gaea.curd.mapper.GaeaBaseMapper;
+import com.anjiplus.template.gaea.business.modules.data.dashboard.dao.entity.ReportDashboard;
+
+/**
+* ReportDashboard Mapper
+* @author Raod
+* @date 2021-04-12 14:52:21.761
+**/
+@Mapper
+public interface ReportDashboardMapper extends GaeaBaseMapper {
+
+}
\ No newline at end of file
diff --git a/report-core/src/main/java/com/anjiplus/template/gaea/business/modules/data/dashboard/dao/entity/ReportDashboard.java b/report-core/src/main/java/com/anjiplus/template/gaea/business/modules/data/dashboard/dao/entity/ReportDashboard.java
new file mode 100644
index 00000000..24623063
--- /dev/null
+++ b/report-core/src/main/java/com/anjiplus/template/gaea/business/modules/data/dashboard/dao/entity/ReportDashboard.java
@@ -0,0 +1,58 @@
+
+package com.anjiplus.template.gaea.business.modules.data.dashboard.dao.entity;
+
+import com.anji.plus.gaea.annotation.Unique;
+import com.anjiplus.template.gaea.common.RespCommonCode;
+import lombok.Data;
+import io.swagger.annotations.ApiModelProperty;
+
+import com.anji.plus.gaea.curd.entity.GaeaBaseEntity;
+import com.baomidou.mybatisplus.annotation.TableName;
+
+import javax.validation.constraints.*;
+import java.sql.Timestamp;
+
+/**
+* @description 大屏设计 entity
+* @author Raod
+* @date 2021-04-12 14:52:21.761
+**/
+@TableName(value="gaea_report_dashboard")
+@Data
+public class ReportDashboard extends GaeaBaseEntity {
+ @ApiModelProperty(value = "报表编码")
+ @Unique(code = RespCommonCode.REPORT_CODE_ISEXIST)
+ private String reportCode;
+
+ @ApiModelProperty(value = "看板标题")
+ private String title;
+
+ @ApiModelProperty(value = "宽度px")
+ private Long width;
+
+ @ApiModelProperty(value = "高度px")
+ private Long height;
+
+ @ApiModelProperty(value = "背景色")
+ private String backgroundColor;
+
+ @ApiModelProperty(value = "背景图片")
+ private String backgroundImage;
+
+ @ApiModelProperty(value = "工作台中的辅助线")
+ private String presetLine;
+
+ @ApiModelProperty(value = "自动刷新间隔秒,数据字典REFRESH_TYPE")
+ private Integer refreshSeconds;
+
+ @ApiModelProperty(value = "0--已禁用 1--已启用 DIC_NAME=ENABLE_FLAG")
+ private Integer enableFlag;
+
+ @ApiModelProperty(value = " 0--未删除 1--已删除 DIC_NAME=DEL_FLAG")
+ private Integer deleteFlag;
+
+ @ApiModelProperty(value = "排序,降序")
+ private Integer sort;
+
+
+}
\ No newline at end of file
diff --git a/report-core/src/main/java/com/anjiplus/template/gaea/business/modules/data/dashboard/service/ChartStrategy.java b/report-core/src/main/java/com/anjiplus/template/gaea/business/modules/data/dashboard/service/ChartStrategy.java
new file mode 100644
index 00000000..aaa79d0c
--- /dev/null
+++ b/report-core/src/main/java/com/anjiplus/template/gaea/business/modules/data/dashboard/service/ChartStrategy.java
@@ -0,0 +1,26 @@
+package com.anjiplus.template.gaea.business.modules.data.dashboard.service;
+
+import com.alibaba.fastjson.JSONObject;
+import com.anjiplus.template.gaea.business.modules.data.dashboard.controller.dto.ChartDto;
+
+import java.util.List;
+
+/**
+ * Created by raodeming on 2021/4/26.
+ */
+public interface ChartStrategy {
+
+ /**
+ * 图表类型
+ * @return
+ */
+ String type();
+
+ /**
+ * 针对每种图表类型做单独的数据转换解析
+ *
+ * @param dto
+ * @return
+ */
+ Object transform(ChartDto dto, List data);
+}
diff --git a/report-core/src/main/java/com/anjiplus/template/gaea/business/modules/data/dashboard/service/ReportDashboardService.java b/report-core/src/main/java/com/anjiplus/template/gaea/business/modules/data/dashboard/service/ReportDashboardService.java
new file mode 100644
index 00000000..2a5d62c6
--- /dev/null
+++ b/report-core/src/main/java/com/anjiplus/template/gaea/business/modules/data/dashboard/service/ReportDashboardService.java
@@ -0,0 +1,38 @@
+
+package com.anjiplus.template.gaea.business.modules.data.dashboard.service;
+
+import com.anji.plus.gaea.curd.service.GaeaBaseService;
+import com.anjiplus.template.gaea.business.modules.data.dashboard.controller.dto.ChartDto;
+import com.anjiplus.template.gaea.business.modules.data.dashboard.controller.dto.ReportDashboardObjectDto;
+import com.anjiplus.template.gaea.business.modules.data.dashboard.controller.param.ReportDashboardParam;
+import com.anjiplus.template.gaea.business.modules.data.dashboard.dao.entity.ReportDashboard;
+
+/**
+* @desc ReportDashboard 大屏设计服务接口
+* @author Raod
+* @date 2021-04-12 14:52:21.761
+**/
+public interface ReportDashboardService extends GaeaBaseService {
+
+ /***
+ * 查询详情
+ *
+ * @param reportCode
+ */
+ ReportDashboardObjectDto getDetail(String reportCode);
+
+ /***
+ * 保存大屏设计
+ *
+ * @param dto
+ */
+ void insertDashboard(ReportDashboardObjectDto dto);
+
+
+ /**
+ * 获取单个图表数据
+ * @param dto
+ * @return
+ */
+ Object getChartData(ChartDto dto);
+}
diff --git a/report-core/src/main/java/com/anjiplus/template/gaea/business/modules/data/dashboard/service/impl/BarChartServiceImpl.java b/report-core/src/main/java/com/anjiplus/template/gaea/business/modules/data/dashboard/service/impl/BarChartServiceImpl.java
new file mode 100644
index 00000000..780d17d3
--- /dev/null
+++ b/report-core/src/main/java/com/anjiplus/template/gaea/business/modules/data/dashboard/service/impl/BarChartServiceImpl.java
@@ -0,0 +1,81 @@
+package com.anjiplus.template.gaea.business.modules.data.dashboard.service.impl;
+
+import com.alibaba.fastjson.JSONArray;
+import com.alibaba.fastjson.JSONObject;
+import com.anjiplus.template.gaea.business.modules.data.dashboard.controller.dto.ChartDto;
+import com.anjiplus.template.gaea.business.modules.data.dashboard.service.ChartStrategy;
+import org.springframework.stereotype.Component;
+
+import java.util.ArrayList;
+import java.util.List;
+
+/**
+ * 柱状体或者折线图
+ * Created by raodeming on 2021/4/26.
+ */
+@Component
+public class BarChartServiceImpl implements ChartStrategy {
+ /**
+ * 图表类型
+ *
+ * @return
+ */
+ @Override
+ public String type() {
+ return "widget-barchart|widget-linechart";
+ }
+
+ /**
+ * 针对每种图表类型做单独的数据转换解析
+ *
+ * @param dto
+ * @param data
+ * @return
+ */
+ @Override
+ public Object transform(ChartDto dto, List data) {
+// JSONObject json = new JSONObject();
+// List