import type { SpliceMatrix } from '@/api/spliceReports'
|
import type { ProjectSeries } from './projectCycleChart'
|
|
/** 同组同电池号跨测试接成一条线;跨组同名电池不能混成同一业务身份。 */
|
export function spliceProjectSeries(matrix: SpliceMatrix): ProjectSeries[] {
|
const result = new Map<string, ProjectSeries>()
|
for (const segment of matrix.segments) {
|
const source = segment.source
|
const key = JSON.stringify([source.groupId, source.batteryNo])
|
let series = result.get(key)
|
if (!series) { series = { key, name: `${source.group} (#${source.groupId}) · ${source.batteryNo}`, points: [] }; result.set(key, series) }
|
for (const no of segment.originalCycleNos) {
|
const position = segment.cyclePositions?.[String(no)]
|
if (position === undefined) continue
|
series.points.push({ position, source: `${source.name} (#${source.selection.testId}) · ${source.batteryNo} · 原循环${no}`, values: segment.statistics[String(no)] || {} })
|
}
|
}
|
return [...result.values()]
|
}
|