ソースを参照

fix: 代码合并

wu.jian2 1 年間 前
コミット
657395bc26

+ 5 - 139
DataRoom/dataroom-core/pom.xml

@@ -18,6 +18,7 @@
     </properties>
 
     <dependencies>
+        <!--  数据集插件 -->
         <dependency>
             <groupId>com.gccloud</groupId>
             <artifactId>dataset-core</artifactId>
@@ -42,103 +43,21 @@
                 </exclusion>
             </exclusions>
         </dependency>
-        <dependency>
-            <groupId>org.aspectj</groupId>
-            <artifactId>aspectjrt</artifactId>
-        </dependency>
-        <dependency>
-            <groupId>org.springframework.boot</groupId>
-            <artifactId>spring-boot-starter-aop</artifactId>
-        </dependency>
-        <!--   swagger相关依赖  -->
-        <dependency>
-            <groupId>io.swagger</groupId>
-            <artifactId>swagger-annotations</artifactId>
-            <version>${swagger.annotations.version}</version>
-        </dependency>
-        <dependency>
-            <groupId>com.github.xiaoymin</groupId>
-            <artifactId>swagger-bootstrap-ui</artifactId>
-            <version>${swagger.bootstrap.version}</version>
-        </dependency>
-        <!--   lombok依赖  -->
-        <dependency>
-            <groupId>org.projectlombok</groupId>
-            <artifactId>lombok</artifactId>
-            <version>${lombok.version}</version>
-        </dependency>
-        <!--   mybatis相关依赖  -->
-        <dependency>
-            <groupId>org.mybatis</groupId>
-            <artifactId>mybatis</artifactId>
-            <version>${mybatis.version}</version>
-        </dependency>
-        <dependency>
-            <groupId>com.baomidou</groupId>
-            <artifactId>mybatis-plus-core</artifactId>
-            <version>${mybatis.plus.version}</version>
-            <exclusions>
-                <exclusion>
-                    <groupId>org.mybatis</groupId>
-                    <artifactId>mybatis</artifactId>
-                </exclusion>
-            </exclusions>
-        </dependency>
-        <dependency>
-            <groupId>org.mybatis</groupId>
-            <artifactId>mybatis-spring</artifactId>
-            <version>${mybatis-spring.version}</version>
-        </dependency>
-        <dependency>
-            <groupId>com.baomidou</groupId>
-            <artifactId>mybatis-plus-boot-starter</artifactId>
-            <version>${mybatis.plus.version}</version>
-        </dependency>
-        <dependency>
-            <groupId>com.baomidou</groupId>
-            <artifactId>mybatis-plus-extension</artifactId>
-            <version>${mybatis.plus.version}</version>
-        </dependency>
-        <!--   工具  -->
-        <dependency>
-            <groupId>org.apache.commons</groupId>
-            <artifactId>commons-lang3</artifactId>
-            <version>${commons-lang3.version}</version>
-        </dependency>
-        <dependency>
-            <groupId>org.apache.commons</groupId>
-            <artifactId>commons-collections4</artifactId>
-            <version>${commons-collections4.version}</version>
-        </dependency>
-        <dependency>
-            <groupId>commons-io</groupId>
-            <artifactId>commons-io</artifactId>
-            <version>${commons-io.version}</version>
-        </dependency>
-        <dependency>
-            <groupId>org.hibernate.validator</groupId>
-            <artifactId>hibernate-validator</artifactId>
-        </dependency>
-        <dependency>
-            <groupId>com.google.guava</groupId>
-            <artifactId>guava</artifactId>
-            <version>${guava.version}</version>
-        </dependency>
         <!--  jackson  -->
         <dependency>
             <groupId>com.fasterxml.jackson.core</groupId>
             <artifactId>jackson-core</artifactId>
-            <version>${jackson.core.version}</version>
+            <version>${jackson.version.core}</version>
         </dependency>
         <dependency>
             <groupId>com.fasterxml.jackson.core</groupId>
             <artifactId>jackson-databind</artifactId>
