반응형

스프링부트( Quartz  ) 서비스 스케쥴 기능 적용 시키기..

 

스프링 부트 시작하는 Class 에서 @EnableScheduling 

@EnableScheduling
public class Application{
....
}

실제 스케쥴이 실행 되어야 할 서비스에   @Scheduled(cron = "0 * * * * MON-FRI") 적용

 

@Service
public class MyService{
...
       @Scheduled(cron = "0 * * * * MON-FRI")
       public void myScheduledMethod(){
       ....
       }

매우~ ~ 심플 ㅎㅎ

 

반응형
반응형

cli 로 배포 / 생성등이 메뉴얼에서 안내..

 

이게 모지?? 하면서 정리

 

spring-boot-cli-2.2.2.RELEASE-bin 다운로드 ( https://repo.spring.io/release/org/springframework/boot/spring-boot-cli/2.2.2.RELEASE/spring-boot-cli-2.2.2.RELEASE-bin.zip )

 

 

환경변수 설정

 

spring_home 설정

 

Path 에 추가

그 후 cmd 에서 spring 입력하면 명령 가능 ~~

 

cmd 에서 spring

Installing the CLI https://docs.spring.io/spring-boot/docs/current/reference/html/spring-boot-cli.html#cli-installation

 

 

Spring Boot CLI

Once you have installed the CLI, you can run it by typing spring and pressing Enter at the command line. If you run spring without any arguments, a simple help screen is displayed, as follows: $ spring usage: spring [--help] [--version] [ ] Available comma

docs.spring.io

 

반응형
반응형

이게 언제쩍 이미지지 하드 포멧전 백업...

 

반응형
반응형

스프링 세팅 13년도..

반응형
반응형

파일이 업로드 된 후 경로 DB 읽어온 후

 

try {
		물리파일 경로 읽은 후 파일 객체 생성
			File file = new File(mapData.get("PDF물리절대경로").toString());
		해당 파일 객체 byte 배열로 변환
			byte[] pdfBytes = Files.readAllBytes(file.toPath());
		위변조 검사
					
			/* [Step1] 전자문서 위변조 검증 */
			try {
				DSTSPDFSig dstspdfSig = new DSTSPDFSig();
				dstspdfSig.init(pdfBytes);
				dstspdfSig.tokenParse();
				
				isSuccess = dstspdfSig.tokenVerify();		
				if( isSuccess) {
					//System.out.println("Step1] 전자문서 위변조 검증 완료");
				}else {
					String msg = dstspdfSig.getTstVerifyFailInfo();
					logger.debug("[Step1] 전자문서 위변조 검증 실패  " + msg);
				}				
				
			}catch (DVException e) {
					logger.debug("에러 코드 " + e.getLastError());
					logger.debug("에러 메시지 " +e.getMessage());
			}
			/* [Step2] XML(or SAM) 데이터 추출 */
			try {
				if (isSuccess) {
					ExportCustomFile pdf = new ExportCustomFile();		
					// 데이터 추출
					byte[] buf = pdf.NTS_GetFileBufEx(pdfBytes, p_pwd, key, false );
					int v_ret = pdf.NTS_GetLastError();	
					if (v_ret == 1) {		
						String strXml = new String( buf, "UTF-8" );	
						mapData.put("XML", strXml);
						mapData.put("로그인아이디", 'ADMIN');	
						int rtn = -1;
						//연말정산 추출 데이터 프로시저 전달
						rtn = ajdSetupRepository.insertCALLAdjTab3(mapData);
						/* mybatis procedure 참고
						    <select id="insertCALLAdjTab3" statementType="CALLABLE" parameterType="map">
							{
								CALL PHC6_XMLTODATA_ALL
								(
								 #{GRP_FILE_ID,jdbcType=VARCHAR,mode=IN},
								#{FILE_ID,jdbcType=VARCHAR,mode=IN},
								#{XML,jdbcType=CLOB,mode=IN},
								#{S_USER_ID,jdbcType=VARCHAR,mode=IN}
								)
							}
							</select>
						*/
						if(rtn > -1) {
							logger.debug("INSERT 성공");	
						} else if (v_ret == 0) {
							logger.debug("연말정산간소화 표준 전자문서가 아닙니다.");
						} else if (v_ret == -1) {
							logger.debug("비밀번호가 틀립니다.");
						} else if (v_ret == -2) {
							logger.debug("PDF문서가 아니거나 손상된 문서입니다.");
						} else {
							logger.debug("데이터 추출에 실패하였습니다.");
						}
					}
			} catch (Exception e) {
					logger.debug("[Step2] 데이터 추출 실패(" + e.toString() + ")");
			}				
		} catch (final IOException e) {
				System.out.println("파일 "+e);
		}
		
        

프로시저 참고

CREATE OR REPLACE PROCEDURE BRE.PHC6_XMLTODATA_ALL (in_sjsnyeondo   IN VARCHAR2, --그룹아이디
                                              in_sjmdrbeonho IN VARCHAR2, --파일 아이디
                                              in_xmldata     IN CLOB, --xmldata
                                              in_sjakeopja   IN VARCHAR2) --작업자
IS

  -------------------------------------------------------------
  SPROGRAMID VARCHAR2(60) := 'PHC6_XMLTO_ALL';
  SCRDAESANG VARCHAR2(60) := '국세청 전자문서PDF_XML을 데이터베이스 자료로 변환';
  SJSGUBUN   VARCHAR2(1) := NULL;
  LCGEONSU   NUMBER(7, 0) := 0;
  LBRGEONSU  NUMBER(7, 0) := 0;
  LCRGEONSU  NUMBER(7, 0) := 0;
  SFLAG      CHAR(1) := '0';
  SXMLDATA   CLOB;
  -------------------------------------------------------------
/******************************************************************************
   NAME:       PHC6_XMLTO_ALL
   PURPOSE:

   REVISIONS:
   Ver        Date        Author           Description
   ---------  ----------  ---------------  ------------------------------------
   1.0        2016-01-07   operoninc       1. Created this procedure.

   NOTES:

   Automatically available Auto Replace Keywords:
      Object Name:     PHC6_XMLTO_ALL
      Sysdate:         2016-01-07
      Date and Time:   2016-01-07, 오후 4:09:18, and 2016-01-07 오후 4:09:18
      Username:        operoninc (set in TOAD Options, Procedure Editor)
      Table Name:       (set in the "New PL/SQL Object" dialog)

  -- 연말정산 국세청 전자문서PDF_XML을 보험료 자료로 변환
  -- in_sjsnyeondo : 정산년도
  -- in_sjmdrbeonho: 사원번호/주민번호
  -- in_xmldata    : XML자료
  -- in_sjakeopja  : 작업자


******************************************************************************/
BEGIN


    SXMLDATA := IN_XMLDATA;

    BEGIN

    -- 기존데이터 삭제
    DELETE PHCYAXML
    WHERE JSNYEONDO = in_sjsnyeondo
    AND JMDRBEONHO = in_sjmdrbeonho;



    /* XML내역 */
    FOR FORM_XMLDATA IN (SELECT EXTRACTVALUE(VALUE(P), '/form/@form_cd') FORM_CD,                                   -- 서식코드
                                 EXTRACT(VALUE(P), '/form/man') MAN_XML
                          FROM TABLE(XMLSEQUENCE(EXTRACT(XMLTYPE(SXMLDATA), '/yesone/form'))) P) LOOP


                FOR MAN_XMLDATA IN (SELECT EXTRACTVALUE(VALUE(P), '/man/@ftyr_market_tot_amt') FTYR_MARKET_TOT_AMT,       -- 전전년도_전통시장공제대상금액합계
                                            EXTRACTVALUE(VALUE(P), '/man/@ftyr_tmoney_tot_amt') FTYR_TMONEY_TOT_AMT,       -- 전전년도_대중교통공제대상금액합계
                                            EXTRACTVALUE(VALUE(P), '/man/@ftyr_tot_amt') FTYR_TOT_AMT,                     -- 전전년도_일반공제대상금액합계
                                            EXTRACTVALUE(VALUE(P), '/man/@name') NAME,                                     -- 성명
                                            EXTRACTVALUE(VALUE(P), '/man/@pre_market_tot_amt') PRE_MARKET_TOT_AMT,         -- 직전년도_전통시장공제대상금액합계
                                            EXTRACTVALUE(VALUE(P), '/man/@pre_tmoney_tot_amt') PRE_TMONEY_TOT_AMT,         -- 직전년도_대중교통공제대상금액합계
                                            EXTRACTVALUE(VALUE(P), '/man/@pre_tot_amt') PRE_TOT_AMT,                       -- 직전년도_일반공제대상금액합계
                                            EXTRACTVALUE(VALUE(P), '/man/@resid') RESID,
                                            EXTRACT(VALUE(P), '/man/data') DATA_XML
                             FROM TABLE(XMLSEQUENCE(EXTRACT(FORM_XMLDATA.MAN_XML, '/man'))) P ) LOOP


                    FOR DATA_XMLDATA IN (SELECT EXTRACTVALUE(VALUE(P), '/data/@acc_no') ACC_NO,                            -- 계좌/증권번호
                                                EXTRACTVALUE(VALUE(P), '/data/@busnid') BUSNID,                            -- 사업자번호
                                                EXTRACTVALUE(VALUE(P), '/data/@dat_cd') DAT_CD ,                           -- 자료코드
                                                EXTRACTVALUE(VALUE(P), '/data/@donation_cd') DONATION_CD,                  -- 기부유형
                                                EXTRACTVALUE(VALUE(P), '/data/@edu_tp') EDU_TP,                            -- 교육비종류
                                                EXTRACTVALUE(VALUE(P), '/data/@first_tot_amt') FIRST_TOT_AMT,              -- 귀속년도_상반기_대상금액합계(조회기간)
                                                EXTRACTVALUE(VALUE(P), '/data/@first_year_tot_amt') FIRST_YEAR_TOT_AMT,    -- 귀속년도_상반기_대상금액합계
                                                EXTRACTVALUE(VALUE(P), '/data/@inqr_end_mm') INQR_END_MM,                  -- 조회기간 종료월
                                                EXTRACTVALUE(VALUE(P), '/data/@inqr_strt_mm') INQR_STRT_MM,                -- 조회기간 시작월
                                                EXTRACTVALUE(VALUE(P), '/data/@second_tot_amt') SECOND_TOT_AMT,            -- 귀속년도_하반기_대상금액합계(조회기간)
                                                EXTRACTVALUE(VALUE(P), '/data/@second_year_tot_amt') SECOND_YEAR_TOT_AMT,  -- 귀속년도_하반기_대상금액합계
                                                EXTRACTVALUE(VALUE(P), '/data/@secu_no') SECU_NO,                          -- 계좌번호
                                                EXTRACTVALUE(VALUE(P), '/data/@trade_nm') TRADE_NM,                        -- 상호
                                                EXTRACTVALUE(VALUE(P), '/data/@use_place_cd') USE_PLACE_CD,                -- 종류
                                                EXTRACTVALUE(VALUE(P), '/data/ann_tot_amt') ANN_TOT_AMT,                   -- 당해연도납입금액
                                                EXTRACTVALUE(VALUE(P), '/data/com_cd') COM_CD,                             -- 금융회사등 코드
                                                EXTRACTVALUE(VALUE(P), '/data/course_cd') COURSE_CD,                       -- 과정코드
                                                EXTRACTVALUE(VALUE(P), '/data/ddct_bs_ass_amt') DDCT_BS_ASS_AMT,           -- 소득공제대상액/순납입금액
                                                EXTRACTVALUE(VALUE(P), '/data/debt') DEBT,                                 -- 차입금
                                                EXTRACTVALUE(VALUE(P), '/data/end_dt') END_DT,                             -- 계약종료일/최종상환예정일
                                                EXTRACTVALUE(VALUE(P), '/data/fixed_rate_debt') FIXED_RATE_DEBT,           -- 고정금리차입금
                                                EXTRACTVALUE(VALUE(P), '/data/fund_nm') FUND_NM,                           -- 펀드명
                                                EXTRACTVALUE(VALUE(P), '/data/goods_nm') GOODS_NM,                         -- 상품명,보험종류,저축명
                                                EXTRACTVALUE(VALUE(P), '/data/house_take_dt') HOUSE_TAKE_DT,               -- 주택취득일
                                                EXTRACTVALUE(VALUE(P), '/data/insu1_nm') INSU1_NM,                         -- 성명_주피보험자
                                                EXTRACTVALUE(VALUE(P), '/data/insu1_resid') INSU1_RESID,                   -- 주민등록번호_주피보험자
                                                EXTRACTVALUE(VALUE(P), '/data/insu2_nm_1') INSU2_NM_1,                     -- 성명_종피보험자_3
                                                EXTRACTVALUE(VALUE(P), '/data/insu2_nm_2') INSU2_NM_2,                     -- 성명_종피보험자_1
                                                EXTRACTVALUE(VALUE(P), '/data/insu2_nm_3') INSU2_NM_3,                     -- 성명_종피보험자_2
                                                EXTRACTVALUE(VALUE(P), '/data/insu2_resid_1') INSU2_RESID_1,               -- 주민등록번호_종피보험자_3
                                                EXTRACTVALUE(VALUE(P), '/data/insu2_resid_2') INSU2_RESID_2,               -- 주민등록번호_종피보험자_1
                                                EXTRACTVALUE(VALUE(P), '/data/insu2_resid_3') INSU2_RESID_3,               -- 주민등록번호_종피보험자_2
                                                EXTRACTVALUE(VALUE(P), '/data/lend_dt') LEND_DT,                           -- 대출일
                                                EXTRACTVALUE(VALUE(P), '/data/lend_goods_nm') LEND_GOODS_NM,               -- 상품명
                                                EXTRACTVALUE(VALUE(P), '/data/lend_kd') LEND_KD,                           -- 대출종류
                                                EXTRACTVALUE(VALUE(P), '/data/lend_loan_amt') LEND_LOAN_AMT,               -- 대출원금
                                                EXTRACTVALUE(VALUE(P), '/data/mort_setup_dt') MORT_SETUP_DT,               -- 저당권설정일
                                                EXTRACTVALUE(VALUE(P), '/data/not_defer_debt') NOT_DEFER_DEBT,             -- 비거치식상환차입금
                                                EXTRACTVALUE(VALUE(P), '/data/pay_method') PAY_METHOD,                     -- 납입방법
                                                EXTRACTVALUE(VALUE(P), '/data/pension_cd') PENSION_CD,                     -- 계좌유형
                                                EXTRACTVALUE(VALUE(P), '/data/reg_dt') REG_DT,                             -- 가입일자
                                                EXTRACTVALUE(VALUE(P), '/data/repay_years') REPAY_YEARS,                   -- 상환기간연수
                                                EXTRACTVALUE(VALUE(P), '/data/saving_gubn') SAVING_GUBN,                   -- 저축구분
                                                EXTRACTVALUE(VALUE(P), '/data/start_dt') START_DT,                         -- 계약시작일/최초차입일
                                                EXTRACTVALUE(VALUE(P), '/data/subject_nm') SUBJECT_NM,                     -- 과정명
                                                EXTRACTVALUE(VALUE(P), '/data/sum') SUM,                                   -- 년간합계액
                                                EXTRACTVALUE(VALUE(P), '/data/sum/@ddct') DDCT,                            -- 소득공제대상액
                                                EXTRACTVALUE(VALUE(P), '/data/tax_year_amt') TAX_YEAR_AMT,                 -- 당해연도인출금액
                                                EXTRACTVALUE(VALUE(P), '/data/this_year_rede_amt') THIS_YEAR_REDE_AMT     -- 당해년 원금상환
                                 FROM TABLE(XMLSEQUENCE(EXTRACT(MAN_XMLDATA.DATA_XML, '/data'))) P ) LOOP



                            DBMS_OUTPUT.PUT_LINE('FORM_CD  : ' || FORM_XMLDATA.FORM_CD);
                                                        DBMS_OUTPUT.PUT_LINE('RESID  : ' || MAN_XMLDATA.RESID);
                            DBMS_OUTPUT.PUT_LINE('NAME  : ' || MAN_XMLDATA.NAME);
                            DBMS_OUTPUT.PUT_LINE('DAT_CD  : ' || DATA_XMLDATA.DAT_CD);
                            DBMS_OUTPUT.PUT_LINE('BUSNID  : ' || DATA_XMLDATA.BUSNID);
                            DBMS_OUTPUT.PUT_LINE('TRADE_NM  : ' || DATA_XMLDATA.TRADE_NM);
                            DBMS_OUTPUT.PUT_LINE('ACC_NO  : ' || DATA_XMLDATA.ACC_NO);
                            DBMS_OUTPUT.PUT_LINE('GOODS_NM  : ' || DATA_XMLDATA.GOODS_NM);
                            DBMS_OUTPUT.PUT_LINE('SUM  : ' || DATA_XMLDATA.SUM);
                            DBMS_OUTPUT.PUT_LINE('DDCT  : ' || DATA_XMLDATA.DDCT);
                            DBMS_OUTPUT.PUT_LINE('DDCT_BS_ASS_AMT  : ' || DATA_XMLDATA.DDCT_BS_ASS_AMT);
                            DBMS_OUTPUT.PUT_LINE('EDU_TP  : ' || DATA_XMLDATA.EDU_TP);
                            DBMS_OUTPUT.PUT_LINE('COURSE_CD  : ' || DATA_XMLDATA.COURSE_CD);
                            DBMS_OUTPUT.PUT_LINE('SUBJECT_NM  : ' || DATA_XMLDATA.SUBJECT_NM);
                            DBMS_OUTPUT.PUT_LINE('START_DT  : ' || DATA_XMLDATA.START_DT);
                            DBMS_OUTPUT.PUT_LINE('END_DT  : ' || DATA_XMLDATA.END_DT);
                            DBMS_OUTPUT.PUT_LINE('COM_CD  : ' || DATA_XMLDATA.COM_CD);
                            DBMS_OUTPUT.PUT_LINE('ANN_TOT_AMT  : ' || DATA_XMLDATA.ANN_TOT_AMT);
                            DBMS_OUTPUT.PUT_LINE('TAX_YEAR_AMT  : ' || DATA_XMLDATA.TAX_YEAR_AMT);
                            DBMS_OUTPUT.PUT_LINE('PENSION_CD  : ' || DATA_XMLDATA.PENSION_CD);
                            DBMS_OUTPUT.PUT_LINE('FTYR_TOT_AMT  : ' || MAN_XMLDATA.FTYR_TOT_AMT);
                            DBMS_OUTPUT.PUT_LINE('FTYR_MARKET_TOT_AMT  : ' || MAN_XMLDATA.FTYR_MARKET_TOT_AMT);
                            DBMS_OUTPUT.PUT_LINE('FTYR_TMONEY_TOT_AMT  : ' || MAN_XMLDATA.FTYR_TMONEY_TOT_AMT);
                            DBMS_OUTPUT.PUT_LINE('PRE_TOT_AMT  : ' || MAN_XMLDATA.PRE_TOT_AMT);
                            DBMS_OUTPUT.PUT_LINE('PRE_MARKET_TOT_AMT  : ' || MAN_XMLDATA.PRE_MARKET_TOT_AMT);
                            DBMS_OUTPUT.PUT_LINE('PRE_TMONEY_TOT_AMT  : ' || MAN_XMLDATA.PRE_TMONEY_TOT_AMT);
                            DBMS_OUTPUT.PUT_LINE('USE_PLACE_CD  : ' || DATA_XMLDATA.USE_PLACE_CD);
                            DBMS_OUTPUT.PUT_LINE('FIRST_TOT_AMT  : ' || DATA_XMLDATA.FIRST_TOT_AMT);
                            DBMS_OUTPUT.PUT_LINE('SECOND_TOT_AMT  : ' || DATA_XMLDATA.SECOND_TOT_AMT);
                            DBMS_OUTPUT.PUT_LINE('FIRST_YEAR_TOT_AMT  : ' || DATA_XMLDATA.FIRST_YEAR_TOT_AMT);
                            DBMS_OUTPUT.PUT_LINE('SECOND_YEAR_TOT_AMT  : ' || DATA_XMLDATA.SECOND_YEAR_TOT_AMT);
                            DBMS_OUTPUT.PUT_LINE('INQR_STRT_MM  : ' || DATA_XMLDATA.INQR_STRT_MM);
                            DBMS_OUTPUT.PUT_LINE('INQR_END_MM  : ' || DATA_XMLDATA.INQR_END_MM);
                            DBMS_OUTPUT.PUT_LINE('LEND_DT  : ' || DATA_XMLDATA.LEND_DT);
                            DBMS_OUTPUT.PUT_LINE('LEND_KD  : ' || DATA_XMLDATA.LEND_KD);
                            DBMS_OUTPUT.PUT_LINE('HOUSE_TAKE_DT  : ' || DATA_XMLDATA.HOUSE_TAKE_DT);
                            DBMS_OUTPUT.PUT_LINE('MORT_SETUP_DT  : ' || DATA_XMLDATA.MORT_SETUP_DT);
                            DBMS_OUTPUT.PUT_LINE('REPAY_YEARS  : ' || DATA_XMLDATA.REPAY_YEARS);
                            DBMS_OUTPUT.PUT_LINE('LEND_GOODS_NM  : ' || DATA_XMLDATA.LEND_GOODS_NM);
                            DBMS_OUTPUT.PUT_LINE('DEBT  : ' || DATA_XMLDATA.DEBT);
                            DBMS_OUTPUT.PUT_LINE('FIXED_RATE_DEBT  : ' || DATA_XMLDATA.FIXED_RATE_DEBT);
                            DBMS_OUTPUT.PUT_LINE('NOT_DEFER_DEBT  : ' || DATA_XMLDATA.NOT_DEFER_DEBT);
                            DBMS_OUTPUT.PUT_LINE('THIS_YEAR_REDE_AMT  : ' || DATA_XMLDATA.THIS_YEAR_REDE_AMT);
                            DBMS_OUTPUT.PUT_LINE('REG_DT  : ' || DATA_XMLDATA.REG_DT);
                            DBMS_OUTPUT.PUT_LINE('SAVING_GUBN  : ' || DATA_XMLDATA.SAVING_GUBN);
                            DBMS_OUTPUT.PUT_LINE('LEND_LOAN_AMT  : ' || DATA_XMLDATA.LEND_LOAN_AMT);
                            DBMS_OUTPUT.PUT_LINE('PAY_METHOD  : ' || DATA_XMLDATA.PAY_METHOD);
                            DBMS_OUTPUT.PUT_LINE('DONATION_CD  : ' || DATA_XMLDATA.DONATION_CD);
                            DBMS_OUTPUT.PUT_LINE('SECU_NO  : ' || DATA_XMLDATA.SECU_NO);
                            DBMS_OUTPUT.PUT_LINE('FUND_NM  : ' || DATA_XMLDATA.FUND_NM);
                            DBMS_OUTPUT.PUT_LINE('INSU1_RESID  : ' || DATA_XMLDATA.INSU1_RESID);
                            DBMS_OUTPUT.PUT_LINE('INSU1_NM  : ' || DATA_XMLDATA.INSU1_NM);
                            DBMS_OUTPUT.PUT_LINE('INSU2_RESID_1  : ' || DATA_XMLDATA.INSU2_RESID_1);
                            DBMS_OUTPUT.PUT_LINE('INSU2_NM_1  : ' || DATA_XMLDATA.INSU2_NM_1);
                            DBMS_OUTPUT.PUT_LINE('INSU2_RESID_2  : ' || DATA_XMLDATA.INSU2_RESID_2);
                            DBMS_OUTPUT.PUT_LINE('INSU2_NM_2  : ' || DATA_XMLDATA.INSU2_NM_2);
                            DBMS_OUTPUT.PUT_LINE('INSU2_RESID_3  : ' || DATA_XMLDATA.INSU2_RESID_3);
                            DBMS_OUTPUT.PUT_LINE('INSU2_NM_3  : ' || DATA_XMLDATA.INSU2_NM_3);


              INSERT INTO PHCYAXML (JSNYEONDO        --정산년도
                            ,JMDRBEONHO --주민등록(사원)번호
                            ,FORM_CD             -- 서식코드
                            ,RESID               -- 주민등록번호
                            ,NAME                -- 성명
                            ,DAT_CD              -- 자료코드
                            ,BUSNID              -- 사업자번호
                            ,TRADE_NM            -- 상호
                            ,ACC_NO              -- 계좌/증권번호
                            ,GOODS_NM            -- 상품명,보험종류,저축명
                            ,SUM                 -- 년간합계액
                            ,DDCT                -- 소득공제대상액
                            ,DDCT_BS_ASS_AMT     -- 소득공제대상액/순납입금액
                            ,EDU_TP              -- 교육비종류
                            ,COURSE_CD           -- 과정코드
                            ,SUBJECT_NM          -- 과정명
                            ,START_DT            -- 계약시작일/최초차입일
                            ,END_DT              -- 계약종료일/최종상환예정일
                            ,COM_CD              -- 금융회사등 코드
                            ,ANN_TOT_AMT         -- 당해연도납입금액
                            ,TAX_YEAR_AMT        -- 당해연도인출금액
                            ,PENSION_CD          -- 계좌유형
                            ,FTYR_TOT_AMT        -- 전전년도_일반공제대상금액합계
                            ,FTYR_MARKET_TOT_AMT -- 전전년도_전통시장공제대상금액합계
                            ,FTYR_TMONEY_TOT_AMT -- 전전년도_대중교통공제대상금액합계
                            ,PRE_TOT_AMT         -- 직전년도_일반공제대상금액합계
                            ,PRE_MARKET_TOT_AMT  -- 직전년도_전통시장공제대상금액합계
                            ,PRE_TMONEY_TOT_AMT  -- 직전년도_대중교통공제대상금액합계
                            ,USE_PLACE_CD        -- 종류
                            ,FIRST_TOT_AMT       -- 귀속년도_상반기_대상금액합계(조회기간)
                            ,SECOND_TOT_AMT      -- 귀속년도_하반기_대상금액합계(조회기간)
                            ,FIRST_YEAR_TOT_AMT  -- 귀속년도_상반기_대상금액합계
                            ,SECOND_YEAR_TOT_AMT -- 귀속년도_하반기_대상금액합계
                            ,INQR_STRT_MM        -- 조회기간 시작월
                            ,INQR_END_MM         -- 조회기간 종료월
                            ,LEND_DT             -- 대출일
                            ,LEND_KD             -- 대출종류
                            ,HOUSE_TAKE_DT       -- 주택취득일
                            ,MORT_SETUP_DT       -- 저당권설정일
                            ,REPAY_YEARS         -- 상환기간연수
                            ,LEND_GOODS_NM       -- 상품명
                            ,DEBT                -- 차입금
                            ,FIXED_RATE_DEBT     -- 고정금리차입금
                            ,NOT_DEFER_DEBT      -- 비거치식상환차입금
                            ,THIS_YEAR_REDE_AMT  -- 당해년 원금상환액
                            ,REG_DT              -- 가입일자
                            ,SAVING_GUBN         -- 저축구분
                            ,LEND_LOAN_AMT       -- 대출원금
                            ,PAY_METHOD          -- 납입방법
                            ,DONATION_CD         -- 기부유형
                            ,SECU_NO             -- 계좌번호
                            ,FUND_NM             -- 펀드명
                            ,INSU1_RESID         -- 주민등록번호_주피보험자
                            ,INSU1_NM            -- 성명_주피보험자
                            ,INSU2_RESID_1       -- 주민등록번호_종피보험자_3
                            ,INSU2_NM_1          -- 성명_종피보험자_3
                            ,INSU2_RESID_2       -- 주민등록번호_종피보험자_1
                            ,INSU2_NM_2          -- 성명_종피보험자_1
                            ,INSU2_RESID_3       -- 주민등록번호_종피보험자_2
                            ,INSU2_NM_3          -- 성명_종피보험자_2
                            ,JAKEOPJA       --작업자
                            ,JEILJA         --작업일자
                          )
                   VALUES ( in_sjsnyeondo                  --연말정산_정산년도
                            ,in_sjmdrbeonho                                --사원번호
                            ,FORM_XMLDATA.FORM_CD                      -- 서식코드
                            ,MAN_XMLDATA.RESID                        -- 주민등록번호
                            ,MAN_XMLDATA.NAME                         -- 성명
                            ,DATA_XMLDATA.DAT_CD                       -- 자료코드
                            ,DATA_XMLDATA.BUSNID                       -- 사업자번호
                            ,DATA_XMLDATA.TRADE_NM                     -- 상호
                            ,DATA_XMLDATA.ACC_NO                       -- 계좌/증권번호
                            ,DATA_XMLDATA.GOODS_NM                     -- 상품명,보험종류,저축명
                            ,DATA_XMLDATA.SUM                          -- 년간합계액
                            ,DATA_XMLDATA.DDCT                         -- 소득공제대상액
                            ,DATA_XMLDATA.DDCT_BS_ASS_AMT              -- 소득공제대상액/순납입금액
                            ,DATA_XMLDATA.EDU_TP                       -- 교육비종류
                            ,DATA_XMLDATA.COURSE_CD                    -- 과정코드
                            ,DATA_XMLDATA.SUBJECT_NM                   -- 과정명
                            ,DATA_XMLDATA.START_DT                     -- 계약시작일/최초차입일
                            ,DATA_XMLDATA.END_DT                       -- 계약종료일/최종상환예정일
                            ,DATA_XMLDATA.COM_CD                       -- 금융회사등 코드
                            ,DATA_XMLDATA.ANN_TOT_AMT                  -- 당해연도납입금액
                            ,DATA_XMLDATA.TAX_YEAR_AMT                 -- 당해연도인출금액
                            ,DATA_XMLDATA.PENSION_CD                   -- 계좌유형
                            ,MAN_XMLDATA.FTYR_TOT_AMT                 -- 전전년도_일반공제대상금액합계
                            ,MAN_XMLDATA.FTYR_MARKET_TOT_AMT          -- 전전년도_전통시장공제대상금액합계
                            ,MAN_XMLDATA.FTYR_TMONEY_TOT_AMT          -- 전전년도_대중교통공제대상금액합계
                            ,MAN_XMLDATA.PRE_TOT_AMT                  -- 직전년도_일반공제대상금액합계
                            ,MAN_XMLDATA.PRE_MARKET_TOT_AMT           -- 직전년도_전통시장공제대상금액합계
                            ,MAN_XMLDATA.PRE_TMONEY_TOT_AMT           -- 직전년도_대중교통공제대상금액합계
                            ,DATA_XMLDATA.USE_PLACE_CD                 -- 종류
                            ,DATA_XMLDATA.FIRST_TOT_AMT                -- 귀속년도_상반기_대상금액합계(조회기간)
                            ,DATA_XMLDATA.SECOND_TOT_AMT               -- 귀속년도_하반기_대상금액합계(조회기간)
                            ,DATA_XMLDATA.FIRST_YEAR_TOT_AMT           -- 귀속년도_상반기_대상금액합계
                            ,DATA_XMLDATA.SECOND_YEAR_TOT_AMT          -- 귀속년도_하반기_대상금액합계
                            ,DATA_XMLDATA.INQR_STRT_MM                 -- 조회기간 시작월
                            ,DATA_XMLDATA.INQR_END_MM                  -- 조회기간 종료월
                            ,DATA_XMLDATA.LEND_DT                      -- 대출일
                            ,DATA_XMLDATA.LEND_KD                      -- 대출종류
                            ,DATA_XMLDATA.HOUSE_TAKE_DT                -- 주택취득일
                            ,DATA_XMLDATA.MORT_SETUP_DT                -- 저당권설정일
                            ,DATA_XMLDATA.REPAY_YEARS                  -- 상환기간연수
                            ,DATA_XMLDATA.LEND_GOODS_NM                -- 상품명
                            ,DATA_XMLDATA.DEBT                         -- 차입금
                            ,DATA_XMLDATA.FIXED_RATE_DEBT              -- 고정금리차입금
                            ,DATA_XMLDATA.NOT_DEFER_DEBT               -- 비거치식상환차입금
                            ,DATA_XMLDATA.THIS_YEAR_REDE_AMT           -- 당해년 원금상환액
                            ,DATA_XMLDATA.REG_DT                       -- 가입일자
                            ,DATA_XMLDATA.SAVING_GUBN                  -- 저축구분
                            ,DATA_XMLDATA.LEND_LOAN_AMT                -- 대출원금
                            ,DATA_XMLDATA.PAY_METHOD                   -- 납입방법
                            ,DATA_XMLDATA.DONATION_CD                  -- 기부유형
                            ,DATA_XMLDATA.SECU_NO                      -- 계좌번호
                            ,DATA_XMLDATA.FUND_NM                      -- 펀드명
                            ,DATA_XMLDATA.INSU1_RESID                  -- 주민등록번호_주피보험자
                            ,DATA_XMLDATA.INSU1_NM                     -- 성명_주피보험자
                            ,DATA_XMLDATA.INSU2_RESID_1                -- 주민등록번호_종피보험자_3
                            ,DATA_XMLDATA.INSU2_NM_1                   -- 성명_종피보험자_3
                            ,DATA_XMLDATA.INSU2_RESID_2                -- 주민등록번호_종피보험자_1
                            ,DATA_XMLDATA.INSU2_NM_2                   -- 성명_종피보험자_1
                            ,DATA_XMLDATA.INSU2_RESID_3                -- 주민등록번호_종피보험자_2
                            ,DATA_XMLDATA.INSU2_NM_3                   -- 성명_종피보험자_2
                            ,in_sjakeopja                         --연말정산_작업자
                            ,TO_CHAR(SYSDATE,'YYYYMMDDHH24MISS')   --연말정산_작업일자
                            );

            END LOOP;

        END LOOP;

    END LOOP;

  END;


  COMMIT;

 EXCEPTION
     WHEN NO_DATA_FOUND THEN
       NULL;
     WHEN OTHERS THEN null;
END PHC6_XMLTODATA_ALL;

반응형
반응형


우선 로직은

데이터를 받아 인서트 시킨 후 저장 여부를 체크 
저장이 성공시
다른 테이블에 저장

하는 간단한... 프로그램


첫번째 마이바티스 
키 디비에서 읽어온 후 

readEmpKey = Repository.getEmpKey(mapData); 
mapData.put("KEY", readEmpKey==null ? "1": readEmpKey ); 


INSERT INTO TEST_TBL ( 
KEY 
,TEST1 
,TEST2 
) 
VALUES( 
#{KEY} 
,#{TEST1} 
,#{TEST2} 
) 




여기서 인서트 성공하면 리턴값이 1 이였다..
#{KEY}  요 값도 정상

int rtnOk = Repository.insert1(mapData); 



그래서 위에 설정한 keyProperty="KEY"
값이 안넘어 오길래 .. 머지 머지? 하고 그냥 지나갔다

그리고 
다시 다른 테이블에 해당 키를 저장할려고 넘기고 보니 ... 이상한 키가 붙었다..

int rtnOk = Repository.insert2(mapData); 

System.out.println("리턴 되어 돌아온 ==" + mapData.get("KEY"))  
// AAAZ4GAAHAAA4G1AAC  <-----  



오늘의 삽질이다. 

결국 KEY -> TEST1 로 교체 후 오류 넘어감



요약 
INSERT 성공유무 활용할때 keyProperty 조심 허자~ map.put  잘 찍어보자 ~ 

 

반응형
반응형

며칠간 개발 서버를 살려두었는데..

hibernate.hbm2ddl.auto=create-drop

설정 깜박하고 서버 재시작...

그동안 테스트 데이터 모두 안녕~~ ㅠ_ㅠ


spring.jpa.hibernate.ddl-auto=create-drop 을 아래 처럼 변경 하니 DB 잘 ... 살음  


spring.jpa.hibernate.ddl-auto=update 


참고 URL 

https://github.com/HomoEfficio/dev-tips/blob/master/hibernate.hbm2ddl.auto%20%EC%9C%84%ED%97%98%20%ED%97%B7%EC%A7%80.md


반응형
반응형

MAP >> JSON >> JSONArray 변환 참조 

https://stackoverflow.com/questions/19018509/java-loop-over-json-array



rest api 를 get 으로 받아오는데.. 

header 에 API KEY 세팅해야되고.. POST 가 아니면 restTemplate 방식은 이상하고 아오 아오


restTemplate.exchange 에서

getBody()

로 가져온 데이터중 배열 데이터 제어하기가 순수 JAVA 컬렉션으로는 해결이 잘 안되어서

머리가 나쁜건지 ㅠ_ㅠ 엉엉


JSON 으로 변환하여 .. 해결

JSONObject jsonObj = new JSONObject(response.getBody());

반응형
반응형

간단합니다 간단해요


application.properties 에서

spring.jpa.show-sql=true 

spring.jpa.properties.hibernate.format_sql=true


설정 후 재 시작하면 쿼리가 보여요 ~~ ㅎㅎ




반응형
반응형

아.. 삽질 

머스테시 탬플릿에서는 어플리케이션 설정에 아래 같이 해줘야 세션이 적용 된다.

application.properties 파일 아래 설정 추가



spring.mustache.expose-session-attributes=true


18 pt 로 강조 흐흐 !!!

반응형

+ Recent posts