## ๋ฐฐ์น ์ค๊ณ ์์ฝ 1. **์ธ๋ฐ์ด๋ Job** (`ImportAndProcessSettlementJob`) * **Quartz Cron**: `0 0 3 * * ?` (๋งค์ผ 03:00) * **Step1: SFTP ๋ค์ด๋ก๋** * PG ์๋ฒ(34.47.67.52)์์ `/incoming/pg` โ ๋ก์ปฌ `/data/batch/input` * ์ฌ์ฉ์: `pg_sftp_user` * **Step2: Chunk ์ฒ๋ฆฌ** * Reader: CSV โ `IncomingSummary` DTO * Processor: 2% ์์๋ฃ ๊ณต์ โ `CardSettlement(status=PENDING)` * Writer: `JpaItemWriter<CardSettlement>` * **Step3: ํ์ผ ํ์ฒ๋ฆฌ** * ์ฑ๊ณต โ `/data/batch/archive` * ์คํจ โ `/data/batch/error` + ์๋ฆผ 2. **์์๋ฐ์ด๋ Job** (`GenerateAndSendDepositJob`) * **Quartz Cron**: `0 30 3 * * ?` (๋งค์ผ 03:30) * **Step1: PENDING ๋ ์ฝ๋ ์กฐํ** * **Step2: Deposit CSV ์์ฑ** * ์ปฌ๋ผ: `merchant_id,merchant_name,merchant_deposit_amount,card_income_amount,currency,settlement_date` * ์ ์ฅ: `/data/batch/deposit/out` * **Step3: SFTP ์ ๋ก๋** * **์ํ ์๋ฒ(34.64.79.116)** * **remote-dir**: `/incoming/card` * **username**: `card_sftp_user` * **password**: `${CARD_SFTP_PASSWORD}` * โ ์ ๋ก๋ ์ฑ๊ณต ์ `statusโSENT` * **Step4: ํ์ผ ํ์ฒ๋ฆฌ** * ์ฑ๊ณต โ `/data/batch/deposit/archive` * ์คํจ โ `/data/batch/deposit/error` + ์๋ฆผ
๋ฐฐ์น ์ค๊ณ ์์ฝ
์ธ๋ฐ์ด๋ Job (
ImportAndProcessSettlementJob)Quartz Cron:
0 0 3 * * ?(๋งค์ผ 03:00)Step1: SFTP ๋ค์ด๋ก๋
/incoming/pgโ ๋ก์ปฌ/data/batch/inputpg_sftp_userStep2: Chunk ์ฒ๋ฆฌ
IncomingSummaryDTOCardSettlement(status=PENDING)JpaItemWriter<CardSettlement>Step3: ํ์ผ ํ์ฒ๋ฆฌ
/data/batch/archive/data/batch/error+ ์๋ฆผ์์๋ฐ์ด๋ Job (
GenerateAndSendDepositJob)Quartz Cron:
0 30 3 * * ?(๋งค์ผ 03:30)Step1: PENDING ๋ ์ฝ๋ ์กฐํ
Step2: Deposit CSV ์์ฑ
merchant_id,merchant_name,merchant_deposit_amount,card_income_amount,currency,settlement_date/data/batch/deposit/outStep3: SFTP ์ ๋ก๋
/incoming/cardcard_sftp_user${CARD_SFTP_PASSWORD}statusโSENTStep4: ํ์ผ ํ์ฒ๋ฆฌ
/data/batch/deposit/archive/data/batch/deposit/error+ ์๋ฆผ