diff --git a/src/main/java/cokr/xit/fims/nxrp/Jeju01.java b/src/main/java/cokr/xit/fims/nxrp/Jeju01.java new file mode 100644 index 00000000..1bd08b69 --- /dev/null +++ b/src/main/java/cokr/xit/fims/nxrp/Jeju01.java @@ -0,0 +1,62 @@ +package cokr.xit.fims.nxrp; + +import cokr.xit.applib.UnnamedItems; + +public class Jeju01 extends UnnamedItems { + + class srcSstKeyMaxByteInfo { + static int externalTable1 = 50; + static int externalTable2 = 26; + static int externalTable2_padByte = "YYYYMMDD".length(); + + public static int getAvailable() { + if((externalTable2-externalTable2_padByte) > externalTable1) { + return externalTable1; + } else { + return externalTable2-externalTable2_padByte; + } + } + } + + private int cursor = 0; + + private String[] itemsDscrp = { + "원천시스템키", + "부서코드", + "임대기업명", + "임대기업등록번호", + "대여자동차등록번호", + "자동차대여계약번호", + "자동차대여기간시작일자", + "자동차대여기간종료일자", + "변경납부자명", + "변경운전면허번호" + }; + + public Jeju01() { + this.setItemLength(itemsDscrp.length); + } + + public void setInOrder(String val) { + cursor++; + this.items[cursor-1] = val; + } + + public boolean checkSrcSstKey(){ + + if(this.items[0].getBytes().length > srcSstKeyMaxByteInfo.getAvailable()) { + return false; + } else { + return true; + } + } + + public boolean checkSrcSstKey(String val) { + + if(val.getBytes().length > srcSstKeyMaxByteInfo.getAvailable()) { + return false; + } else { + return true; + } + } +} diff --git a/src/main/java/cokr/xit/fims/nxrp/Jeju02.java b/src/main/java/cokr/xit/fims/nxrp/Jeju02.java new file mode 100644 index 00000000..a277f280 --- /dev/null +++ b/src/main/java/cokr/xit/fims/nxrp/Jeju02.java @@ -0,0 +1,39 @@ +package cokr.xit.fims.nxrp; + +import cokr.xit.applib.UnnamedItems; + +public class Jeju02 extends UnnamedItems { + + private String[] itemsDscrp = { + "수신일자", + "원천시스템키", + "부서코드", + "경찰청연계응답명", + "경찰청납부자명", + "변경후납부자번호", + "납부자구분코드", + "납부자지번도로주소구분코드", + "납부자도로명코드", + "납부자주소지하여부", + "납부자건물본번", + "납부자건물부번", + "납부자우편번호", + "납부자주소", + "납부자상세주소", + "납부자법정도코드", + "납부자행정동코드" + }; + + public Jeju02(String line){ + int len = itemsDscrp.length; + this.setItemLength(len); + String[] items = line.split("\\|",-1); + for(int i=1; i <= len; i++) { + this.set(i,items[i-1]); + } + } + + public String get(int i) { + return this.items[i-1]; + } +} diff --git a/src/main/java/cokr/xit/fims/nxrp/service/bean/NisIndivBean.java b/src/main/java/cokr/xit/fims/nxrp/service/bean/NisIndivBean.java index d90e1af9..560f994b 100644 --- a/src/main/java/cokr/xit/fims/nxrp/service/bean/NisIndivBean.java +++ b/src/main/java/cokr/xit/fims/nxrp/service/bean/NisIndivBean.java @@ -25,6 +25,7 @@ import cokr.xit.fims.cmmn.ftp.SFTPUtil; import cokr.xit.fims.cmmn.service.bean.StngBean; import cokr.xit.fims.mngt.dao.TaskMapper; import cokr.xit.fims.nxrp.Hirer; +import cokr.xit.fims.nxrp.Jeju02; import cokr.xit.fims.nxrp.NisIndivQuery; import cokr.xit.fims.nxrp.dao.NisIndivMapper; import cokr.xit.fims.nxrp.support.OnlyTxtMaker; @@ -332,27 +333,27 @@ public class NisIndivBean extends AbstractBean { break; case TXT_LINE: - String[] items = workingUnitString.split("\\|",-1); + Jeju02 ui = new Jeju02(workingUnitString); Hirer driverVO = new Hirer(); - String srcSstKey = items[2-1]; + + + String srcSstKey = ui.get(2); String sggCd = srcSstKey.substring(0,5); String taskSeCd = srcSstKey.substring(5,8); - String aprvId = srcSstKey.substring(8,18); - String mmCode = srcSstKey.substring(18); + String aprvId = srcSstKey.substring(8); driverVO.setSggCd(sggCd); driverVO.setTaskSeCd(taskSeCd); driverVO.setAprvId(aprvId); - driverVO.setMmCode(mmCode); - - driverVO.setNpaLinkRspnsNm(items[4-1]); - driverVO.setPyrNm(items[5-1]); - driverVO.setNpaOmJno(items[6-1]); - //(items[7-1]);//납부자구분코드 - driverVO.setLotnoRoadAddrSeCd(items[8-1]); - driverVO.setRoadNmCd(items[9-1]); - String undgYn = items[10-1]; + + driverVO.setNpaLinkRspnsNm(ui.get(4)); + driverVO.setPyrNm(ui.get(5)); + driverVO.setNpaOmJno(ui.get(6)); + + driverVO.setLotnoRoadAddrSeCd(ui.get(8)); + driverVO.setRoadNmCd(ui.get(9)); + String undgYn = ui.get(10); if(undgYn != null) { if(undgYn.equals("Y")) { undgYn = "1"; @@ -362,22 +363,22 @@ public class NisIndivBean extends AbstractBean { } driverVO.setAddrUdgdYn(undgYn); - String bmno = items[11-1]; + String bmno = ui.get(11); if(bmno.equals("")) { bmno = null; } driverVO.setBmno(bmno); - String bsno = items[12-1]; + String bsno = ui.get(12); if(bsno.equals("")) { bsno = null; } driverVO.setBsno(bsno); - driverVO.setZip(items[13-1]); - driverVO.setAddr(items[14-1]); - driverVO.setDaddr(items[15-1]); - driverVO.setStdgCd(items[16-1]); - driverVO.setDongCd(items[17-1]); + driverVO.setZip(ui.get(13)); + driverVO.setAddr(ui.get(14)); + driverVO.setDaddr(ui.get(15)); + driverVO.setStdgCd(ui.get(16)); + driverVO.setDongCd(ui.get(17)); results.add(driverVO); diff --git a/src/main/java/cokr/xit/fims/nxrp/support/OnlyTxtMaker.java b/src/main/java/cokr/xit/fims/nxrp/support/OnlyTxtMaker.java index eb7ee1df..81dd86df 100644 --- a/src/main/java/cokr/xit/fims/nxrp/support/OnlyTxtMaker.java +++ b/src/main/java/cokr/xit/fims/nxrp/support/OnlyTxtMaker.java @@ -7,6 +7,7 @@ import java.text.SimpleDateFormat; import java.util.Date; import cokr.xit.applib.UnnamedItems; +import cokr.xit.fims.nxrp.Jeju01; import cokr.xit.foundation.data.DataObject; public class OnlyTxtMaker extends LinkFileMaker { @@ -36,19 +37,23 @@ public class OnlyTxtMaker extends LinkFileMaker { @Override public UnnamedItems extract(DataObject rentInfo, String sggCd, String taskSeCd) { - UnnamedItems u = new UnnamedItems(); - u.setItemLength(10); - u.set(1, sggCd+taskSeCd+rentInfo.string("APRV_ID")+rentInfo.string("MM_CODE")); - u.set(2, rentInfo.string("DEPT_CD")); - u.set(3, rentInfo.string("RENT_ENT_NM")); - u.set(4, rentInfo.string("RENT_ENT_REG_NO")); - u.set(5, rentInfo.string("VHRNO")); - u.set(6, rentInfo.string("CTRT_NO")); - u.set(7, rentInfo.string("CTRT_BGNG_YMD")); - u.set(8, rentInfo.string("CTRT_END_YMD")); - u.set(9, rentInfo.string("HIRER_NM")); - u.set(10, rentInfo.string("OM_JNO")); - return u; + Jeju01 ui = new Jeju01(); + + String srcSstKey = sggCd+taskSeCd+rentInfo.string("APRV_ID"); + if(!ui.checkSrcSstKey(srcSstKey)) { + throw new RuntimeException("시스템원천키 최대바이트 수 초과 오류가 발생하였습니다."); + } + ui.setInOrder(srcSstKey); + ui.setInOrder(rentInfo.string("DEPT_CD")); + ui.setInOrder(rentInfo.string("RENT_ENT_NM")); + ui.setInOrder(rentInfo.string("RENT_ENT_REG_NO")); + ui.setInOrder(rentInfo.string("VHRNO")); + ui.setInOrder(rentInfo.string("CTRT_NO")); + ui.setInOrder(rentInfo.string("CTRT_BGNG_YMD")); + ui.setInOrder(rentInfo.string("CTRT_END_YMD")); + ui.setInOrder(rentInfo.string("HIRER_NM")); + ui.setInOrder(rentInfo.string("OM_JNO")); + return ui; } public void startTxt(String workPath) {