-            <version>${jackson.core.version}</version>
+            <version>${jackson.version.core}</version>
         </dependency>
         <dependency>
             <groupId>com.fasterxml.jackson.core</groupId>
             <artifactId>jackson-annotations</artifactId>
-            <version>${jackson.core.version}</version>
+            <version>${jackson.version.core}</version>
         </dependency>
         <dependency>
             <groupId>org.json</groupId>
@@ -148,60 +67,7 @@
         <dependency>
             <groupId>com.fasterxml.jackson.datatype</groupId>
             <artifactId>jackson-datatype-json-org</artifactId>
-            <version>${jackson.core.version}</version>
-        </dependency>
-        <!--  groovy  -->
-        <dependency>
-            <groupId>org.codehaus.groovy</groupId>
-            <artifactId>groovy-all</artifactId>
-            <type>pom</type>
-            <version>${groovy.version}</version>
-        </dependency>
-        <dependency>
-            <groupId>org.kohsuke</groupId>
-            <artifactId>groovy-sandbox</artifactId>
-            <version>1.19</version>
-        </dependency>
-        <!--  caffeine缓存  -->
-        <dependency>
-            <groupId>com.github.ben-manes.caffeine</groupId>
-            <artifactId>caffeine</artifactId>
-        </dependency>
-        <!-- 数据库 -->
-        <dependency>
-            <groupId>com.alibaba</groupId>
-            <artifactId>druid-spring-boot-starter</artifactId>
-            <version>${druid.version}</version>
-        </dependency>
-        <dependency>
-            <groupId>p6spy</groupId>
-            <artifactId>p6spy</artifactId>
-            <version>${p6spy.version}</version>
-        </dependency>
-        <dependency>
-            <groupId>mysql</groupId>
-            <artifactId>mysql-connector-java</artifactId>
-            <version>${mysql.version}</version>
-        </dependency>
-        <dependency>
-            <groupId>com.oracle.database.jdbc</groupId>
-            <artifactId>ojdbc8</artifactId>
-            <version>${ojdbc8.version}</version>
-        </dependency>
-        <dependency>
-            <groupId>org.postgresql</groupId>
-            <artifactId>postgresql</artifactId>
-            <version>${postgresql.version}</version>
-        </dependency>
-        <dependency>
-            <groupId>com.clickhouse</groupId>
-            <artifactId>clickhouse-jdbc</artifactId>
-            <version>${clickhouse.version}</version>
-        </dependency>
-        <dependency>
-            <groupId>com.squareup.okhttp3</groupId>
-            <artifactId>okhttp</artifactId>
-            <version>4.9.1</version>
+            <version>${jackson.version.core}</version>
         </dependency>
     </dependencies>
 </project>

+ 0 - 29
DataRoom/dataroom-core/src/main/java/com/gccloud/dataroom/core/module/chart/components/datasource/DataSetDataSource.java

