perf(仪表板): 解决冲突合并代码

This commit is contained in:
fit2cloud-chenyw
2024-12-17 19:49:40 +08:00
69 changed files with 2196 additions and 436 deletions

View File

@@ -17,6 +17,7 @@ import io.dataease.extensions.datasource.dto.DatasetTableDTO;
import io.dataease.extensions.datasource.dto.DatasourceDTO;
import io.dataease.extensions.datasource.dto.DatasourceRequest;
import io.dataease.extensions.datasource.dto.TableField;
import io.dataease.extensions.datasource.vo.DatasourceConfiguration;
import io.dataease.job.schedule.ExtractDataJob;
import io.dataease.job.schedule.ScheduleManager;
import io.dataease.utils.BeanUtils;
@@ -26,7 +27,6 @@ import org.apache.commons.lang3.StringUtils;
import org.quartz.JobExecutionContext;
import org.quartz.JobKey;
import org.quartz.TriggerKey;
import org.springframework.scheduling.annotation.Async;
import org.springframework.stereotype.Component;
import java.util.Date;
@@ -50,7 +50,6 @@ public class DatasourceSyncManage {
@Resource
private CalciteProvider calciteProvider;
@Async
public void extractExcelData(CoreDatasource coreDatasource, String type) {
if (coreDatasource == null) {
LogUtil.error("Can not find CoreDatasource: " + coreDatasource.getName());
@@ -85,7 +84,12 @@ public class DatasourceSyncManage {
}
datasetTableTaskLog.setTaskStatus(TaskStatus.Error.toString());
datasetTableTaskLog.setInfo(datasetTableTaskLog.getInfo() + "/n Failed to sync datatable: " + datasourceRequest.getTable() + ", " + e.getMessage());
DEException.throwException(e);
if (e.getMessage().contains("Duplicate entry")) {
DEException.throwException("不能追加主键相同的数据, " + e.getMessage());
} else {
DEException.throwException(e);
}
} finally {
datasourceTaskServer.saveLog(datasetTableTaskLog);
}
@@ -237,7 +241,7 @@ public class DatasourceSyncManage {
totalPage = dataList.size() / pageNumber;
}
for (int page = 1; page <= totalPage; page++) {
engineRequest.setQuery(engineProvider.insertSql(datasourceRequest.getTable(), extractType, dataList, page, pageNumber, tableFields));
engineRequest.setQuery(engineProvider.insertSql(DatasourceConfiguration.DatasourceType.API.name(), datasourceRequest.getTable(), extractType, dataList, page, pageNumber, tableFields));
calciteProvider.exec(engineRequest);
}
}
@@ -257,7 +261,7 @@ public class DatasourceSyncManage {
totalPage = dataList.size() / pageNumber;
}
for (int page = 1; page <= totalPage; page++) {
engineRequest.setQuery(engineProvider.insertSql(datasourceRequest.getTable(), extractType, dataList, page, pageNumber, tableFields));
engineRequest.setQuery(engineProvider.insertSql(DatasourceConfiguration.DatasourceType.Excel.name(), datasourceRequest.getTable(), extractType, dataList, page, pageNumber, tableFields));
calciteProvider.exec(engineRequest);
}
}

View File

@@ -22,7 +22,7 @@ public abstract class EngineProvider {
public abstract String createTableSql(String name, List<TableField> tableFields, CoreDeEngine engine);
public abstract String insertSql(String tableName, DatasourceServer.UpdateType extractType, List<String[]> dataList, int page, int pageNumber, List<TableField> tableFields);
public abstract String insertSql(String dsType, String tableName, DatasourceServer.UpdateType extractType, List<String[]> dataList, int page, int pageNumber, List<TableField> tableFields);
}

View File

