This commit is contained in:
2026-10-27 17:44:41 +08:00
parent 57cd211973
commit db0e72daeb
37 changed files with 701 additions and 671 deletions
@@ -101,25 +101,15 @@ async function measure(source) {
}
try {
const login=await api('','POST','/api/auth/login',{loginId:process.env.ADMIN_TEST_USERNAME,password:process.env.ADMIN_TEST_PASSWORD});admin=login.accessToken
// 本机旧权限目录只补正式排车资源,并授权本轮专用角色,不改既有用户或角色。
const required=['list','create','edit','depart','cancel'].map(key=>`platform:overseas-warehouse:dispatch:${key}`)
if(!report.operatorUsername){
const permissions=await call('GET','/api/platform/v1/iam/permissions')
const parent=permissions.find(row=>row.permissionCode===required[0]);check(parent,'存在正式排车列表权限')
for(const code of required)if(!permissions.some(row=>row.permissionCode===code))permissions.push(await call('POST','/api/platform/v1/iam/permissions',{type:'BUTTON',code,name:`排车${code.split(':').at(-1)}`,parentId:parent.id,httpMethod:'POST'}))
const role=await call('POST','/api/platform/v1/iam/roles',{roleCode:`${marker}_OPERATOR`,roleName:`${marker}本机排车验收`,description:'仅本轮本机业务验收'})
const allowed=new Set([...login.authorities,...required])
await call('PUT','/api/platform/v1/iam/roles/permissions',{roleId:role.id,permissionIds:permissions.filter(row=>allowed.has(row.permissionCode)).map(row=>row.id)})
const username=`dispatch_dt_${marker.replace(/\D/g,'')}`
await call('POST','/api/platform/v1/iam/users',{username,password:process.env.LOCAL_TRANSFER_PDA_PASSWORD,displayName:`${marker}本机调度验收`,phone:`18${String(Date.now()).slice(-9)}`,tenantId:'0',roleIds:[role.id],status:'ACTIVE'})
report.operatorUsername=username;await save()
}
admin=(await api('','POST','/api/auth/login',{loginId:report.operatorUsername,password:process.env.LOCAL_TRANSFER_PDA_PASSWORD})).accessToken
const required = ['list','create','edit','depart','cancel'].map(key => `platform:overseas-warehouse:dispatch:${key}`)
check(Array.isArray(login.authorities) && required.every(code => login.authorities.includes(code)), '固定平台账号缺少正式业务权限,不自动补权限或创建角色')
report.operatorUsername = process.env.ADMIN_TEST_USERNAME; await save()
const customers=(await call('GET','/api/platform/v1/iam/tenants?page=1&size=200')).records.filter(row=>row.status==='ACTIVE')
check(customers.length>=2,'有两个有效客户验证同仓跨客户取货')
const warehouses=(await call('GET','/api/platform/v1/warehouse-admin?page=1&size=100&warehouseType=OVERSEAS&status=ACTIVE')).records
const warehouse=warehouses.find(row=>row.warehouseCode==='US-LAX-01')||warehouses[0];report.warehouseId=warehouse.id
if(!report.pdaUsername){const role=(await call('GET','/api/platform/v1/iam/roles')).find(row=>row.roleCode==='OVERSEAS_WAREHOUSE_PDA_OPERATOR'&&row.status==='ACTIVE');check(role,'存在海外PDA角色');const username=`pda_dt_${marker.replace(/\D/g,'')}`;await call('POST','/api/platform/v1/iam/users',{username,password:process.env.LOCAL_TRANSFER_PDA_PASSWORD,displayName:`${marker}本机排车验收`,phone:`18${String(Date.now()).slice(-9)}`,tenantId:'0',roleIds:[role.id],overseasWarehouseId:warehouse.id,status:'ACTIVE'});report.pdaUsername=username;await save()}
report.pdaUsername = process.env.LOCAL_TRANSFER_PDA_USERNAME
check(Boolean(report.pdaUsername), '必须配置既有 LOCAL_TRANSFER_PDA_USERNAME,不自动创建PDA账号')
pda=(await api('','POST','/api/auth/login',{loginId:report.pdaUsername,password:process.env.LOCAL_TRANSFER_PDA_PASSWORD})).accessToken
const a=await transfer(customers[0],warehouse,'pickupA'),b=await transfer(customers[1],warehouse,'pickupB'),c=await transfer(customers[0],warehouse,'pickupCancelSource')
let shared=await pickup([a,b],'pickupCompleted'),cancelled=await pickup([c],'pickupCancelled')