Browse Source

REPORT-80693 数据脱敏远程设计下的性能问题

变量名写错了,改一下
release/11.0
Yvan-欧阳帆 2 years ago
parent
commit
3d379535a0
  1. 2
      designer-base/src/main/java/com/fr/design/data/datapane/preview/desensitization/TableDataPreviewDesensitizeManager.java
  2. 14
      designer-base/src/main/java/com/fr/design/data/datapane/preview/desensitization/view/rule/DesensitizationRuleChoosePane.java
  3. 8
      designer-base/src/main/java/com/fr/design/data/datapane/preview/desensitization/view/rule/DesensitizationRulePane.java
  4. 14
      designer-base/src/main/java/com/fr/design/data/datapane/preview/desensitization/view/setting/TableDataDesensitizationTableModel.java
  5. 6
      designer-base/src/main/java/com/fr/design/data/datapane/preview/desensitization/view/setting/TableDataDesensitizationTablePane.java

2
designer-base/src/main/java/com/fr/design/data/datapane/preview/desensitization/TableDataPreviewDesensitizeManager.java

@ -83,7 +83,7 @@ public class TableDataPreviewDesensitizeManager implements DesensitizationManage
Collection<TableDataDesensitizationItem> desensitizationItems = ((DesensitizationTableData) tableData).getDesensitizationConfig().getDesensitizationItems(); Collection<TableDataDesensitizationItem> desensitizationItems = ((DesensitizationTableData) tableData).getDesensitizationConfig().getDesensitizationItems();
if (DesentizationUtils.isCollectionNotEmpty(desensitizationItems)) { if (DesentizationUtils.isCollectionNotEmpty(desensitizationItems)) {
// 更新规则 // 更新规则
desensitizationItems = TableDataDesensitizeManager.getInstance().dealWithLastedRules(desensitizationItems); desensitizationItems = TableDataDesensitizeManager.getInstance().dealWithlatestRules(desensitizationItems);
// 对脱敏配置项集合做过滤和排序处理 // 对脱敏配置项集合做过滤和排序处理
List<TableDataDesensitizationItem> items = desensitizationItems.stream() List<TableDataDesensitizationItem> items = desensitizationItems.stream()
.filter(item -> isAvaliableItem4Preview(item, model)) .filter(item -> isAvaliableItem4Preview(item, model))

14
designer-base/src/main/java/com/fr/design/data/datapane/preview/desensitization/view/rule/DesensitizationRuleChoosePane.java

@ -49,10 +49,10 @@ public class DesensitizationRuleChoosePane extends JPanel {
private DesensitizationRuleSource currentRuleSource; private DesensitizationRuleSource currentRuleSource;
private Map<DesensitizationRuleSource, Map<String, DesensitizationRule>> lastedRules; private Map<DesensitizationRuleSource, Map<String, DesensitizationRule>> latestRules;
public DesensitizationRuleChoosePane(Map<DesensitizationRuleSource, Map<String, DesensitizationRule>> lastedRules) { public DesensitizationRuleChoosePane(Map<DesensitizationRuleSource, Map<String, DesensitizationRule>> latestRules) {
this.lastedRules = lastedRules; this.latestRules = latestRules;
this.cardLayout = new CardLayout(); this.cardLayout = new CardLayout();
this.setLayout(cardLayout); this.setLayout(cardLayout);
serverRuleEditPane = new UITableEditorPane<>(new DesensitizationRuleChooseTableModel(this, true)); serverRuleEditPane = new UITableEditorPane<>(new DesensitizationRuleChooseTableModel(this, true));
@ -80,8 +80,8 @@ public class DesensitizationRuleChoosePane extends JPanel {
* 展示当前规则 * 展示当前规则
*/ */
private void populateDesensitizationRules() { private void populateDesensitizationRules() {
serverRuleEditPane.populate(lastedRules.get(DesensitizationRuleSource.SERVER).values().toArray(new DesensitizationRule[0])); serverRuleEditPane.populate(latestRules.get(DesensitizationRuleSource.SERVER).values().toArray(new DesensitizationRule[0]));
customRuleEditPane.populate(lastedRules.get(DesensitizationRuleSource.CUSTOM).values().toArray(new DesensitizationRule[0])); customRuleEditPane.populate(latestRules.get(DesensitizationRuleSource.CUSTOM).values().toArray(new DesensitizationRule[0]));
} }
/** /**
@ -147,7 +147,7 @@ public class DesensitizationRuleChoosePane extends JPanel {
return DesensitizationRule.getDescription(rule); return DesensitizationRule.getDescription(rule);
case 3: case 3:
// 脱敏规则状态 // 脱敏规则状态
DesensitizationRuleStatus ruleStatus = DesensitizationRuleManager.getInstance().getRuleStatus(rule, lastedRules); DesensitizationRuleStatus ruleStatus = DesensitizationRuleManager.getInstance().getRuleStatus(rule, latestRules);
// 非正常状态需要标记为异常 // 非正常状态需要标记为异常
return ruleStatus == DesensitizationRuleStatus.NORMAL ? StringUtils.EMPTY : Toolkit.i18nText("Fine-Design_Report_Desensitization_Rule_Status_Abnormal"); return ruleStatus == DesensitizationRuleStatus.NORMAL ? StringUtils.EMPTY : Toolkit.i18nText("Fine-Design_Report_Desensitization_Rule_Status_Abnormal");
default: default:
@ -196,7 +196,7 @@ public class DesensitizationRuleChoosePane extends JPanel {
* @param rule * @param rule
*/ */
public void refreshRuleStatus(DesensitizationRule rule) { public void refreshRuleStatus(DesensitizationRule rule) {
DesensitizationRuleStatus ruleStatus = DesensitizationRuleManager.getInstance().getRuleStatus(rule, lastedRules); DesensitizationRuleStatus ruleStatus = DesensitizationRuleManager.getInstance().getRuleStatus(rule, latestRules);
if (ruleStatus == DesensitizationRuleStatus.NORMAL) { if (ruleStatus == DesensitizationRuleStatus.NORMAL) {
// 正常规则时,重置提示Label // 正常规则时,重置提示Label
this.ruleStatusLabel.setText(StringUtils.EMPTY); this.ruleStatusLabel.setText(StringUtils.EMPTY);

8
designer-base/src/main/java/com/fr/design/data/datapane/preview/desensitization/view/rule/DesensitizationRulePane.java

@ -33,16 +33,16 @@ public class DesensitizationRulePane extends BasicBeanPane<DesensitizationRule>
/** /**
* 最新的所有规则 * 最新的所有规则
*/ */
private Map<DesensitizationRuleSource, Map<String, DesensitizationRule>> lastedRules; private Map<DesensitizationRuleSource, Map<String, DesensitizationRule>> latestRules;
/** /**
* 内容面板 * 内容面板
*/ */
private JPanel contentPane; private JPanel contentPane;
public DesensitizationRulePane(Map<DesensitizationRuleSource, Map<String, DesensitizationRule>> lastedRules) { public DesensitizationRulePane(Map<DesensitizationRuleSource, Map<String, DesensitizationRule>> latestRules) {
this.setLayout(FRGUIPaneFactory.createBorderLayout()); this.setLayout(FRGUIPaneFactory.createBorderLayout());
this.lastedRules = lastedRules; this.latestRules = latestRules;
initPane(); initPane();
} }
@ -54,7 +54,7 @@ public class DesensitizationRulePane extends BasicBeanPane<DesensitizationRule>
// 规则来源选择Pane // 规则来源选择Pane
ruleSourceChoosePane = new DesensitizationRuleSourceChoosePane(this); ruleSourceChoosePane = new DesensitizationRuleSourceChoosePane(this);
// 规则选择Pane // 规则选择Pane
ruleChoosePane = new DesensitizationRuleChoosePane(lastedRules); ruleChoosePane = new DesensitizationRuleChoosePane(latestRules);
contentPane.add(ruleSourceChoosePane, BorderLayout.NORTH); contentPane.add(ruleSourceChoosePane, BorderLayout.NORTH);
contentPane.add(ruleChoosePane, BorderLayout.CENTER); contentPane.add(ruleChoosePane, BorderLayout.CENTER);
} }

14
designer-base/src/main/java/com/fr/design/data/datapane/preview/desensitization/view/setting/TableDataDesensitizationTableModel.java

@ -75,11 +75,11 @@ public class TableDataDesensitizationTableModel extends UITableModelAdapter<Tabl
/** /**
* 当前最新的所有规则 * 当前最新的所有规则
*/ */
private Map<DesensitizationRuleSource, Map<String, DesensitizationRule>> lastedRules = new LinkedHashMap<>(); private Map<DesensitizationRuleSource, Map<String, DesensitizationRule>> latestRules = new LinkedHashMap<>();
private Component parent; private Component parent;
public TableDataDesensitizationTableModel(DesensitizationTableData tableData, Component parent, List<String> columnNames, Map<String, String> roleMap, Map<DesensitizationRuleSource, Map<String, DesensitizationRule>> lastedRules) { public TableDataDesensitizationTableModel(DesensitizationTableData tableData, Component parent, List<String> columnNames, Map<String, String> roleMap, Map<DesensitizationRuleSource, Map<String, DesensitizationRule>> latestRules) {
// table相关 // table相关
super(new String[]{ super(new String[]{
Toolkit.i18nText("Fine-Design_Report_Desensitization_Column"), Toolkit.i18nText("Fine-Design_Report_Desensitization_Column"),
@ -91,7 +91,7 @@ public class TableDataDesensitizationTableModel extends UITableModelAdapter<Tabl
this.parent = parent; this.parent = parent;
this.columnNames = columnNames; this.columnNames = columnNames;
this.roleMap = roleMap; this.roleMap = roleMap;
this.lastedRules = lastedRules; this.latestRules = latestRules;
initTable(); initTable();
} }
@ -250,7 +250,7 @@ public class TableDataDesensitizationTableModel extends UITableModelAdapter<Tabl
private ActionListener chooseRuleListener = new ActionListener() { private ActionListener chooseRuleListener = new ActionListener() {
@Override @Override
public void actionPerformed(ActionEvent e) { public void actionPerformed(ActionEvent e) {
DesensitizationRulePane rulePane = new DesensitizationRulePane(lastedRules); DesensitizationRulePane rulePane = new DesensitizationRulePane(latestRules);
TableDataDesensitizationItem desensitizationItem = getCurrentSelectBean(); TableDataDesensitizationItem desensitizationItem = getCurrentSelectBean();
int selectedRow = table.getSelectedRow(); int selectedRow = table.getSelectedRow();
BasicDialog ruleDialog = rulePane.showWindowWithCustomSize(SwingUtilities.getWindowAncestor(parent), new DialogActionAdapter() { BasicDialog ruleDialog = rulePane.showWindowWithCustomSize(SwingUtilities.getWindowAncestor(parent), new DialogActionAdapter() {
@ -443,7 +443,7 @@ public class TableDataDesensitizationTableModel extends UITableModelAdapter<Tabl
DesensitizationRule rule = currentItem.getRule(); DesensitizationRule rule = currentItem.getRule();
if (needMarkRule(rule)) { if (needMarkRule(rule)) {
// 非正常规则,根据规则状态展示不同提示文字 // 非正常规则,根据规则状态展示不同提示文字
DesensitizationRuleStatus ruleStatus = DesensitizationRuleManager.getInstance().getRuleStatus(rule, lastedRules); DesensitizationRuleStatus ruleStatus = DesensitizationRuleManager.getInstance().getRuleStatus(rule, latestRules);
this.ruleStatusLabel.setText(Toolkit.i18nText("Fine-Design_Report_Desensitization_Rule_Status_Abnormal")); this.ruleStatusLabel.setText(Toolkit.i18nText("Fine-Design_Report_Desensitization_Rule_Status_Abnormal"));
this.ruleStatusLabel.setToolTipText(ruleStatus.getDescription()); this.ruleStatusLabel.setToolTipText(ruleStatus.getDescription());
} else { } else {
@ -516,13 +516,13 @@ public class TableDataDesensitizationTableModel extends UITableModelAdapter<Tabl
Iterator<TableDataDesensitizationItem> iterator = items.iterator(); Iterator<TableDataDesensitizationItem> iterator = items.iterator();
while (iterator.hasNext()) { while (iterator.hasNext()) {
TableDataDesensitizationItem item = iterator.next(); TableDataDesensitizationItem item = iterator.next();
DesensitizationRuleStatus ruleStatus = DesensitizationRuleManager.getInstance().getRuleStatus(item.getRule(), lastedRules); DesensitizationRuleStatus ruleStatus = DesensitizationRuleManager.getInstance().getRuleStatus(item.getRule(), latestRules);
if (ruleStatus == DesensitizationRuleStatus.REMOVED) { if (ruleStatus == DesensitizationRuleStatus.REMOVED) {
// 规则被移除,则删除整条脱敏Item // 规则被移除,则删除整条脱敏Item
iterator.remove(); iterator.remove();
} else { } else {
// 规则被修改、禁用等,更新一下规则 // 规则被修改、禁用等,更新一下规则
item.setRule(DesensitizationRuleManager.getInstance().getLastedDesentizationRule(item.getRule(), lastedRules)); item.setRule(DesensitizationRuleManager.getInstance().getLastedDesentizationRule(item.getRule(), latestRules));
} }
} }
fireTableDataChanged(); fireTableDataChanged();

6
designer-base/src/main/java/com/fr/design/data/datapane/preview/desensitization/view/setting/TableDataDesensitizationTablePane.java

@ -81,7 +81,7 @@ public class TableDataDesensitizationTablePane extends JPanel {
private void initContent() { private void initContent() {
final List<String> columnNames = new ArrayList<>(); final List<String> columnNames = new ArrayList<>();
final Map<String, String> roleMap = new LinkedHashMap<>(); final Map<String, String> roleMap = new LinkedHashMap<>();
final Map<DesensitizationRuleSource, Map<String, DesensitizationRule>> lastedRules = new LinkedHashMap<>(); final Map<DesensitizationRuleSource, Map<String, DesensitizationRule>> latestRules = new LinkedHashMap<>();
new SwingWorker<Void, Void>() { new SwingWorker<Void, Void>() {
@Override @Override
@ -91,14 +91,14 @@ public class TableDataDesensitizationTablePane extends JPanel {
// 获取当前所有用户组 // 获取当前所有用户组
roleMap.putAll(TableDataPreviewDesensitizeManager.getInstance().getAllRoles()); roleMap.putAll(TableDataPreviewDesensitizeManager.getInstance().getAllRoles());
// 获取当前最新的所有规则 // 获取当前最新的所有规则
lastedRules.putAll(DesensitizationRuleManager.getInstance().getAllRules()); latestRules.putAll(DesensitizationRuleManager.getInstance().getAllRules());
return null; return null;
} }
@Override @Override
protected void done() { protected void done() {
contentPane = FRGUIPaneFactory.createBorderLayout_S_Pane(); contentPane = FRGUIPaneFactory.createBorderLayout_S_Pane();
editorPane = new UITableEditorPane<>(new TableDataDesensitizationTableModel(tableData, parent, columnNames, roleMap, lastedRules)); editorPane = new UITableEditorPane<>(new TableDataDesensitizationTableModel(tableData, parent, columnNames, roleMap, latestRules));
editorPane.setHeaderResizing(false); editorPane.setHeaderResizing(false);
editorPane.populate(tableData.getDesensitizationConfig().getDesensitizationItems().toArray(new TableDataDesensitizationItem[0])); editorPane.populate(tableData.getDesensitizationConfig().getDesensitizationItems().toArray(new TableDataDesensitizationItem[0]));
contentPane.add(editorPane, BorderLayout.CENTER); contentPane.add(editorPane, BorderLayout.CENTER);

Loading…
Cancel
Save