| 1234567891011121314151617181920 |
- import { writeFile } from 'node:fs/promises'
- import assert from 'node:assert/strict'
- import { toPipeNetwork } from '../../../src/modules/cockpit/domain/pipeNetwork.js'
- import { planPipeModels } from '../../../src/modules/cockpit/domain/pipeModels.js'
- const response=await fetch('http://192.168.110.96:8301/api/cockpit/v1/infrastructure/geometry')
- const payload=await response.json();assert.equal(response.status,200);assert.equal(payload.code,200)
- const network=toPipeNetwork(payload.data)
- const groups=new Map()
- for(const pipe of network.pipes){
- const group=pipe.name.includes('城南')?'名称含城南':pipe.name.includes('黔中')?'名称含黔中':pipe.name.includes('太常')?'名称含太常':'其它名称'
- if(!groups.has(group))groups.set(group,[])
- groups.get(group).push(pipe)
- }
- const result={at:new Date().toISOString(),note:'名称分组用于复现,不伪造后端district字段;不能据前缀推断正式片区。',groups:[]}
- for(const [name,pipes]of groups){
- const plan=planPipeModels({pipes,components:[]})
- result.groups.push({name,count:pipes.length,diameterSummary:plan.diameterSummary,modeledBusinessPipes:new Set(plan.instances.filter(i=>i.kind==='spline').map(i=>i.id)).size,examples:pipes.filter(p=>!Number.isFinite(p.diameter)||p.diameter<=0).slice(0,3).map(p=>({code:p.code,name:p.name,diameter:p.diameter,remark:p.remark}))})
- }
- await writeFile(new URL('./artifacts/t32/view-mode-live-diagnosis.json',import.meta.url),JSON.stringify(result,null,2)+'\n')
- console.log(JSON.stringify(result,null,2))
|