package cokr.xit.fims.levy.dao;
import java.util.List;
import org.egovframe.rte.psl.dataaccess.mapper.Mapper;
import cokr.xit.fims.levy.Levy;
import cokr.xit.fims.levy.LevyQuery;
import cokr.xit.foundation.component.AbstractMapper;
import cokr.xit.foundation.data.DataObject;
/** 부과 대장 정보 DAO
*
*
상세 설명:
*
*
* ============ 변경 이력 ============
* 2023-08-30 JoJH 최초 작성
* ================================
*
*/
@Mapper("levyMapper")
public interface LevyMapper extends AbstractMapper {
/**지정한 조건에 따라 감경부과 대상 목록을 조회하여 반환한다.
* @param req 부과 대장 조회 조건
* @return 부과 대장 목록
*/
List selectRdctLevyTrgtList(LevyQuery req);
/**지정한 조건에 따라 감경부과 대상 단속ID 목록을 조회하여 반환한다.
* @param req 부과 대장 조회 조건
* @return 단속 ID 목록
*/
List selectRdctLevyTrgtIds(LevyQuery req);
/**지정한 조건에 따라 부과 대장 목록을 조회하여 반환한다.
* @param req 부과 대장 조회 조건
* @return 부과 대장 목록
*/
List selectLevyList(LevyQuery req);
/**지정한 조건에 따라 부과 대장 객체들을 반환한다.
* @param req 부과 대장 조회 조건
* @return 부과 대장 객체 목록
*/
List selectLevys(LevyQuery req);
default Levy selectLevy(LevyQuery req) {
List levys = selectLevys(req);
return !levys.isEmpty() ? levys.get(0) : null;
}
/**지정한 부과 ID에 따라 부과 대장 객체를 반환한다.
* @param levyId 부과 ID
* @return 부과 대장 객체
*/
default DataObject selectLevyInfo(LevyQuery req) {
// 삭제 여부 확인
if (req.getDelYn() == null) {
req.setDelYn("N");
}
// 기본 정렬
if (req.getOrderBy() == null) {
req.setOrderBy("L.LEVY_ID DESC");
}
List levys = selectLevyList(req);
return !levys.isEmpty() ? levys.get(0) : null;
}
/**지정한 단속 ID에 따라 단속 대장 객체를 반환한다.
* @param crdnId 단속 ID
* @return 고지 번호
*/
String selectMaxLevyNo(LevyQuery req);
/**최근 2년내 지정한 조건의 부과 목록을 조회한다.
* @param req 조회 조건
* - vhrno - 차량번호
* - vltnId - 위반ID
* - rtpyrId - 납부자 ID
* - date - 지정일자
*
* @return 최근 2년내 지정한 조건의 부과 목록
*/
List selectPrevLevyList(LevyQuery req);
/**부과 대장 정보를 등록한다.
* @param params 파라미터
* - "levy" - 부과 대장
* - "currentUser" - 현재 접속한 사용자
*
* @return 저장된 정보수
*/
int insertLevy(Levy levy);
/**부과 대장 정보를 수정한다.
* @param params 파라미터
* - "levy" - 부과 대장
* - "currentUser" - 현재 접속한 사용자
*
* @return 저장된 정보수
*/
int updateLevy(Levy levy);
default int updateLevies(Iterable levies) {
int affected = 0;
for (Levy levy: levies)
affected += levy != null ? updateLevy(levy) : 0;
return affected;
}
/**부과 대장에 부과일자, 최초납기일자, 납기일자 정보를 수정한다.
* @param levy 부과 대장
* @return 저장 여부
* - 저장됐으면 true
* - 그렇지 않으면 false
*
*/
int updateRdctLevyYmd(Levy levy);
/**부과 대장에 전자납부번호, 가상계좌번호 정보를 수정한다.
* @param levy 부과 대장
* @return 저장 여부
* - 저장됐으면 true
* - 그렇지 않으면 false
*
*/
int updateEpaynoVrActnoLevy(Levy levy);
/**부과 대장에 부과 금액 정보를 감경 금액으로 수정한다.
* @param levy 부과 대장
* @return 저장된 정보수
*/
int updateLevyRdct(Levy levy);
/**부과 대장에 수납 금액 정보를 수정한다.
* @param levy 부과 대장
* @return 저장 여부
* - 저장됐으면 true
* - 그렇지 않으면 false
*
*/
int updateLevyRcvmt(Levy levy);
/**부과 대장에 감액 금액 정보를 수정한다.
* @param levy 부과 대장
* @return 저장 여부
* - 저장됐으면 true
* - 그렇지 않으면 false
*
*/
int updateLevyRdamt(Levy levy);
/**지정한 부과 대장을 삭제한다.
* @param params 파라미터
* - "levy" - 부과 대장
* - "currentUser" - 현재 접속한 사용자
*
* @return 저장된 정보수
*/
int deleteLevy(Levy levy);
/**지정한 단속 ID로 단속 대장 객체를 반환한다.
* @param crdnId 단속 ID
* @return 단속 대장 객체
*/
DataObject selectCrdn(String crdnId);
/**지정한 조건에 따라 부과 대장 객체들을 반환한다.
* @param req 부과 대장 조회 조건
* @return 부과 대장 객체 목록
*/
DataObject selectLevyAmt(LevyQuery req);
/**지정한 조건에 따라 고지 대상 목록을 조회하여 반환한다.
* @param req 부과 대장 조회 조건
* @return 고지 대상 목록
*/
List selectLevyForGoji(LevyQuery req);
}