refactor: 初始化时仪表板视图删的时候,不在复制对应的视图

This commit is contained in:
wangjiahao 2022-02-25 12:00:28 +08:00
parent a369c712b5
commit 5166facf16
4 changed files with 37 additions and 28 deletions

View File

@ -174,7 +174,7 @@
panel_link_jump.checked,
panel_link_jump.id as copy_from,
#{copyId} as copy_id
from panel_link_jump left join
from panel_link_jump inner join
(SELECT
pvs.panel_id as s_panel_id,
pvs.chart_view_id as s_chart_view_id,
@ -182,7 +182,7 @@
pvt.chart_view_id as t_chart_view_id
FROM
panel_view pvt
LEFT JOIN panel_view pvs ON pvt.copy_from = pvs.id
inner JOIN panel_view pvs ON pvt.copy_from = pvs.id
WHERE
pvt.copy_id = #{copyId}) panel_view_copy on panel_link_jump.source_panel_id = panel_view_copy.s_panel_id
and panel_link_jump.source_view_id = panel_view_copy.s_chart_view_id
@ -213,7 +213,7 @@
#{copyId}
FROM
panel_link_jump_info
LEFT JOIN (
inner JOIN (
SELECT
id AS t_id,
copy_from AS s_id
@ -241,7 +241,7 @@
#{copyId} AS copy_id
FROM
panel_link_jump_target_view_info
LEFT JOIN (
inner JOIN (
SELECT
id AS t_id,
copy_from AS s_id
@ -251,5 +251,4 @@
copy_id = #{copyId}
) plji_copy ON panel_link_jump_target_view_info.link_jump_info_id = plji_copy.s_id
</insert>
</mapper>

View File

@ -144,7 +144,7 @@
pvt.chart_view_id AS t_chart_view_id
FROM
panel_view pvt
LEFT JOIN panel_view pvs ON pvt.copy_from = pvs.id
inner JOIN panel_view pvs ON pvt.copy_from = pvs.id
WHERE
pvt.copy_id = #{copyId}
) pv_source_copy ON panel_view_linkage.panel_id = pv_source_copy.s_panel_id
@ -157,7 +157,7 @@
pvt.chart_view_id AS t_chart_view_id
FROM
panel_view pvt
LEFT JOIN panel_view pvs ON pvt.copy_from = pvs.id
inner JOIN panel_view pvs ON pvt.copy_from = pvs.id
WHERE
pvt.copy_id = #{copyId}
) pv_target_copy ON panel_view_linkage.panel_id = pv_target_copy.s_panel_id

View File

@ -94,19 +94,20 @@
uuid() AS id,
#{newPanelId},
uuid() AS chart_view_id,
create_by,
create_time,
update_by,
update_time,
`position`,
panel_id as copy_from_panel,
chart_view_id as copy_from_view,
id AS copy_from,
panel_view.create_by,
panel_view.create_time,
panel_view.update_by,
panel_view.update_time,
panel_view.`position`,
panel_view.panel_id as copy_from_panel,
panel_view.chart_view_id as copy_from_view,
panel_view.id AS copy_from,
#{copyId} as copyId
FROM
panel_view
panel_view inner join chart_view on panel_view.chart_view_id = chart_view.id
WHERE
panel_id = #{sourcePanelId}
and chart_view.id is not null
</insert>

View File

@ -1,5 +1,6 @@
package io.dataease.service.panel;
import com.alibaba.fastjson.JSON;
import io.dataease.auth.annotation.DeCleaner;
import io.dataease.base.domain.*;
import io.dataease.base.mapper.ChartViewMapper;
@ -311,25 +312,33 @@ public class PanelGroupService {
List<PanelView> panelViewList = panelViewService.findPanelViews(copyId);
String panelData = panelGroupDTO.getPanelData();
if (CollectionUtils.isNotEmpty(panelViewList) && StringUtils.isNotEmpty(panelData)) {
//TODO 替换panel_data viewId 数据 并保存
for (PanelView panelView : panelViewList) {
panelData = panelData.replaceAll(panelView.getCopyFromView(), panelView.getChartViewId());
PanelView panelViewtemp = new PanelView();
try {
//TODO 替换panel_data viewId 数据 并保存
for (PanelView panelView : panelViewList) {
panelViewtemp = panelView;
panelData = panelData.replaceAll(panelView.getCopyFromView(), panelView.getChartViewId());
}
panelGroupDTO.setPanelData(panelData);
panelGroupMapper.updateByPrimaryKeySelective(panelGroupDTO);
//TODO 复制跳转信息 copy panel_link_jump panel_link_jump_info panel_link_jump_target_view_info
extPanelLinkJumpMapper.copyLinkJump(copyId);
extPanelLinkJumpMapper.copyLinkJumpInfo(copyId);
extPanelLinkJumpMapper.copyLinkJumpTarget(copyId);
//TODO 复制联动信息 copy panel_view_linkage_field panel_view_linkage
extPanelViewLinkageMapper.copyViewLinkage(copyId);
extPanelViewLinkageMapper.copyViewLinkageField(copyId);
}catch (Exception e){
e.printStackTrace();
System.out.println("错误===》panel:"+panelGroupDTO.getId()+";panelView:"+ JSON.toJSONString(panelViewtemp));
}
panelGroupDTO.setPanelData(panelData);
panelGroupMapper.updateByPrimaryKeySelective(panelGroupDTO);
//TODO 复制跳转信息 copy panel_link_jump panel_link_jump_info panel_link_jump_target_view_info
extPanelLinkJumpMapper.copyLinkJump(copyId);
extPanelLinkJumpMapper.copyLinkJumpInfo(copyId);
extPanelLinkJumpMapper.copyLinkJumpTarget(copyId);
//TODO 复制联动信息 copy panel_view_linkage_field panel_view_linkage
extPanelViewLinkageMapper.copyViewLinkage(copyId);
extPanelViewLinkageMapper.copyViewLinkageField(copyId);
}
}
//TODO 清理已经复制过的Panel_view
PanelViewExample clearViewExample = new PanelViewExample();
clearViewExample.createCriteria().andCopyFromIsNull();
panelViewMapper.deleteByExample(clearViewExample);
LogUtil.info("=====v1.8版本 仪表板私有化【结束】=====");
}