@@ -50,35 +50,6 @@ public class DataSetDataSource extends BaseChartDataSource {
     @ApiModelProperty(notes = "服务端分页页长")
     private Integer pageSize;
 
-    /**
-     * 树组件的配置
-     * 懒加载时,需要配置treeNodeField、
-     */
-
-    @ApiModelProperty(notes = "是否懒加载树")
-    private boolean lazy = false;
-
-    @ApiModelProperty(notes = "子级列表字段,非懒加载时使用")
-    private String childrenField;
-
-    @ApiModelProperty(notes = "树节点显示字段, 用于树组件,树表组件可不填")
-    private String treeNodeField;
-
-    @ApiModelProperty(notes = "父节点字段所存储的字段")
-    private String parentIdValueField;
-
-    @ApiModelProperty(notes = "父节点字段参数")
-    private String parentIdParam;
-
-    @ApiModelProperty(notes = "父节点字段")
-    private String parentIdField;
-
-    @ApiModelProperty(notes = "是否有子节点字段")
-    private String hasChildrenField;
-
-    @ApiModelProperty(notes = "默认根节点的父节点ID的值,如果不设置则默认为0")
-    private String rootNodeParentIdValue;
-
     /**
      * 散点图特殊配置
      */

+ 10 - 11
DataRoom/dataroom-core/src/main/java/com/gccloud/dataroom/core/module/manage/controller/DataRoomPageController.java

@@ -8,7 +8,7 @@ import com.gccloud.dataroom.core.module.manage.dto.DataRoomSearchDTO;
 import com.gccloud.dataroom.core.module.manage.service.IDataRoomPageService;
 import com.gccloud.dataroom.core.module.manage.vo.StaticFileVO;
 import com.gccloud.dataroom.core.permission.Permission;
-import com.gccloud.dataroom.core.permission.ScreenPermission;
+import com.gccloud.common.permission.ApiPermission;
 import com.gccloud.dataroom.core.utils.Webjars;
 import com.gccloud.common.exception.GlobalException;
 import com.gccloud.common.utils.BeanConvertUtils;
@@ -45,7 +45,7 @@ public class DataRoomPageController {
     @Resource
     private DataRoomConfig bigScreenConfig;
 
-    @ScreenPermission(permissions = {Permission.Screen.VIEW})
+    @ApiPermission(permissions = {Permission.DataRoom.VIEW})
     @GetMapping("/info/code/{code}")
     @ApiOperation(value = "大屏页/组件详情", position = 10, produces = MediaType.APPLICATION_JSON_VALUE)
     public MixinsResp<DataRoomPageDTO> info(@PathVariable("code") String code) {
@@ -57,7 +57,7 @@ public class DataRoomPageController {
         return resp;
     }
 
-    @ScreenPermission(permissions = {Permission.Screen.VIEW})
+    @ApiPermission(permissions = {Permission.DataRoom.VIEW})
     @GetMapping("/page")
     @ApiOperation(value = "大屏/组件分页列表", position = 10, produces = MediaType.APPLICATION_JSON_VALUE)
     public MixinsResp<PageVO<PageEntity>> page(DataRoomSearchDTO searchDTO) {
@@ -68,7 +68,7 @@ public class DataRoomPageController {
     }
 
 
-    @ScreenPermission(permissions = {Permission.Screen.EDIT})
+    @ApiPermission(permissions = {Permission.DataRoom.ADD})
     @PostMapping("/add")
     @ApiOperation(value = "从空白新增大屏/组件", position = 20, produces = MediaType.APPLICATION_JSON_VALUE)
     public R<String> add(@RequestBody DataRoomPageDTO bigScreenPageDTO) {
@@ -80,7 +80,7 @@ public class DataRoomPageController {
         return R.success(bigScreenPageDTO.getCode());
     }
 
-    @ScreenPermission(permissions = {Permission.Screen.EDIT})
+    @ApiPermission(permissions = {Permission.DataRoom.UPDATE})
     @PostMapping("/update")
     @ApiOperation(value = "修改大屏/组件", position = 30, produces = MediaType.APPLICATION_JSON_VALUE)
     public R<String> update(@RequestBody DataRoomPageDTO bigScreenPageDTO) {
@@ -92,7 +92,7 @@ public class DataRoomPageController {
         return R.success(bigScreenPageDTO.getCode());
     }
 
-    @ScreenPermission(permissions = {Permission.Screen.DELETE})
+    @ApiPermission(permissions = {Permission.DataRoom.DELETE})
     @PostMapping("/delete/{code}")
     @ApiOperation(value = "删除大屏/组件", position = 40, produces = MediaType.APPLICATION_JSON_VALUE)
     public R<Void> delete(@PathVariable String code) {
@@ -104,7 +104,7 @@ public class DataRoomPageController {
         return R.success();
     }
 
-    @ScreenPermission(permissions = {Permission.Screen.EDIT})
+    @ApiPermission(permissions = {Permission.DataRoom.ADD})
     @PostMapping("/copy/{code}")
     @ApiOperation(value = "复制大屏/组件", position = 50, produces = MediaType.APPLICATION_JSON_VALUE)
     public R<String> copy(@PathVariable String code) {
@@ -116,7 +116,7 @@ public class DataRoomPageController {
         return R.success(newCode);
     }
 
-    @ScreenPermission(permissions = {Permission.Screen.EDIT})
+    @ApiPermission(permissions = {Permission.DataRoom.ADD})
     @PostMapping("/add/template")
     @ApiOperation(value = "从模板新增大屏页", position = 20, produces = MediaType.APPLICATION_JSON_VALUE)
     public R<String> addByTemplate(@RequestBody DataRoomPageDTO bigScreenPageDTO) {
@@ -127,7 +127,6 @@ public class DataRoomPageController {
         return R.success(code);
     }
 
-    @ScreenPermission(permissions = {Permission.Screen.TEMPLATE_VIEW})
     @PostMapping("/get/template")
     @ApiOperation(value = "根据模板获取配置", position = 20, produces = MediaType.APPLICATION_JSON_VALUE)
     public MixinsResp<DataRoomPageDTO> getByTemplate(@RequestBody DataRoomPageDTO bigScreenPageDTO) {
@@ -138,7 +137,7 @@ public class DataRoomPageController {
     }
 
 
-    @ScreenPermission
+    @ApiPermission
     @GetMapping("/bg/list")
     @ApiOperation(value = "背景图片列表", position = 60, produces = MediaType.APPLICATION_JSON_VALUE)
     public R<List<StaticFileVO>> getBgList() {
@@ -154,7 +153,7 @@ public class DataRoomPageController {
         return R.success(bgList);
     }
 
-    @ScreenPermission
+    @ApiPermission
     @GetMapping("/map/list/{level}")
     @ApiOperation(value = "地图数据列表", position = 60, produces = MediaType.APPLICATION_JSON_VALUE)
     public R<List<StaticFileVO>> getMapJsonList(@PathVariable("level") String level) {

+ 0 - 8
DataRoom/dataroom-core/src/main/java/com/gccloud/dataroom/core/module/template/controller/PageTemplateController.java

@@ -6,8 +6,6 @@ import com.gccloud.dataroom.core.module.template.dto.PageTemplateSearchDTO;
 import com.gccloud.dataroom.core.module.template.entity.PageTemplateEntity;
 import com.gccloud.dataroom.core.module.template.service.IPageTemplateService;
 import com.gccloud.dataroom.core.module.template.vo.PageTemplateVO;
-import com.gccloud.dataroom.core.permission.Permission;
-import com.gccloud.dataroom.core.permission.ScreenPermission;
 import com.gccloud.common.controller.SuperController;
 import com.gccloud.common.utils.BeanConvertUtils;
 import com.gccloud.common.validator.ValidatorUtils;
@@ -47,7 +45,6 @@ public class PageTemplateController extends SuperController {
      * @param searchDTO
      * @return
      */
-    @ScreenPermission(permissions = {Permission.Screen.TEMPLATE_VIEW})
     @GetMapping("/page")
     @ApiOperation(value = "分页查询", position = 10, notes = "分页查询列表", produces = MediaType.APPLICATION_JSON_VALUE)
     @ApiImplicitParams({@ApiImplicitParam(name = "current", value = "页码", paramType = "query", required = true, dataType = "int"), @ApiImplicitParam(name = "size", value = "每页条数", paramType = "query", required = true, dataType = "int"), @ApiImplicitParam(name = "searchKey", value = "查询条件", paramType = "query", dataType = "string")})
@@ -68,7 +65,6 @@ public class PageTemplateController extends SuperController {
      * @param searchDTO
      * @return
      */
-    @ScreenPermission(permissions = {Permission.Screen.TEMPLATE_VIEW})
     @GetMapping("/list")
     @ApiOperation(value = "列表查询", position = 10, notes = "查询列表", produces = MediaType.APPLICATION_JSON_VALUE)
     public R<List<PageTemplateVO>> getList(@ApiParam(name = "查询", value = "传入查询的业务条件", required = true) PageTemplateSearchDTO searchDTO) {
@@ -88,7 +84,6 @@ public class PageTemplateController extends SuperController {
      * @param id
      * @return
      */
-    @ScreenPermission(permissions = {Permission.Screen.TEMPLATE_VIEW})
     @GetMapping("/info/{id}")
     @ApiOperation(value = "详情", position = 20, notes = "获取详情", produces = MediaType.APPLICATION_JSON_VALUE)
     public R<PageTemplateVO> getById(@ApiParam(name = "id", value = "传入String格式", required = true) @PathVariable("id") String id) {
@@ -103,7 +98,6 @@ public class PageTemplateController extends SuperController {
      * @param pageTemplateDTO
      * @return
      */
-    @ScreenPermission(permissions = {Permission.Screen.TEMPLATE_EDIT})
     @PostMapping("/add")
     @ApiOperation(value = "新增", position = 30, notes = "新增数据", produces = MediaType.APPLICATION_JSON_VALUE)
     public R<String> add(@ApiParam(name = "新增对象", value = "传入json格式", required = true) @RequestBody PageTemplateDTO pageTemplateDTO) {
@@ -119,7 +113,6 @@ public class PageTemplateController extends SuperController {
      * @param pageTemplateDTO
      * @return
      */
-    @ScreenPermission(permissions = {Permission.Screen.TEMPLATE_EDIT})
     @PostMapping("/update")
     @ApiOperation(value = "更新", position = 40, notes = "更新数据", consumes = MediaType.APPLICATION_JSON_VALUE, produces = MediaType.APPLICATION_JSON_VALUE)
     public R<Void> update(@ApiParam(name = "更新对象", value = "传入json格式", required = true) @RequestBody PageTemplateDTO pageTemplateDTO) {
@@ -136,7 +129,6 @@ public class PageTemplateController extends SuperController {
      * @param idList
      * @return
      */
-    @ScreenPermission(permissions = {Permission.Screen.TEMPLATE_DELETE})
     @PostMapping("/delete")
     @ApiOperation(value = "删除", position = 50, notes = "删除", produces = MediaType.APPLICATION_JSON_VALUE)
     public R<Void> deleteById(@ApiParam(name = "id列表", value = "传入id列表", required = true) @RequestBody List<String> idList) {

+ 6 - 8
DataRoom/dataroom-core/src/main/java/com/gccloud/dataroom/core/permission/DataRoomPermissionClient.java

@@ -16,15 +16,13 @@ public class DataRoomPermissionClient {
     @Autowired(required = false)
     private IDataRoomPermissionService tokenService;
 
-    public boolean verifyApiPermission(HttpServletRequest request, String... permissions) {
-        boolean verify = true;
-        if (tokenService != null) {
-            verify = tokenService.verifyApiPermission(request, permissions);
-        }
-        return verify;
-    }
-
 
+    /**
+     * 校验大屏页面访问权限
+     * @param request 请求
+     * @param pageCode 页面编码
+     * @return 是否有权限
+     */
     public boolean verifyDataPermission(HttpServletRequest request, String pageCode) {
         boolean verify = true;
         if (tokenService != null) {

+ 0 - 9
DataRoom/dataroom-core/src/main/java/com/gccloud/dataroom/core/permission/IDataRoomPermissionService.java

@@ -10,15 +10,6 @@ import javax.servlet.http.HttpServletRequest;
  */
 public interface IDataRoomPermissionService {
 
-    /**
-     * 校验接口权限
-     * @param request
-     * @param permission
-     * @return
-     */
-    boolean verifyApiPermission(HttpServletRequest request, String... permission);
-
-
     /**
      * 校验大屏页面数据访问权限
      * @param request

+ 0 - 61
DataRoom/dataroom-core/src/main/java/com/gccloud/dataroom/core/permission/LoginRequiredAspect.java

@@ -1,61 +0,0 @@
-package com.gccloud.dataroom.core.permission;
-
-import com.gccloud.common.exception.GlobalException;
-import lombok.extern.slf4j.Slf4j;
-import org.aspectj.lang.JoinPoint;
-import org.aspectj.lang.annotation.AfterThrowing;
-import org.aspectj.lang.annotation.Aspect;
-import org.aspectj.lang.annotation.Before;
-import org.aspectj.lang.reflect.MethodSignature;
-import org.springframework.stereotype.Component;
-import org.springframework.web.context.request.RequestContextHolder;
-import org.springframework.web.context.request.ServletRequestAttributes;
-
-import javax.annotation.Resource;
-import javax.servlet.http.HttpServletRequest;
-import java.lang.reflect.Method;
-import java.util.Objects;
-
-/**
- * @author hongyang
- * @version 1.0
- * @date 2023/5/15 10:51
- */
-@Slf4j
-@Aspect
-@Component("dataRoomLoginRequiredAspect")
-public class LoginRequiredAspect {
-    @Resource
-    private DataRoomPermissionClient tokenClient;
-
-    @Before("@annotation(loginRequired) || @within(loginRequired)")
-    public void doBefore(JoinPoint joinPoint, ScreenPermission loginRequired) {
-        // 获取request
-        HttpServletRequest request = ((ServletRequestAttributes) Objects.requireNonNull(RequestContextHolder.getRequestAttributes())).getRequest();
-        // 判断方法所属的类是否标记了该注解
-        Class<?> targetClass = joinPoint.getTarget().getClass();
-        ScreenPermission classAnnotation = targetClass.getAnnotation(ScreenPermission.class);
-        boolean classRequired = (classAnnotation != null && classAnnotation.required());
-        // 判断方法是否标记了该注解
-        MethodSignature signature = (MethodSignature) joinPoint.getSignature();
-        Method method = signature.getMethod();
-        ScreenPermission methodAnnotation = method.getAnnotation(ScreenPermission.class);
-        boolean methodRequired = (methodAnnotation != null && methodAnnotation.required());
-        // 判断是否需要登录权限,就近原则,方法上有优先方法上的,方法上没有则使用类上的
-        boolean required = methodRequired || classRequired;
-        if (required) {
-            // 获取权限
-            String[] permissions = methodAnnotation != null ? methodAnnotation.permissions() : classAnnotation.permissions();
-            // 校验token
-            boolean verify = tokenClient.verifyApiPermission(request, permissions);
-            if (!verify) {
-                throw new GlobalException("请求权限不足");
-            }
-        }
-    }
-
-    @AfterThrowing(pointcut = "@annotation(loginRequired) || @within(loginRequired)")
-    public void doAfterThrowing(JoinPoint joinPoint, ScreenPermission loginRequired) {
-        // 记录日志等操作
-    }
-}

+ 10 - 73
DataRoom/dataroom-core/src/main/java/com/gccloud/dataroom/core/permission/Permission.java

@@ -1,16 +1,18 @@
 package com.gccloud.dataroom.core.permission;
 
+import com.gccloud.dataset.constant.DatasetConstant;
+
 /**
  * @author hongyang
  * @version 1.0
  * @date 2023/5/15 17:08
  */
-public interface Permission {
+public interface Permission extends DatasetConstant.Permission {
 
     /**
      * 大屏页面的权限
      */
-    interface Screen {
+    interface DataRoom {
 
         /**
          * 大屏页面/组件的查询接口权限
@@ -18,85 +20,20 @@ public interface Permission {
         String VIEW = "screen:view";
 
         /**
-         * 大屏页面/组件的编辑接口权限
-         */
-        String EDIT = "screen:edit";
-
-        /**
-         * 大屏页面/组件的删除接口权限
-         */
-        String DELETE = "screen:delete";
-
-
-        /**
-         * 大屏页面模板的查询接口权限
-         */
-        String TEMPLATE_VIEW = "screen:template:view";
-
-        /**
-         * 大屏页面模板的编辑接口权限
-         */
-        String TEMPLATE_EDIT = "screen:template:edit";
-
-        /**
-         * 大屏页面模板的删除接口权限
-         */
-        String TEMPLATE_DELETE = "screen:template:delete";
-
-
-    }
-
-    interface DataSource {
-
-        /**
-         * 数据源的查询接口权限
+         * 大屏页面/组件的新增接口权限
          */
-        String VIEW = "dataSource:view";
+        String ADD = "screen:add";
 
         /**
-         * 数据源的编辑接口权限
-         */
-        String EDIT = "dataSource:edit";
-
-        /**
-         * 数据源的删除接口权限
-         */
-        String DELETE = "dataSource:delete";
-
-        /**
-         * 数据源的测试接口权限
-         */
-        String TEST = "dataSource:test";
-
-    }
-
-    interface DataSet {
-
-        /**
-         * 数据集的分类树查询接口权限
-         */
-        String CATEGORY = "dataSet:category";
-
-        /**
-         * 数据集的查询接口权限
-         */
-        String VIEW = "dataSet:view";
-
-        /**
-         * 数据集的编辑接口权限
+         * 大屏页面/组件的编辑接口权限
          */
-        String EDIT = "dataSet:edit";
+        String UPDATE = "screen:update";
 
         /**
-         * 数据集的删除接口权限
+         * 大屏页面/组件的删除接口权限
          */
-        String DELETE = "dataSet:delete";
+        String DELETE = "screen:delete";
 
-        /**
-         * 数据集的执行(获取数据)接口权限
-         */
-        String EXECUTE = "dataSet:execute";
 
     }
-
 }

+ 0 - 20
DataRoom/dataroom-core/src/main/java/com/gccloud/dataroom/core/permission/ScreenPermission.java

@@ -1,20 +0,0 @@
-package com.gccloud.dataroom.core.permission;
-
-import java.lang.annotation.ElementType;
-import java.lang.annotation.Retention;
-import java.lang.annotation.RetentionPolicy;
-import java.lang.annotation.Target;
-
-/**
- * @author hongyang
- * @version 1.0
- * @date 2023/5/15 10:51
- */
-@Target({ElementType.METHOD, ElementType.TYPE})
-@Retention(RetentionPolicy.RUNTIME)
-public @interface ScreenPermission {
-
-    boolean required() default true;
-
-    String[] permissions() default {};
-}

+ 4 - 3
DataRoom/pom.xml

@@ -50,16 +50,17 @@
         <hanlp.version>portable-1.7.8</hanlp.version>
         <hutool.version>5.3.1</hutool.version>
         <guava.version>20.0</guava.version>
-        <jackson.core.version>2.13.3</jackson.core.version>
+        <jackson.version.core>2.13.3</jackson.version.core>
         <json.version>20220320</json.version>
         <druid.version>1.2.11</druid.version>
         <p6spy.version>3.9.0</p6spy.version>
-        <ojdbc8.version>12.2.0.1</ojdbc8.version>
+        <oracle-database.version>12.2.0.1</oracle-database.version>
         <mysql.version>5.1.49</mysql.version>
         <postgresql.version>42.3.3</postgresql.version>
         <clickhouse.version>0.3.2</clickhouse.version>
         <commons-io.version>2.2</commons-io.version>
-        <dataset.core.version>0.0.1.2023071001.Alpha</dataset.core.version>
+        <okhttp3.version>4.9.1</okhttp3.version>
+        <dataset.core.version>0.0.1.2023071101.Alpha</dataset.core.version>
     </properties>
 
     <dependencyManagement>

+ 6 - 0
data-room-ui/packages/js/store/mutations.js

@@ -250,6 +250,12 @@ export default {
         state.pageInfo.chartList = _.cloneDeep(currentStore?.chartList || [])
       }
     }
+    state.pageInfo.chartList = state.pageInfo.chartList.map(chart => {
+      return {
+        ...chart,
+        key: chart.code + new Date().getTime()
+      }
+    })
   },
   clearTimeline (state) {
     // 最后一个状态