Show logical feeder loads in project and circuit views
This commit is contained in:
parent
dfeb0e3cb6
commit
042a050876
12 changed files with 319 additions and 11 deletions
|
|
@ -104,6 +104,9 @@ export async function buildProjectCircuitTrees(
|
|||
|
||||
const boardById = new Map(boards.map((board) => [board.id, board]));
|
||||
const listById = new Map(lists.map((list) => [list.id, list]));
|
||||
const listByBoardId = new Map(
|
||||
lists.map((list) => [list.distributionBoardId, list])
|
||||
);
|
||||
const sectionById = new Map(sections.map((section) => [section.id, section]));
|
||||
const circuitById = new Map(circuits.map((circuit) => [circuit.id, circuit]));
|
||||
const rowsByCircuitId = groupBy(rows, (row) => row.circuitId);
|
||||
|
|
@ -158,6 +161,7 @@ export async function buildProjectCircuitTrees(
|
|||
feedingReference: resolveFeedingReference(
|
||||
board,
|
||||
boardById,
|
||||
listByBoardId,
|
||||
circuitById,
|
||||
sectionById
|
||||
),
|
||||
|
|
@ -252,7 +256,9 @@ export async function buildProjectCircuitTrees(
|
|||
voltage: circuit.voltage ?? undefined,
|
||||
controlRequirement: circuit.controlRequirement ?? undefined,
|
||||
status: circuit.status ?? undefined,
|
||||
isReserve: Boolean(circuit.isReserve),
|
||||
isReserve:
|
||||
Boolean(circuit.isReserve) &&
|
||||
circuitLoad.downstreamBoards.length === 0,
|
||||
remark: circuit.remark ?? undefined,
|
||||
circuitTotalPower: circuitLoad.activePowerKw,
|
||||
circuitApparentPower: circuitLoad.apparentPowerKva,
|
||||
|
|
@ -292,17 +298,21 @@ export async function buildProjectCircuitTrees(
|
|||
function resolveFeedingReference(
|
||||
board: Awaited<ReturnType<typeof distributionBoardRepository.listByProject>>[number],
|
||||
boardById: Map<string, Awaited<ReturnType<typeof distributionBoardRepository.listByProject>>[number]>,
|
||||
listByBoardId: Map<string, Awaited<ReturnType<typeof circuitListRepository.listByProject>>[number]>,
|
||||
circuitById: Map<string, Awaited<ReturnType<typeof circuitRepository.listByCircuitLists>>[number]>,
|
||||
sectionById: Map<string, Awaited<ReturnType<typeof circuitSectionRepository.listByCircuitLists>>[number]>
|
||||
) {
|
||||
if (board.feedingDistributionBoardId === null) return undefined;
|
||||
const feedingBoard = boardById.get(board.feedingDistributionBoardId);
|
||||
if (!feedingBoard) throw new Error("Feeding distribution board is missing.");
|
||||
const feedingList = listByBoardId.get(feedingBoard.id);
|
||||
if (!feedingList) throw new Error("Feeding circuit list is missing.");
|
||||
const feedingCircuit = board.feedingCircuitId === null
|
||||
? undefined
|
||||
: circuitById.get(board.feedingCircuitId);
|
||||
return {
|
||||
distributionBoardId: feedingBoard.id,
|
||||
circuitListId: feedingList.id,
|
||||
distributionBoardName: feedingBoard.name,
|
||||
distributionBoardNumber: feedingBoard.boardNumber ?? undefined,
|
||||
circuitId: feedingCircuit?.id,
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue