feat: [bending] 절곡품 전용 테이블 분리 API
- bending_items 전용 테이블 생성 (items.options → 정규 컬럼 승격) - bending_models 전용 테이블 생성 (가이드레일/케이스/하단마감재 통합) - bending_data JSON 통합 (별도 테이블 → bending_items.bending_data 컬럼) - bending_item_mappings 테이블 DROP (bending_items.code에 흡수) - BendingItemService/BendingCodeService → BendingItem 모델 전환 - GuiderailModelService component 이미지 자동 복사 - ItemsFileController bending_items/bending_models 폴백 지원 - Swagger 스키마 업데이트
This commit is contained in:
463
storage/api-docs/api-docs-v1.json
Executable file → Normal file
463
storage/api-docs/api-docs-v1.json
Executable file → Normal file
@@ -9442,6 +9442,7 @@
|
||||
"BendingItem"
|
||||
],
|
||||
"summary": "절곡품 목록 조회",
|
||||
"description": "bending_items 테이블에서 검색. 정규 컬럼 인덱스로 빠른 검색 지원.",
|
||||
"operationId": "c497d5bfebed3fb08cd4d5be9224c795",
|
||||
"parameters": [
|
||||
{
|
||||
@@ -9484,9 +9485,27 @@
|
||||
]
|
||||
}
|
||||
},
|
||||
{
|
||||
"name": "model_name",
|
||||
"in": "query",
|
||||
"required": false,
|
||||
"schema": {
|
||||
"type": "string"
|
||||
}
|
||||
},
|
||||
{
|
||||
"name": "legacy_bending_num",
|
||||
"in": "query",
|
||||
"description": "chandj.bending.num으로 검색",
|
||||
"required": false,
|
||||
"schema": {
|
||||
"type": "integer"
|
||||
}
|
||||
},
|
||||
{
|
||||
"name": "search",
|
||||
"in": "query",
|
||||
"description": "item_name, code, item_spec, legacy_code 통합 검색",
|
||||
"required": false,
|
||||
"schema": {
|
||||
"type": "string"
|
||||
@@ -9512,7 +9531,30 @@
|
||||
],
|
||||
"responses": {
|
||||
"200": {
|
||||
"description": "성공"
|
||||
"description": "성공",
|
||||
"content": {
|
||||
"application/json": {
|
||||
"schema": {
|
||||
"properties": {
|
||||
"data": {
|
||||
"properties": {
|
||||
"data": {
|
||||
"type": "array",
|
||||
"items": {
|
||||
"$ref": "#/components/schemas/BendingItem"
|
||||
}
|
||||
},
|
||||
"total": {
|
||||
"type": "integer"
|
||||
}
|
||||
},
|
||||
"type": "object"
|
||||
}
|
||||
},
|
||||
"type": "object"
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
},
|
||||
@@ -9528,7 +9570,6 @@
|
||||
"schema": {
|
||||
"required": [
|
||||
"code",
|
||||
"name",
|
||||
"item_name",
|
||||
"item_sep",
|
||||
"item_bending",
|
||||
@@ -9536,13 +9577,13 @@
|
||||
],
|
||||
"properties": {
|
||||
"code": {
|
||||
"type": "string"
|
||||
},
|
||||
"name": {
|
||||
"type": "string"
|
||||
"description": "LOT 코드",
|
||||
"type": "string",
|
||||
"example": "RM260319"
|
||||
},
|
||||
"item_name": {
|
||||
"type": "string"
|
||||
"type": "string",
|
||||
"example": "본체"
|
||||
},
|
||||
"item_sep": {
|
||||
"type": "string",
|
||||
@@ -9552,17 +9593,99 @@
|
||||
]
|
||||
},
|
||||
"item_bending": {
|
||||
"type": "string"
|
||||
"type": "string",
|
||||
"example": "가이드레일"
|
||||
},
|
||||
"material": {
|
||||
"type": "string"
|
||||
"type": "string",
|
||||
"example": "EGI 1.55T"
|
||||
},
|
||||
"item_spec": {
|
||||
"type": "string",
|
||||
"example": "120*70",
|
||||
"nullable": true
|
||||
},
|
||||
"model_name": {
|
||||
"type": "string",
|
||||
"example": "KSS01",
|
||||
"nullable": true
|
||||
},
|
||||
"model_UA": {
|
||||
"type": "string",
|
||||
"enum": [
|
||||
"인정",
|
||||
"비인정"
|
||||
],
|
||||
"nullable": true
|
||||
},
|
||||
"rail_width": {
|
||||
"type": "number",
|
||||
"nullable": true
|
||||
},
|
||||
"exit_direction": {
|
||||
"type": "string",
|
||||
"nullable": true
|
||||
},
|
||||
"front_bottom": {
|
||||
"type": "number",
|
||||
"nullable": true
|
||||
},
|
||||
"box_width": {
|
||||
"type": "number",
|
||||
"nullable": true
|
||||
},
|
||||
"box_height": {
|
||||
"type": "number",
|
||||
"nullable": true
|
||||
},
|
||||
"inspection_door": {
|
||||
"type": "string",
|
||||
"nullable": true
|
||||
},
|
||||
"length_code": {
|
||||
"type": "string",
|
||||
"example": "30",
|
||||
"nullable": true
|
||||
},
|
||||
"length_mm": {
|
||||
"type": "integer",
|
||||
"example": 3000,
|
||||
"nullable": true
|
||||
},
|
||||
"bendingData": {
|
||||
"type": "array",
|
||||
"items": {
|
||||
"properties": {
|
||||
"no": {
|
||||
"type": "integer"
|
||||
},
|
||||
"input": {
|
||||
"type": "number"
|
||||
},
|
||||
"rate": {
|
||||
"type": "string"
|
||||
},
|
||||
"sum": {
|
||||
"type": "number"
|
||||
},
|
||||
"color": {
|
||||
"type": "boolean"
|
||||
},
|
||||
"aAngle": {
|
||||
"type": "boolean"
|
||||
}
|
||||
},
|
||||
"type": "object"
|
||||
},
|
||||
"nullable": true
|
||||
},
|
||||
"memo": {
|
||||
"type": "string",
|
||||
"nullable": true
|
||||
},
|
||||
"author": {
|
||||
"type": "string",
|
||||
"nullable": true
|
||||
}
|
||||
},
|
||||
"type": "object"
|
||||
@@ -9583,10 +9706,55 @@
|
||||
"BendingItem"
|
||||
],
|
||||
"summary": "절곡품 필터 옵션 조회",
|
||||
"description": "item_sep, item_bending, material, model_UA, model_name 고유값 목록",
|
||||
"operationId": "f5dd325adc791e1b8cab40b9fa2fb77d",
|
||||
"responses": {
|
||||
"200": {
|
||||
"description": "성공"
|
||||
"description": "성공",
|
||||
"content": {
|
||||
"application/json": {
|
||||
"schema": {
|
||||
"properties": {
|
||||
"data": {
|
||||
"properties": {
|
||||
"item_sep": {
|
||||
"type": "array",
|
||||
"items": {
|
||||
"type": "string"
|
||||
}
|
||||
},
|
||||
"item_bending": {
|
||||
"type": "array",
|
||||
"items": {
|
||||
"type": "string"
|
||||
}
|
||||
},
|
||||
"material": {
|
||||
"type": "array",
|
||||
"items": {
|
||||
"type": "string"
|
||||
}
|
||||
},
|
||||
"model_UA": {
|
||||
"type": "array",
|
||||
"items": {
|
||||
"type": "string"
|
||||
}
|
||||
},
|
||||
"model_name": {
|
||||
"type": "array",
|
||||
"items": {
|
||||
"type": "string"
|
||||
}
|
||||
}
|
||||
},
|
||||
"type": "object"
|
||||
}
|
||||
},
|
||||
"type": "object"
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -9597,6 +9765,7 @@
|
||||
"BendingItem"
|
||||
],
|
||||
"summary": "절곡품 상세 조회",
|
||||
"description": "전개도 데이터(bendingData) 포함",
|
||||
"operationId": "d364f4d4cf76bcce7167561b73216382",
|
||||
"parameters": [
|
||||
{
|
||||
@@ -9610,7 +9779,19 @@
|
||||
],
|
||||
"responses": {
|
||||
"200": {
|
||||
"description": "성공"
|
||||
"description": "성공",
|
||||
"content": {
|
||||
"application/json": {
|
||||
"schema": {
|
||||
"properties": {
|
||||
"data": {
|
||||
"$ref": "#/components/schemas/BendingItem"
|
||||
}
|
||||
},
|
||||
"type": "object"
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
},
|
||||
@@ -9638,18 +9819,57 @@
|
||||
"code": {
|
||||
"type": "string"
|
||||
},
|
||||
"name": {
|
||||
"item_name": {
|
||||
"type": "string"
|
||||
},
|
||||
"memo": {
|
||||
"item_sep": {
|
||||
"type": "string",
|
||||
"enum": [
|
||||
"스크린",
|
||||
"철재"
|
||||
]
|
||||
},
|
||||
"item_bending": {
|
||||
"type": "string"
|
||||
},
|
||||
"material": {
|
||||
"type": "string"
|
||||
},
|
||||
"item_spec": {
|
||||
"type": "string",
|
||||
"nullable": true
|
||||
},
|
||||
"model_name": {
|
||||
"type": "string",
|
||||
"nullable": true
|
||||
},
|
||||
"model_UA": {
|
||||
"type": "string",
|
||||
"nullable": true
|
||||
},
|
||||
"rail_width": {
|
||||
"type": "number",
|
||||
"nullable": true
|
||||
},
|
||||
"length_code": {
|
||||
"type": "string",
|
||||
"nullable": true
|
||||
},
|
||||
"length_mm": {
|
||||
"type": "integer",
|
||||
"nullable": true
|
||||
},
|
||||
"bendingData": {
|
||||
"description": "전체 교체",
|
||||
"type": "array",
|
||||
"items": {
|
||||
"type": "object"
|
||||
},
|
||||
"nullable": true
|
||||
},
|
||||
"memo": {
|
||||
"type": "string",
|
||||
"nullable": true
|
||||
}
|
||||
},
|
||||
"type": "object"
|
||||
@@ -9668,6 +9888,7 @@
|
||||
"BendingItem"
|
||||
],
|
||||
"summary": "절곡품 삭제",
|
||||
"description": "bending_data(전개도)도 함께 삭제",
|
||||
"operationId": "46dcd93439505ae5ffb1dd2c8c1e5685",
|
||||
"parameters": [
|
||||
{
|
||||
@@ -64680,35 +64901,22 @@
|
||||
"properties": {
|
||||
"id": {
|
||||
"type": "integer",
|
||||
"example": 15862
|
||||
"example": 431
|
||||
},
|
||||
"code": {
|
||||
"description": "LOT 코드: {제품Code}{종류Code}{YYMMDD}",
|
||||
"type": "string",
|
||||
"example": "BD-BE-30"
|
||||
"example": "RS260319"
|
||||
},
|
||||
"name": {
|
||||
"legacy_code": {
|
||||
"description": "이전 코드 (items 기반)",
|
||||
"type": "string",
|
||||
"example": "하단마감재(스크린) EGI 3000mm"
|
||||
},
|
||||
"item_type": {
|
||||
"type": "string",
|
||||
"example": "PT"
|
||||
},
|
||||
"item_category": {
|
||||
"type": "string",
|
||||
"example": "BENDING"
|
||||
},
|
||||
"unit": {
|
||||
"type": "string",
|
||||
"example": "EA"
|
||||
},
|
||||
"is_active": {
|
||||
"type": "boolean",
|
||||
"example": true
|
||||
"example": "BD-RS-30",
|
||||
"nullable": true
|
||||
},
|
||||
"item_name": {
|
||||
"type": "string",
|
||||
"example": "하단마감재"
|
||||
"example": "SUS마감재"
|
||||
},
|
||||
"item_sep": {
|
||||
"type": "string",
|
||||
@@ -64719,16 +64927,16 @@
|
||||
},
|
||||
"item_bending": {
|
||||
"type": "string",
|
||||
"example": "하단마감재"
|
||||
"example": "가이드레일"
|
||||
},
|
||||
"item_spec": {
|
||||
"type": "string",
|
||||
"example": "60*40",
|
||||
"example": "120*70",
|
||||
"nullable": true
|
||||
},
|
||||
"material": {
|
||||
"type": "string",
|
||||
"example": "EGI 1.55T"
|
||||
"example": "SUS 1.2T"
|
||||
},
|
||||
"model_name": {
|
||||
"type": "string",
|
||||
@@ -64743,19 +64951,85 @@
|
||||
],
|
||||
"nullable": true
|
||||
},
|
||||
"rail_width": {
|
||||
"type": "number",
|
||||
"nullable": true
|
||||
},
|
||||
"exit_direction": {
|
||||
"description": "출구방향 (케이스 전용)",
|
||||
"type": "string",
|
||||
"nullable": true
|
||||
},
|
||||
"front_bottom": {
|
||||
"description": "전면밑 (케이스 전용)",
|
||||
"type": "number",
|
||||
"nullable": true
|
||||
},
|
||||
"box_width": {
|
||||
"description": "박스폭 (케이스 전용)",
|
||||
"type": "number",
|
||||
"nullable": true
|
||||
},
|
||||
"box_height": {
|
||||
"description": "박스높이 (케이스 전용)",
|
||||
"type": "number",
|
||||
"nullable": true
|
||||
},
|
||||
"inspection_door": {
|
||||
"description": "점검구 (케이스 전용)",
|
||||
"type": "string",
|
||||
"nullable": true
|
||||
},
|
||||
"length_code": {
|
||||
"description": "원자재 길이코드",
|
||||
"type": "string",
|
||||
"example": "30",
|
||||
"nullable": true
|
||||
},
|
||||
"length_mm": {
|
||||
"description": "원자재 길이(mm)",
|
||||
"type": "integer",
|
||||
"example": 3000,
|
||||
"nullable": true
|
||||
},
|
||||
"bendingData": {
|
||||
"description": "전개도 데이터 (bending_data 테이블)",
|
||||
"type": "array",
|
||||
"items": {
|
||||
"properties": {
|
||||
"no": {
|
||||
"description": "열 순서",
|
||||
"type": "integer"
|
||||
},
|
||||
"input": {
|
||||
"description": "입력 치수",
|
||||
"type": "number"
|
||||
},
|
||||
"rate": {
|
||||
"description": "연신율: 빈값/'-1'(하향)/'1'(상향)",
|
||||
"type": "string"
|
||||
},
|
||||
"sum": {
|
||||
"description": "누적 합계",
|
||||
"type": "number"
|
||||
},
|
||||
"color": {
|
||||
"description": "음영 마킹",
|
||||
"type": "boolean"
|
||||
},
|
||||
"aAngle": {
|
||||
"description": "A각 표시",
|
||||
"type": "boolean"
|
||||
}
|
||||
},
|
||||
"type": "object"
|
||||
},
|
||||
"nullable": true
|
||||
},
|
||||
"search_keyword": {
|
||||
"type": "string",
|
||||
"nullable": true
|
||||
},
|
||||
"rail_width": {
|
||||
"type": "integer",
|
||||
"nullable": true
|
||||
},
|
||||
"registration_date": {
|
||||
"type": "string",
|
||||
"format": "date",
|
||||
"nullable": true
|
||||
},
|
||||
"author": {
|
||||
"type": "string",
|
||||
"nullable": true
|
||||
@@ -64764,78 +65038,69 @@
|
||||
"type": "string",
|
||||
"nullable": true
|
||||
},
|
||||
"exit_direction": {
|
||||
"registration_date": {
|
||||
"type": "string",
|
||||
"format": "date",
|
||||
"nullable": true
|
||||
},
|
||||
"front_bottom_width": {
|
||||
"image_file_id": {
|
||||
"description": "절곡 도면 이미지 파일 ID",
|
||||
"type": "integer",
|
||||
"nullable": true
|
||||
},
|
||||
"box_width": {
|
||||
"legacy_bending_id": {
|
||||
"description": "chandj.bending.num 참조",
|
||||
"type": "integer",
|
||||
"nullable": true
|
||||
},
|
||||
"box_height": {
|
||||
"type": "integer",
|
||||
"nullable": true
|
||||
},
|
||||
"bendingData": {
|
||||
"type": "array",
|
||||
"items": {
|
||||
"properties": {
|
||||
"no": {
|
||||
"type": "integer"
|
||||
},
|
||||
"input": {
|
||||
"type": "number"
|
||||
},
|
||||
"rate": {
|
||||
"type": "string"
|
||||
},
|
||||
"sum": {
|
||||
"type": "number"
|
||||
},
|
||||
"color": {
|
||||
"type": "boolean"
|
||||
},
|
||||
"aAngle": {
|
||||
"type": "boolean"
|
||||
}
|
||||
},
|
||||
"type": "object"
|
||||
},
|
||||
"nullable": true
|
||||
},
|
||||
"prefix": {
|
||||
"type": "string",
|
||||
"example": "BE",
|
||||
"nullable": true
|
||||
},
|
||||
"length_code": {
|
||||
"type": "string",
|
||||
"example": "30",
|
||||
"nullable": true
|
||||
},
|
||||
"length_mm": {
|
||||
"type": "integer",
|
||||
"example": 3000,
|
||||
"nullable": true
|
||||
},
|
||||
"legacy_bending_num": {
|
||||
"description": "레거시 chandj bending.num (운영 전 삭제 예정)",
|
||||
"description": "MNG2 호환 (=legacy_bending_id)",
|
||||
"type": "integer",
|
||||
"nullable": true
|
||||
},
|
||||
"modified_by": {
|
||||
"type": "string",
|
||||
"nullable": true
|
||||
},
|
||||
"width_sum": {
|
||||
"type": "integer",
|
||||
"example": 193,
|
||||
"description": "폭합계 (전개도 마지막 sum)",
|
||||
"type": "number",
|
||||
"example": 203,
|
||||
"nullable": true
|
||||
},
|
||||
"bend_count": {
|
||||
"description": "절곡 횟수",
|
||||
"type": "integer",
|
||||
"example": 5
|
||||
},
|
||||
"is_active": {
|
||||
"type": "boolean",
|
||||
"example": true
|
||||
},
|
||||
"name": {
|
||||
"description": "MNG2 호환 (=item_name)",
|
||||
"type": "string"
|
||||
},
|
||||
"front_bottom_width": {
|
||||
"description": "MNG2 호환 (=front_bottom)",
|
||||
"type": "number",
|
||||
"nullable": true
|
||||
},
|
||||
"item_type": {
|
||||
"description": "MNG2 호환 (고정값)",
|
||||
"type": "string",
|
||||
"example": "PT"
|
||||
},
|
||||
"item_category": {
|
||||
"description": "MNG2 호환 (고정값)",
|
||||
"type": "string",
|
||||
"example": "BENDING"
|
||||
},
|
||||
"unit": {
|
||||
"description": "MNG2 호환 (고정값)",
|
||||
"type": "string",
|
||||
"example": "EA"
|
||||
},
|
||||
"created_at": {
|
||||
"type": "string",
|
||||
"format": "date-time"
|
||||
@@ -94607,7 +94872,7 @@
|
||||
},
|
||||
{
|
||||
"name": "BendingItem",
|
||||
"description": "절곡품 기초관리"
|
||||
"description": "절곡품 기초관리 (bending_items 전용 테이블)"
|
||||
},
|
||||
{
|
||||
"name": "Bidding",
|
||||
|
||||
0
storage/api-docs/api-docs.json
Executable file → Normal file
0
storage/api-docs/api-docs.json
Executable file → Normal file
Reference in New Issue
Block a user