[as elapr] 전자결재 forkjoin 통합 개발 화면 추가 브랜치 항목
This commit is contained in:
@@ -13,6 +13,8 @@ export interface PrgrsSttsServerRow {
|
||||
atrzSeComCd?: string;
|
||||
atrzSeqNo?: number;
|
||||
dcarbYn?: string;
|
||||
branchId?: string;
|
||||
branchSeCd?: string;
|
||||
}
|
||||
|
||||
/** 결재선 그리드 로컬 행 — 진행상태 API 응답 + UI 보조 필드 */
|
||||
@@ -20,6 +22,9 @@ export interface ElaprPrgrsSttsRow {
|
||||
rowKey: string;
|
||||
elaprPrgrsId?: string;
|
||||
elaprDmndId?: string;
|
||||
branchId?: string;
|
||||
branchSeCd?: string;
|
||||
branchNm?: string;
|
||||
aprvrUuid?: string;
|
||||
aprvrNm?: string;
|
||||
atrzSeComCd?: string;
|
||||
@@ -52,8 +57,22 @@ function getVisibleRows(rows: ElaprPrgrsSttsRow[]): ElaprPrgrsSttsRow[] {
|
||||
return rows.filter((row) => !row.isDeleted);
|
||||
}
|
||||
|
||||
/** 그리드 행 순서(1-based)로 결재순서번호 일괄 채번 */
|
||||
/** 그리드 행 순서(1-based)로 결재순서번호 채번 (브랜치가 분기된 Fork-Join의 경우 각 브랜치별 독립 순번 채번) */
|
||||
export function assignPrgrsSttsAtrzSeqNumbers(rows: ElaprPrgrsSttsRow[]): ElaprPrgrsSttsRow[] {
|
||||
const branchKeys = new Set(rows.map((r) => r.branchId || r.branchSeCd).filter(Boolean));
|
||||
if (branchKeys.size > 1) {
|
||||
const branchCounters = new Map<string, number>();
|
||||
return rows.map((row) => {
|
||||
const key = row.branchId || row.branchSeCd;
|
||||
if (key) {
|
||||
const current = (branchCounters.get(key) ?? 0) + 1;
|
||||
branchCounters.set(key, current);
|
||||
return { ...row, atrzSeqNo: current };
|
||||
}
|
||||
return row;
|
||||
});
|
||||
}
|
||||
|
||||
return rows.map((row, index) => ({ ...row, atrzSeqNo: index + 1 }));
|
||||
}
|
||||
|
||||
@@ -92,7 +111,7 @@ function rowDiffersFromServer(row: ElaprPrgrsSttsRow, serverRow: PrgrsSttsServer
|
||||
return (
|
||||
row.aprvrUuid !== serverRow.aprvrUuid ||
|
||||
row.atrzSeComCd !== serverRow.atrzSeComCd ||
|
||||
row.atrzSeqNo !== serverRow.atrzSeqNo ||
|
||||
Number(row.atrzSeqNo) !== Number(serverRow.atrzSeqNo) ||
|
||||
(row.dcarbYn ?? "N") !== (serverRow.dcarbYn ?? "N")
|
||||
);
|
||||
}
|
||||
|
||||
@@ -23,6 +23,9 @@ function toRow(item: ElaprDocPrgrsClientResponseDto): ElaprPrgrsSttsRow {
|
||||
rowKey: item.elaprPrgrsId ?? createDraftRowKey(),
|
||||
elaprPrgrsId: item.elaprPrgrsId,
|
||||
elaprDmndId: item.elaprDmndId,
|
||||
branchId: item.branchId,
|
||||
branchSeCd: item.branchSeCd,
|
||||
branchNm: item.branchNm,
|
||||
aprvrUuid: item.aprvrUuid,
|
||||
aprvrNm: item.aprvrNm,
|
||||
atrzSeComCd: item.atrzSeComCd,
|
||||
|
||||
@@ -344,7 +344,7 @@ function ElaprApprovalDialog({
|
||||
size="sm"
|
||||
type="button"
|
||||
color="white"
|
||||
disabled={!elaprDmndId || isEditingLocked || isBusy}
|
||||
disabled={isForkJoin || !elaprDmndId || isEditingLocked || isBusy}
|
||||
onClick={addRow}
|
||||
>
|
||||
결재선 추가
|
||||
@@ -409,11 +409,11 @@ function ElaprApprovalDialog({
|
||||
<SortablePrgrsSttsRow
|
||||
key={row.rowKey}
|
||||
row={row}
|
||||
displaySeqNo={index + 1}
|
||||
displaySeqNo={isForkJoin ? Number(row.atrzSeqNo ?? index + 1) : index + 1}
|
||||
isEditing={editingRowKey === row.rowKey}
|
||||
isLocked={isEditingLocked}
|
||||
dragDisabled={
|
||||
isEditingLocked || !isPrgrsSttsRowEditable(row) || !row.atrzSeComCd
|
||||
isForkJoin || isEditingLocked || !isPrgrsSttsRowEditable(row) || !row.atrzSeComCd
|
||||
}
|
||||
onStartEdit={() => startEdit(row.rowKey)}
|
||||
onSave={() => handleRowSave(row.rowKey)}
|
||||
|
||||
@@ -73,12 +73,12 @@ export function ElaprDocPrgrsForkJoinStep({ steps }: ElaprDocPrgrsForkJoinStepPr
|
||||
const agg: ElaprDocPrgrsClientResponseDto[] = [];
|
||||
|
||||
steps.forEach((step) => {
|
||||
const seCd = (step as { branchSeCd?: string }).branchSeCd;
|
||||
const seCd = step.branchSeCd;
|
||||
if (seCd === "PIPE") {
|
||||
pipe.push(step);
|
||||
} else if (seCd === "FACILITY" || seCd === "FAC") {
|
||||
} else if (seCd === "FACILITY" ) {
|
||||
fac.push(step);
|
||||
} else if (seCd === "TOTAL_AGG" || seCd === "POL_JOIN" || seCd === "AGG") {
|
||||
} else if (seCd === "TOTAL_AGG") {
|
||||
agg.push(step);
|
||||
} else {
|
||||
// 순번 fallback (6인 체제: 2/2/2)
|
||||
|
||||
@@ -152,6 +152,9 @@ export interface ElaprDocPrgrsClientResponseDto {
|
||||
ognzNm?: string;
|
||||
dcarbYn?: string;
|
||||
elaprCycl?: number;
|
||||
branchId?: string;
|
||||
branchSeCd?: string;
|
||||
branchNm?: string;
|
||||
}
|
||||
|
||||
/** 문서 상태 변경 이력 응답 DTO */
|
||||
|
||||
Reference in New Issue
Block a user