From 730365d1c482619b26b82d3bd4f1334e8cb6e2de Mon Sep 17 00:00:00 2001 From: root <13910913995@163.com> Date: Sun, 22 Jun 2025 11:04:51 +0800 Subject: [PATCH] =?UTF-8?q?=E6=9B=B4=E6=96=B0=E4=BA=86api-base=E6=A8=A1?= =?UTF-8?q?=E5=9D=97?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- sdk/api/api-base/pom.xml | 6 +-- .../java/io/gisbi/api/chart/ChartViewApi.java | 9 ++-- .../gisbi/api/chart/dto/ViewDetailField.java | 2 +- .../api/chart/request/ChartExcelRequest.java | 2 +- .../chart/request/ThresholdCheckRequest.java | 2 + .../io/gisbi/api/dataset/DatasetTreeApi.java | 4 +- .../api/dataset/dto/DataSetExportRequest.java | 1 + .../gisbi/api/dataset/dto/PreviewSqlDTO.java | 1 + .../dataset/union/DatasetGroupInfoDTO.java | 2 + .../api/dataset/vo/CoreDatasetGroupVO.java | 5 ++ .../dataset/vo/CoreDatasetTableFieldVO.java | 4 +- .../io/gisbi/api/dataset/vo/DataSetBarVO.java | 2 + .../java/io/gisbi/api/ds/DatasourceApi.java | 12 ++++- .../io/gisbi/api/ds/DatasourceDriverApi.java | 10 ++++ .../main/java/io/gisbi/api/ds/EngineApi.java | 6 +++ .../api/exportCenter/ExportCenterApi.java | 34 ++++++++---- .../java/io/gisbi/api/font/api/FontApi.java | 1 + .../main/java/io/gisbi/api/free/FreeApi.java | 2 + .../java/io/gisbi/api/report/ReportApi.java | 2 + .../api/report/dto/ReportExportRequest.java | 13 ++--- .../report/dto/ReportInstanceMsgRequest.java | 6 ++- .../io/gisbi/api/system/SysParameterApi.java | 4 ++ .../api/system/request/OnlineMapEditor.java | 2 + .../request/TemplateManageBatchRequest.java | 1 + .../io/gisbi/api/threshold/ThresholdApi.java | 16 +++--- .../api/threshold/dto/ThresholdCreator.java | 3 ++ .../threshold/dto/ThresholdGridRequest.java | 3 ++ .../dto/ThresholdPreviewRequest.java | 3 ++ .../threshold/dto/ThresholdSwitchRequest.java | 3 ++ .../visualization/DataVisualizationApi.java | 13 ++++- .../api/visualization/StaticResourceApi.java | 3 -- .../VisualizationLinkJumpApi.java | 4 +- .../VisualizationLinkageApi.java | 4 +- .../VisualizationOuterParamsApi.java | 10 ++-- .../VisualizationWatermarkApi.java | 7 +++ .../dto/VisualizationLinkJumpInfoDTO.java | 3 ++ .../request/DataVisualizationBaseRequest.java | 16 +++++- .../VisualizationLinkJumpBaseRequest.java | 3 ++ .../request/VisualizationLinkageRequest.java | 2 + .../vo/AppCoreDatasetGroupVO.java | 5 ++ .../vo/AppCoreDatasetTableFieldVO.java | 4 +- .../visualization/vo/DataVisualizationVO.java | 6 ++- .../vo/VisualizationExport2AppVO.java | 1 - .../vo/VisualizationStoreVO.java | 3 ++ .../appearance/api/XpackAppearanceApi.java | 7 +++ .../api/xpack/dataFilling/DataFillingApi.java | 52 +++++++++++++++++-- .../xpack/dataFilling/dto/DfCommitLog.java | 2 + .../xpack/dataFilling/dto/DfUserTaskVo.java | 1 + .../io/gisbi/api/xpack/plugin/PluginApi.java | 5 ++ .../settings/XpackAuthenticationApi.java | 15 +++++- .../api/xpack/settings/XpackOauth2Api.java | 2 + .../api/xpack/settings/vo/XpackOauth2VO.java | 2 + .../api/xpack/share/vo/XpackShareGridVO.java | 2 + sdk/api/pom.xml | 4 +- 54 files changed, 276 insertions(+), 61 deletions(-) diff --git a/sdk/api/api-base/pom.xml b/sdk/api/api-base/pom.xml index 5a1de63..7be4969 100644 --- a/sdk/api/api-base/pom.xml +++ b/sdk/api/api-base/pom.xml @@ -5,7 +5,7 @@ api io.gisbi - 1.0.0 + 2.0.0 @@ -15,13 +15,13 @@ io.gisbi extensions-view - 1.0.0 + 2.0.0 compile io.gisbi extensions-datafilling - 1.0.0 + 2.0.0 compile diff --git a/sdk/api/api-base/src/main/java/io/gisbi/api/chart/ChartViewApi.java b/sdk/api/api-base/src/main/java/io/gisbi/api/chart/ChartViewApi.java index 436402d..afa691d 100644 --- a/sdk/api/api-base/src/main/java/io/gisbi/api/chart/ChartViewApi.java +++ b/sdk/api/api-base/src/main/java/io/gisbi/api/chart/ChartViewApi.java @@ -38,8 +38,8 @@ public interface ChartViewApi { String checkSameDataSet(@PathVariable String viewIdSource, @PathVariable String viewIdTarget); @Operation(summary = "查询图表详情") - @PostMapping("getDetail/{id}") - ChartViewDTO getDetail(@PathVariable Long id); + @PostMapping("getDetail/{id}/{resourceTable}") + ChartViewDTO getDetail(@PathVariable Long id, @PathVariable String resourceTable); @Operation(summary = "查询仪表板下视图项") @GetMapping("/viewOption/{resourceId}") @@ -57,6 +57,7 @@ public interface ChartViewApi { @PostMapping("deleteFieldByChart/{chartId}") void deleteFieldByChart(@PathVariable Long chartId); - @GetMapping("/chartBaseInfo/{id}") - ChartBaseVO chartBaseInfo(@PathVariable("id") Long id); + @Operation(summary = "视图头部信息") + @GetMapping("/chartBaseInfo/{id}/{resourceTable}") + ChartBaseVO chartBaseInfo(@PathVariable("id") Long id, @PathVariable String resourceTable); } diff --git a/sdk/api/api-base/src/main/java/io/gisbi/api/chart/dto/ViewDetailField.java b/sdk/api/api-base/src/main/java/io/gisbi/api/chart/dto/ViewDetailField.java index cbcfa79..3cd9a11 100644 --- a/sdk/api/api-base/src/main/java/io/gisbi/api/chart/dto/ViewDetailField.java +++ b/sdk/api/api-base/src/main/java/io/gisbi/api/chart/dto/ViewDetailField.java @@ -9,7 +9,7 @@ public class ViewDetailField implements Serializable { private String name; - private String dataeaseName; + private String gisbiName; private Integer deType; } diff --git a/sdk/api/api-base/src/main/java/io/gisbi/api/chart/request/ChartExcelRequest.java b/sdk/api/api-base/src/main/java/io/gisbi/api/chart/request/ChartExcelRequest.java index 37600d0..0c033cc 100644 --- a/sdk/api/api-base/src/main/java/io/gisbi/api/chart/request/ChartExcelRequest.java +++ b/sdk/api/api-base/src/main/java/io/gisbi/api/chart/request/ChartExcelRequest.java @@ -27,7 +27,7 @@ public class ChartExcelRequest extends ChartExcelRequestInner { private List multiInfo; - private boolean dataEaseBi = false; + private boolean gisbiBi = false; private String downloadType; diff --git a/sdk/api/api-base/src/main/java/io/gisbi/api/chart/request/ThresholdCheckRequest.java b/sdk/api/api-base/src/main/java/io/gisbi/api/chart/request/ThresholdCheckRequest.java index 83aeff8..3c3af4c 100644 --- a/sdk/api/api-base/src/main/java/io/gisbi/api/chart/request/ThresholdCheckRequest.java +++ b/sdk/api/api-base/src/main/java/io/gisbi/api/chart/request/ThresholdCheckRequest.java @@ -15,4 +15,6 @@ public class ThresholdCheckRequest implements Serializable { private String thresholdRules; private String thresholdTemplate; + + private String resourceTable; } diff --git a/sdk/api/api-base/src/main/java/io/gisbi/api/dataset/DatasetTreeApi.java b/sdk/api/api-base/src/main/java/io/gisbi/api/dataset/DatasetTreeApi.java index 0b58879..e3fc5ce 100644 --- a/sdk/api/api-base/src/main/java/io/gisbi/api/dataset/DatasetTreeApi.java +++ b/sdk/api/api-base/src/main/java/io/gisbi/api/dataset/DatasetTreeApi.java @@ -13,6 +13,7 @@ import io.gisbi.model.BusiNodeRequest; import io.gisbi.model.BusiNodeVO; import io.swagger.v3.oas.annotations.Operation; import io.swagger.v3.oas.annotations.tags.Tag; +import jakarta.servlet.http.HttpServletResponse; import org.springframework.web.bind.annotation.GetMapping; import org.springframework.web.bind.annotation.PathVariable; import org.springframework.web.bind.annotation.PostMapping; @@ -61,6 +62,7 @@ public interface DatasetTreeApi { @PostMapping("move") DatasetNodeDTO move(@RequestBody DatasetGroupInfoDTO dto) throws Exception; + @Operation(summary = "是否有仪表板、大屏正在使用此数据集") @DePermit({"#p0+':manage'"}) @PostMapping("perDelete/{id}") boolean perDelete(@PathVariable("id") Long id); @@ -101,5 +103,5 @@ public interface DatasetTreeApi { @DePermit(value = {"#p0.id+':export'"}) @Operation(summary = "数据集导出") @PostMapping("/exportDataset") - void exportDataset(@RequestBody DataSetExportRequest request) throws Exception; + void exportDataset(@RequestBody DataSetExportRequest request, HttpServletResponse response) throws Exception; } diff --git a/sdk/api/api-base/src/main/java/io/gisbi/api/dataset/dto/DataSetExportRequest.java b/sdk/api/api-base/src/main/java/io/gisbi/api/dataset/dto/DataSetExportRequest.java index ee124b3..749e2d3 100644 --- a/sdk/api/api-base/src/main/java/io/gisbi/api/dataset/dto/DataSetExportRequest.java +++ b/sdk/api/api-base/src/main/java/io/gisbi/api/dataset/dto/DataSetExportRequest.java @@ -9,4 +9,5 @@ import lombok.Data; public class DataSetExportRequest extends DatasetNodeDTO { private String filename; private String expressionTree; + private boolean gisbiBi; } diff --git a/sdk/api/api-base/src/main/java/io/gisbi/api/dataset/dto/PreviewSqlDTO.java b/sdk/api/api-base/src/main/java/io/gisbi/api/dataset/dto/PreviewSqlDTO.java index cb80102..f5ecafa 100644 --- a/sdk/api/api-base/src/main/java/io/gisbi/api/dataset/dto/PreviewSqlDTO.java +++ b/sdk/api/api-base/src/main/java/io/gisbi/api/dataset/dto/PreviewSqlDTO.java @@ -11,4 +11,5 @@ public class PreviewSqlDTO { private String sql; private Long datasourceId; private String sqlVariableDetails; + private Boolean isCross; } diff --git a/sdk/api/api-base/src/main/java/io/gisbi/api/dataset/union/DatasetGroupInfoDTO.java b/sdk/api/api-base/src/main/java/io/gisbi/api/dataset/union/DatasetGroupInfoDTO.java index 5ccaa66..4851225 100644 --- a/sdk/api/api-base/src/main/java/io/gisbi/api/dataset/union/DatasetGroupInfoDTO.java +++ b/sdk/api/api-base/src/main/java/io/gisbi/api/dataset/union/DatasetGroupInfoDTO.java @@ -30,4 +30,6 @@ public class DatasetGroupInfoDTO extends DatasetNodeDTO { private String creator; private String updater; + + private Boolean isCross; } diff --git a/sdk/api/api-base/src/main/java/io/gisbi/api/dataset/vo/CoreDatasetGroupVO.java b/sdk/api/api-base/src/main/java/io/gisbi/api/dataset/vo/CoreDatasetGroupVO.java index 0b889f2..c37b3e2 100644 --- a/sdk/api/api-base/src/main/java/io/gisbi/api/dataset/vo/CoreDatasetGroupVO.java +++ b/sdk/api/api-base/src/main/java/io/gisbi/api/dataset/vo/CoreDatasetGroupVO.java @@ -88,6 +88,11 @@ public class CoreDatasetGroupVO implements Serializable { */ private String unionSql; + /** + * 是否跨源 + */ + private Boolean isCross; + private List datasetFields = new ArrayList<>(); private List datasetViews = new ArrayList<>(); diff --git a/sdk/api/api-base/src/main/java/io/gisbi/api/dataset/vo/CoreDatasetTableFieldVO.java b/sdk/api/api-base/src/main/java/io/gisbi/api/dataset/vo/CoreDatasetTableFieldVO.java index 13266da..be1ad40 100644 --- a/sdk/api/api-base/src/main/java/io/gisbi/api/dataset/vo/CoreDatasetTableFieldVO.java +++ b/sdk/api/api-base/src/main/java/io/gisbi/api/dataset/vo/CoreDatasetTableFieldVO.java @@ -60,7 +60,7 @@ public class CoreDatasetTableFieldVO implements Serializable { /** * de字段名用作唯一标识 */ - private String dataeaseName; + private String gisbiName; /** * de字段别名 @@ -80,7 +80,7 @@ public class CoreDatasetTableFieldVO implements Serializable { private Integer size; /** - * dataease字段类型:0-文本,1-时间,2-整型数值,3-浮点数值,4-布尔,5-地理位置,6-二进制 + * gisbi字段类型:0-文本,1-时间,2-整型数值,3-浮点数值,4-布尔,5-地理位置,6-二进制 */ private Integer deType; diff --git a/sdk/api/api-base/src/main/java/io/gisbi/api/dataset/vo/DataSetBarVO.java b/sdk/api/api-base/src/main/java/io/gisbi/api/dataset/vo/DataSetBarVO.java index c2d4de9..e48f8e6 100644 --- a/sdk/api/api-base/src/main/java/io/gisbi/api/dataset/vo/DataSetBarVO.java +++ b/sdk/api/api-base/src/main/java/io/gisbi/api/dataset/vo/DataSetBarVO.java @@ -34,4 +34,6 @@ public class DataSetBarVO implements Serializable { private String updater; private List datasourceDTOList; + + private Boolean isCross; } diff --git a/sdk/api/api-base/src/main/java/io/gisbi/api/ds/DatasourceApi.java b/sdk/api/api-base/src/main/java/io/gisbi/api/ds/DatasourceApi.java index 26e885a..a6def13 100644 --- a/sdk/api/api-base/src/main/java/io/gisbi/api/ds/DatasourceApi.java +++ b/sdk/api/api-base/src/main/java/io/gisbi/api/ds/DatasourceApi.java @@ -18,6 +18,7 @@ import io.swagger.v3.oas.annotations.tags.Tag; import org.springframework.web.bind.annotation.*; import org.springframework.web.multipart.MultipartFile; +import java.io.IOException; import java.util.List; import java.util.Map; @@ -126,13 +127,18 @@ public interface DatasourceApi { @Operation(summary = "获取表") List getTables(@RequestBody DatasetTableDTO datasetTableDTO) throws DEException; + @DePermit({"#p0.datasourceId+':read'"}) + @PostMapping("getTableStatus") + @Operation(summary = "获取数据表更新状态") + List getTableStatus(@RequestBody DatasetTableDTO datasetTableDTO) throws DEException; + @PostMapping("/checkApiDatasource") @Operation(summary = "校验API数据源") ApiDefinition checkApiDatasource(@RequestBody Map data) throws DEException; @PostMapping("/uploadFile") @Operation(summary = "上传文件") - ExcelFileData excelUpload(@RequestParam("file") MultipartFile file, @RequestParam("id") long datasourceId, @RequestParam("editType") Integer editType) throws DEException; + ExcelFileData uploadFile(@RequestParam("file") MultipartFile file, @RequestParam("id") long datasourceId, @RequestParam("editType") Integer editType) throws DEException; @PostMapping("/previewData") @Operation(summary = "预览数据") @@ -166,4 +172,8 @@ public interface DatasourceApi { @PostMapping("/multidimensionalTables") @Operation(summary = "获取多维表格列表") List> multidimensionalTables(@RequestBody Map data) throws DEException; + + @PostMapping("/loadRemoteFile") + @Operation(summary = "加载文件") + ExcelFileData loadRemoteFile(@RequestBody RemoteExcelRequest remoteExcelRequeste) throws DEException, IOException; } diff --git a/sdk/api/api-base/src/main/java/io/gisbi/api/ds/DatasourceDriverApi.java b/sdk/api/api-base/src/main/java/io/gisbi/api/ds/DatasourceDriverApi.java index ba1e076..c17f6ac 100644 --- a/sdk/api/api-base/src/main/java/io/gisbi/api/ds/DatasourceDriverApi.java +++ b/sdk/api/api-base/src/main/java/io/gisbi/api/ds/DatasourceDriverApi.java @@ -5,6 +5,7 @@ import com.github.xiaoymin.knife4j.annotations.ApiSupport; import io.gisbi.api.ds.vo.DriveDTO; import io.gisbi.api.ds.vo.DriveJarDTO; import io.gisbi.extensions.datasource.dto.DatasourceDTO; +import io.swagger.v3.oas.annotations.Operation; import io.swagger.v3.oas.annotations.tags.Tag; import org.springframework.web.bind.annotation.*; import org.springframework.web.multipart.MultipartFile; @@ -18,30 +19,39 @@ public interface DatasourceDriverApi { * @param keyWord 过滤关键字 * @return */ + @Operation(summary = "查询数据源树", hidden = true) @GetMapping("/query/{keyWord}") List query(@PathVariable("keyWord") String keyWord); + @Operation(summary = "列表") @GetMapping("/list") List list(); + @Operation(summary = "根据数据源类型获取") @GetMapping("/list/{dsType}") List listByDsType(@PathVariable("dsType") String dsType); + @Operation(summary = "保存") @PostMapping("/save") DriveDTO save(@RequestBody DriveDTO datasourceDrive); + @Operation(summary = "更新") @PostMapping("/update") DriveDTO update(@RequestBody DriveDTO datasourceDrive); + @Operation(summary = "删除") @PostMapping("/delete/{driverId}") void delete(@PathVariable("driverId") String driverId); + @Operation(summary = "获取驱动jar列表") @GetMapping("/listDriverJar/{driverId}") List listDriverJar(@PathVariable("driverId") String driverId); + @Operation(summary = "删除驱动jar") @PostMapping("/deleteDriverJar/{jarId}") void deleteDriverJar(@PathVariable("jarId") String jarId); + @Operation(summary = "上传驱动jar") @PostMapping("/uploadJar") DriveJarDTO uploadJar(@RequestParam("deDriverId") String deDriverId, @RequestParam("jarFile") MultipartFile jarFile) throws Exception; } diff --git a/sdk/api/api-base/src/main/java/io/gisbi/api/ds/EngineApi.java b/sdk/api/api-base/src/main/java/io/gisbi/api/ds/EngineApi.java index 00aef8c..92f3b4b 100644 --- a/sdk/api/api-base/src/main/java/io/gisbi/api/ds/EngineApi.java +++ b/sdk/api/api-base/src/main/java/io/gisbi/api/ds/EngineApi.java @@ -3,6 +3,7 @@ package io.gisbi.api.ds; import com.github.xiaoymin.knife4j.annotations.ApiSupport; import io.gisbi.auth.DeApiPath; import io.gisbi.extensions.datasource.dto.DatasourceDTO; +import io.swagger.v3.oas.annotations.Operation; import io.swagger.v3.oas.annotations.tags.Tag; import org.springframework.web.bind.annotation.*; @@ -13,18 +14,23 @@ import static io.gisbi.constant.AuthResourceEnum.DATASOURCE; @DeApiPath(value = "/engine", rt = DATASOURCE) public interface EngineApi { + @Operation(summary = "查询") @GetMapping("/getEngine") DatasourceDTO getEngine(); + @Operation(summary = "保存") @PostMapping("/save") void save(@RequestBody DatasourceDTO datasourceDTO); + @Operation(summary = "校验") @PostMapping("/validate") void validate(@RequestBody DatasourceDTO datasourceDTO) throws Exception; + @Operation(summary = "根据ID校验") @PostMapping("/validate/{id}") void validateById(@PathVariable Long id) throws Exception; + @Operation(summary = "是否支持设置主键") @GetMapping("/supportSetKey") boolean supportSetKey() throws Exception; } diff --git a/sdk/api/api-base/src/main/java/io/gisbi/api/exportCenter/ExportCenterApi.java b/sdk/api/api-base/src/main/java/io/gisbi/api/exportCenter/ExportCenterApi.java index 1e6f7f2..2b4324c 100644 --- a/sdk/api/api-base/src/main/java/io/gisbi/api/exportCenter/ExportCenterApi.java +++ b/sdk/api/api-base/src/main/java/io/gisbi/api/exportCenter/ExportCenterApi.java @@ -1,8 +1,11 @@ package io.gisbi.api.exportCenter; +import com.baomidou.mybatisplus.core.metadata.IPage; import com.github.xiaoymin.knife4j.annotations.ApiSupport; +import io.gisbi.auth.DePermit; import io.gisbi.model.ExportTaskDTO; import io.gisbi.auth.DeApiPath; +import io.swagger.v3.oas.annotations.Operation; import io.swagger.v3.oas.annotations.tags.Tag; import jakarta.servlet.http.HttpServletResponse; import org.springframework.web.bind.annotation.GetMapping; @@ -11,34 +14,47 @@ import org.springframework.web.bind.annotation.PostMapping; import org.springframework.web.bind.annotation.RequestBody; import java.util.List; +import java.util.Map; import static io.gisbi.constant.AuthResourceEnum.DATASOURCE; @Tag(name = "数据导出中心") @ApiSupport(order = 971) -@DeApiPath(value = "/exportCenter", rt = DATASOURCE) public interface ExportCenterApi { - @PostMapping("/exportTasks/{status}") - public List exportTasks(@PathVariable String status) ; + @PostMapping("/exportTasks/records") + public Map exportTasks(); + @DePermit("m:read") + @PostMapping("/exportTasks/{status}/{goPage}/{pageSize}") + IPage pager(@PathVariable("goPage") int goPage, @PathVariable("pageSize") int pageSize, @PathVariable String status); + + @Operation(summary = "删除单条记录") @GetMapping("/delete/{id}") - public void delete(@PathVariable String id); + public void delete(@PathVariable String id); + @Operation(summary = "批量删除") @PostMapping("/delete") - public void delete(@RequestBody List ids); + public void delete(@RequestBody List ids); + @Operation(summary = "删除") @PostMapping("/deleteAll/{type}") - public void deleteAll(@PathVariable String type); + public void deleteAll(@PathVariable String type); + @Operation(summary = "下载") @GetMapping("/download/{id}") - public void download(@PathVariable String id, HttpServletResponse response) throws Exception ; + public void download(@PathVariable String id, HttpServletResponse response) throws Exception; + @Operation(summary = "生成下载Url") + @GetMapping("/generateDownloadUri/{id}") + public String generateDownloadUri(@PathVariable String id) throws Exception; + + @Operation(summary = "重试") @PostMapping("/retry/{id}") - public void retry(@PathVariable String id); + public void retry(@PathVariable String id); @PostMapping("/exportLimit") - public String exportLimit(); + public String exportLimit(); } diff --git a/sdk/api/api-base/src/main/java/io/gisbi/api/font/api/FontApi.java b/sdk/api/api-base/src/main/java/io/gisbi/api/font/api/FontApi.java index 9dda320..3038889 100644 --- a/sdk/api/api-base/src/main/java/io/gisbi/api/font/api/FontApi.java +++ b/sdk/api/api-base/src/main/java/io/gisbi/api/font/api/FontApi.java @@ -2,6 +2,7 @@ package io.gisbi.api.font.api; import com.github.xiaoymin.knife4j.annotations.ApiSupport; +import io.gisbi.api.ds.vo.ExcelFileData; import io.gisbi.api.font.dto.FontDto; import io.gisbi.exception.DEException; import io.swagger.v3.oas.annotations.Operation; diff --git a/sdk/api/api-base/src/main/java/io/gisbi/api/free/FreeApi.java b/sdk/api/api-base/src/main/java/io/gisbi/api/free/FreeApi.java index 83be0da..94e34fa 100644 --- a/sdk/api/api-base/src/main/java/io/gisbi/api/free/FreeApi.java +++ b/sdk/api/api-base/src/main/java/io/gisbi/api/free/FreeApi.java @@ -3,11 +3,13 @@ package io.gisbi.api.free; import io.gisbi.api.free.dto.*; import io.gisbi.api.free.vo.FreeRelationVO; import io.gisbi.api.free.vo.FreeVO; +import io.swagger.v3.oas.annotations.Hidden; import org.springframework.web.bind.annotation.PostMapping; import org.springframework.web.bind.annotation.RequestBody; import java.util.List; +@Hidden public interface FreeApi { @PostMapping("/query") diff --git a/sdk/api/api-base/src/main/java/io/gisbi/api/report/ReportApi.java b/sdk/api/api-base/src/main/java/io/gisbi/api/report/ReportApi.java index 0a66fbc..efb8a09 100644 --- a/sdk/api/api-base/src/main/java/io/gisbi/api/report/ReportApi.java +++ b/sdk/api/api-base/src/main/java/io/gisbi/api/report/ReportApi.java @@ -75,9 +75,11 @@ public interface ReportApi { @PostMapping("/deleteLog") void deleteInstance(@RequestBody ReportInstanceDelRequest request); + @Operation(summary = "日志错误信息") @PostMapping("/logMsg") String logMsg(@RequestBody ReportInstanceMsgRequest request); + @Operation(summary = "导出") @PostMapping("/export") ResponseEntity export(@RequestBody ReportExportRequest request); } diff --git a/sdk/api/api-base/src/main/java/io/gisbi/api/report/dto/ReportExportRequest.java b/sdk/api/api-base/src/main/java/io/gisbi/api/report/dto/ReportExportRequest.java index 951fa30..4d47d3a 100644 --- a/sdk/api/api-base/src/main/java/io/gisbi/api/report/dto/ReportExportRequest.java +++ b/sdk/api/api-base/src/main/java/io/gisbi/api/report/dto/ReportExportRequest.java @@ -1,22 +1,23 @@ package io.gisbi.api.report.dto; +import io.swagger.v3.oas.annotations.media.Schema; import lombok.Data; import java.io.Serial; import java.io.Serializable; - +@Schema(description = "导出请求") @Data public class ReportExportRequest implements Serializable { @Serial private static final long serialVersionUID = -5372551595882128201L; - + @Schema(description = "资源ID") private Long resourceId; - + @Schema(description = "资源类型") private String busiType; - + @Schema(description = "分辨率") private String pixel; - + @Schema(description = "额外等待时间") private Integer extWaitTime = 0; - + @Schema(description = "导出格式") private Integer resultFormat = 0; } diff --git a/sdk/api/api-base/src/main/java/io/gisbi/api/report/dto/ReportInstanceMsgRequest.java b/sdk/api/api-base/src/main/java/io/gisbi/api/report/dto/ReportInstanceMsgRequest.java index 756786e..9e32844 100644 --- a/sdk/api/api-base/src/main/java/io/gisbi/api/report/dto/ReportInstanceMsgRequest.java +++ b/sdk/api/api-base/src/main/java/io/gisbi/api/report/dto/ReportInstanceMsgRequest.java @@ -1,16 +1,18 @@ package io.gisbi.api.report.dto; +import io.swagger.v3.oas.annotations.media.Schema; import lombok.Data; import java.io.Serial; import java.io.Serializable; +@Schema(description = "日志错误信息请求") @Data public class ReportInstanceMsgRequest implements Serializable { @Serial private static final long serialVersionUID = 7192222037770564561L; - + @Schema(description = "任务ID") private Long taskId; - + @Schema(description = "任务实例ID") private Long instanceId; } diff --git a/sdk/api/api-base/src/main/java/io/gisbi/api/system/SysParameterApi.java b/sdk/api/api-base/src/main/java/io/gisbi/api/system/SysParameterApi.java index d99ba7b..8a083e3 100644 --- a/sdk/api/api-base/src/main/java/io/gisbi/api/system/SysParameterApi.java +++ b/sdk/api/api-base/src/main/java/io/gisbi/api/system/SysParameterApi.java @@ -34,6 +34,10 @@ public interface SysParameterApi { @GetMapping("/queryOnlineMap") OnlineMapEditor queryOnlineMap(); + @Operation(summary = "查询在线地图") + @GetMapping("/queryOnlineMap/{type}") + OnlineMapEditor queryOnlineMapByMapType(@PathVariable("type") String type); + @Operation(summary = "查询基础设置(非xpack)") @GetMapping("basic/query") List queryBasicSetting(); diff --git a/sdk/api/api-base/src/main/java/io/gisbi/api/system/request/OnlineMapEditor.java b/sdk/api/api-base/src/main/java/io/gisbi/api/system/request/OnlineMapEditor.java index a6be549..1b70f4a 100644 --- a/sdk/api/api-base/src/main/java/io/gisbi/api/system/request/OnlineMapEditor.java +++ b/sdk/api/api-base/src/main/java/io/gisbi/api/system/request/OnlineMapEditor.java @@ -8,6 +8,8 @@ import java.io.Serializable; @Schema(description = "在线地图构造器") @Data public class OnlineMapEditor implements Serializable { + @Schema(description = "在线地图类型", requiredMode = Schema.RequiredMode.REQUIRED) + private String mapType; @Schema(description = "在线地图key", requiredMode = Schema.RequiredMode.REQUIRED) private String key; @Schema(description = "在线地图安全密钥", requiredMode = Schema.RequiredMode.NOT_REQUIRED) diff --git a/sdk/api/api-base/src/main/java/io/gisbi/api/template/request/TemplateManageBatchRequest.java b/sdk/api/api-base/src/main/java/io/gisbi/api/template/request/TemplateManageBatchRequest.java index fe28d80..4ce8862 100644 --- a/sdk/api/api-base/src/main/java/io/gisbi/api/template/request/TemplateManageBatchRequest.java +++ b/sdk/api/api-base/src/main/java/io/gisbi/api/template/request/TemplateManageBatchRequest.java @@ -1,5 +1,6 @@ package io.gisbi.api.template.request; +import io.gisbi.api.template.vo.VisualizationTemplateVO; import lombok.Data; import java.util.List; diff --git a/sdk/api/api-base/src/main/java/io/gisbi/api/threshold/ThresholdApi.java b/sdk/api/api-base/src/main/java/io/gisbi/api/threshold/ThresholdApi.java index 2252ad6..2c0773e 100644 --- a/sdk/api/api-base/src/main/java/io/gisbi/api/threshold/ThresholdApi.java +++ b/sdk/api/api-base/src/main/java/io/gisbi/api/threshold/ThresholdApi.java @@ -36,16 +36,16 @@ public interface ThresholdApi { IPage pager(@PathVariable("goPage") int goPage, @PathVariable("pageSize") int pageSize, @RequestBody ThresholdGridRequest request); @Operation(summary = "查询表单") - @GetMapping("/formInfo/{id}") - ThresholdCreator formInfo(@PathVariable("id") Long id); + @GetMapping("/formInfo/{id}/{resourceTable}") + ThresholdCreator formInfo(@PathVariable("id") Long id, @PathVariable("resourceTable") String resourceTable); @Operation(summary = "切换可用") @PostMapping("/switch") void switchEnable(@RequestBody ThresholdSwitchRequest request); @Operation(summary = "删除") - @PostMapping("/delete") - void delete(@RequestBody List idList); + @PostMapping("/delete/{resourceTable}") + void delete(@RequestBody List idList, @PathVariable("resourceTable") String resourceTable); @Operation(summary = "批量设置接收人") @PostMapping("/batchReci") @@ -65,10 +65,10 @@ public interface ThresholdApi { String preview(@RequestBody ThresholdPreviewRequest request); @Operation(summary = "视图是否设置了阈值告警") - @GetMapping("/anyThreshold/{chartId}") - boolean anyThreshold(@PathVariable("chartId") Long chartId); + @GetMapping("/anyThreshold/{chartId}/{resourceTable}") + boolean anyThreshold(@PathVariable("chartId") Long chartId, @PathVariable("resourceTable") String resourceTable); @Operation(summary = "根据视图ID删除") - @GetMapping("/deleteWithChart/{chartId}") - void deleteWithChart(@PathVariable("chartId") Long chartId); + @GetMapping("/deleteWithChart/{chartId}/{resourceTable}") + void deleteWithChart(@PathVariable("chartId") Long chartId, @PathVariable("resourceTable") String resourceTable); } diff --git a/sdk/api/api-base/src/main/java/io/gisbi/api/threshold/dto/ThresholdCreator.java b/sdk/api/api-base/src/main/java/io/gisbi/api/threshold/dto/ThresholdCreator.java index 7092858..ec16420 100644 --- a/sdk/api/api-base/src/main/java/io/gisbi/api/threshold/dto/ThresholdCreator.java +++ b/sdk/api/api-base/src/main/java/io/gisbi/api/threshold/dto/ThresholdCreator.java @@ -2,6 +2,7 @@ package io.gisbi.api.threshold.dto; import com.fasterxml.jackson.databind.annotation.JsonSerialize; import com.fasterxml.jackson.databind.ser.std.ToStringSerializer; +import io.gisbi.constant.CommonConstants; import lombok.Data; import lombok.EqualsAndHashCode; @@ -44,4 +45,6 @@ public class ThresholdCreator extends BaseReciDTO implements Serializable { private String msgContent; private Boolean repeatSend = true; + + private String resourceTable = CommonConstants.RESOURCE_TABLE.CORE; } diff --git a/sdk/api/api-base/src/main/java/io/gisbi/api/threshold/dto/ThresholdGridRequest.java b/sdk/api/api-base/src/main/java/io/gisbi/api/threshold/dto/ThresholdGridRequest.java index 5180101..73768b7 100644 --- a/sdk/api/api-base/src/main/java/io/gisbi/api/threshold/dto/ThresholdGridRequest.java +++ b/sdk/api/api-base/src/main/java/io/gisbi/api/threshold/dto/ThresholdGridRequest.java @@ -1,5 +1,6 @@ package io.gisbi.api.threshold.dto; +import io.gisbi.constant.CommonConstants; import lombok.Data; import java.io.Serial; @@ -13,6 +14,8 @@ public class ThresholdGridRequest implements Serializable { private String keyword; + private String resourceTable = CommonConstants.RESOURCE_TABLE.CORE; + private List resourceTypeList; private List statusList; diff --git a/sdk/api/api-base/src/main/java/io/gisbi/api/threshold/dto/ThresholdPreviewRequest.java b/sdk/api/api-base/src/main/java/io/gisbi/api/threshold/dto/ThresholdPreviewRequest.java index cb4cdfe..ac5cd1f 100644 --- a/sdk/api/api-base/src/main/java/io/gisbi/api/threshold/dto/ThresholdPreviewRequest.java +++ b/sdk/api/api-base/src/main/java/io/gisbi/api/threshold/dto/ThresholdPreviewRequest.java @@ -1,5 +1,6 @@ package io.gisbi.api.threshold.dto; +import io.gisbi.constant.CommonConstants; import lombok.Data; import java.io.Serial; @@ -15,4 +16,6 @@ public class ThresholdPreviewRequest implements Serializable { private String thresholdRules; private String msgContent; + + private String resourceTable = CommonConstants.RESOURCE_TABLE.CORE; } diff --git a/sdk/api/api-base/src/main/java/io/gisbi/api/threshold/dto/ThresholdSwitchRequest.java b/sdk/api/api-base/src/main/java/io/gisbi/api/threshold/dto/ThresholdSwitchRequest.java index 4c4e991..458bb32 100644 --- a/sdk/api/api-base/src/main/java/io/gisbi/api/threshold/dto/ThresholdSwitchRequest.java +++ b/sdk/api/api-base/src/main/java/io/gisbi/api/threshold/dto/ThresholdSwitchRequest.java @@ -1,5 +1,6 @@ package io.gisbi.api.threshold.dto; +import io.gisbi.constant.CommonConstants; import lombok.Data; import java.io.Serial; @@ -13,4 +14,6 @@ public class ThresholdSwitchRequest implements Serializable { private Long id; private Boolean enable; + + private String resourceTable = CommonConstants.RESOURCE_TABLE.CORE; } diff --git a/sdk/api/api-base/src/main/java/io/gisbi/api/visualization/DataVisualizationApi.java b/sdk/api/api-base/src/main/java/io/gisbi/api/visualization/DataVisualizationApi.java index a03a290..bb73fb2 100644 --- a/sdk/api/api-base/src/main/java/io/gisbi/api/visualization/DataVisualizationApi.java +++ b/sdk/api/api-base/src/main/java/io/gisbi/api/visualization/DataVisualizationApi.java @@ -62,7 +62,18 @@ public interface DataVisualizationApi { @PostMapping("/updateCanvas") @DePermit(value = {"#p0.id + ':manage'"}, busiFlag = "#p0.type") @Operation(summary = "画布更新") - void updateCanvas(@RequestBody DataVisualizationBaseRequest request); + DataVisualizationVO updateCanvas(@RequestBody DataVisualizationBaseRequest request); + + + @PostMapping("/updatePublishStatus") + @DePermit(value = {"#p0.id + ':manage'"}, busiFlag = "#p0.type") + @Operation(summary = "发布状态更新") + void updatePublishStatus(@RequestBody DataVisualizationBaseRequest request); + + @PostMapping("/recoverToPublished") + @DePermit(value = {"#p0.id + ':manage'"}, busiFlag = "#p0.type") + @Operation(summary = "恢复到发布状态") + void recoverToPublished(@RequestBody DataVisualizationBaseRequest request); @PostMapping("/updateBase") @DePermit(value = {"#p0.id + ':manage'"}, busiFlag = "#p0.type") diff --git a/sdk/api/api-base/src/main/java/io/gisbi/api/visualization/StaticResourceApi.java b/sdk/api/api-base/src/main/java/io/gisbi/api/visualization/StaticResourceApi.java index e07e7eb..b04001f 100644 --- a/sdk/api/api-base/src/main/java/io/gisbi/api/visualization/StaticResourceApi.java +++ b/sdk/api/api-base/src/main/java/io/gisbi/api/visualization/StaticResourceApi.java @@ -19,7 +19,4 @@ public interface StaticResourceApi { @Operation(summary = "查找静态文件并转为Base64") Map findResourceAsBase64(@RequestBody StaticResourceRequest resourceRequest); - @GetMapping("urlTest") - Map urlTest(); - } diff --git a/sdk/api/api-base/src/main/java/io/gisbi/api/visualization/VisualizationLinkJumpApi.java b/sdk/api/api-base/src/main/java/io/gisbi/api/visualization/VisualizationLinkJumpApi.java index bab88b4..d32a836 100644 --- a/sdk/api/api-base/src/main/java/io/gisbi/api/visualization/VisualizationLinkJumpApi.java +++ b/sdk/api/api-base/src/main/java/io/gisbi/api/visualization/VisualizationLinkJumpApi.java @@ -32,9 +32,9 @@ public interface VisualizationLinkJumpApi { @Operation(summary = "根据图表ID查询跳转信息") VisualizationLinkJumpDTO queryWithViewId(@PathVariable Long dvId, @PathVariable Long viewId); - @GetMapping("/queryVisualizationJumpInfo/{dvId}") + @GetMapping("/queryVisualizationJumpInfo/{dvId}/{resourceTable}") @Operation(summary = "根据可视化资源ID查询跳转信息") - VisualizationLinkJumpBaseResponse queryVisualizationJumpInfo(@PathVariable Long dvId); + VisualizationLinkJumpBaseResponse queryVisualizationJumpInfo(@PathVariable Long dvId, @PathVariable String resourceTable); @PostMapping("/updateJumpSet") @Operation(summary = "更新跳转信息") diff --git a/sdk/api/api-base/src/main/java/io/gisbi/api/visualization/VisualizationLinkageApi.java b/sdk/api/api-base/src/main/java/io/gisbi/api/visualization/VisualizationLinkageApi.java index 7c9f0a9..5aaefd3 100644 --- a/sdk/api/api-base/src/main/java/io/gisbi/api/visualization/VisualizationLinkageApi.java +++ b/sdk/api/api-base/src/main/java/io/gisbi/api/visualization/VisualizationLinkageApi.java @@ -35,9 +35,9 @@ public interface VisualizationLinkageApi { @Operation(summary = "保存联动信息") BaseRspModel saveLinkage(@RequestBody VisualizationLinkageRequest request); - @GetMapping("/getVisualizationAllLinkageInfo/{dvId}") + @GetMapping("/getVisualizationAllLinkageInfo/{dvId}/{resourceTable}") @Operation(summary = "根据资源ID查询联动信息") - Map> getVisualizationAllLinkageInfo(@PathVariable Long dvId); + Map> getVisualizationAllLinkageInfo(@PathVariable Long dvId,@PathVariable String resourceTable); @PostMapping("/updateLinkageActive") @Operation(summary = "修改联动信息可用状态") diff --git a/sdk/api/api-base/src/main/java/io/gisbi/api/visualization/VisualizationOuterParamsApi.java b/sdk/api/api-base/src/main/java/io/gisbi/api/visualization/VisualizationOuterParamsApi.java index f308d62..4bdeb90 100644 --- a/sdk/api/api-base/src/main/java/io/gisbi/api/visualization/VisualizationOuterParamsApi.java +++ b/sdk/api/api-base/src/main/java/io/gisbi/api/visualization/VisualizationOuterParamsApi.java @@ -3,25 +3,29 @@ package io.gisbi.api.visualization; import io.gisbi.api.dataset.vo.CoreDatasetGroupVO; import io.gisbi.api.visualization.dto.VisualizationOuterParamsDTO; import io.gisbi.api.visualization.response.VisualizationOuterParamsBaseResponse; +import io.swagger.v3.oas.annotations.Operation; +import io.swagger.v3.oas.annotations.tags.Tag; import org.springframework.web.bind.annotation.*; import java.util.List; +@Tag(name = "可视化管理:外部参数") public interface VisualizationOuterParamsApi { @GetMapping("/queryWithVisualizationId/{dvId}") + @Operation(summary = "查询") VisualizationOuterParamsDTO queryWithVisualizationId(@PathVariable("dvId") String dvId); - @GetMapping("/queryWithVisualizationIdDS/{dvId}") - VisualizationOuterParamsDTO queryWithVisualizationIdDS(@PathVariable("dvId") String dvId); - @PostMapping("/updateOuterParamsSet") + @Operation(summary = "更新") void updateOuterParamsSet(@RequestBody VisualizationOuterParamsDTO OuterParamsDTO); @GetMapping("/getOuterParamsInfo/{dvId}") + @Operation(summary = "查询基础信息") VisualizationOuterParamsBaseResponse getOuterParamsInfo(@PathVariable("dvId") String dvId); @GetMapping("/queryDsWithVisualizationId/{dvId}") + @Operation(summary = "查询涉及数据集基础信息") List queryDsWithVisualizationId(@PathVariable("dvId") String dvId); } diff --git a/sdk/api/api-base/src/main/java/io/gisbi/api/visualization/VisualizationWatermarkApi.java b/sdk/api/api-base/src/main/java/io/gisbi/api/visualization/VisualizationWatermarkApi.java index c463275..6b54b96 100644 --- a/sdk/api/api-base/src/main/java/io/gisbi/api/visualization/VisualizationWatermarkApi.java +++ b/sdk/api/api-base/src/main/java/io/gisbi/api/visualization/VisualizationWatermarkApi.java @@ -1,12 +1,16 @@ package io.gisbi.api.visualization; import com.github.xiaoymin.knife4j.annotations.ApiSupport; +import io.gisbi.api.visualization.request.VisualizationSubjectRequest; import io.gisbi.api.visualization.request.VisualizationWatermarkRequest; +import io.gisbi.api.visualization.vo.VisualizationSubjectVO; import io.gisbi.api.visualization.vo.VisualizationWatermarkVO; import io.swagger.v3.oas.annotations.Operation; import io.swagger.v3.oas.annotations.tags.Tag; import org.springframework.web.bind.annotation.*; +import java.util.List; + @Tag(name = "可视化管理:水印") @ApiSupport(order = 994) public interface VisualizationWatermarkApi { @@ -14,10 +18,13 @@ public interface VisualizationWatermarkApi { @ResponseBody @GetMapping("/find") + @Operation(summary = "查询") VisualizationWatermarkVO getWatermarkInfo(); @ResponseBody @PostMapping("/save") + @Tag(name = "保存") + @Operation(summary = "保存") void saveWatermarkInfo(@RequestBody VisualizationWatermarkRequest watermarkRequest); } diff --git a/sdk/api/api-base/src/main/java/io/gisbi/api/visualization/dto/VisualizationLinkJumpInfoDTO.java b/sdk/api/api-base/src/main/java/io/gisbi/api/visualization/dto/VisualizationLinkJumpInfoDTO.java index 0dece4b..d2ac2f9 100644 --- a/sdk/api/api-base/src/main/java/io/gisbi/api/visualization/dto/VisualizationLinkJumpInfoDTO.java +++ b/sdk/api/api-base/src/main/java/io/gisbi/api/visualization/dto/VisualizationLinkJumpInfoDTO.java @@ -22,6 +22,9 @@ public class VisualizationLinkJumpInfoDTO extends VisualizationLinkJumpInfoVO { //存在公共链接的目标仪表板 private String publicJumpId; + // 目标类型 + private String targetDvType; + private List targetViewInfoList=new ArrayList<>();// linkType = inner 时使用 } diff --git a/sdk/api/api-base/src/main/java/io/gisbi/api/visualization/request/DataVisualizationBaseRequest.java b/sdk/api/api-base/src/main/java/io/gisbi/api/visualization/request/DataVisualizationBaseRequest.java index 9408aa8..3c03ffa 100644 --- a/sdk/api/api-base/src/main/java/io/gisbi/api/visualization/request/DataVisualizationBaseRequest.java +++ b/sdk/api/api-base/src/main/java/io/gisbi/api/visualization/request/DataVisualizationBaseRequest.java @@ -3,9 +3,12 @@ package io.gisbi.api.visualization.request; import com.fasterxml.jackson.databind.annotation.JsonSerialize; import com.fasterxml.jackson.databind.ser.std.ToStringSerializer; import io.gisbi.api.visualization.vo.DataVisualizationVO; +import io.gisbi.api.visualization.vo.VisualizationExport2AppVO; import lombok.Data; import lombok.NoArgsConstructor; +import java.util.List; + @Data @NoArgsConstructor public class DataVisualizationBaseRequest extends DataVisualizationVO { @@ -30,7 +33,9 @@ public class DataVisualizationBaseRequest extends DataVisualizationVO { private String busiFlag; - // 查询来源 main=主工程 report=定时报告 + private List activeViewIds; + + // 查询来源 main-edit= 主工程编辑区 main=主工程 report=定时报告 private String source; // 定时报告id @@ -56,6 +61,15 @@ public class DataVisualizationBaseRequest extends DataVisualizationVO { // 是否强制校验新旧contentId private Boolean checkHistory = false; + //数据来源 core 主表 snapshot 镜像表 + private String resourceTable = "core"; + + public DataVisualizationBaseRequest(Long id,String busiFlag,String resource,String source) { + this.busiFlag = busiFlag; + this.resourceTable = resource; + super.setId(id); + this.setSource(source); + } public DataVisualizationBaseRequest(Long id,String busiFlag) { this.busiFlag = busiFlag; diff --git a/sdk/api/api-base/src/main/java/io/gisbi/api/visualization/request/VisualizationLinkJumpBaseRequest.java b/sdk/api/api-base/src/main/java/io/gisbi/api/visualization/request/VisualizationLinkJumpBaseRequest.java index 8e167ca..9f59213 100644 --- a/sdk/api/api-base/src/main/java/io/gisbi/api/visualization/request/VisualizationLinkJumpBaseRequest.java +++ b/sdk/api/api-base/src/main/java/io/gisbi/api/visualization/request/VisualizationLinkJumpBaseRequest.java @@ -2,6 +2,7 @@ package io.gisbi.api.visualization.request; import com.fasterxml.jackson.databind.annotation.JsonSerialize; import com.fasterxml.jackson.databind.ser.std.ToStringSerializer; +import io.gisbi.constant.CommonConstants; import lombok.Data; /** @@ -26,6 +27,8 @@ public class VisualizationLinkJumpBaseRequest { private Boolean activeStatus; + private String resourceTable = CommonConstants.RESOURCE_TABLE.CORE; + public VisualizationLinkJumpBaseRequest() { } diff --git a/sdk/api/api-base/src/main/java/io/gisbi/api/visualization/request/VisualizationLinkageRequest.java b/sdk/api/api-base/src/main/java/io/gisbi/api/visualization/request/VisualizationLinkageRequest.java index c5a2228..773bd84 100644 --- a/sdk/api/api-base/src/main/java/io/gisbi/api/visualization/request/VisualizationLinkageRequest.java +++ b/sdk/api/api-base/src/main/java/io/gisbi/api/visualization/request/VisualizationLinkageRequest.java @@ -4,6 +4,7 @@ import com.fasterxml.jackson.databind.annotation.JsonSerialize; import com.fasterxml.jackson.databind.ser.std.ToStringSerializer; import io.gisbi.api.visualization.dto.VisualizationLinkageDTO; import io.gisbi.api.visualization.vo.VisualizationLinkageVO; +import io.gisbi.constant.CommonConstants; import lombok.Data; import java.util.ArrayList; @@ -28,6 +29,7 @@ public class VisualizationLinkageRequest extends VisualizationLinkageVO { private List targetViewIds; + private String resourceTable = CommonConstants.RESOURCE_TABLE.CORE; private List linkageInfo = new ArrayList<>(); diff --git a/sdk/api/api-base/src/main/java/io/gisbi/api/visualization/vo/AppCoreDatasetGroupVO.java b/sdk/api/api-base/src/main/java/io/gisbi/api/visualization/vo/AppCoreDatasetGroupVO.java index cba1750..15ab496 100644 --- a/sdk/api/api-base/src/main/java/io/gisbi/api/visualization/vo/AppCoreDatasetGroupVO.java +++ b/sdk/api/api-base/src/main/java/io/gisbi/api/visualization/vo/AppCoreDatasetGroupVO.java @@ -84,4 +84,9 @@ public class AppCoreDatasetGroupVO implements Serializable { * 关联sql */ private String unionSql; + + /** + * 是否跨源 + */ + private Boolean isCross; } diff --git a/sdk/api/api-base/src/main/java/io/gisbi/api/visualization/vo/AppCoreDatasetTableFieldVO.java b/sdk/api/api-base/src/main/java/io/gisbi/api/visualization/vo/AppCoreDatasetTableFieldVO.java index db65060..2dd329e 100644 --- a/sdk/api/api-base/src/main/java/io/gisbi/api/visualization/vo/AppCoreDatasetTableFieldVO.java +++ b/sdk/api/api-base/src/main/java/io/gisbi/api/visualization/vo/AppCoreDatasetTableFieldVO.java @@ -58,7 +58,7 @@ public class AppCoreDatasetTableFieldVO implements Serializable { /** * de字段名用作唯一标识 */ - private String dataeaseName; + private String gisbiName; /** * de字段别名 @@ -78,7 +78,7 @@ public class AppCoreDatasetTableFieldVO implements Serializable { private Integer size; /** - * dataease字段类型:0-文本,1-时间,2-整型数值,3-浮点数值,4-布尔,5-地理位置,6-二进制 + * gisbi字段类型:0-文本,1-时间,2-整型数值,3-浮点数值,4-布尔,5-地理位置,6-二进制 */ private Integer deType; diff --git a/sdk/api/api-base/src/main/java/io/gisbi/api/visualization/vo/DataVisualizationVO.java b/sdk/api/api-base/src/main/java/io/gisbi/api/visualization/vo/DataVisualizationVO.java index fb8fc60..66c38dd 100644 --- a/sdk/api/api-base/src/main/java/io/gisbi/api/visualization/vo/DataVisualizationVO.java +++ b/sdk/api/api-base/src/main/java/io/gisbi/api/visualization/vo/DataVisualizationVO.java @@ -192,7 +192,7 @@ public class DataVisualizationVO implements Serializable { private VisualizationExport2AppVO appData; - public DataVisualizationVO(Long id,String name, String type, Integer version, String canvasStyleData, String componentData,String appDataStr, Map canvasViewInfo, Map extendDataInfo) { + public DataVisualizationVO(Long id, String name, String type, Integer version, String canvasStyleData, String componentData,String appDataStr, Map canvasViewInfo, Map extendDataInfo) { this.id = id; this.name = name; this.type = type; @@ -205,4 +205,8 @@ public class DataVisualizationVO implements Serializable { } this.version = version; } + + public DataVisualizationVO(Integer status) { + this.status = status; + } } diff --git a/sdk/api/api-base/src/main/java/io/gisbi/api/visualization/vo/VisualizationExport2AppVO.java b/sdk/api/api-base/src/main/java/io/gisbi/api/visualization/vo/VisualizationExport2AppVO.java index 7b30ce5..0a41c4e 100644 --- a/sdk/api/api-base/src/main/java/io/gisbi/api/visualization/vo/VisualizationExport2AppVO.java +++ b/sdk/api/api-base/src/main/java/io/gisbi/api/visualization/vo/VisualizationExport2AppVO.java @@ -1,6 +1,5 @@ package io.gisbi.api.visualization.vo; -import com.google.gson.Gson; import lombok.Data; import java.util.ArrayList; diff --git a/sdk/api/api-base/src/main/java/io/gisbi/api/visualization/vo/VisualizationStoreVO.java b/sdk/api/api-base/src/main/java/io/gisbi/api/visualization/vo/VisualizationStoreVO.java index c0eac5e..70123e7 100644 --- a/sdk/api/api-base/src/main/java/io/gisbi/api/visualization/vo/VisualizationStoreVO.java +++ b/sdk/api/api-base/src/main/java/io/gisbi/api/visualization/vo/VisualizationStoreVO.java @@ -35,4 +35,7 @@ public class VisualizationStoreVO implements Serializable { private int weight; private Integer extFlag; + + private Integer extFlag1; + } diff --git a/sdk/api/api-base/src/main/java/io/gisbi/api/xpack/appearance/api/XpackAppearanceApi.java b/sdk/api/api-base/src/main/java/io/gisbi/api/xpack/appearance/api/XpackAppearanceApi.java index 535d118..84cf1e2 100644 --- a/sdk/api/api-base/src/main/java/io/gisbi/api/xpack/appearance/api/XpackAppearanceApi.java +++ b/sdk/api/api-base/src/main/java/io/gisbi/api/xpack/appearance/api/XpackAppearanceApi.java @@ -1,6 +1,9 @@ package io.gisbi.api.xpack.appearance.api; import io.gisbi.api.xpack.appearance.vo.AppearanceItemVO; +import io.swagger.v3.oas.annotations.Hidden; +import io.swagger.v3.oas.annotations.Operation; +import io.swagger.v3.oas.annotations.tags.Tag; import org.springframework.http.MediaType; import org.springframework.http.ResponseEntity; import org.springframework.web.bind.annotation.GetMapping; @@ -11,14 +14,18 @@ import org.springframework.web.multipart.MultipartFile; import java.util.List; +@Tag(name = "外观设置") public interface XpackAppearanceApi { + @Operation(summary = "保存") @PostMapping(value = "/save", consumes = {"multipart/form-data"}) void save(@RequestPart("request") List items, @RequestPart(value = "files", required = false) List files); + @Operation(summary = "查询") @GetMapping("/query") List query(); + @Hidden @GetMapping(value = "/image/{imageId}", produces = {MediaType.IMAGE_JPEG_VALUE, MediaType.IMAGE_PNG_VALUE, "image/svg+xml"}) ResponseEntity image(@PathVariable("imageId") String imageId); } diff --git a/sdk/api/api-base/src/main/java/io/gisbi/api/xpack/dataFilling/DataFillingApi.java b/sdk/api/api-base/src/main/java/io/gisbi/api/xpack/dataFilling/DataFillingApi.java index dc0f871..1feeef8 100644 --- a/sdk/api/api-base/src/main/java/io/gisbi/api/xpack/dataFilling/DataFillingApi.java +++ b/sdk/api/api-base/src/main/java/io/gisbi/api/xpack/dataFilling/DataFillingApi.java @@ -8,9 +8,11 @@ import io.gisbi.api.xpack.dataFilling.dto.*; import io.gisbi.auth.DeApiPath; import io.gisbi.auth.DePermit; import io.gisbi.exception.DEException; +import io.gisbi.extensions.datasource.dto.DatasetTableDTO; import io.gisbi.extensions.datasource.dto.SimpleDatasourceDTO; import io.gisbi.model.BusiNodeRequest; import io.gisbi.model.BusiNodeVO; +import io.swagger.v3.oas.annotations.Operation; import io.swagger.v3.oas.annotations.tags.Tag; import jakarta.servlet.http.HttpServletResponse; import org.springframework.web.bind.annotation.*; @@ -22,134 +24,173 @@ import java.util.Map; import static io.gisbi.constant.AuthResourceEnum.DATA_FILLING; @Tag(name = "数据填报") -@ApiSupport(order = 1000, author = "fit2cloud-someone") @DeApiPath(value = "/data-filling", rt = DATA_FILLING) public interface DataFillingApi { + @Operation(summary = "查询列表") @PostMapping("tree") List tree(@RequestBody BusiNodeRequest request) throws DEException; + @Operation(summary = "根据ID查询数据填报") @GetMapping("/get/{id}") DataFillingDTO get(@PathVariable("id") Long id); + @Operation(summary = "移动数据填报至文件夹") @DePermit({"#p0.id+':manage'"}) @PostMapping("/move") DataFillingDTO move(@RequestBody DataFillingDTO dataFillingDTO); + @Operation(summary = "保存数据填报") @PostMapping("/save") DataFillingDTO save(@RequestBody DataFillingDTO dataFillingDTO) throws Exception; + @Operation(summary = "编辑数据填报") @DePermit({"#p0.id+':manage'"}) @PostMapping("/update") DataFillingDTO update(@RequestBody DataFillingDTO dataFillingDTO) throws Exception; + @Operation(summary = "重命名数据填报") @DePermit({"#p0.id+':manage'"}) @PostMapping("/rename") DataFillingDTO rename(@RequestBody DataFillingDTO dataFillingDTO); + @Operation(summary = "删除数据填报") @DePermit({"#p0+':manage'"}) @GetMapping("delete/{id}") void delete(@PathVariable("id") Long id); + @Operation(summary = "获取创建数据填报表单用的数据源列表") @GetMapping("/datasource/list") List listDatasourceList(); + @Operation(summary = "获取数据源列表") @GetMapping("/datasource/listAll") List listDatasourceListAll(); + @Operation(summary = "获取选项值列表") @PostMapping("/form/{optionDatasource}/options") List listColumnData(@PathVariable("optionDatasource") Long optionDatasource, @RequestBody DatasourceOptionsRequest request) throws Exception; + @Operation(summary = "获取额外信息") @PostMapping("/form/extraDetails") List extraDetails(@RequestBody ExtraDetailsRequest request) throws Exception; + @Operation(summary = "获取数据填报表内数据列表") @PostMapping("/form/{id}/tableData") DataFillFormTableDataResponse tableData(@PathVariable("id") Long id, @RequestBody DataFillFormTableDataRequest request) throws Exception; + @Operation(summary = "删除数据填报表内数据") @DePermit({"#p0+':manage'"}) @GetMapping("/form/{formId}/delete/{id}") void deleteRowData(@PathVariable("formId") Long formId, @PathVariable("id") String id) throws Exception; + @Operation(summary = "晴空数据填报表内数据") @DePermit({"#p0+':manage'"}) @GetMapping("/form/{formId}/truncate") void truncateRowData(@PathVariable("formId") Long formId) throws Exception; + @Operation(summary = "批量删除数据填报表内数据") @DePermit({"#p0+':manage'"}) @PostMapping("/form/{formId}/batch-delete") void batchDeleteRowData(@PathVariable("formId") Long formId, @RequestBody List ids) throws Exception; + @Operation(summary = "保存数据填报内数据") @DePermit({"#p0+':manage'"}) @PostMapping("/form/{formId}/rowData/save") DataFillFormTableDataResponse saveRowData(@PathVariable("formId") Long formId, @RequestBody Map data) throws Exception; + @Operation(summary = "查看数据填报任务信息") @GetMapping("/task/info/{taskId}") TaskInfoVO info(@PathVariable("taskId") Long taskId); + @Operation(summary = "保存数据填报任务") @DePermit({"#p0.formId+':manage'"}) @PostMapping("/task/save") Long saveTask(@RequestBody TaskInfoVO task); + @Operation(summary = "立即执行数据填报任务") @DePermit({"#p0.formId+':manage'"}) @PostMapping("/task/executeNow") void executeNow(@RequestBody TaskInfoVO task); + @Operation(summary = "查询数据填报任务日志") @PostMapping("/task/logMsg") String logMsg(@RequestBody ReportInstanceMsgRequest request); + @Operation(summary = "查询数据填报任务列表") @PostMapping("/form/{formId}/task/page/{goPage}/{pageSize}") IPage taskPager(@PathVariable("formId") Long formId, @PathVariable("goPage") int goPage, @PathVariable("pageSize") int pageSize, @RequestBody DfTaskInfoRequest request); + @Operation(summary = "查询数据填报子任务列表") @PostMapping("/sub-task/page/{goPage}/{pageSize}") IPage subTaskPager(@PathVariable("goPage") int goPage, @PathVariable("pageSize") int pageSize, @RequestBody DfSubTaskInfoRequest request); + @Operation(summary = "删除数据填报任务") @DePermit({"#p0+':manage'"}) @PostMapping("/form/{formId}/task/delete") void batchDeleteTask(@PathVariable("formId") Long formId, @RequestBody List ids) throws Exception; + @Operation(summary = "停止数据填报任务") @DePermit({"#p0+':manage'"}) @GetMapping("/form/{formId}/task/{id}/stop") void stopTask(@PathVariable("formId") Long formId, @PathVariable("id") Long id) throws Exception; + @Operation(summary = "开始数据填报任务") @DePermit({"#p0+':manage'"}) @GetMapping("/form/{formId}/task/{id}/start") void startTask(@PathVariable("formId") Long formId, @PathVariable("id") Long id) throws Exception; + @Operation(summary = "删除数据填报子任务") @DePermit({"#p0+':manage'"}) @PostMapping("/form/{formId}/sub-task/delete") void batchDeleteSubTask(@PathVariable("formId") Long formId, @RequestBody List ids) throws Exception; + @Operation(summary = "列出用户的数据填报子任务") @GetMapping("/sub-task/{id}/users/list/{type}") List> listSubTaskUser(@PathVariable("id") Long id, @PathVariable("type") String type) throws Exception; + @Operation(summary = "查询用户待任务列表") @PostMapping("/user-task/page/{goPage}/{pageSize}") IPage listUserTask(@PathVariable("goPage") int goPage, @PathVariable("pageSize") int pageSize, @RequestBody DfUserTaskRequest request) throws Exception; + @Operation(summary = "查询用户待填报任务条数") @PostMapping("/user-task/todo/count") long countUserTodoList() throws Exception; + @Operation(summary = "根据ID查询用户填报任务列表") @GetMapping("/user-task/list/{id}") DfUserTaskData listUserTaskData(@PathVariable("id") Long id) throws Exception; + @Operation(summary = "用户填报数据") @PostMapping("/user-task/saveData/{id}") DataFillFormTableDataResponse saveFormRowData(@PathVariable("id") Long id, @RequestBody Map data) throws Exception; + @Operation(summary = "数据填报操作日志") @DePermit({"#p0.formId+':read'"}) @PostMapping("/log/page/{goPage}/{pageSize}") IPage logPager(@RequestBody DfCommitLogRequest request, @PathVariable("goPage") int goPage, @PathVariable("pageSize") int pageSize); + @Operation(summary = "清理数据填报操作日志") + @DePermit({"#p0.formId+':manage'"}) + @PostMapping("/log/clear") + void clearLog(@RequestBody DfClearCommitLogRequest request) throws Exception; + @Operation(summary = "上传Excel") @DePermit({"#p0+':manage'"}) @PostMapping("/form/{formId}/uploadFile") DfExcelData excelUpload(@PathVariable("formId") Long formId, @RequestParam("file") MultipartFile file) throws Exception; + @Operation(summary = "下载Excel模板") @DePermit({"#p0+':manage'"}) @GetMapping("/form/{formId}/excelTemplate") void excelTemplate(@PathVariable("formId") Long formId); + @Operation(summary = "确认上传Excel") @DePermit({"#p0+':manage'"}) @PostMapping("/form/{formId}/confirmUpload") void confirmUpload(@PathVariable("formId") Long formId, @RequestBody Map data); + @Operation(summary = "获取表单模版配置") @GetMapping("/template/{itemId}") String getTemplateByUserTaskItemId(@PathVariable("itemId") Long itemId); @@ -157,6 +198,11 @@ public interface DataFillingApi { void geFullName(Long pid, List fullName); - @PostMapping("/innerExport/{isDataEaseBi}/{formId}") - void innerExport(@PathVariable("formId") Long formId, @PathVariable("isDataEaseBi") boolean isDataEaseBi, HttpServletResponse response) throws Exception; + @Operation(summary = "下载数据填报表数据") + @PostMapping("/innerExport/{isgisbiBi}/{formId}") + void innerExport(@PathVariable("formId") Long formId, @PathVariable("isgisbiBi") boolean isgisbiBi, HttpServletResponse response) throws Exception; + + @PostMapping("getBuiltInTables") + @Operation(summary = "获取内置数据源表") + List getBuiltInTables() throws DEException; } diff --git a/sdk/api/api-base/src/main/java/io/gisbi/api/xpack/dataFilling/dto/DfCommitLog.java b/sdk/api/api-base/src/main/java/io/gisbi/api/xpack/dataFilling/dto/DfCommitLog.java index 551998f..b896ea6 100644 --- a/sdk/api/api-base/src/main/java/io/gisbi/api/xpack/dataFilling/dto/DfCommitLog.java +++ b/sdk/api/api-base/src/main/java/io/gisbi/api/xpack/dataFilling/dto/DfCommitLog.java @@ -34,4 +34,6 @@ public class DfCommitLog implements Serializable { private String committer; private Long commitTime; + + private Integer count; } diff --git a/sdk/api/api-base/src/main/java/io/gisbi/api/xpack/dataFilling/dto/DfUserTaskVo.java b/sdk/api/api-base/src/main/java/io/gisbi/api/xpack/dataFilling/dto/DfUserTaskVo.java index c38527e..0475534 100644 --- a/sdk/api/api-base/src/main/java/io/gisbi/api/xpack/dataFilling/dto/DfUserTaskVo.java +++ b/sdk/api/api-base/src/main/java/io/gisbi/api/xpack/dataFilling/dto/DfUserTaskVo.java @@ -8,6 +8,7 @@ import lombok.experimental.Accessors; import java.io.Serial; import java.io.Serializable; +import java.util.List; @Data @Accessors(chain = true) diff --git a/sdk/api/api-base/src/main/java/io/gisbi/api/xpack/plugin/PluginApi.java b/sdk/api/api-base/src/main/java/io/gisbi/api/xpack/plugin/PluginApi.java index b10603f..3dd0656 100644 --- a/sdk/api/api-base/src/main/java/io/gisbi/api/xpack/plugin/PluginApi.java +++ b/sdk/api/api-base/src/main/java/io/gisbi/api/xpack/plugin/PluginApi.java @@ -3,6 +3,7 @@ package io.gisbi.api.xpack.plugin; import com.github.xiaoymin.knife4j.annotations.ApiSupport; import io.gisbi.api.xpack.plugin.dto.PluginEditor; import io.gisbi.api.xpack.plugin.vo.PluginVO; +import io.swagger.v3.oas.annotations.Operation; import io.swagger.v3.oas.annotations.tags.Tag; import org.springframework.web.bind.annotation.GetMapping; import org.springframework.web.bind.annotation.PathVariable; @@ -16,15 +17,19 @@ import java.util.List; @ApiSupport(order = 2) public interface PluginApi { + @Operation(summary = "查询") @GetMapping("/query") List query(); + @Operation(summary = "安装") @PostMapping(value = "/install", consumes = {"multipart/form-data"}) void install(@RequestPart(value = "file") MultipartFile file); + @Operation(summary = "卸载") @PostMapping("/uninstall/{id}") void uninstall(@PathVariable("id") String id); + @Operation(summary = "更新") @PostMapping(value = "/update", consumes = {"multipart/form-data"}) void update(@RequestPart("request") PluginEditor request, @RequestPart(value = "file") MultipartFile file); diff --git a/sdk/api/api-base/src/main/java/io/gisbi/api/xpack/settings/XpackAuthenticationApi.java b/sdk/api/api-base/src/main/java/io/gisbi/api/xpack/settings/XpackAuthenticationApi.java index 8bc2c86..d5fe420 100644 --- a/sdk/api/api-base/src/main/java/io/gisbi/api/xpack/settings/XpackAuthenticationApi.java +++ b/sdk/api/api-base/src/main/java/io/gisbi/api/xpack/settings/XpackAuthenticationApi.java @@ -25,44 +25,55 @@ public interface XpackAuthenticationApi { @PostMapping("/switchEnable") void switchEnable(@RequestBody XpackAuthenticationEditor editor); + @Operation(summary = "保存OIDC") @PostMapping("/save/oidc") String saveOidc(@RequestBody XpackOidcVO editor); + @Operation(summary = "保存CAS") @PostMapping("/save/cas") String saveCas(@RequestBody XpackCasVO editor); + @Operation(summary = "保存LDAP") @PostMapping("/save/ldap") String saveLdap(@RequestBody XpackLdapVO editor); + @Operation(summary = "保存OAuth2") @PostMapping("/save/oauth2") String saveOauth2(@RequestBody XpackOauth2VO editor); - + @Operation(summary = "OIDC信息") @GetMapping("/info/oidc") XpackOidcVO oidcInfo(); + @Operation(summary = "CAS信息") @GetMapping("/info/cas") XpackCasVO casInfo(); + @Operation(summary = "LDAP信息") @GetMapping("/info/ldap") XpackLdapVO ldapInfo(); + @Operation(summary = "OAuth2信息") @GetMapping("/info/oauth2") XpackOauth2VO oauth2Info(); - + @Operation(summary = "验证OIDC") @PostMapping("/validate/oidc") String validateOidc(@RequestBody XpackOidcVO editor); + @Operation(summary = "验证CAS") @PostMapping("/validate/cas") String validateCas(@RequestBody XpackCasVO editor); + @Operation(summary = "验证LDAP") @PostMapping("/validate/ldap") String validateLdap(@RequestBody XpackLdapVO editor); + @Operation(summary = "验证OAuth2") @PostMapping("/validate/oauth2") String validateOauth2(@RequestBody XpackOauth2VO editor); + @Operation(summary = "验证") @PostMapping("/validateId/{id}") String validate(@PathVariable("id") Long id); diff --git a/sdk/api/api-base/src/main/java/io/gisbi/api/xpack/settings/XpackOauth2Api.java b/sdk/api/api-base/src/main/java/io/gisbi/api/xpack/settings/XpackOauth2Api.java index 746ce04..bf84254 100644 --- a/sdk/api/api-base/src/main/java/io/gisbi/api/xpack/settings/XpackOauth2Api.java +++ b/sdk/api/api-base/src/main/java/io/gisbi/api/xpack/settings/XpackOauth2Api.java @@ -4,11 +4,13 @@ import com.github.xiaoymin.knife4j.annotations.ApiSupport; import io.gisbi.api.xpack.settings.request.XpackOauth2TokenRequest; import io.gisbi.api.xpack.settings.vo.XpackOauthAuthVO; import io.gisbi.api.xpack.settings.vo.XpackOauthTokenVO; +import io.swagger.v3.oas.annotations.Hidden; import io.swagger.v3.oas.annotations.tags.Tag; import org.springframework.web.bind.annotation.GetMapping; import org.springframework.web.bind.annotation.PostMapping; import org.springframework.web.bind.annotation.RequestBody; +@Hidden @Tag(name = "Oauth2认证") @ApiSupport(order = 899) public interface XpackOauth2Api { diff --git a/sdk/api/api-base/src/main/java/io/gisbi/api/xpack/settings/vo/XpackOauth2VO.java b/sdk/api/api-base/src/main/java/io/gisbi/api/xpack/settings/vo/XpackOauth2VO.java index 16a8016..33f6d5d 100644 --- a/sdk/api/api-base/src/main/java/io/gisbi/api/xpack/settings/vo/XpackOauth2VO.java +++ b/sdk/api/api-base/src/main/java/io/gisbi/api/xpack/settings/vo/XpackOauth2VO.java @@ -27,4 +27,6 @@ public class XpackOauth2VO implements Serializable { private String mapping; private String redirectUri; + + private String authMethod = "0"; } diff --git a/sdk/api/api-base/src/main/java/io/gisbi/api/xpack/share/vo/XpackShareGridVO.java b/sdk/api/api-base/src/main/java/io/gisbi/api/xpack/share/vo/XpackShareGridVO.java index ba7896b..208282a 100644 --- a/sdk/api/api-base/src/main/java/io/gisbi/api/xpack/share/vo/XpackShareGridVO.java +++ b/sdk/api/api-base/src/main/java/io/gisbi/api/xpack/share/vo/XpackShareGridVO.java @@ -38,6 +38,8 @@ public class XpackShareGridVO implements Serializable { private Integer extFlag; + private Integer extFlag1; + @Schema(description = "类型") private String type; diff --git a/sdk/api/pom.xml b/sdk/api/pom.xml index bc62132..6be1556 100644 --- a/sdk/api/pom.xml +++ b/sdk/api/pom.xml @@ -5,7 +5,7 @@ sdk io.gisbi - 1.0.0 + 2.0.0 4.0.0 @@ -23,7 +23,7 @@ io.gisbi common - 1.0.0 + 2.0.0