probe-real-counts.mjs 2.2 KB

123456789101112131415161718192021222324252627282930313233343536373839404142
  1. /**
  2. * 走查前置只读探针:真实后端各设备的 预警/报警/工单 条数。
  3. * 为什么不用 PowerShell:`@($null).Count` 恒为 1,会把"没有这一段"读成"有 1 条"(票 17 的教训)。
  4. */
  5. const BASE = 'http://192.168.110.96:8301/api/cockpit/v1'
  6. const unwrap = (payload) => (payload && payload.data && (payload.code !== undefined || payload.requestId) ? payload.data : payload)
  7. const devices = ['21119740', 'TEST-CBYYL5432168', 'TEST-CNXHS0000001', 'TEST-TCLLJ002215', 'TC-PS-WS-202609020012']
  8. for (const code of devices) {
  9. try {
  10. const res = await fetch(`${BASE}/equipments/${encodeURIComponent(code)}/detail-aggregate`, { cache: 'no-store' })
  11. const json = await res.json()
  12. const data = unwrap(json)
  13. const pick = (name) => {
  14. const section = data && data[name]
  15. const list = section && Array.isArray(section.data) ? section.data : null
  16. return `${String((section && section.state) || '-')}/${list ? list.length : '-'}`
  17. }
  18. console.log(`${code} http=${res.status} code=${json.code} warnings=${pick('warnings')} alarms=${pick('alarms')} workOrders=${pick('workOrders')} archive=${pick('archive')}`)
  19. } catch (error) {
  20. console.log(`${code} ERR ${error.message}`)
  21. }
  22. }
  23. // 未关联设备清单(真实快照里 kind=unassociated 的编码),找一台事件最多的进详情。
  24. try {
  25. const res = await fetch(`${BASE}/map-snapshot?page=1&pageSize=200&pointStatus=UNASSOCIATED`, { cache: 'no-store' })
  26. const json = unwrap(await res.json())
  27. const list = (json && json.unassociatedEquipment) || []
  28. console.log(`unassociated-in-snapshot=${list.length}`)
  29. const codes = list.slice(0, 12).map((item) => item.equipmentCode || item.code).filter(Boolean)
  30. for (const code of codes) {
  31. const r = await fetch(`${BASE}/equipments/${encodeURIComponent(code)}/detail-aggregate`, { cache: 'no-store' })
  32. const data = unwrap(await r.json())
  33. const n = (name) => (data && Array.isArray(data[name]?.data) ? data[name].data.length : 0)
  34. console.log(` ${code} warnings=${n('warnings')} alarms=${n('alarms')} workOrders=${n('workOrders')}`)
  35. }
  36. } catch (error) {
  37. console.log(`snapshot probe ERR ${error.message}`)
  38. }