feat(WEB): 부실채권, 재고, 입고, 수주 UI 개선

- BadDebtCollection 액션/타입 리팩토링
- ReceivingProcessDialog 입고처리 개선
- StockStatusList 재고현황 UI 개선
- OrderSalesDetailView 수주 상세 수정
- UniversalListPage 범용 리스트 개선
- production-order 페이지 수정
This commit is contained in:
2026-01-23 21:32:24 +09:00
parent 9fb5c171eb
commit a0343eec93
12 changed files with 315 additions and 251 deletions

View File

@@ -26,6 +26,7 @@ interface ApiOrder {
discount_amount: number;
delivery_date: string | null;
delivery_method_code: string | null;
delivery_method_label?: string; // API에서 조회한 배송방식 라벨
received_at: string | null;
memo: string | null;
remarks: string | null;
@@ -219,6 +220,7 @@ export interface Order {
statusCode: string; // 원본 status_code
expectedShipDate?: string; // delivery_date
deliveryMethod?: string; // delivery_method_code
deliveryMethodLabel?: string; // 배송방식 라벨 (API에서 조회)
amount: number; // total_amount
supplyAmount: number;
taxAmount: number;
@@ -334,6 +336,7 @@ export interface CreateProductionOrderData {
processIds?: number[]; // 공정별 다중 작업지시 생성용
priority?: 'urgent' | 'high' | 'normal' | 'low';
assigneeId?: number;
assigneeIds?: number[]; // 다중 담당자 선택용
teamId?: number;
scheduledDate?: string;
memo?: string;
@@ -444,6 +447,7 @@ function transformApiToFrontend(apiData: ApiOrder): Order {
statusCode: apiData.status_code,
expectedShipDate: apiData.delivery_date ?? undefined,
deliveryMethod: apiData.delivery_method_code ?? undefined,
deliveryMethodLabel: apiData.delivery_method_label ?? apiData.delivery_method_code ?? undefined,
amount: apiData.total_amount,
supplyAmount: apiData.supply_amount,
taxAmount: apiData.tax_amount,
@@ -1046,7 +1050,12 @@ export async function createProductionOrder(
apiData.process_id = data.processId;
}
if (data?.priority) apiData.priority = data.priority;
if (data?.assigneeId) apiData.assignee_id = data.assigneeId;
// 다중 담당자 ID (우선) 또는 단일 담당자 ID
if (data?.assigneeIds && data.assigneeIds.length > 0) {
apiData.assignee_ids = data.assigneeIds;
} else if (data?.assigneeId) {
apiData.assignee_id = data.assigneeId;
}
if (data?.teamId) apiData.team_id = data.teamId;
if (data?.scheduledDate) apiData.scheduled_date = data.scheduledDate;
if (data?.memo) apiData.memo = data.memo;