의견제출 관리 수정.

main
jjh 1 year ago
parent 0331ce5535
commit af02617b05

@ -29,20 +29,20 @@ public interface Excl01Mapper extends AbstractMapper {
*/ */
List<DataObject> selectLevyExclList(Excl01Query req); List<DataObject> selectLevyExclList(Excl01Query req);
/** . /** .
* @param req * @param req
* @return * @return
*/ */
List<DataObject> selectLevyExcls(Excl01Query req); List<DataObject> selectLevyExcls(Excl01Query req);
/** ID . /** ID .
* @param levyExclId ID * @param levyExclId ID
* @return * @return
*/ */
default DataObject selectLevyExclInfo(String levyExclId) { default DataObject selectLevyExclInfo(String levyExclId) {
List<DataObject> levyExclList = selectLevyExcls(new Excl01Query().setLevyExclId(levyExclId).setOrderBy("LEVY_EXCL_ID")); List<DataObject> levyExcl = selectLevyExcls(new Excl01Query().setLevyExclId(levyExclId).setOrderBy("LEVY_EXCL_ID"));
return !levyExclList.isEmpty() ? levyExclList.get(0) : null; return !levyExcl.isEmpty() ? levyExcl.get(0) : null;
} }
/** . /** .

@ -33,18 +33,16 @@ public interface Excl02Mapper extends AbstractMapper {
* @param req * @param req
* @return * @return
*/ */
List<Excl02> selectOpnnSbmsns(Excl02Query req); List<DataObject> selectOpnnSbmsns(Excl02Query req);
/** ID . /** ID .
* @param levyExclId ID * @param opnnId ID
* @return * @return
*/ */
DataObject selectOpnnSbmsnInfo(Excl02Query req);
default DataObject selectOpnnSbmsnInfo(String opnnId) { default DataObject selectOpnnSbmsnInfo(String opnnId) {
DataObject opnnSbmsnInfo = selectOpnnSbmsnInfo(new Excl02Query().setBy("opnnId").setTerm(opnnId)); List<DataObject> opnnSbmsn = selectOpnnSbmsns(new Excl02Query().setOpnnId(opnnId).setOrderBy("OPNN_ID"));
return opnnSbmsnInfo; return !opnnSbmsn.isEmpty() ? opnnSbmsn.get(0) : null;
} }
/** . /** .

@ -28,7 +28,7 @@ public interface Excl02Service {
* @param req * @param req
* @return * @return
*/ */
List<Excl02> getOpinionSubmissions(Excl02Query req); List<DataObject> getOpinionSubmissions(Excl02Query req);
/** ID .<br /> /** ID .<br />
* @param opnnId ID * @param opnnId ID

@ -41,7 +41,7 @@ public class Excl02Bean extends AbstractComponent {
* @param req * @param req
* @return * @return
*/ */
public List<Excl02> getOpinionSubmissions(Excl02Query req) { public List<DataObject> getOpinionSubmissions(Excl02Query req) {
return excl02Mapper.selectOpnnSbmsns(req); return excl02Mapper.selectOpnnSbmsns(req);
} }

@ -35,7 +35,7 @@ public class Excl02ServiceBean extends AbstractServiceBean implements Excl02Serv
} }
@Override @Override
public List<Excl02> getOpinionSubmissions(Excl02Query req) { public List<DataObject> getOpinionSubmissions(Excl02Query req) {
return excl02Bean.getOpinionSubmissions(req); return excl02Bean.getOpinionSubmissions(req);
} }

