감경부과 등록 수정.

main
jjh 12 months ago
parent 66e44dbe3c
commit 187fef2946

@ -46,6 +46,12 @@ public interface TaskInfoMapper extends AbstractMapper {
return !taskInfo.isEmpty() ? taskInfo.get(0) : null;
}
/** .
* @param req
* @return
*/
DataObject selectAdvntceYmdInfo(TaskInfoQuery req);
/** .
* @param params
* <ul><li>"taskInfo" - </li>

@ -37,6 +37,12 @@ public interface TaskInfoService {
*/
DataObject getTaskInfo(TaskInfoQuery req);
/** .
* @param sndngDtlId ID
* @return
*/
DataObject getAdvntceYmdInfo(TaskInfoQuery req);
/** .
* @param taskInfo
* @return

@ -54,6 +54,14 @@ public class TaskInfoBean extends AbstractComponent {
return taskInfoMapper.selectTaskInfo(req);
}
/** .
* @param req
* @return
*/
public DataObject getAdvntceYmdInfo(TaskInfoQuery req) {
return taskInfoMapper.selectAdvntceYmdInfo(req);
}
/** .
* @param taskInfo
* @return

@ -45,6 +45,11 @@ public class TaskInfoServiceBean extends AbstractServiceBean implements TaskInfo
return taskInfoBean.getTaskInfo(req);
}
@Override
public DataObject getAdvntceYmdInfo(TaskInfoQuery req) {
return taskInfoBean.getAdvntceYmdInfo(req);
}
@Override
public boolean create(TaskInfo taskInfo) {
return taskInfoBean.create(taskInfo);

@ -12,9 +12,12 @@ import org.springframework.web.servlet.ModelAndView;
import cokr.xit.base.code.CommonCode;
import cokr.xit.base.user.ManagedUser;
import cokr.xit.base.web.ApplicationController;
import cokr.xit.fims.cmmn.TaskInfoQuery;
import cokr.xit.fims.cmmn.service.TaskInfoService;
import cokr.xit.fims.levy.Levy;
import cokr.xit.fims.levy.LevyQuery;
import cokr.xit.fims.levy.service.LevyService;
import cokr.xit.foundation.data.DataObject;
/**
*
@ -32,9 +35,10 @@ public class Levy01Controller extends ApplicationController {
public class METHOD_URL {
public static final String
reductionLevyTargetMain = "/010/main.do" // 사전 감경 부과 대상 메인 화면
, getReductionLevyTargetList = "/010/list.do" // 사전 감경 부과 대상 대장 목록 조회
, createReductionLevyList = "/010/createReductionLevyList.do" // 사전 감경 부과 대장 등록
reductionLevyTargetMain = "/010/main.do" // 사전 감경부과 대상 메인 화면
, getReductionLevyTargetList = "/010/list.do" // 사전 감경부과 대상 대장 목록 조회
, getReductionLevyTargetInfo = "/020/info.do" // 사전 감경부과 대상 정보
, createReductionLevy = "/010/createRductLevy.do" // 사전 감경부과 대장 등록
;
}
@ -42,6 +46,10 @@ public class Levy01Controller extends ApplicationController {
@Resource(name = "levyService")
private LevyService levyService;
/** 업무 정보 서비스 */
@Resource(name = "taskInfoService")
private TaskInfoService taskInfoService;
/** (levy/levy01010-main) .
* @return
*/
@ -78,6 +86,25 @@ public class Levy01Controller extends ApplicationController {
return setCollectionInfo(new ModelAndView("jsonView"), result, "rductLevyTrgt");
}
public ModelAndView getReductionLevyTargetInfo(LevyQuery req) {
// 감경 부과일자
DataObject rductLevyYmdInfo = taskInfoService.getAdvntceYmdInfo(new TaskInfoQuery().setSggCd(req.getSggCd())
.setTaskSeCd(req.getTaskSeCd()));
boolean json = jsonResponse();
ModelAndView mav = new ModelAndView(json ? "jsonView" : "fims/levy/levy01020-info");
return mav.addObject("pageName", "levy01020")
.addObject("levyQuery", json ? req : toJson(req))
.addObject("rductLevyYmdInfo", json ? rductLevyYmdInfo : toJson(rductLevyYmdInfo)) //
;
}
/** .
* @param levy
* @return jsonView
@ -85,9 +112,10 @@ public class Levy01Controller extends ApplicationController {
* "saved": true, false
* }</code></pre>
*/
public ModelAndView createReductionLevyList(LevyQuery req) {
public ModelAndView createReductionLevy(Levy levy) {
boolean saved = false;
String retMessage = levyService.createRductLevyList(req);
// String retMessage = levyService.createRductLevyList(req);
String retMessage = "[S]";
if (retMessage.contains("[S]")) {
saved = true;

@ -9,7 +9,6 @@ import org.springframework.web.servlet.ModelAndView;
import cokr.xit.base.code.CommonCode;
import cokr.xit.base.user.ManagedUser;
import cokr.xit.base.user.service.UserService;
import cokr.xit.base.web.ApplicationController;
import cokr.xit.fims.cmmn.TaskInfoQuery;
import cokr.xit.fims.cmmn.service.TaskInfoService;
@ -86,10 +85,6 @@ public class Sndb01Controller extends ApplicationController {
@Resource(name = "sndngService")
private SndngService sndngService;
/** 사용자 정보 DAO */
@Resource(name="userService")
protected UserService userService;
/** 업무 정보 서비스 */
@Resource(name = "taskInfoService")
private TaskInfoService taskInfoService;
@ -294,7 +289,8 @@ public class Sndb01Controller extends ApplicationController {
List<DataObject> advntceTrgts = sndngService.getAdvntceTrgts(req);
// 사전통지 납기일자
DataObject taskInfo = taskInfoService.getTaskInfo(new TaskInfoQuery().setSggCd(req.getSggCd()).setTaskSeCd(req.getTaskSeCd()));
DataObject taskInfo = taskInfoService.getTaskInfo(new TaskInfoQuery().setSggCd(req.getSggCd())
.setTaskSeCd(req.getTaskSeCd()));
int advntceDaycnt = taskInfo.number("ADVNTCE_DAYCNT").intValue();
boolean json = jsonResponse();

@ -16,6 +16,7 @@ import cokr.xit.fims.excl.CrdnReReg;
import cokr.xit.fims.excl.LevyExclQuery;
import cokr.xit.fims.excl.LevyExcl;
import cokr.xit.fims.excl.OpnnSbmsn;
import cokr.xit.fims.levy.Levy;
import cokr.xit.fims.levy.LevyQuery;
import cokr.xit.fims.levy.Rduct;
import cokr.xit.fims.payer.Payer;
@ -508,9 +509,9 @@ public class BpvController {
}
@Override
@RequestMapping(name="전용차로과태료업무 사전(감경) 부과 대장 등록", value=METHOD_URL.createReductionLevyList)
public ModelAndView createReductionLevyList(LevyQuery req) {
return super.createReductionLevyList(req);
@RequestMapping(name="전용차로과태료업무 사전(감경) 부과 대장 등록", value=METHOD_URL.createReductionLevy)
public ModelAndView createReductionLevy(Levy levy) {
return super.createReductionLevy(levy);
}
}

@ -14,6 +14,7 @@ import cokr.xit.fims.excl.CrdnReReg;
import cokr.xit.fims.excl.LevyExclQuery;
import cokr.xit.fims.excl.LevyExcl;
import cokr.xit.fims.excl.OpnnSbmsn;
import cokr.xit.fims.levy.Levy;
import cokr.xit.fims.levy.LevyQuery;
import cokr.xit.fims.levy.Rduct;
import cokr.xit.fims.nxrp.NxrpMtchg;
@ -472,9 +473,15 @@ public class DpvController {
}
@Override
@RequestMapping(name="사전 감경부과 대장 등록", value=METHOD_URL.createReductionLevyList)
public ModelAndView createReductionLevyList(LevyQuery req) {
return super.createReductionLevyList(req);
@RequestMapping(name="사전 감경부과 정보 조회", value=METHOD_URL.getReductionLevyTargetInfo)
public ModelAndView getReductionLevyTargetInfo(LevyQuery req) {
return super.getReductionLevyTargetInfo(req);
}
@Override
@RequestMapping(name="사전 감경부과 대장 등록", value=METHOD_URL.createReductionLevy)
public ModelAndView createReductionLevy(Levy levy) {
return super.createReductionLevy(levy);
}
}

@ -15,6 +15,7 @@ import cokr.xit.fims.excl.CrdnReReg;
import cokr.xit.fims.excl.LevyExclQuery;
import cokr.xit.fims.excl.LevyExcl;
import cokr.xit.fims.excl.OpnnSbmsn;
import cokr.xit.fims.levy.Levy;
import cokr.xit.fims.levy.LevyQuery;
import cokr.xit.fims.levy.Rduct;
import cokr.xit.fims.payer.Payer;
@ -478,9 +479,9 @@ public class PvsController {
}
@Override
@RequestMapping(name="주정차과태료업무 사전(감경) 부과 대장 등록", value=METHOD_URL.createReductionLevyList)
public ModelAndView createReductionLevyList(LevyQuery req) {
return super.createReductionLevyList(req);
@RequestMapping(name="주정차과태료업무 사전(감경) 부과 대장 등록", value=METHOD_URL.createReductionLevy)
public ModelAndView createReductionLevy(Levy levy) {
return super.createReductionLevy(levy);
}
}

@ -26,102 +26,117 @@
</resultMap>
<sql id="select">
SELECT TI.SGG_CD <!-- 시군구 코드 -->
, TI.TASK_SE_CD <!-- 업무 구분 코드 -->
, TI.TASK_SE_NM <!-- 업무 구분 명 -->
, TI.ADVNTCE_DAYCNT <!-- 사전통지 일수 -->
, TI.ADVNTCE_RDUCT_RT <!-- 사전통지 감경 율 -->
, TI.WKSN_RDUCT_RT <!-- 사회적약자 감경 율 -->
, TI.FFNLG_ADTN_YMD <!-- 과태료 가산 일자 -->
, TI.FFNLG_ADTN_RT <!-- 과태료 가산 율 -->
, TI.FFNLG_INADTN_RT <!-- 과태료 중가산 율 -->
, TI.FFNLG_INADTN_MXMM_CNT <!-- 과태료 중가산 최대 수 -->
, TI.USE_YN <!-- 사용 여부 -->
, TI.REG_DT <!-- 등록 일시 -->
, TI.RGTR <!-- 등록자 -->
, TI.MDFCN_DT <!-- 수정 일시 -->
, TI.MDFR <!-- 수정자 -->
SELECT TI.SGG_CD /* 시군구 코드 */
, TI.TASK_SE_CD /* 업무 구분 코드 */
, TI.TASK_SE_NM /* 업무 구분 명 */
, TI.ADVNTCE_DAYCNT /* 사전통지 일수 */
, TI.ADVNTCE_RDUCT_RT /* 사전통지 감경 율 */
, TI.WKSN_RDUCT_RT /* 사회적약자 감경 율 */
, TI.FFNLG_ADTN_YMD /* 과태료 가산 일자 */
, TI.FFNLG_ADTN_RT /* 과태료 가산 율 */
, TI.FFNLG_INADTN_RT /* 과태료 중가산 율 */
, TI.FFNLG_INADTN_MXMM_CNT /* 과태료 중가산 최대 수 */
, TI.USE_YN /* 사용 여부 */
, TI.REG_DT /* 등록 일시 */
, TI.RGTR /* 등록자 */
, TI.MDFCN_DT /* 수정 일시 */
, TI.MDFR /* 수정자 */
FROM TB_TASK_INFO TI
</sql>
<select id="selectTaskInfoList" parameterType="map" resultType="dataobject">/* 업무 정보 목록 조회(taskInfoMapper.selectTaskInfoList) */
<include refid="utility.paging-prefix" />
<include refid="select" />
WHERE TI.SGG_CD = #{sggCd}
AND TI.TASK_SE_CD = #{taskSeCd}
WHERE TI.SGG_CD = #{sggCd}
AND TI.TASK_SE_CD = #{taskSeCd}
<include refid="utility.orderBy" />
<include refid="utility.paging-suffix" />
</select>
<select id="selectTaskInfos" parameterType="map" resultType="dataobject">/* 업무 정보 객체 가져오기(taskInfoMapper.selectTaskInfos) */
<include refid="select" />
WHERE TI.SGG_CD = #{sggCd}
AND TI.TASK_SE_CD = #{taskSeCd}
WHERE TI.SGG_CD = #{sggCd}
AND TI.TASK_SE_CD = #{taskSeCd}
<include refid="utility.orderBy" />
</select>
<select id="selectAdvntceYmdInfo" parameterType="map" resultType="dataobject">/* 사전통지 정보 객체 가져오기(taskInfoMapper.selectTaskInfos) */
SELECT SGG_CD /* 시군구 코드 */
, TASK_SE_CD /* 업무 구분 코드 */
, ADVNTCE_DAYCNT /* 사전통지 일수 */
, ADVNTCE_RDUCT_RT /* 사전통지 감경 율 */
, (CONCAT(ADVNTCE_RDUCT_RT, '%')) AS RDUCT_RT /* 감경 율 */
, DATE_FORMAT(CURRENT_DATE, '%Y') AS FYR /* 회계 연도 */
, DATE_FORMAT(CURRENT_DATE, '%Y%m%d') AS LEVY_YMD /* 부과 일자 */
, DATE_FORMAT(DATE_ADD(CURRENT_DATE, INTERVAL ADVNTCE_DAYCNT DAY), '%Y%m%d') AS DUDT_YMD /* 납기 일자 */
FROM TB_TASK_INFO
WHERE SGG_CD = #{sggCd}
AND TASK_SE_CD = #{taskSeCd}
<include refid="utility.orderBy" />
</select>
<insert id="insertTaskInfo" parameterType="map">/* 업무 정보 등록(taskInfoMapper.insertTaskInfo) */
INSERT
INTO TB_TASK_INFO (
SGG_CD <!-- 시군구 코드 -->
, TASK_SE_CD <!-- 업무 구분 코드 -->
, TASK_SE_NM <!-- 업무 구분 명 -->
, ADVNTCE_DAYCNT <!-- 사전통지 일수 -->
, ADVNTCE_RDUCT_RT <!-- 사전통지 감경 율 -->
, WKSN_RDUCT_RT <!-- 사회적약자 감경 율 -->
, FFNLG_ADTN_YMD <!-- 과태료 가산 일자 -->
, FFNLG_ADTN_RT <!-- 과태료 가산 율 -->
, FFNLG_INADTN_RT <!-- 과태료 중가산 율 -->
, FFNLG_INADTN_MXMM_CNT <!-- 과태료 중가산 최대 수 -->
, USE_YN <!-- 사용 여부 -->
, REG_DT <!-- 등록 일시 -->
, RGTR <!-- 등록자 -->
, MDFCN_DT <!-- 수정 일시 -->
, MDFR <!-- 수정자 -->
SGG_CD /* 시군구 코드 */
, TASK_SE_CD /* 업무 구분 코드 */
, TASK_SE_NM /* 업무 구분 명 */
, ADVNTCE_DAYCNT /* 사전통지 일수 */
, ADVNTCE_RDUCT_RT /* 사전통지 감경 율 */
, WKSN_RDUCT_RT /* 사회적약자 감경 율 */
, FFNLG_ADTN_YMD /* 과태료 가산 일자 */
, FFNLG_ADTN_RT /* 과태료 가산 율 */
, FFNLG_INADTN_RT /* 과태료 중가산 율 */
, FFNLG_INADTN_MXMM_CNT /* 과태료 중가산 최대 수 */
, USE_YN /* 사용 여부 */
, REG_DT /* 등록 일시 */
, RGTR /* 등록자 */
, MDFCN_DT /* 수정 일시 */
, MDFR /* 수정자 */
)
VALUES (
#{taskInfo.sggCd} <!-- 시군구 코드 -->
, #{taskInfo.taskSeCd} <!-- 업무 구분 코드 -->
, #{taskInfo.taskSeNm} <!-- 업무 구분 명 -->
, #{taskInfo.advntceDaycnt} <!-- 사전통지 일수 -->
, #{taskInfo.advntceRductRt} <!-- 사전통지 감경 율 -->
, #{taskInfo.wksnRductRt} <!-- 사회적약자 감경 율 -->
, #{taskInfo.ffnlgAdtnYmd} <!-- 과태료 가산 일자 -->
, #{taskInfo.ffnlgAdtnRt} <!-- 과태료 가산 율 -->
, #{taskInfo.ffnlgInadtnRt} <!-- 과태료 중가산 율 -->
, #{taskInfo.ffnlgInadtnMxmmCnt} <!-- 과태료 중가산 최대 수 -->
, #{taskInfo.useYN} <!-- 사용 여부 -->
, <include refid="utility.now" /> <!-- 등록 일시 -->
, #{currentUser.id} <!-- 등록자 -->
, <include refid="utility.now" /> <!-- 수정 일시 -->
, #{currentUser.id} <!-- 수정자 -->
#{taskInfo.sggCd} /* 시군구 코드 */
, #{taskInfo.taskSeCd} /* 업무 구분 코드 */
, #{taskInfo.taskSeNm} /* 업무 구분 명 */
, #{taskInfo.advntceDaycnt} /* 사전통지 일수 */
, #{taskInfo.advntceRductRt} /* 사전통지 감경 율 */
, #{taskInfo.wksnRductRt} /* 사회적약자 감경 율 */
, #{taskInfo.ffnlgAdtnYmd} /* 과태료 가산 일자 */
, #{taskInfo.ffnlgAdtnRt} /* 과태료 가산 율 */
, #{taskInfo.ffnlgInadtnRt} /* 과태료 중가산 율 */
, #{taskInfo.ffnlgInadtnMxmmCnt} /* 과태료 중가산 최대 수 */
, 'Y' /* 사용 여부 */
, <include refid="utility.now" /> /* 등록 일시 */
, #{currentUser.id} /* 등록자 */
, <include refid="utility.now" /> /* 수정 일시 */
, #{currentUser.id} /* 수정자 */
)
</insert>
<update id="updateTaskInfo" parameterType="map">/* 업무 정보 수정(taskInfoMapper.updateTaskInfo) */
UPDATE TB_TASK_INFO
SET TASK_SE_NM = #{taskInfo.taskSeNm} <!-- 업무 구분 명 -->
, ADVNTCE_DAYCNT = #{taskInfo.advntceDaycnt} <!-- 사전통지 일수 -->
, ADVNTCE_RDUCT_RT = #{taskInfo.advntceRductRt} <!-- 사전통지 감경 율 -->
, WKSN_RDUCT_RT = #{taskInfo.wksnRductRt} <!-- 사회적약자 감경 율 -->
, FFNLG_ADTN_YMD = #{taskInfo.ffnlgAdtnYmd} <!-- 과태료 가산 일자 -->
, FFNLG_ADTN_RT = #{taskInfo.ffnlgAdtnRt} <!-- 과태료 가산 율 -->
, FFNLG_INADTN_RT = #{taskInfo.ffnlgInadtnRt} <!-- 과태료 중가산 율 -->
, FFNLG_INADTN_MXMM_CNT = #{taskInfo.ffnlgInadtnMxmmCnt} <!-- 과태료 중가산 최대 수 -->
, USE_YN = #{taskInfo.useYN} <!-- 사용 여부 -->
, MDFCN_DT = <include refid="utility.now" /> <!-- 수정 일시 -->
, MDFR = #{currentUser.id} <!-- 수정자 -->
WHERE SGG_CD = #{taskInfo.sggCd}
AND TASK_SE_CD = #{taskInfo.taskSeCd}
SET TASK_SE_NM = #{taskInfo.taskSeNm} /* 업무 구분 명 */
, ADVNTCE_DAYCNT = #{taskInfo.advntceDaycnt} /* 사전통지 일수 */
, ADVNTCE_RDUCT_RT = #{taskInfo.advntceRductRt} /* 사전통지 감경 율 */
, WKSN_RDUCT_RT = #{taskInfo.wksnRductRt} /* 사회적약자 감경 율 */
, FFNLG_ADTN_YMD = #{taskInfo.ffnlgAdtnYmd} /* 과태료 가산 일자 */
, FFNLG_ADTN_RT = #{taskInfo.ffnlgAdtnRt} /* 과태료 가산 율 */
, FFNLG_INADTN_RT = #{taskInfo.ffnlgInadtnRt} /* 과태료 중가산 율 */
, FFNLG_INADTN_MXMM_CNT = #{taskInfo.ffnlgInadtnMxmmCnt} /* 과태료 중가산 최대 수 */
, USE_YN = #{taskInfo.useYN} /* 사용 여부 */
, MDFCN_DT = <include refid="utility.now" /> /* 수정 일시 */
, MDFR = #{currentUser.id} /* 수정자 */
WHERE SGG_CD = #{taskInfo.sggCd}
AND TASK_SE_CD = #{taskInfo.taskSeCd}
</update>
<update id="deleteTaskInfo" parameterType="map">/* 업무 정보 삭제(taskInfoMapper.deleteTaskInfo) */
UPDATE TB_TASK_INFO
SET USE_YN = 'N'
, MDFCN_DT =<include refid="utility.now" />
, MDFR = #{currentUser.id}
WHERE SGG_CD = #{taskInfo.sggCd}
AND TASK_SE_CD = #{taskInfo.taskSeCd}
SET USE_YN = 'N'
, MDFCN_DT = <include refid="utility.now" />
, MDFR = #{currentUser.id}
WHERE SGG_CD = #{taskInfo.sggCd}
AND TASK_SE_CD = #{taskInfo.taskSeCd}
</update>
</mapper>

@ -94,93 +94,94 @@
<select id="selectRductLevyTrgtList" parameterType="map" resultType="dataobject">/* 감경부과 대상 목록 조회(levyMapper.selectRductLevyTrgtList) */
<include refid="utility.paging-prefix" />
SELECT C.CRDN_ID <!-- 단속 ID -->
, C.SGG_CD <!-- 시군구 코드 -->
, C.TASK_SE_CD <!-- 업무 구분 코드 -->
, C.CRDN_INPT_SE_CD <!-- 단속 입력 구분 코드 -->
SELECT C.CRDN_ID <!-- 단속 ID -->
, C.SGG_CD <!-- 시군구 코드 -->
, C.TASK_SE_CD <!-- 업무 구분 코드 -->
, C.CRDN_INPT_SE_CD <!-- 단속 입력 구분 코드 -->
, C.CRDN_YMD <!-- 단속 일자 -->
, C.CRDN_TM <!-- 단속 시각 -->
, C.VHRNO <!-- 차량번호 -->
, C.CRDN_STDG_NM <!-- 단속 법정동 명 -->
, C.CRDN_ROAD_NM <!-- 단속 도로 명 -->
, C.CRDN_PLC <!-- 단속 장소 -->
, C.FFNLG_CRDN_AMT <!-- 과태료 단속 금액 -->
, C.FFNLG_AMT <!-- 과태료 금액 -->
, C.ADVNTCE_AMT <!-- 사전통지 금액 -->
, C.CRDN_STTS_CD <!-- 단속 상태 코드 -->
, C.CRDN_STTS_CHG_DT <!-- 단속 상태 변경 일시 -->
, C.REG_DT <!-- 등록 일시 -->
, C.RGTR <!-- 등록자 -->
, C.MDFCN_DT <!-- 수정 일시 -->
, C.MDFR <!-- 수정자 -->
, (SELECT GET_CODE_NM('FIM054', C.TASK_SE_CD) FROM DUAL) AS TASK_SE_NM <!-- 업무 구분 명 -->
, (SELECT GET_CODE_NM('FIM003', C.CRDN_INPT_SE_CD) FROM DUAL) AS CRDN_INPT_SE_NM <!-- 단속 입력 구분 명 -->
, C.CRDN_YMD <!-- 단속 일자 -->
, C.CRDN_TM <!-- 단속 시각 -->
, (CONCAT(C.CRDN_YMD, C.CRDN_TM)) AS CRDN_YMD_TM <!-- 단속 일시 -->
, (SELECT GET_MASK_DATETIME(C.CRDN_YMD, '-', C.CRDN_TM, ':') FROM DUAL) AS CRDN_YMD_TM_MASK <!-- 단속 일시 마스크 -->
, C.VHRNO <!-- 차량번호 -->
, C.CRDN_STDG_NM <!-- 단속 법정동 명 -->
, C.CRDN_ROAD_NM <!-- 단속 도로 명 -->
, C.CRDN_PLC <!-- 단속 장소 -->
, C.FFNLG_CRDN_AMT <!-- 과태료 단속 금액 -->
, C.FFNLG_AMT <!-- 과태료 금액 -->
, C.ADVNTCE_AMT <!-- 사전통지 금액 -->
, C.CRDN_STTS_CD <!-- 단속 상태 코드 -->
, (SELECT GET_CODE_NM('FIM010', C.CRDN_STTS_CD) FROM DUAL) AS CRDN_STTS_NM <!-- 단속 상태 명 -->
, C.CRDN_STTS_CHG_DT <!-- 단속 상태 변경 일시 -->
, C.REG_DT <!-- 등록 일시 -->
, C.RGTR <!-- 등록자 -->
, (SELECT USER_NM FROM TB_USER X WHERE X.USER_ID = C.RGTR) AS RGTR_NM <!-- 등록자 명 -->
, C.MDFCN_DT <!-- 수정 일시 -->
, C.MDFR <!-- 수정자 -->
, (SELECT USER_NM FROM TB_USER X WHERE X.USER_ID = C.MDFR) AS MDFR_NM <!-- 수정자 명 -->
, VI.VLTN_ID <!-- 위반 ID -->
, VI.VLTN_CD <!-- 위반 코드 -->
, VI.VLTN_ARTCL <!-- 위반 항목 -->
, CC.CVLCPT_LINK_ID <!-- 민원 연계 ID -->
, CC.CVLCPT_RCPT_YMD <!-- 민원 접수 일자 -->
, CC.CVLCPT_APLY_NO <!-- 민원 신청 번호 -->
, CC.CVLCPT_RCPT_NO <!-- 민원 접수 번호 -->
, CC.CVLCPT_PRCS_SUMRY <!-- 민원 처리 요약 -->
, CC.CVLCPT_PRCS_CD <!-- 민원 처리 코드 -->
, VI.VLTN_ID <!-- 위반 ID -->
, VI.VLTN_CD <!-- 위반 코드 -->
, VI.VLTN_ARTCL <!-- 위반 항목 -->
, CC.CVLCPT_LINK_ID <!-- 민원 연계 ID -->
, CC.CVLCPT_RCPT_YMD <!-- 민원 접수 일자 -->
, CC.CVLCPT_APLY_NO <!-- 민원 신청 번호 -->
, CC.CVLCPT_RCPT_NO <!-- 민원 접수 번호 -->
, CC.CVLCPT_PRCS_SUMRY <!-- 민원 처리 요약 -->
, CC.CVLCPT_PRCS_CD <!-- 민원 처리 코드 -->
, CC.CVLCPT_PRCS_CMPTN_DT <!-- 민원 처리 완료 일시 -->
, CC.CVLCPT_TRSM_CD <!-- 민원 전송 코드 -->
, CC.CVLCPT_TRSM_DT <!-- 민원 전송 일시 -->
, (SELECT GET_CODE_NM('FIM017', CC.CVLCPT_PRCS_CD) FROM DUAL) AS CVLCPT_PRCS_NM <!-- 민원 처리 명 -->
, CC.CVLCPT_PRCS_CMPTN_DT <!-- 민원 처리 완료 일시 -->
, CC.CVLCPT_TRSM_CD <!-- 민원 전송 코드 -->
, (SELECT GET_CODE_NM('FIM018', CC.CVLCPT_TRSM_CD) FROM DUAL) AS CVLCPT_TRSM_NM <!-- 민원 전송 명 -->
, CC.CVLCPT_TRSM_DT <!-- 민원 전송 일시 -->
, P.RTPYR_ID <!-- 납부자 ID -->
, P.RTPYR_NO <!-- 납부자 번호 -->
, P.RTPYR_NM <!-- 납부자 명 -->
, P.RTPYR_BRDT <!-- 납부자 생년월일 -->
, P.ZIP <!-- 우편번호 -->
, P.ADDR <!-- 주소 -->
, P.DTL_ADDR <!-- 상세 주소 -->
, L.LEVY_ID <!-- 부과 ID -->
, P.RTPYR_ID <!-- 납부자 ID -->
, P.RTPYR_NO <!-- 납부자 번호 -->
, P.RTPYR_NM <!-- 납부자 명 -->
, P.RTPYR_BRDT <!-- 납부자 생년월일 -->
, P.ZIP <!-- 우편번호 -->
, P.ADDR <!-- 주소 -->
, P.DTL_ADDR <!-- 상세 주소 -->
, L.LEVY_ID <!-- 부과 ID -->
FROM TB_CRDN C
INNER JOIN TB_VLTN_INFO VI ON (C.VLTN_ID = VI.VLTN_ID)
LEFT OUTER JOIN TB_CRDN_CVLCPT CC ON (C.LINK_ID = CC.CVLCPT_LINK_ID AND C.CVLCPT_LINK_YN = 'Y' AND CC.DEL_YN = 'N')
LEFT OUTER JOIN TB_PAYER P ON (C.RTPYR_ID = P.RTPYR_ID)
LEFT OUTER JOIN TB_LEVY L ON (C.CRDN_ID = L.CRDN_ID AND L.DEL_YN = 'N')
WHERE C.SGG_CD = #{sggCd} <!-- 시군구 코드 -->
AND C.CRDN_STTS_CD BETWEEN '21' AND '31' <!-- 단속 상태 코드 -->
AND (CC.CVLCPT_PRCS_CD IS NULL OR CC.CVLCPT_PRCS_CD <![CDATA[ <> ]]> '00') <!-- 민원 처리 코드 -->
AND L.LEVY_ID IS NULL <!-- 부과 ID -->
AND C.DEL_YN = 'N' <!-- 삭제 여부 -->
WHERE C.SGG_CD = #{sggCd} <!-- 시군구 코드 -->
AND C.CRDN_STTS_CD BETWEEN '21' AND '31' <!-- 단속 상태 코드 -->
AND (CC.CVLCPT_PRCS_CD IS NULL OR CC.CVLCPT_PRCS_CD <![CDATA[ <> ]]> '00') <!-- 민원 처리 코드 -->
AND L.LEVY_ID IS NULL <!-- 부과 ID -->
AND C.DEL_YN = 'N' <!-- 삭제 여부 -->
<if test="taskSeCd != null">
AND C.TASK_SE_CD = #{taskSeCd} <!-- 업무 구분 코드 -->
AND C.TASK_SE_CD = #{taskSeCd} <!-- 업무 구분 코드 -->
</if>
<if test="schCrdnYmdFrom != null">
AND C.CRDN_YMD <![CDATA[ >= ]]> #{schCrdnYmdFrom} <!-- 단속 일자 시작 -->
AND C.CRDN_YMD <![CDATA[ >= ]]> #{schCrdnYmdFrom} <!-- 단속 일자 시작 -->
</if>
<if test="schCrdnYmdTo != null">
AND C.CRDN_YMD <![CDATA[ <= ]]> #{schCrdnYmdTo} <!-- 단속 일자 종료 -->
AND C.CRDN_YMD <![CDATA[ <= ]]> #{schCrdnYmdTo} <!-- 단속 일자 종료 -->
</if>
<if test="schVhrno != null">
AND C.VHRNO = #{schVhrno} <!-- 차량번호 -->
AND C.VHRNO = #{schVhrno} <!-- 차량번호 -->
</if>
<if test="schRtpyrNm != null">
AND P.RTPYR_NM = #{schRtpyrNm} <!-- 납부자 명 -->
AND P.RTPYR_NM = #{schRtpyrNm} <!-- 납부자 명 -->
</if>
<choose>
<when test="schDetailCrdnRegDtOpt == 'regDt'">
<if test="schDetailCrdnRegDtFrom != null">
AND SUBSTR(C.REG_DT,1,8) <![CDATA[ >= ]]> #{schDetailCrdnRegDtFrom} <!-- 등록 일자 시작 -->
AND SUBSTR(C.REG_DT,1,8) <![CDATA[ >= ]]> #{schDetailCrdnRegDtFrom} <!-- 등록 일자 시작 -->
</if>
<if test="schDetailCrdnRegDtTo != null">
AND SUBSTR(C.REG_DT,1,8) <![CDATA[ <= ]]> #{schDetailCrdnRegDtTo} <!-- 등록 일자 종료 -->
AND SUBSTR(C.REG_DT,1,8) <![CDATA[ <= ]]> #{schDetailCrdnRegDtTo} <!-- 등록 일자 종료 -->
</if>
</when>
<when test="schDetailCrdnRegDtOpt == 'mdfcnDt'">
<if test="schDetailCrdnRegDtFrom != null">
AND SUBSTR(C.MDFCN_DT,1,8) <![CDATA[ >= ]]> #{schDetailCrdnRegDtFrom} <!-- 수정 일자 시작 -->
AND SUBSTR(C.MDFCN_DT,1,8) <![CDATA[ >= ]]> #{schDetailCrdnRegDtFrom} <!-- 수정 일자 시작 -->
</if>
<if test="schDetailCrdnRegDtTo != null">
AND SUBSTR(C.MDFCN_DT,1,8) <![CDATA[ <= ]]> #{schDetailCrdnRegDtTo} <!-- 수정 일자 종료 -->
AND SUBSTR(C.MDFCN_DT,1,8) <![CDATA[ <= ]]> #{schDetailCrdnRegDtTo} <!-- 수정 일자 종료 -->
</if>
</when>
<otherwise>
@ -189,12 +190,12 @@
<choose>
<when test="schDetailCrdnRgtrOpt == 'rgtr'">
<if test="schDetailCrdnRgtrCd != null">
AND C.RGTR = #{schDetailCrdnRgtrCd} <!-- 등록자 코드 -->
AND C.RGTR = #{schDetailCrdnRgtrCd} <!-- 등록자 코드 -->
</if>
</when>
<when test="schDetailCrdnRgtrOpt == 'mdfr'">
<if test="schDetailCrdnRgtrCd != null">
AND C.MDFR = #{schDetailCrdnRgtrCd} <!-- 수정자 코드 -->
AND C.MDFR = #{schDetailCrdnRgtrCd} <!-- 수정자 코드 -->
</if>
</when>
<otherwise>
@ -230,93 +231,93 @@
</select>
<sql id="select">
SELECT LEVY_ID <!-- 부과 ID -->
, SGG_CD <!-- 시군구 코드 -->
, CRDN_ID <!-- 단속 ID -->
, RTPYR_ID <!-- 납부자 ID -->
, INST_CD <!-- 기관 코드 -->
, DEPT_CD <!-- 부서 코드 -->
, FYR <!-- 회계 연도 -->
, ACNTG_SE_CD <!-- 회계 구분 코드 -->
, TXITM_CD <!-- 세목 코드 -->
, OPER_ITEM_CD <!-- 운영 항목 코드 -->
, SPCL_BIZ_CD <!-- 특별회계 사업 코드 -->
, LEVY_NO <!-- 부과 번호 -->
, INSPY_SN <!-- 분납 순번 -->
, LEVY_SE_CD <!-- 부과 구분 코드 -->
, UNTY_SE_CD <!-- 통합 구분 코드 -->
, INSPY_SE_NM <!-- 분납 구분 명 -->
, RDUCT_SE_NM <!-- 감경 구분 명 -->
, LEVY_RTRCN_SE_NM <!-- 부과 취소 구분 명 -->
, LEVY_STTS_NM <!-- 부과 상태 명 -->
, RCVMT_SE_NM <!-- 수납 구분 명 -->
, SZR_SE_NM <!-- 압류 구분 명 -->
, DFCT_SE_NM <!-- 결손 구분 명 -->
, LEVY_YMD <!-- 부과 일자 -->
, FRST_DUDT_YMD <!-- 최초 납기 일자 -->
, DUDT_YMD <!-- 납기 일자 -->
, DUDT_AFTR_YMD <!-- 납기 후 일자 -->
, FFNLG_AMT <!-- 과태료 금액 -->
, LEVY_PCPTAX <!-- 부과 본세 -->
, LEVY_ADAMT <!-- 부과 가산금 -->
, INSPY_INT <!-- 분납 이자 -->
, RCVMT_PCPTAX <!-- 수납 본세 -->
, RCVMT_ADAMT <!-- 수납 가산금 -->
, RDCAMT_PCPTAX <!-- 감액 본세 -->
, RDCAMT_ADAMT <!-- 감액 가산금 -->
, SUM_AMT <!-- 합계 금액 -->
, DUDT_AFTR_AMT <!-- 납기 후 금액 -->
, TXTN_THING <!-- 과세 물건 -->
, MNG_ARTCL1 <!-- 관리 항목 1 -->
, MNG_ARTCL2 <!-- 관리 항목 2 -->
, MNG_ARTCL3 <!-- 관리 항목 3 -->
, MNG_ARTCL4 <!-- 관리 항목 4 -->
, MNG_ARTCL5 <!-- 관리 항목 5 -->
, MNG_ARTCL6 <!-- 관리 항목 6 -->
, RCVMT_YMD <!-- 수납 일자 -->
, NPMNT_RSN_CD <!-- 체납 사유 코드 -->
, (SELECT GET_CODE_NM('FIM043', L.NPMNT_RSN_CD) FROM DUAL) AS NPMNT_RSN_NM <!-- 체납 사유 명 -->
, SZR_THING <!-- 압류 물건 -->
, SZR_YMD <!-- 압류 일자 -->
, SZR_RMV_YMD <!-- 압류 해제 일자 -->
, SZR_RMV_RSN <!-- 압류 해제 사유 -->
, ETC_CN <!-- 기타 내용 -->
, EPAYNO <!-- 전자납부번호 -->
, BANK_NM <!-- 은행 명 -->
, VR_ACTNO <!-- 가상 계좌번호 -->
, BANK_NM2 <!-- 은행 명 2 -->
, VR_ACTNO2 <!-- 가상 계좌번호 2 -->
, BANK_NM3 <!-- 은행 명 3 -->
, VR_ACTNO3 <!-- 가상 계좌번호 3 -->
, BANK_NM4 <!-- 은행 명 4 -->
, VR_ACTNO4 <!-- 가상 계좌번호 4 -->
, BANK_NM5 <!-- 은행 명 5 -->
, VR_ACTNO5 <!-- 가상 계좌번호 5 -->
, BANK_NM6 <!-- 은행 명 6 -->
, VR_ACTNO6 <!-- 가상 계좌번호 6 -->
, BANK_NM7 <!-- 은행 명 7 -->
, VR_ACTNO7 <!-- 가상 계좌번호 7 -->
, BANK_NM8 <!-- 은행 명 8 -->
, VR_ACTNO8 <!-- 가상 계좌번호 8 -->
, BANK_NM9 <!-- 은행 명 9 -->
, VR_ACTNO9 <!-- 가상 계좌번호 9 -->
, BANK_NM10 <!-- 은행 명 10 -->
, VR_ACTNO10 <!-- 가상 계좌번호 10 -->
, BANK_NM11 <!-- 은행 명 11 -->
, VR_ACTNO11 <!-- 가상 계좌번호 11 -->
, NXRP_LEVY_KEY <!-- 세외수입 부과 키 -->
, DEL_YN <!-- 삭제 여부 -->
, REG_DT <!-- 등록 일시 -->
, RGTR <!-- 등록자 -->
, (SELECT USER_NM FROM TB_USER X WHERE X.USER_ID = L.RGTR) AS RGTR_NM <!-- 등록자 명 -->
, MDFCN_DT <!-- 수정 일시 -->
, MDFR <!-- 수정-->
, (SELECT USER_NM FROM TB_USER X WHERE X.USER_ID = L.MDFR) AS MDFR_NM <!-- 수정자 명 -->
, DEL_DT <!-- 삭제 일시 -->
, DLTR <!-- 삭제자 -->
, (SELECT USER_NM FROM TB_USER X WHERE X.USER_ID = L.DLTR) AS DLTR_NM <!-- 삭제자 명 -->
, DEL_RSN <!-- 삭제 사유 -->
FROM TB_LEVY L
SELECT LEVY_ID <!-- 부과 ID -->
, SGG_CD <!-- 시군구 코드 -->
, CRDN_ID <!-- 단속 ID -->
, RTPYR_ID <!-- 납부자 ID -->
, INST_CD <!-- 기관 코드 -->
, DEPT_CD <!-- 부서 코드 -->
, FYR <!-- 회계 연도 -->
, ACNTG_SE_CD <!-- 회계 구분 코드 -->
, TXITM_CD <!-- 세목 코드 -->
, OPER_ITEM_CD <!-- 운영 항목 코드 -->
, SPCL_BIZ_CD <!-- 특별회계 사업 코드 -->
, LEVY_NO <!-- 부과 번호 -->
, INSPY_SN <!-- 분납 순번 -->
, LEVY_SE_CD <!-- 부과 구분 코드 -->
, UNTY_SE_CD <!-- 통합 구분 코드 -->
, INSPY_SE_NM <!-- 분납 구분 명 -->
, RDUCT_SE_NM <!-- 감경 구분 명 -->
, LEVY_RTRCN_SE_NM <!-- 부과 취소 구분 명 -->
, LEVY_STTS_NM <!-- 부과 상태 명 -->
, RCVMT_SE_NM <!-- 수납 구분 명 -->
, SZR_SE_NM <!-- 압류 구분 명 -->
, DFCT_SE_NM <!-- 결손 구분 명 -->
, LEVY_YMD <!-- 부과 일자 -->
, FRST_DUDT_YMD <!-- 최초 납기 일자 -->
, DUDT_YMD <!-- 납기 일자 -->
, DUDT_AFTR_YMD <!-- 납기 후 일자 -->
, FFNLG_AMT <!-- 과태료 금액 -->
, LEVY_PCPTAX <!-- 부과 본세 -->
, LEVY_ADAMT <!-- 부과 가산금 -->
, INSPY_INT <!-- 분납 이자 -->
, RCVMT_PCPTAX <!-- 수납 본세 -->
, RCVMT_ADAMT <!-- 수납 가산금 -->
, RDCAMT_PCPTAX <!-- 감액 본세 -->
, RDCAMT_ADAMT <!-- 감액 가산금 -->
, SUM_AMT <!-- 합계 금액 -->
, DUDT_AFTR_AMT <!-- 납기 후 금액 -->
, TXTN_THING <!-- 과세 물건 -->
, MNG_ARTCL1 <!-- 관리 항목 1 -->
, MNG_ARTCL2 <!-- 관리 항목 2 -->
, MNG_ARTCL3 <!-- 관리 항목 3 -->
, MNG_ARTCL4 <!-- 관리 항목 4 -->
, MNG_ARTCL5 <!-- 관리 항목 5 -->
, MNG_ARTCL6 <!-- 관리 항목 6 -->
, RCVMT_YMD <!-- 수납 일자 -->
, NPMNT_RSN_CD <!-- 체납 사유 코드 -->
, SZR_THING <!-- 압류 물건 -->
, SZR_YMD <!-- 압류 일자 -->
, SZR_RMV_YMD <!-- 압류 해제 일자 -->
, SZR_RMV_RSN <!-- 압류 해제 사유 -->
, ETC_CN <!-- 기타 내용 -->
, EPAYNO <!-- 전자납부번호 -->
, BANK_NM <!-- 은행 명 -->
, VR_ACTNO <!-- 가상 계좌번호 -->
, BANK_NM2 <!-- 은행 명 2 -->
, VR_ACTNO2 <!-- 가상 계좌번호 2 -->
, BANK_NM3 <!-- 은행 명 3 -->
, VR_ACTNO3 <!-- 가상 계좌번호 3 -->
, BANK_NM4 <!-- 은행 명 4 -->
, VR_ACTNO4 <!-- 가상 계좌번호 4 -->
, BANK_NM5 <!-- 은행 명 5 -->
, VR_ACTNO5 <!-- 가상 계좌번호 5 -->
, BANK_NM6 <!-- 은행 명 6 -->
, VR_ACTNO6 <!-- 가상 계좌번호 6 -->
, BANK_NM7 <!-- 은행 명 7 -->
, VR_ACTNO7 <!-- 가상 계좌번호 7 -->
, BANK_NM8 <!-- 은행 명 8 -->
, VR_ACTNO8 <!-- 가상 계좌번호 8 -->
, BANK_NM9 <!-- 은행 명 9 -->
, VR_ACTNO9 <!-- 가상 계좌번호 9 -->
, BANK_NM10 <!-- 은행 명 10 -->
, VR_ACTNO10 <!-- 가상 계좌번호 10 -->
, BANK_NM11 <!-- 은행 명 11 -->
, VR_ACTNO11 <!-- 가상 계좌번호 11 -->
, NXRP_LEVY_KEY <!-- 세외수입 부과 키 -->
, DEL_YN <!-- 삭제 여부 -->
, REG_DT <!-- 등록 일시 -->
, RGTR <!-- 등록자 -->
, MDFCN_DT <!-- 수정 일시 -->
, MDFR <!-- 수정자 -->
, DEL_DT <!-- 삭제 일시 -->
, DLTR <!-- 삭제-->
, DEL_RSN <!-- 삭제 사유 -->
, (SELECT GET_CODE_NM('FIM043', L.NPMNT_RSN_CD) FROM DUAL) AS NPMNT_RSN_NM <!-- 체납 사유 명 -->
, (SELECT USER_NM FROM TB_USER X WHERE X.USER_ID = L.RGTR) AS RGTR_NM <!-- 등록자 명 -->
, (SELECT USER_NM FROM TB_USER X WHERE X.USER_ID = L.MDFR) AS MDFR_NM <!-- 수정자 명 -->
, (SELECT USER_NM FROM TB_USER X WHERE X.USER_ID = L.DLTR) AS DLTR_NM <!-- 삭제자 명 -->
FROM TB_LEVY L
</sql>
<select id="selectLevyList" parameterType="map" resultType="dataobject">/* 부과 대장 목록 조회(levyMapper.selectLevyList) */
@ -331,13 +332,13 @@
<include refid="select" />
<where>
<if test="levyId != null">
AND L.LEVY_ID = #{levyId} <!-- 감경 ID -->
AND L.LEVY_ID = #{levyId} <!-- 감경 ID -->
</if>
<if test="crdnId != null">
AND L.CRDN_ID = #{crdnId} <!-- 단속 ID -->
AND L.CRDN_ID = #{crdnId} <!-- 단속 ID -->
</if>
<if test="delYn != null">
AND L.DEL_YN = #{delYn} <!-- 삭제 여부 -->
AND L.DEL_YN = #{delYn} <!-- 삭제 여부 -->
</if>
</where>
<include refid="utility.orderBy" />

@ -123,31 +123,31 @@
<select id="selectRcvmtList" parameterType="map" resultType="dataobject">/* 수납 대장 목록 조회(rcvmtMapper.selectRcvmtList) */
<include refid="utility.paging-prefix" />
<include refid="select" />
WHERE R.SGG_CD = #{sggCd} /* 시군구 코드 */
AND R.TASK_SE_CD = #{taskSeCd} /* 업무 구분 코드 */
WHERE R.SGG_CD = #{sggCd} /* 시군구 코드 */
AND R.TASK_SE_CD = #{taskSeCd} /* 업무 구분 코드 */
<if test="schPstmrkYmdFrom != null">
AND R.PSTMRK_YMD <![CDATA[ >= ]]> #{schPstmrkYmdFrom} /* 소인 일자 시작 */
AND R.PSTMRK_YMD <![CDATA[ >= ]]> #{schPstmrkYmdFrom} /* 소인 일자 시작 */
</if>
<if test="schPstmrkYmdTo != null">
AND R.PSTMRK_YMD <![CDATA[ <= ]]> #{schPstmrkYmdTo} /* 소인 일자 종료 */
AND R.PSTMRK_YMD <![CDATA[ <= ]]> #{schPstmrkYmdTo} /* 소인 일자 종료 */
</if>
<if test="schRcvmtYmdFrom != null">
AND R.PSTMRK_YMD <![CDATA[ >= ]]> #{schRcvmtYmdFrom} /* 소인 일자 시작 */
AND R.PSTMRK_YMD <![CDATA[ >= ]]> #{schRcvmtYmdFrom} /* 소인 일자 시작 */
</if>
<if test="schRcvmtYmdTo != null">
AND R.RCVMT_YMD <![CDATA[ <= ]]> #{schRcvmtYmdTo} /* 소인 일자 종료 */
AND R.RCVMT_YMD <![CDATA[ <= ]]> #{schRcvmtYmdTo} /* 소인 일자 종료 */
</if>
<if test="schCrdnYmdFrom != null">
AND C.CRDN_YMD <![CDATA[ >= ]]> #{schCrdnYmdFrom} /* 단속 일자 시작 */
AND C.CRDN_YMD <![CDATA[ >= ]]> #{schCrdnYmdFrom} /* 단속 일자 시작 */
</if>
<if test="schCrdnYmdTo != null">
AND C.CRDN_YMD <![CDATA[ <= ]]> #{schCrdnYmdTo} /* 단속 일자 종료 */
AND C.CRDN_YMD <![CDATA[ <= ]]> #{schCrdnYmdTo} /* 단속 일자 종료 */
</if>
<if test="schVhrno != null">
AND C.VHRNO = #{schVhrno} /* 차량번호 */
AND C.VHRNO = #{schVhrno} /* 차량번호 */
</if>
<if test="schRtpyrNm != null">
AND P.RTPYR_NM = #{schRtpyrNm} /* 납부자 명 */
AND P.RTPYR_NM = #{schRtpyrNm} /* 납부자 명 */
</if>
<include refid="utility.orderBy" />
<include refid="utility.paging-suffix" />
@ -157,16 +157,16 @@
<include refid="select" />
<where>
<if test="rcvmtId != null">
AND R.RCVMT_ID = #{rcvmtId} /* 수납 ID */
AND R.RCVMT_ID = #{rcvmtId} /* 수납 ID */
</if>
<if test="levyId != null">
AND L.LEVY_ID = #{levyId} /* 부과 ID */
AND L.LEVY_ID = #{levyId} /* 부과 ID */
</if>
<if test="crdnId != null">
AND C.CRDN_ID = #{crdnId} /* 단속 ID */
AND C.CRDN_ID = #{crdnId} /* 단속 ID */
</if>
<if test="delYn != null">
AND R.DEL_YN = #{delYn} /* 삭제 여부 */
AND R.DEL_YN = #{delYn} /* 삭제 여부 */
</if>
</where>
<include refid="utility.orderBy" />

@ -198,7 +198,7 @@
<th class="cmn" style="width: 56px;">
<input type="checkbox" class="form-check-input" onchange="${pageName}Control.select(this.checked);">
</th>
<th class="cmn" style="width: 160px;" onclick="searchFromGridTitle('TASK_SE_CD', this.innerText, 'codeValue', 'FIM054');">업무구분</th>
<th class="cmn" style="width: 160px;">업무구분</th>
<th class="cmn" style="width: 120px;" onclick="searchFromGridTitle('LEVY_EXCL_YMD', this.innerText, 'ymd', '');">부과제외일자</th>
<th class="cmn" style="width: 120px;" onclick="searchFromGridTitle('LEVY_EXCL_SE_CD', this.innerText, 'codeValue', 'FIM021');">부과제외구분</th>
<th class="cmn" style="width: 200px;" onclick="searchFromGridTitle('LEVY_EXCL_RSN_CD', this.innerText, 'codeValue', 'FIM022');">부과제외사유</th>

@ -201,7 +201,7 @@
<th class="cmn" style="width: 56px;">
<input type="checkbox" class="form-check-input" onchange="${pageName}Control.select(this.checked);">
</th>
<th class="cmn" style="width: 160px;" onclick="searchFromGridTitle('TASK_SE_CD', this.innerText, 'codeValue', 'FIM054');">업무구분</th>
<th class="cmn" style="width: 160px;">업무구분</th>
<th class="cmn" style="width: 120px;" onclick="searchFromGridTitle('RCPT_YMD', this.innerText, 'ymd', '');">접수일자</th>
<th class="cmn" style="width: 120px;" onclick="searchFromGridTitle('RCPT_NO', this.innerText, 'match', 'part');">접수번호</th>
<th class="cmn" style="width: 120px;" onclick="searchFromGridTitle('RCPT_SE_CD', this.innerText, 'codeValue', 'FIM029');">접수구분</th>

@ -159,7 +159,7 @@
<tr id="theadTr--${pageName}"
data-by="by--${pageName}" data-by-output="byOutput--${pageName}" data-main-option="mainOption--${pageName}" data-sub-option="subOption--${pageName}">
<th class="cmn" style="width: 72px;">NO.</th>
<th class="cmn" style="width: 160px;" onclick="searchFromGridTitle('TASK_SE_CD', this.innerText, 'codeValue', 'FIM054');">업무구분</th>
<th class="cmn" style="width: 160px;">업무구분</th>
<th class="cmn" style="width: 120px;" onclick="searchFromGridTitle('RE_REG_YMD', this.innerText, 'ymd', '');">재등록일자</th>
<th class="cmn" style="width: 120px;" onclick="searchFromGridTitle('CRDN_REG_SE_CD', this.innerText, 'codeValue', 'FIM026');">단속등록구분</th>
<th class="cmn" style="width: 280px;" onclick="searchFromGridTitle('ETC_CN', this.innerText, 'match', 'part');">기타내용</th>

@ -149,15 +149,13 @@
<tr id="theadTr--${pageName}"
data-by="by--${pageName}" data-by-output="byOutput--${pageName}" data-main-option="mainOption--${pageName}" data-sub-option="subOption--${pageName}">
<th class="cmn" style="width: 72px;">NO.</th>
<th class="cmn" style="width: 56px;">
<input type="checkbox" class="form-check-input" onchange="${pageName}Control.select(this.checked);">
</th>
<th class="cmn" style="width: 160px;">업무구분</th>
<th class="cmn" style="width: 180px;" onclick="searchFromGridTitle('CRDN_YMD', this.innerText, 'ymd', '');">단속일시</th>
<th class="cmn" style="width: 140px;" onclick="searchFromGridTitle('VHRNO', this.innerText, 'match', 'part');">차량번호</th>
<th class="cmn" style="width: 160px;" onclick="searchFromGridTitle('CRDN_STDG_NM', this.innerText, 'match', 'part');">법정동</th>
<th class="cmn" style="width: 280px;" onclick="searchFromGridTitle('CRDN_PLC', this.innerText, 'match', 'part');">단속장소</th>
<th class="cmn" style="width: 160px;" onclick="searchFromGridTitle('VLTN_ARTCL', this.innerText, 'match', 'part');">위반항목</th>
<th class="cmn" style="width: 120px;" onclick="searchFromGridTitle('FFNLG_CRDN_AMT', this.innerText, 'match', 'part');">단속금액</th>
<th class="cmn" style="width: 120px;" onclick="searchFromGridTitle('FFNLG_CRDN_AMT', this.innerText, 'match', 'part');">최초단속금액</th>
<th class="cmn" style="width: 120px;" onclick="searchFromGridTitle('FFNLG_AMT', this.innerText, 'match', 'part');">과태료금액</th>
<th class="cmn" style="width: 120px;" onclick="searchFromGridTitle('ADVNTCE_AMT', this.innerText, 'match', 'part');">사전통지금액</th>
<th class="cmn" style="width: 160px;" onclick="searchFromGridTitle('CRDN_STTS_CD', this.innerText, 'codeValue', 'FIM010');">처리상태</th>
@ -182,14 +180,12 @@
<template id="${infoPrefix}Row--${pageName}">
<tr data-key="{CRDN_ID}">
<td class="cmn text-center" onclick="{onclick}" ondblclick="{ondblclick}">{ROW_NUM}</td>
<td class="cmn text-center">
<input type="checkbox" class="form-check-input" value="{CRDN_ID}" onchange="${pageName}Control.select('{CRDN_ID}', this.checked);">
</td>
<td class="cmn text-center" onclick="{onclick}" ondblclick="{ondblclick}">{TASK_SE_NM}</td>
<td class="cmn text-center" onclick="{onclick}" ondblclick="{ondblclick}">{CRDN_YMD_TM}</td>
<td class="cmn text-start" onclick="{onclick}" ondblclick="{ondblclick}">{VHRNO}</td>
<td class="cmn text-start" onclick="{onclick}" ondblclick="{ondblclick}">{CRDN_STDG_NM}</td>
<td class="cmn text-start" onclick="{onclick}" ondblclick="{ondblclick}">{CRDN_PLC}</td>
<td class="cmn text-center" onclick="{onclick}" ondblclick="{ondblclick}">{VLTN_ARTCL}</td>
<td class="cmn text-start" onclick="{onclick}" ondblclick="{ondblclick}">{VLTN_ARTCL}</td>
<td class="cmn text-end" onclick="{onclick}" ondblclick="{ondblclick}">{FFNLG_CRDN_AMT}</td>
<td class="cmn text-end" onclick="{onclick}" ondblclick="{ondblclick}">{FFNLG_AMT}</td>
<td class="cmn text-end" onclick="{onclick}" ondblclick="{ondblclick}">{ADVNTCE_AMT}</td>
@ -246,11 +242,15 @@
var ${pageName}Control = new DatasetControl({
prefix : "rductLevyTrgt"
, prefixName : "감경부과 대상"
, infoSize : "lg"
, infoSize : "md"
, keymapper : info => info ? info.CRDN_ID : ""
, dataGetter : obj => obj.rductLevyTrgtList
, appendData : true
, tableRenderComplete : false // dataTables 에 자료 추가 완료 여부
, tableRenderComplete : false // dataTables 에 자료 추가 완료 여부
, urls : {
getInfo : wctx.url("/sprt/sprt02/010/main.do") // 개별총정보
}
, formats : {
CRDN_YMD_TM : datetimeFormat
, CVLCPT_RCPT_YMD : dateFormat
@ -290,20 +290,6 @@
$("#tbody--${pageName}").setCurrentRow(key);
};
// 선택(체크) 변경 이벤트
${pageName}Control.onSelectionChange = selected => {
let ${infoPrefix}List = ${pageName}Control.dataset;
let keys = selected.map(e => ${infoPrefix}List.getKey(e));
$("#tbody--${pageName} input[type='checkbox']").each(function() {
let checkbox = $(this);
checkbox.prop("checked", keys.includes(checkbox.val()));
});
$("#btnRductLevyInfo--${pageName}").prop("disabled", keys.length < 1);
};
// 개별총정보 dialog
${pageName}Control.getInfo = (crdnId) => {
if (!crdnId) return;
@ -351,30 +337,22 @@
fn_securityModeToggle($("#securityMode--top").is(":checked"));
}
// callback
callbackRductLevyInfo${pageName} = (obj) => {
// 선택된 자료의 발송 상세 ID 추가
let selected = ${pageName}Control.dataset.getKeys("selected");
// 부과 정보 dialog -> callback 추가
getRductLevyInfo${pageName} = (params) => {
if (!params) return;
if (selected.length < 1) return;
let params = {
crdnIDs : selected.join(",") // 단속 IDs
, sggCd : $("#sggCd--${pageName}").val() // 시군구 코드
, taskSeCd : $("input[name='taskSeCd']:checked").val() // 업무 구분 코드
, levyYmd : obj.sndngYmd.replace(/-/g, "") // 부과 일자
, dudtYmd : obj.dudtYmd.replace(/-/g, "") // 납기 일자
, crdnSttsCd : "41" // 단속 상태 코드(FIM010) - 41 사전부과
};
ajax.post({
url : wctx.url("/" + params.taskSeCd + ${pageName}PrefixUrl + "/010/create.do")
, data : params
ajax.get({
url : wctx.url("/" + params.taskSeCd + ${pageName}PrefixUrl + "/020/info.do")
, data : params || {}
, success : resp => {
let btnTitle = $("#btnCreateRductLevy--${pageName}").attr("title");
let showMessage = resp.retMessage.replace(/[S]|[F]/g, btnTitle);
dialog.alert(showMessage);
dialog.open({
id : ${pageName}Control.prefixed("Dialog")
, title : ${pageName}Control.prefixName + " 정보"
, content : resp
, size : ${pageName}Control.infoSize
, init : () => { }
, onClose : () => { ${pageName}Control.load(${pageName}Control.query.pageNum); } // callback
});
}
});
}
@ -382,6 +360,15 @@
/**************************************************************************
* 초기 설정
**************************************************************************/
// 초기화
initForm${pageName} = () => {
// 화면 초기화
$("#frmSearch--${pageName}")[0].reset();
// dataset 초기화
${pageName}Control.dataset.clear();
}
// 이벤트
setEvent${pageName} = () => {
// form-date 항목에서 키보드로 입력시 날짜 포맷팅 적용
@ -397,6 +384,9 @@
});
});
// DataTables width 변경 조정 업무별 그리드가 존재 한다면.. crdn06010-main.jsp 참고
$("#DataTables_Table_0--${pageName}").find("th").resizable( {handles : "e"} );
// DataTables 스크롤 이벤트
$("#table-responsive--${pageName}").scroll(function() {
let el = $(this);
@ -436,7 +426,7 @@
// 달력 초기화
initDatepicker("frmSearch--${pageName}");
$("#schCrdnYmdFrom--${pageName}").datepicker("setDate", DateUtil.getDateDay(-90).date);
$("#schCrdnYmdFrom--${pageName}").datepicker("setDate", DateUtil.getDateDay(-465).date);
$("#schCrdnYmdTo--${pageName}").datepicker("setDate", new Date());
// DataTables width 변경 조정
@ -452,6 +442,23 @@
/**************************************************************************
* 버튼 clickEvent
**************************************************************************/
// 업무 구분 변경
fnResetAndChangeBiz${pageName} = (taskSeCd) => {
// 초기화
initForm${pageName}();
// 업무 구분 코드
if (typeof taskSeCd == "undefined" || taskSeCd == null || taskSeCd == "") {
taskSeCd = $("#layout-navbar input[name='taskSeCd']:checked").val();
}
// 화면 초기값 설정
setForm${pageName}(taskSeCd);
// URL 설정
setURL${pageName}(taskSeCd);
}
// 초기화 버튼 이벤트
fnReset${pageName} = () => {
fnResetAndChangeBiz${pageName}();
@ -462,9 +469,9 @@
// 검색조건
${pageName}Control.query = ${pageName}Fields.get();
${pageName}Control.query.fetchSize = FETCH_XS; // 한번에 조회되는 자료 건수 FETCH_XS = 30
${pageName}Control.query.delYn = "N"; // 삭제 여부
${pageName}Control.query.crdnDelYn = "N"; // 단속 대장 삭제 여부
${pageName}Control.query.fetchSize = FETCH_XS; // 한번에 조회되는 자료 건수 FETCH_XS = 30
${pageName}Control.query.delYn = "N"; // 삭제 여부
${pageName}Control.query.crdnDelYn = "N"; // 단속 대장 삭제 여부
${pageName}Control.load();
}
@ -474,47 +481,18 @@
}
// 업무 구분 변경
fnResetAndChangeBiz${pageName} = (taskSeCd) => {
// 화면 초기화
$("#frmSearch--${pageName}")[0].reset();
// dataset 초기화
${pageName}Control.dataset.clear();
// 업무 구분 코드
if (typeof taskSeCd == "undefined" || taskSeCd == null || taskSeCd == "") {
taskSeCd = $("#layout-navbar input[name='taskSeCd']:checked").val();
}
// 사용자 조회 버튼 이벤트
fnUser${pageName} = () => {
// 화면 초기값 설정
setForm${pageName}(taskSeCd);
// URL 설정
setURL${pageName}(taskSeCd);
}
// 감경부과등록 버튼 이벤트
fnRductLevyInfo${pageName} = () => {
// validate 확인
if (!customValidate($("#frmEdit--${pageName}").find("input, select, textarea"))) return;
let callbackFuncName = "callbackRductLevyInfo${pageName}";
let popupWidth = 480;
let popupHeight = 320;
let popupX = (window.screen.width / 2) - (popupWidth / 2);
let popupY= (window.screen.height / 2) - (popupHeight / 2);
window.open(
wctx.url("/resources/html/inputDateDialog.html"
+ "?callbackFuncName=" + callbackFuncName
+ "&CALL_PURPOSE=" + "levy"
+ "&SNDNG_YMD=" + DateUtil.getDateDay().date
+ "&DUDT_YMD=" + DateUtil.getDateDay().date
)
, "inputEPostDateDialog"
, 'status=no, height=' + popupHeight + ', width=' + popupWidth + ', left='+ popupX + ', top='+ popupY
);
let params = ${pageName}Fields.get();
params.callPurpose = "create";
getRductLevyInfo${pageName}(params);
}
/**************************************************************************

@ -0,0 +1,205 @@
<%@ page language="java" contentType="text/html; charset=UTF-8" pageEncoding="UTF-8" isELIgnored="false" session="false"%>
<%@ include file="/WEB-INF/jsp/include/taglib.jsp"%>
<!-- inner page html -->
<div class="content-wrapper">
<!-- Content -->
<div class="container flex-grow-1 px-0">
<c:set var="prefixName" scope="request">부과 정보</c:set>
<!-- Page Body -->
<div class="card">
<!-- 입력 영역 -->
<form id="frmEdit--${pageName}" name="frmEdit">
<!-- hidden -->
<input type="hidden" id="sggCd--${pageName}" name="sggCd" data-map="SGG_CD" />
<input type="hidden" id="taskSeCd--${pageName}" name="taskSeCd" data-map="TASK_SE_CD" />
<div class="row g-1">
<!-- 총건수 -->
<div class="col-md-12">
<label for="tnocs--${pageName}" class="w-px-120 bg-lighter pe-2 col-form-label text-sm-end">총 건수/금액</label>
<input type="text" class="form-control w-px-80" id="tnocs--${pageName}" name="tnocs" data-map="TNOCS" readonly />
<input type="text" class="form-control w-px-120" id="gramt--${pageName}" name="gramt" data-map="GRAMT" readonly />
</div>
<!-- 회계연도 -->
<div class="col-md-12">
<label for="fyr--${pageName}" class="w-px-120 bg-lighter pe-2 col-form-label text-sm-end required">회계연도</label>
<input type="text" class="form-control w-px-80" id="fyr--${pageName}" name="fyr" data-map="FYR" autocomplete="off" required />
</div>
<!-- 부과 일자 -->
<div class="col-md-12">
<label for="levyYmd--${pageName}" class="w-px-120 bg-lighter pe-2 col-form-label text-sm-end required">부과일자</label>
<input type="text" class="form-control form-date" id="levyYmd--${pageName}" name="levyYmd" data-map="LEVY_YMD"
data-fmt-type="day" autocomplete="off" title="날짜 선택" maxlength="10" required />
<button type="button" class="bx bx-sm bx-calendar bg-white"></button>
</div>
<!-- 납기 일자 -->
<div class="col-md-12">
<label for="dudtYmd--${pageName}" class="w-px-120 bg-lighter pe-2 col-form-label text-sm-end required">납기일자</label>
<input type="text" class="form-control form-date" id="dudtYmd--${pageName}" name="dudtYmd" data-map="DUDT_YMD"
data-fmt-type="day" autocomplete="off" title="날짜 선택" maxlength="10" required />
<button type="button" class="bx bx-sm bx-calendar bg-white"></button>
</div>
<!-- 감경율 -->
<div class="col-md-12">
<label for="rductRt--${pageName}" class="w-px-120 bg-lighter pe-2 col-form-label text-sm-end required">감경율</label>
<input type="text" class="form-control w-px-120" id="rductRt--${pageName}" name="rductRt" data-map="RDUCT_RT"
autocomplete="off" required readonly />
</div>
</div>
</form> <!-- /입력 영역 -->
</div> <!-- <div class="card"> -->
<!-- 업무 버튼 표시 -->
<div>
<span class="container-page-btn">
<span class="container-window-btn-right">
<!-- 업무 버튼 -->
<button type="button" class="btn btn-primary w-px-80" id="btnSave--${pageName}" title="저장" onclick="fnSave${pageName}()">
저장
</button>
</span>
</span>
</div>
<!-- / 업무 버튼 표시 -->
</div> <!-- / Content <div class="container flex-grow-1 px-0"> -->
</div> <!-- / inner page html <div class="content-wrapper"> -->
<script>
/**************************************************************************
* Global Variable
**************************************************************************/
// URL
var ${pageName}PrefixUrl = "/excl/excl01";
// FormFields
var ${pageName}Fields = new FimsFormFields("#frmEdit--${pageName}");
//
var ${pageName}Query = ${levyQuery};
/**************************************************************************
* DatasetControl
**************************************************************************/
var ${pageName}Control = new DatasetControl({
prefix : "rductLevy"
, prefixName : "감경부과"
, keymapper : info => info ? info.CRDN_ID : ""
, dataGetter : obj => obj.levyExclInfo
, urls : {
create : wctx.url(${pageName}PrefixUrl + "/020/create.do") // 등록
, update : wctx.url(${pageName}PrefixUrl + "/020/update.do") // 수정
}
});
${pageName}Control.onCurrentChange = item => {
if (!item) return;
// Dataset 셋팅
${pageName}Fields.set(item);
// 업무구분에 따른 url 변경
${pageName}Control.urls.create = wctx.url(item.data.TASK_SE_CD + ${pageName}PrefixUrl + "/020/create.do");
${pageName}Control.urls.update = wctx.url(item.data.TASK_SE_CD + ${pageName}PrefixUrl + "/020/update.do");
}
/**************************************************************************
* DatasetControl 이벤트
**************************************************************************/
// 저장 callback
${pageName}Control.onSave = (resp) => {
let dialogTitle = $("#" + ${pageName}Control.prefix + "Dialog").find("h5.modal-title").html();
let showMessage = resp.retMessage.replace(/[S]|[F]/g, dialogTitle);
dialog.alert(showMessage);
if (resp.saved) {
dialog.close(${pageName}Control.prefix + "Dialog");
if ("${savedCallbackFuncName}" != "") {
${savedCallbackFuncName}(resp.saved);
}
}
}
// 저장
${pageName}Control.save = (info) => {
if (!info) return;
let create = isEmpty(info.levyExclId);
// 민원 접수 관리에서 호출했다면..
if (create && "${saveCallbackFuncName}" != "") {
${saveCallbackFuncName}(info);
} else {
ajax.post({
url : !create ? ${pageName}Control.urls.update : ${pageName}Control.urls.create
, data : info
, success : resp => ${pageName}Control.onSave(resp)
});
}
}
/**************************************************************************
*
**************************************************************************/
/**************************************************************************
* 초기 셋팅
**************************************************************************/
// 이벤트 설정
setEvent${pageName} = () => {
// form-date 항목에서 키보드로 입력시 날짜 포맷팅 적용
$("#frmEdit--${pageName}").find(".form-date").each(function() {
$(this).on("input", function() {
let value = this.value.replaceAll("-","");
if (value.length > 7) {
this.value = value.substring(0, 4) + "-" + value.substring(4, 6) + "-" + value.substring(6);
} else if(value.length > 5) {
this.value = value.substring(0, 4) + "-" + value.substring(4);
}
});
});
}
// 검색조건 초기값 셋팅
setForm${pageName} = () => {
// 달력 초기화
initDatepicker("frmEdit--${pageName}");
$("#levyYmd--${pageName}").datepicker("setDate", new Date());
$("#dudtYmd--${pageName}").datepicker("setDate", new Date());
}
/**************************************************************************
* function
**************************************************************************/
// 저장
fnSave${pageName} = () => {
// validate 확인
if (!customValidate($("#frmEdit--${pageName}").find("input, select, textarea"))) return;
dialog.alert({
content : "현재 " + ${pageName}Control.prefixName + " 정보를 저장하시겠습니까?"
, onOK : () => {
${pageName}Control.save(${pageName}Fields.get());
}
});
}
/**************************************************************************
* script 진입
**************************************************************************/
$(document).ready(function() {
// 이벤트 설정
setEvent${pageName}();
// 화면 초기 설정
setForm${pageName}();
// Dataset 셋팅
${pageName}Control.setData([${rductLevyYmdInfo}]);
debugger;
});
</script>

@ -178,7 +178,7 @@
<th class="cmn" style="width: 56px;">
<input type="checkbox" class="form-check-input" onchange="${pageName}Control.select(this.checked);">
</th>
<th class="cmn" style="width: 160px;" onclick="searchFromGridTitle('TASK_SE_CD', this.innerText, 'codeValue', 'FIM054');">업무구분</th>
<th class="cmn" style="width: 160px;">업무구분</th>
<th class="cmn" style="width: 120px;" onclick="searchFromGridTitle('RCVMT_INPT_SE_CD', this.innerText, 'codeValue', 'FIM044');">수납입력구분</th>
<th class="cmn" style="width: 100px;" onclick="searchFromGridTitle('RCVMT_RTRCN_YN', this.innerText, 'codeValue', 'CMM005');">수납취소</th>
<th class="cmn" style="width: 100px;" onclick="searchFromGridTitle('ACNTG_YR', this.innerText, 'match', 'part');">회계연도</th>

Loading…
Cancel
Save