미필 작업 진행 중...

main
박성영 1 week ago
parent 7e3fa07327
commit a98ec94638

@ -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 '업무 처리 일자',

@ -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;

@ -35,6 +35,7 @@ public class CarFfnlgTrgtIncmpVO extends PagingVO {
private String rrno; // 주민등록번호
private String carNm; // 자동차 명
private String useStrhldAddr; // 사용 본거지 주소
private String useStrhldAddrDtl; // 사용 본거지 주소 상세
private String inspVldPrd; // 검사 유효 기간
// 업무 처리 필드

@ -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);

@ -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 # 사용본거지주소 (나머지 전체)

@ -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},

@ -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) {

Loading…
Cancel
Save