통합조회 mapper.xml 추가

main
이범준 1 year ago
parent 9ae1da57bb
commit 93f69d9340

@ -14,23 +14,17 @@ import cokr.xit.foundation.data.DataObject;
* *
* <pre> * <pre>
* ============ ============ * ============ ============
* 2023-08-18 JoJH * 2023-10-26 leebj
* ================================ * ================================
* </pre> * </pre>
*/ */
@Mapper("unityInqMapper") @Mapper("integrationSearchMapper")
public interface UnityInqMapper extends AbstractMapper { public interface IntegrationSearchMapper extends AbstractMapper {
/** .<br /> /** .<br />
* @param req * @param query
* @return * @return
*/ */
List<DataObject> selectUnityInqList(SprtQuery req); List<DataObject> selectIntegrationDataList(SprtQuery query);
/** .
* @param req
* @return
*/
List<DataObject> selectUnityInqs(SprtQuery req);
} }

@ -17,16 +17,10 @@ import cokr.xit.foundation.data.DataObject;
*/ */
public interface Sprt01Service { public interface Sprt01Service {
/** . /** .
* @param crdnId * @param query
* @return * @return
*/ */
List<DataObject> getUnityInqList(SprtQuery req); List<DataObject> getIntegrationDataList(SprtQuery query);
/** .
* @param crdnId
* @return
*/
List<DataObject> getUnityInqs(SprtQuery req);
} }

@ -7,7 +7,7 @@ import javax.annotation.Resource;
import org.springframework.stereotype.Component; import org.springframework.stereotype.Component;
import cokr.xit.fims.sprt.SprtQuery; import cokr.xit.fims.sprt.SprtQuery;
import cokr.xit.fims.sprt.dao.UnityInqMapper; import cokr.xit.fims.sprt.dao.IntegrationSearchMapper;
import cokr.xit.foundation.AbstractComponent; import cokr.xit.foundation.AbstractComponent;
import cokr.xit.foundation.data.DataObject; import cokr.xit.foundation.data.DataObject;
@ -25,23 +25,16 @@ import cokr.xit.foundation.data.DataObject;
public class Sprt01Bean extends AbstractComponent { public class Sprt01Bean extends AbstractComponent {
/** 통합 조회 정보 DAO */ /** 통합 조회 정보 DAO */
@Resource(name = "unityInqMapper") @Resource(name = "integrationSearchMapper")
private UnityInqMapper unityInqMapper; private IntegrationSearchMapper integrationSearchMapper;
/** . /** .
* @param req * @param query
* @return * @return
*/ */
public List<DataObject> getUnityInqList(SprtQuery req) { public List<DataObject> getIntegrationDataList(SprtQuery query) {
return unityInqMapper.selectUnityInqList(req); query.setOrderBy("C.CRDN_ID");
} return integrationSearchMapper.selectIntegrationDataList(query);
/** .
* @param req
* @return
*/
public List<DataObject> getUnityInqs(SprtQuery req) {
return unityInqMapper.selectUnityInqs(req);
} }
} }

@ -29,13 +29,8 @@ public class Sprt01ServiceBean extends AbstractServiceBean implements Sprt01Serv
protected Sprt01Bean sprt01Bean; protected Sprt01Bean sprt01Bean;
@Override @Override
public List<DataObject> getUnityInqList(SprtQuery req) { public List<DataObject> getIntegrationDataList(SprtQuery query) {
return sprt01Bean.getUnityInqList(req); return sprt01Bean.getIntegrationDataList(query);
}
@Override
public List<DataObject> getUnityInqs(SprtQuery req) {
return sprt01Bean.getUnityInqs(req);
} }
} }

@ -9,7 +9,9 @@ import org.springframework.web.servlet.ModelAndView;
import cokr.xit.base.code.CommonCode; import cokr.xit.base.code.CommonCode;
import cokr.xit.base.web.ApplicationController; import cokr.xit.base.web.ApplicationController;
import cokr.xit.fims.sprt.SprtQuery;
import cokr.xit.fims.sprt.service.Sprt01Service; import cokr.xit.fims.sprt.service.Sprt01Service;
import cokr.xit.foundation.data.DataObject;
/** /**
* *
@ -31,7 +33,7 @@ public class Sprt01Controller extends ApplicationController {
* *
* @return /fims/sprt/sprt01010 * @return /fims/sprt/sprt01010
*/ */
public ModelAndView unityInquireMain() { public ModelAndView integrationSearchMain() {
ModelAndView mav = new ModelAndView("fims/sprt/sprt01010-main"); ModelAndView mav = new ModelAndView("fims/sprt/sprt01010-main");
Map<String, List<CommonCode>> commonCodes = getCodesOf("FIM003", "FIM010", "FIM026", "FIM054"); Map<String, List<CommonCode>> commonCodes = getCodesOf("FIM003", "FIM010", "FIM026", "FIM054");
@ -49,4 +51,19 @@ public class Sprt01Controller extends ApplicationController {
; ;
} }
/** .<br />
* {@link Sprt01Service#getIntegrationDataList(SprtQuery)}
* @param query
* @return jsonView
*/
public ModelAndView getIntegrationDataList(SprtQuery query) {
ModelAndView mav = new ModelAndView("jsonView");
List<DataObject> list = null;
list = sprt01Service.getIntegrationDataList(query);
mav = setCollectionInfo(mav, list, "integrationData");
return mav;
}
} }