@ -5,7 +5,6 @@ import java.util.Map;
import javax.annotation.Resource; import javax.annotation.Resource;
import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.PostMapping; import org.springframework.web.bind.annotation.PostMapping;
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;
@ -27,7 +26,6 @@ import cokr.xit.foundation.data.DataObject;
* ================================ * ================================
* </pre> * </pre>
*/ */
@RequestMapping(name = "의견제출 대장", value = "/excl/excl02")
public class Excl02Controller extends ApplicationController { public class Excl02Controller extends ApplicationController {
/**의견제출 대장 서비스*/ /**의견제출 대장 서비스*/
@ -44,6 +42,8 @@ public class Excl02Controller extends ApplicationController {
// View(jsp)에서 사용할 공통코드를 조회 // View(jsp)에서 사용할 공통코드를 조회
Map<String, List<CommonCode>> commonCodes = getCodesOf("FIM031", "FIM054"); Map<String, List<CommonCode>> commonCodes = getCodesOf("FIM031", "FIM054");
addCodes(commonCodes, mav, "FIM021", "FIM022");
return mav.addObject("pageName", "excl02010") // View(jsp)에서 사용할 id 뒤에 붙일 suffix return mav.addObject("pageName", "excl02010") // View(jsp)에서 사용할 id 뒤에 붙일 suffix
.addObject("urlPrefix", "/excl/excl02") // URL로 사용할 prefix .addObject("urlPrefix", "/excl/excl02") // URL로 사용할 prefix
.addObject("infoPrefix", "opnnSbmsn") // prefix .addObject("infoPrefix", "opnnSbmsn") // prefix

@ -30,114 +30,114 @@
</resultMap> </resultMap>
<sql id="selectList"> <sql id="selectList">
SELECT A.LEVY_EXCL_ID /* 부과제외 ID */ SELECT A.LEVY_EXCL_ID /* 부과제외 ID */
, A.SGG_CD /* 시군구 코드 */ , A.SGG_CD /* 시군구 코드 */
, A.TASK_SE_CD /* 업무 구분 코드 */ , A.TASK_SE_CD /* 업무 구분 코드 */
, A.CRDN_ID /* 단속 ID */ , A.CRDN_ID /* 단속 ID */
, A.LEVY_EXCL_YMD /* 부과제외 일자 */ , A.LEVY_EXCL_YMD /* 부과제외 일자 */
, A.LEVY_EXCL_SE_CD /* 부과제외 구분 코드 */ , A.LEVY_EXCL_SE_CD /* 부과제외 구분 코드 */
, (SELECT FN_GET_CODE_NM('FIM021', A.LEVY_EXCL_SE_CD) FROM DUAL) AS LEVY_EXCL_SE_NM /* 부과 제외 구분 명 */ , (SELECT FN_GET_CODE_NM('FIM021', A.LEVY_EXCL_SE_CD) FROM DUAL) AS LEVY_EXCL_SE_NM /* 부과 제외 구분 명 */
, A.LEVY_EXCL_RSN_CD /* 부과제외 사유 코드 */ , A.LEVY_EXCL_RSN_CD /* 부과제외 사유 코드 */
, (SELECT FN_GET_CODE_NM('FIM022', A.LEVY_EXCL_RSN_CD) FROM DUAL) AS LEVY_EXCL_RSN_NM /* 부과 제외 사유 명 */ , (SELECT FN_GET_CODE_NM('FIM022', A.LEVY_EXCL_RSN_CD) FROM DUAL) AS LEVY_EXCL_RSN_NM /* 부과 제외 사유 명 */
, A.ETC_CN /* 기타 내용 */ , A.ETC_CN /* 기타 내용 */
, A.DEL_YN /* 삭제 여부 */ , A.DEL_YN /* 삭제 여부 */
, A.REG_DT /* 등록 일시 */ , A.REG_DT /* 등록 일시 */
, A.RGTR /* 등록자 */ , A.RGTR /* 등록자 */
, A.MDFCN_DT /* 수정 일시 */ , A.MDFCN_DT /* 수정 일시 */
, A.MDFR /* 수정자 */ , A.MDFR /* 수정자 */
, A.DEL_DT /* 삭제 일시 */ , A.DEL_DT /* 삭제 일시 */
, A.DLTR /* 삭제자 */ , A.DLTR /* 삭제자 */
, A.DEL_RSN /* 삭제 사유 */ , A.DEL_RSN /* 삭제 사유 */
, C.CRDN_REG_SE_CD /* 단속 등록 구분 코드 */ , C.CRDN_REG_SE_CD /* 단속 등록 구분 코드 */
, (SELECT FN_GET_CODE_NM('FIM026', C.CRDN_REG_SE_CD) FROM DUAL) AS CRDN_REG_SE_NM /* 단속 등록 구분 명 */ , (SELECT FN_GET_CODE_NM('FIM026', C.CRDN_REG_SE_CD) FROM DUAL) AS CRDN_REG_SE_NM /* 단속 등록 구분 명 */
, C.CRDN_INPT_SE_CD /* 단속 입력 구분 코드 */ , C.CRDN_INPT_SE_CD /* 단속 입력 구분 코드 */
, (SELECT FN_GET_CODE_NM('FIM003', C.CRDN_INPT_SE_CD) FROM DUAL) AS CRDN_INPT_SE_NM /* 단속 입력 구분 명 */ , (SELECT FN_GET_CODE_NM('FIM003', C.CRDN_INPT_SE_CD) FROM DUAL) AS CRDN_INPT_SE_NM /* 단속 입력 구분 명 */
, C.CRDN_SE_CD /* 단속 구분 코드 */ , C.CRDN_SE_CD /* 단속 구분 코드 */
, (SELECT FN_GET_CODE_NM('FIM002', C.CRDN_SE_CD) FROM DUAL) AS CRDN_SE_NM /* 단속 구분 명 */ , (SELECT FN_GET_CODE_NM('FIM002', C.CRDN_SE_CD) FROM DUAL) AS CRDN_SE_NM /* 단속 구분 명 */
, C.CRDN_YMD /* 단속 일자 */ , C.CRDN_YMD /* 단속 일자 */
, C.CRDN_TM /* 단속 시각 */ , C.CRDN_TM /* 단속 시각 */
, (CONCAT(C.CRDN_YMD, C.CRDN_TM)) AS CRDN_YMD_TM /* 단속 일시 */ , (CONCAT(C.CRDN_YMD, C.CRDN_TM)) AS CRDN_YMD_TM /* 단속 일시 */
, C.VHRNO /* 차량번호 */ , C.VHRNO /* 차량번호 */
, C.CRDN_STDG_NM /* 단속 법정동 명 */ , C.CRDN_STDG_NM /* 단속 법정동 명 */
, C.CRDN_ROAD_NM /* 단속 도로 명 */ , C.CRDN_ROAD_NM /* 단속 도로 명 */
, C.CRDN_PLC /* 단속 장소 */ , C.CRDN_PLC /* 단속 장소 */
, C.DTL_CRDN_PLC /* 상세 단속 장소 */ , C.DTL_CRDN_PLC /* 상세 단속 장소 */
, C.FFNLG_AMT /* 과태료 금액 */ , C.FFNLG_AMT /* 과태료 금액 */
, C.LEVY_AMT /* 부과 금액 */ , C.LEVY_AMT /* 부과 금액 */
, C.CRDN_STTS_CD /* 단속 상태 코드 */ , C.CRDN_STTS_CD /* 단속 상태 코드 */
, (SELECT FN_GET_CODE_NM('FIM010', C.CRDN_STTS_CD) FROM DUAL) AS CRDN_STTS_NM /* 단속 상태 명 */ , (SELECT FN_GET_CODE_NM('FIM010', C.CRDN_STTS_CD) FROM DUAL) AS CRDN_STTS_NM /* 단속 상태 명 */
, D.RTPYR_ID /* 납부자 ID */ , D.RTPYR_ID /* 납부자 ID */
, D.RTPYR_SE_CD /* 납부자 구분 코드 */ , D.RTPYR_SE_CD /* 납부자 구분 코드 */
, (SELECT FN_GET_CODE_NM('FIM011', D.RTPYR_SE_CD) FROM DUAL) AS RTPYR_SE_NM /* 납부자 구분 명 */ , (SELECT FN_GET_CODE_NM('FIM011', D.RTPYR_SE_CD) FROM DUAL) AS RTPYR_SE_NM /* 납부자 구분 명 */
, D.RTPYR_NO /* 납부자 번호 */ , D.RTPYR_NO /* 납부자 번호 */
, D.RTPYR_NM /* 납부자 명 */ , D.RTPYR_NM /* 납부자 명 */
, D.RTPYR_BRDT /* 납부자 생년월일 */ , D.RTPYR_BRDT /* 납부자 생년월일 */
, (SELECT FN_GET_BRDT_FORMAT(D.RTPYR_BRDT, '.') FROM DUAL) AS RTPYR_BRDT_FORMAT /* 납부자 생년월일 */ , (SELECT FN_GET_BRDT_FORMAT(D.RTPYR_BRDT, '.') FROM DUAL) AS RTPYR_BRDT_FORMAT /* 납부자 생년월일 */
, D.ZIP /* 우편번호 */ , D.ZIP /* 우편번호 */
, D.ADDR /* 주소 */ , D.ADDR /* 주소 */
, D.DTL_ADDR /* 상세 주소 */ , D.DTL_ADDR /* 상세 주소 */
, E.CVLCPT_LINK_ID /* 민원 연계 ID */ , E.CVLCPT_LINK_ID /* 민원 연계 ID */
, E.CVLCPT_RCPT_YMD /* 민원 접수 일자 */ , E.CVLCPT_RCPT_YMD /* 민원 접수 일자 */
, E.CVLCPT_APLY_NO /* 민원 신청 번호 */ , E.CVLCPT_APLY_NO /* 민원 신청 번호 */
, E.CVLCPT_RCPT_NO /* 민원 접수 번호 */ , E.CVLCPT_RCPT_NO /* 민원 접수 번호 */
, E.CVLCPT_APLCNT_NM /* 민원 신청인 명 */ , E.CVLCPT_APLCNT_NM /* 민원 신청인 명 */
, E.CVLCPT_PRCS_PIC_NM /* 민원 처리 담당자 명 */ , E.CVLCPT_PRCS_PIC_NM /* 민원 처리 담당자 명 */
FROM TB_LEVY_EXCL A FROM TB_LEVY_EXCL A
INNER JOIN TB_CRDN C ON (A.CRDN_ID = C.CRDN_ID) INNER JOIN TB_CRDN C ON (A.CRDN_ID = C.CRDN_ID)
LEFT OUTER JOIN TB_PAYER D ON (C.RTPYR_ID = D.RTPYR_ID) LEFT OUTER JOIN TB_PAYER D ON (C.RTPYR_ID = D.RTPYR_ID)
LEFT OUTER JOIN TB_CRDN_CVLCPT E ON (C.CRDN_ID = E.CRDN_ID AND E.DEL_YN = 'N') LEFT OUTER JOIN TB_CRDN_CVLCPT E ON (C.CRDN_ID = E.CRDN_ID AND E.DEL_YN = 'N')
</sql> </sql>
<select id="selectLevyExclList" parameterType="map" resultType="dataobject">/* 부과제외 대장 목록 조회(excl01Mapper.selectLevyExclList) */ <select id="selectLevyExclList" parameterType="map" resultType="dataobject">/* 부과제외 대장 목록 조회(excl01Mapper.selectLevyExclList) */
<include refid="utility.paging-prefix" /> <include refid="utility.paging-prefix" />
<include refid="selectList" /> <include refid="selectList" />
WHERE A.DEL_YN = 'N' /* 삭제 여부 */ WHERE A.DEL_YN = 'N' /* 삭제 여부 */
AND C.SGG_CD = #{sggCd} /* 시군구 코드 */ AND C.SGG_CD = #{sggCd} /* 시군구 코드 */
AND C.TASK_SE_CD = #{taskSeCd} /* 업무 구분 코드 */ AND C.TASK_SE_CD = #{taskSeCd} /* 업무 구분 코드 */
<choose> <choose>
<when test="schDateOpt == 'levyExclYmd'"> <when test="schDateOpt == 'levyExclYmd'">
<if test="schDateFrom != null"> <if test="schDateFrom != null">
AND A.LEVY_EXCL_YMD <![CDATA[ >= ]]> #{schDateFrom} /* 부과제외 일자 시작 */ AND A.LEVY_EXCL_YMD <![CDATA[ >= ]]> #{schDateFrom} /* 부과제외 일자 시작 */
</if> </if>
<if test="schDateTo != null"> <if test="schDateTo != null">
AND A.LEVY_EXCL_YMD <![CDATA[ <= ]]> #{schDateTo} /* 부과제외 일자 종료 */ AND A.LEVY_EXCL_YMD <![CDATA[ <= ]]> #{schDateTo} /* 부과제외 일자 종료 */
</if> </if>
</when> </when>
<when test="schDateOpt == 'crdnYmd'"> <when test="schDateOpt == 'crdnYmd'">
<if test="schDateFrom != null"> <if test="schDateFrom != null">
AND C.CRDN_YMD <![CDATA[ >= ]]> #{schDateFrom} /* 단속 일자 시작 */ AND C.CRDN_YMD <![CDATA[ >= ]]> #{schDateFrom} /* 단속 일자 시작 */
</if> </if>
<if test="schDateTo != null"> <if test="schDateTo != null">
AND C.CRDN_YMD <![CDATA[ <= ]]> #{schDateTo} /* 단속 일자 종료 */ AND C.CRDN_YMD <![CDATA[ <= ]]> #{schDateTo} /* 단속 일자 종료 */
</if> </if>
</when> </when>
<otherwise> <otherwise>
</otherwise> </otherwise>
</choose> </choose>
<if test = "schLevyExclSeCd != null"> <if test="schLevyExclSeCd != null">
AND A.LEVY_EXCL_SE_CD = #{schLevyExclSeCd} /* 부과 제외 구분 코드 */ AND A.LEVY_EXCL_SE_CD = #{schLevyExclSeCd} /* 부과 제외 구분 코드 */
</if> </if>
<if test = "schVhrno != null"> <if test="schVhrno != null">
AND C.VHRNO = #{schVhrno} /* 차량번호 */ AND C.VHRNO = #{schVhrno} /* 차량번호 */
</if> </if>
<if test = "schRtpyrNm != null"> <if test="schRtpyrNm != null">
AND D.RTPYR_NM = #{schRtpyrNm} /* 납부자 명 */ AND D.RTPYR_NM = #{schRtpyrNm} /* 납부자 명 */
</if> </if>
<choose> <choose>
<when test="schRegDateOpt == 'regDt'"> <when test="schRegDateOpt == 'regDt'">
<if test="schRegDateFrom != null"> <if test="schRegDateFrom != null">
AND SUBSTR(A.REG_DT,1,8) <![CDATA[ >= ]]> #{schRegDateFrom} /* 등록 일자 시작 */ AND SUBSTR(A.REG_DT,1,8) <![CDATA[ >= ]]> #{schRegDateFrom} /* 등록 일자 시작 */
</if> </if>
<if test="schRegDateTo != null"> <if test="schRegDateTo != null">
AND SUBSTR(A.REG_DT,1,8) <![CDATA[ <= ]]> #{schRegDateTo} /* 등록 일자 종료 */ AND SUBSTR(A.REG_DT,1,8) <![CDATA[ <= ]]> #{schRegDateTo} /* 등록 일자 종료 */
</if> </if>
</when> </when>
<when test="schRegDateOpt == 'mdfcnDt'"> <when test="schRegDateOpt == 'mdfcnDt'">
<if test="schRegDateFrom != null"> <if test="schRegDateFrom != null">
AND SUBSTR(A.MDFCN_DT,1,8) <![CDATA[ >= ]]> #{schRegDateFrom} /* 수정 일자 시작 */ AND SUBSTR(A.MDFCN_DT,1,8) <![CDATA[ >= ]]> #{schRegDateFrom} /* 수정 일자 시작 */
</if> </if>
<if test="schRegDateTo != null"> <if test="schRegDateTo != null">
AND SUBSTR(A.MDFCN_DT,1,8) <![CDATA[ <= ]]> #{schRegDateTo} /* 수정 일자 종료 */ AND SUBSTR(A.MDFCN_DT,1,8) <![CDATA[ <= ]]> #{schRegDateTo} /* 수정 일자 종료 */
</if> </if>
</when> </when>
<otherwise> <otherwise>
@ -146,12 +146,12 @@
<choose> <choose>
<when test="schDetailUserOpt == 'rgtr'"> <when test="schDetailUserOpt == 'rgtr'">
<if test="schDetailUserCd != null"> <if test="schDetailUserCd != null">
AND A.RGTR = #{schDetailUserCd} /* 등록자 코드 */ AND A.RGTR = #{schDetailUserCd} /* 등록자 코드 */
</if> </if>
</when> </when>
<when test="schDetailUserOpt == 'mdfr'"> <when test="schDetailUserOpt == 'mdfr'">
<if test="schDetailUserCd != null"> <if test="schDetailUserCd != null">
AND A.MDFR = #{schDetailUserCd} /* 수정자 코드 */ AND A.MDFR = #{schDetailUserCd} /* 수정자 코드 */
</if> </if>
</when> </when>
<otherwise> <otherwise>
@ -187,32 +187,32 @@
</select> </select>
<sql id="select"> <sql id="select">
SELECT A.LEVY_EXCL_ID /* 부과제외 ID */ SELECT A.LEVY_EXCL_ID /* 부과제외 ID */
, A.SGG_CD /* 시군구 코드 */ , A.SGG_CD /* 시군구 코드 */
, A.TASK_SE_CD /* 업무 구분 코드 */ , A.TASK_SE_CD /* 업무 구분 코드 */
, A.CRDN_ID /* 단속 ID */ , A.CRDN_ID /* 단속 ID */
, A.LEVY_EXCL_YMD /* 부과제외 일자 */ , A.LEVY_EXCL_YMD /* 부과제외 일자 */
, A.LEVY_EXCL_SE_CD /* 부과제외 구분 코드 */ , A.LEVY_EXCL_SE_CD /* 부과제외 구분 코드 */
, (SELECT FN_GET_CODE_NM('FIM021', A.LEVY_EXCL_SE_CD) FROM DUAL) AS LEVY_EXCL_SE_NM /* 부과 제외 구분 명 */ , (SELECT FN_GET_CODE_NM('FIM021', A.LEVY_EXCL_SE_CD) FROM DUAL) AS LEVY_EXCL_SE_NM /* 부과 제외 구분 명 */
, A.LEVY_EXCL_RSN_CD /* 부과제외 사유 코드 */ , A.LEVY_EXCL_RSN_CD /* 부과제외 사유 코드 */
, (SELECT FN_GET_CODE_NM('FIM022', A.LEVY_EXCL_RSN_CD) FROM DUAL) AS LEVY_EXCL_RSN_NM /* 부과 제외 사유 명 */ , (SELECT FN_GET_CODE_NM('FIM022', A.LEVY_EXCL_RSN_CD) FROM DUAL) AS LEVY_EXCL_RSN_NM /* 부과 제외 사유 명 */
, A.ETC_CN /* 기타 내용 */ , A.ETC_CN /* 기타 내용 */
, A.DEL_YN /* 삭제 여부 */ , A.DEL_YN /* 삭제 여부 */
, A.REG_DT /* 등록 일시 */ , A.REG_DT /* 등록 일시 */
, A.RGTR /* 등록자 */ , A.RGTR /* 등록자 */
, A.MDFCN_DT /* 수정 일시 */ , A.MDFCN_DT /* 수정 일시 */
, A.MDFR /* 수정자 */ , A.MDFR /* 수정자 */
, A.DEL_DT /* 삭제 일시 */ , A.DEL_DT /* 삭제 일시 */
, A.DLTR /* 삭제자 */ , A.DLTR /* 삭제자 */
, A.DEL_RSN /* 삭제 사유 */ , A.DEL_RSN /* 삭제 사유 */
, C.CRDN_REG_SE_CD /* 단속 등록 구분 코드 */ , C.CRDN_REG_SE_CD /* 단속 등록 구분 코드 */
, C.CRDN_INPT_SE_CD /* 단속 입력 구분 코드 */ , C.CRDN_INPT_SE_CD /* 단속 입력 구분 코드 */
, C.CRDN_SE_CD /* 단속 구분 코드 */ , C.CRDN_SE_CD /* 단속 구분 코드 */
, C.CRDN_YMD /* 단속 일자 */ , C.CRDN_YMD /* 단속 일자 */
, C.CRDN_TM /* 단속 시각 */ , C.CRDN_TM /* 단속 시각 */
, C.VHRNO /* 차량번호 */ , C.VHRNO /* 차량번호 */
, C.CRDN_STTS_CD /* 단속 상태 코드 */ , C.CRDN_STTS_CD /* 단속 상태 코드 */
, (SELECT FN_GET_CODE_NM('FIM010', C.CRDN_STTS_CD) FROM DUAL) AS CRDN_STTS_NM /* 단속 상태 명 */ , (SELECT FN_GET_CODE_NM('FIM010', C.CRDN_STTS_CD) FROM DUAL) AS CRDN_STTS_NM /* 단속 상태 명 */
FROM TB_LEVY_EXCL A FROM TB_LEVY_EXCL A
INNER JOIN TB_CRDN C ON (A.CRDN_ID = C.CRDN_ID) INNER JOIN TB_CRDN C ON (A.CRDN_ID = C.CRDN_ID)
</sql> </sql>
@ -221,13 +221,13 @@
<include refid="select" /> <include refid="select" />
<where> <where>
<if test="levyExclId != null"> <if test="levyExclId != null">
AND A.LEVY_EXCL_ID = #{levyExclId} /* 부과 제외 ID */ AND A.LEVY_EXCL_ID = #{levyExclId} /* 부과 제외 ID */
</if> </if>
<if test="crdnId != null"> <if test="crdnId != null">
AND A.CRDN_ID = #{crdnId} /* 단속 ID */ AND A.CRDN_ID = #{crdnId} /* 단속 ID */
</if> </if>
<if test="delYn != null"> <if test="delYn != null">
AND A.DEL_YN = #{delYn} /* 삭제 여부 */ AND A.DEL_YN = #{delYn} /* 삭제 여부 */
</if> </if>
</where> </where>
<include refid="utility.sortBy" /> DESC <include refid="utility.sortBy" /> DESC
@ -239,56 +239,56 @@
</selectKey> </selectKey>
INSERT INSERT
INTO TB_LEVY_EXCL ( INTO TB_LEVY_EXCL (
LEVY_EXCL_ID /* 부과 제외 ID */ LEVY_EXCL_ID /* 부과 제외 ID */
, SGG_CD /* 시군구 코드 */ , SGG_CD /* 시군구 코드 */
, TASK_SE_CD /* 업무 구분 코드 */ , TASK_SE_CD /* 업무 구분 코드 */
, CRDN_ID /* 단속 ID */ , CRDN_ID /* 단속 ID */
, LEVY_EXCL_YMD /* 부과 제외 일자 */ , LEVY_EXCL_YMD /* 부과 제외 일자 */
, LEVY_EXCL_SE_CD /* 부과 제외 구분 코드 */ , LEVY_EXCL_SE_CD /* 부과 제외 구분 코드 */
, LEVY_EXCL_RSN_CD /* 부과 제외 사유 코드 */ , LEVY_EXCL_RSN_CD /* 부과 제외 사유 코드 */
, ETC_CN /* 기타 내용 */ , ETC_CN /* 기타 내용 */
, DEL_YN /* 삭제 여부 */ , DEL_YN /* 삭제 여부 */
, REG_DT /* 등록 일시*/ , REG_DT /* 등록 일시*/
, RGTR /* 등록자 */ , RGTR /* 등록자 */
, MDFCN_DT /* 수정 일시 */ , MDFCN_DT /* 수정 일시 */
, MDFR /* 수정자 */ , MDFR /* 수정자 */
) )
VALUES ( VALUES (
#{excl01.levyExclId} /* 부과 제외 ID */ #{excl01.levyExclId} /* 부과 제외 ID */
, #{excl01.sggCd} /* 시군구 코드 */ , #{excl01.sggCd} /* 시군구 코드 */
, #{excl01.taskSeCd} /* 업무 구분 코드 */ , #{excl01.taskSeCd} /* 업무 구분 코드 */
, #{excl01.crdnId} /* 단속 ID */ , #{excl01.crdnId} /* 단속 ID */
, #{excl01.levyExclYmd} /* 부과 제외 일자 */ , #{excl01.levyExclYmd} /* 부과 제외 일자 */
, #{excl01.levyExclSeCd} /* 부과 제외 구분 코드 */ , #{excl01.levyExclSeCd} /* 부과 제외 구분 코드 */
, #{excl01.levyExclRsnCd} /* 부과 제외 사유 코드 */ , #{excl01.levyExclRsnCd} /* 부과 제외 사유 코드 */
, #{excl01.etcCn} /* 기타 내용 */ , #{excl01.etcCn} /* 기타 내용 */
, 'N' /* 삭제 여부 */ , 'N' /* 삭제 여부 */
, #{excl01.createdAt} /* 등록 일시 */ , #{excl01.createdAt} /* 등록 일시 */
, #{excl01.createdBy} /* 등록자 */ , #{excl01.createdBy} /* 등록자 */
, #{excl01.lastModified} /* 수정 일시 */ , #{excl01.lastModified} /* 수정 일시 */
, #{excl01.modifiedBy} /* 수정자 */ , #{excl01.modifiedBy} /* 수정자 */
) )
</insert> </insert>
<update id="updateLevyExcl" parameterType="map">/* 부과제외 대장 수정(excl01Mapper.updateLevyExcl) */ <update id="updateLevyExcl" parameterType="map">/* 부과제외 대장 수정(excl01Mapper.updateLevyExcl) */
UPDATE TB_LEVY_EXCL UPDATE TB_LEVY_EXCL
SET LEVY_EXCL_YMD = #{excl01.levyExclYmd} /* 부과 제외 일자 */ SET LEVY_EXCL_YMD = #{excl01.levyExclYmd} /* 부과 제외 일자 */
, LEVY_EXCL_SE_CD = #{excl01.levyExclSeCd} /* 부과 제외 구분 코드 */ , LEVY_EXCL_SE_CD = #{excl01.levyExclSeCd} /* 부과 제외 구분 코드 */
, LEVY_EXCL_RSN_CD = #{excl01.levyExclRsnCd} /* 부과 제외 사유 코드 */ , LEVY_EXCL_RSN_CD = #{excl01.levyExclRsnCd} /* 부과 제외 사유 코드 */
, ETC_CN = #{excl01.etcCn} /* 기타 내용 */ , ETC_CN = #{excl01.etcCn} /* 기타 내용 */
, MDFCN_DT = #{excl01.lastModified} /* 수정 일시 */ , MDFCN_DT = #{excl01.lastModified} /* 수정 일시 */
, MDFR = #{excl01.modifiedBy} /* 수정자 */ , MDFR = #{excl01.modifiedBy} /* 수정자 */
WHERE LEVY_EXCL_ID = #{excl01.levyExclId} /* 부과 제외 ID */ WHERE LEVY_EXCL_ID = #{excl01.levyExclId} /* 부과 제외 ID */
AND DEL_YN = 'N' /* 삭제 여부 */ AND DEL_YN = 'N' /* 삭제 여부 */
</update> </update>
<update id="deleteLevyExcl" parameterType="map">/* 부과제외 대장 삭제(excl01Mapper.deleteLevyExcl) */ <update id="deleteLevyExcl" parameterType="map">/* 부과제외 대장 삭제(excl01Mapper.deleteLevyExcl) */
UPDATE TB_LEVY_EXCL UPDATE TB_LEVY_EXCL
SET DEL_YN = 'Y' /* 삭제 여부 */ SET DEL_YN = 'Y' /* 삭제 여부 */
, DEL_DT = #{excl01.lastModified} /* 삭제 일시 */ , DEL_DT = #{excl01.lastModified} /* 삭제 일시 */
, DLTR = #{excl01.modifiedBy} /* 삭제자 */ , DLTR = #{excl01.modifiedBy} /* 삭제자 */
, DEL_RSN = #{excl01.delRsn} /* 삭제 사유 */ , DEL_RSN = #{excl01.delRsn} /* 삭제 사유 */
WHERE DEL_YN = 'N' /* 삭제 여부 */ WHERE DEL_YN = 'N' /* 삭제 여부 */
<choose> <choose>
<when test="excl01.levyExclIDs != null"> <when test="excl01.levyExclIDs != null">
AND LEVY_EXCL_ID IN ( AND LEVY_EXCL_ID IN (
@ -296,49 +296,49 @@
) )
</when> </when>
<otherwise> <otherwise>
AND LEVY_EXCL_ID = #{excl01.levyExclId} /* 부과 제외 ID */ AND LEVY_EXCL_ID = #{excl01.levyExclId} /* 부과 제외 ID */
</otherwise> </otherwise>
</choose> </choose>
</update> </update>
<select id="selectCrdnLevyExcl" parameterType="map" resultType="dataobject">/* 단속 대장 객체 가져오기(excl01Mapper.selectCrdnLevyExcl) */ <select id="selectCrdnLevyExcl" parameterType="map" resultType="dataobject">/* 단속 대장 객체 가져오기(excl01Mapper.selectCrdnLevyExcl) */
SELECT A.CRDN_ID /* 단속 ID */ SELECT A.CRDN_ID /* 단속 ID */
, A.SGG_CD /* 시군구 코드 */ , A.SGG_CD /* 시군구 코드 */
, A.TASK_SE_CD /* 업무 구분 코드 */ , A.TASK_SE_CD /* 업무 구분 코드 */
, A.CRDN_REG_SE_CD /* 단속 등록 구분 코드 */ , A.CRDN_REG_SE_CD /* 단속 등록 구분 코드 */
, A.CRDN_YMD /* 단속 일자 */ , A.CRDN_YMD /* 단속 일자 */
, A.CRDN_TM /* 단속 시각 */ , A.CRDN_TM /* 단속 시각 */
, A.VHRNO /* 차량번호 */ , A.VHRNO /* 차량번호 */
, A.CRDN_STTS_CD /* 단속 상태 코드 */ , A.CRDN_STTS_CD /* 단속 상태 코드 */
, (SELECT FN_GET_CODE_NM('FIM010', A.CRDN_STTS_CD) FROM DUAL) AS CRDN_STTS_NM /* 단속 상태 명 */ , (SELECT FN_GET_CODE_NM('FIM010', A.CRDN_STTS_CD) FROM DUAL) AS CRDN_STTS_NM /* 단속 상태 명 */
, A.CRDN_STTS_CHG_DT /* 단속 상태 변경 일시 */ , A.CRDN_STTS_CHG_DT /* 단속 상태 변경 일시 */
, B.LEVY_EXCL_ID /* 부과 제외 ID */ , B.LEVY_EXCL_ID /* 부과 제외 ID */
, B.LEVY_EXCL_YMD /* 부과제외 일자 */ , B.LEVY_EXCL_YMD /* 부과제외 일자 */
, B.LEVY_EXCL_SE_CD /* 부과제외 구분 코드 */ , B.LEVY_EXCL_SE_CD /* 부과제외 구분 코드 */
, (SELECT FN_GET_CODE_NM('FIM021', B.LEVY_EXCL_SE_CD) FROM DUAL) AS LEVY_EXCL_SE_NM /* 부과 제외 구분 명 */ , (SELECT FN_GET_CODE_NM('FIM021', B.LEVY_EXCL_SE_CD) FROM DUAL) AS LEVY_EXCL_SE_NM /* 부과 제외 구분 명 */
, B.LEVY_EXCL_RSN_CD /* 부과제외 사유 코드 */ , B.LEVY_EXCL_RSN_CD /* 부과제외 사유 코드 */
, (SELECT FN_GET_CODE_NM('FIM022', B.LEVY_EXCL_RSN_CD) FROM DUAL) AS LEVY_EXCL_RSN_NM /* 부과 제외 사유 명 */ , (SELECT FN_GET_CODE_NM('FIM022', B.LEVY_EXCL_RSN_CD) FROM DUAL) AS LEVY_EXCL_RSN_NM /* 부과 제외 사유 명 */
, B.ETC_CN /* 기타 내용 */ , B.ETC_CN /* 기타 내용 */
, <include refid="utility.today" /> AS TODAY /* 오늘 일자 */ , <include refid="utility.today" /> AS TODAY /* 오늘 일자 */
FROM TB_CRDN A FROM TB_CRDN A
LEFT OUTER JOIN TB_LEVY_EXCL B ON (A.CRDN_ID = B.CRDN_ID AND B.DEL_YN = 'N') LEFT OUTER JOIN TB_LEVY_EXCL B ON (A.CRDN_ID = B.CRDN_ID AND B.DEL_YN = 'N')
WHERE A.CRDN_ID = #{crdnId} /* 단속 ID */ WHERE A.CRDN_ID = #{crdnId} /* 단속 ID */
</select> </select>
<update id="updateCrdnSttsCd" parameterType="map">/* 단속 대장 수정(excl01Mapper.updateCrdnSttsCd) */ <update id="updateCrdnSttsCd" parameterType="map">/* 단속 대장 수정(excl01Mapper.updateCrdnSttsCd) */
UPDATE TB_CRDN UPDATE TB_CRDN
SET CRDN_STTS_CD = #{excl01.crdnSttsCd} /* 단속 상태 코드 */ SET CRDN_STTS_CD = #{excl01.crdnSttsCd} /* 단속 상태 코드 */
<choose> <choose>
<when test="excl01.crdnSttsChgDt != null"> <when test="excl01.crdnSttsChgDt != null">
, CRDN_STTS_CHG_DT = #{excl01.crdnSttsChgDt} /* 단속 상태 변경 일시 */ , CRDN_STTS_CHG_DT = #{excl01.crdnSttsChgDt} /* 단속 상태 변경 일시 */
</when> </when>
<otherwise> <otherwise>
, CRDN_STTS_CHG_DT = <include refid="utility.now" /> /* 단속 상태 변경 일시 */ , CRDN_STTS_CHG_DT = <include refid="utility.now" /> /* 단속 상태 변경 일시 */
</otherwise> </otherwise>
</choose> </choose>
, MDFCN_DT = #{excl01.lastModified} /* 수정 일시 */ , MDFCN_DT = #{excl01.lastModified} /* 수정 일시 */
, MDFR = #{excl01.modifiedBy} /* 수정자 */ , MDFR = #{excl01.modifiedBy} /* 수정자 */
WHERE CRDN_ID = #{excl01.crdnId} /* 부과 제외 ID */ WHERE CRDN_ID = #{excl01.crdnId} /* 부과 제외 ID */
</update> </update>
</mapper> </mapper>

@ -51,76 +51,76 @@
</resultMap> </resultMap>
<sql id="selectList"> <sql id="selectList">
SELECT A.OPNN_ID /* 의견 ID */ SELECT A.OPNN_ID /* 의견 ID */
, A.CRDN_ID /* 단속 ID */ , A.CRDN_ID /* 단속 ID */
, A.RCPT_NO /* 접수 번호 */ , A.RCPT_NO /* 접수 번호 */
, A.RCPT_YMD /* 접수 일자 */ , A.RCPT_YMD /* 접수 일자 */
, A.RCPT_SE_CD /* 접수 구분 코드 */ , A.RCPT_SE_CD /* 접수 구분 코드 */
, (SELECT FN_GET_CODE_NM('FIM029', A.RCPT_SE_CD) FROM DUAL) AS RCPT_SE_NM /* 접수 구분 코드 */ , (SELECT FN_GET_CODE_NM('FIM029', A.RCPT_SE_CD) FROM DUAL) AS RCPT_SE_NM /* 접수 구분 코드 */
, A.OWNR_REL_CD /* 소유주 관계 코드 */ , A.OWNR_REL_CD /* 소유주 관계 코드 */
, (SELECT FN_GET_CODE_NM('FIM032', A.OWNR_REL_CD) FROM DUAL) AS OWNR_REL_NM /* 소유주 관계 코드 */ , (SELECT FN_GET_CODE_NM('FIM032', A.OWNR_REL_CD) FROM DUAL) AS OWNR_REL_NM /* 소유주 관계 코드 */
, A.STTR_NM /* 진술자 명 */ , A.STTR_NM /* 진술자 명 */
, A.STTR_BRDT /* 진술자 생년월일 */ , A.STTR_BRDT /* 진술자 생년월일 */
, (SELECT FN_GET_BRDT_FORMAT(A.STTR_BRDT, '.') FROM DUAL) AS STTR_BRDT_FORMAT /* 납부자 생년월일 */ , (SELECT FN_GET_BRDT_FORMAT(A.STTR_BRDT, '.') FROM DUAL) AS STTR_BRDT_FORMAT /* 납부자 생년월일 */
, A.STTR_RRNO /* 진술자 주민등록번호 */ , A.STTR_RRNO /* 진술자 주민등록번호 */
, A.STTR_ADDR /* 진술자 주소 */ , A.STTR_ADDR /* 진술자 주소 */
, A.STTR_DADDR /* 진술자 상세주소 */ , A.STTR_DADDR /* 진술자 상세주소 */
, A.STTR_ZIP /* 진술자 우편번호 */ , A.STTR_ZIP /* 진술자 우편번호 */
, A.STTR_CTTPC /* 진술자 연락처 */ , A.STTR_CTTPC /* 진술자 연락처 */
, A.STTR_EML /* 진술자 이메일 */ , A.STTR_EML /* 진술자 이메일 */
, A.OPNN_SBMSN_CN /* 의견 제출 내용 */ , A.OPNN_SBMSN_CN /* 의견 제출 내용 */
, A.OPNN_SBMSN_SE_CD /* 의견 제출 구분 코드 */ , A.OPNN_SBMSN_SE_CD /* 의견 제출 구분 코드 */
, (SELECT FN_GET_CODE_NM('FIM033', A.OPNN_SBMSN_SE_CD) FROM DUAL) AS OPNN_SBMSN_SE_NM /* 의견 제출 구분 명 */ , (SELECT FN_GET_CODE_NM('FIM033', A.OPNN_SBMSN_SE_CD) FROM DUAL) AS OPNN_SBMSN_SE_NM /* 의견 제출 구분 명 */
, A.OPNN_SBMSN_GIST /* 의견 제출 요지 */ , A.OPNN_SBMSN_GIST /* 의견 제출 요지 */
, A.ATCH_FILE_CNT /* 첨부 파일 수 */ , A.ATCH_FILE_CNT /* 첨부 파일 수 */
, A.DOC_NO /* 문서 번호 */ , A.DOC_NO /* 문서 번호 */
, A.NTFCTN_SE_CD /* 통보 구분 코드 */ , A.NTFCTN_SE_CD /* 통보 구분 코드 */
, (SELECT FN_GET_CODE_NM('FIM030', A.NTFCTN_SE_CD) FROM DUAL) AS NTFCTN_SE_NM /* 통보 구분 코드 */ , (SELECT FN_GET_CODE_NM('FIM030', A.NTFCTN_SE_CD) FROM DUAL) AS NTFCTN_SE_NM /* 통보 구분 코드 */
, A.PIC_RVW_OPNN /* 담당자 검토 의견 */ , A.PIC_RVW_OPNN /* 담당자 검토 의견 */
, A.ANS_CN /* 답변 내용 */ , A.ANS_CN /* 답변 내용 */
, A.ANS_YMD /* 답변 일자 */ , A.ANS_YMD /* 답변 일자 */
, A.ANS_TM /* 답변 시각 */ , A.ANS_TM /* 답변 시각 */
, (CONCAT(A.ANS_YMD, A.ANS_TM)) AS ANS_YMD_TM /* 답변 일시 */ , (CONCAT(A.ANS_YMD, A.ANS_TM)) AS ANS_YMD_TM /* 답변 일시 */
, A.OPNN_SBMSN_STTS_CD /* 의견 제출 상태 코드 */ , A.OPNN_SBMSN_STTS_CD /* 의견 제출 상태 코드 */
, (SELECT FN_GET_CODE_NM('FIM031', A.OPNN_SBMSN_STTS_CD) FROM DUAL) AS OPNN_SBMSN_STTS_NM /* 의견 제출 상태 명 */ , (SELECT FN_GET_CODE_NM('FIM031', A.OPNN_SBMSN_STTS_CD) FROM DUAL) AS OPNN_SBMSN_STTS_NM /* 의견 제출 상태 명 */
, A.DEL_YN /* 삭제 여부 */ , A.DEL_YN /* 삭제 여부 */
, A.REG_DT /* 등록 일시 */ , A.REG_DT /* 등록 일시 */
, A.RGTR /* 등록자 */ , A.RGTR /* 등록자 */
, A.MDFCN_DT /* 수정 일시 */ , A.MDFCN_DT /* 수정 일시 */
, A.MDFR /* 수정자 */ , A.MDFR /* 수정자 */
, A.DEL_DT /* 삭제 일시 */ , A.DEL_DT /* 삭제 일시 */
, A.DLTR /* 삭제자 */ , A.DLTR /* 삭제자 */
, A.DEL_RSN /* 삭제 사유 */ , A.DEL_RSN /* 삭제 사유 */
, C.SGG_CD /* 시군구 코드 */ , C.SGG_CD /* 시군구 코드 */
, C.TASK_SE_CD /* 업무 구분 코드 */ , C.TASK_SE_CD /* 업무 구분 코드 */
, C.CRDN_INPT_SE_CD /* 단속 입력 구분 코드 */ , C.CRDN_INPT_SE_CD /* 단속 입력 구분 코드 */
, (SELECT FN_GET_CODE_NM('FIM003', C.CRDN_INPT_SE_CD) FROM DUAL) AS CRDN_INPT_SE_NM /* 단속 입력 구분 명 */ , (SELECT FN_GET_CODE_NM('FIM003', C.CRDN_INPT_SE_CD) FROM DUAL) AS CRDN_INPT_SE_NM /* 단속 입력 구분 명 */
, C.CRDN_SE_CD /* 단속 구분 코드 */ , C.CRDN_SE_CD /* 단속 구분 코드 */
, (SELECT FN_GET_CODE_NM('FIM002', C.CRDN_SE_CD) FROM DUAL) AS CRDN_SE_NM /* 단속 구분 명 */ , (SELECT FN_GET_CODE_NM('FIM002', C.CRDN_SE_CD) FROM DUAL) AS CRDN_SE_NM /* 단속 구분 명 */
, C.CRDN_YMD /* 단속 일자 */ , C.CRDN_YMD /* 단속 일자 */
, C.CRDN_TM /* 단속 시각 */ , C.CRDN_TM /* 단속 시각 */
, (CONCAT(C.CRDN_YMD, C.CRDN_TM)) AS CRDN_YMD_TM /* 단속 일시 */ , (CONCAT(C.CRDN_YMD, C.CRDN_TM)) AS CRDN_YMD_TM /* 단속 일시 */
, C.VHRNO /* 차량번호 */ , C.VHRNO /* 차량번호 */
, C.CRDN_STDG_NM /* 단속 법정동 명 */ , C.CRDN_STDG_NM /* 단속 법정동 명 */
, C.CRDN_ROAD_NM /* 단속 도로 명 */ , C.CRDN_ROAD_NM /* 단속 도로 명 */
, C.CRDN_PLC /* 단속 장소 */ , C.CRDN_PLC /* 단속 장소 */
, C.DTL_CRDN_PLC /* 상세 단속 장소 */ , C.DTL_CRDN_PLC /* 상세 단속 장소 */
, C.FFNLG_AMT /* 과태료 금액 */ , C.FFNLG_AMT /* 과태료 금액 */
, C.LEVY_AMT /* 부과 금액 */ , C.LEVY_AMT /* 부과 금액 */
, C.CRDN_STTS_CD /* 단속 상태 코드 */ , C.CRDN_STTS_CD /* 단속 상태 코드 */
, (SELECT FN_GET_CODE_NM('FIM010', C.CRDN_STTS_CD) FROM DUAL) AS CRDN_STTS_NM /* 단속 상태 명 */ , (SELECT FN_GET_CODE_NM('FIM010', C.CRDN_STTS_CD) FROM DUAL) AS CRDN_STTS_NM /* 단속 상태 명 */
, D.RTPYR_ID /* 납부자 ID */ , D.RTPYR_ID /* 납부자 ID */
, D.RTPYR_SE_CD /* 납부자 구분 코드 */ , D.RTPYR_SE_CD /* 납부자 구분 코드 */
, (SELECT FN_GET_CODE_NM('FIM011', D.RTPYR_SE_CD) FROM DUAL) AS RTPYR_SE_NM /* 납부자 구분 명 */ , (SELECT FN_GET_CODE_NM('FIM011', D.RTPYR_SE_CD) FROM DUAL) AS RTPYR_SE_NM /* 납부자 구분 명 */
, D.RTPYR_NO /* 납부자 번호 */ , D.RTPYR_NO /* 납부자 번호 */
, D.RTPYR_NM /* 납부자 명 */ , D.RTPYR_NM /* 납부자 명 */
, (SELECT FN_GET_BRDT_FORMAT(D.RTPYR_BRDT, '.') FROM DUAL) AS RTPYR_BRDT_FORMAT /* 납부자 생년월일 */ , (SELECT FN_GET_BRDT_FORMAT(D.RTPYR_BRDT, '.') FROM DUAL) AS RTPYR_BRDT_FORMAT /* 납부자 생년월일 */
, D.ZIP /* 우편번호 */ , D.ZIP /* 우편번호 */
, D.ADDR /* 주소 */ , D.ADDR /* 주소 */
, D.DTL_ADDR /* 상세 주소 */ , D.DTL_ADDR /* 상세 주소 */
FROM TB_OPNN_SBMSN A FROM TB_OPNN_SBMSN A
INNER JOIN TB_CRDN C ON (A.CRDN_ID = C.CRDN_ID) INNER JOIN TB_CRDN C ON (A.CRDN_ID = C.CRDN_ID)
LEFT OUTER JOIN TB_PAYER D ON (C.RTPYR_ID = D.RTPYR_ID) LEFT OUTER JOIN TB_PAYER D ON (C.RTPYR_ID = D.RTPYR_ID)
</sql> </sql>
<select id="selectOpnnSbmsnList" parameterType="map" resultType="dataobject">/* 의견제출 대장 목록 조회(excl02Mapper.selectOpnnSbmsnList) */ <select id="selectOpnnSbmsnList" parameterType="map" resultType="dataobject">/* 의견제출 대장 목록 조회(excl02Mapper.selectOpnnSbmsnList) */
@ -160,10 +160,10 @@
<if test="schOpnnSbmsnSttsCd != null"> <if test="schOpnnSbmsnSttsCd != null">
AND A.OPNN_SBMSN_STTS_CD = #{schOpnnSbmsnSttsCd} /* 의견 제출 상태 코드 */ AND A.OPNN_SBMSN_STTS_CD = #{schOpnnSbmsnSttsCd} /* 의견 제출 상태 코드 */
</if> </if>
<if test = "schVhrno != null"> <if test="schVhrno != null">
AND C.VHRNO = #{schVhrno} /* 차량번호 */ AND C.VHRNO = #{schVhrno} /* 차량번호 */
</if> </if>
<if test = "schSttrNm != null"> <if test="schSttrNm != null">
AND A.STTR_NM = #{schSttrNm} /* 진술자 명 */ AND A.STTR_NM = #{schSttrNm} /* 진술자 명 */
</if> </if>
<choose> <choose>
@ -200,51 +200,81 @@
<otherwise> <otherwise>
</otherwise> </otherwise>
</choose> </choose>
<if test="by != null and by != '' and term != null">
<choose>
<when test="mainOption == 'codeValue' or mainOption == 'match' or mainOption == 'ymd'">
<include refid="dynamicSearch.start" />
<choose>
<when test="by == 'rcptYmd'"> A.RCPT_YMD </when>
<when test="by == 'rcptNo'"> A.RCPT_NO </when>
<when test="by == 'rcptSeNm'"> A.RCPT_SE_CD </when>
<when test="by == 'ntfctnSeNm'"> A.NTFCTN_SE_CD </when>
<when test="by == 'sttrNm'"> A.STTR_NM </when>
<when test="by == 'opnnSbmsnSttsNm'"> A.OPNN_SBMSN_STTS_CD </when>
<when test="by == 'opnnSbmsnSeNm'"> A.OPNN_SBMSN_SE_CD </when>
<when test="by == 'opnnSbmsnGist'"> A.OPNN_SBMSN_GIST </when>
<when test="by == 'crdnYmd'"> C.CRDN_YMD </when>
<when test="by == 'vhrno'"> C.VHRNO </when>
<when test="by == 'crdnPlc'"> C.CRDN_PLC </when>
<when test="by == 'crdnSttsNm'"> C.CRDN_STTS_CD </when>
<when test="by == 'DOC_NO'"> A.DOC_NO </when>
<when test="by == 'ANS_YMD'"> A.ANS_YMD </when>
<when test="by == 'ANS_CN'"> A.ANS_CN </when>
<when test="by == 'rtpyrNm'"> D.RTPYR_NM </when>
<when test="by == 'rtpyrNo'"> D.RTPYR_NO </when>
<when test="by == 'rtpyrBrdt'"> D.RTPYR_BRDT </when>
</choose>
<include refid="dynamicSearch.center" />#{term}<include refid="dynamicSearch.end" />
</when>
<otherwise>
</otherwise>
</choose>
</if>
<include refid="utility.orderBy" /> <include refid="utility.orderBy" />
<include refid="utility.paging-suffix" /> <include refid="utility.paging-suffix" />
</select> </select>
<sql id="select"> <sql id="select">
SELECT A.OPNN_ID /* 의견 ID */ SELECT A.OPNN_ID /* 의견 ID */
, A.CRDN_ID /* 단속 ID */ , A.CRDN_ID /* 단속 ID */
, A.RCPT_NO /* 접수 번호 */ , A.RCPT_NO /* 접수 번호 */
, A.RCPT_YMD /* 접수 일자 */ , A.RCPT_YMD /* 접수 일자 */
, A.RCPT_SE_CD /* 접수 구분 코드 */ , A.RCPT_SE_CD /* 접수 구분 코드 */
, (SELECT FN_GET_CODE_NM('FIM029', A.RCPT_SE_CD) FROM DUAL) AS RCPT_SE_NM /* 접수 구분 코드 */ , (SELECT FN_GET_CODE_NM('FIM029', A.RCPT_SE_CD) FROM DUAL) AS RCPT_SE_NM /* 접수 구분 코드 */
, A.OWNR_REL_CD /* 소유주 관계 코드 */ , A.OWNR_REL_CD /* 소유주 관계 코드 */
, (SELECT FN_GET_CODE_NM('FIM032', A.OWNR_REL_CD) FROM DUAL) AS OWNR_REL_NM /* 소유주 관계 코드 */ , (SELECT FN_GET_CODE_NM('FIM032', A.OWNR_REL_CD) FROM DUAL) AS OWNR_REL_NM /* 소유주 관계 코드 */
, A.STTR_NM /* 진술자 명 */ , A.STTR_NM /* 진술자 명 */
, A.STTR_BRDT /* 진술자 생년월일 */ , A.STTR_BRDT /* 진술자 생년월일 */
, (SELECT FN_GET_BRDT_FORMAT(A.STTR_BRDT, '.') FROM DUAL) AS STTR_BRDT_FORMAT /* 납부자 생년월일 */ , (SELECT FN_GET_BRDT_FORMAT(A.STTR_BRDT, '.') FROM DUAL) AS STTR_BRDT_FORMAT /* 납부자 생년월일 */
, A.STTR_RRNO /* 진술자 주민등록번호 */ , A.STTR_RRNO /* 진술자 주민등록번호 */
, A.STTR_ADDR /* 진술자 주소 */ , A.STTR_ADDR /* 진술자 주소 */
, A.STTR_DADDR /* 진술자 상세주소 */ , A.STTR_DADDR /* 진술자 상세주소 */
, A.STTR_ZIP /* 진술자 우편번호 */ , A.STTR_ZIP /* 진술자 우편번호 */
, A.STTR_CTTPC /* 진술자 연락처 */ , A.STTR_CTTPC /* 진술자 연락처 */
, A.STTR_EML /* 진술자 이메일 */ , A.STTR_EML /* 진술자 이메일 */
, A.OPNN_SBMSN_CN /* 의견 제출 내용 */ , A.OPNN_SBMSN_CN /* 의견 제출 내용 */
, A.OPNN_SBMSN_SE_CD /* 의견 제출 구분 코드 */ , A.OPNN_SBMSN_SE_CD /* 의견 제출 구분 코드 */
, (SELECT FN_GET_CODE_NM('FIM033', A.OPNN_SBMSN_SE_CD) FROM DUAL) AS OPNN_SBMSN_SE_NM /* 의견 제출 구분 명 */ , (SELECT FN_GET_CODE_NM('FIM033', A.OPNN_SBMSN_SE_CD) FROM DUAL) AS OPNN_SBMSN_SE_NM /* 의견 제출 구분 명 */
, A.OPNN_SBMSN_GIST /* 의견 제출 요지 */ , A.OPNN_SBMSN_GIST /* 의견 제출 요지 */
, A.ATCH_FILE_CNT /* 첨부 파일 수 */ , A.ATCH_FILE_CNT /* 첨부 파일 수 */
, A.DOC_NO /* 문서 번호 */ , A.DOC_NO /* 문서 번호 */
, A.NTFCTN_SE_CD /* 통보 구분 코드 */ , A.NTFCTN_SE_CD /* 통보 구분 코드 */
, (SELECT FN_GET_CODE_NM('FIM030', A.NTFCTN_SE_CD) FROM DUAL) AS NTFCTN_SE_NM /* 통보 구분 코드 */ , (SELECT FN_GET_CODE_NM('FIM030', A.NTFCTN_SE_CD) FROM DUAL) AS NTFCTN_SE_NM /* 통보 구분 코드 */
, A.PIC_RVW_OPNN /* 담당자 검토 의견 */ , A.PIC_RVW_OPNN /* 담당자 검토 의견 */
, A.ANS_CN /* 답변 내용 */ , A.ANS_CN /* 답변 내용 */
, A.ANS_YMD /* 답변 일자 */ , A.ANS_YMD /* 답변 일자 */
, A.ANS_TM /* 답변 시각 */ , A.ANS_TM /* 답변 시각 */
, (CONCAT(A.ANS_YMD, A.ANS_TM)) AS ANS_YMD_TM /* 답변 일시 */ , (CONCAT(A.ANS_YMD, A.ANS_TM)) AS ANS_YMD_TM /* 답변 일시 */
, A.OPNN_SBMSN_STTS_CD /* 의견 제출 상태 코드 */ , A.OPNN_SBMSN_STTS_CD /* 의견 제출 상태 코드 */
, (SELECT FN_GET_CODE_NM('FIM031', A.OPNN_SBMSN_STTS_CD) FROM DUAL) AS OPNN_SBMSN_STTS_NM /* 의견 제출 상태 명 */ , (SELECT FN_GET_CODE_NM('FIM031', A.OPNN_SBMSN_STTS_CD) FROM DUAL) AS OPNN_SBMSN_STTS_NM /* 의견 제출 상태 명 */
, A.DEL_YN /* 삭제 여부 */ , A.DEL_YN /* 삭제 여부 */
, A.REG_DT /* 등록 일시 */ , A.REG_DT /* 등록 일시 */
, A.RGTR /* 등록자 */ , A.RGTR /* 등록자 */
, A.MDFCN_DT /* 수정 일시 */ , A.MDFCN_DT /* 수정 일시 */
, A.MDFR /* 수정자 */ , A.MDFR /* 수정자 */
, A.DEL_DT /* 삭제 일시 */ , A.DEL_DT /* 삭제 일시 */
, A.DLTR /* 삭제자 */ , A.DLTR /* 삭제자 */
, A.DEL_RSN /* 삭제 사유 */ , A.DEL_RSN /* 삭제 사유 */
FROM TB_OPNN_SBMSN A FROM TB_OPNN_SBMSN A
</sql> </sql>

@ -41,7 +41,7 @@
<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="fnResetAndChangeBiz${pageName}(this.value);" required> value="${item.code}" onchange="fnResetAndChangeBiz${pageName}(this.value);">
${item.value} ${item.value}
</label> </label>
</c:forEach> </c:forEach>
@ -70,7 +70,7 @@
<label class="form-label fw-bold form-search-title">부과제외구분</label> <label class="form-label fw-bold form-search-title">부과제외구분</label>
</div> </div>
<div class="col-5"> <div class="col-5">
<select class="form-select w-px-100" id="schLevyExclSeCd--${pageName}" name="schLevyExclSeCd"> <select class="form-select w-px-150" id="schLevyExclSeCd--${pageName}" name="schLevyExclSeCd">
<option value="">전체</option> <option value="">전체</option>
<c:forEach items="${FIM021List}" var="item"> <c:forEach items="${FIM021List}" var="item">
<option value="${item.code}">${item.value}</option> <option value="${item.code}">${item.value}</option>
@ -112,12 +112,12 @@
<!-- 동적검색 --> <!-- 동적검색 -->
<div class="col-1 text-end"> <div class="col-1 text-end">
<input type="hidden" id="by--${pageName}" name="by" /> <input type="hidden" id="by--${pageName}" name="by" />
<input type="text" class="form-control w-100 text-end" id="byOutput--${pageName}" value="동적 검색" readonly /> <input type="text" class="form-control w-px-120 text-end" id="byOutput--${pageName}" value="동적 검색" readonly />
</div> </div>
<div class="col-3"> <div class="col-3">
<input type="hidden" id="mainOption--${pageName}" name="mainOption" /> <input type="hidden" id="mainOption--${pageName}" name="mainOption" />
<input type="hidden" id="subOption--${pageName}" name="subOption" /> <input type="hidden" id="subOption--${pageName}" name="subOption" />
<input type="text" class="form-control" id="term--${pageName}" name="term" /> <input type="text" class="form-control w-px-250" id="term--${pageName}" name="term" />
</div> </div>
<div class="col-2"> <div class="col-2">
<!-- 상세 검색조건 버튼 --> <!-- 상세 검색조건 버튼 -->
@ -162,12 +162,6 @@
</div> </div>
<span class="container-window-btn-right"> <span class="container-window-btn-right">
<!-- 업무 버튼 --> <!-- 업무 버튼 -->
<button class="btn btn-primary" id="btnCreateNotLevy--${pageName}" title="비부과 등록" onclick="fnCreate${pageName}('1');">
비부과 등록
</button>
<button class="btn btn-primary" id="btnCreateWarning--${pageName}" title="계고 등록" onclick="fnCreate${pageName}('2');">
계고 등록
</button>
<button class="btn btn-primary" id="btnUpdate--${pageName}" title="수정" onclick="fnModify${pageName}();"> <button class="btn btn-primary" id="btnUpdate--${pageName}" title="수정" onclick="fnModify${pageName}();">
수정 수정
</button> </button>
@ -202,7 +196,7 @@
<th onclick="searchFromGridTitle('CRDN_PLC', this.innerText, 'match', 'part');">단속장소</th> <th onclick="searchFromGridTitle('CRDN_PLC', this.innerText, 'match', 'part');">단속장소</th>
<th onclick="searchFromGridTitle('CRDN_STTS_NM', this.innerText, 'codeValue', 'FIM010');">처리상태명</th> <th onclick="searchFromGridTitle('CRDN_STTS_NM', this.innerText, 'codeValue', 'FIM010');">처리상태명</th>
<th onclick="searchFromGridTitle('RTPYR_NM', this.innerText, 'match', 'part');">납부자명</th> <th onclick="searchFromGridTitle('RTPYR_NM', this.innerText, 'match', 'part');">납부자명</th>
<th onclick="searchFromGridTitle('RTPYR_BRDT', this.innerText, 'match', 'part');">납부자생년월일</th> <th onclick="searchFromGridTitle('RTPYR_BRDT', this.innerText, 'ymd', '');">납부자생일</th>
<th>등록일시</th> <th>등록일시</th>
<th>등록사용자</th> <th>등록사용자</th>
<th>수정일시</th> <th>수정일시</th>
@ -338,24 +332,6 @@
$("#btnRemove--${pageName}").prop("disabled", keys.length < 1); $("#btnRemove--${pageName}").prop("disabled", keys.length < 1);
}; };
// DataTables에 click, dbclick 이벤트
function renderList${pageName}() {
let ${infoPrefix}List = ${pageName}Control.dataset;
let empty = ${infoPrefix}List.empty;
let trs = empty ?
[document.getElementById("${infoPrefix}NotFound--${pageName}").innerHTML] : <%-- from template#${infoPrefix}NotFound --%>
${infoPrefix}List.inStrings(
document.getElementById("${infoPrefix}Row--${pageName}").innerHTML, <%-- from template#${infoPrefix}Row --%>
(str, dataItem) => str
.replace(/{onclick}/gi, "${pageName}Control.setCurrent('" + dataItem.getValue("LEVY_EXCL_ID") + "');")
.replace(/{ondblclick}/gi, "${pageName}Control.getTotalInfo('" + dataItem.getValue("CRDN_ID") + "');")
);
$("#tbody--${pageName}").html(trs.join());
$("th input[type='checkbox']").prop("checked", false);
}
// 개별총정보 dialog // 개별총정보 dialog
${pageName}Control.getTotalInfo = (params) => { ${pageName}Control.getTotalInfo = (params) => {
let info = ${pageName}Control.dataset.getCurrent("item"); let info = ${pageName}Control.dataset.getCurrent("item");
@ -455,18 +431,23 @@
}); });
} }
// 일자 포맷 // DataTables에 click, dbclick 이벤트
$("frmSearch--${pageName}").find(".form-date").each(function() { function renderList${pageName}() {
$(this).on("input",function() { let ${infoPrefix}List = ${pageName}Control.dataset;
let value = this.value.replaceAll("-", ""); let empty = ${infoPrefix}List.empty;
if (value.length > 7) { let trs = empty ?
this.value = value.substring(0, 4) + "-" + value.substring(4, 6) + "-" + value.substring(6); [document.getElementById("${infoPrefix}NotFound--${pageName}").innerHTML] : <%-- from template#${infoPrefix}NotFound --%>
} else if(value.length > 5){ ${infoPrefix}List.inStrings(
this.value = value.substring(0, 4) + "-" + value.substring(4); document.getElementById("${infoPrefix}Row--${pageName}").innerHTML, <%-- from template#${infoPrefix}Row --%>
} (str, dataItem) => str
}); .replace(/{onclick}/gi, "${pageName}Control.setCurrent('" + dataItem.getValue("LEVY_EXCL_ID") + "');")
}); .replace(/{ondblclick}/gi, "${pageName}Control.getTotalInfo('" + dataItem.getValue("CRDN_ID") + "');")
);
$("#tbody--${pageName}").html(trs.join());
$("th input[type='checkbox']").prop("checked", false);
}
/************************************************************************** /**************************************************************************
* function * function
@ -510,7 +491,7 @@
// 수정 // 수정
function fnModify${pageName}() { function fnModify${pageName}() {
let levyExclId = excl01010Control.dataset.getValue("LEVY_EXCL_ID"); let levyExclId = ${pageName}Control.dataset.getValue("LEVY_EXCL_ID");
// 부과 제외 ID 가 없다면.. return // 부과 제외 ID 가 없다면.. return
if (levyExclId == undefined || levyExclId == "") { if (levyExclId == undefined || levyExclId == "") {

@ -5,7 +5,6 @@
<div class="content-wrapper"> <div class="content-wrapper">
<!-- Content --> <!-- Content -->
<div class="container-xxl flex-grow-1 px-0"> <div class="container-xxl flex-grow-1 px-0">
<%--h4 id="pageTitle" class="fw-bold py-3 mb-4">페이지 제목</h4--%>
<c:set var="prefixName" scope="request">의견제출</c:set> <c:set var="prefixName" scope="request">의견제출</c:set>
<!-- Page Body --> <!-- Page Body -->
@ -14,10 +13,16 @@
<div> <div>
<!-- 상단 버튼 --> <!-- 상단 버튼 -->
<div class="container-page-btn"> <div class="container-page-btn">
<button type="button" class="btn btn-outline-dark" id="btnReset--${pageName}" title="초기화">초기화</button> <button type="button" class="btn btn-outline-dark" id="btnReset--${pageName}" title="초기화" onclick="fnReset${pageName}();">
초기화
</button>
<span class="container-window-btn-right"> <span class="container-window-btn-right">
<button type="button" class="btn btn-search" id="btnSearch--${pageName}" title="검색">검색</button> <button type="button" class="btn btn-search" id="btnSearch--${pageName}" title="검색" onclick="fnSearchList${pageName}();">
<button type="button" class="btn btn-search" id="btnExcel--${pageName}" title="엑셀">엑셀</button> 검색
</button>
<button type="button" class="btn btn-search" id="btnExcel--${pageName}" title="엑셀" onclick="fnExcel${pageName}();">
엑셀
</button>
</span> </span>
</div> </div>
<!-- / 상단 버튼 --> <!-- / 상단 버튼 -->
@ -35,10 +40,8 @@
<span class="form-search-linebox"> <span class="form-search-linebox">
<c:forEach items="${FIM054List}" var="item"> <c:forEach items="${FIM054List}" var="item">
<label> <label>
<input type="radio" class="form-check-input" id="rdoTaskSeCd--${pageName}" name="taskSeCd" alt="업무구분" <input type="radio" class="form-check-input" name="taskSeCd" alt="업무구분"
value="${item.code}" value="${item.code}" onchange="fnResetAndChangeBiz${pageName}(this.value);">
onchange="pageObject['${pageName}'].fnResetAndChangeBiz(this.value);"
required>
${item.value} ${item.value}
</label> </label>
</c:forEach> </c:forEach>
@ -68,7 +71,7 @@
<label class="form-label fw-bold form-search-title">의견제출상태</label> <label class="form-label fw-bold form-search-title">의견제출상태</label>
</div> </div>
<div class="col-5"> <div class="col-5">
<select id="schOpnnSbmsnSttsCd--${pageName}" name="schOpnnSbmsnSttsCd" class="form-select"> <select class="form-select w-px-150" id="schOpnnSbmsnSttsCd--${pageName}" name="schOpnnSbmsnSttsCd">
<option value="">전체</option> <option value="">전체</option>
<c:forEach items="${FIM031List}" var="item"> <c:forEach items="${FIM031List}" var="item">
<option value="${item.code}">${item.value}</option> <option value="${item.code}">${item.value}</option>
@ -80,14 +83,14 @@
<label class="form-label fw-bold form-search-title">차량번호</label> <label class="form-label fw-bold form-search-title">차량번호</label>
</div> </div>
<div class="col-5"> <div class="col-5">
<input type="text" class="form-control" id="schVhrno--${pageName}" name="schVhrno" /> <input type="text" class="form-control w-px-150" id="schVhrno--${pageName}" name="schVhrno" />
</div> </div>
<!-- 진술자명 --> <!-- 진술자명 -->
<div class="col-1 text-end"> <div class="col-1 text-end">
<label class="form-label fw-bold form-search-title">진술자명</label> <label class="form-label fw-bold form-search-title">진술자명</label>
</div> </div>
<div class="col-5"> <div class="col-5">
<input type="text" class="form-control" id="schSttrNm--${pageName}" name="schSttrNm" /> <input type="text" class="form-control w-px-150" id="schSttrNm--${pageName}" name="schSttrNm" />
</div> </div>
<!-- 등록일자 --> <!-- 등록일자 -->
<div class="col-1 text-end"> <div class="col-1 text-end">
@ -110,10 +113,12 @@
<!-- 동적검색 --> <!-- 동적검색 -->
<div class="col-1 text-end"> <div class="col-1 text-end">
<input type="hidden" id="by--${pageName}" name="by" /> <input type="hidden" id="by--${pageName}" name="by" />
<input type="text" class="form-control w-100 text-end" id="byOutput--${pageName}" value="동적 검색" readonly /> <input type="text" class="form-control w-px-120 text-end" id="byOutput--${pageName}" value="동적 검색" readonly />
</div> </div>
<div class="col-3"> <div class="col-3">
<input type="text" class="form-control" id="term--${pageName}" name="term" /> <input type="hidden" id="mainOption--${pageName}" name="mainOption" />
<input type="hidden" id="subOption--${pageName}" name="subOption" />
<input type="text" class="form-control w-px-250" id="term--${pageName}" name="term" />
</div> </div>
<div class="col-2"> <div class="col-2">
<!-- 상세 검색조건 버튼 --> <!-- 상세 검색조건 버튼 -->
@ -158,8 +163,15 @@
</div> </div>
<span class="container-window-btn-right"> <span class="container-window-btn-right">
<!-- 업무 버튼 --> <!-- 업무 버튼 -->
<a href="#" class="btn btn-blue" id="" title="업무처리1">업무 처리1</a> <button class="btn btn-primary" id="btnCreateNotLevy--${pageName}" title="등록" onclick="fnCreate${pageName}();">
<a href="#" class="btn btn-blue" id="" title="업무처리2">업무 처리2</a> 등록
</button>
<button class="btn btn-primary" id="btnUpdate--${pageName}" title="수정" onclick="fnModify${pageName}();">
수정
</button>
<button class="btn btn-primary" id="btnRemove--${pageName}" title="삭제" onclick="fnRemove${pageName}();">
삭제
</button>
</span> </span>
</span> </span>
</div> </div>
@ -172,62 +184,68 @@
<table class="datatables-ajax table table-bordered dataTable no-footer" <table class="datatables-ajax table table-bordered dataTable no-footer"
id="DataTables_Table_0--${pageName}" aria-describedby="DataTables_Table_0_info"> id="DataTables_Table_0--${pageName}" aria-describedby="DataTables_Table_0_info">
<thead> <thead>
<tr id="theadTr--${pageName}" style="text-align:center;"> <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="sorting" tabindex="0" aria-controls="DataTables_Table_0" rowspan="1" colspan="1" style="width: 24px;">NO.</th> <th class="sorting" style="width: 24px;">NO.</th>
<th class="sorting" tabindex="0" aria-controls="DataTables_Table_0" rowspan="1" colspan="1" style="width: 24px;"> <th class="sorting" style="width: 24px;">
<input type="checkbox" class="form-check-input" onchange="${pageName}Control.select(this.checked);"> <input type="checkbox" class="form-check-input" onchange="${pageName}Control.select(this.checked);">
</th> </th>
<th class="sorting" tabindex="0" aria-controls="DataTables_Table_0" rowspan="1" colspan="1" style="width: 120px;">접수일자</th> <th onclick="searchFromGridTitle('RCPT_YMD', this.innerText, 'ymd', '');">접수일자</th>
<th class="sorting" tabindex="0" aria-controls="DataTables_Table_0" rowspan="1" colspan="1" style="width: 120px;">접수번호</th> <th onclick="searchFromGridTitle('RCPT_NO', this.innerText, 'match', 'part');">접수번호</th>
<th class="sorting" tabindex="0" aria-controls="DataTables_Table_0" rowspan="1" colspan="1" style="width: 120px;">접수구분명</th> <th onclick="searchFromGridTitle('RCPT_SE_NM', this.innerText, 'codeValue', 'FIM029');">접수구분명</th>
<th class="sorting" tabindex="0" aria-controls="DataTables_Table_0" rowspan="1" colspan="1" style="width: 120px;">통보구분명</th> <th onclick="searchFromGridTitle('NTFCTN_SE_NM', this.innerText, 'codeValue', 'FIM030');">통보구분명</th>
<th class="sorting" tabindex="0" aria-controls="DataTables_Table_0" rowspan="1" colspan="1" style="width: 120px;">진술자명</th> <th onclick="searchFromGridTitle('STTR_NM', this.innerText, 'match', 'part');">진술자명</th>
<th class="sorting" tabindex="0" aria-controls="DataTables_Table_0" rowspan="1" colspan="1" style="width: 120px;">단속일시</th> <th onclick="searchFromGridTitle('OPNN_SBMSN_STTS_NM', this.innerText, 'codeValue', 'FIM031');">의견제출상태</th>
<th class="sorting" tabindex="0" aria-controls="DataTables_Table_0" rowspan="1" colspan="1" style="width: 120px;">차량번호</th> <th onclick="searchFromGridTitle('OPNN_SBMSN_SE_NM', this.innerText, 'codeValue', 'FIM033');">의견제출분류</th>
<th class="sorting" tabindex="0" aria-controls="DataTables_Table_0" rowspan="1" colspan="1" style="width: 120px;">단속장소</th> <th onclick="searchFromGridTitle('OPNN_SBMSN_GIST', this.innerText, 'match', 'part');">의견제출요지</th>
<th class="sorting" tabindex="0" aria-controls="DataTables_Table_0" rowspan="1" colspan="1" style="width: 80px;">의견제출상태</th> <th onclick="searchFromGridTitle('CRDN_YMD', this.innerText, 'ymd', '');">단속일시</th>
<th class="sorting" tabindex="0" aria-controls="DataTables_Table_0" rowspan="1" colspan="1" style="width: 120px;">의견제출분류</th> <th onclick="searchFromGridTitle('VHRNO', this.innerText, 'match', 'part');">차량번호</th>
<th class="sorting" tabindex="0" aria-controls="DataTables_Table_0" rowspan="1" colspan="1" style="width: 320px;">의견제출요지</th> <th onclick="searchFromGridTitle('CRDN_PLC', this.innerText, 'match', 'part');">단속장소</th>
<th class="sorting" tabindex="0" aria-controls="DataTables_Table_0" rowspan="1" colspan="1" style="width: 120px;">문서번호</th> <th onclick="searchFromGridTitle('CRDN_STTS_NM', this.innerText, 'codeValue', 'FIM010');">처리상태명</th>
<th class="sorting" tabindex="0" aria-controls="DataTables_Table_0" rowspan="1" colspan="1" style="width: 120px;">답변일자</th> <th onclick="searchFromGridTitle('DOC_NO', this.innerText, 'ymd', '');">문서번호</th>
<th class="sorting" tabindex="0" aria-controls="DataTables_Table_0" rowspan="1" colspan="1" style="width: 320px;">답변내용</th> <th onclick="searchFromGridTitle('ANS_YMD', this.innerText, 'ymd', '');">답변일자</th>
<th class="sorting" tabindex="0" aria-controls="DataTables_Table_0" rowspan="1" colspan="1" style="width: 120px;">등록일시</th> <th onclick="searchFromGridTitle('ANS_CN', this.innerText, 'match', 'part');">답변내용</th>
<th class="sorting" tabindex="0" aria-controls="DataTables_Table_0" rowspan="1" colspan="1" style="width: 120px;">등록사용자</th> <th onclick="searchFromGridTitle('RTPYR_NM', this.innerText, 'match', 'part');">납부자명</th>
<th class="sorting" tabindex="0" aria-controls="DataTables_Table_0" rowspan="1" colspan="1" style="width: 120px;">수정일시</th> <th onclick="searchFromGridTitle('RTPYR_BRDT', this.innerText, 'ymd', '');">납부자생일</th>
<th class="sorting" tabindex="0" aria-controls="DataTables_Table_0" rowspan="1" colspan="1" style="width: 120px;">수정사용자</th> <th>등록일시</th>
<th>등록사용자</th>
<th>수정일시</th>
<th>수정사용자</th>
</tr> </tr>
</thead> </thead>
<tbody id="tbody--${pageName}"> <tbody id="tbody--${pageName}">
</tbody> </tbody>
<template id="${infoPrefix}Row--${pageName}"> <template id="${infoPrefix}Row--${pageName}">
<tr data-key="{OPNN_ID}"> <tr data-key="OPNN_ID">
<td style="text-align:center;" {onclick} {ondblclick}>{ROW_NUM}</td> <td class="text-center" onclick="{onclick}" ondblclick="{ondblclick}">{ROW_NUM}</td>
<td style="text-align:center;"> <td class="text-center">
<input value="{OPNN_ID}" onchange="${pageName}Control.select('{OPNN_ID}', this.checked);" type="checkbox" class="form-check-input"> <input type="checkbox" class="form-check-input" value="{OPNN_ID}" onchange="${pageName}Control.select('{OPNN_ID}', this.checked);">
</td> </td>
<td style="text-align:center;" {onclick} {ondblclick}>{RCPT_YMD}</td> <td class="text-center" onclick="{onclick}" ondblclick="{ondblclick}">{RCPT_YMD}</td>
<td style="text-align:center;" {onclick} {ondblclick}>{RCPT_NO}</td> <td class="text-center" onclick="{onclick}" ondblclick="{ondblclick}">{RCPT_NO}</td>
<td style="text-align:center;" {onclick} {ondblclick}>{RCPT_SE_NM}</td> <td class="text-center" onclick="{onclick}" ondblclick="{ondblclick}">{RCPT_SE_NM}</td>
<td style="text-align:center;" {onclick} {ondblclick}>{NTFCTN_SE_NM}</td> <td class="text-center" onclick="{onclick}" ondblclick="{ondblclick}">{NTFCTN_SE_NM}</td>
<td style="text-align:left;" {onclick} {ondblclick}>{STTR_NM}</td> <td class="text-start" onclick="{onclick}" ondblclick="{ondblclick}">{STTR_NM}</td>
<td style="text-align:center;" {onclick} {ondblclick}>{CRDN_YMD_TM}</td> <td class="text-center" onclick="{onclick}" ondblclick="{ondblclick}">{OPNN_SBMSN_STTS_NM}</td>
<td style="text-align:left;" {onclick} {ondblclick}>{VHRNO}</td> <td class="text-center" onclick="{onclick}" ondblclick="{ondblclick}">{OPNN_SBMSN_SE_NM}</td>
<td style="text-align:left;" {onclick} {ondblclick}>{CRDN_PLC}</td> <td class="text-start" onclick="{onclick}" ondblclick="{ondblclick}">{OPNN_SBMSN_GIST}</td>
<td style="text-align:center;" {onclick} {ondblclick}>{OPNN_SBMSN_STTS_NM}</td> <td class="text-center" onclick="{onclick}" ondblclick="{ondblclick}">{CRDN_YMD_TM}</td>
<td style="text-align:center;" {onclick} {ondblclick}>{OPNN_SBMSN_SE_NM}</td> <td class="text-start" onclick="{onclick}" ondblclick="{ondblclick}">{VHRNO}</td>
<td style="text-align:left;" {onclick} {ondblclick}>{OPNN_SBMSN_GIST}</td> <td class="text-start" onclick="{onclick}" ondblclick="{ondblclick}">{CRDN_PLC}</td>
<td style="text-align:left;" {onclick} {ondblclick}>{DOC_NO}</td> <td class="text-center" onclick="{onclick}" ondblclick="{ondblclick}">{CRDN_STTS_NM}</td>
<td style="text-align:left;" {onclick} {ondblclick}>{ANS_YMD}</td> <td class="text-center" onclick="{onclick}" ondblclick="{ondblclick}">{DOC_NO}</td>
<td style="text-align:left;" {onclick} {ondblclick}>{ANS_CN}</td> <td class="text-center" onclick="{onclick}" ondblclick="{ondblclick}">{ANS_YMD}</td>
<td style="text-align:center;" {onclick} {ondblclick}>{REG_DT}</td> <td class="text-start" onclick="{onclick}" ondblclick="{ondblclick}">{ANS_CN}</td>
<td style="text-align:center;" {onclick} {ondblclick}>{RGTR}</td> <td class="text-start" onclick="{onclick}" ondblclick="{ondblclick}">{RTPYR_NM}</td>
<td style="text-align:center;" {onclick} {ondblclick}>{MDFCN_DT}</td> <td class="text-center" onclick="{onclick}" ondblclick="{ondblclick}">{RTPYR_BRDT_FORMAT}</td>
<td style="text-align:center;" {onclick} {ondblclick}>{MDFR}</td> <td class="text-center" onclick="{onclick}" ondblclick="{ondblclick}">{REG_DT}</td>
<td class="text-center" onclick="{onclick}" ondblclick="{ondblclick}">{RGTR}</td>
<td class="text-center" onclick="{onclick}" ondblclick="{ondblclick}">{MDFCN_DT}</td>
<td class="text-center" onclick="{onclick}" ondblclick="{ondblclick}">{MDFR}</td>
</tr> </tr>
</template> </template>
<template id="${infoPrefix}NotFound--${pageName}"> <template id="${infoPrefix}NotFound--${pageName}">
<tr class="odd"> <tr class="odd">
<td valign="top" colspan="14" class="dataTables_empty text-center">${prefixName} 정보를 찾지 못했습니다.</td> <td valign="top" colspan="23" class="dataTables_empty text-center">${prefixName} 정보를 찾지 못했습니다.</td>
</tr> </tr>
</template> </template>
</table> </table>
@ -249,71 +267,46 @@
</div> </div>
<!-- Content wrapper --> <!-- Content wrapper -->
<!-- js -->
<script src="<c:url value="/resources/js/fims/excl/excl02010.js?${ver}"/>"></script>
<script> <script>
/************************************************************************** /**************************************************************************
* Global Variable * Global Variable
**************************************************************************/ **************************************************************************/
// Control 생성 // URL
var ${pageName}Control = new OpnnSbmsnControl("${urlPrefix}"); var prefixUrl = "/excl/excl02";
// 공통 코드
/************************************************************************** /**************************************************************************
* 초기 셋팅 * DatasetControl
**************************************************************************/ **************************************************************************/
// 검색조건 초기값 셋팅 var ${pageName}Control = new DatasetControl({
function initSearch${pageName}() { prefix : "opnnSbmsn"
// 업무구분 , prefixName : "의견제출"
let defaultBizValue = $("#layout-navbar input[name='taskSeCd']:checked").val(); , infoSize : "lg"
$("#frmSearch--${pageName} input[name='taskSeCd'][value='" + defaultBizValue + "']").prop("checked",true); , keymapper : info => info ? info.OPNN_ID : ""
, dataGetter : obj => obj.opnnSbmsnList
// 달력 초기화 , appendData : true
initDatepicker("frmSearch--${pageName}"); , urls : {
$("#schDateFrom--${pageName}").datepicker("setDate", DateUtil.getDateDay(-365).date); load : wctx.url(prefixUrl + "/010/list.do") // 검색
$("#schDateTo--${pageName}").datepicker("setDate", new Date()); , getInfo : wctx.url(prefixUrl + "/020/info.do") // 등록 및 수정 팝업
} , create : wctx.url(prefixUrl + "/020/create.do") // 신규 등록
, update : wctx.url(prefixUrl + "/020/update.do") // 자료 수정
// , remove : wctx.url(prefixUrl + "/010/remove.do") // 자료 삭제
function setEvent${pageName}() { , getTotalInfo : wctx.url("/sprt/sprt01/020/info.do") // 개별총정보
// 버튼 이벤트 }
$("#btnSearch--${pageName}").on("click", () => searchList${pageName}()); // 검색 , formats : {
$("#term--${pageName}").onEnterPress(() => searchList${pageName}()); // 동적 검색 RCPT_YMD : dateFormat
, ANS_YMD : dateFormat
// DataTables 스크롤 이벤트 , ANS_YMD_TM : datetimeFormat
$("#table-responsive--${pageName}").scroll(function() { , CRDN_YMD_TM : dateFormat
let el = $(this); , REG_DT : datetimeFormat
, MDFCN_DT : datetimeFormat
if (el.scrollTop() == 0) return; }
});
if ((el[0].scrollHeight - el.scrollTop() + 15) == el.outerHeight()) {
searchList${pageName}(${pageName}Control.query.pageNum + 1);
}
});
}
/************************************************************************** /**************************************************************************
* Event * DatasetControl
**************************************************************************/ **************************************************************************/
// DataTables에 click, dbclick 이벤트 // onDatasetChange 이벤트
function renderList${pageName}() {
let ${infoPrefix}List = ${pageName}Control.dataset;
let empty = ${infoPrefix}List.empty;
let trs = empty ?
[document.getElementById("${infoPrefix}NotFound--${pageName}").innerHTML] : <%-- from template#${infoPrefix}NotFound --%>
${infoPrefix}List.inStrings(
document.getElementById("${infoPrefix}Row--${pageName}").innerHTML, <%-- from template#${infoPrefix}Row --%>
(str, dataItem) => str
.replace(/{onclick}/gi, 'onclick="${pageName}Control.setCurrent(\'' + dataItem.getValue("OPNN_ID") + '\');"')
.replace(/{ondblclick}/gi, 'ondblclick="${pageName}Control.getInfo(\'' + 'opnnId=' + dataItem.getValue("OPNN_ID") + '\')"')
);
$("#tbody--${pageName}").html(trs.join());
$("th input[type='checkbox']").prop("checked", false);
}
// Dataset 변경
${pageName}Control.onDatasetChange = obj => { ${pageName}Control.onDatasetChange = obj => {
renderList${pageName}(); renderList${pageName}();
@ -327,7 +320,7 @@
}); });
}; };
// DataTables 클릭 이벤트 // onCurrentChange 이벤트
${pageName}Control.onCurrentChange = item => { ${pageName}Control.onCurrentChange = item => {
// //
if (!item) return; if (!item) return;
@ -337,7 +330,7 @@
$("#tbody--${pageName}").setCurrentRow(key); $("#tbody--${pageName}").setCurrentRow(key);
}; };
// DataTables checkbox 클릭 이벤트 // onSelectionChange 이벤트
${pageName}Control.onSelectionChange = selected => { ${pageName}Control.onSelectionChange = selected => {
let ${infoPrefix}List = ${pageName}Control.dataset; let ${infoPrefix}List = ${pageName}Control.dataset;
let keys = selected.map(e => ${infoPrefix}List.getKey(e)); let keys = selected.map(e => ${infoPrefix}List.getKey(e));
@ -348,26 +341,82 @@
checkbox.prop("checked", keys.includes(checkbox.val())); checkbox.prop("checked", keys.includes(checkbox.val()));
}); });
// $("#btnRemove${infoPrefix}s").prop("disabled", keys.length < 1); $("#btnRemove--${pageName}").prop("disabled", keys.length < 1);
}; };
// 개별총정보 dialog
${pageName}Control.getTotalInfo = (params) => {
let info = ${pageName}Control.dataset.getCurrent("item");
ajax.get({
url : ${pageName}Control.urls.getTotalInfo
, data : params || {}
, success : resp => {
resp = resp.replace(/infoPrefix/g, this.prefix)
.replace(/prefixName/g, this.prefixName)
dialog.open({
id : ${pageName}Control.prefixed("dialog")
, title : "개별총정보"
, content : resp
, size : ${pageName}Control.infoSize
, init : () => ${pageName}Control.setInfo(info)
});
}
});
}
/************************************************************************** /**************************************************************************
* function *
**************************************************************************/ **************************************************************************/
// 검색 // 초기 설정
function searchList${pageName}(pageNumber) { function initForm${pageName}() {
// pageNumber 값 확인 // 달력 초기화
if (!pageNumber) pageNumber = 1; initDatepicker("frmSearch--${pageName}");
$("#schDateFrom--${pageName}").datepicker("setDate", DateUtil.getDateDay(-365).date);
$("#schDateTo--${pageName}").datepicker("setDate", new Date());
${pageName}Control.query = fnGetParams${pageName}(); // 검색조건 ${pageName}Control.dataset.clear();
${pageName}Control.query.orderBy = "OPNN_ID"; // 정렬 }
${pageName}Control.load(pageNumber); // 이벤트
function setEvent${pageName}() {
// DataTables 스크롤 이벤트
$("#table-responsive--${pageName}").scroll(function() {
let el = $(this);
if (el.scrollTop() == 0) return;
if ((el[0].scrollHeight - el.scrollTop() + 17) == el.outerHeight()) {
fnSearchList${pageName}(${pageName}Control.query.pageNum + 1);
}
});
} }
// DataTables에 click, dbclick 이벤트
function renderList${pageName}() {
let ${infoPrefix}List = ${pageName}Control.dataset;
let empty = ${infoPrefix}List.empty;
let trs = empty ?
[document.getElementById("${infoPrefix}NotFound--${pageName}").innerHTML] : <%-- from template#${infoPrefix}NotFound --%>
${infoPrefix}List.inStrings(
document.getElementById("${infoPrefix}Row--${pageName}").innerHTML, <%-- from template#${infoPrefix}Row --%>
(str, dataItem) => str
.replace(/{onclick}/gi, "${pageName}Control.setCurrent('" + dataItem.getValue("OPNN_ID") + "');")
.replace(/{ondblclick}/gi, "${pageName}Control.getTotalInfo('" + dataItem.getValue("CRDN_ID") + "');")
);
$("#tbody--${pageName}").html(trs.join());
$("th input[type='checkbox']").prop("checked", false);
}
/**************************************************************************
* function
**************************************************************************/
// 업무구분 변경 // 업무구분 변경
function fnResetAndChangeBiz(taskSeCd) { function fnResetAndChangeBiz${pageName}(taskSeCd) {
$("tbody--${pageName}").html(""); fnReset${pageName}();
} }
// 검색 조건 파라미터 가져오기 // 검색 조건 파라미터 가져오기
@ -381,17 +430,68 @@
return formData; return formData;
} }
// 초기화
function fnReset${pageName}() {
initForm${pageName}();
}
// 검색
function fnSearchList${pageName}(pageNumber) {
// pageNumber 값 확인
if (!pageNumber) pageNumber = 1;
${pageName}Control.query = fnGetParams${pageName}(); // 검색조건
${pageName}Control.query.orderBy = "OPNN_ID"; // 정렬
${pageName}Control.load(pageNumber);
}
// 엑셀
function fnExcel${pageName}() {
}
// 수정
function fnModify${pageName}() {
let opnnId = ${pageName}Control.dataset.getValue("OPNN_ID");
// 부과 제외 ID 가 없다면.. return
if (opnnId == undefined || opnnId == "") {
return;
}
let params = {
opnnId : opnnId
};
${pageName}Control.getInfo(params);
}
// 삭제
function fnRemove${pageName}() {
dialog.alert({
content : "선택한 ${prefixName} 정보를 삭제하시겠습니까?"
, onOK : () => {
${pageName}Control.remove();
}
});
}
/************************************************************************** /**************************************************************************
* script 진입 * script 진입
**************************************************************************/ **************************************************************************/
$(document).ready(function() { $(document).ready(function() {
// 검색조건 초기값 설정 // 업무구분 및 화면 초기 설정
initSearch${pageName}(); let defaultBizValue = $("#layout-navbar input[name='taskSeCd']:checked").val();
$("#frmSearch--${pageName} input[name='taskSeCd'][value='" + defaultBizValue + "']").prop("checked", true);
fnResetAndChangeBiz${pageName}(defaultBizValue);
// 이벤트 설정 // 이벤트 설정
setEvent${pageName}(); setEvent${pageName}();
${pageName}Control.addData(${opnnSbmsn}); // Dataset 셋팅 - List 일경우 addData 하여 자료를 추가
${pageName}Control.addData(${levyExcl});
}); });
// #sourceURL=excl02010-main.jsp // #sourceURL=excl02010-main.jsp

