新增涉疑交易明细查询导出并补充对手方证件信息

This commit is contained in:
wkc
2026-03-27 17:31:11 +08:00
parent 5e968c8716
commit cf36b5f05a
28 changed files with 961 additions and 5 deletions

View File

@@ -50,3 +50,16 @@ export function getOverviewPersonAnalysisDetail(params) {
}
})
}
export function getOverviewSuspiciousTransactions(params) {
return request({
url: '/ccdi/project/overview/suspicious-transactions',
method: 'get',
params: {
projectId: params.projectId,
suspiciousType: params.suspiciousType,
pageNum: params.pageNum,
pageSize: params.pageSize
}
})
}

View File

@@ -87,6 +87,37 @@ export const mockOverviewData = {
],
},
riskDetails: {
projectId: 1,
suspiciousType: "ALL",
total: 2,
suspiciousTransactionList: [
{
bankStatementId: 1,
trxDate: "2024-01-15 10:00:00",
suspiciousPersonName: "孙七",
relatedPersonName: "孙七",
relatedStaffName: "孙七",
relatedStaffCode: "809901",
relationType: "本人",
userMemo: "",
cashType: "转账",
displayAmount: 500000,
actionLabel: "查看详情",
},
{
bankStatementId: 2,
trxDate: "2024-01-10 09:20:00",
suspiciousPersonName: "王五",
relatedPersonName: "孙七",
relatedStaffName: "孙七",
relatedStaffCode: "809901",
relationType: "配偶",
userMemo: "零钱商户消费",
cashType: "",
displayAmount: -200000,
actionLabel: "查看详情",
},
],
transactionList: [
{
tradeDate: "2024-01-15",
@@ -351,7 +382,17 @@ function normalizeRiskModelCards(cardList) {
}));
}
export function createOverviewLoadedData({ projectId, dashboardData, riskPeopleData, riskModelCardsData } = {}) {
function normalizeSuspiciousTransactions(rows) {
if (!Array.isArray(rows)) {
return [];
}
return rows.map((item) => ({
...item,
actionLabel: item.actionLabel || "查看详情",
}));
}
export function createOverviewLoadedData({ projectId, dashboardData, riskPeopleData, riskModelCardsData, suspiciousData } = {}) {
return {
...mockOverviewData,
summary: {
@@ -373,6 +414,15 @@ export function createOverviewLoadedData({ projectId, dashboardData, riskPeopleD
peopleList: [],
total: 0,
},
riskDetails: {
...mockOverviewData.riskDetails,
projectId,
suspiciousTransactionList: normalizeSuspiciousTransactions(suspiciousData && suspiciousData.rows),
suspiciousType: "ALL",
total: suspiciousData && suspiciousData.total ? suspiciousData.total : 0,
transactionList: normalizeSuspiciousTransactions(suspiciousData && suspiciousData.rows),
abnormalAccountList: [],
},
};
}
@@ -395,6 +445,9 @@ export const mockOverviewStateData = {
peopleList: [],
},
riskDetails: {
suspiciousTransactionList: [],
suspiciousType: "ALL",
total: 0,
transactionList: [],
abnormalAccountList: [],
},

View File

@@ -16,6 +16,13 @@ const detail = fs.readFileSync(
),
"utf8"
);
const preliminaryCheck = fs.readFileSync(
path.resolve(
__dirname,
"../../src/views/ccdiProject/components/detail/PreliminaryCheck.vue"
),
"utf8"
);
["风险模型", "命中模型涉及人员", "员工姓名或工号", "异常标签"].forEach((token) =>
assert(model.includes(token), token)
@@ -26,6 +33,9 @@ const detail = fs.readFileSync(
["部门", "请选择部门", "查询", "重置", "selectedModelText"].forEach((token) =>
assert(model.includes(token), token)
);
["风险明细", "涉交易明细", "异常账户人员信息", "查看详情"].forEach((token) =>
["风险明细", "涉交易明细", "异常账户人员信息", "查看详情"].forEach((token) =>
assert(detail.includes(token), token)
);
["getOverviewSuspiciousTransactions", "riskDetails"].forEach((token) =>
assert(preliminaryCheck.includes(token), token)
);

View File

@@ -12,10 +12,12 @@ const source = fs.readFileSync(
"getOverviewRiskPeople",
"getOverviewRiskModelCards",
"getOverviewRiskModelPeople",
"getOverviewSuspiciousTransactions",
"/ccdi/project/overview/dashboard",
"/ccdi/project/overview/risk-people",
"/ccdi/project/overview/risk-models/cards",
"/ccdi/project/overview/risk-models/people",
"/ccdi/project/overview/suspicious-transactions",
].forEach((token) => assert(source.includes(token), token));
[
@@ -39,6 +41,19 @@ assert(riskModelPeopleFn, "应保留模型人员接口参数透传逻辑");
"pageSize: params.pageSize",
].forEach((token) => assert(riskModelPeopleFn[0].includes(token), token));
const suspiciousTransactionsFn = source.match(
/export function getOverviewSuspiciousTransactions\(params\) \{[\s\S]*?params:\s*\{([\s\S]*?)\}\s*\}\s*\)/m
);
assert(suspiciousTransactionsFn, "应新增涉疑交易接口参数透传逻辑");
[
"projectId: params.projectId",
"suspiciousType: params.suspiciousType",
"pageNum: params.pageNum",
"pageSize: params.pageSize",
].forEach((token) => assert(suspiciousTransactionsFn[0].includes(token), token));
["employeeResult", "resultTable", "overview/result"].forEach((token) =>
assert(!source.includes(token), `前端 API 契约不应感知结果表实现:${token}`)
);