优化
This commit is contained in:
@@ -3,6 +3,14 @@ import { inflateRawSync } from 'node:zlib'
|
||||
const MODULE = 'finance-downloads'
|
||||
const TERMINAL = new Set(['SUCCEEDED', 'FAILED', 'EXPIRED'])
|
||||
const OPTIONS = { scenario: 'finance-download-center', deploymentBlocker: true }
|
||||
export const REQUIRED_PERMISSIONS = Object.freeze([
|
||||
'platform:download:list',
|
||||
'platform:finance:customer-account:export',
|
||||
'platform:finance:customer-arap:export',
|
||||
'platform:finance:customer-statement:export',
|
||||
'platform:finance:settlement-ar:export',
|
||||
'platform:finance:settlement-ap:export',
|
||||
])
|
||||
|
||||
export const EXPORT_SPECS = Object.freeze({
|
||||
FINANCE_CUSTOMER_ACCOUNT_LIST: ['客户编码', '客户', '联系人', '联系电话', '待收(CNY)', '待开账(CNY)', '本期已收(CNY)', '待付(CNY)', '客户状态', '最近变动'],
|
||||
@@ -180,15 +188,26 @@ async function noPermission(context) {
|
||||
|
||||
export async function run(context) {
|
||||
context.createdResources.financeExportTasks = { marker: context.marker, tasks: {} }
|
||||
const permissionsResponse = await context.request('GET', '/api/platform/v1/iam/authorization/permissions')
|
||||
const permissionData = context.apiSuccess(MODULE, 'fresh login 权限快照', permissionsResponse, '', OPTIONS)
|
||||
const permissions = new Set(Array.isArray(permissionData) ? permissionData : [])
|
||||
const missingPermissions = REQUIRED_PERMISSIONS.filter((permission) => !permissions.has(permission))
|
||||
context.assert(MODULE, '下载中心与五项 Finance export 权限齐全', permissionsResponse,
|
||||
missingPermissions.length === 0, `missing=${missingPermissions.join(',') || 'none'}`, OPTIONS)
|
||||
if (missingPermissions.length > 0) {
|
||||
context.addCoverageGap(MODULE, 'finance-download-center', '八类 Finance 下载中心真实链',
|
||||
`fresh login 权限快照缺失:${missingPermissions.join(',')}`, 'deployment-prerequisite')
|
||||
return
|
||||
}
|
||||
const longMissingCustomerId = '9223372036854775806'
|
||||
const probe = await createTask(context, 'FINANCE_CUSTOMER_ACCOUNT_LIST',
|
||||
{ customerId: longMissingCustomerId }, 'CAPABILITY-PROBE', EXPORT_SPECS.FINANCE_CUSTOMER_ACCOUNT_LIST)
|
||||
context.createdResources.financeExportTasks.probe = probe
|
||||
if (!probe || probe.status !== 'SUCCEEDED') {
|
||||
context.addCoverageGap(MODULE, 'finance-download-center', '八类 Finance 下载中心真实链',
|
||||
'Finance/File/权限/配置尚未完整部署,能力探测未成功;部署后重跑完整链', 'deployment-prerequisite')
|
||||
return
|
||||
}
|
||||
context.createdResources.financeExportTasks.probe = probe
|
||||
context.assert(MODULE, '长 ID 字符串与空结果', null,
|
||||
probe.processedRows === 0, `customerIdType=string, customerId=${longMissingCustomerId}, rows=${probe.processedRows}`, OPTIONS)
|
||||
await noPermission(context)
|
||||
|
||||
Reference in New Issue
Block a user