@ -4,6 +4,8 @@ import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.RequestMapping; import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.servlet.ModelAndView; import org.springframework.web.servlet.ModelAndView;
import cokr.xit.fims.sprt.SprtQuery;
@Controller @Controller
public class CmnController { public class CmnController {
@ -306,10 +308,15 @@ public class CmnController {
*/ */
@Override @Override
@RequestMapping(name="통합조회 메인", value="/010/main.do") @RequestMapping(name="통합조회 메인", value="/010/main.do")
public ModelAndView unityInquireMain() { public ModelAndView integrationSearchMain() {
return super.unityInquireMain(); return super.integrationSearchMain();
} }
@Override
@RequestMapping(name="통합조회 자료 목록", value="/010/list.do")
public ModelAndView getIntegrationDataList(SprtQuery query) {
return super.getIntegrationDataList(query);
}
} }
@Controller @Controller

@ -0,0 +1,143 @@
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
<mapper namespace="cokr.xit.fims.sprt.dao.IntegrationSearchMapper">
<select id="selectIntegrationDataList" parameterType="map" resultType="dataobject">
/* 통합 자료 목록 조회(integrationSearchMapper.selectIntegrationDataList) */
SELECT C.CRDN_ID /* 단속 ID */
, C.SGG_CD /* 시군구 코드 */
, C.TASK_SE_CD /* 업무 구분 코드 */
, (SELECT GET_CODE_NM('FIM054', C.TASK_SE_CD) FROM DUAL) AS TASK_SE_NM /* 업무 구분 코드 명 */
, C.CRDN_REG_SE_CD /* 단속 등록 구분 코드 */
, (SELECT GET_CODE_NM('FIM026', C.CRDN_REG_SE_CD) FROM DUAL) AS CRDN_REG_SE_NM /* 단속 등록 구분 명 */
, C.CRDN_INPT_SE_CD /* 단속 입력 구분 코드 */
, (SELECT GET_CODE_NM('FIM003', C.CRDN_INPT_SE_CD) FROM DUAL) AS CRDN_INPT_SE_NM /* 단속 입력 구분 명 */
, C.CVLCPT_LINK_YN /* 민원 연계 여부 */
, C.LINK_TBL_NM /* 연계 테이블 명 */
, C.LINK_ID /* 연계 ID */
, C.CRDN_YMD /* 단속 일자 */
, C.CRDN_TM /* 단속 시각 */
, (CONCAT(C.CRDN_YMD, C.CRDN_TM)) AS CRDN_YMD_TM /* 단속 일시 */
, C.VHRNO /* 차량번호 */
, C.CRDN_STDG_NM /* 단속 법정동 명 */
, C.CRDN_ROAD_NM /* 단속 도로 명 */
, C.CRDN_PLC /* 단속 장소 */
, C.VLTN_ID /* 위반 ID */
, C.GPS_X /* GPS X */
, C.GPS_Y /* GPS Y */
, C.ATCH_FILE_CNT /* 첨부 파일 수 */
, C.VIN /* 차대번호 */
, C.VHCL_NM /* 차량 명 */
, C.VHCL_COLOR /* 차량 색상 */
, C.FFNLG_CRDN_AMT /* 과태료 단속 금액 */
, C.FFNLG_RDUCT_RT /* 과태료 감경 율 */
, C.FFNLG_AMT /* 과태료 금액 */
, C.ADVNTCE_BGNG_YMD /* 사전통지 시작 일자 */
, C.ADVNTCE_DUDT_YMD /* 사전통지 납기 일자 */
, C.ADVNTCE_AMT /* 사전통지 금액 */
, C.OPNN_SBMSN_YN /* 의견 제출 여부 */
, C.ETC_CN /* 기타 내용 */
, 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.BFR_CRDN_ID /* 이전 단속 ID */
, C.DEL_YN /* 삭제 여부 */
, 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 /* 수정자 명 */
, C.DEL_DT /* 삭제 일시 */
, C.DLTR /* 삭제자 */
, (SELECT USER_NM FROM TB_USER X WHERE X.USER_ID = C.DLTR) AS DLTR_NM /* 삭제자 명 */
, C.DEL_RSN /* 삭제 사유 */
, CA.CRDN_SE_CD /* 단속 구분 코드 */
, (SELECT GET_CODE_NM('FIM002', CA.CRDN_SE_CD) FROM DUAL) AS CRDN_SE_NM /* 단속 구분 명 */
, CA.TEAM_ID /* 조 ID */
, CA.DTL_CRDN_PLC /* 상세 단속 장소 */
, CA.CRDN_SPAREA_CD /* 단속 특별구역 코드 */
, (SELECT GET_CODE_NM('FIM007', CA.CRDN_SPAREA_CD) FROM DUAL) AS CRDN_SPAREA_NM /* 단속 특별구역 명 */
, CA.CRDN_BGNG_TM /* 단속 시작 시각 */
, CA.CRDN_END_TM /* 단속 종료 시각 */
, CA.CRDN_SN /* 단속 일련번호 */
, CA.MOSC_X /* 모자이크 X */
, CA.MOSC_Y /* 모자이크 Y */
, CA.TOWNG_YN /* 견인 여부 */
, (SELECT GET_CODE_NM('FIM006', CA.TOWNG_YN) FROM DUAL) AS TOWNG_YN_NM /* 견인 여부 명 */
, CA.USE_FUEL_CD /* 사용 연료 코드 */
, (SELECT GET_CODE_NM('LVS005', CA.USE_FUEL_CD) FROM DUAL) AS USE_FUEL_NM /* 사용 연료 명 */
, CA.FFNLG_CARMDL_CD /* 과태료 차종 코드 */
, (SELECT GET_CODE_NM('FIM009', CA.FFNLG_CARMDL_CD) FROM DUAL) AS FFNLG_CARMDL_NM /* 과태료 차종 명 */
, CA.PARKNG_PSBLTY_RSLT_CD /* 주차 가능 결과 코드 */
, (SELECT GET_CODE_NM('FIM034', CA.PARKNG_PSBLTY_RSLT_CD) FROM DUAL) AS PARKNG_PSBLTY_RSLT_NM/* 주차 가능 결과 명 */
, CA.VLTN_NMTM /* 위반 횟수 */
, CA.OVTIME_YN /* 시간외 여부 */
, (SELECT GET_CODE_NM('FIM006', CA.OVTIME_YN) FROM DUAL) AS OVTIME_YN_NM /* 시간외 여부 명 */
, CA.OVTIME_PRTTN_YN /* 시간외 분할 여부 */
, (SELECT GET_CODE_NM('FIM006', CA.OVTIME_PRTTN_YN) FROM DUAL) AS OVTIME_PRTTN_YN_NM /* 시간외 분할 여부 명 */
, P.RTPYR_ID /* 납부자 ID */
, P.RTPYR_INPT_SE_CD /* 납부자 입력 구분 코드 */
, P.RTPYR_SE_CD /* 납부자 구분 코드 */
, (SELECT GET_CODE_NM('FIM011', P.RTPYR_SE_CD) FROM DUAL) AS RTPYR_SE_NM /* 납부자 구분 명 */
, P.RTPYR_NO /* 납부자 번호 */
, P.RTPYR_NM /* 납부자 명 */
, P.RTPYR_TELNO /* 납부자 전화번호 */
, P.RTPYR_MBL_TELNO /* 납부자 휴대 전화번호 */
, P.RTPYR_EML /* 납부자 이메일 */
, P.RTPYR_STTS_CD /* 납부자 상태 코드 */
, (SELECT GET_CODE_NM('FIM014', P.RTPYR_STTS_CD) FROM DUAL) AS RTPYR_STTS_NM /* 납부자 상태 명 */
, P.ADDR_SE_CD /* 주소 구분 코드 */
, (SELECT GET_CODE_NM('FIM013', P.ADDR_SE_CD) FROM DUAL) AS ADDR_SE_NM /* 주소 구분 명 */
, P.ZIP /* 우편번호 */
, P.ADDR /* 주소 */
, P.DTL_ADDR /* 상세 주소 */
, L.LEVY_ID /* 부과 ID */
, L.INST_CD /* 기관 코드 */
, L.DEPT_CD /* 부서 코드 */
, L.FYR /* 회계 연도 */
, L.ACNTG_SE /* 회계 구분 */
, L.TXITM_CD /* 세목 코드 */
, L.LEVY_NO /* 부과 번호 */
, L.INSPY_SN /* 분납 순번 */
, (CONCAT(L.FYR, '-', L.LEVY_NO)) AS GOJI_NO /* 고지번호 */
, (SELECT GET_CODE_NM('FIM040', L.LEVY_SE_CD) FROM DUAL) AS LEVY_SE_NM /* 부과 구분 명 */
, L.RCVMT_SE_NM /* 수납 구분 명 */
, L.LEVY_PCPTAX /* 부과 본세 */
, L.LEVY_ADAMT /* 부과 가산금 */
, L.INSPY_INT /* 분납 이자 */
, L.LEVY_PCPTAX + L.LEVY_ADAMT + L.INSPY_INT AS LEVY_AMT /* 부과금액 */
, L.RCVMT_PCPTAX /* 수납 본세 */
, L.RCVMT_ADAMT /* 수납 가산금 */
, L.RCVMT_PCPTAX + L.RCVMT_ADAMT AS RCVMT_AMT /* 수납 금액 */
, L.RDCAMT_PCPTAX /* 감액 본세 */
, L.RDCAMT_ADAMT /* 감액 가산금 */
, L.RDCAMT_PCPTAX + L.RDCAMT_ADAMT AS REDUC_AMT /* 감액 금액 */
, L.SUM_AMT /* 합계 금액 */
, VI.TXITM_NM /* 세목 명 */
, (CASE
WHEN R.RCVMT_ID IS NOT NULL AND R.RCVMT_ID != ''
THEN 'Y'
ELSE 'N'
END) AS RCVMT_YN
FROM TB_CRDN C /* 단속 대장 */
INNER JOIN TB_CRDN_ADI CA ON (C.CRDN_ID = CA.CRDN_ID) /* 단속 부가 정보 */
INNER JOIN TB_VLTN_INFO VI ON (C.VLTN_ID = VI.VLTN_ID) /* 위반 정보 */
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') /* 부과 대장 */
LEFT OUTER JOIN TB_RCVMT R ON (L.LEVY_ID = R.LEVY_ID AND R.DEL_YN = 'N')
WHERE C.DEL_YN = 'N'
<if test="vhrno != null">
AND C.VHRNO = #{vhrno} /* 차량번호 */
</if>
<if test="rtpyrNo != null">
AND P.RTPYR_NO = #{rtpyrNo} /* 납부자 번호 */
</if>
<if test="rtpyrNm != null">
AND P.RTPYR_NM = #{rtpyrNm} /* 납부자 명 */
</if>
<include refid="utility.sortBy" />
</select>
</mapper>

@ -1,175 +0,0 @@
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
<mapper namespace="cokr.xit.fims.sprt.dao.UnityInqMapper">
<sql id="select">
SELECT C.CRDN_ID /* 단속 ID */
, C.SGG_CD /* 시군구 코드 */
, C.TASK_SE_CD /* 업무 구분 코드 */
, (SELECT GET_CODE_NM('FIM054', C.TASK_SE_CD) FROM DUAL) AS TASK_SE_NM /* 업무 구분 코드 명 */
, C.CRDN_REG_SE_CD /* 단속 등록 구분 코드 */
, (SELECT GET_CODE_NM('FIM026', C.CRDN_REG_SE_CD) FROM DUAL) AS CRDN_REG_SE_NM /* 단속 등록 구분 명 */
, C.CRDN_INPT_SE_CD /* 단속 입력 구분 코드 */
, (SELECT GET_CODE_NM('FIM003', C.CRDN_INPT_SE_CD) FROM DUAL) AS CRDN_INPT_SE_NM /* 단속 입력 구분 명 */
, C.CVLCPT_LINK_YN /* 민원 연계 여부 */
, C.LINK_TBL_NM /* 연계 테이블 명 */
, C.LINK_ID /* 연계 ID */
, C.CRDN_YMD /* 단속 일자 */
, C.CRDN_TM /* 단속 시각 */
, (CONCAT(C.CRDN_YMD, C.CRDN_TM)) AS CRDN_YMD_TM /* 단속 일시 */
, C.VHRNO /* 차량번호 */
, C.CRDN_STDG_NM /* 단속 법정동 명 */
, C.CRDN_ROAD_NM /* 단속 도로 명 */
, C.CRDN_PLC /* 단속 장소 */
, C.VLTN_ID /* 위반 ID */
, C.GPS_X /* GPS X */
, C.GPS_Y /* GPS Y */
, C.ATCH_FILE_CNT /* 첨부 파일 수 */
, C.VIN /* 차대번호 */
, C.VHCL_NM /* 차량 명 */
, C.VHCL_COLOR /* 차량 색상 */
, C.FFNLG_CRDN_AMT /* 과태료 단속 금액 */
, C.FFNLG_RDUCT_RT /* 과태료 감경 율 */
, C.FFNLG_AMT /* 과태료 금액 */
, C.ADVNTCE_BGNG_YMD /* 사전통지 시작 일자 */
, C.ADVNTCE_DUDT_YMD /* 사전통지 납기 일자 */
, C.ADVNTCE_AMT /* 사전통지 금액 */
, C.OPNN_SBMSN_YN /* 의견 제출 여부 */
, C.ETC_CN /* 기타 내용 */
, 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.BFR_CRDN_ID /* 이전 단속 ID */
, C.DEL_YN /* 삭제 여부 */
, 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 /* 수정자 명 */
, C.DEL_DT /* 삭제 일시 */
, C.DLTR /* 삭제자 */
, (SELECT USER_NM FROM TB_USER X WHERE X.USER_ID = C.DLTR) AS DLTR_NM /* 삭제자 명 */
, C.DEL_RSN /* 삭제 사유 */
, CA.CRDN_SE_CD /* 단속 구분 코드 */
, (SELECT GET_CODE_NM('FIM002', CA.CRDN_SE_CD) FROM DUAL) AS CRDN_SE_NM /* 단속 구분 명 */
, CA.TEAM_ID /* 조 ID */
, CA.DTL_CRDN_PLC /* 상세 단속 장소 */
, CA.CRDN_SPAREA_CD /* 단속 특별구역 코드 */
, (SELECT GET_CODE_NM('FIM007', CA.CRDN_SPAREA_CD) FROM DUAL) AS CRDN_SPAREA_NM /* 단속 특별구역 명 */
, CA.CRDN_BGNG_TM /* 단속 시작 시각 */
, CA.CRDN_END_TM /* 단속 종료 시각 */
, CA.CRDN_SN /* 단속 일련번호 */
, CA.MOSC_X /* 모자이크 X */
, CA.MOSC_Y /* 모자이크 Y */
, CA.TOWNG_YN /* 견인 여부 */
, (SELECT GET_CODE_NM('FIM006', CA.TOWNG_YN) FROM DUAL) AS TOWNG_YN_NM /* 견인 여부 명 */
, CA.USE_FUEL_CD /* 사용 연료 코드 */
, (SELECT GET_CODE_NM('LVS005', CA.USE_FUEL_CD) FROM DUAL) AS USE_FUEL_NM /* 사용 연료 명 */
, CA.FFNLG_CARMDL_CD /* 과태료 차종 코드 */
, (SELECT GET_CODE_NM('FIM009', CA.FFNLG_CARMDL_CD) FROM DUAL) AS FFNLG_CARMDL_NM /* 과태료 차종 명 */
, CA.PARKNG_PSBLTY_RSLT_CD /* 주차 가능 결과 코드 */
, (SELECT GET_CODE_NM('FIM034', CA.PARKNG_PSBLTY_RSLT_CD) FROM DUAL) AS PARKNG_PSBLTY_RSLT_NM/* 주차 가능 결과 명 */
, CA.VLTN_NMTM /* 위반 횟수 */
, CA.OVTIME_YN /* 시간외 여부 */
, (SELECT GET_CODE_NM('FIM006', CA.OVTIME_YN) FROM DUAL) AS OVTIME_YN_NM /* 시간외 여부 명 */
, CA.OVTIME_PRTTN_YN /* 시간외 분할 여부 */
, (SELECT GET_CODE_NM('FIM006', CA.OVTIME_PRTTN_YN) FROM DUAL) AS OVTIME_PRTTN_YN_NM /* 시간외 분할 여부 명 */
, P.RTPYR_ID /* 납부자 ID */
, P.RTPYR_INPT_SE_CD /* 납부자 입력 구분 코드 */
, P.RTPYR_SE_CD /* 납부자 구분 코드 */
, (SELECT GET_CODE_NM('FIM011', P.RTPYR_SE_CD) FROM DUAL) AS RTPYR_SE_NM /* 납부자 구분 명 */
, P.RTPYR_NO /* 납부자 번호 */
, P.RTPYR_NM /* 납부자 명 */
, P.RTPYR_TELNO /* 납부자 전화번호 */
, P.RTPYR_MBL_TELNO /* 납부자 휴대 전화번호 */
, P.RTPYR_EML /* 납부자 이메일 */
, P.RTPYR_STTS_CD /* 납부자 상태 코드 */
, (SELECT GET_CODE_NM('FIM014', P.RTPYR_STTS_CD) FROM DUAL) AS RTPYR_STTS_NM /* 납부자 상태 명 */
, P.ADDR_SE_CD /* 주소 구분 코드 */
, (SELECT GET_CODE_NM('FIM013', P.ADDR_SE_CD) FROM DUAL) AS ADDR_SE_NM /* 주소 구분 명 */
, P.ZIP /* 우편번호 */
, P.ADDR /* 주소 */
, P.DTL_ADDR /* 상세 주소 */
, L.LEVY_ID /* 부과 ID */
, L.INST_CD /* 기관 코드 */
, L.DEPT_CD /* 부서 코드 */
, L.FYR /* 회계 연도 */
, L.ACNTG_SE /* 회계 구분 */
, L.TXITM_CD /* 세목 코드 */
, L.TXITM_NM /* 세목 명 */
, L.LEVY_NO /* 부과 번호 */
, L.INSPY_SN /* 분납 순번 */
, (CONCAT(L.FYR, '-', L.LEVY_NO)) AS GOJI_NO /* 고지번호 */
, L.LEVY_SE_NM /* 부과 구분 명 */
, L.RCVMT_SE_NM /* 수납 구분 명 */
, L.LEVY_PCPTAX /* 부과 본세 */
, L.LEVY_ADAMT /* 부과 가산금 */
, L.INSPY_INT /* 분납 이자 */
, L.LEVY_PCPTAX + L.LEVY_ADAMT + L.INSPY_INT AS LEVY_AMT /* 부과금액 */
, L.RCVMT_PCPTAX /* 수납 본세 */
, L.RCVMT_ADAMT /* 수납 가산금 */
, L.RCVMT_PCPTAX + L.RCVMT_ADAMT AS RCVMT_AMT /* 수납 금액 */
, L.RDCAMT_PCPTAX /* 감액 본세 */
, L.RDCAMT_ADAMT /* 감액 가산금 */
, L.RDCAMT_PCPTAX + L.RDCAMT_ADAMT AS REDUC_AMT /* 감액 금액 */
, L.SUM_AMT /* 합계 금액 */
FROM TB_CRDN C /* 단속 대장 */
INNER JOIN TB_CRDN_ADI CA ON (C.CRDN_ID = CA.CRDN_ID) /* 단속 부가 정보 */
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') /* 부과 대장 */
</sql>
<select id="selectCvlcptDscsnCnList" parameterType="map" resultType="dataobject">/* 민원 상담 내용 목록 조회(cvlcptDscsnCnMapper.selectCvlcptDscsnCnList) */
<include refid="utility.paging-prefix" />
<include refid="select" />
<where>
<if test="vhrno != null">
AND C.VHRNO = #{vhrno} /* 차량번호 */
</if>
<if test="rtpyrNo != null">
AND C.RTPYR_NO = #{rtpyrNo} /* 납부자 번호 */
</if>
<if test="rtpyrNm != null">
AND P.RTPYR_NM = #{rtpyrNm} /* 납부자 명 */
</if>
<if test="fyr != null">
AND L.FYR = #{fyr} /* 회계연도 */
</if>
<if test="levyNo != null">
AND L.LEVY_NO = #{levyNo} /* 부과 번호 */
</if>
<if test="delYn != null">
AND C.DEL_YN = #{delYn} /* 삭제 여부 */
</if>
</where>
<include refid="utility.orderBy" />
<include refid="utility.paging-suffix" />
</select>
<select id="selectCvlcptDscsnCns" parameterType="map" resultType="dataobject">/* 민원 상담 내용 객체 가져오기(cvlcptDscsnCnMapper.selectCvlcptDscsnCns) */
<include refid="select" />
<where>
<if test="vhrno != null">
AND C.VHRNO = #{vhrno} /* 차량번호 */
</if>
<if test="rtpyrNo != null">
AND C.RTPYR_NO = #{rtpyrNo} /* 납부자 번호 */
</if>
<if test="rtpyrNm != null">
AND P.RTPYR_NM = #{rtpyrNm} /* 납부자 명 */
</if>
<if test="fyr != null">
AND L.FYR = #{fyr} /* 회계연도 */
</if>
<if test="levyNo != null">
AND L.LEVY_NO = #{levyNo} /* 부과 번호 */
</if>
<if test="delYn != null">
AND C.DEL_YN = #{delYn} /* 삭제 여부 */
</if>
</where>
<include refid="utility.orderBy" />
</select>
</mapper>

@ -22,18 +22,17 @@
**************************************************************************/ **************************************************************************/
// 공통 코드 // 공통 코드
// var FIM021 = new CommonCodes(${FIM021}, true); var FIM054 = new CommonCodes(${FIM054}, true);
// var FIM022 = new CommonCodes(${FIM022}, true);
/************************************************************************** /**************************************************************************
* DatasetControl * DatasetControl
**************************************************************************/ **************************************************************************/
var integralSearchControl = new DatasetControl({ var integrationSearchControl = new DatasetControl({
prefix : "integralSearch", prefixName : "통합조회" prefix : "integrationSearch", prefixName : "통합조회"
, infoSize : "lg" , infoSize : "lg"
, appendData : false , appendData : false
, keymapper : info => info ? info.CRDN_ID : "" , keymapper : info => info ? info.CRDN_ID : ""
, dataGetter : obj => obj.dataList , dataGetter : obj => obj.integrationDataList
, urls : { , urls : {
load : wctx.url("/sprt/sprt01/010/list.do"), // 검색 load : wctx.url("/sprt/sprt01/010/list.do"), // 검색
getInfo : wctx.url("/sprt/sprt02/010/main.do") // 개별총정보 getInfo : wctx.url("/sprt/sprt02/010/main.do") // 개별총정보
@ -53,18 +52,18 @@ var integralSearchControl = new DatasetControl({
* DatasetControl 이벤트 * DatasetControl 이벤트
**************************************************************************/ **************************************************************************/
// Dataset 변경 이벤트 // Dataset 변경 이벤트
integralSearchControl.onDatasetChange = obj => { integrationSearchControl.onDatasetChange = obj => {
integralSearch.renderList("up"); integrationSearch.renderList("up");
integralSearch.renderList("down"); integrationSearch.renderList("down");
//$("#paging--${pageName}").setPagingInfo({ //$("#paging--${pageName}").setPagingInfo({
// list : integralSearchControl.dataset // list : integrationSearchControl.dataset
// , prefix : "paging--${pageName}" // , prefix : "paging--${pageName}"
// , start : obj.${infoPrefix}Start // , start : obj.${infoPrefix}Start
// , totalSize : obj.${infoPrefix}Total // , totalSize : obj.${infoPrefix}Total
// , fetchSize : obj.${infoPrefix}Fetch // , fetchSize : obj.${infoPrefix}Fetch
// , func : "integralSearchControl.load({index})" // , func : "integrationSearchControl.load({index})"
//}); //});
//보안모드 //보안모드
@ -72,7 +71,7 @@ integralSearchControl.onDatasetChange = obj => {
}; };
// 현재 선택 자료 변경 이벤트 // 현재 선택 자료 변경 이벤트
integralSearchControl.onCurrentChange = (item) => { integrationSearchControl.onCurrentChange = (item) => {
if (!item) return; if (!item) return;
var key = item.data.CRDN_ID; var key = item.data.CRDN_ID;
@ -82,10 +81,10 @@ integralSearchControl.onCurrentChange = (item) => {
}; };
// 선택(체크) 변경 이벤트 // 선택(체크) 변경 이벤트
integralSearchControl.onSelectionChange = selected => { integrationSearchControl.onSelectionChange = selected => {
var allList = integralSearchControl.dataset; var ds = integrationSearchControl.dataset;
var keys = selected.map(e => allList.getKey(e)); var keys = selected.map(e => ds.getKey(e));
$("#upTbody--${pageName},#downTbody--${pageName}").find("input[type='checkbox']").each(function() { $("#upTbody--${pageName},#downTbody--${pageName}").find("input[type='checkbox']").each(function() {
var checkbox = $(this); var checkbox = $(this);
@ -95,18 +94,18 @@ integralSearchControl.onSelectionChange = selected => {
}; };
// 개별총정보 dialog // 개별총정보 dialog
integralSearchControl.getInfo = (crdnId) => { integrationSearchControl.getInfo = (crdnId) => {
if (crdnId == undefined || crdnId == null || crdnId == "") { if (crdnId == undefined || crdnId == null || crdnId == "") {
return; return;
} }
var params = { var params = {
callControlName : "integralSearchControl" callControlName : "integrationSearchControl"
, crdnId : crdnId , crdnId : crdnId
} }
ajax.get({ ajax.get({
url : integralSearchControl.urls.getInfo url : integrationSearchControl.urls.getInfo
, data : params || {} , data : params || {}
, success : resp => { , success : resp => {
dialog.open({ dialog.open({
@ -122,7 +121,7 @@ integralSearchControl.getInfo = (crdnId) => {
} }
// 삭제 callback // 삭제 callback
integralSearchControl.onRemove = (selected, resp) => { integrationSearchControl.onRemove = (selected, resp) => {
var btnTitle = $("#btnRemove--${pageName}").attr("title"); var btnTitle = $("#btnRemove--${pageName}").attr("title");
var showMessage = resp.retMessage.replace(/[S]|[F]/g, btnTitle); var showMessage = resp.retMessage.replace(/[S]|[F]/g, btnTitle);
@ -130,57 +129,66 @@ integralSearchControl.onRemove = (selected, resp) => {
dialog.alert(showMessage); dialog.alert(showMessage);
if (resp.saved) { if (resp.saved) {
integralSearchControl._load(); integrationSearchControl._load();
} }
} }
// 삭제 // 삭제
integralSearchControl.remove = (params) => { integrationSearchControl.remove = (params) => {
var selected = integralSearchControl.dataset.getKeys("selected"); var selected = integrationSearchControl.dataset.getKeys("selected");
if (selected.length < 1) return; if (selected.length < 1) return;
if (!params) { if (!params) {
params = {}; params = {};
params[integralSearchControl.prefixed("IDs")] = selected.join(","); params[integrationSearchControl.prefixed("IDs")] = selected.join(",");
} }
ajax.post({ ajax.post({
url : integralSearchControl.urls.remove url : integrationSearchControl.urls.remove
, data : params , data : params
, success : resp => integralSearchControl.onRemove(selected, resp) , success : resp => integrationSearchControl.onRemove(selected, resp)
}); });
} }
/************************************************************************** /**************************************************************************
* *
**************************************************************************/ **************************************************************************/
var integralSearch = {}; var integrationSearch = {};
integralSearch.renderList = (updown) => { integrationSearch.renderList = (updown) => {
var tbody = updown == "up" ? "upTbody--${pageName}" : "downTbody--${pageName}"; var tbody = updown == "up" ? "upTbody--${pageName}" : "downTbody--${pageName}";
var trs = ""; var trs = "";
var allList = integralSearchControl.dataset; var notFound = [document.getElementById("notFound--${pageName}").innerHTML];
var found = document.getElementById("row--${pageName}").innerHTML;
var ds = integrationSearchControl.dataset;
var replacer = (str, dataItem) => str
.replace(/{onclick}/gi, "integrationSearchControl.setCurrent('" + dataItem.getValue("CRDN_ID") + "');")
.replace(/{ondblclick}/gi, "integrationSearchControl.getInfo('" + dataItem.getValue("CRDN_ID") + "');")
var empty = allList.empty; var empty = ds.empty;
if(allList.empty){ if(empty){
trs = [document.getElementById("notFound--${pageName}").innerHTML]; trs = notFound;
} else { } else {
var upList = allList.filter(item => item.RCVMT_YN == "N"); var temp = ds._items;
var downList = allList.filter(item => item.RCVMT_YN == "Y");
var targetList = updown == "up" ? upList : downList; var filtered = [];
if(targetList.lenth < 1){ if(updown == "up"){
trs = [document.getElementById("notFound--${pageName}").innerHTML]; filtered = temp.filter(item => item.data.RCVMT_YN == "N");
} else { } else {
trs = targetList.inStrings( filtered = temp.filter(item => item.data.RCVMT_YN == "Y");
document.getElementById("row--${pageName}").innerHTML, }
(str, dataItem) => str
.replace(/{onclick}/gi, "integralSearchControl.setCurrent('" + dataItem.getValue("CRDN_ID") + "');") if(filtered.lenth < 1){
.replace(/{ondblclick}/gi, "integralSearchControl.getInfo('" + dataItem.getValue("CRDN_ID") + "');") trs = notFound;
); } else {
ds._items = filtered;
trs = ds.inStrings(found, replacer);
ds._items = temp;
} }
} }
@ -189,7 +197,7 @@ var integralSearch = {};
// 검색 조건 파라미터 가져오기 // 검색 조건 파라미터 가져오기
integralSearch.getParams = () => { integrationSearch.getParams = () => {
var formFields = new FimsFormFields("#frmSearch--${pageName}"); var formFields = new FimsFormFields("#frmSearch--${pageName}");
var formData = formFields.get(); var formData = formFields.get();
@ -202,18 +210,18 @@ integralSearch.getParams = () => {
} }
// 수정 dialog -> callback 추가 // 수정 dialog -> callback 추가
integralSearch.fnInfo = (params) => { integrationSearch.fnInfo = (params) => {
ajax.get({ ajax.get({
url : wctx.url("/sprt/sprt02/010/info.do?openerPageName=${pageName}") url : wctx.url("/sprt/sprt02/010/info.do?openerPageName=${pageName}")
, data : params || {} , data : params || {}
, success : resp => { , success : resp => {
dialog.open({ dialog.open({
id : integralSearchControl.prefixed("Dialog") id : integrationSearchControl.prefixed("Dialog")
, title : integralSearchControl.prefixName + " 정보" , title : integrationSearchControl.prefixName + " 정보"
, content : resp , content : resp
, size : integralSearchControl.infoSize , size : integrationSearchControl.infoSize
, init : () => { } , init : () => { }
, onClose : () => { integralSearchControl.load(integralSearchControl.query.pageNum); } // callback , onClose : () => { integrationSearchControl.load(integrationSearchControl.query.pageNum); } // callback
}); });
} }
}); });
@ -225,7 +233,7 @@ integralSearch.fnInfo = (params) => {
// 이벤트 // 이벤트
integralSearch.setEvent = () => { integrationSearch.setEvent = () => {
// form-date 항목에서 키보드로 입력시 날짜 포맷팅 적용 // form-date 항목에서 키보드로 입력시 날짜 포맷팅 적용
$("#frmSearch--${pageName}").find(".form-date").each(function() { $("#frmSearch--${pageName}").find(".form-date").each(function() {
$(this).on("input", function() { $(this).on("input", function() {
@ -248,40 +256,40 @@ integralSearch.setEvent = () => {
* 버튼 clickEvent * 버튼 clickEvent
**************************************************************************/ **************************************************************************/
// 초기화 // 초기화
integralSearch.fnReset = () => { integrationSearch.fnReset = () => {
// 달력 초기화 // 달력 초기화
initDatepicker("frmSearch--${pageName}"); initDatepicker("frmSearch--${pageName}");
integralSearchControl.dataset.clear(); integrationSearchControl.dataset.clear();
} }
// 검색 // 검색
integralSearch.fnSearchList = () => { integrationSearch.fnSearchList = () => {
// 검색조건 // 검색조건
integralSearchControl.query = integralSearch.getParams(); integrationSearchControl.query = integrationSearch.getParams();
integralSearchControl.query.delYn = "N"; // 삭제 여부 integrationSearchControl.query.delYn = "N"; // 삭제 여부
integralSearchControl.query.crdnDelYn = "N"; // 단속 대장 삭제 여부 integrationSearchControl.query.crdnDelYn = "N"; // 단속 대장 삭제 여부
integralSearchControl.load(); integrationSearchControl.load();
} }
// 엑셀 // 엑셀
integralSearch.fnExcel = () => { integrationSearch.fnExcel = () => {
} }
// 수정 // 수정
integralSearch.fnUpdate = () => { integrationSearch.fnUpdate = () => {
var params = { var params = {
callPurpose : "update" callPurpose : "update"
, sggCd : integralSearchControl.dataset.getValue("SGG_CD") // 시군구 코드 , sggCd : integrationSearchControl.dataset.getValue("SGG_CD") // 시군구 코드
, taskSeCd : integralSearchControl.dataset.getValue("TASK_SE_CD") // 업무 구분 코드 , taskSeCd : integrationSearchControl.dataset.getValue("TASK_SE_CD") // 업무 구분 코드
, crdnId : integralSearchControl.dataset.getValue("CRDN_ID") , crdnId : integrationSearchControl.dataset.getValue("CRDN_ID")
}; };
integralSearch.fnInfo(params); integrationSearch.fnInfo(params);
} }
/************************************************************************** /**************************************************************************
@ -292,12 +300,12 @@ $(document).ready(function() {
$("#downTheadTr--${pageName}").html(document.getElementById("cols--${pageName}").innerHTML); $("#downTheadTr--${pageName}").html(document.getElementById("cols--${pageName}").innerHTML);
// 이벤트 설정 // 이벤트 설정
integralSearch.setEvent(); integrationSearch.setEvent();
// 보안모드 // 보안모드
fn_securityModeToggle($("#securityMode--top").is(":checked")); fn_securityModeToggle($("#securityMode--top").is(":checked"));
integralSearch.fnReset(); integrationSearch.fnReset();
}); });
</script> </script>

@ -6,7 +6,7 @@
<!-- 상단 버튼 --> <!-- 상단 버튼 -->
<div class="container-page-btn"> <div class="container-page-btn">
<button type="button" id="btnReset--${pageName}" class="btn btn-outline-dark" <button type="button" id="btnReset--${pageName}" class="btn btn-outline-dark"
title="초기화" onclick="integralSearch.fnReset();"> title="초기화" onclick="integrationSearch.fnReset();">
초기화 초기화
</button> </button>
<span class="container-window-btn-right"> <span class="container-window-btn-right">
@ -39,7 +39,7 @@
온라인입금관리대장 온라인입금관리대장
</button> </button>
<button type="button" id="btnSearch--${pageName}" class="btn btn-search w-px-120" <button type="button" id="btnSearch--${pageName}" class="btn btn-search w-px-120"
title="검색" onclick="integralSearch.fnSearchList();"> title="검색" onclick="integrationSearch.fnSearchList();">
검색 검색
</button> </button>
@ -58,13 +58,13 @@
<span class="form-search-linebox"> <span class="form-search-linebox">
<label> <label>
<input type="radio" class="form-check-input" name="taskSeCd" alt="업무구분" <input type="radio" class="form-check-input" name="taskSeCd" alt="업무구분"
value="" onchange="integralSearch.fnReset();" checked="checked"> value="" onchange="integrationSearch.fnReset();" checked="checked">
전체 전체
</label> </label>
<c:forEach items="${FIM054List}" var="item"> <c:forEach items="${FIM054List}" var="item">
<label> <label>
<input type="radio" class="form-check-input" name="taskSeCd" alt="업무구분" <input type="radio" class="form-check-input" name="taskSeCd" alt="업무구분"
value="${item.code}" onchange="integralSearch.fnReset();"> value="${item.code}" onchange="integrationSearch.fnReset();">
${item.value} ${item.value}
</label> </label>
</c:forEach> </c:forEach>

@ -66,7 +66,7 @@
압류예정일자-일괄 압류예정일자-일괄
</button> </button>
<button type="button" id="btnExcel--${pageName}" class="btn btn-excel" <button type="button" id="btnExcel--${pageName}" class="btn btn-excel"
title="엑셀 저장" onclick="integralSearch.fnExcel();"> title="엑셀 저장" onclick="integrationSearch.fnExcel();">
엑셀 엑셀
</button> </button>
<button type="button" id="" class="btn btn-primary" <button type="button" id="" class="btn btn-primary"

@ -66,7 +66,7 @@
결손취소-일괄 결손취소-일괄
</button> </button>
<button type="button" id="btnExcel--${pageName}" class="btn btn-excel" <button type="button" id="btnExcel--${pageName}" class="btn btn-excel"
title="엑셀 저장" onclick="integralSearch.fnExcel();"> title="엑셀 저장" onclick="integrationSearch.fnExcel();">
엑셀 엑셀
</button> </button>
<button type="button" id="" class="btn btn-primary" <button type="button" id="" class="btn btn-primary"

@ -6,14 +6,14 @@
<template id="cols--${pageName}"> <template id="cols--${pageName}">
<th class="cmn" style="width: 72px;">NO.</th> <th class="cmn" style="width: 72px;">NO.</th>
<th class="cmn" style="width: 56px;"> <th class="cmn" style="width: 56px;">
<input type="checkbox" class="form-check-input" onchange="integralSearchControl.select(this.checked);"> <input type="checkbox" class="form-check-input" onchange="integrationSearchControl.select(this.checked);">
</th> </th>
<th class="cmn" style="width: 140px;" <th class="cmn" style="width: 140px;"
onclick="searchFromGridTitle('SGG_CD', this.innerText, '', '');" onclick="searchFromGridTitle('SGG_CD', this.innerText, '', '');"
>시군구명 >시군구명
</th> </th>
<th class="cmn" style="width: 140px;" <th class="cmn" style="width: 140px;"
onclick="searchFromGridTitle('', this.innerText, '', '');" onclick="searchFromGridTitle('TASK_SE_CD', this.innerText, 'codeValue', 'FIM054');"
>과태료명 >과태료명
</th> </th>
<th class="cmn" style="width: 200px;" <th class="cmn" style="width: 200px;"
@ -192,7 +192,7 @@
<td class="cmn text-center" onclick="{onclick}" ondblclick="{ondblclick}">{ROW_NUM}</td> <td class="cmn text-center" onclick="{onclick}" ondblclick="{ondblclick}">{ROW_NUM}</td>
<td class="cmn text-center"> <td class="cmn text-center">
<input type="checkbox" class="form-check-input" value="{CRDN_ID}" <input type="checkbox" class="form-check-input" value="{CRDN_ID}"
onchange="integralSearchControl.select('{CRDN_ID}', this.checked);"> onchange="integrationSearchControl.select('{CRDN_ID}', this.checked);">
</td> </td>
<td class="cmn text-center" onclick="{onclick}" ondblclick="{ondblclick}" <td class="cmn text-center" onclick="{onclick}" ondblclick="{ondblclick}"
>{}</td> >{}</td>
@ -200,8 +200,8 @@
>{}</td> >{}</td>
<td class="cmn text-center" onclick="{onclick}" ondblclick="{ondblclick}" <td class="cmn text-center" onclick="{onclick}" ondblclick="{ondblclick}"
>{}</td> >{}</td>
<td class="cmn text-start" onclick="{onclick}" ondblclick="{ondblclick}" <td class="cmn text-center" onclick="{onclick}" ondblclick="{ondblclick}"
>{}</td> >{CRDN_YMD_TM}</td>
<td class="cmn text-center" onclick="{onclick}" ondblclick="{ondblclick}" <td class="cmn text-center" onclick="{onclick}" ondblclick="{ondblclick}"
>{}</td> >{}</td>
<td class="cmn text-center" onclick="{onclick}" ondblclick="{ondblclick}" <td class="cmn text-center" onclick="{onclick}" ondblclick="{ondblclick}"

Loading…
Cancel
Save