diff --git a/designer-base/src/main/java/com/fr/design/data/datapane/preview/desensitization/TableDataPreviewDesensitizeManager.java b/designer-base/src/main/java/com/fr/design/data/datapane/preview/desensitization/TableDataPreviewDesensitizeManager.java index 29e12bfaf..1fbed9f43 100644 --- a/designer-base/src/main/java/com/fr/design/data/datapane/preview/desensitization/TableDataPreviewDesensitizeManager.java +++ b/designer-base/src/main/java/com/fr/design/data/datapane/preview/desensitization/TableDataPreviewDesensitizeManager.java @@ -2,10 +2,10 @@ package com.fr.design.data.datapane.preview.desensitization; import com.fr.base.TableData; +import com.fr.data.desensitize.TableDataDesensitizeManager; import com.fr.data.desensitize.base.DesensitizationTableData; import com.fr.data.desensitize.base.TableDataDesensitizationItem; import com.fr.data.desensitize.manage.DesensitizationManager; -import com.fr.data.desensitize.rule.DesensitizationRuleManager; import com.fr.data.desensitize.util.DesentizationUtils; import com.fr.decision.webservice.bean.user.DepartmentPostBean; import com.fr.decision.webservice.bean.user.RoleBean; @@ -79,7 +79,7 @@ public class TableDataPreviewDesensitizeManager implements DesensitizationManage Collection desensitizationItems = ((DesensitizationTableData) tableData).getDesensitizationConfig().getDesensitizationItems(); if (DesentizationUtils.isCollectionNotEmpty(desensitizationItems)) { // 更新规则 - dealWithLastedRules(desensitizationItems); + desensitizationItems = TableDataDesensitizeManager.getInstance().dealWithLastedRules(desensitizationItems); // 对脱敏配置项集合做过滤和排序处理 List items = desensitizationItems.stream() .filter(item -> isAvaliableItem4Preview(item, model)) @@ -106,16 +106,6 @@ public class TableDataPreviewDesensitizeManager implements DesensitizationManage matchColumnIndex(item, model) >= 0; } - /** - * 在预览计算前,将Item中的规则替换为最新规则(防止平台规则被临时修改) - */ - private void dealWithLastedRules(Collection desensitizationItems) { - desensitizationItems.forEach(item -> { - // 获取最新的规则 - item.setRule(DesensitizationRuleManager.getInstance().getLastedDesentizationRule(item.getRule())); - }); - } - /** * 通过TableData获取其列名 * @@ -185,7 +175,7 @@ public class TableDataPreviewDesensitizeManager implements DesensitizationManage * @param positionName * @return */ - public String mergeRoleText(String departmentName, String positionName) { + private String mergeRoleText(String departmentName, String positionName) { return departmentName + positionName; } @@ -196,7 +186,7 @@ public class TableDataPreviewDesensitizeManager implements DesensitizationManage * @param positionId * @return */ - public String mergeRoleId(String departmentId, String positionId) { + private String mergeRoleId(String departmentId, String positionId) { return departmentId + CONNECTOR + positionId; } diff --git a/designer-base/src/main/java/com/fr/design/data/datapane/preview/desensitization/view/setting/TableDataDesensitizationTableModel.java b/designer-base/src/main/java/com/fr/design/data/datapane/preview/desensitization/view/setting/TableDataDesensitizationTableModel.java index 4d6cfa8ff..c1d958bf9 100644 --- a/designer-base/src/main/java/com/fr/design/data/datapane/preview/desensitization/view/setting/TableDataDesensitizationTableModel.java +++ b/designer-base/src/main/java/com/fr/design/data/datapane/preview/desensitization/view/setting/TableDataDesensitizationTableModel.java @@ -40,6 +40,7 @@ import java.awt.event.ActionEvent; import java.awt.event.ActionListener; import java.util.Collection; import java.util.HashMap; +import java.util.Iterator; import java.util.LinkedHashSet; import java.util.List; import java.util.Map; @@ -132,9 +133,7 @@ public class TableDataDesensitizationTableModel extends UITableModelAdapter items = getList(); + Iterator iterator = items.iterator(); + while (iterator.hasNext()) { + TableDataDesensitizationItem item = iterator.next(); + DesensitizationRuleStatus ruleStatus = DesensitizationRuleManager.getInstance().getRuleStatus(item.getRule()); + if (ruleStatus == DesensitizationRuleStatus.REMOVED) { + // 规则被移除,则删除整条脱敏Item + iterator.remove(); + } else { + // 规则被修改、禁用等,更新一下规则 + item.setRule(DesensitizationRuleManager.getInstance().getLastedDesentizationRule(item.getRule())); + } + } + fireTableDataChanged(); + } + + @Override + public void checkEnabled() {} + } + /** * 规则表-列字段编号 */ @@ -580,4 +615,16 @@ public class TableDataDesensitizationTableModel extends UITableModelAdapter + + icon_刷新_normal + + + + \ No newline at end of file