@ -1,28 +0,0 @@
class OpnnSbmsnControl extends DatasetControl {
constructor(prefixUrl) {
let conf = {
prefix : "opnnSbmsn"
, prefixName : "의견제출"
, infoSize : "xl"
, keymapper : info => info ? info.OPNN_ID : ""
, dataGetter : obj => obj.opnnSbmsnList
, appendData : true
, urls : {
load : wctx.url(prefixUrl + "/010/list.do")
, getInfo : wctx.url(prefixUrl + "/020/info.do")
, create : wctx.url(prefixUrl + "/020/create.do")
, update : wctx.url(prefixUrl + "/020/update.do")
, remove : wctx.url(prefixUrl + "/020/remove.do")
}
, formats : {
RCPT_YMD : dateFormat
, ANS_YMD : dateFormat
, ANS_YMD_TM : datetimeFormat
, CRDN_YMD_TM : datetimeFormat
, REG_DT : datetimeFormat
, MDFCN_DT : datetimeFormat
}
}
super(conf);
}
}

@ -1,25 +0,0 @@
class CrdnReControl extends DatasetControl {
constructor(prefixUrl) {
let conf = {
prefix : "crdnRe"
, prefixName : "단속재등록"
, infoSize : "xl"
, keymapper : info => info ? info.RE_REG_ID : ""
, dataGetter : obj => obj.crdnReList
, appendData : true
, urls : {
load : wctx.url(prefixUrl + "/010/list.do")
, create : wctx.url(prefixUrl + "/010/create.do")
, update : wctx.url(prefixUrl + "/010/update.do")
, remove : wctx.url(prefixUrl + "/010/remove.do")
}
, formats : {
CRDN_REG_YMD : dateFormat
, CRDN_YMD_TM : datetimeFormat
, REG_DT : datetimeFormat
}
}
super(conf);
}
}
Loading…
Cancel
Save