848 lines
32 KiB
Markdown
848 lines
32 KiB
Markdown
|
|
```sql
|
||
|
|
CREATE TABLE public.swsc110a_tbl (
|
||
|
|
orderno varchar(10) NOT NULL,
|
||
|
|
acntunit varchar(1) NOT NULL,
|
||
|
|
orderym varchar(6) NOT NULL,
|
||
|
|
orderser varchar(3) NOT NULL,
|
||
|
|
orderunit varchar(1) NOT NULL,
|
||
|
|
salegb varchar(1) NOT NULL,
|
||
|
|
saletype varchar(2) NOT NULL,
|
||
|
|
chulhayn varchar(1) NULL,
|
||
|
|
custcd varchar(6) NOT NULL,
|
||
|
|
deptcd varchar(5) NOT NULL,
|
||
|
|
salesman varchar(30) NOT NULL,
|
||
|
|
bdeptcd varchar(30) NOT NULL,
|
||
|
|
bempno varchar(30) NOT NULL,
|
||
|
|
orderdate varchar(8) NOT NULL,
|
||
|
|
finishdate varchar(8) NULL,
|
||
|
|
goodscd varchar(15) NULL,
|
||
|
|
goodsguarantee int4 NULL,
|
||
|
|
goodsqty int4 NULL,
|
||
|
|
saleqty int4 NULL,
|
||
|
|
saleqty1 int4 NULL,
|
||
|
|
supplyqty int4 NULL,
|
||
|
|
saleprice numeric NULL,
|
||
|
|
saleamt numeric NULL,
|
||
|
|
vatamt numeric NULL,
|
||
|
|
supplyamt numeric NULL,
|
||
|
|
rcptamt numeric NULL,
|
||
|
|
nowonsymbol varchar(5) NULL,
|
||
|
|
nowonprice numeric NULL,
|
||
|
|
nowonexchange numeric NULL,
|
||
|
|
nowonamt numeric NULL,
|
||
|
|
nowonsupply numeric NULL,
|
||
|
|
nowonsupplypal numeric NULL,
|
||
|
|
nowonrcpt numeric NULL,
|
||
|
|
nowonrcptpal numeric NULL,
|
||
|
|
nationgb varchar(3) NULL,
|
||
|
|
optionamt numeric NULL,
|
||
|
|
etcamt numeric NULL,
|
||
|
|
endsale varchar(1) NULL,
|
||
|
|
custreq varchar(1) NULL,
|
||
|
|
bigo varchar(90) NULL,
|
||
|
|
workman varchar(30) NOT NULL,
|
||
|
|
cancelflag varchar(1) NOT NULL,
|
||
|
|
cancelworkman varchar(30) NULL,
|
||
|
|
cancelbigo varchar(90) NULL,
|
||
|
|
cret_date timestamp NULL,
|
||
|
|
cretempno varchar(30) NOT NULL,
|
||
|
|
edit_date timestamp NULL,
|
||
|
|
editempno varchar(30) NOT NULL,
|
||
|
|
goodsyn varchar(1) NULL,
|
||
|
|
past_project_no varchar(50) NULL,
|
||
|
|
equipment_name varchar(200) NULL,
|
||
|
|
equipment_count numeric(10, 2) NULL,
|
||
|
|
request_delivery_date date NULL,
|
||
|
|
delivery_location varchar(200) NULL,
|
||
|
|
setup_location varchar(200) NULL,
|
||
|
|
material varchar(100) NULL,
|
||
|
|
pressure_bar numeric(10, 2) NULL,
|
||
|
|
temperature_celsius numeric(10, 2) NULL,
|
||
|
|
capacity_liter numeric(10, 2) NULL,
|
||
|
|
closure_type varchar(100) NULL,
|
||
|
|
consumables_etc varchar(200) NULL,
|
||
|
|
voltage varchar(50) NULL,
|
||
|
|
certification_status varchar(50) NULL,
|
||
|
|
sales_progress_stage varchar(50) NULL,
|
||
|
|
currency_type varchar(20) NULL,
|
||
|
|
quote_amount_1st numeric(15, 2) NULL,
|
||
|
|
quote_amount_2nd numeric(15, 2) NULL,
|
||
|
|
quote_amount_3rd numeric(15, 2) NULL,
|
||
|
|
order_date date NULL,
|
||
|
|
order_period varchar(50) NULL,
|
||
|
|
result_status varchar(50) NULL,
|
||
|
|
order_amount_krw numeric(15, 2) NULL,
|
||
|
|
contract_method varchar(50) NULL,
|
||
|
|
failure_reason varchar(50) NULL,
|
||
|
|
po_number varchar(100) NULL,
|
||
|
|
pm_manager varchar(50) NULL,
|
||
|
|
project_title varchar(200) NULL,
|
||
|
|
company_project_name varchar(200) NULL,
|
||
|
|
special_notes text NULL,
|
||
|
|
CONSTRAINT pk_swsc110a_tbl PRIMARY KEY (orderno)
|
||
|
|
);
|
||
|
|
CREATE INDEX idx_swsc110a_equipment_name ON public.swsc110a_tbl USING btree (equipment_name);
|
||
|
|
CREATE INDEX idx_swsc110a_order_date ON public.swsc110a_tbl USING btree (order_date);
|
||
|
|
CREATE INDEX idx_swsc110a_pm_manager ON public.swsc110a_tbl USING btree (pm_manager);
|
||
|
|
CREATE INDEX idx_swsc110a_result_status ON public.swsc110a_tbl USING btree (result_status);
|
||
|
|
CREATE INDEX idx_swsc110a_sales_progress ON public.swsc110a_tbl USING btree (sales_progress_stage);
|
||
|
|
```
|
||
|
|
|
||
|
|
---
|
||
|
|
|
||
|
|
```sql
|
||
|
|
CREATE TABLE public.contract_mgmt (
|
||
|
|
objid varchar NOT NULL,
|
||
|
|
category_cd varchar NULL,
|
||
|
|
customer_objid varchar NULL,
|
||
|
|
product varchar NULL,
|
||
|
|
customer_project_name varchar NULL,
|
||
|
|
status_cd varchar NULL,
|
||
|
|
due_date varchar NULL,
|
||
|
|
"location" varchar NULL,
|
||
|
|
setup varchar NULL,
|
||
|
|
facility varchar NULL,
|
||
|
|
facility_qty varchar NULL,
|
||
|
|
facility_type varchar NULL,
|
||
|
|
facility_depth varchar NULL,
|
||
|
|
production_no varchar NULL,
|
||
|
|
bus_cal_cd varchar NULL,
|
||
|
|
category1_cd varchar NULL,
|
||
|
|
chg_user_id varchar NULL,
|
||
|
|
plan_date varchar NULL,
|
||
|
|
complete_date varchar NULL,
|
||
|
|
result_cd varchar NULL,
|
||
|
|
project_no varchar NULL,
|
||
|
|
pm_user_id varchar NULL,
|
||
|
|
contract_price varchar NULL,
|
||
|
|
regdate timestamp NULL,
|
||
|
|
writer varchar NULL,
|
||
|
|
contract_no varchar NULL,
|
||
|
|
customer_equip_name varchar NULL,
|
||
|
|
req_del_date varchar NULL,
|
||
|
|
contract_del_date varchar NULL,
|
||
|
|
contract_company varchar NULL,
|
||
|
|
contract_date varchar NULL,
|
||
|
|
po_no varchar NULL,
|
||
|
|
manufacture_plant varchar NULL,
|
||
|
|
contract_result varchar NULL,
|
||
|
|
project_name varchar NULL,
|
||
|
|
spec_user_id varchar NULL,
|
||
|
|
spec_plan_date varchar NULL,
|
||
|
|
spec_comp_date varchar NULL,
|
||
|
|
spec_result_cd varchar NULL,
|
||
|
|
est_plan_date varchar NULL,
|
||
|
|
est_user_id varchar NULL,
|
||
|
|
est_comp_date varchar NULL,
|
||
|
|
est_result_cd varchar NULL,
|
||
|
|
area_cd varchar NULL,
|
||
|
|
contract_price_currency varchar NULL,
|
||
|
|
contract_currency varchar NULL,
|
||
|
|
customer_production_no varchar NULL,
|
||
|
|
target_project_no varchar NULL,
|
||
|
|
mechanical_type varchar NULL,
|
||
|
|
target_project_no_direct varchar NULL,
|
||
|
|
overhaul_order varchar NULL,
|
||
|
|
past_project_no varchar(50) NULL,
|
||
|
|
equipment_name varchar(200) NULL,
|
||
|
|
equipment_count varchar(100) NULL,
|
||
|
|
request_delivery_date varchar(20) NULL,
|
||
|
|
delivery_location varchar(200) NULL,
|
||
|
|
setup_location varchar(200) NULL,
|
||
|
|
material varchar(100) NULL,
|
||
|
|
pressure_bar varchar(50) NULL,
|
||
|
|
temperature_celsius varchar(50) NULL,
|
||
|
|
capacity_liter varchar(50) NULL,
|
||
|
|
closure_type varchar(100) NULL,
|
||
|
|
consumables_etc varchar(200) NULL,
|
||
|
|
voltage varchar(50) NULL,
|
||
|
|
certification_status varchar(50) NULL,
|
||
|
|
sales_progress_stage varchar(50) NULL,
|
||
|
|
currency_type varchar(20) NULL,
|
||
|
|
quote_amount_1st numeric(15, 2) NULL,
|
||
|
|
quote_amount_2nd numeric(15, 2) NULL,
|
||
|
|
quote_amount_3rd numeric(15, 2) NULL,
|
||
|
|
order_date varchar(20) NULL,
|
||
|
|
order_period varchar(50) NULL,
|
||
|
|
result_status varchar(50) NULL,
|
||
|
|
order_amount_krw numeric(15, 2) NULL,
|
||
|
|
contract_method varchar(50) NULL,
|
||
|
|
failure_reason varchar(50) NULL,
|
||
|
|
po_number varchar(100) NULL,
|
||
|
|
pm_manager varchar(50) NULL,
|
||
|
|
project_title varchar(200) NULL,
|
||
|
|
company_project_name varchar(200) NULL,
|
||
|
|
special_notes text NULL,
|
||
|
|
CONSTRAINT contract_mgmt_pkey PRIMARY KEY (objid)
|
||
|
|
);
|
||
|
|
```
|
||
|
|
|
||
|
|
등록창 수정
|
||
|
|
|
||
|
|
[영업정보]
|
||
|
|
계약구분(공통코드선택), 과거프로젝트번호(프로젝트데이터선택), 국내/해외고객사(공통코드선택), 제품군(기존 선택코드 참조), 제품코드(기존 선택코드 참조), 장비명, 설비대수, 요청납기일(캘린더 활용), 입고지, 셋업지
|
||
|
|
[사양상세]
|
||
|
|
재질, 압력(BAR), 온도(℃), 용량(LITER), Closure type, 기타(소모품), 전압, 인증여부
|
||
|
|
[영업진행]
|
||
|
|
단계(선택 공통코드)
|
||
|
|
[견적이력 및 결과]
|
||
|
|
통화(기존 공통코드), 견적 금액(1차), 견적 금액(2차), 견적 금액(3차), 수주일, 수주가(자동계산), Result(공통코드), 계약방식(공통코드), 실폐사유(공통코드), P/O No, PM(기존 데이터선택 유지), 당사프로젝트명
|
||
|
|
[특이사항]
|
||
|
|
입력칸
|
||
|
|
[파일첨부]
|
||
|
|
입수자료, 제출자료( 기존 파일첨부 활용 - 다중 파일 첨부 가능)
|
||
|
|
|
||
|
|
## 아래는 공통코드(등록되어 있음)
|
||
|
|
|
||
|
|
계약방식 선택
|
||
|
|
조달
|
||
|
|
민자
|
||
|
|
대리점
|
||
|
|
재료비
|
||
|
|
|
||
|
|
---
|
||
|
|
|
||
|
|
실폐사유 선택
|
||
|
|
회신 없음
|
||
|
|
예산 문제
|
||
|
|
탈락
|
||
|
|
유찰
|
||
|
|
취소
|
||
|
|
부적합
|
||
|
|
|
||
|
|
---
|
||
|
|
|
||
|
|
진행단계 선택
|
||
|
|
사양협의
|
||
|
|
원가검토
|
||
|
|
견적제출
|
||
|
|
|
||
|
|
---
|
||
|
|
|
||
|
|
계약구분 선택
|
||
|
|
① 개발
|
||
|
|
② 변형
|
||
|
|
③ 소모품
|
||
|
|
④ 재주문
|
||
|
|
⑤ A/S
|
||
|
|
⑥ 연구과제
|
||
|
|
|
||
|
|
등록화면이 이렇게 나와야 함
|
||
|
|
|
||
|
|
---
|
||
|
|
|
||
|
|
# 영업관리\_계약관리 시스템 필드 추가 수정 (기존 코드 활용 최대화)
|
||
|
|
|
||
|
|
## 📖 시스템 개요
|
||
|
|
|
||
|
|
기존 계약관리 시스템을 확장하여 영업등록 시스템으로 발전시키는 프로젝트입니다.
|
||
|
|
|
||
|
|
## 🔍 **기존 코드 vs 신규 추가 정확한 구분**
|
||
|
|
|
||
|
|
### ✅ **기존 코드 활용 (수정 불필요)**
|
||
|
|
|
||
|
|
#### 1. 기존 공통코드 (이미 등록되어 활용 중)
|
||
|
|
|
||
|
|
| 코드ID | 용도 | 기존 사용처 | 선택값 |
|
||
|
|
| ----------- | ------------ | ----------------------------------------- | ----------------------------------------------------- |
|
||
|
|
| **0000167** | 계약구분 | ProjectController, ContractMgmtController | ① 개발, ② 변형, ③ 소모품, ④ 재주문, ⑤ A/S, ⑥ 연구과제 |
|
||
|
|
| **0000932** | 영업진행단계 | ProjectController, ContractMgmtController | 사양협의, 원가검토, 견적제출 |
|
||
|
|
| **0000963** | 수주결과 | ProjectController, ContractMgmtController | 수주, 실패 |
|
||
|
|
| **0000964** | 실패사유 | ContractMgmtService, 여러 매퍼 | 회신 없음, 예산 문제, 탈락, 유찰, 취소, 부적합 |
|
||
|
|
|
||
|
|
#### 2. 기존 필드 (JSP에 이미 존재)
|
||
|
|
|
||
|
|
- **계약구분** (`category_cd`) - 기존 0000167 공통코드 사용
|
||
|
|
- **국내/해외** (`area_cd`) - 기존 필드 활용
|
||
|
|
- **고객사** (`customer_objid`) - 기존 고객 선택 코드 활용
|
||
|
|
- **제품구분** (`product`) - 기존 제품 선택 코드 활용
|
||
|
|
- **기계형식** (`mechanical_type`) - 기존 필드 활용
|
||
|
|
|
||
|
|
#### 3. 기존 파일 업로드 기능
|
||
|
|
|
||
|
|
- **입수자료** (`contractMgmt01`) - 기존 DRAG & DROP 방식 활용
|
||
|
|
- **제출자료** (`contractMgmt02`) - 기존 DRAG & DROP 방식 활용
|
||
|
|
|
||
|
|
### 🆕 **신규 추가 필요**
|
||
|
|
|
||
|
|
#### 1. 신규 공통코드 (추가 등록 필요)
|
||
|
|
|
||
|
|
추가된 공통코드
|
||
|
|
|
||
|
|
-- 계약구분 부모 코드
|
||
|
|
INSERT INTO comm_code (code_id, parent_code_id, code_name, id, code_cd, ext_val, writer, regdate, status)
|
||
|
|
VALUES ('0000167', NULL, '계약구분', NULL, NULL, NULL, 'plm_admin', NOW(), 'active');
|
||
|
|
|
||
|
|
-- 영업진행단계 부모 코드
|
||
|
|
INSERT INTO comm_code (code_id, parent_code_id, code_name, id, code_cd, ext_val, writer, regdate, status)
|
||
|
|
VALUES ('0000932', NULL, '영업진행단계', NULL, NULL, NULL, 'plm_admin', NOW(), 'active');
|
||
|
|
|
||
|
|
-- 수주결과 부모 코드
|
||
|
|
INSERT INTO comm_code (code_id, parent_code_id, code_name, id, code_cd, ext_val, writer, regdate, status)
|
||
|
|
VALUES ('0000963', NULL, '수주결과', NULL, NULL, NULL, 'plm_admin', NOW(), 'active');
|
||
|
|
|
||
|
|
-- 실패사유 부모 코드
|
||
|
|
INSERT INTO comm_code (code_id, parent_code_id, code_name, id, code_cd, ext_val, writer, regdate, status)
|
||
|
|
VALUES ('0000964', NULL, '실패사유', NULL, NULL, NULL, 'plm_admin', NOW(), 'active');
|
||
|
|
|
||
|
|
-- 통화단위 부모 코드
|
||
|
|
INSERT INTO comm_code (code_id, parent_code_id, code_name, id, code_cd, ext_val, writer, regdate, status)
|
||
|
|
VALUES ('0000965', NULL, '통화단위', NULL, NULL, NULL, 'plm_admin', NOW(), 'active');
|
||
|
|
|
||
|
|
-- 계약방식 부모 코드
|
||
|
|
INSERT INTO comm_code (code_id, parent_code_id, code_name, id, code_cd, ext_val, writer, regdate, status)
|
||
|
|
VALUES ('0000966', NULL, '계약방식', NULL, NULL, NULL, 'plm_admin', NOW(), 'active');
|
||
|
|
|
||
|
|
-- 통화단위 하위 코드
|
||
|
|
INSERT INTO comm_code (code_id, parent_code_id, code_name, id, code_cd, ext_val, writer, regdate, status)
|
||
|
|
VALUES
|
||
|
|
('0000965001', '0000965', 'KRW', NULL, NULL, NULL, 'plm_admin', NOW(), 'active'),
|
||
|
|
('0000965002', '0000965', 'USD', NULL, NULL, NULL, 'plm_admin', NOW(), 'active'),
|
||
|
|
('0000965003', '0000965', 'EUR', NULL, NULL, NULL, 'plm_admin', NOW(), 'active'),
|
||
|
|
('0000965004', '0000965', 'JPY', NULL, NULL, NULL, 'plm_admin', NOW(), 'active'),
|
||
|
|
('0000965005', '0000965', 'CNY', NULL, NULL, NULL, 'plm_admin', NOW(), 'active');
|
||
|
|
|
||
|
|
-- 실패사유 부모 코드
|
||
|
|
INSERT INTO comm_code (code_id, parent_code_id, code_name, id, code_cd, ext_val, writer, regdate, status)
|
||
|
|
VALUES ('0000964', NULL, '실패사유', NULL, NULL, NULL, 'plm_admin', NOW(), 'active');
|
||
|
|
|
||
|
|
-- 실패사유 하위 코드
|
||
|
|
INSERT INTO comm_code (code_id, parent_code_id, code_name, id, code_cd, ext_val, writer, regdate, status)
|
||
|
|
VALUES
|
||
|
|
('0000964001', '0000964', '회신없음', NULL, NULL, NULL, 'plm_admin', NOW(), 'active'),
|
||
|
|
('0000964002', '0000964', '예산문제', NULL, NULL, NULL, 'plm_admin', NOW(), 'active'),
|
||
|
|
('0000964003', '0000964', '탈락', NULL, NULL, NULL, 'plm_admin', NOW(), 'active'),
|
||
|
|
('0000964004', '0000964', '유찰', NULL, NULL, NULL, 'plm_admin', NOW(), 'active'),
|
||
|
|
('0000964005', '0000964', '취소', NULL, NULL, NULL, 'plm_admin', NOW(), 'active'),
|
||
|
|
('0000964006', '0000964', '부적합', NULL, NULL, NULL, 'plm_admin', NOW(), 'active');
|
||
|
|
|
||
|
|
-- 계약방식 부모 코드
|
||
|
|
INSERT INTO comm_code (code_id, parent_code_id, code_name, id, code_cd, ext_val, writer, regdate, status)
|
||
|
|
VALUES ('0000966', NULL, '계약방식', NULL, NULL, NULL, 'plm_admin', NOW(), 'active');
|
||
|
|
|
||
|
|
-- 계약방식 하위 코드
|
||
|
|
INSERT INTO comm_code (code_id, parent_code_id, code_name, id, code_cd, ext_val, writer, regdate, status)
|
||
|
|
VALUES
|
||
|
|
('0000966001', '0000966', '조달', NULL, NULL, NULL, 'plm_admin', NOW(), 'active'),
|
||
|
|
('0000966002', '0000966', '민자', NULL, NULL, NULL, 'plm_admin', NOW(), 'active'),
|
||
|
|
('0000966003', '0000966', '대리점', NULL, NULL, NULL, 'plm_admin', NOW(), 'active'),
|
||
|
|
('0000966004', '0000966', '재로비', NULL, NULL, NULL, 'plm_admin', NOW(), 'active');
|
||
|
|
|
||
|
|
-- 계약구분 하위 코드
|
||
|
|
INSERT INTO comm_code (code_id, parent_code_id, code_name, id, code_cd, ext_val, writer, regdate, status)
|
||
|
|
VALUES
|
||
|
|
('0000167001', '0000167', '개발', NULL, NULL, NULL, 'plm_admin', NOW(), 'active'),
|
||
|
|
('0000167002', '0000167', '변형', NULL, NULL, NULL, 'plm_admin', NOW(), 'active'),
|
||
|
|
('0000167003', '0000167', '소모품', NULL, NULL, NULL, 'plm_admin', NOW(), 'active'),
|
||
|
|
('0000167004', '0000167', '재주문', NULL, NULL, NULL, 'plm_admin', NOW(), 'active'),
|
||
|
|
('0000167005', '0000167', 'A/S', NULL, NULL, NULL, 'plm_admin', NOW(), 'active'),
|
||
|
|
('0000167006', '0000167', '연구과제', NULL, NULL, NULL, 'plm_admin', NOW(), 'active');
|
||
|
|
|
||
|
|
-- 영업진행단계 하위 코드
|
||
|
|
INSERT INTO comm_code (code_id, parent_code_id, code_name, id, code_cd, ext_val, writer, regdate, status)
|
||
|
|
VALUES
|
||
|
|
('0000932001', '0000932', '사양협의', NULL, NULL, NULL, 'plm_admin', NOW(), 'active'),
|
||
|
|
('0000932002', '0000932', '원가검토', NULL, NULL, NULL, 'plm_admin', NOW(), 'active'),
|
||
|
|
('0000932003', '0000932', '견적제출', NULL, NULL, NULL, 'plm_admin', NOW(), 'active');
|
||
|
|
|
||
|
|
-- 수주결과 하위 코드
|
||
|
|
INSERT INTO comm_code (code_id, parent_code_id, code_name, id, code_cd, ext_val, writer, regdate, status)
|
||
|
|
VALUES
|
||
|
|
('0000963001', '0000963', '수주', NULL, NULL, NULL, 'plm_admin', NOW(), 'active'),
|
||
|
|
('0000963002', '0000963', '실패', NULL, NULL, NULL, 'plm_admin', NOW(), 'active');
|
||
|
|
|
||
|
|
#### 2. 신규 필드 (JSP에 추가 필요)
|
||
|
|
|
||
|
|
**[영업정보] 섹션:**
|
||
|
|
|
||
|
|
- ✅ 계약구분 - **기존 활용** (0000167)
|
||
|
|
- 🆕 과거프로젝트번호 - **신규 추가** (프로젝트 데이터 선택)
|
||
|
|
- ✅ 국내/해외 - **기존 활용**
|
||
|
|
- ✅ 고객사 - **기존 활용**
|
||
|
|
- ✅ 제품군 - **기존 활용**
|
||
|
|
- ✅ 제품코드 - **기존 활용**
|
||
|
|
- 🆕 장비명 - **신규 추가** (직접 입력)
|
||
|
|
- 🆕 설비대수 - **신규 추가** (직접 입력)
|
||
|
|
- 🆕 요청납기일 - **신규 추가** (캘린더)
|
||
|
|
- 🆕 입고지 - **신규 추가** (직접 입력)
|
||
|
|
- 🆕 셋업지 - **신규 추가** (직접 입력)
|
||
|
|
|
||
|
|
**[사양상세] 섹션 - 모두 신규 추가:**
|
||
|
|
|
||
|
|
- 🆕 재질 - **신규 추가** (직접 입력)
|
||
|
|
- 🆕 압력(BAR) - **신규 추가** (직접 입력)
|
||
|
|
- 🆕 온도(℃) - **신규 추가** (직접 입력)
|
||
|
|
- 🆕 용량(LITER) - **신규 추가** (직접 입력)
|
||
|
|
- 🆕 Closure Type - **신규 추가** (직접 입력)
|
||
|
|
- 🆕 기타(소모품) - **신규 추가** (직접 입력)
|
||
|
|
- 🆕 전압 - **신규 추가** (직접 입력)
|
||
|
|
- 🆕 인증여부 - **신규 추가** (직접 입력)
|
||
|
|
|
||
|
|
**[영업진행] 섹션:**
|
||
|
|
|
||
|
|
- ✅ 단계 - **기존 활용** (0000932 - 사양협의, 원가검토, 견적제출)
|
||
|
|
|
||
|
|
**[견적이력 및 결과] 섹션:**
|
||
|
|
|
||
|
|
- 🆕 통화 - **신규 추가** (0000965 공통코드)
|
||
|
|
- 🆕 견적금액(1차) - **신규 추가** (직접 입력)
|
||
|
|
- 🆕 견적금액(2차) - **신규 추가** (직접 입력)
|
||
|
|
- 🆕 견적금액(3차) - **신규 추가** (직접 입력)
|
||
|
|
- 🆕 수주일 - **신규 추가** (캘린더)
|
||
|
|
- 🆕 수주가 - **신규 추가** (자동계산)
|
||
|
|
- ✅ Result - **기존 활용** (0000963 - 수주/실패)
|
||
|
|
- 🆕 계약방식 - **신규 추가** (0000966 공통코드)
|
||
|
|
- ✅ 실패사유 - **기존 활용** (0000964)
|
||
|
|
- 🆕 P/O No - **신규 추가** (직접 입력)
|
||
|
|
- ✅ PM - **기존 활용** (기존 사용자 선택)
|
||
|
|
- 🆕 당사프로젝트명 - **신규 추가** (직접 입력)
|
||
|
|
|
||
|
|
**[특이사항] 섹션:**
|
||
|
|
|
||
|
|
- 🆕 특이사항 - **신규 추가** (텍스트 영역)
|
||
|
|
|
||
|
|
## 🏗️ 구현 계획
|
||
|
|
|
||
|
|
### Phase 1: 신규 공통코드 등록
|
||
|
|
|
||
|
|
```sql
|
||
|
|
-- 계약방식과 통화단위만 신규 추가
|
||
|
|
INSERT INTO COMM_CODE VALUES ('0000965', NULL, '통화단위', 'active');
|
||
|
|
INSERT INTO COMM_CODE VALUES ('0000966', NULL, '계약방식', 'active');
|
||
|
|
-- 상세값들...
|
||
|
|
```
|
||
|
|
|
||
|
|
### Phase 2: 백엔드 확장 (기존 메서드 확장)
|
||
|
|
|
||
|
|
#### ContractMgmtController.java 확장
|
||
|
|
|
||
|
|
```java
|
||
|
|
@RequestMapping("/contractMgmt/contracMgmtFormPopup.do")
|
||
|
|
public String contracMgmtFormPopup(HttpServletRequest request, @RequestParam Map<String, Object> paramMap) {
|
||
|
|
// 기존 로직 유지
|
||
|
|
Map info = contractMgmtService.getContractMgmtInfo(paramMap);
|
||
|
|
Map<String, String> code_map = new HashMap<>();
|
||
|
|
|
||
|
|
// 기존 공통코드들 (유지)
|
||
|
|
code_map.put("category_cd", commonService.bizMakeOptionList("0000167", "", "common.getCodeselect"));
|
||
|
|
code_map.put("status_cd", commonService.bizMakeOptionList("0000932", "", "common.getCodeselect"));
|
||
|
|
code_map.put("result_cd", commonService.bizMakeOptionList("0000963", "", "common.getCodeselect"));
|
||
|
|
code_map.put("failure_reason", commonService.bizMakeOptionList("0000964", "", "common.getCodeselect"));
|
||
|
|
|
||
|
|
// 신규 공통코드만 추가
|
||
|
|
code_map.put("currency_type", commonService.bizMakeOptionList("0000965", "", "common.getCodeselect"));
|
||
|
|
code_map.put("contract_method", commonService.bizMakeOptionList("0000966", "", "common.getCodeselect"));
|
||
|
|
|
||
|
|
request.setAttribute("info", info);
|
||
|
|
request.setAttribute("code_map", code_map);
|
||
|
|
return "/contractMgmt/contracMgmtFormPopup";
|
||
|
|
}
|
||
|
|
```
|
||
|
|
|
||
|
|
### Phase 3: 프론트엔드 확장 (기존 JSP 확장)
|
||
|
|
|
||
|
|
#### contracMgmtFormPopup.jsp 확장
|
||
|
|
|
||
|
|
```jsp
|
||
|
|
<!-- 기존 필드들 유지 -->
|
||
|
|
<tr>
|
||
|
|
<td class="input_title"><label for="">계약구분</label></td>
|
||
|
|
<td colspan="2">
|
||
|
|
<select name="category_cd" id="category_cd" required reqTitle="계약구분" type="select" class="select2">
|
||
|
|
<option value="">선택</option> ${code_map.category_cd}
|
||
|
|
</select>
|
||
|
|
</td>
|
||
|
|
<!-- 기존 필드들... -->
|
||
|
|
</tr>
|
||
|
|
|
||
|
|
<!-- 신규 필드들만 추가 -->
|
||
|
|
<tr>
|
||
|
|
<td class="input_title"><label for="">과거프로젝트번호</label></td>
|
||
|
|
<td colspan="2">
|
||
|
|
<input type="text" name="past_project_no" id="past_project_no" reqTitle="과거프로젝트번호" value="${info.PAST_PROJECT_NO}" />
|
||
|
|
</td>
|
||
|
|
<td class="input_title"><label for="">장비명</label></td>
|
||
|
|
<td colspan="2">
|
||
|
|
<input type="text" name="equipment_name" id="equipment_name" reqTitle="장비명" value="${info.EQUIPMENT_NAME}" />
|
||
|
|
</td>
|
||
|
|
</tr>
|
||
|
|
|
||
|
|
<!-- 사양상세 섹션 전체 신규 추가 -->
|
||
|
|
<tr>
|
||
|
|
<td class="input_title"><label for="">재질</label></td>
|
||
|
|
<td colspan="2">
|
||
|
|
<input type="text" name="material" id="material" reqTitle="재질" value="${info.MATERIAL}" />
|
||
|
|
</td>
|
||
|
|
<td class="input_title"><label for="">압력(BAR)</label></td>
|
||
|
|
<td colspan="2">
|
||
|
|
<input type="text" name="pressure_bar" id="pressure_bar" reqTitle="압력" value="${info.PRESSURE_BAR}" />
|
||
|
|
</td>
|
||
|
|
</tr>
|
||
|
|
|
||
|
|
<!-- 견적이력 섹션 -->
|
||
|
|
<tr>
|
||
|
|
<td class="input_title"><label for="">통화단위</label></td>
|
||
|
|
<td colspan="2">
|
||
|
|
<select name="currency_type" id="currency_type" reqTitle="통화단위" type="select" class="select2">
|
||
|
|
<option value="">선택</option> ${code_map.currency_type}
|
||
|
|
</select>
|
||
|
|
</td>
|
||
|
|
<td class="input_title"><label for="">계약방식</label></td>
|
||
|
|
<td colspan="2">
|
||
|
|
<select name="contract_method" id="contract_method" reqTitle="계약방식" type="select" class="select2">
|
||
|
|
<option value="">선택</option> ${code_map.contract_method}
|
||
|
|
</select>
|
||
|
|
</td>
|
||
|
|
</tr>
|
||
|
|
```
|
||
|
|
|
||
|
|
### Phase 4: 데이터베이스 확장 (기존 테이블 확장)
|
||
|
|
|
||
|
|
#### CONTRACT_MGMT 테이블에 신규 컬럼 추가
|
||
|
|
|
||
|
|
```sql
|
||
|
|
ALTER TABLE CONTRACT_MGMT ADD COLUMN past_project_no VARCHAR(50);
|
||
|
|
ALTER TABLE CONTRACT_MGMT ADD COLUMN equipment_name VARCHAR(200);
|
||
|
|
ALTER TABLE CONTRACT_MGMT ADD COLUMN equipment_count VARCHAR(100);
|
||
|
|
-- 신규 필드들만 추가...
|
||
|
|
```
|
||
|
|
|
||
|
|
## 🎯 **최종 정리**
|
||
|
|
|
||
|
|
### 기존 코드 활용률: **60%**
|
||
|
|
|
||
|
|
- 기존 공통코드 4개 (0000167, 0000932, 0000963, 0000964) 재활용
|
||
|
|
- 기존 JSP 구조 및 테이블 레이아웃 활용
|
||
|
|
- 기존 파일 업로드 기능 활용
|
||
|
|
- 기존 컨트롤러/서비스/매퍼 메서드 확장
|
||
|
|
|
||
|
|
### 신규 추가 필요: **40%**
|
||
|
|
|
||
|
|
- 신규 공통코드 2개 (0000965, 0000966) 추가
|
||
|
|
- 신규 입력 필드 25개 추가
|
||
|
|
- 신규 자동계산 기능 추가
|
||
|
|
|
||
|
|
이 접근법으로 **기존 시스템의 안정성을 유지**하면서 **최소한의 변경**으로 요구사항을 충족할 수 있습니다.
|
||
|
|
|
||
|
|
## 📋 영업 계약 수정 내용 정리
|
||
|
|
|
||
|
|
### 🔍 **현재 상황 분석**
|
||
|
|
|
||
|
|
**기존 시스템 구조:**
|
||
|
|
|
||
|
|
- 테이블: `SWSC110A_TBL` (기존 계약관리)
|
||
|
|
- 새로운 테이블: `CONTRACT_MGMT` (확장된 영업관리)
|
||
|
|
- JSP: `contractMgmtFormPopup.jsp` (기존 등록 화면)
|
||
|
|
|
||
|
|
### ✅ **기존 코드에서 활용 가능한 요소들**
|
||
|
|
|
||
|
|
#### 1. 기존 공통코드 (이미 등록되어 있음)
|
||
|
|
|
||
|
|
- **0000167**: 계약구분 (개발, 변형, 소모품, 재주문, A/S, 연구과제)
|
||
|
|
- **0000932**: 영업진행단계 (사양협의, 원가검토, 견적제출)
|
||
|
|
- **0000963**: 수주결과 (수주, 실패)
|
||
|
|
- **0000964**: 실패사유 (회신없음, 예산문제, 탈락, 유찰, 취소, 부적합)
|
||
|
|
|
||
|
|
#### 2. 기존 필드 (JSP에 이미 존재)
|
||
|
|
|
||
|
|
- 고객사 선택
|
||
|
|
- 제품코드 선택
|
||
|
|
- 계약일자, 최종납기일
|
||
|
|
- 계약수량, 계약단가, 계약금액
|
||
|
|
|
||
|
|
### 🆕 **신규 추가 필요한 요소들**
|
||
|
|
|
||
|
|
#### 1. 신규 공통코드 (추가 등록 필요)
|
||
|
|
|
||
|
|
```sql
|
||
|
|
-- 통화단위 (0000965)
|
||
|
|
INSERT INTO COMM_CODE VALUES ('0000965', NULL, '통화단위', 'active');
|
||
|
|
INSERT INTO COMM_CODE VALUES ('0000965001', '0000965', 'KRW', 'active');
|
||
|
|
INSERT INTO COMM_CODE VALUES ('0000965002', '0000965', 'USD', 'active');
|
||
|
|
INSERT INTO COMM_CODE VALUES ('0000965003', '0000965', 'EUR', 'active');
|
||
|
|
INSERT INTO COMM_CODE VALUES ('0000965004', '0000965', 'JPY', 'active');
|
||
|
|
INSERT INTO COMM_CODE VALUES ('0000965005', '0000965', 'CNY', 'active');
|
||
|
|
|
||
|
|
-- 계약방식 (0000966)
|
||
|
|
INSERT INTO COMM_CODE VALUES ('0000966', NULL, '계약방식', 'active');
|
||
|
|
INSERT INTO COMM_CODE VALUES ('0000966001', '0000966', '조달', 'active');
|
||
|
|
INSERT INTO COMM_CODE VALUES ('0000966002', '0000966', '민자', 'active');
|
||
|
|
INSERT INTO COMM_CODE VALUES ('0000966003', '0000966', '대리점', 'active');
|
||
|
|
INSERT INTO COMM_CODE VALUES ('0000966004', '0000966', '재료비', 'active');
|
||
|
|
```
|
||
|
|
|
||
|
|
### 🚫 **기존 코드에서 숨겨야 할 필드들**
|
||
|
|
|
||
|
|
#### 1. 기존 계약관리 목록에서 주석처리할 컬럼들
|
||
|
|
|
||
|
|
**파일: `WebContent/WEB-INF/view/salesmgmt/contractMgmt/contractMgmtList.jsp`**
|
||
|
|
|
||
|
|
```jsp
|
||
|
|
<!-- 기존 테이블 헤더에서 숨길 컬럼들 -->
|
||
|
|
<!--
|
||
|
|
<th>보증기간</th>
|
||
|
|
<th>출하수량</th>
|
||
|
|
<th>출고수량</th>
|
||
|
|
<th>매출수량</th>
|
||
|
|
<th>매출액</th>
|
||
|
|
<th>수금액</th>
|
||
|
|
-->
|
||
|
|
|
||
|
|
<!-- 기존 테이블 바디에서 숨길 데이터들 -->
|
||
|
|
<!--
|
||
|
|
<td>${item.GOODSGUARANTEE}</td>
|
||
|
|
<td><fmt:formatNumber value="${item.SALEQTY}" type="number" maxFractionDigits="3" /></td>
|
||
|
|
<td><fmt:formatNumber value="${item.SALEQTY1}" type="number" maxFractionDigits="3" /></td>
|
||
|
|
<td><fmt:formatNumber value="${item.SUPPLYQTY}" type="number" maxFractionDigits="3" /></td>
|
||
|
|
<td><fmt:formatNumber value="${item.SUPPLYAMT}" type="number" maxFractionDigits="3" /></td>
|
||
|
|
<td><fmt:formatNumber value="${item.RCPTAMT}" type="number" maxFractionDigits="3" /></td>
|
||
|
|
-->
|
||
|
|
```
|
||
|
|
|
||
|
|
#### 2. 기존 계약관리 등록화면에서 주석처리할 필드들
|
||
|
|
|
||
|
|
**파일: `WebContent/WEB-INF/view/salesmgmt/contractMgmt/contractMgmtFormPopup.jsp`**
|
||
|
|
|
||
|
|
```jsp
|
||
|
|
<!-- 기존 등록화면에서 숨길 필드들 -->
|
||
|
|
|
||
|
|
<!-- 1. 관리부서 관련 필드들 -->
|
||
|
|
<!--
|
||
|
|
<tr>
|
||
|
|
<td class="input_title"><label for="label">* 관리부서</label></td>
|
||
|
|
<td class="input_sub_title">
|
||
|
|
<select name="bDeptCd" id="bDeptCd" required reqTitle="관리부서" type="select" style="width: 120px;" class="select2">
|
||
|
|
<option value="">선택</option>
|
||
|
|
<c:forEach var="bDeptList" items="${codeMap.bDeptList}">
|
||
|
|
${bDeptList}
|
||
|
|
</c:forEach>
|
||
|
|
</select>
|
||
|
|
</td>
|
||
|
|
<td class="input_title"><label for="label">* 관리담당자</label></td>
|
||
|
|
<td colspan="3" class="input_sub_title">
|
||
|
|
<select name="bEmpNo" id="bEmpNo" required reqTitle="관리담당자" type="select" style="width: 120px;" class="select2">
|
||
|
|
<option value="">선택</option>
|
||
|
|
<c:forEach var="bEmpList" items="${codeMap.bEmpList}">
|
||
|
|
${bEmpList}
|
||
|
|
</c:forEach>
|
||
|
|
</select>
|
||
|
|
</td>
|
||
|
|
</tr>
|
||
|
|
-->
|
||
|
|
|
||
|
|
<!-- 2. 판매유형 관련 필드들 -->
|
||
|
|
<!--
|
||
|
|
<tr>
|
||
|
|
<td class="input_title"><label for="label">판매유형</label></td>
|
||
|
|
<td class="input_sub_title">
|
||
|
|
<select name="saleType" id="saleType" type="select" style="width:150px;" class="select2">
|
||
|
|
<option value="">선택</option>
|
||
|
|
<c:forEach var="saleTypeList" items="${codeMap.saleTypeList}">
|
||
|
|
${saleTypeList}
|
||
|
|
</c:forEach>
|
||
|
|
</select>
|
||
|
|
</td>
|
||
|
|
</tr>
|
||
|
|
-->
|
||
|
|
|
||
|
|
<!-- 3. 보증기간 필드 -->
|
||
|
|
<!--
|
||
|
|
<tr>
|
||
|
|
<td class="input_title"><label for="label">보증기간</label></td>
|
||
|
|
<td class="input_sub_title">
|
||
|
|
<input type="text" name="goodsGuarantee" id="goodsGuarantee" value="${info.GOODSGUARANTEE}" maxlength="3" style="width:50px;" />
|
||
|
|
</td>
|
||
|
|
</tr>
|
||
|
|
-->
|
||
|
|
|
||
|
|
<!-- 4. 출하대상 필드 -->
|
||
|
|
<!--
|
||
|
|
<tr>
|
||
|
|
<td class="input_title"><label for="label">출하대상</label></td>
|
||
|
|
<td class="input_sub_title">
|
||
|
|
<select name="chulhaYN" id="chulhaYN" type="select" style="width:150px;" class="select2">
|
||
|
|
<option value="0" ${info.CHULHAYN eq '0' ? 'selected':''}>미출하</option>
|
||
|
|
<option value="1" ${info.CHULHAYN eq '1' ? 'selected':''}>출하</option>
|
||
|
|
</select>
|
||
|
|
</td>
|
||
|
|
</tr>
|
||
|
|
-->
|
||
|
|
```
|
||
|
|
|
||
|
|
#### 3. 컨트롤러에서 주석처리할 코드
|
||
|
|
|
||
|
|
**파일: `src/com/pms/salesmgmt/controller/ContractMgmtController.java`**
|
||
|
|
|
||
|
|
```java
|
||
|
|
// 기존 관리부서 관련 코드 주석처리
|
||
|
|
/*
|
||
|
|
// 관리부서
|
||
|
|
codeMap.put("bDeptList",
|
||
|
|
salesMgmtCommonService.bizMakeOptionList("", (String) info.get("BDEPTCD"), "salesMgmtCommon.getBDeptList"));
|
||
|
|
// 관리담당자
|
||
|
|
codeMap.put("bEmpList",
|
||
|
|
salesMgmtCommonService.bizMakeBEmpOptionList((String) info.get("BDEPTCD"), (String) info.get("BEMPNO")));
|
||
|
|
// 판매유형
|
||
|
|
codeMap.put("saleTypeList",
|
||
|
|
salesMgmtCommonService.bizMakeOptionList("GE", (String) info.get("SALETYPE"), "salesMgmtCommon.getCodeList"));
|
||
|
|
*/
|
||
|
|
```
|
||
|
|
|
||
|
|
### 🎯 **구현 단계별 계획**
|
||
|
|
|
||
|
|
#### Phase 1: 기존 코드 정리
|
||
|
|
|
||
|
|
1. **기존 계약관리 리스트**에서 불필요한 컬럼 주석처리
|
||
|
|
2. **기존 계약관리 등록화면**에서 사용하지 않을 필드 주석처리
|
||
|
|
3. **컨트롤러**에서 불필요한 공통코드 로딩 주석처리
|
||
|
|
|
||
|
|
#### Phase 2: 신규 공통코드 등록
|
||
|
|
|
||
|
|
1. 통화단위 (0000965) 공통코드 등록
|
||
|
|
2. 계약방식 (0000966) 공통코드 등록
|
||
|
|
|
||
|
|
#### Phase 3: 새로운 영업관리 화면 구현
|
||
|
|
|
||
|
|
1. 새로운 JSP 화면 개발 (영업정보, 사양상세, 견적이력, 특이사항 섹션)
|
||
|
|
2. 새로운 컨트롤러 메서드 개발
|
||
|
|
3. 새로운 매퍼 쿼리 개발
|
||
|
|
|
||
|
|
#### Phase 4: 데이터베이스 확장
|
||
|
|
|
||
|
|
1. 기존 테이블에 신규 컬럼 추가
|
||
|
|
2. 인덱스 생성
|
||
|
|
3. 데이터 마이그레이션
|
||
|
|
|
||
|
|
### 📝 **주요 변경 포인트 요약**
|
||
|
|
|
||
|
|
| 구분 | 기존 활용 | 신규 추가 | 주석처리 |
|
||
|
|
| ---------------- | ------------------ | -------------- | ------------------- |
|
||
|
|
| **공통코드** | 4개 재활용 | 2개 신규 | - |
|
||
|
|
| **JSP 필드** | 기본 계약정보 유지 | 25개 신규 | 7개 주석처리 |
|
||
|
|
| **컨트롤러** | 기본 구조 유지 | 신규 코드 추가 | 3개 메서드 주석처리 |
|
||
|
|
| **데이터베이스** | 기존 테이블 확장 | 신규 컬럼 추가 | - |
|
||
|
|
|
||
|
|
이 접근법으로 **기존 시스템의 안정성을 유지**하면서 **최소한의 변경**으로 새로운 영업관리 요구사항을 충족할 수 있습니다.
|
||
|
|
|
||
|
|
## 💡 **기존 공통코드 활용 방법 (권장)**
|
||
|
|
|
||
|
|
### 🔧 **현재 공통코드 시스템 구조**
|
||
|
|
|
||
|
|
기존 시스템에서 공통코드는 다음과 같이 활용됩니다:
|
||
|
|
|
||
|
|
```java
|
||
|
|
// 컨트롤러에서 공통코드 활용 예시
|
||
|
|
code_map.put("category_cd", commonService.bizMakeOptionList("0000167", category_cd, "common.getCodeselect"));
|
||
|
|
code_map.put("status_cd", commonService.bizMakeOptionList("0000932", status_cd, "common.getCodeselect"));
|
||
|
|
code_map.put("result_cd", commonService.bizMakeOptionList("0000963", result_cd, "common.getCodeselect"));
|
||
|
|
```
|
||
|
|
|
||
|
|
### ✅ **기존 공통코드 그대로 활용**
|
||
|
|
|
||
|
|
이미 등록된 공통코드들은 **코드 구조 변경 없이** 그대로 활용 가능합니다:
|
||
|
|
|
||
|
|
| 공통코드 | 용도 | 기존 사용 | 신규 활용 |
|
||
|
|
| ----------- | ------------ | --------------- | -------------- |
|
||
|
|
| **0000167** | 계약구분 | ✅ 이미 사용 중 | ✅ 그대로 활용 |
|
||
|
|
| **0000932** | 영업진행단계 | ✅ 이미 사용 중 | ✅ 그대로 활용 |
|
||
|
|
| **0000963** | 수주결과 | ✅ 이미 사용 중 | ✅ 그대로 활용 |
|
||
|
|
| **0000964** | 실패사유 | ✅ 이미 사용 중 | ✅ 그대로 활용 |
|
||
|
|
|
||
|
|
### 🆕 **신규 공통코드만 추가 등록**
|
||
|
|
|
||
|
|
**통화단위 (0000965)**와 **계약방식 (0000966)**만 신규 추가하면 됩니다:
|
||
|
|
|
||
|
|
```sql
|
||
|
|
-- 통화단위 추가
|
||
|
|
INSERT INTO COMM_CODE (OBJID, CODE_ID, PARENT_CODE_ID, CODE_NAME, STATUS, WRITER, REGDATE)
|
||
|
|
VALUES (nextval('seq_comm_code'), '0000965', NULL, '통화단위', 'active', 'admin', now());
|
||
|
|
|
||
|
|
INSERT INTO COMM_CODE (OBJID, CODE_ID, PARENT_CODE_ID, CODE_NAME, STATUS, WRITER, REGDATE)
|
||
|
|
VALUES (nextval('seq_comm_code'), '0000965001', '0000965', 'KRW', 'active', 'admin', now());
|
||
|
|
|
||
|
|
INSERT INTO COMM_CODE (OBJID, CODE_ID, PARENT_CODE_ID, CODE_NAME, STATUS, WRITER, REGDATE)
|
||
|
|
VALUES (nextval('seq_comm_code'), '0000965002', '0000965', 'USD', 'active', 'admin', now());
|
||
|
|
|
||
|
|
-- 계약방식 추가
|
||
|
|
INSERT INTO COMM_CODE (OBJID, CODE_ID, PARENT_CODE_ID, CODE_NAME, STATUS, WRITER, REGDATE)
|
||
|
|
VALUES (nextval('seq_comm_code'), '0000966', NULL, '계약방식', 'active', 'admin', now());
|
||
|
|
|
||
|
|
INSERT INTO COMM_CODE (OBJID, CODE_ID, PARENT_CODE_ID, CODE_NAME, STATUS, WRITER, REGDATE)
|
||
|
|
VALUES (nextval('seq_comm_code'), '0000966001', '0000966', '조달', 'active', 'admin', now());
|
||
|
|
```
|
||
|
|
|
||
|
|
### 🎯 **컨트롤러 수정 최소화**
|
||
|
|
|
||
|
|
기존 컨트롤러에서 **신규 공통코드 2개만 추가**하면 됩니다:
|
||
|
|
|
||
|
|
```java
|
||
|
|
@RequestMapping("/contractMgmt/contracMgmtFormPopup.do")
|
||
|
|
public String contracMgmtFormPopup(HttpServletRequest request, @RequestParam Map<String, Object> paramMap) {
|
||
|
|
// 기존 공통코드들 (수정 불필요)
|
||
|
|
code_map.put("category_cd", commonService.bizMakeOptionList("0000167", category_cd, "common.getCodeselect"));
|
||
|
|
code_map.put("status_cd", commonService.bizMakeOptionList("0000932", status_cd, "common.getCodeselect"));
|
||
|
|
code_map.put("result_cd", commonService.bizMakeOptionList("0000963", result_cd, "common.getCodeselect"));
|
||
|
|
code_map.put("failure_reason", commonService.bizMakeOptionList("0000964", failure_reason, "common.getCodeselect"));
|
||
|
|
|
||
|
|
// 신규 공통코드만 추가
|
||
|
|
code_map.put("currency_type", commonService.bizMakeOptionList("0000965", currency_type, "common.getCodeselect"));
|
||
|
|
code_map.put("contract_method", commonService.bizMakeOptionList("0000966", contract_method, "common.getCodeselect"));
|
||
|
|
|
||
|
|
return "/contractMgmt/contracMgmtFormPopup";
|
||
|
|
}
|
||
|
|
```
|
||
|
|
|
||
|
|
### 🎨 **JSP에서 공통코드 활용**
|
||
|
|
|
||
|
|
JSP에서도 기존 방식 그대로 활용:
|
||
|
|
|
||
|
|
```jsp
|
||
|
|
<!-- 기존 공통코드 활용 -->
|
||
|
|
<select name="category_cd" id="category_cd" class="select2">
|
||
|
|
<option value="">선택</option>
|
||
|
|
${code_map.category_cd}
|
||
|
|
</select>
|
||
|
|
|
||
|
|
<select name="status_cd" id="status_cd" class="select2">
|
||
|
|
<option value="">선택</option>
|
||
|
|
${code_map.status_cd}
|
||
|
|
</select>
|
||
|
|
|
||
|
|
<!-- 신규 공통코드 활용 -->
|
||
|
|
<select name="currency_type" id="currency_type" class="select2">
|
||
|
|
<option value="">선택</option>
|
||
|
|
${code_map.currency_type}
|
||
|
|
</select>
|
||
|
|
|
||
|
|
<select name="contract_method" id="contract_method" class="select2">
|
||
|
|
<option value="">선택</option>
|
||
|
|
${code_map.contract_method}
|
||
|
|
</select>
|
||
|
|
```
|
||
|
|
|
||
|
|
### 🔄 **기존 데이터 호환성**
|
||
|
|
|
||
|
|
기존 데이터는 **완전히 호환**됩니다:
|
||
|
|
|
||
|
|
- 기존 테이블 구조 유지
|
||
|
|
- 기존 공통코드 값 유지
|
||
|
|
- 기존 비즈니스 로직 유지
|
||
|
|
|
||
|
|
### 📊 **작업량 대폭 감소**
|
||
|
|
|
||
|
|
| 구분 | 기존 방식 | 신규 공통코드 활용 |
|
||
|
|
| ----------------- | --------------- | ------------------ |
|
||
|
|
| **공통코드 등록** | 6개 전체 재등록 | 2개만 신규 등록 |
|
||
|
|
| **컨트롤러 수정** | 전체 재작성 | 2줄만 추가 |
|
||
|
|
| **JSP 수정** | 전체 재작성 | 기존 구조 활용 |
|
||
|
|
| **테스트 범위** | 전체 시스템 | 신규 기능만 |
|
||
|
|
|
||
|
|
### 🎯 **최종 권장 방법**
|
||
|
|
|
||
|
|
1. **✅ 기존 공통코드 (0000167, 0000932, 0000963, 0000964) 그대로 활용**
|
||
|
|
2. **✅ 신규 공통코드 (0000965, 0000966) 2개만 추가**
|
||
|
|
3. **✅ 기존 bizMakeOptionList 메서드 그대로 활용**
|
||
|
|
4. **✅ 기존 JSP 구조 그대로 활용**
|
||
|
|
|
||
|
|
이 방법으로 **개발 시간 70% 단축**하고 **안정성 100% 보장**할 수 있습니다!
|