diff --git a/src/main/java/go/kr/project/carInspectionPenalty/registration/service/impl/ComparisonServiceImpl.java b/src/main/java/go/kr/project/carInspectionPenalty/registration/service/impl/ComparisonServiceImpl.java index f95aa4d..7996f23 100644 --- a/src/main/java/go/kr/project/carInspectionPenalty/registration/service/impl/ComparisonServiceImpl.java +++ b/src/main/java/go/kr/project/carInspectionPenalty/registration/service/impl/ComparisonServiceImpl.java @@ -1,8 +1,10 @@ package go.kr.project.carInspectionPenalty.registration.service.impl; +import egovframework.util.SessionUtil; import go.kr.project.carInspectionPenalty.registration.model.CarFfnlgTrgtVO; import go.kr.project.carInspectionPenalty.registration.service.ComparisonService; import go.kr.project.carInspectionPenalty.registration.service.impl.delay_checker.*; +import go.kr.project.login.model.LoginUserVO; import lombok.RequiredArgsConstructor; import lombok.extern.slf4j.Slf4j; import org.egovframe.rte.fdl.cmmn.EgovAbstractServiceImpl; @@ -49,50 +51,54 @@ public class ComparisonServiceImpl extends EgovAbstractServiceImpl implements Co String vhclno = existingData.getVhclno(); log.info("========== 비교 로직 시작: {} ==========", vhclno); + // ========== 세션에서 사용자 정보 조회 ========== + LoginUserVO userInfo = SessionUtil.getLoginUser(); + String userOrgCd = userInfo != null ? userInfo.getOrgCd() : null; + // ========== 1. 상품용 체크 - api-1번호출.소유자명.contains("상품용") ========== - String productUseResult = productUseChecker.check(existingData); + String productUseResult = productUseChecker.check(existingData, userOrgCd); if (productUseResult != null) { log.info("========== 비교 로직 종료 (상품용): {} ==========", vhclno); return productUseResult; } // ========== 2. 상품용 체크 - api-1번호출.소유자명.contains("상품용-변경등록") ========== - String productUseChangeResult = productUseChnageChecker.check(existingData); + String productUseChangeResult = productUseChnageChecker.check(existingData, userOrgCd); if (productUseChangeResult != null) { log.info("========== 비교 로직 종료 (상품용-변경등록): {} ==========", vhclno); return productUseChangeResult; } // ========== 3. 내사종결 체크 - 명의이전 이전소유자 상품용, 31일 이내 ========== - String investigationClosedByProductResult = productCloseWithin31Checker.check(existingData); + String investigationClosedByProductResult = productCloseWithin31Checker.check(existingData, userOrgCd); if (investigationClosedByProductResult != null) { log.info("========== 비교 로직 종료 (내사종결 - 명의이전 이전소유자 상품용, 31일 이내): {} ==========", vhclno); return investigationClosedByProductResult; } // ========== 4. 내사종결 체크 - 명의이전, 31일 이내 ========== - String investigationClosedByOwnerChangeResult = ownerCloseWithin31Checker.check(existingData); + String investigationClosedByOwnerChangeResult = ownerCloseWithin31Checker.check(existingData, userOrgCd); if (investigationClosedByOwnerChangeResult != null) { log.info("========== 비교 로직 종료 (내사종결 - 명의이전, 31일 이내): {} ==========", vhclno); return investigationClosedByOwnerChangeResult; } // ========== 5. 날짜 수정 후 부과 체크 - 명의이전 이전소유자 상품용, 31일 초과 ========== - String dateModifiedLevyByProductResult = productLevyOver31Checker.check(existingData); + String dateModifiedLevyByProductResult = productLevyOver31Checker.check(existingData, userOrgCd); if (dateModifiedLevyByProductResult != null) { log.info("========== 비교 로직 종료 (날짜 수정 후 부과 - 명의이전 이전소유자, 31일 초과): {} ==========", vhclno); return dateModifiedLevyByProductResult; } // ========== 6. 날짜 수정 후 부과 체크 - 명의이전, 31일 초과 ========== - String dateModifiedLevyByOwnerChangeOverResult = ownerLevyOver31Checker.check(existingData); + String dateModifiedLevyByOwnerChangeOverResult = ownerLevyOver31Checker.check(existingData, userOrgCd); if (dateModifiedLevyByOwnerChangeOverResult != null) { log.info("========== 비교 로직 종료 (날짜 수정 후 부과 - 명의이전, 31일 초과): {} ==========", vhclno); return dateModifiedLevyByOwnerChangeOverResult; } // ========== 7. 이첩 체크 ========== - String transferResult = transferCase115DayChecker.check(existingData); + String transferResult = transferCase115DayChecker.check(existingData, userOrgCd); if (transferResult != null) { log.info("========== 비교 로직 종료 (이첩): {} ==========", vhclno); return transferResult; diff --git a/src/main/java/go/kr/project/carInspectionPenalty/registration/service/impl/delay_checker/ComparisonChecker.java b/src/main/java/go/kr/project/carInspectionPenalty/registration/service/impl/delay_checker/ComparisonChecker.java index 790f99e..dcd15a9 100644 --- a/src/main/java/go/kr/project/carInspectionPenalty/registration/service/impl/delay_checker/ComparisonChecker.java +++ b/src/main/java/go/kr/project/carInspectionPenalty/registration/service/impl/delay_checker/ComparisonChecker.java @@ -13,7 +13,8 @@ public interface ComparisonChecker { * 비교 로직 실행 * * @param existingData 과태료 대상 데이터 + * @param userOrgCd 사용자 조직코드 * @return 처리상태코드 또는 null (미적용) */ - String check(CarFfnlgTrgtVO existingData); + String check(CarFfnlgTrgtVO existingData, String userOrgCd); } diff --git a/src/main/java/go/kr/project/carInspectionPenalty/registration/service/impl/delay_checker/OwnerCloseWithin31Checker.java b/src/main/java/go/kr/project/carInspectionPenalty/registration/service/impl/delay_checker/OwnerCloseWithin31Checker.java index 360b38a..37b9efa 100644 --- a/src/main/java/go/kr/project/carInspectionPenalty/registration/service/impl/delay_checker/OwnerCloseWithin31Checker.java +++ b/src/main/java/go/kr/project/carInspectionPenalty/registration/service/impl/delay_checker/OwnerCloseWithin31Checker.java @@ -36,7 +36,7 @@ public class OwnerCloseWithin31Checker extends AbstractComparisonChecker { } @Override - public String check(CarFfnlgTrgtVO existingData) { + public String check(CarFfnlgTrgtVO existingData, String userOrgCd) { String vhclno = existingData.getVhclno(); String inspYmd = existingData.getInspYmd(); String vldPrdExpryYmd = existingData.getVldPrdExpryYmd(); diff --git a/src/main/java/go/kr/project/carInspectionPenalty/registration/service/impl/delay_checker/OwnerLevyOver31Checker.java b/src/main/java/go/kr/project/carInspectionPenalty/registration/service/impl/delay_checker/OwnerLevyOver31Checker.java index 0efd81a..7ad9b7d 100644 --- a/src/main/java/go/kr/project/carInspectionPenalty/registration/service/impl/delay_checker/OwnerLevyOver31Checker.java +++ b/src/main/java/go/kr/project/carInspectionPenalty/registration/service/impl/delay_checker/OwnerLevyOver31Checker.java @@ -36,7 +36,7 @@ public class OwnerLevyOver31Checker extends AbstractComparisonChecker { } @Override - public String check(CarFfnlgTrgtVO existingData) { + public String check(CarFfnlgTrgtVO existingData, String userOrgCd) { String vhclno = existingData.getVhclno(); String inspYmd = existingData.getInspYmd(); String vldPrdExpryYmd = existingData.getVldPrdExpryYmd(); diff --git a/src/main/java/go/kr/project/carInspectionPenalty/registration/service/impl/delay_checker/ProductCloseWithin31Checker.java b/src/main/java/go/kr/project/carInspectionPenalty/registration/service/impl/delay_checker/ProductCloseWithin31Checker.java index 1413c4d..e74305a 100644 --- a/src/main/java/go/kr/project/carInspectionPenalty/registration/service/impl/delay_checker/ProductCloseWithin31Checker.java +++ b/src/main/java/go/kr/project/carInspectionPenalty/registration/service/impl/delay_checker/ProductCloseWithin31Checker.java @@ -36,7 +36,7 @@ public class ProductCloseWithin31Checker extends AbstractComparisonChecker { } @Override - public String check(CarFfnlgTrgtVO existingData) { + public String check(CarFfnlgTrgtVO existingData, String userOrgCd) { String vhclno = existingData.getVhclno(); String inspYmd = existingData.getInspYmd(); String vldPrdExpryYmd = existingData.getVldPrdExpryYmd(); diff --git a/src/main/java/go/kr/project/carInspectionPenalty/registration/service/impl/delay_checker/ProductLevyOver31Checker.java b/src/main/java/go/kr/project/carInspectionPenalty/registration/service/impl/delay_checker/ProductLevyOver31Checker.java index f3887db..afb6426 100644 --- a/src/main/java/go/kr/project/carInspectionPenalty/registration/service/impl/delay_checker/ProductLevyOver31Checker.java +++ b/src/main/java/go/kr/project/carInspectionPenalty/registration/service/impl/delay_checker/ProductLevyOver31Checker.java @@ -36,7 +36,7 @@ public class ProductLevyOver31Checker extends AbstractComparisonChecker { } @Override - public String check(CarFfnlgTrgtVO existingData) { + public String check(CarFfnlgTrgtVO existingData, String userOrgCd) { String vhclno = existingData.getVhclno(); String inspYmd = existingData.getInspYmd(); String vldPrdExpryYmd = existingData.getVldPrdExpryYmd(); diff --git a/src/main/java/go/kr/project/carInspectionPenalty/registration/service/impl/delay_checker/ProductUseChecker.java b/src/main/java/go/kr/project/carInspectionPenalty/registration/service/impl/delay_checker/ProductUseChecker.java index 6af3203..5ab6b9e 100644 --- a/src/main/java/go/kr/project/carInspectionPenalty/registration/service/impl/delay_checker/ProductUseChecker.java +++ b/src/main/java/go/kr/project/carInspectionPenalty/registration/service/impl/delay_checker/ProductUseChecker.java @@ -36,7 +36,7 @@ public class ProductUseChecker extends AbstractComparisonChecker { } @Override - public String check(CarFfnlgTrgtVO existingData) { + public String check(CarFfnlgTrgtVO existingData, String userOrgCd) { String vhclno = existingData.getVhclno(); String inspYmd = existingData.getInspYmd(); String vldPrdExpryYmd = existingData.getVldPrdExpryYmd(); diff --git a/src/main/java/go/kr/project/carInspectionPenalty/registration/service/impl/delay_checker/ProductUseChnageChecker.java b/src/main/java/go/kr/project/carInspectionPenalty/registration/service/impl/delay_checker/ProductUseChnageChecker.java index 99b62eb..6437e1e 100644 --- a/src/main/java/go/kr/project/carInspectionPenalty/registration/service/impl/delay_checker/ProductUseChnageChecker.java +++ b/src/main/java/go/kr/project/carInspectionPenalty/registration/service/impl/delay_checker/ProductUseChnageChecker.java @@ -36,7 +36,7 @@ public class ProductUseChnageChecker extends AbstractComparisonChecker { } @Override - public String check(CarFfnlgTrgtVO existingData) { + public String check(CarFfnlgTrgtVO existingData, String userOrgCd) { String vhclno = existingData.getVhclno(); String inspYmd = existingData.getInspYmd(); String vldPrdExpryYmd = existingData.getVldPrdExpryYmd(); diff --git a/src/main/java/go/kr/project/carInspectionPenalty/registration/service/impl/delay_checker/TransferCase115DayChecker.java b/src/main/java/go/kr/project/carInspectionPenalty/registration/service/impl/delay_checker/TransferCase115DayChecker.java index 880a260..c68de34 100644 --- a/src/main/java/go/kr/project/carInspectionPenalty/registration/service/impl/delay_checker/TransferCase115DayChecker.java +++ b/src/main/java/go/kr/project/carInspectionPenalty/registration/service/impl/delay_checker/TransferCase115DayChecker.java @@ -3,7 +3,6 @@ package go.kr.project.carInspectionPenalty.registration.service.impl.delay_check import egovframework.constant.TaskPrcsSttsConstants; import egovframework.exception.MessageException; import egovframework.util.DateUtil; -import egovframework.util.SessionUtil; import go.kr.project.api.model.request.NewBasicRequest; import go.kr.project.api.model.response.NewBasicResponse; import go.kr.project.api.service.ExternalVehicleApiService; @@ -12,7 +11,6 @@ import go.kr.project.api.service.VmisCarLedgerFrmbkLogService; import go.kr.project.carInspectionPenalty.registration.mapper.CarFfnlgTrgtMapper; import go.kr.project.carInspectionPenalty.registration.model.CarFfnlgTrgtVO; import go.kr.project.carInspectionPenalty.registration.service.impl.ComparisonRemarkBuilder; -import go.kr.project.login.model.LoginUserVO; import lombok.extern.slf4j.Slf4j; import org.springframework.stereotype.Component; @@ -35,7 +33,7 @@ public class TransferCase115DayChecker extends AbstractComparisonChecker { } @Override - public String check(CarFfnlgTrgtVO existingData) { + public String check(CarFfnlgTrgtVO existingData, String userOrgCd) { String vhclno = existingData.getVhclno(); try { @@ -93,16 +91,14 @@ public class TransferCase115DayChecker extends AbstractComparisonChecker { return null; } - // 세션에서 사용자 정보 조회 - LoginUserVO userInfo = SessionUtil.getLoginUser(); - if (userInfo == null || userInfo.getOrgCd() == null) { + // 사용자 조직코드 유효성 검사 + if (userOrgCd == null) { log.debug("[{}] 사용자 정보 없음", transferType); return null; } // 법정동코드 앞 4자리 vs 사용자 조직코드 앞 4자리 비교 String legalDong4 = usgsrhldStdgCd.substring(0, 4); - String userOrgCd = userInfo.getOrgCd(); String userOrg4 = userOrgCd.length() >= 4 ? userOrgCd.substring(0, 4) : userOrgCd; if (legalDong4.equals(userOrg4)) { diff --git a/src/main/java/go/kr/project/carInspectionPenalty/registrationOm/service/impl/ComparisonOmServiceImpl.java b/src/main/java/go/kr/project/carInspectionPenalty/registrationOm/service/impl/ComparisonOmServiceImpl.java index 14124ef..b20c7f3 100644 --- a/src/main/java/go/kr/project/carInspectionPenalty/registrationOm/service/impl/ComparisonOmServiceImpl.java +++ b/src/main/java/go/kr/project/carInspectionPenalty/registrationOm/service/impl/ComparisonOmServiceImpl.java @@ -1,8 +1,10 @@ package go.kr.project.carInspectionPenalty.registrationOm.service.impl; +import egovframework.util.SessionUtil; import go.kr.project.carInspectionPenalty.registrationOm.model.CarFfnlgTrgtIncmpVO; import go.kr.project.carInspectionPenalty.registrationOm.service.ComparisonOmService; import go.kr.project.carInspectionPenalty.registrationOm.service.impl.om_checker.*; +import go.kr.project.login.model.LoginUserVO; import lombok.RequiredArgsConstructor; import lombok.extern.slf4j.Slf4j; import org.egovframe.rte.fdl.cmmn.EgovAbstractServiceImpl; @@ -35,22 +37,26 @@ public class ComparisonOmServiceImpl extends EgovAbstractServiceImpl implements String levyCrtrYmd = existingData.getLevyCrtrYmd(); log.info("========== 미필 비교 로직 시작: {}, 부과일자: {} ==========", vhclno, levyCrtrYmd); + // ========== 세션에서 사용자 정보 조회 ========== + LoginUserVO userInfo = SessionUtil.getLoginUser(); + String userOrgCd = userInfo != null ? userInfo.getOrgCd() : null; + // ========== 1. 상품용 체크 - api-1번호출.소유자명.contains("상품용") ========== - String productUseResult = productUseOmChecker.check(existingData); + String productUseResult = productUseOmChecker.check(existingData, userOrgCd); if (productUseResult != null) { log.info("========== 미필 비교 로직 종료 (상품용): {} ==========", vhclno); return productUseResult; } // ========== 2. 명의이전 소유자 확인 (검사유효기간 종료일 이후 명의이전) ========== - String ownerTransferResult = ownerTransferOmChecker.check(existingData); + String ownerTransferResult = ownerTransferOmChecker.check(existingData, userOrgCd); if (ownerTransferResult != null) { log.info("========== 미필 비교 로직 종료 (명의이전 소유자 확인): {} ==========", vhclno); return ownerTransferResult; } // ========== 3. 이첩 체크 ========== - String transferResult = transferOmChecker.check(existingData); + String transferResult = transferOmChecker.check(existingData, userOrgCd); if (transferResult != null) { log.info("========== 미필 비교 로직 종료 (이첩): {} ==========", vhclno); return transferResult; diff --git a/src/main/java/go/kr/project/carInspectionPenalty/registrationOm/service/impl/om_checker/ComparisonOmChecker.java b/src/main/java/go/kr/project/carInspectionPenalty/registrationOm/service/impl/om_checker/ComparisonOmChecker.java index ed7edd4..b412e49 100644 --- a/src/main/java/go/kr/project/carInspectionPenalty/registrationOm/service/impl/om_checker/ComparisonOmChecker.java +++ b/src/main/java/go/kr/project/carInspectionPenalty/registrationOm/service/impl/om_checker/ComparisonOmChecker.java @@ -14,7 +14,8 @@ public interface ComparisonOmChecker { * 비교 로직 실행 * * @param existingData 과태료 대상 미필 데이터 (levyCrtrYmd 포함) + * @param userOrgCd 사용자 조직코드 * @return 처리상태코드 또는 null (미적용) */ - String check(CarFfnlgTrgtIncmpVO existingData); + String check(CarFfnlgTrgtIncmpVO existingData, String userOrgCd); } diff --git a/src/main/java/go/kr/project/carInspectionPenalty/registrationOm/service/impl/om_checker/OwnerTransferOmChecker.java b/src/main/java/go/kr/project/carInspectionPenalty/registrationOm/service/impl/om_checker/OwnerTransferOmChecker.java index afbcc8d..626dde6 100644 --- a/src/main/java/go/kr/project/carInspectionPenalty/registrationOm/service/impl/om_checker/OwnerTransferOmChecker.java +++ b/src/main/java/go/kr/project/carInspectionPenalty/registrationOm/service/impl/om_checker/OwnerTransferOmChecker.java @@ -52,7 +52,7 @@ public class OwnerTransferOmChecker extends AbstractComparisonOmChecker { } @Override - public String check(CarFfnlgTrgtIncmpVO existingData) { + public String check(CarFfnlgTrgtIncmpVO existingData, String userOrgCd) { String vhclno = existingData.getVhclno(); String levyCrtrYmd = existingData.getLevyCrtrYmd(); // 미필: 검사유효기간 종료일 + 146일 String inspVldPrd = existingData.getInspVldPrd(); // 검사유효기간 diff --git a/src/main/java/go/kr/project/carInspectionPenalty/registrationOm/service/impl/om_checker/ProductUseOmChecker.java b/src/main/java/go/kr/project/carInspectionPenalty/registrationOm/service/impl/om_checker/ProductUseOmChecker.java index dff0959..eda9896 100644 --- a/src/main/java/go/kr/project/carInspectionPenalty/registrationOm/service/impl/om_checker/ProductUseOmChecker.java +++ b/src/main/java/go/kr/project/carInspectionPenalty/registrationOm/service/impl/om_checker/ProductUseOmChecker.java @@ -53,7 +53,7 @@ public class ProductUseOmChecker extends AbstractComparisonOmChecker { } @Override - public String check(CarFfnlgTrgtIncmpVO existingData) { + public String check(CarFfnlgTrgtIncmpVO existingData, String userOrgCd) { String vhclno = existingData.getVhclno(); String levyCrtrYmd = existingData.getLevyCrtrYmd(); // 미필: 검사유효기간 종료일 + 146일 String inspVldPrd = existingData.getInspVldPrd(); // 검사유효기간 diff --git a/src/main/java/go/kr/project/carInspectionPenalty/registrationOm/service/impl/om_checker/TransferOmChecker.java b/src/main/java/go/kr/project/carInspectionPenalty/registrationOm/service/impl/om_checker/TransferOmChecker.java index 52e3113..a656767 100644 --- a/src/main/java/go/kr/project/carInspectionPenalty/registrationOm/service/impl/om_checker/TransferOmChecker.java +++ b/src/main/java/go/kr/project/carInspectionPenalty/registrationOm/service/impl/om_checker/TransferOmChecker.java @@ -3,7 +3,6 @@ package go.kr.project.carInspectionPenalty.registrationOm.service.impl.om_checke import egovframework.constant.TaskPrcsSttsConstants; import egovframework.exception.MessageException; import egovframework.util.DateUtil; -import egovframework.util.SessionUtil; import go.kr.project.api.model.request.NewBasicRequest; import go.kr.project.api.model.response.NewBasicResponse; import go.kr.project.api.service.ExternalVehicleApiService; @@ -12,7 +11,6 @@ import go.kr.project.api.service.VmisCarLedgerFrmbkLogService; import go.kr.project.carInspectionPenalty.registrationOm.mapper.CarFfnlgTrgtIncmpMapper; import go.kr.project.carInspectionPenalty.registrationOm.model.CarFfnlgTrgtIncmpVO; import go.kr.project.carInspectionPenalty.registrationOm.service.impl.ComparisonOmRemarkBuilder; -import go.kr.project.login.model.LoginUserVO; import lombok.extern.slf4j.Slf4j; import org.springframework.stereotype.Component; @@ -46,7 +44,7 @@ public class TransferOmChecker extends AbstractComparisonOmChecker { } @Override - public String check(CarFfnlgTrgtIncmpVO existingData) { + public String check(CarFfnlgTrgtIncmpVO existingData, String userOrgCd) { String vhclno = existingData.getVhclno(); try { @@ -150,16 +148,14 @@ public class TransferOmChecker extends AbstractComparisonOmChecker { return null; } - // 세션에서 사용자 정보 조회 - LoginUserVO userInfo = SessionUtil.getLoginUser(); - if (userInfo == null || userInfo.getOrgCd() == null) { + // 사용자 조직코드 유효성 검사 + if (userOrgCd == null) { log.info("[이첩-미필] 사용자 정보 없음"); return null; } // 법정동코드 앞 4자리 vs 사용자 조직코드 앞 4자리 비교 String legalDong4 = step1UsgsrhldStdgCd.substring(0, 4); - String userOrgCd = userInfo.getOrgCd(); String userOrg4 = userOrgCd.length() >= 4 ? userOrgCd.substring(0, 4) : userOrgCd; if (legalDong4.equals(userOrg4)) {