优化外部人员风险明细模型筛选
This commit is contained in:
@@ -0,0 +1,21 @@
|
|||||||
|
# 外部人员风险明细模型筛选实施记录
|
||||||
|
|
||||||
|
## 修改内容
|
||||||
|
|
||||||
|
- 风险明细的“可疑规则”选择“外部人员预警”时,命中模型下拉改为展示三个实际外部人员模型:
|
||||||
|
- 外部人员大额交易
|
||||||
|
- 外部人员可疑赌博
|
||||||
|
- 外部人员可疑关系
|
||||||
|
- 外部人员预警不再禁用命中模型筛选,查询时继续向后端传递 `modelCode`。
|
||||||
|
- 切换可疑规则类型时,仅清理不属于当前类型的模型编码,避免外部模型编码串到员工规则筛选。
|
||||||
|
|
||||||
|
## 影响范围
|
||||||
|
|
||||||
|
- 前端文件:`ruoyi-ui/src/views/ccdiProject/components/detail/RiskDetailSection.vue`
|
||||||
|
- 后端 `getOverviewSuspiciousTransactions` 查询链路已支持 `suspiciousType = EXTERNAL_PERSON` 且按 `modelCode` 二次过滤,本次未修改后端 SQL。
|
||||||
|
|
||||||
|
## 验证情况
|
||||||
|
|
||||||
|
- 已使用 Node `v22.22.3` / npm `10.9.8` 执行 `npm run build:prod`,构建通过。
|
||||||
|
- 本机 `62318` 后端未监听,无法完成真实业务数据接口联调;浏览器验证尝试受本地调试实例占用影响未继续扩大范围。
|
||||||
|
- 从代码链路确认:前端选择外部人员模型后仍通过 `getOverviewSuspiciousTransactions` 传递 `modelCode`,后端 `suspiciousTransactionFilterSql` 已按 `query.modelCode` 过滤 `ccdi_bank_statement_tag_result.model_code`。
|
||||||
@@ -23,13 +23,12 @@
|
|||||||
<el-select
|
<el-select
|
||||||
v-model="selectedModelCode"
|
v-model="selectedModelCode"
|
||||||
class="suspicious-filter-select"
|
class="suspicious-filter-select"
|
||||||
placeholder="全部模型"
|
:placeholder="allModelOptionLabel"
|
||||||
filterable
|
filterable
|
||||||
:disabled="isExternalSuspiciousType"
|
|
||||||
>
|
>
|
||||||
<el-option label="全部模型" value="" />
|
<el-option :label="allModelOptionLabel" value="" />
|
||||||
<el-option
|
<el-option
|
||||||
v-for="item in riskModelOptions"
|
v-for="item in displayRiskModelOptions"
|
||||||
:key="item.value"
|
:key="item.value"
|
||||||
:label="item.label"
|
:label="item.label"
|
||||||
:value="item.value"
|
:value="item.value"
|
||||||
@@ -374,6 +373,11 @@ const SUSPICIOUS_TYPE_OPTIONS = [
|
|||||||
{ value: "MODEL_RULE", label: "员工规则命中" },
|
{ value: "MODEL_RULE", label: "员工规则命中" },
|
||||||
{ value: "EXTERNAL_PERSON", label: "外部人员预警" },
|
{ value: "EXTERNAL_PERSON", label: "外部人员预警" },
|
||||||
];
|
];
|
||||||
|
const EXTERNAL_RISK_MODEL_OPTIONS = [
|
||||||
|
{ value: "EXTERNAL_LARGE_TRANSACTION", label: "外部人员大额交易" },
|
||||||
|
{ value: "EXTERNAL_SUSPICIOUS_GAMBLING", label: "外部人员可疑赌博" },
|
||||||
|
{ value: "EXTERNAL_SUSPICIOUS_RELATION", label: "外部人员可疑关系" },
|
||||||
|
];
|
||||||
const DEFAULT_RISK_DETAIL_PAGE_SIZE = 5;
|
const DEFAULT_RISK_DETAIL_PAGE_SIZE = 5;
|
||||||
const RISK_DETAIL_PAGE_SIZE_OPTIONS = [5, 10, 20, 50];
|
const RISK_DETAIL_PAGE_SIZE_OPTIONS = [5, 10, 20, 50];
|
||||||
|
|
||||||
@@ -537,6 +541,12 @@ export default {
|
|||||||
isExternalSuspiciousType() {
|
isExternalSuspiciousType() {
|
||||||
return this.currentSuspiciousType === "EXTERNAL_PERSON";
|
return this.currentSuspiciousType === "EXTERNAL_PERSON";
|
||||||
},
|
},
|
||||||
|
displayRiskModelOptions() {
|
||||||
|
return this.isExternalSuspiciousType ? EXTERNAL_RISK_MODEL_OPTIONS : this.riskModelOptions;
|
||||||
|
},
|
||||||
|
allModelOptionLabel() {
|
||||||
|
return this.isExternalSuspiciousType ? "全部外部模型" : "全部模型";
|
||||||
|
},
|
||||||
},
|
},
|
||||||
watch: {
|
watch: {
|
||||||
sectionData: {
|
sectionData: {
|
||||||
@@ -572,6 +582,14 @@ export default {
|
|||||||
buildFlowEvidenceFingerprint,
|
buildFlowEvidenceFingerprint,
|
||||||
handleSuspiciousTypeSelectChange(value) {
|
handleSuspiciousTypeSelectChange(value) {
|
||||||
if (value === "EXTERNAL_PERSON") {
|
if (value === "EXTERNAL_PERSON") {
|
||||||
|
const hasExternalModel = EXTERNAL_RISK_MODEL_OPTIONS
|
||||||
|
.some((item) => item.value === this.selectedModelCode);
|
||||||
|
if (!hasExternalModel) {
|
||||||
|
this.selectedModelCode = "";
|
||||||
|
}
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
if (this.selectedModelCode && this.selectedModelCode.indexOf("EXTERNAL_") === 0) {
|
||||||
this.selectedModelCode = "";
|
this.selectedModelCode = "";
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
|
|||||||
Reference in New Issue
Block a user