diff --git a/ga-core/src/main/java/com/ga/core/vo/org/AgentResp.java b/ga-core/src/main/java/com/ga/core/vo/org/AgentResp.java
index bf78dd8..137050d 100644
--- a/ga-core/src/main/java/com/ga/core/vo/org/AgentResp.java
+++ b/ga-core/src/main/java/com/ga/core/vo/org/AgentResp.java
@@ -20,6 +20,11 @@ public class AgentResp {
private String gradeName;
private LocalDate joinDate;
private LocalDate leaveDate;
+ private String taxType;
+ private String taxTypeName;
+ private String businessNo;
+ private String vatType;
+ private String vatTypeName;
private Integer contractCount;
private BigDecimal totalCommission;
}
diff --git a/ga-core/src/main/java/com/ga/core/vo/org/AgentSaveReq.java b/ga-core/src/main/java/com/ga/core/vo/org/AgentSaveReq.java
index 0054bfc..eeeec3d 100644
--- a/ga-core/src/main/java/com/ga/core/vo/org/AgentSaveReq.java
+++ b/ga-core/src/main/java/com/ga/core/vo/org/AgentSaveReq.java
@@ -26,4 +26,13 @@ public class AgentSaveReq {
private String bankCode;
private String accountNo;
private LocalDate joinDate;
+
+ @NotBlank(message = "소득세 유형은 필수입니다")
+ private String taxType = "BUSINESS_INCOME"; // TaxType
+
+ @Size(max = 20)
+ private String businessNo; // 사업소득자 시 입력
+
+ @NotBlank(message = "부가세 유형은 필수입니다")
+ private String vatType = "NONE"; // VatType
}
diff --git a/ga-core/src/main/java/com/ga/core/vo/org/AgentVO.java b/ga-core/src/main/java/com/ga/core/vo/org/AgentVO.java
index 8587dc5..110e1d0 100644
--- a/ga-core/src/main/java/com/ga/core/vo/org/AgentVO.java
+++ b/ga-core/src/main/java/com/ga/core/vo/org/AgentVO.java
@@ -20,6 +20,9 @@ public class AgentVO {
private String status;
private LocalDate joinDate;
private LocalDate leaveDate;
+ private String taxType; // TaxType: BUSINESS_INCOME / OTHER_INCOME
+ private String businessNo; // 사업자등록번호 (사업소득자)
+ private String vatType; // VatType: NONE / EXEMPT / TAXABLE
private LocalDateTime createdAt;
private LocalDateTime updatedAt;
}
diff --git a/ga-core/src/main/java/com/ga/core/vo/org/TaxType.java b/ga-core/src/main/java/com/ga/core/vo/org/TaxType.java
new file mode 100644
index 0000000..2c75b62
--- /dev/null
+++ b/ga-core/src/main/java/com/ga/core/vo/org/TaxType.java
@@ -0,0 +1,14 @@
+package com.ga.core.vo.org;
+
+/**
+ * 소득세 유형 (common_code_group: TAX_TYPE, V23 기준)
+ * DB agent.tax_type CHECK: BUSINESS_INCOME / OTHER_INCOME
+ */
+public enum TaxType {
+ BUSINESS_INCOME, // 사업소득 — 원천징수 3.3%
+ OTHER_INCOME; // 기타소득 — 원천징수 8.8%
+
+ public String code() {
+ return this.name();
+ }
+}
diff --git a/ga-core/src/main/java/com/ga/core/vo/org/VatType.java b/ga-core/src/main/java/com/ga/core/vo/org/VatType.java
new file mode 100644
index 0000000..c305a26
--- /dev/null
+++ b/ga-core/src/main/java/com/ga/core/vo/org/VatType.java
@@ -0,0 +1,15 @@
+package com.ga.core.vo.org;
+
+/**
+ * 부가세 유형 (common_code_group: VAT_TYPE, V23 기준)
+ * DB agent.vat_type CHECK: NONE / EXEMPT / TAXABLE
+ */
+public enum VatType {
+ NONE, // 미지정 — 부가세 처리 없음
+ EXEMPT, // 면세사업자 — 계산서 발행
+ TAXABLE; // 일반과세자 — 세금계산서 10%
+
+ public String code() {
+ return this.name();
+ }
+}
diff --git a/ga-core/src/main/java/com/ga/core/vo/settle/PaymentVO.java b/ga-core/src/main/java/com/ga/core/vo/settle/PaymentVO.java
index f5c34fd..2a780e9 100644
--- a/ga-core/src/main/java/com/ga/core/vo/settle/PaymentVO.java
+++ b/ga-core/src/main/java/com/ga/core/vo/settle/PaymentVO.java
@@ -18,6 +18,10 @@ public class PaymentVO {
private String payStatus; // PENDING / SENT / DONE / FAIL
private Long transferFileId;
private String failReason;
+ private BigDecimal incomeTaxAmount; // 원천세
+ private BigDecimal localTaxAmount; // 지방소득세
+ private BigDecimal vatAmount; // 부가세
+ private BigDecimal netAmount; // 실수령액 (payAmount - 세금 합계)
private LocalDateTime createdAt;
private LocalDateTime updatedAt;
}
diff --git a/ga-core/src/main/resources/mapper/org/AgentMapper.xml b/ga-core/src/main/resources/mapper/org/AgentMapper.xml
index 19ecd5a..eba2cbf 100644
--- a/ga-core/src/main/resources/mapper/org/AgentMapper.xml
+++ b/ga-core/src/main/resources/mapper/org/AgentMapper.xml
@@ -14,11 +14,14 @@
-
-
-
-
-
+
+
+
+
+
+
+
+
@@ -32,7 +35,12 @@
(SELECT cc.code_name FROM common_code cc WHERE cc.group_code='AGENT_STATUS' AND cc.code=a.status) AS status_name,
a.org_id, o.org_name,
a.grade_id, g.grade_name,
- a.join_date, a.leave_date
+ a.join_date, a.leave_date,
+ a.tax_type,
+ (SELECT cc.code_name FROM common_code cc WHERE cc.group_code='TAX_TYPE' AND cc.code=a.tax_type) AS tax_type_name,
+ a.business_no,
+ a.vat_type,
+ (SELECT cc.code_name FROM common_code cc WHERE cc.group_code='VAT_TYPE' AND cc.code=a.vat_type) AS vat_type_name