의견제출 관리 수정.

main
jjh 1 year ago
parent 0331ce5535
commit af02617b05

@ -29,20 +29,20 @@ public interface Excl01Mapper extends AbstractMapper {
*/
List<DataObject> selectLevyExclList(Excl01Query req);
/** .
/** .
* @param req
* @return
* @return
*/
List<DataObject> selectLevyExcls(Excl01Query req);
/** ID .
/** ID .
* @param levyExclId ID
* @return
* @return
*/
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
* @return
*/
List<Excl02> selectOpnnSbmsns(Excl02Query req);
List<DataObject> selectOpnnSbmsns(Excl02Query req);
/** ID .
* @param levyExclId ID
* @return
/** ID .
* @param opnnId ID
* @return
*/
DataObject selectOpnnSbmsnInfo(Excl02Query req);
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
* @return
*/
List<Excl02> getOpinionSubmissions(Excl02Query req);
List<DataObject> getOpinionSubmissions(Excl02Query req);
/** ID .<br />
* @param opnnId ID

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

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

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

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

@ -51,76 +51,76 @@
</resultMap>
<sql id="selectList">
SELECT A.OPNN_ID /* 의견 ID */
, A.CRDN_ID /* 단속 ID */
, A.RCPT_NO /* 접수 번호 */
, A.RCPT_YMD /* 접수 일자 */
, A.RCPT_SE_CD /* 접수 구분 코드 */
SELECT A.OPNN_ID /* 의견 ID */
, A.CRDN_ID /* 단속 ID */
, A.RCPT_NO /* 접수 번호 */
, A.RCPT_YMD /* 접수 일자 */
, A.RCPT_SE_CD /* 접수 구분 코드 */
, (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 /* 소유주 관계 코드 */
, A.STTR_NM /* 진술자 명 */
, A.STTR_BRDT /* 진술자 생년월일 */
, A.STTR_NM /* 진술자 명 */
, A.STTR_BRDT /* 진술자 생년월일 */
, (SELECT FN_GET_BRDT_FORMAT(A.STTR_BRDT, '.') FROM DUAL) AS STTR_BRDT_FORMAT /* 납부자 생년월일 */
, A.STTR_RRNO /* 진술자 주민등록번호 */
, A.STTR_ADDR /* 진술자 주소 */
, A.STTR_DADDR /* 진술자 상세주소 */
, A.STTR_ZIP /* 진술자 우편번호 */
, A.STTR_CTTPC /* 진술자 연락처 */
, A.STTR_EML /* 진술자 이메일 */
, A.OPNN_SBMSN_CN /* 의견 제출 내용 */
, A.OPNN_SBMSN_SE_CD /* 의견 제출 구분 코드 */
, A.STTR_RRNO /* 진술자 주민등록번호 */
, A.STTR_ADDR /* 진술자 주소 */
, A.STTR_DADDR /* 진술자 상세주소 */
, A.STTR_ZIP /* 진술자 우편번호 */
, A.STTR_CTTPC /* 진술자 연락처 */
, A.STTR_EML /* 진술자 이메일 */
, A.OPNN_SBMSN_CN /* 의견 제출 내용 */
, A.OPNN_SBMSN_SE_CD /* 의견 제출 구분 코드 */
, (SELECT FN_GET_CODE_NM('FIM033', A.OPNN_SBMSN_SE_CD) FROM DUAL) AS OPNN_SBMSN_SE_NM /* 의견 제출 구분 명 */
, A.OPNN_SBMSN_GIST /* 의견 제출 요지 */
, A.ATCH_FILE_CNT /* 첨부 파일 수 */
, A.DOC_NO /* 문서 번호 */
, A.NTFCTN_SE_CD /* 통보 구분 코드 */
, A.OPNN_SBMSN_GIST /* 의견 제출 요지 */
, A.ATCH_FILE_CNT /* 첨부 파일 수 */
, A.DOC_NO /* 문서 번호 */
, A.NTFCTN_SE_CD /* 통보 구분 코드 */
, (SELECT FN_GET_CODE_NM('FIM030', A.NTFCTN_SE_CD) FROM DUAL) AS NTFCTN_SE_NM /* 통보 구분 코드 */
, A.PIC_RVW_OPNN /* 담당자 검토 의견 */
, A.ANS_CN /* 답변 내용 */
, A.ANS_YMD /* 답변 일자 */
, A.ANS_TM /* 답변 시각 */
, A.PIC_RVW_OPNN /* 담당자 검토 의견 */
, A.ANS_CN /* 답변 내용 */
, A.ANS_YMD /* 답변 일자 */
, A.ANS_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 /* 의견 제출 상태 명 */
, A.DEL_YN /* 삭제 여부 */
, A.REG_DT /* 등록 일시 */
, A.RGTR /* 등록자 */
, A.MDFCN_DT /* 수정 일시 */
, A.MDFR /* 수정자 */
, A.DEL_DT /* 삭제 일시 */
, A.DLTR /* 삭제자 */
, A.DEL_RSN /* 삭제 사유 */
, C.SGG_CD /* 시군구 코드 */
, C.TASK_SE_CD /* 업무 구분 코드 */
, C.CRDN_INPT_SE_CD /* 단속 입력 구분 코드 */
, A.DEL_YN /* 삭제 여부 */
, A.REG_DT /* 등록 일시 */
, A.RGTR /* 등록자 */
, A.MDFCN_DT /* 수정 일시 */
, A.MDFR /* 수정자 */
, A.DEL_DT /* 삭제 일시 */
, A.DLTR /* 삭제자 */
, A.DEL_RSN /* 삭제 사유 */
, C.SGG_CD /* 시군구 코드 */
, C.TASK_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 /* 단속 입력 구분 명 */
, C.CRDN_SE_CD /* 단속 구분 코드 */
, C.CRDN_SE_CD /* 단속 구분 코드 */
, (SELECT FN_GET_CODE_NM('FIM002', C.CRDN_SE_CD) FROM DUAL) AS CRDN_SE_NM /* 단속 구분 명 */
, C.CRDN_YMD /* 단속 일자 */
, C.CRDN_TM /* 단속 시각 */
, 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.DTL_CRDN_PLC /* 상세 단속 장소 */
, C.FFNLG_AMT /* 과태료 금액 */
, C.LEVY_AMT /* 부과 금액 */
, C.CRDN_STTS_CD /* 단속 상태 코드 */
, C.VHRNO /* 차량번호 */
, C.CRDN_STDG_NM /* 단속 법정동 명 */
, C.CRDN_ROAD_NM /* 단속 도로 명 */
, C.CRDN_PLC /* 단속 장소 */
, C.DTL_CRDN_PLC /* 상세 단속 장소 */
, C.FFNLG_AMT /* 과태료 금액 */
, C.LEVY_AMT /* 부과 금액 */
, C.CRDN_STTS_CD /* 단속 상태 코드 */
, (SELECT FN_GET_CODE_NM('FIM010', C.CRDN_STTS_CD) FROM DUAL) AS CRDN_STTS_NM /* 단속 상태 명 */
, D.RTPYR_ID /* 납부자 ID */
, D.RTPYR_SE_CD /* 납부자 구분 코드 */
, D.RTPYR_ID /* 납부자 ID */
, D.RTPYR_SE_CD /* 납부자 구분 코드 */
, (SELECT FN_GET_CODE_NM('FIM011', D.RTPYR_SE_CD) FROM DUAL) AS RTPYR_SE_NM /* 납부자 구분 명 */
, D.RTPYR_NO /* 납부자 번호 */
, D.RTPYR_NM /* 납부자 명 */
, D.RTPYR_NO /* 납부자 번호 */
, D.RTPYR_NM /* 납부자 명 */
, (SELECT FN_GET_BRDT_FORMAT(D.RTPYR_BRDT, '.') FROM DUAL) AS RTPYR_BRDT_FORMAT /* 납부자 생년월일 */
, D.ZIP /* 우편번호 */
, D.ADDR /* 주소 */
, D.DTL_ADDR /* 상세 주소 */
, D.ZIP /* 우편번호 */
, D.ADDR /* 주소 */
, D.DTL_ADDR /* 상세 주소 */
FROM TB_OPNN_SBMSN A
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)
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)
</sql>
<select id="selectOpnnSbmsnList" parameterType="map" resultType="dataobject">/* 의견제출 대장 목록 조회(excl02Mapper.selectOpnnSbmsnList) */
@ -160,10 +160,10 @@
<if test="schOpnnSbmsnSttsCd != null">
AND A.OPNN_SBMSN_STTS_CD = #{schOpnnSbmsnSttsCd} /* 의견 제출 상태 코드 */
</if>
<if test = "schVhrno != null">
<if test="schVhrno != null">
AND C.VHRNO = #{schVhrno} /* 차량번호 */
</if>
<if test = "schSttrNm != null">
<if test="schSttrNm != null">
AND A.STTR_NM = #{schSttrNm} /* 진술자 명 */
</if>
<choose>
@ -200,51 +200,81 @@
<otherwise>
</otherwise>
</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.paging-suffix" />
</select>
<sql id="select">
SELECT A.OPNN_ID /* 의견 ID */
, A.CRDN_ID /* 단속 ID */
, A.RCPT_NO /* 접수 번호 */
, A.RCPT_YMD /* 접수 일자 */
, A.RCPT_SE_CD /* 접수 구분 코드 */
SELECT A.OPNN_ID /* 의견 ID */
, A.CRDN_ID /* 단속 ID */
, A.RCPT_NO /* 접수 번호 */
, A.RCPT_YMD /* 접수 일자 */
, A.RCPT_SE_CD /* 접수 구분 코드 */
, (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 /* 소유주 관계 코드 */
, A.STTR_NM /* 진술자 명 */
, A.STTR_BRDT /* 진술자 생년월일 */
, A.STTR_NM /* 진술자 명 */
, A.STTR_BRDT /* 진술자 생년월일 */
, (SELECT FN_GET_BRDT_FORMAT(A.STTR_BRDT, '.') FROM DUAL) AS STTR_BRDT_FORMAT /* 납부자 생년월일 */
, A.STTR_RRNO /* 진술자 주민등록번호 */
, A.STTR_ADDR /* 진술자 주소 */
, A.STTR_DADDR /* 진술자 상세주소 */
, A.STTR_ZIP /* 진술자 우편번호 */
, A.STTR_CTTPC /* 진술자 연락처 */
, A.STTR_EML /* 진술자 이메일 */
, A.OPNN_SBMSN_CN /* 의견 제출 내용 */
, A.OPNN_SBMSN_SE_CD /* 의견 제출 구분 코드 */
, A.STTR_RRNO /* 진술자 주민등록번호 */
, A.STTR_ADDR /* 진술자 주소 */
, A.STTR_DADDR /* 진술자 상세주소 */
, A.STTR_ZIP /* 진술자 우편번호 */
, A.STTR_CTTPC /* 진술자 연락처 */
, A.STTR_EML /* 진술자 이메일 */
, A.OPNN_SBMSN_CN /* 의견 제출 내용 */
, A.OPNN_SBMSN_SE_CD /* 의견 제출 구분 코드 */
, (SELECT FN_GET_CODE_NM('FIM033', A.OPNN_SBMSN_SE_CD) FROM DUAL) AS OPNN_SBMSN_SE_NM /* 의견 제출 구분 명 */
, A.OPNN_SBMSN_GIST /* 의견 제출 요지 */
, A.ATCH_FILE_CNT /* 첨부 파일 수 */
, A.DOC_NO /* 문서 번호 */
, A.NTFCTN_SE_CD /* 통보 구분 코드 */
, A.OPNN_SBMSN_GIST /* 의견 제출 요지 */
, A.ATCH_FILE_CNT /* 첨부 파일 수 */
, A.DOC_NO /* 문서 번호 */
, A.NTFCTN_SE_CD /* 통보 구분 코드 */
, (SELECT FN_GET_CODE_NM('FIM030', A.NTFCTN_SE_CD) FROM DUAL) AS NTFCTN_SE_NM /* 통보 구분 코드 */
, A.PIC_RVW_OPNN /* 담당자 검토 의견 */
, A.ANS_CN /* 답변 내용 */
, A.ANS_YMD /* 답변 일자 */
, A.ANS_TM /* 답변 시각 */
, A.PIC_RVW_OPNN /* 담당자 검토 의견 */
, A.ANS_CN /* 답변 내용 */
, A.ANS_YMD /* 답변 일자 */
, A.ANS_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 /* 의견 제출 상태 명 */
, A.DEL_YN /* 삭제 여부 */
, A.REG_DT /* 등록 일시 */
, A.RGTR /* 등록자 */
, A.MDFCN_DT /* 수정 일시 */
, A.MDFR /* 수정자 */
, A.DEL_DT /* 삭제 일시 */
, A.DLTR /* 삭제자 */
, A.DEL_RSN /* 삭제 사유 */
, A.DEL_YN /* 삭제 여부 */
, A.REG_DT /* 등록 일시 */
, A.RGTR /* 등록자 */
, A.MDFCN_DT /* 수정 일시 */
, A.MDFR /* 수정자 */
, A.DEL_DT /* 삭제 일시 */
, A.DLTR /* 삭제자 */
, A.DEL_RSN /* 삭제 사유 */
FROM TB_OPNN_SBMSN A
</sql>

@ -41,7 +41,7 @@
<c:forEach items="${FIM054List}" var="item">
<label>
<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}
</label>
</c:forEach>
@ -70,7 +70,7 @@
<label class="form-label fw-bold form-search-title">부과제외구분</label>
</div>
<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>
<c:forEach items="${FIM021List}" var="item">
<option value="${item.code}">${item.value}</option>
@ -112,12 +112,12 @@
<!-- 동적검색 -->
<div class="col-1 text-end">
<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 class="col-3">
<input type="hidden" id="mainOption--${pageName}" name="mainOption" />
<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 class="col-2">
<!-- 상세 검색조건 버튼 -->
@ -162,12 +162,6 @@
</div>
<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>
@ -202,7 +196,7 @@
<th onclick="searchFromGridTitle('CRDN_PLC', this.innerText, 'match', 'part');">단속장소</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_BRDT', this.innerText, 'match', 'part');">납부자생년월일</th>
<th onclick="searchFromGridTitle('RTPYR_BRDT', this.innerText, 'ymd', '');">납부자생일</th>
<th>등록일시</th>
<th>등록사용자</th>
<th>수정일시</th>
@ -338,24 +332,6 @@
$("#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
${pageName}Control.getTotalInfo = (params) => {
let info = ${pageName}Control.dataset.getCurrent("item");
@ -455,18 +431,23 @@
});
}
// 일자 포맷
$("frmSearch--${pageName}").find(".form-date").each(function() {
$(this).on("input",function() {
let value = this.value.replaceAll("-", "");
// DataTables에 click, dbclick 이벤트
function renderList${pageName}() {
let ${infoPrefix}List = ${pageName}Control.dataset;
let empty = ${infoPrefix}List.empty;
if (value.length > 7) {
this.value = value.substring(0, 4) + "-" + value.substring(4, 6) + "-" + value.substring(6);
} else if(value.length > 5){
this.value = value.substring(0, 4) + "-" + value.substring(4);
}
});
});
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);
}
/**************************************************************************
* function
@ -510,7 +491,7 @@
// 수정
function fnModify${pageName}() {
let levyExclId = excl01010Control.dataset.getValue("LEVY_EXCL_ID");
let levyExclId = ${pageName}Control.dataset.getValue("LEVY_EXCL_ID");
// 부과 제외 ID 가 없다면.. return
if (levyExclId == undefined || levyExclId == "") {

@ -5,7 +5,6 @@
<div class="content-wrapper">
<!-- Content -->
<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>
<!-- Page Body -->
@ -14,10 +13,16 @@
<div>
<!-- 상단 버튼 -->
<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">
<button type="button" class="btn btn-search" id="btnSearch--${pageName}" title="검색">검색</button>
<button type="button" class="btn btn-search" id="btnExcel--${pageName}" title="엑셀">엑셀</button>
<button type="button" class="btn btn-search" id="btnSearch--${pageName}" title="검색" onclick="fnSearchList${pageName}();">
검색
</button>
<button type="button" class="btn btn-search" id="btnExcel--${pageName}" title="엑셀" onclick="fnExcel${pageName}();">
엑셀
</button>
</span>
</div>
<!-- / 상단 버튼 -->
@ -35,10 +40,8 @@
<span class="form-search-linebox">
<c:forEach items="${FIM054List}" var="item">
<label>
<input type="radio" class="form-check-input" id="rdoTaskSeCd--${pageName}" name="taskSeCd" alt="업무구분"
value="${item.code}"
onchange="pageObject['${pageName}'].fnResetAndChangeBiz(this.value);"
required>
<input type="radio" class="form-check-input" name="taskSeCd" alt="업무구분"
value="${item.code}" onchange="fnResetAndChangeBiz${pageName}(this.value);">
${item.value}
</label>
</c:forEach>
@ -68,7 +71,7 @@
<label class="form-label fw-bold form-search-title">의견제출상태</label>
</div>
<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>
<c:forEach items="${FIM031List}" var="item">
<option value="${item.code}">${item.value}</option>
@ -80,14 +83,14 @@
<label class="form-label fw-bold form-search-title">차량번호</label>
</div>
<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 class="col-1 text-end">
<label class="form-label fw-bold form-search-title">진술자명</label>
</div>
<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 class="col-1 text-end">
@ -110,10 +113,12 @@
<!-- 동적검색 -->
<div class="col-1 text-end">
<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 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 class="col-2">
<!-- 상세 검색조건 버튼 -->
@ -158,8 +163,15 @@
</div>
<span class="container-window-btn-right">
<!-- 업무 버튼 -->
<a href="#" class="btn btn-blue" id="" title="업무처리1">업무 처리1</a>
<a href="#" class="btn btn-blue" id="" title="업무처리2">업무 처리2</a>
<button class="btn btn-primary" id="btnCreateNotLevy--${pageName}" title="등록" onclick="fnCreate${pageName}();">
등록
</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>
</div>
@ -172,62 +184,68 @@
<table class="datatables-ajax table table-bordered dataTable no-footer"
id="DataTables_Table_0--${pageName}" aria-describedby="DataTables_Table_0_info">
<thead>
<tr id="theadTr--${pageName}" style="text-align:center;">
<th class="sorting" tabindex="0" aria-controls="DataTables_Table_0" rowspan="1" colspan="1" style="width: 24px;">NO.</th>
<th class="sorting" tabindex="0" aria-controls="DataTables_Table_0" rowspan="1" colspan="1" style="width: 24px;">
<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" style="width: 24px;">NO.</th>
<th class="sorting" style="width: 24px;">
<input type="checkbox" class="form-check-input" onchange="${pageName}Control.select(this.checked);">
</th>
<th class="sorting" tabindex="0" aria-controls="DataTables_Table_0" rowspan="1" colspan="1" style="width: 120px;">접수일자</th>
<th class="sorting" tabindex="0" aria-controls="DataTables_Table_0" rowspan="1" colspan="1" style="width: 120px;">접수번호</th>
<th class="sorting" tabindex="0" aria-controls="DataTables_Table_0" rowspan="1" colspan="1" style="width: 120px;">접수구분명</th>
<th class="sorting" tabindex="0" aria-controls="DataTables_Table_0" rowspan="1" colspan="1" style="width: 120px;">통보구분명</th>
<th class="sorting" tabindex="0" aria-controls="DataTables_Table_0" rowspan="1" colspan="1" style="width: 120px;">진술자명</th>
<th class="sorting" tabindex="0" aria-controls="DataTables_Table_0" rowspan="1" colspan="1" style="width: 120px;">단속일시</th>
<th class="sorting" tabindex="0" aria-controls="DataTables_Table_0" rowspan="1" colspan="1" style="width: 120px;">차량번호</th>
<th class="sorting" tabindex="0" aria-controls="DataTables_Table_0" rowspan="1" colspan="1" style="width: 120px;">단속장소</th>
<th class="sorting" tabindex="0" aria-controls="DataTables_Table_0" rowspan="1" colspan="1" style="width: 80px;">의견제출상태</th>
<th class="sorting" tabindex="0" aria-controls="DataTables_Table_0" rowspan="1" colspan="1" style="width: 120px;">의견제출분류</th>
<th class="sorting" tabindex="0" aria-controls="DataTables_Table_0" rowspan="1" colspan="1" style="width: 320px;">의견제출요지</th>
<th class="sorting" tabindex="0" aria-controls="DataTables_Table_0" rowspan="1" colspan="1" style="width: 120px;">문서번호</th>
<th class="sorting" tabindex="0" aria-controls="DataTables_Table_0" rowspan="1" colspan="1" style="width: 120px;">답변일자</th>
<th class="sorting" tabindex="0" aria-controls="DataTables_Table_0" rowspan="1" colspan="1" style="width: 320px;">답변내용</th>
<th class="sorting" tabindex="0" aria-controls="DataTables_Table_0" rowspan="1" colspan="1" style="width: 120px;">등록일시</th>
<th class="sorting" tabindex="0" aria-controls="DataTables_Table_0" rowspan="1" colspan="1" style="width: 120px;">등록사용자</th>
<th class="sorting" tabindex="0" aria-controls="DataTables_Table_0" rowspan="1" colspan="1" style="width: 120px;">수정일시</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 onclick="searchFromGridTitle('RCPT_NO', this.innerText, 'match', 'part');">접수번호</th>
<th onclick="searchFromGridTitle('RCPT_SE_NM', this.innerText, 'codeValue', 'FIM029');">접수구분명</th>
<th onclick="searchFromGridTitle('NTFCTN_SE_NM', this.innerText, 'codeValue', 'FIM030');">통보구분명</th>
<th onclick="searchFromGridTitle('STTR_NM', this.innerText, 'match', 'part');">진술자명</th>
<th onclick="searchFromGridTitle('OPNN_SBMSN_STTS_NM', this.innerText, 'codeValue', 'FIM031');">의견제출상태</th>
<th onclick="searchFromGridTitle('OPNN_SBMSN_SE_NM', this.innerText, 'codeValue', 'FIM033');">의견제출분류</th>
<th onclick="searchFromGridTitle('OPNN_SBMSN_GIST', this.innerText, 'match', 'part');">의견제출요지</th>
<th onclick="searchFromGridTitle('CRDN_YMD', this.innerText, 'ymd', '');">단속일시</th>
<th onclick="searchFromGridTitle('VHRNO', 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('DOC_NO', this.innerText, 'ymd', '');">문서번호</th>
<th onclick="searchFromGridTitle('ANS_YMD', this.innerText, 'ymd', '');">답변일자</th>
<th onclick="searchFromGridTitle('ANS_CN', this.innerText, 'match', 'part');">답변내용</th>
<th onclick="searchFromGridTitle('RTPYR_NM', this.innerText, 'match', 'part');">납부자명</th>
<th onclick="searchFromGridTitle('RTPYR_BRDT', this.innerText, 'ymd', '');">납부자생일</th>
<th>등록일시</th>
<th>등록사용자</th>
<th>수정일시</th>
<th>수정사용자</th>
</tr>
</thead>
<tbody id="tbody--${pageName}">
</tbody>
<template id="${infoPrefix}Row--${pageName}">
<tr data-key="{OPNN_ID}">
<td style="text-align:center;" {onclick} {ondblclick}>{ROW_NUM}</td>
<td style="text-align:center;">
<input value="{OPNN_ID}" onchange="${pageName}Control.select('{OPNN_ID}', this.checked);" type="checkbox" class="form-check-input">
<tr data-key="OPNN_ID">
<td class="text-center" onclick="{onclick}" ondblclick="{ondblclick}">{ROW_NUM}</td>
<td class="text-center">
<input type="checkbox" class="form-check-input" value="{OPNN_ID}" onchange="${pageName}Control.select('{OPNN_ID}', this.checked);">
</td>
<td style="text-align:center;" {onclick} {ondblclick}>{RCPT_YMD}</td>
<td style="text-align:center;" {onclick} {ondblclick}>{RCPT_NO}</td>
<td style="text-align:center;" {onclick} {ondblclick}>{RCPT_SE_NM}</td>
<td style="text-align:center;" {onclick} {ondblclick}>{NTFCTN_SE_NM}</td>
<td style="text-align:left;" {onclick} {ondblclick}>{STTR_NM}</td>
<td style="text-align:center;" {onclick} {ondblclick}>{CRDN_YMD_TM}</td>
<td style="text-align:left;" {onclick} {ondblclick}>{VHRNO}</td>
<td style="text-align:left;" {onclick} {ondblclick}>{CRDN_PLC}</td>
<td style="text-align:center;" {onclick} {ondblclick}>{OPNN_SBMSN_STTS_NM}</td>
<td style="text-align:center;" {onclick} {ondblclick}>{OPNN_SBMSN_SE_NM}</td>
<td style="text-align:left;" {onclick} {ondblclick}>{OPNN_SBMSN_GIST}</td>
<td style="text-align:left;" {onclick} {ondblclick}>{DOC_NO}</td>
<td style="text-align:left;" {onclick} {ondblclick}>{ANS_YMD}</td>
<td style="text-align:left;" {onclick} {ondblclick}>{ANS_CN}</td>
<td style="text-align:center;" {onclick} {ondblclick}>{REG_DT}</td>
<td style="text-align:center;" {onclick} {ondblclick}>{RGTR}</td>
<td style="text-align:center;" {onclick} {ondblclick}>{MDFCN_DT}</td>
<td style="text-align:center;" {onclick} {ondblclick}>{MDFR}</td>
<td class="text-center" onclick="{onclick}" ondblclick="{ondblclick}">{RCPT_YMD}</td>
<td class="text-center" onclick="{onclick}" ondblclick="{ondblclick}">{RCPT_NO}</td>
<td class="text-center" onclick="{onclick}" ondblclick="{ondblclick}">{RCPT_SE_NM}</td>
<td class="text-center" onclick="{onclick}" ondblclick="{ondblclick}">{NTFCTN_SE_NM}</td>
<td class="text-start" onclick="{onclick}" ondblclick="{ondblclick}">{STTR_NM}</td>
<td class="text-center" onclick="{onclick}" ondblclick="{ondblclick}">{OPNN_SBMSN_STTS_NM}</td>
<td class="text-center" onclick="{onclick}" ondblclick="{ondblclick}">{OPNN_SBMSN_SE_NM}</td>
<td class="text-start" onclick="{onclick}" ondblclick="{ondblclick}">{OPNN_SBMSN_GIST}</td>
<td class="text-center" onclick="{onclick}" ondblclick="{ondblclick}">{CRDN_YMD_TM}</td>
<td class="text-start" onclick="{onclick}" ondblclick="{ondblclick}">{VHRNO}</td>
<td class="text-start" onclick="{onclick}" ondblclick="{ondblclick}">{CRDN_PLC}</td>
<td class="text-center" onclick="{onclick}" ondblclick="{ondblclick}">{CRDN_STTS_NM}</td>
<td class="text-center" onclick="{onclick}" ondblclick="{ondblclick}">{DOC_NO}</td>
<td class="text-center" onclick="{onclick}" ondblclick="{ondblclick}">{ANS_YMD}</td>
<td class="text-start" onclick="{onclick}" ondblclick="{ondblclick}">{ANS_CN}</td>
<td class="text-start" onclick="{onclick}" ondblclick="{ondblclick}">{RTPYR_NM}</td>
<td class="text-center" onclick="{onclick}" ondblclick="{ondblclick}">{RTPYR_BRDT_FORMAT}</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>
</template>
<template id="${infoPrefix}NotFound--${pageName}">
<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>
</template>
</table>
@ -249,71 +267,46 @@
</div>
<!-- Content wrapper -->
<!-- js -->
<script src="<c:url value="/resources/js/fims/excl/excl02010.js?${ver}"/>"></script>
<script>
/**************************************************************************
* Global Variable
**************************************************************************/
// Control 생성
var ${pageName}Control = new OpnnSbmsnControl("${urlPrefix}");
// URL
var prefixUrl = "/excl/excl02";
// 공통 코드
/**************************************************************************
* 초기 셋팅
* DatasetControl
**************************************************************************/
// 검색조건 초기값 셋팅
function initSearch${pageName}() {
// 업무구분
let defaultBizValue = $("#layout-navbar input[name='taskSeCd']:checked").val();
$("#frmSearch--${pageName} input[name='taskSeCd'][value='" + defaultBizValue + "']").prop("checked",true);
// 달력 초기화
initDatepicker("frmSearch--${pageName}");
$("#schDateFrom--${pageName}").datepicker("setDate", DateUtil.getDateDay(-365).date);
$("#schDateTo--${pageName}").datepicker("setDate", new Date());
}
//
function setEvent${pageName}() {
// 버튼 이벤트
$("#btnSearch--${pageName}").on("click", () => searchList${pageName}()); // 검색
$("#term--${pageName}").onEnterPress(() => searchList${pageName}()); // 동적 검색
// DataTables 스크롤 이벤트
$("#table-responsive--${pageName}").scroll(function() {
let el = $(this);
if (el.scrollTop() == 0) return;
if ((el[0].scrollHeight - el.scrollTop() + 15) == el.outerHeight()) {
searchList${pageName}(${pageName}Control.query.pageNum + 1);
}
});
}
var ${pageName}Control = new DatasetControl({
prefix : "opnnSbmsn"
, prefixName : "의견제출"
, infoSize : "lg"
, 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 + "/010/remove.do") // 자료 삭제
, getTotalInfo : wctx.url("/sprt/sprt01/020/info.do") // 개별총정보
}
, formats : {
RCPT_YMD : dateFormat
, ANS_YMD : dateFormat
, ANS_YMD_TM : datetimeFormat
, CRDN_YMD_TM : dateFormat
, REG_DT : datetimeFormat
, MDFCN_DT : datetimeFormat
}
});
/**************************************************************************
* Event
* DatasetControl
**************************************************************************/
// 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, '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 변경
// onDatasetChange 이벤트
${pageName}Control.onDatasetChange = obj => {
renderList${pageName}();
@ -327,7 +320,7 @@
});
};
// DataTables 클릭 이벤트
// onCurrentChange 이벤트
${pageName}Control.onCurrentChange = item => {
//
if (!item) return;
@ -337,7 +330,7 @@
$("#tbody--${pageName}").setCurrentRow(key);
};
// DataTables checkbox 클릭 이벤트
// onSelectionChange 이벤트
${pageName}Control.onSelectionChange = selected => {
let ${infoPrefix}List = ${pageName}Control.dataset;
let keys = selected.map(e => ${infoPrefix}List.getKey(e));
@ -348,26 +341,82 @@
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) {
// pageNumber 값 확인
if (!pageNumber) pageNumber = 1;
// 초기 설정
function initForm${pageName}() {
// 달력 초기화
initDatepicker("frmSearch--${pageName}");
$("#schDateFrom--${pageName}").datepicker("setDate", DateUtil.getDateDay(-365).date);
$("#schDateTo--${pageName}").datepicker("setDate", new Date());
${pageName}Control.query = fnGetParams${pageName}(); // 검색조건
${pageName}Control.query.orderBy = "OPNN_ID"; // 정렬
${pageName}Control.dataset.clear();
}
${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) {
$("tbody--${pageName}").html("");
function fnResetAndChangeBiz${pageName}(taskSeCd) {
fnReset${pageName}();
}
// 검색 조건 파라미터 가져오기
@ -381,17 +430,68 @@
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 진입
**************************************************************************/
$(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}();
${pageName}Control.addData(${opnnSbmsn});
// Dataset 셋팅 - List 일경우 addData 하여 자료를 추가
${pageName}Control.addData(${levyExcl});
});
// #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