From a98ec946386fb3f554dbe3948ca1397e4e6d30bd Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=EB=B0=95=EC=84=B1=EC=98=81?= Date: Fri, 5 Dec 2025 16:22:28 +0900 Subject: [PATCH] =?UTF-8?q?=EB=AF=B8=ED=95=84=20=EC=9E=91=EC=97=85=20?= =?UTF-8?q?=EC=A7=84=ED=96=89=20=EC=A4=91...?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- DB/DDL/vips/tb_car_ffnlg_trgt_incmp.sql | 1 + .../model/CarFfnlgTrgtIncmpExcelVO.java | 4 ++++ .../model/CarFfnlgTrgtIncmpVO.java | 1 + .../impl/CarFfnlgTrgtIncmpServiceImpl.java | 19 ++++++++----------- src/main/resources/application.yml | 8 ++++---- .../CarFfnlgTrgtIncmpMapper_maria.xml | 5 +++++ .../registrationOm/list.jsp | 1 + 7 files changed, 24 insertions(+), 15 deletions(-) diff --git a/DB/DDL/vips/tb_car_ffnlg_trgt_incmp.sql b/DB/DDL/vips/tb_car_ffnlg_trgt_incmp.sql index 43800e0..851e53d 100644 --- a/DB/DDL/vips/tb_car_ffnlg_trgt_incmp.sql +++ b/DB/DDL/vips/tb_car_ffnlg_trgt_incmp.sql @@ -12,6 +12,7 @@ create table tb_car_ffnlg_trgt_incmp RRNO varchar(100) null comment '주민등록번호', CAR_NM varchar(100) null comment '자동차 명', USE_STRHLD_ADDR varchar(600) null comment '사용 본거지 주소', + USE_STRHLD_ADDR_DTL varchar(600) null comment '사용 본거지 주소 상세', INSP_VLD_PRD varchar(30) null comment '검사 유효 기간', TASK_PRCS_STTS_CD varchar(2) null comment '업무 처리 상태 코드', TASK_PRCS_YMD varchar(8) null comment '업무 처리 일자', diff --git a/src/main/java/go/kr/project/carInspectionPenalty/registrationOm/model/CarFfnlgTrgtIncmpExcelVO.java b/src/main/java/go/kr/project/carInspectionPenalty/registrationOm/model/CarFfnlgTrgtIncmpExcelVO.java index 8a4eb55..334a96a 100644 --- a/src/main/java/go/kr/project/carInspectionPenalty/registrationOm/model/CarFfnlgTrgtIncmpExcelVO.java +++ b/src/main/java/go/kr/project/carInspectionPenalty/registrationOm/model/CarFfnlgTrgtIncmpExcelVO.java @@ -54,6 +54,10 @@ public class CarFfnlgTrgtIncmpExcelVO { @ExcelColumn(headerName = "사용본거지주소", headerWidth = 50, align = ExcelColumn.Align.LEFT) private String useStrhldAddr; + /** 사용본거지주소상세 */ + @ExcelColumn(headerName = "사용본거지주소상세", headerWidth = 50, align = ExcelColumn.Align.LEFT) + private String useStrhldAddrDtl; + /** 검사유효기간 */ @ExcelColumn(headerName = "검사유효기간", headerWidth = 25, align = ExcelColumn.Align.CENTER) private String inspVldPrd; diff --git a/src/main/java/go/kr/project/carInspectionPenalty/registrationOm/model/CarFfnlgTrgtIncmpVO.java b/src/main/java/go/kr/project/carInspectionPenalty/registrationOm/model/CarFfnlgTrgtIncmpVO.java index 62a1d44..d57400b 100644 --- a/src/main/java/go/kr/project/carInspectionPenalty/registrationOm/model/CarFfnlgTrgtIncmpVO.java +++ b/src/main/java/go/kr/project/carInspectionPenalty/registrationOm/model/CarFfnlgTrgtIncmpVO.java @@ -35,6 +35,7 @@ public class CarFfnlgTrgtIncmpVO extends PagingVO { private String rrno; // 주민등록번호 private String carNm; // 자동차 명 private String useStrhldAddr; // 사용 본거지 주소 + private String useStrhldAddrDtl; // 사용 본거지 주소 상세 private String inspVldPrd; // 검사 유효 기간 // 업무 처리 필드 diff --git a/src/main/java/go/kr/project/carInspectionPenalty/registrationOm/service/impl/CarFfnlgTrgtIncmpServiceImpl.java b/src/main/java/go/kr/project/carInspectionPenalty/registrationOm/service/impl/CarFfnlgTrgtIncmpServiceImpl.java index fd9894c..7490be5 100644 --- a/src/main/java/go/kr/project/carInspectionPenalty/registrationOm/service/impl/CarFfnlgTrgtIncmpServiceImpl.java +++ b/src/main/java/go/kr/project/carInspectionPenalty/registrationOm/service/impl/CarFfnlgTrgtIncmpServiceImpl.java @@ -328,8 +328,9 @@ public class CarFfnlgTrgtIncmpServiceImpl extends EgovAbstractServiceImpl implem int rowNum = 1; for (CarFfnlgTrgtIncmpVO row : list) { // 첫 번째 줄 + // 번호: 4자리 오른쪽 정렬 + 공백 2자리 (예: " 1 ", "1011 ", " 123 ") String firstLine = - padRightBytes(String.valueOf(rowNum), 6, encoding) + + String.format("%4d ", rowNum) + padRightBytes(nvl(row.getVhclno()), 16, encoding) + padRightBytes(nvl(row.getOwnrNm()), 32, encoding) + padRightBytes(nvl(row.getCarNm()), 22, encoding) + @@ -338,11 +339,11 @@ public class CarFfnlgTrgtIncmpServiceImpl extends EgovAbstractServiceImpl implem sb.append(firstLine).append("\r\n"); - // 두 번째 줄 (주민번호와 주소 계속) + // 두 번째 줄 (주민번호와 주소상세) String secondLine = padRightBytes("", 38, encoding) + - padRightBytes(nvl(row.getRrno()), 16, encoding) + - padRightBytes(nvl(row.getUseStrhldAddr()), -1, encoding); // 나머지 전체 + padRightBytes(nvl(row.getRrno()), 38, encoding) + + padRightBytes(nvl(row.getUseStrhldAddrDtl()), 61, encoding); sb.append(secondLine).append("\r\n"); @@ -713,14 +714,9 @@ public class CarFfnlgTrgtIncmpServiceImpl extends EgovAbstractServiceImpl implem String rrno = extractByteLength(secondBytes, pos, len, encoding).trim(); pos += len; - // 사용본거지주소 (나머지) + // 사용본거지주소 상세 (나머지) len = parseConfig.getSecondLineLength("use-strhld-addr"); - String useStrhldAddr2 = extractByteLength(secondBytes, pos, len, encoding).trim(); - - // 주소 합치기 - if (!useStrhldAddr2.isEmpty()) { - useStrhldAddr = useStrhldAddr + " " + useStrhldAddr2; - } + String useStrhldAddrDtl = extractByteLength(secondBytes, pos, len, encoding).trim(); // VO 설정 if (!no.isEmpty()) { @@ -738,6 +734,7 @@ public class CarFfnlgTrgtIncmpServiceImpl extends EgovAbstractServiceImpl implem vo.setRrno(rrno); vo.setCarNm(carNm); vo.setUseStrhldAddr(useStrhldAddr); + vo.setUseStrhldAddrDtl(useStrhldAddrDtl); vo.setInspVldPrd(inspVldPrd); log.debug("[데이터 {}] 파싱 완료", dataLineNumber); diff --git a/src/main/resources/application.yml b/src/main/resources/application.yml index abb3bbf..1a93595 100644 --- a/src/main/resources/application.yml +++ b/src/main/resources/application.yml @@ -167,8 +167,8 @@ car-ffnlg-prn-parse: insp-vld-prd: 21 # 검사유효기간 second-line: # 둘째줄 필드별 바이트 길이 (2바이트 기준) skip: 38 # 공백 (스킵) - rrno: 16 # 주민등록번호 - use-strhld-addr: -1 # 사용본거지주소 (나머지 전체) + rrno: 38 # 주민등록번호 + use-strhld-addr: 61 # 사용본거지주소 (나머지 전체) # ===== 3바이트 환경 설정 (UTF-8) ===== byte-size-3: @@ -181,5 +181,5 @@ car-ffnlg-prn-parse: insp-vld-prd: 21 # 검사유효기간 second-line: # 둘째줄 필드별 바이트 길이 (3바이트 기준) skip: 38 # 공백 (스킵) - rrno: 16 # 주민등록번호 - use-strhld-addr: -1 # 사용본거지주소 (나머지 전체) + rrno: 38 # 주민등록번호 + use-strhld-addr: 61 # 사용본거지주소 (나머지 전체) diff --git a/src/main/resources/mybatis/mapper/carInspectionPenalty/registrationOm/CarFfnlgTrgtIncmpMapper_maria.xml b/src/main/resources/mybatis/mapper/carInspectionPenalty/registrationOm/CarFfnlgTrgtIncmpMapper_maria.xml index 9ddcec6..5f26bb9 100644 --- a/src/main/resources/mybatis/mapper/carInspectionPenalty/registrationOm/CarFfnlgTrgtIncmpMapper_maria.xml +++ b/src/main/resources/mybatis/mapper/carInspectionPenalty/registrationOm/CarFfnlgTrgtIncmpMapper_maria.xml @@ -61,6 +61,7 @@ ECL_DECRYPT(t.RRNO) AS rrno, t.CAR_NM AS carNm, t.USE_STRHLD_ADDR AS useStrhldAddr, + t.USE_STRHLD_ADDR_DTL AS useStrhldAddrDtl, t.INSP_VLD_PRD AS inspVldPrd, t.TASK_PRCS_STTS_CD AS taskPrcsSttsCd, t.TASK_PRCS_YMD AS taskPrcsYmd, @@ -111,6 +112,7 @@ ECL_DECRYPT(t.RRNO) AS rrno, t.CAR_NM AS carNm, t.USE_STRHLD_ADDR AS useStrhldAddr, + t.USE_STRHLD_ADDR_DTL AS useStrhldAddrDtl, t.INSP_VLD_PRD AS inspVldPrd, t.TASK_PRCS_STTS_CD AS taskPrcsSttsCd, t.TASK_PRCS_YMD AS taskPrcsYmd, @@ -155,6 +157,7 @@ ECL_DECRYPT(t.RRNO) AS rrno, t.CAR_NM AS carNm, t.USE_STRHLD_ADDR AS useStrhldAddr, + t.USE_STRHLD_ADDR_DTL AS useStrhldAddrDtl, t.INSP_VLD_PRD AS inspVldPrd, cd.CD_NM AS taskPrcsSttsCdNm, DATE_FORMAT(STR_TO_DATE(t.TASK_PRCS_YMD, '%Y%m%d'), '%Y-%m-%d') AS taskPrcsYmd, @@ -193,6 +196,7 @@ RRNO, CAR_NM, USE_STRHLD_ADDR, + USE_STRHLD_ADDR_DTL, INSP_VLD_PRD, TASK_PRCS_STTS_CD, TASK_PRCS_YMD, @@ -221,6 +225,7 @@ ECL_ENCRYPT(#{rrno}), #{carNm}, #{useStrhldAddr}, + #{useStrhldAddrDtl}, #{inspVldPrd}, #{taskPrcsSttsCd}, #{taskPrcsYmd}, diff --git a/src/main/webapp/WEB-INF/views/carInspectionPenalty/registrationOm/list.jsp b/src/main/webapp/WEB-INF/views/carInspectionPenalty/registrationOm/list.jsp index c15874b..5b1acf7 100644 --- a/src/main/webapp/WEB-INF/views/carInspectionPenalty/registrationOm/list.jsp +++ b/src/main/webapp/WEB-INF/views/carInspectionPenalty/registrationOm/list.jsp @@ -355,6 +355,7 @@ { header: '주민등록번호', name: 'rrno', align: 'center', width: 130 }, { header: '자동차명', name: 'carNm', align: 'left', width: 150 }, { header: '사용본거지주소', name: 'useStrhldAddr', align: 'left', width: 250 }, + { header: '사용본거지주소상세', name: 'useStrhldAddrDtl', align: 'left', width: 250 }, { header: '검사유효기간', name: 'inspVldPrd', align: 'center', width: 200 }, { header: 'API 호출 부과일자', name: 'levyCrtrYmd', align: 'center', width: 100, formatter: function(e) {