289 lines
7.2 KiB
TypeScript
289 lines
7.2 KiB
TypeScript
|
|
/**
|
|||
|
|
* 출하관리 Mock 데이터
|
|||
|
|
*/
|
|||
|
|
|
|||
|
|
import type {
|
|||
|
|
ShipmentItem,
|
|||
|
|
ShipmentDetail,
|
|||
|
|
ShipmentStats,
|
|||
|
|
ShipmentFilterTab,
|
|||
|
|
LotOption,
|
|||
|
|
LogisticsOption,
|
|||
|
|
VehicleTonnageOption,
|
|||
|
|
} from './types';
|
|||
|
|
|
|||
|
|
// 통계 데이터
|
|||
|
|
export const mockStats: ShipmentStats = {
|
|||
|
|
todayShipmentCount: 3,
|
|||
|
|
scheduledCount: 5,
|
|||
|
|
shippingCount: 1,
|
|||
|
|
urgentCount: 4,
|
|||
|
|
};
|
|||
|
|
|
|||
|
|
// 필터 탭
|
|||
|
|
export const mockFilterTabs: ShipmentFilterTab[] = [
|
|||
|
|
{ key: 'all', label: '전체', count: 20 },
|
|||
|
|
{ key: 'scheduled', label: '출고예정', count: 5 },
|
|||
|
|
{ key: 'ready', label: '출하대기', count: 1 },
|
|||
|
|
{ key: 'shipping', label: '배송중', count: 1 },
|
|||
|
|
{ key: 'completed', label: '배송완료', count: 12 },
|
|||
|
|
{ key: 'calendar', label: '출하일정', count: 0 },
|
|||
|
|
];
|
|||
|
|
|
|||
|
|
// 출하 목록 Mock 데이터
|
|||
|
|
export const mockShipmentItems: ShipmentItem[] = [
|
|||
|
|
{
|
|||
|
|
id: 'sl-251220-01',
|
|||
|
|
shipmentNo: 'SL-251220-01',
|
|||
|
|
lotNo: 'KD-TS-251217-10',
|
|||
|
|
scheduledDate: '2025-12-20',
|
|||
|
|
status: 'completed',
|
|||
|
|
priority: 'urgent',
|
|||
|
|
deliveryMethod: 'direct',
|
|||
|
|
customerName: '두산건설(주)',
|
|||
|
|
siteName: '위브 청라',
|
|||
|
|
manager: '-',
|
|||
|
|
canShip: true,
|
|||
|
|
depositConfirmed: true,
|
|||
|
|
invoiceIssued: true,
|
|||
|
|
},
|
|||
|
|
{
|
|||
|
|
id: 'sl-251222-03',
|
|||
|
|
shipmentNo: 'SL-251222-03',
|
|||
|
|
lotNo: 'KD-TS-251217-09',
|
|||
|
|
scheduledDate: '2025-12-22',
|
|||
|
|
status: 'completed',
|
|||
|
|
priority: 'normal',
|
|||
|
|
deliveryMethod: 'logistics',
|
|||
|
|
customerName: '태영건설(주)',
|
|||
|
|
siteName: '대시앙 동탄',
|
|||
|
|
manager: '-',
|
|||
|
|
canShip: true,
|
|||
|
|
depositConfirmed: true,
|
|||
|
|
invoiceIssued: true,
|
|||
|
|
},
|
|||
|
|
{
|
|||
|
|
id: 'sl-251224-01',
|
|||
|
|
shipmentNo: 'SL-251224-01',
|
|||
|
|
lotNo: 'KD-TS-251217-08',
|
|||
|
|
scheduledDate: '2025-12-24',
|
|||
|
|
status: 'completed',
|
|||
|
|
priority: 'normal',
|
|||
|
|
deliveryMethod: 'logistics',
|
|||
|
|
customerName: '호반건설(주)',
|
|||
|
|
siteName: '버킷 광교',
|
|||
|
|
manager: '-',
|
|||
|
|
canShip: true,
|
|||
|
|
depositConfirmed: true,
|
|||
|
|
invoiceIssued: true,
|
|||
|
|
},
|
|||
|
|
{
|
|||
|
|
id: 'sl-251221-03',
|
|||
|
|
shipmentNo: 'SL-251221-03',
|
|||
|
|
lotNo: 'KD-TS-251217-06',
|
|||
|
|
scheduledDate: '2025-12-21',
|
|||
|
|
status: 'shipping',
|
|||
|
|
priority: 'normal',
|
|||
|
|
deliveryMethod: 'pickup',
|
|||
|
|
customerName: '호반건설(주)',
|
|||
|
|
siteName: '버킷 광교',
|
|||
|
|
manager: '-',
|
|||
|
|
canShip: true,
|
|||
|
|
depositConfirmed: true,
|
|||
|
|
invoiceIssued: true,
|
|||
|
|
},
|
|||
|
|
{
|
|||
|
|
id: 'sl-251223-02',
|
|||
|
|
shipmentNo: 'SL-251223-02',
|
|||
|
|
lotNo: 'KD-TS-251217-05',
|
|||
|
|
scheduledDate: '2025-12-23',
|
|||
|
|
status: 'ready',
|
|||
|
|
priority: 'normal',
|
|||
|
|
deliveryMethod: 'direct',
|
|||
|
|
customerName: '포스코건설(주)',
|
|||
|
|
siteName: '더샵 송도',
|
|||
|
|
manager: '-',
|
|||
|
|
canShip: true,
|
|||
|
|
depositConfirmed: true,
|
|||
|
|
invoiceIssued: true,
|
|||
|
|
},
|
|||
|
|
{
|
|||
|
|
id: 'sl-251222-02',
|
|||
|
|
shipmentNo: 'SL-251222-02',
|
|||
|
|
lotNo: 'KD-TS-251217-04',
|
|||
|
|
scheduledDate: '2025-12-22',
|
|||
|
|
status: 'completed',
|
|||
|
|
priority: 'normal',
|
|||
|
|
deliveryMethod: 'direct',
|
|||
|
|
customerName: 'GS건설(주)',
|
|||
|
|
siteName: '자이 위례',
|
|||
|
|
manager: '-',
|
|||
|
|
canShip: true,
|
|||
|
|
depositConfirmed: true,
|
|||
|
|
invoiceIssued: true,
|
|||
|
|
},
|
|||
|
|
{
|
|||
|
|
id: 'sl-251222-01',
|
|||
|
|
shipmentNo: 'SL-251222-01',
|
|||
|
|
lotNo: 'KD-TS-251217-03',
|
|||
|
|
scheduledDate: '2025-12-22',
|
|||
|
|
status: 'completed',
|
|||
|
|
priority: 'normal',
|
|||
|
|
deliveryMethod: 'pickup',
|
|||
|
|
customerName: '대우건설(주)',
|
|||
|
|
siteName: '푸르지오 일산',
|
|||
|
|
manager: '-',
|
|||
|
|
canShip: true,
|
|||
|
|
depositConfirmed: true,
|
|||
|
|
invoiceIssued: true,
|
|||
|
|
},
|
|||
|
|
{
|
|||
|
|
id: 'sl-251223-02b',
|
|||
|
|
shipmentNo: 'SL-251223-02',
|
|||
|
|
lotNo: 'KD-TS-251217-02',
|
|||
|
|
scheduledDate: '2025-12-23',
|
|||
|
|
status: 'scheduled',
|
|||
|
|
priority: 'normal',
|
|||
|
|
deliveryMethod: 'logistics',
|
|||
|
|
customerName: '현대건설(주)',
|
|||
|
|
siteName: '힐스테이트 판교',
|
|||
|
|
manager: '-',
|
|||
|
|
canShip: false,
|
|||
|
|
depositConfirmed: false,
|
|||
|
|
invoiceIssued: false,
|
|||
|
|
},
|
|||
|
|
{
|
|||
|
|
id: 'sl-251221-02',
|
|||
|
|
shipmentNo: 'SL-251221-02',
|
|||
|
|
lotNo: 'KD-TS-251217-02',
|
|||
|
|
scheduledDate: '2025-12-23',
|
|||
|
|
status: 'scheduled',
|
|||
|
|
priority: 'normal',
|
|||
|
|
deliveryMethod: 'pickup',
|
|||
|
|
customerName: '현대건설(주)',
|
|||
|
|
siteName: '힐스테이트 판교',
|
|||
|
|
manager: '-',
|
|||
|
|
canShip: false,
|
|||
|
|
depositConfirmed: true,
|
|||
|
|
invoiceIssued: false,
|
|||
|
|
},
|
|||
|
|
{
|
|||
|
|
id: 'sl-251221-01',
|
|||
|
|
shipmentNo: 'SL-251221-01',
|
|||
|
|
lotNo: 'KD-TS-251217-01',
|
|||
|
|
scheduledDate: '2025-12-21',
|
|||
|
|
status: 'scheduled',
|
|||
|
|
priority: 'normal',
|
|||
|
|
deliveryMethod: 'pickup',
|
|||
|
|
customerName: '삼성물산(주)',
|
|||
|
|
siteName: '래미안 강남 포레스트',
|
|||
|
|
manager: '-',
|
|||
|
|
canShip: false,
|
|||
|
|
depositConfirmed: false,
|
|||
|
|
invoiceIssued: false,
|
|||
|
|
},
|
|||
|
|
];
|
|||
|
|
|
|||
|
|
// 출하 상세 Mock 데이터
|
|||
|
|
export const mockShipmentDetail: ShipmentDetail = {
|
|||
|
|
id: 'sl-251220-01',
|
|||
|
|
shipmentNo: 'SL-251220-01',
|
|||
|
|
lotNo: 'KD-TS-251217-10',
|
|||
|
|
scheduledDate: '2025-12-20',
|
|||
|
|
status: 'completed',
|
|||
|
|
priority: 'urgent',
|
|||
|
|
deliveryMethod: 'direct',
|
|||
|
|
depositConfirmed: true,
|
|||
|
|
invoiceIssued: true,
|
|||
|
|
customerGrade: 'B등급',
|
|||
|
|
canShip: true,
|
|||
|
|
loadingManager: '김상차',
|
|||
|
|
loadingCompleted: '2025.12.20.',
|
|||
|
|
registrant: '판매1팀 임판매',
|
|||
|
|
|
|||
|
|
customerName: '두산건설(주)',
|
|||
|
|
siteName: '위브 청라',
|
|||
|
|
deliveryAddress: '인천시 서구 청라동 456',
|
|||
|
|
receiver: '임현장',
|
|||
|
|
receiverContact: '010-8901-2345',
|
|||
|
|
|
|||
|
|
products: [
|
|||
|
|
{
|
|||
|
|
id: 'prod-1',
|
|||
|
|
no: 1,
|
|||
|
|
itemCode: 'SH3225',
|
|||
|
|
itemName: '스크린 셔터 (와이어)',
|
|||
|
|
floorUnit: '18층/M-01',
|
|||
|
|
specification: '3200×2500',
|
|||
|
|
quantity: 1,
|
|||
|
|
lotNo: 'LOT-20251217-001',
|
|||
|
|
},
|
|||
|
|
],
|
|||
|
|
|
|||
|
|
logisticsCompany: '-',
|
|||
|
|
vehicleTonnage: '3.5톤',
|
|||
|
|
shippingCost: undefined,
|
|||
|
|
|
|||
|
|
vehicleNo: '34사 5678',
|
|||
|
|
driverName: '정운전',
|
|||
|
|
driverContact: '010-5656-7878',
|
|||
|
|
|
|||
|
|
remarks: '[통합테스트10] 두산건설 - 전체 플로우 완료 (견적→수주→생산→품질→출하→회계)',
|
|||
|
|
};
|
|||
|
|
|
|||
|
|
// LOT 선택 옵션 (등록 시)
|
|||
|
|
export const mockLotOptions: LotOption[] = [
|
|||
|
|
{
|
|||
|
|
value: 'KD-TS-251217-10',
|
|||
|
|
label: 'KD-TS-251217-10',
|
|||
|
|
customerName: '두산건설(주)',
|
|||
|
|
siteName: '위브 청라',
|
|||
|
|
deliveryAddress: '인천시 서구 청라동 456',
|
|||
|
|
},
|
|||
|
|
{
|
|||
|
|
value: 'KD-TS-251217-09',
|
|||
|
|
label: 'KD-TS-251217-09',
|
|||
|
|
customerName: '태영건설(주)',
|
|||
|
|
siteName: '대시앙 동탄',
|
|||
|
|
deliveryAddress: '경기도 화성시 동탄순환대로 100',
|
|||
|
|
},
|
|||
|
|
{
|
|||
|
|
value: 'KD-TS-251217-08',
|
|||
|
|
label: 'KD-TS-251217-08',
|
|||
|
|
customerName: '호반건설(주)',
|
|||
|
|
siteName: '버킷 광교',
|
|||
|
|
deliveryAddress: '경기도 수원시 영통구 광교로 200',
|
|||
|
|
},
|
|||
|
|
];
|
|||
|
|
|
|||
|
|
// 물류사 옵션
|
|||
|
|
export const mockLogisticsOptions: LogisticsOption[] = [
|
|||
|
|
{ value: 'hanjin', label: '한진물류' },
|
|||
|
|
{ value: 'cj', label: 'CJ대한통운' },
|
|||
|
|
{ value: 'lotte', label: '롯데글로벌로지스' },
|
|||
|
|
{ value: 'hyundai', label: '현대글로비스' },
|
|||
|
|
];
|
|||
|
|
|
|||
|
|
// 차량 톤수 옵션
|
|||
|
|
export const mockVehicleTonnageOptions: VehicleTonnageOption[] = [
|
|||
|
|
{ value: '1t', label: '1톤' },
|
|||
|
|
{ value: '2.5t', label: '2.5톤' },
|
|||
|
|
{ value: '3.5t', label: '3.5톤' },
|
|||
|
|
{ value: '5t', label: '5톤' },
|
|||
|
|
{ value: '11t', label: '11톤' },
|
|||
|
|
{ value: '25t', label: '25톤' },
|
|||
|
|
];
|
|||
|
|
|
|||
|
|
// 우선순위 옵션
|
|||
|
|
export const priorityOptions = [
|
|||
|
|
{ value: 'urgent', label: '긴급' },
|
|||
|
|
{ value: 'normal', label: '보통' },
|
|||
|
|
{ value: 'low', label: '낮음' },
|
|||
|
|
];
|
|||
|
|
|
|||
|
|
// 배송방식 옵션
|
|||
|
|
export const deliveryMethodOptions = [
|
|||
|
|
{ value: 'pickup', label: '상차' },
|
|||
|
|
{ value: 'direct', label: '직접배차' },
|
|||
|
|
{ value: 'logistics', label: '물류사' },
|
|||
|
|
];
|