@@ -25,7 +25,7 @@ public class H2EngineProvider extends EngineProvider {
}
@Override
public String insertSql(String tableName, DatasourceServer.UpdateType extractType, List<String[]> dataList, int page, int pageNumber,List<TableField> tableFields) {
public String insertSql(String dsType, String tableName, DatasourceServer.UpdateType extractType, List<String[]> dataList, int page, int pageNumber,List<TableField> tableFields) {
String engineTableName;
switch (extractType) {
case all_scope:

View File

@@ -31,7 +31,7 @@ public class MysqlEngineProvider extends EngineProvider {
}
@Override
public String insertSql(String tableName, DatasourceServer.UpdateType extractType, List<String[]> dataList, int page, int pageNumber, List<TableField> tableFields) {
public String insertSql(String dsType, String tableName, DatasourceServer.UpdateType extractType, List<String[]> dataList, int page, int pageNumber, List<TableField> tableFields) {
String engineTableName;
switch (extractType) {
case all_scope:
@@ -62,17 +62,20 @@ public class MysqlEngineProvider extends EngineProvider {
values.append("('").append(String.join("','", Arrays.asList(strings1)))
.append("'),");
}
List<TableField> keys = tableFields.stream().filter(tableField -> tableField.isPrimaryKey() && tableField.isChecked()).toList();
List<TableField> notKeys = tableFields.stream().filter(tableField -> tableField.isChecked() && !tableField.isPrimaryKey()).toList();
String insetSql = (insertSql + values.substring(0, values.length() - 1)).replaceAll("'null'", "null");
if (CollectionUtils.isNotEmpty(keys) && extractType.equals(DatasourceServer.UpdateType.add_scope)) {
insetSql = insetSql + " ON DUPLICATE KEY UPDATE ";
List<String> updateColumes = new ArrayList<>();
for (TableField notKey : notKeys) {
updateColumes.add("column = VALUES(column)".replace("column", notKey.getName()));
if (dsType.equalsIgnoreCase("api")) {
List<TableField> keys = tableFields.stream().filter(tableField -> tableField.isPrimaryKey() && tableField.isChecked()).toList();
List<TableField> notKeys = tableFields.stream().filter(tableField -> tableField.isChecked() && !tableField.isPrimaryKey()).toList();
if (CollectionUtils.isNotEmpty(keys) && extractType.equals(DatasourceServer.UpdateType.add_scope)) {
insetSql = insetSql + " ON DUPLICATE KEY UPDATE ";
List<String> updateColumes = new ArrayList<>();
for (TableField notKey : notKeys) {
updateColumes.add("column = VALUES(column)".replace("column", notKey.getName()));
}
insetSql = insetSql + updateColumes.stream().collect(Collectors.joining(","));
}
insetSql = insetSql + updateColumes.stream().collect(Collectors.joining(","));
}
return insetSql;
}

View File

@@ -23,6 +23,7 @@ import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.core.io.ResourceLoader;
import java.awt.*;
import java.io.*;
import java.net.URLEncoder;
import java.nio.charset.StandardCharsets;
@@ -181,9 +182,10 @@ public class FontManage {
unit = "KB";
size = Double.valueOf(String.format("%.2f", (double) length / 1024));
}
Font font = Font.createFont(Font.TRUETYPE_FONT, new File(filePath));
fontDto.setSize(size);
fontDto.setSizeType(unit);
fontDto.setName(font.getFontName());
} catch (Exception e) {
DEException.throwException(e);
}

View File

@@ -37,7 +37,7 @@ public interface ExtDataVisualizationMapper {
DataVisualizationVO findDvInfo(@Param("dvId") Long dvId,@Param("dvType") String dvType);
IPage<VisualizationResourcePO> findRecent(IPage<VisualizationResourcePO> page, @Param("uid") Long uid, @Param("ew") QueryWrapper<Object> ew);
IPage<VisualizationResourcePO> findRecent(IPage<VisualizationResourcePO> page, @Param("uid") Long uid, @Param("keyword") String keyword, @Param("ew") QueryWrapper<Object> ew);
void copyLinkJump(@Param("copyId") Long copyId);

View File

@@ -12,9 +12,9 @@ import org.apache.ibatis.annotations.Param;
import java.util.List;
@Mapper
public interface ExtVisualizationLinkJumpMapper {
List<VisualizationLinkJumpDTO> queryWithDvId(@Param("dvId") Long dvId,@Param("uid") Long uid);
List<VisualizationLinkJumpDTO> queryWithDvId(@Param("dvId") Long dvId,@Param("uid") Long uid,@Param("isDesktop") Boolean isDesktop);
VisualizationLinkJumpDTO queryWithViewId(@Param("dvId") Long dvId,@Param("viewId") Long viewId,@Param("uid") Long uid);
VisualizationLinkJumpDTO queryWithViewId(@Param("dvId") Long dvId,@Param("viewId") Long viewId,@Param("uid") Long uid,@Param("isDesktop") Boolean isDesktop);
void deleteJumpTargetViewInfo(@Param("dvId") Long dvId,@Param("viewId") Long viewId);

View File

@@ -199,15 +199,12 @@ public class CoreVisualizationManage {
}
queryWrapper.eq("dvResource.type", request.getType());
}
if (StringUtils.isNotBlank(request.getKeyword())) {
queryWrapper.like("dvResource.name", request.getKeyword());
}
String info = CommunityUtils.getInfo();
if (StringUtils.isNotBlank(info)) {
queryWrapper.notExists(String.format(info, "core_opt_recent.resource_id"));
}
queryWrapper.orderBy(true, request.isAsc(), "core_opt_recent.time");
Page<VisualizationResourcePO> page = new Page<>(goPage, pageSize);
return extDataVisualizationMapper.findRecent(page, uid, queryWrapper);
return extDataVisualizationMapper.findRecent(page, uid, request.getKeyword(), queryWrapper);
}
}

View File

@@ -106,7 +106,7 @@ public class VisualizationStoreManage {
queryWrapper.eq("s.resource_type", busiResourceEnum.getFlag());
}
if (StringUtils.isNotBlank(request.getKeyword())) {
queryWrapper.like("v.name", request.getKeyword());
queryWrapper.apply("LOWER(v.name) LIKE LOWER(CONCAT('%', {0}, '%'))", request.getKeyword());
}
String info = CommunityUtils.getInfo();
if (StringUtils.isNotBlank(info)) {

View File

@@ -42,6 +42,7 @@ import io.dataease.log.DeLog;
import io.dataease.model.BusiNodeRequest;
import io.dataease.model.BusiNodeVO;
import io.dataease.operation.manage.CoreOptRecentManage;
import io.dataease.system.manage.CoreUserManage;
import io.dataease.template.dao.auto.entity.VisualizationTemplate;
import io.dataease.template.dao.auto.entity.VisualizationTemplateExtendData;
import io.dataease.template.dao.auto.mapper.VisualizationTemplateExtendDataMapper;
@@ -138,6 +139,9 @@ public class DataVisualizationServer implements DataVisualizationApi {
@Resource
private CoreLicManage coreLicManage;
@Resource
private CoreUserManage coreUserManage;
@Override
public DataVisualizationVO findCopyResource(Long dvId, String busiFlag) {
DataVisualizationVO result = Objects.requireNonNull(CommonBeanFactory.proxy(this.getClass())).findById(new DataVisualizationBaseRequest(dvId, busiFlag));
@@ -156,6 +160,11 @@ public class DataVisualizationServer implements DataVisualizationApi {
Long dvId = request.getId();
String busiFlag = request.getBusiFlag();
DataVisualizationVO result = extDataVisualizationMapper.findDvInfo(dvId, busiFlag);
// get creator
String userName = coreUserManage.getUserName(Long.valueOf(result.getCreateBy()));
if (StringUtils.isNotBlank(userName)) {
result.setCreatorName(userName);
}
if (result != null) {
//获取图表信息
List<ChartViewDTO> chartViewDTOS = chartViewManege.listBySceneId(dvId);
@@ -511,38 +520,38 @@ public class DataVisualizationServer implements DataVisualizationApi {
@Override
public List<BusiNodeVO> tree(BusiNodeRequest request) {
String busiFlag = request.getBusiFlag();
if(busiFlag.equals("dashboard-dataV")){
if (busiFlag.equals("dashboard-dataV")) {
BusiNodeRequest requestDv = new BusiNodeRequest();
BeanUtils.copyBean(requestDv,request);
BeanUtils.copyBean(requestDv, request);
requestDv.setBusiFlag("dashboard");
List<BusiNodeVO> dashboardResult = coreVisualizationManage.tree(requestDv);
List<BusiNodeVO> dashboardResult = coreVisualizationManage.tree(requestDv);
requestDv.setBusiFlag("dataV");
List<BusiNodeVO> dataVResult = coreVisualizationManage.tree(requestDv);
List<BusiNodeVO> dataVResult = coreVisualizationManage.tree(requestDv);
List<BusiNodeVO> result = new ArrayList<>();
if(!CollectionUtils.isEmpty(dashboardResult)){
if (!CollectionUtils.isEmpty(dashboardResult)) {
BusiNodeVO dashboardResultParent = new BusiNodeVO();
dashboardResultParent.setName(Translator.get("i18n_menu.panel"));
dashboardResultParent.setId(-101L);
if(dashboardResult.get(0).getId() == 0){
if (dashboardResult.get(0).getId() == 0) {
dashboardResultParent.setChildren(dashboardResult.get(0).getChildren());
}else{
} else {
dashboardResultParent.setChildren(dashboardResult);
}
result.add(dashboardResultParent);
}
if(!CollectionUtils.isEmpty(dataVResult)){
if (!CollectionUtils.isEmpty(dataVResult)) {
BusiNodeVO dataVResultParent = new BusiNodeVO();
dataVResultParent.setName(Translator.get("i18n_menu.screen"));
dataVResultParent.setId(-102L);
if(dataVResult.get(0).getId() == 0){
if (dataVResult.get(0).getId() == 0) {
dataVResultParent.setChildren(dataVResult.get(0).getChildren());
}else{
} else {
dataVResultParent.setChildren(dataVResult);
}
result.add(dataVResultParent);
}
return result;
}else{
} else {
return coreVisualizationManage.tree(request);
}
}
@@ -820,7 +829,7 @@ public class DataVisualizationServer implements DataVisualizationApi {
wrapper.eq("name", request.getName().trim());
wrapper.eq("node_type", request.getNodeType());
wrapper.eq("type", request.getType());
if(AuthUtils.getUser().getDefaultOid() != null){
if (AuthUtils.getUser().getDefaultOid() != null) {
wrapper.eq("org_id", AuthUtils.getUser().getDefaultOid());
}
if (visualizationInfoMapper.exists(wrapper)) {

View File

@@ -15,6 +15,7 @@ import io.dataease.extensions.datasource.dto.DatasetTableFieldDTO;
import io.dataease.utils.AuthUtils;
import io.dataease.utils.BeanUtils;
import io.dataease.utils.IDUtils;
import io.dataease.utils.ModelUtils;
import io.dataease.visualization.dao.auto.entity.DataVisualizationInfo;
import io.dataease.visualization.dao.auto.entity.VisualizationLinkJump;
import io.dataease.visualization.dao.auto.entity.VisualizationLinkJumpInfo;
@@ -74,7 +75,7 @@ public class VisualizationLinkJumpService implements VisualizationLinkJumpApi {
@Override
public VisualizationLinkJumpBaseResponse queryVisualizationJumpInfo(Long dvId) {
Map<String, VisualizationLinkJumpInfoDTO> resultBase = new HashMap<>();
List<VisualizationLinkJumpDTO> resultLinkJumpList = extVisualizationLinkJumpMapper.queryWithDvId(dvId, AuthUtils.getUser().getUserId());
List<VisualizationLinkJumpDTO> resultLinkJumpList = extVisualizationLinkJumpMapper.queryWithDvId(dvId, AuthUtils.getUser().getUserId(), ModelUtils.isDesktop());
Optional.ofNullable(resultLinkJumpList).orElse(new ArrayList<>()).forEach(resultLinkJump -> {
if (resultLinkJump.getChecked()) {
Long sourceViewId = resultLinkJump.getSourceViewId();
@@ -99,7 +100,7 @@ public class VisualizationLinkJumpService implements VisualizationLinkJumpApi {
@Override
public VisualizationLinkJumpDTO queryWithViewId(Long dvId, Long viewId) {
return extVisualizationLinkJumpMapper.queryWithViewId(dvId, viewId, AuthUtils.getUser().getUserId());
return extVisualizationLinkJumpMapper.queryWithViewId(dvId, viewId, AuthUtils.getUser().getUserId(), ModelUtils.isDesktop());
}
@Transactional

View File

@@ -4186,14 +4186,14 @@ SET FOREIGN_KEY_CHECKS = 1;
INSERT INTO `visualization_subject` (`id`, `name`, `type`, `details`, `delete_flag`, `cover_url`, `create_num`,
`create_time`, `create_by`, `update_time`, `update_by`, `delete_time`, `delete_by`)
VALUES ('10001', '浅色主题', 'system',
'{\"width\":1920,\"height\":1080,\"refreshViewEnable\":false,\"refreshViewLoading\":true,\"refreshUnit\":\"minute\",\"refreshTime\":5,\"scale\":60,\"scaleWidth\":100,\"scaleHeight\":100,\"backgroundColorSelect\":true,\"backgroundImageEnable\":false,\"backgroundType\":\"backgroundColor\",\"background\":\"\",\"openCommonStyle\":true,\"opacity\":1,\"fontSize\":14,\"themeId\":\"10001\",\"color\":\"#000000\",\"backgroundColor\":\"rgba(245, 246, 247, 1)\",\"dashboard\":{\"gap\":\"yes\",\"gapSize\":5,\"resultMode\":\"all\",\"resultCount\":1000,\"themeColor\":\"light\",\"mobileSetting\":{\"customSetting\":false,\"imageUrl\":null,\"backgroundType\":\"image\",\"color\":\"#000\"}},\"component\":{\"chartTitle\":{\"show\":true,\"fontSize\":\"18\",\"hPosition\":\"left\",\"vPosition\":\"top\",\"isItalic\":false,\"isBolder\":true,\"remarkShow\":false,\"remark\":\"\",\"fontFamily\":\"Microsoft YaHei\",\"letterSpace\":\"0\",\"fontShadow\":false,\"color\":\"#000000\",\"remarkBackgroundColor\":\"#ffffff\"},\"chartColor\":{\"basicStyle\":{\"colorScheme\":\"default\",\"colors\":[\"#1E90FF\",\"#90EE90\",\"#00CED1\",\"#E2BD84\",\"#7A90E0\",\"#3BA272\",\"#2BE7FF\",\"#0A8ADA\",\"#FFD700\"],\"alpha\":100,\"gradient\":false,\"mapStyle\":\"normal\",\"areaBaseColor\":\"#FFFFFF\",\"areaBorderColor\":\"#303133\",\"gaugeStyle\":\"default\",\"tableBorderColor\":\"#E6E7E4\",\"tableScrollBarColor\":\"#00000024\"},\"misc\":{\"mapLineGradient\":false,\"mapLineSourceColor\":\"#146C94\",\"mapLineTargetColor\":\"#576CBC\",\"nameFontColor\":\"#000000\",\"valueFontColor\":\"#5470c6\"},\"tableHeader\":{\"tableHeaderBgColor\":\"#1E90FF\",\"tableHeaderFontColor\":\"#000000\"},\"tableCell\":{\"tableItemBgColor\":\"#FFFFFF\",\"tableFontColor\":\"#000000\"}},\"chartCommonStyle\":{\"backgroundColorSelect\":true,\"backgroundImageEnable\":false,\"backgroundType\":\"innerImage\",\"innerImage\":\"board/board_1.svg\",\"outerImage\":null,\"innerPadding\":12,\"borderRadius\":0,\"backgroundColor\":\"rgba(255,255,255,1)\",\"innerImageColor\":\"rgba(16, 148, 229,1)\"},\"filterStyle\":{\"layout\":\"horizontal\",\"titleLayout\":\"left\",\"labelColor\":\"#000000\",\"titleColor\":\"#000000\",\"color\":\"#000000\",\"borderColor\":\"#F3E7E7\",\"text\":\"#484747\",\"bgColor\":\"#FFFFFF\"},\"tabStyle\":{\"headPosition\":\"left\",\"headFontColor\":\"#OOOOOO\",\"headFontActiveColor\":\"#OOOOOO\",\"headBorderColor\":\"#OOOOOO\",\"headBorderActiveColor\":\"#OOOOOO\"}}}',
'{"width":1920,"height":1080,"refreshViewEnable":false,"refreshViewLoading":true,"refreshUnit":"minute","refreshTime":5,"scale":60,"scaleWidth":100,"scaleHeight":100,"backgroundColorSelect":true,"backgroundImageEnable":false,"backgroundType":"backgroundColor","background":"","openCommonStyle":true,"opacity":1,"fontSize":14,"themeId":"10001","color":"#000000","backgroundColor":"rgba(245, 246, 247, 1)","dashboard":{"gap":"yes","gapSize":5,"resultMode":"all","resultCount":1000,"themeColor":"light","mobileSetting":{"customSetting":false,"imageUrl":null,"backgroundType":"image","color":"#000"}},"component":{"chartTitle":{"show":true,"fontSize":"18","hPosition":"left","vPosition":"top","isItalic":false,"isBolder":true,"remarkShow":false,"remark":"","fontFamily":"Microsoft YaHei","letterSpace":"0","fontShadow":false,"color":"#000000","remarkBackgroundColor":"#ffffff"},"chartColor":{"basicStyle":{"colorScheme":"default","colors":["#1E90FF","#90EE90","#00CED1","#E2BD84","#7A90E0","#3BA272","#2BE7FF","#0A8ADA","#FFD700"],"alpha":100,"gradient":false,"mapStyle":"normal","areaBaseColor":"#FFFFFF","areaBorderColor":"#303133","gaugeStyle":"default","tableBorderColor":"#E6E7E4","tableScrollBarColor":"#00000024"},"misc":{"mapLineGradient":false,"mapLineSourceColor":"#146C94","mapLineTargetColor":"#576CBC","nameFontColor":"#000000","valueFontColor":"#5470c6"},"tableHeader":{"tableHeaderBgColor":"#1E90FF","tableHeaderFontColor":"#000000"},"tableCell":{"tableItemBgColor":"#FFFFFF","tableFontColor":"#000000"}},"chartCommonStyle":{"backgroundColorSelect":true,"backgroundImageEnable":false,"backgroundType":"innerImage","innerImage":"board/board_1.svg","outerImage":null,"innerPadding":12,"borderRadius":0,"backgroundColor":"rgba(255,255,255,1)","innerImageColor":"rgba(16, 148, 229,1)"},"filterStyle":{"layout":"horizontal","titleLayout":"left","labelColor":"#000000","titleColor":"#000000","color":"#000000","borderColor":"#F3E7E7","text":"#484747","bgColor":"#FFFFFF"},"tabStyle":{"headPosition":"left","headFontColor":"#OOOOOO","headFontActiveColor":"#OOOOOO","headBorderColor":"#OOOOOO","headBorderActiveColor":"#OOOOOO"}}}',
0,
'data:image/png;base64,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',
0, 1696427707737, NULL, NULL, NULL, NULL, NULL);
INSERT INTO `visualization_subject` (`id`, `name`, `type`, `details`, `delete_flag`, `cover_url`, `create_num`,
`create_time`, `create_by`, `update_time`, `update_by`, `delete_time`, `delete_by`)
VALUES ('10002', '深色主题', 'system',
'{\"width\":1920,\"height\":1080,\"refreshViewEnable\":false,\"refreshViewLoading\":true,\"refreshUnit\":\"minute\",\"refreshTime\":5,\"scale\":60,\"scaleWidth\":100,\"scaleHeight\":100,\"backgroundColorSelect\":true,\"backgroundImageEnable\":false,\"backgroundType\":\"backgroundColor\",\"background\":\"\",\"openCommonStyle\":true,\"opacity\":1,\"fontSize\":14,\"themeId\":\"10002\",\"color\":\"#000000\",\"backgroundColor\":\"rgba(3, 11, 46, 1)\",\"dashboard\":{\"gap\":\"yes\",\"gapSize\":5,\"resultMode\":\"all\",\"resultCount\":1000,\"themeColor\":\"dark\",\"mobileSetting\":{\"customSetting\":false,\"imageUrl\":null,\"backgroundType\":\"image\",\"color\":\"#000\"}},\"component\":{\"chartTitle\":{\"show\":true,\"fontSize\":\"18\",\"hPosition\":\"left\",\"vPosition\":\"top\",\"isItalic\":false,\"isBolder\":true,\"remarkShow\":false,\"remark\":\"\",\"fontFamily\":\"Microsoft YaHei\",\"letterSpace\":\"0\",\"fontShadow\":false,\"color\":\"#FFFFFF\",\"remarkBackgroundColor\":\"#5A5C62\"},\"chartColor\":{\"basicStyle\":{\"colorScheme\":\"default\",\"colors\":[\"#1E90FF\",\"#90EE90\",\"#00CED1\",\"#E2BD84\",\"#7A90E0\",\"#3BA272\",\"#2BE7FF\",\"#0A8ADA\",\"#FFD700\"],\"alpha\":100,\"gradient\":false,\"mapStyle\":\"darkblue\",\"areaBaseColor\":\"5470C6\",\"areaBorderColor\":\"#EBEEF5\",\"gaugeStyle\":\"default\",\"tableBorderColor\":\"#CCCCCC\",\"tableScrollBarColor\":\"#FFFFFF80\"},\"misc\":{\"mapLineGradient\":false,\"mapLineSourceColor\":\"#2F58CD\",\"mapLineTargetColor\":\"#3795BD\",\"nameFontColor\":\"#ffffff\",\"valueFontColor\":\"#5470c6\"},\"tableHeader\":{\"tableHeaderBgColor\":\"#1E90FF\",\"tableHeaderFontColor\":\"#FFFFFF\"},\"tableCell\":{\"tableItemBgColor\":\"#131E42\",\"tableFontColor\":\"#FFFFFF\"}},\"chartCommonStyle\":{\"backgroundColorSelect\":true,\"backgroundImageEnable\":false,\"backgroundType\":\"innerImage\",\"innerImage\":\"board/board_1.svg\",\"outerImage\":null,\"innerPadding\":12,\"borderRadius\":0,\"backgroundColor\":\"rgba(19,28,66,1)\",\"innerImageColor\":\"#1094E5\"},\"filterStyle\":{\"layout\":\"horizontal\",\"titleLayout\":\"left\",\"labelColor\":\"#FFFFFF\",\"titleColor\":\"#FFFFFF\",\"color\":\"#FFFFFF\",\"borderColor\":\"#484747\",\"text\":\"#AFAFAF\",\"bgColor\":\"#131C42\"},\"tabStyle\":{\"headPosition\":\"left\",\"headFontColor\":\"#FFFFFF\",\"headFontActiveColor\":\"#FFFFFF\",\"headBorderColor\":\"#131E42\",\"headBorderActiveColor\":\"#131E42\"}}}',
'{"width":1920,"height":1080,"refreshViewEnable":false,"refreshViewLoading":true,"refreshUnit":"minute","refreshTime":5,"scale":60,"scaleWidth":100,"scaleHeight":100,"backgroundColorSelect":true,"backgroundImageEnable":false,"backgroundType":"backgroundColor","background":"","openCommonStyle":true,"opacity":1,"fontSize":14,"themeId":"10002","color":"#000000","backgroundColor":"rgba(3, 11, 46, 1)","dashboard":{"gap":"yes","gapSize":5,"resultMode":"all","resultCount":1000,"themeColor":"dark","mobileSetting":{"customSetting":false,"imageUrl":null,"backgroundType":"image","color":"#000"}},"component":{"chartTitle":{"show":true,"fontSize":"18","hPosition":"left","vPosition":"top","isItalic":false,"isBolder":true,"remarkShow":false,"remark":"","fontFamily":"Microsoft YaHei","letterSpace":"0","fontShadow":false,"color":"#FFFFFF","remarkBackgroundColor":"#5A5C62"},"chartColor":{"basicStyle":{"colorScheme":"default","colors":["#1E90FF","#90EE90","#00CED1","#E2BD84","#7A90E0","#3BA272","#2BE7FF","#0A8ADA","#FFD700"],"alpha":100,"gradient":false,"mapStyle":"darkblue","areaBaseColor":"5470C6","areaBorderColor":"#EBEEF5","gaugeStyle":"default","tableBorderColor":"#CCCCCC","tableScrollBarColor":"#FFFFFF80"},"misc":{"mapLineGradient":false,"mapLineSourceColor":"#2F58CD","mapLineTargetColor":"#3795BD","nameFontColor":"#ffffff","valueFontColor":"#5470c6"},"tableHeader":{"tableHeaderBgColor":"#1E90FF","tableHeaderFontColor":"#FFFFFF"},"tableCell":{"tableItemBgColor":"#131E42","tableFontColor":"#FFFFFF"}},"chartCommonStyle":{"backgroundColorSelect":true,"backgroundImageEnable":false,"backgroundType":"innerImage","innerImage":"board/board_1.svg","outerImage":null,"innerPadding":12,"borderRadius":0,"backgroundColor":"rgba(19,28,66,1)","innerImageColor":"#1094E5"},"filterStyle":{"layout":"horizontal","titleLayout":"left","labelColor":"#FFFFFF","titleColor":"#FFFFFF","color":"#FFFFFF","borderColor":"#484747","text":"#AFAFAF","bgColor":"#131C42"},"tabStyle":{"headPosition":"left","headFontColor":"#FFFFFF","headFontActiveColor":"#FFFFFF","headBorderColor":"#131E42","headBorderActiveColor":"#131E42"}}}',
0,
'data:image/png;base64,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',
0, 1696427762072, NULL, NULL, NULL, NULL, NULL);
@@ -4213,7 +4213,7 @@ DROP TABLE IF EXISTS `core_opt_recent`;
CREATE TABLE `core_opt_recent`
(
`id` bigint NOT NULL COMMENT 'ID',
`resource_id` bigint NOT NULL COMMENT '资源ID',
`resource_id` bigint DEFAULT NULL COMMENT '资源ID',
`uid` bigint NOT NULL COMMENT '用户ID',
`resource_type` int NOT NULL COMMENT '资源类型',
`opt_type` int DEFAULT NULL COMMENT '1 新建 2 修改',

View File

@@ -2,4 +2,92 @@ UPDATE `visualization_background` SET `name` = 'Board10' WHERE `id` = 'dark_1';
UPDATE `visualization_subject` SET `name` = 'chart.light_theme' WHERE `id` = '10001';
UPDATE `visualization_subject` SET `name` = 'chart.dark_theme' WHERE `id` = '10002';
ALTER TABLE core_chart_view ADD COLUMN sort_priority longtext null comment '字段排序优先级';
DELETE FROM area where id = '156320571';
DELETE FROM area where id = '156320571';
ALTER TABLE `core_api_traffic` COMMENT = 'API并发限流阈值设置表';
ALTER TABLE `core_copilot_config`
MODIFY COLUMN `copilot_url` varchar(255) NULL DEFAULT NULL COMMENT 'copilot服务端地址',
MODIFY COLUMN `username` varchar(255) NULL DEFAULT NULL COMMENT '用户名',
MODIFY COLUMN `pwd` varchar(255) NULL DEFAULT NULL COMMENT '密码',
COMMENT = 'copilot配置信息表';
ALTER TABLE `core_copilot_msg` COMMENT = 'copilot问答信息表';
ALTER TABLE `core_copilot_token`
MODIFY COLUMN `token` longtext NULL COMMENT 'token值',
MODIFY COLUMN `update_time` bigint(0) NULL DEFAULT NULL COMMENT '更新时间',
COMMENT = 'copilot token记录表';
ALTER TABLE `core_font`
MODIFY COLUMN `size` double NULL DEFAULT NULL COMMENT '文件大小',
MODIFY COLUMN `size_type` varchar(255) NULL DEFAULT NULL COMMENT '存储单位',
COMMENT = '字体表';
ALTER TABLE `de_template_version`
MODIFY COLUMN `installed_rank` int(0) NOT NULL COMMENT '主键',
MODIFY COLUMN `version` varchar(50) NULL DEFAULT NULL COMMENT '版本',
MODIFY COLUMN `description` varchar(200) NULL DEFAULT NULL COMMENT '描述',
MODIFY COLUMN `type` varchar(20) NULL DEFAULT NULL COMMENT '类型',
MODIFY COLUMN `script` varchar(1000) NOT NULL COMMENT '脚本',
MODIFY COLUMN `checksum` int(0) NULL DEFAULT NULL COMMENT 'CheckSum校验码',
MODIFY COLUMN `installed_by` varchar(100) NULL DEFAULT NULL COMMENT '安装人',
MODIFY COLUMN `installed_on` timestamp(0) NOT NULL DEFAULT CURRENT_TIMESTAMP(0) COMMENT '安装时间',
MODIFY COLUMN `execution_time` int(0) NULL DEFAULT NULL COMMENT '执行时间',
MODIFY COLUMN `success` tinyint(1) NOT NULL COMMENT '执行状态',
COMMENT = 'dataease模板配置版本记录表';
ALTER TABLE `demo_tea_material` COMMENT = '连锁茶饮销售看板demo数据';
ALTER TABLE `demo_tea_order` COMMENT = '连锁茶饮销售看板demo数据';
ALTER TABLE `license`
MODIFY COLUMN `id` bigint(0) NOT NULL COMMENT 'ID',
MODIFY COLUMN `update_time` bigint(0) NULL DEFAULT NULL COMMENT '更新时间',
MODIFY COLUMN `license` longtext NULL COMMENT 'license',
MODIFY COLUMN `f2c_license` longtext NULL COMMENT 'license描述信息',
COMMENT = '企业版许可证信息表';
ALTER TABLE `visualization_report_filter` COMMENT = '定时报告过自定义过滤组件信息';
ALTER TABLE `visualization_subject`
MODIFY COLUMN `id` varchar(50) NOT NULL COMMENT '主键';
ALTER TABLE `xpack_platform_token`
MODIFY COLUMN `id` int(0) NOT NULL COMMENT '主键',
MODIFY COLUMN `token` varchar(255) NOT NULL COMMENT '认证token',
MODIFY COLUMN `create_time` bigint(0) NOT NULL COMMENT '创建时间',
MODIFY COLUMN `exp_time` bigint(0) NOT NULL COMMENT '过期时间',
COMMENT = '认证token信息表';
ALTER TABLE `xpack_setting_authentication` COMMENT = '认证设置';
ALTER TABLE `xpack_share` COMMENT = '公共链接';
ALTER TABLE `xpack_threshold_info`
MODIFY COLUMN `id` bigint(0) NOT NULL COMMENT '主键',
COMMENT = '告警信息表';
ALTER TABLE `xpack_threshold_instance`
MODIFY COLUMN `id` bigint(0) NOT NULL COMMENT '主键',
COMMENT = '告警实例表';
ALTER TABLE `core_area_custom`
MODIFY COLUMN `id` varchar(255) NOT NULL COMMENT '主键',
MODIFY COLUMN `name` varchar(255) NOT NULL COMMENT '自定义区域名称',
MODIFY COLUMN `pid` varchar(255) NOT NULL COMMENT '父级ID';
ALTER TABLE `core_export_task`
MODIFY COLUMN `id` varchar(255) NOT NULL COMMENT '主键',
MODIFY COLUMN `user_id` bigint(0) NOT NULL COMMENT '用户ID',
MODIFY COLUMN `file_name` varchar(2048) NULL DEFAULT NULL COMMENT '文件名称',
MODIFY COLUMN `file_size` double NULL DEFAULT NULL COMMENT '文件大小',
MODIFY COLUMN `file_size_unit` varchar(255) NULL DEFAULT NULL COMMENT '单位',
MODIFY COLUMN `export_from` varchar(255) NULL DEFAULT NULL COMMENT '导出来源ID',
MODIFY COLUMN `export_status` varchar(255) NULL DEFAULT NULL COMMENT '导出状态',
MODIFY COLUMN `export_from_type` varchar(255) NULL DEFAULT NULL COMMENT '导出来源类型',
MODIFY COLUMN `export_time` bigint(0) NULL DEFAULT NULL COMMENT '导出时间',
MODIFY COLUMN `export_progress` varchar(255) NULL DEFAULT NULL COMMENT '导出进度',
MODIFY COLUMN `export_machine_name` varchar(512) NULL DEFAULT NULL COMMENT '导出机器名称';
ALTER TABLE `core_ds_finish_page` COMMENT = '是否显示完成页面记录表';

View File

@@ -70,6 +70,10 @@ VALUES (30, 0, 1, 'toolbox', null, 7, 'icon_template', '/toolbox', 1, 1, 0);
INSERT INTO `core_menu`
VALUES (31, 30, 2, 'template-setting', 'toolbox/template-setting', 1, 'icon_template', '/template-setting', 0, 1, 1);
ALTER TABLE `core_opt_recent`
MODIFY COLUMN `resource_id` bigint NULL COMMENT '资源ID';
ALTER TABLE core_opt_recent
ADD `resource_name` varchar(255) NULL COMMENT '资源名称';

View File

@@ -4,3 +4,91 @@ UPDATE `visualization_subject` SET `name` = 'chart.dark_theme' WHERE `id` = '100
CREATE INDEX idx_dataset_table_task_log_A ON core_datasource_task_log(ds_id, table_name, start_time);
ALTER TABLE core_chart_view ADD COLUMN sort_priority longtext null comment '字段排序优先级';
DELETE FROM area where id = '156320571';
ALTER TABLE `core_api_traffic` COMMENT = 'API并发限流阈值设置表';
ALTER TABLE `core_copilot_config`
MODIFY COLUMN `copilot_url` varchar(255) NULL DEFAULT NULL COMMENT 'copilot服务端地址',
MODIFY COLUMN `username` varchar(255) NULL DEFAULT NULL COMMENT '用户名',
MODIFY COLUMN `pwd` varchar(255) NULL DEFAULT NULL COMMENT '密码',
COMMENT = 'copilot配置信息表';
ALTER TABLE `core_copilot_msg` COMMENT = 'copilot问答信息表';
ALTER TABLE `core_copilot_token`
MODIFY COLUMN `token` longtext NULL COMMENT 'token值',
MODIFY COLUMN `update_time` bigint(0) NULL DEFAULT NULL COMMENT '更新时间',
COMMENT = 'copilot token记录表';
ALTER TABLE `core_font`
MODIFY COLUMN `size` double NULL DEFAULT NULL COMMENT '文件大小',
MODIFY COLUMN `size_type` varchar(255) NULL DEFAULT NULL COMMENT '存储单位',
COMMENT = '字体表';
ALTER TABLE `de_template_version`
MODIFY COLUMN `installed_rank` int(0) NOT NULL COMMENT '主键',
MODIFY COLUMN `version` varchar(50) NULL DEFAULT NULL COMMENT '版本',
MODIFY COLUMN `description` varchar(200) NULL DEFAULT NULL COMMENT '描述',
MODIFY COLUMN `type` varchar(20) NULL DEFAULT NULL COMMENT '类型',
MODIFY COLUMN `script` varchar(1000) NOT NULL COMMENT '脚本',
MODIFY COLUMN `checksum` int(0) NULL DEFAULT NULL COMMENT 'CheckSum校验码',
MODIFY COLUMN `installed_by` varchar(100) NULL DEFAULT NULL COMMENT '安装人',
MODIFY COLUMN `installed_on` timestamp(0) NOT NULL DEFAULT CURRENT_TIMESTAMP(0) COMMENT '安装时间',
MODIFY COLUMN `execution_time` int(0) NULL DEFAULT NULL COMMENT '执行时间',
MODIFY COLUMN `success` tinyint(1) NOT NULL COMMENT '执行状态',
COMMENT = 'dataease模板配置版本记录表';
ALTER TABLE `demo_tea_material` COMMENT = '连锁茶饮销售看板demo数据';
ALTER TABLE `demo_tea_order` COMMENT = '连锁茶饮销售看板demo数据';
ALTER TABLE `license`
MODIFY COLUMN `id` bigint(0) NOT NULL COMMENT 'ID',
MODIFY COLUMN `update_time` bigint(0) NULL DEFAULT NULL COMMENT '更新时间',
MODIFY COLUMN `license` longtext NULL COMMENT 'license',
MODIFY COLUMN `f2c_license` longtext NULL COMMENT 'license描述信息',
COMMENT = '企业版许可证信息表';
ALTER TABLE `visualization_report_filter` COMMENT = '定时报告过自定义过滤组件信息';
ALTER TABLE `visualization_subject`
MODIFY COLUMN `id` varchar(50) NOT NULL COMMENT '主键';
ALTER TABLE `xpack_platform_token`
MODIFY COLUMN `id` int(0) NOT NULL COMMENT '主键',
MODIFY COLUMN `token` varchar(255) NOT NULL COMMENT '认证token',
MODIFY COLUMN `create_time` bigint(0) NOT NULL COMMENT '创建时间',
MODIFY COLUMN `exp_time` bigint(0) NOT NULL COMMENT '过期时间',
COMMENT = '认证token信息表';
ALTER TABLE `xpack_setting_authentication` COMMENT = '认证设置';
ALTER TABLE `xpack_share` COMMENT = '公共链接';
ALTER TABLE `xpack_threshold_info`
MODIFY COLUMN `id` bigint(0) NOT NULL COMMENT '主键',
COMMENT = '告警信息表';
ALTER TABLE `xpack_threshold_instance`
MODIFY COLUMN `id` bigint(0) NOT NULL COMMENT '主键',
COMMENT = '告警实例表';
ALTER TABLE `core_area_custom`
MODIFY COLUMN `id` varchar(255) NOT NULL COMMENT '主键',
MODIFY COLUMN `name` varchar(255) NOT NULL COMMENT '自定义区域名称',
MODIFY COLUMN `pid` varchar(255) NOT NULL COMMENT '父级ID';
ALTER TABLE `core_export_task`
MODIFY COLUMN `id` varchar(255) NOT NULL COMMENT '主键',
MODIFY COLUMN `user_id` bigint(0) NOT NULL COMMENT '用户ID',
MODIFY COLUMN `file_name` varchar(2048) NULL DEFAULT NULL COMMENT '文件名称',
MODIFY COLUMN `file_size` double NULL DEFAULT NULL COMMENT '文件大小',
MODIFY COLUMN `file_size_unit` varchar(255) NULL DEFAULT NULL COMMENT '单位',
MODIFY COLUMN `export_from` varchar(255) NULL DEFAULT NULL COMMENT '导出来源ID',
MODIFY COLUMN `export_status` varchar(255) NULL DEFAULT NULL COMMENT '导出状态',
MODIFY COLUMN `export_from_type` varchar(255) NULL DEFAULT NULL COMMENT '导出来源类型',
MODIFY COLUMN `export_time` bigint(0) NULL DEFAULT NULL COMMENT '导出时间',
MODIFY COLUMN `export_progress` varchar(255) NULL DEFAULT NULL COMMENT '导出进度',
MODIFY COLUMN `export_machine_name` varchar(512) NULL DEFAULT NULL COMMENT '导出机器名称';
ALTER TABLE `core_ds_finish_page` COMMENT = '是否显示完成页面记录表';

View File

@@ -233,7 +233,11 @@
LEFT JOIN core_store ON dvResource.id = core_store.resource_id
AND core_store.uid = #{uid}
INNER JOIN core_opt_recent ON dvResource.resource_id = core_opt_recent.resource_id
AND core_opt_recent.uid = #{uid} ${ew.customSqlSegment}
AND core_opt_recent.uid = #{uid}
<if test="keyword">
AND LOWER(dvResource.name) LIKE LOWER(CONCAT('%', #{keyword}, '%'))
</if>
${ew.customSqlSegment}
</select>
<insert id="copyLinkJump">
@@ -409,8 +413,8 @@
core_chart_view.table_id,
core_chart_view.`type`,
core_chart_view.render,
core_chart_view.scene_id as 'visualization_id', core_dataset_table_field.id AS 'field_id', core_dataset_table_field.origin_name,
core_dataset_table_field.`name` AS 'field_name', core_dataset_table_field.type AS 'field_type', core_dataset_table_field.de_type
core_chart_view.scene_id as `visualization_id`, core_dataset_table_field.id AS `field_id`, core_dataset_table_field.origin_name,
core_dataset_table_field.`name` AS `field_name`, core_dataset_table_field.type AS `field_type`, core_dataset_table_field.de_type
FROM core_chart_view
LEFT JOIN core_dataset_table_field
ON core_chart_view.table_id = core_dataset_table_field.dataset_group_id

View File

@@ -30,7 +30,7 @@
<resultMap id="BaseResultMapDTO" type="io.dataease.api.visualization.dto.VisualizationLinkJumpDTO"
extends="LinkJumpBaseResultMap">
<collection property="linkJumpInfoArray" ofType="io.dataease.api.visualization.dto.VisualizationLinkJumpInfoDTO"
column="{id=id,source_view_id=source_view_id,uid=queryUid}"
column="{id=id,source_view_id=source_view_id,uid=queryUid, isDesktop=isDesktop}"
select="getLinkJumpInfo">
</collection>
</resultMap>
@@ -85,7 +85,9 @@
visualization_link_jump_info.window_size,
visualization_link_jump_info.target_dv_id,
visualization_link_jump_info.content,
<if test="!isDesktop">
xpack_share.uuid AS publicJumpId,
</if>
ifnull( visualization_link_jump_info.checked, 0 ) AS checked,
ifnull( visualization_link_jump_info.attach_params, 0 ) AS attach_params,
visualization_link_jump_target_view_info.target_id,
@@ -102,20 +104,29 @@
LEFT JOIN visualization_link_jump_info ON visualization_link_jump.id = visualization_link_jump_info.link_jump_id
AND core_dataset_table_field.id = visualization_link_jump_info.source_field_id
LEFT JOIN visualization_link_jump_target_view_info ON visualization_link_jump_info.id = visualization_link_jump_target_view_info.link_jump_info_id
<if test="!isDesktop">
LEFT JOIN xpack_share ON xpack_share.creator = #{uid}
AND visualization_link_jump_info.target_dv_id = xpack_share.resource_id
</if>
left join visualization_outer_params_info on visualization_outer_params_info.params_info_id = visualization_link_jump_target_view_info.target_view_id
WHERE
core_chart_view.id = #{source_view_id}
AND core_chart_view.type != 'VQuery'
ORDER BY
CONVERT (
core_dataset_table_field.NAME USING gbk)
<if test="!isDesktop">
ORDER BY
CONVERT (
core_dataset_table_field.NAME USING gbk)
</if>
<if test="isDesktop">
ORDER BY core_dataset_table_field.name;
</if>
</select>
<select id="queryWithDvId" resultMap="BaseResultMapDTO">
SELECT core_chart_view.id AS source_view_id,
${uid} as queryUid,
${isDesktop} as isDesktop,
visualization_link_jump.id,
#{dvId} as source_dv_id, visualization_link_jump.link_jump_info,
ifnull(core_chart_view.jump_active, 0) AS checked
@@ -153,6 +164,7 @@
<select id="queryWithViewId" resultMap="BaseResultMapDTO">
SELECT core_chart_view.id AS source_view_id,
${uid} as queryUid,
${isDesktop} as isDesktop,
visualization_link_jump.id,
#{dvId} as source_dv_id, visualization_link_jump.link_jump_info,
ifnull(visualization_link_jump.checked, 0) AS checked
@@ -176,109 +188,58 @@
</select>
<delete id="deleteJumpTargetViewInfo">
DELETE
ljtv
FROM
visualization_link_jump_target_view_info ljtv,
visualization_link_jump_info lji,
visualization_link_jump lj
WHERE
ljtv.link_jump_info_id = lji.id
AND lji.link_jump_id = lj.id
AND lj.source_dv_id =
#{dvId}
AND
lj
.
source_view_id
=
#{viewId}
DELETE FROM visualization_link_jump_target_view_info
WHERE link_jump_info_id IN (
SELECT lji.id
FROM visualization_link_jump_info lji
JOIN visualization_link_jump lj ON lji.link_jump_id = lj.id
WHERE lj.source_dv_id = #{dvId}
AND lj.source_view_id = #{viewId}
);
</delete>
<delete id="deleteJumpInfo">
DELETE
lji
FROM
visualization_link_jump_info lji,
visualization_link_jump lj
WHERE
lji.link_jump_id = lj.id
AND lj.source_dv_id =
#{dvId}
AND
lj
.
source_view_id
=
#{viewId}
DELETE FROM visualization_link_jump_info
WHERE link_jump_id IN (
SELECT lj.id
FROM visualization_link_jump lj
WHERE lj.source_dv_id = #{dvId}
AND lj.source_view_id = #{viewId}
);
</delete>
<delete id="deleteJump">
DELETE
lj
FROM
visualization_link_jump lj
WHERE
lj.source_dv_id =
#{dvId}
AND
lj
.
source_view_id
=
#{viewId}
DELETE FROM visualization_link_jump
WHERE source_dv_id = #{dvId}
AND source_view_id = #{viewId}
</delete>
<delete id="deleteJumpTargetViewInfoWithVisualization">
DELETE
ljtv
FROM
visualization_link_jump_target_view_info ljtv,
visualization_link_jump_info lji,
visualization_link_jump lj
WHERE
ljtv.link_jump_info_id = lji.id
AND lji.link_jump_id = lj.id
AND (lj.source_dv_id =
#{dvId}
or
lji
.
target_dv_id
=
#{dvId}
DELETE FROM visualization_link_jump_target_view_info
WHERE link_jump_info_id IN (
SELECT lji.id
FROM visualization_link_jump_info lji
JOIN visualization_link_jump lj ON lji.link_jump_id = lj.id
WHERE lj.source_dv_id = #{dvId}
OR lji.target_dv_id = #{dvId}
)
</delete>
<delete id="deleteJumpInfoWithVisualization">
DELETE
lji
FROM
visualization_link_jump_info lji,
visualization_link_jump lj
WHERE
lji.link_jump_id = lj.id
AND (lj.source_dv_id =
#{dvId}
or
lji
.
target_dv_id
=
#{dvId}
DELETE FROM visualization_link_jump_info
WHERE link_jump_id IN (
SELECT lj.id
FROM visualization_link_jump lj
WHERE lj.source_dv_id = #{dvId}
OR lj.target_dv_id = #{dvId}
)
</delete>
<delete id="deleteJumpWithVisualization">
DELETE
lj
FROM
visualization_link_jump lj
WHERE
lj.source_dv_id =
#{dvId}
</delete>
<delete id="deleteJumpWithVisualization">
DELETE FROM visualization_link_jump
WHERE source_dv_id = #{dvId}
</delete>
<select id="getTargetVisualizationJumpInfo" resultMap="AllJumpMap">
SELECT DISTINCT

View File

@@ -85,14 +85,17 @@
<delete id="deleteViewLinkageField">
DELETE pvl
FROM
visualization_linkage pvl,
visualization_linkage_field pvlf
WHERE
pvl.id = pvlf.linkage_id
AND pvl.source_view_id = #{sourceViewId}
AND pvl.dv_id = #{dvId}
DELETE FROM visualization_linkage
WHERE id IN (
SELECT id FROM (
SELECT pvl.id
FROM visualization_linkage pvl
JOIN visualization_linkage_field pvlf
ON pvl.id = pvlf.linkage_id
WHERE pvl.source_view_id = #{sourceViewId}
AND pvl.dv_id = #{dvId}
) AS temp_table
)
</delete>
<select id="getPanelAllLinkageInfo" resultMap="AllLinkageMap">