개별총정보 - 처리상세정보 수정.

main
jjh 1 year ago
parent 0b9a1ed5c0
commit 3b99a5b380

@ -13,5 +13,52 @@ import cokr.xit.foundation.component.QueryRequest;
* </pre>
*/
public class CrdnPayerHstryQuery extends QueryRequest {
private static final long serialVersionUID = 1L;
/**
* ID
*/
private String chgHstryId;
/**
* ID
*/
private String crdnId;
/**
* ID
*/
private String rtpyrId;
public String getChgHstryId() {
return ifEmpty(chgHstryId, () -> null);
}
public <T extends CrdnPayerHstryQuery> T setChgHstryId(String chgHstryId) {
this.chgHstryId = chgHstryId;
return self();
}
public String getCrdnId() {
return ifEmpty(crdnId, () -> null);
}
public <T extends CrdnPayerHstryQuery> T setCrdnId(String crdnId) {
this.crdnId = crdnId;
return self();
}
public String getRtpyrId() {
return ifEmpty(rtpyrId, () -> null);
}
public <T extends CrdnPayerHstryQuery> T setRtpyrId(String rtpyrId) {
this.rtpyrId = rtpyrId;
return self();
}
}

@ -24,6 +24,12 @@ public interface Excl01Service {
*/
List<DataObject> getLevyExclList(ExclQuery req);
/** .
* @param req
* @return
*/
List<DataObject> getLevyExcls(ExclQuery req);
/** ID .<br />
* @param levyExclId ID
* @return

@ -51,6 +51,14 @@ public class Excl01Bean extends AbstractComponent {
return levyExclMapper.selectLevyExclList(req);
}
/** .
* @param req
* @return
*/
public List<DataObject> getLevyExcls(ExclQuery req) {
return levyExclMapper.selectLevyExcls(req);
}
/** ID .<br />
* @param levyExclId ID
* @return

@ -34,6 +34,11 @@ public class Excl01ServiceBean extends AbstractServiceBean implements Excl01Serv
return excl01Bean.getLevyExclList(req);
}
@Override
public List<DataObject> getLevyExcls(ExclQuery req) {
return excl01Bean.getLevyExcls(req);
}
@Override
public DataObject getLevyExclInfo(ExclQuery req) {
return excl01Bean.getLevyExclInfo(req);

@ -8,6 +8,12 @@ import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.servlet.ModelAndView;
import cokr.xit.base.web.ApplicationController;
import cokr.xit.fims.cmmn.CrdnPayerHstryQuery;
import cokr.xit.fims.cmmn.CrdnSttsHstryQuery;
import cokr.xit.fims.cmmn.service.CrdnPayerHstryService;
import cokr.xit.fims.cmmn.service.CrdnSttsHstryService;
import cokr.xit.fims.excl.ExclQuery;
import cokr.xit.fims.excl.service.Excl01Service;
import cokr.xit.fims.sprt.SprtQuery;
import cokr.xit.fims.sprt.service.Sprt02Service;
import cokr.xit.foundation.data.DataObject;
@ -27,6 +33,18 @@ public class Sprt02Controller extends ApplicationController {
@Resource(name="sprt02Service")
private Sprt02Service sprt02Service;
/** 부과제외 대장 서비스 */
@Resource(name = "excl01Service")
protected Excl01Service excl01Service;
/** 단속 상태 이력 서비스 */
@Resource(name = "crdnSttsHstryService")
private CrdnSttsHstryService crdnSttsHstryService;
/** 단속 납부자 이력 서비스 */
@Resource(name = "crdnPayerHstryService")
private CrdnPayerHstryService crdnPayerHstryService;
/** (sprt/sprt02/010-main) .
* @return /sprt/sprt02/010-main
*/
@ -107,4 +125,48 @@ public class Sprt02Controller extends ApplicationController {
;
}
/** ID , , .
* @param crdnId ID
* @return fims/sprt/sprt02050-main jsonView
* <pre><code> {
* "sndngDtl": {...}
* }</code></pre>
*/
@RequestMapping(name="처리 상세 정보 조회", value="/050/info.do")
public ModelAndView getPrcsDtlnfo(SprtQuery req) {
// 부과 제외
ExclQuery exclQuery = new ExclQuery();
exclQuery.setCrdnId(req.getCrdnId());
exclQuery.setDelYn("N");
List<?> levyExcl = excl01Service.getLevyExcls(exclQuery);
// 감경
// 단속 상태 이력
CrdnSttsHstryQuery crdnSttsHstryQuery = new CrdnSttsHstryQuery();
crdnSttsHstryQuery.setCrdnId(req.getCrdnId());
crdnSttsHstryQuery.setOrderBy("REG_DT DESC");
List<?> crdnSttsHstry = crdnSttsHstryService.getCrdnSttsHstrys(crdnSttsHstryQuery);
// 단속 납부자 이력
CrdnPayerHstryQuery crdnPayerHstryQuery = new CrdnPayerHstryQuery();
crdnPayerHstryQuery.setCrdnId(req.getCrdnId());
crdnPayerHstryQuery.setOrderBy("REG_DT DESC");
List<?> crdnPayerHstry = crdnPayerHstryService.getCrdnPayerHstrys(crdnPayerHstryQuery);
boolean json = jsonResponse();
ModelAndView mav = new ModelAndView(json ? "jsonView" : "fims/sprt/sprt02050-info");
return mav
.addObject("pageName", "sprt02050")
.addObject("levyExcl", json ? levyExcl : toJson(levyExcl)) // 부과 제외
.addObject("crdnSttsHstryList", json ? crdnSttsHstry : toJson(crdnSttsHstry)) // 단속 상태 이력
.addObject("crdnPayerHstryList", json ? crdnPayerHstry : toJson(crdnPayerHstry)) // 단속 납부자 이력
;
}
}

@ -7,88 +7,96 @@
2023-08-16 leebj 최초 작성
============================ -->
<resultMap id="crdnPayerHstryRow" type="cokr.xit.fims.cmmn.CrdnPayerHstry"> <!-- 단속 납부자 이력 -->
<resultMap id="crdnPayerHstryRow" type="cokr.xit.fims.cmmn.CrdnPayerHstry"> <!-- 단속 납부자 이력 -->
<result property="chgHstryId" column="CHG_HSTRY_ID" /> <!-- 변경 이력 ID -->
<result property="crdnId" column="CRDN_ID" /> <!-- 단속 ID -->
<result property="rtpyrId" column="RTPYR_ID" /> <!-- 납부자 ID -->
<result property="createdAt" column="REG_DT" /> <!-- 등록 일시 -->
<result property="createdBy" column="RGTR" /> <!-- 등록자 -->
</resultMap>
</resultMap>
<sql id="select">
SELECT CHG_HSTRY_ID <!-- 변경 이력 ID -->
, CRDN_ID <!-- 단속 ID -->
, RTPYR_ID <!-- 납부자 ID -->
, REG_DT <!-- 등록 일시 -->
, RGTR <!-- 등록자 -->
FROM TB_CRDN_PAYER_HSTRY
</sql>
<sql id="select">
SELECT CPH.CHG_HSTRY_ID /* 변경 이력 ID */
, CPH.CRDN_ID /* 단속 ID */
, CPH.RTPYR_ID /* 납부자 ID */
, CPH.REG_DT /* 등록 일시 */
, CPH.RGTR /* 등록자 */
, P.RTPYR_NO /* 납부자 번호 */
, P.RTPYR_NM /* 납부자 명 */
, P.ZIP /* 우편번호 */
, P.WHOL_ADDR /* 전체 주소 */
FROM TB_CRDN_PAYER_HSTRY CPH
INNER JOIN TB_PAYER P ON (CPH.RTPYR_ID = P.RTPYR_ID)
</sql>
<select id="selectCrdnPayerHstryList" parameterType="map" resultType="dataobject">
/* 단속 납부자 이력 목록 조회(crdnPayerHstryMapper.selectCrdnPayerHstryList) */
<include refid="utility.paging-prefix" />
<select id="selectCrdnPayerHstryList" parameterType="map" resultType="dataobject">/* 단속 납부자 이력 목록 조회(crdnPayerHstryMapper.selectCrdnPayerHstryList) */
<include refid="utility.paging-prefix" />
<include refid="select" />
<where>
</where>
<include refid="utility.orderBy" />
<include refid="utility.paging-suffix" />
</select>
include refid="utility.paging-suffix" />
</select>
<select id="selectCrdnPayerHstrys" parameterType="map" resultMap="crdnPayerHstryRow">
/* 단속 납부자 이력 객체 가져오기(crdnPayerHstryMapper.selectCrdnPayerHstrys) */
<include refid="select" />
<where>
</where>
<include refid="utility.orderBy" />
</select>
<select id="selectCrdnPayerHstrys" parameterType="map" resultType="dataobject">/* 단속 납부자 이력 객체 가져오기(crdnPayerHstryMapper.selectCrdnPayerHstrys) */
<include refid="select" />
<where>
<if test="chgHstryId != null">
AND CPH.CHG_HSTRY_ID = #{chgHstryId} /* 변경 이력 ID */
</if>
<if test="crdnId != null">
AND CPH.CRDN_ID = #{crdnId} /* 단속 ID */
</if>
<if test="rtpyrId != null">
AND CPH.RTPYR_ID = #{rtpyrId} /* 납부자 ID */
</if>
</where>
<include refid="utility.orderBy" />
</select>
<insert id="insertCrdnPayerHstry" parameterType="map">
/* 단속 납부자 이력 등록(crdnPayerHstryMapper.insertCrdnPayerHstry) */
<selectKey resultType="string" keyProperty="crdnPayerHstry.chgHstryId" keyColumn="NEW_ID" order="BEFORE">
<insert id="insertCrdnPayerHstry" parameterType="map">/* 단속 납부자 이력 등록(crdnPayerHstryMapper.insertCrdnPayerHstry) */
<selectKey resultType="string" keyProperty="crdnPayerHstry.chgHstryId" keyColumn="NEW_ID" order="BEFORE">
SELECT CONCAT(DATE_FORMAT(CURRENT_DATE, '%Y'), LPAD(CAST(IFNULL(MAX(SUBSTRING(CHG_HSTRY_ID, 5)) + 1, 1) AS INT), 16, '0')) AS NEW_ID
FROM TB_CRDN_PAYER_HSTRY
WHERE CHG_HSTRY_ID LIKE CONCAT(DATE_FORMAT(CURRENT_DATE, '%Y'), '%')
</selectKey>
INSERT INTO TB_CRDN_PAYER_HSTRY (
CHG_HSTRY_ID <!-- 변경 이력 ID -->
, CRDN_ID <!-- 단속 ID -->
, RTPYR_ID <!-- 납부자 ID -->
, REG_DT <!-- 등록 일시 -->
, RGTR <!-- 등록자 -->
) VALUES (
#{crdnPayerHstry.chgHstryId} <!-- 변경 이력 ID -->
, #{crdnPayerHstry.crdnId} <!-- 단속 ID -->
, #{crdnPayerHstry.rtpyrId} <!-- 납부자 ID -->
, <include refid="utility.now" /> <!-- 등록 일시 -->
, #{currentUser.id} <!-- 등록자 -->
)
</insert>
</selectKey>
INSERT
INTO TB_CRDN_PAYER_HSTRY (
CHG_HSTRY_ID /* 변경 이력 ID */
, CRDN_ID /* 단속 ID */
, RTPYR_ID /* 납부자 ID */
, REG_DT /* 등록 일시 */
, RGTR /* 등록자 */
) VALUES (
#{crdnPayerHstry.chgHstryId} /* 변경 이력 ID */
, #{crdnPayerHstry.crdnId} /* 단속 ID */
, #{crdnPayerHstry.rtpyrId} /* 납부자 ID */
, #{crdnPayerHstry.createdAt} /* 등록 일시 */
, #{crdnPayerHstry.createdBy} /* 등록자 */
)
</insert>
<update id="updateCrdnPayerHstry" parameterType="map">
/* 단속 납부자 이력 수정(crdnPayerHstryMapper.updateCrdnPayerHstry) */
UPDATE TB_CRDN_PAYER_HSTRY
SET
CRDN_ID = #{crdnPayerHstry.crdnId} <!-- 단속 ID -->
, RTPYR_ID = #{crdnPayerHstry.rtpyrId} <!-- 납부자 ID -->
<update id="updateCrdnPayerHstry" parameterType="map">/* 단속 납부자 이력 수정(crdnPayerHstryMapper.updateCrdnPayerHstry) */
UPDATE TB_CRDN_PAYER_HSTRY
SET CRDN_ID = #{crdnPayerHstry.crdnId} /* 단속 ID */
, RTPYR_ID = #{crdnPayerHstry.rtpyrId} /* 납부자 ID */
WHERE CHG_HSTRY_ID = #{crdnPayerHstry.chgHstryId}
</update>
<update id="deleteCrdnPayerHstry" parameterType="map">
/* 단속 납부자 이력 삭제(crdnPayerHstryMapper.deleteCrdnPayerHstry) */
UPDATE TB_CRDN_PAYER_HSTRY
SET
USE_YN = 'N'
, MDFCN_DT =<include refid="utility.now" />
, MDFR = #{currentUser.id}
<update id="deleteCrdnPayerHstry" parameterType="map">/* 단속 납부자 이력 삭제(crdnPayerHstryMapper.deleteCrdnPayerHstry) */
UPDATE TB_CRDN_PAYER_HSTRY
SET USE_YN = 'N'
, MDFCN_DT = #{crdnPayerHstry.lastModified}
, MDFR = #{crdnPayerHstry.modifiedBy}
WHERE CHG_HSTRY_ID = #{crdnPayerHstry.chgHstryId}
</update>
<update id="updateCrdnPayer" parameterType="map">
/* 단속 납부자 수정(crdnPayerHstryMapper.updateCrdnPayer) */
UPDATE TB_CRDN_PAYER_HSTRY
<update id="updateCrdnPayer" parameterType="map">/* 단속 납부자 수정(crdnPayerHstryMapper.updateCrdnPayer) */
UPDATE TB_CRDN_PAYER_HSTRY
SET RTPYR_ID = #{crdnSttsHstry.rtpyrId} /* 납부자 ID */
, MDFCN_DT = #{crdnSttsHstry.lastModified} /* 수정 일시 */
, MDFR = #{crdnSttsHstry.modifiedBy} /* 수정자 */
WHERE CRDN_ID = #{crdnSttsHstry.crdnId} /* 단속 ID */
</update>
</mapper>

@ -7,7 +7,7 @@
2023-07-19 JoJH 최초 작성
============================ -->
<resultMap id="crdnSttsHstryRow" type="cokr.xit.fims.cmmn.CrdnSttsHstry">
<resultMap id="crdnSttsHstryRow" type="cokr.xit.fims.cmmn.CrdnSttsHstry"><!-- 단속 상태 이력 -->
<result property="sttsHstryId" column="STTS_HSTRY_ID" /> <!-- 상태 이력 ID -->
<result property="crdnId" column="CRDN_ID" /> <!-- 단속 ID -->
<result property="bfrSttsCd" column="BFR_STTS_CD" /> <!-- 이전 상태 코드 -->
@ -23,19 +23,23 @@
</resultMap>
<sql id="select">
SELECT STTS_HSTRY_ID /* 상태 이력 ID */
, CRDN_ID /* 단속 ID */
, BFR_STTS_CD /* 이전 상태 코드 */
, BFR_STTS_CHG_DT /* 이전 상태 변경 일시 */
, CRDN_STTS_CD /* 단속 상태 코드 */
, TASK_DTL_ID /* 업무 상세 ID */
, USE_YN /* 사용 여부 */
, ETC_CN /* 기타 내용 */
, REG_DT /* 등록 일시 */
, RGTR /* 등록자 */
, MDFCN_DT /* 수정 일시 */
, MDFR /* 수정자 */
FROM TB_CRDN_STTS_HSTRY
SELECT CSH.STTS_HSTRY_ID /* 상태 이력 ID */
, CSH.CRDN_ID /* 단속 ID */
, CSH.BFR_STTS_CD /* 이전 상태 코드 */
, (SELECT FN_GET_CODE_NM('FIM010', CSH.BFR_STTS_CD) FROM DUAL) AS BFR_STTS_NM /* 이전 상태 명 */
, CSH.BFR_STTS_CHG_DT /* 이전 상태 변경 일시 */
, CSH.CRDN_STTS_CD /* 단속 상태 코드 */
, (SELECT FN_GET_CODE_NM('FIM010', CSH.CRDN_STTS_CD) FROM DUAL) AS CRDN_STTS_NM /* 단속 상태 명 */
, CSH.TASK_DTL_ID /* 업무 상세 ID */
, CSH.USE_YN /* 사용 여부 */
, CSH.ETC_CN /* 기타 내용 */
, CSH.REG_DT /* 등록 일시 */
, CSH.RGTR /* 등록자 */
, (SELECT USER_NM FROM TB_USER X WHERE X.USER_ID = CSH.RGTR) AS RGTR_NM /* 등록자 명 */
, CSH.MDFCN_DT /* 수정 일시 */
, CSH.MDFR /* 수정자 */
, (SELECT USER_NM FROM TB_USER X WHERE X.USER_ID = CSH.MDFR) AS MDFR_NM /* 수정자 명 */
FROM TB_CRDN_STTS_HSTRY CSH
</sql>
<select id="selectCrdnSttsHstryList" parameterType="map" resultType="dataobject">/* 단속 상태 이력 목록 조회(crdnSttsHstryMapper.selectCrdnSttsHstryList) */
@ -43,10 +47,10 @@
<include refid="select" />
<where>
<if test="crdnId != null">
AND CRDN_ID = #{crdnId}
AND CSH.CRDN_ID = #{crdnId}
</if>
<if test="useYn != null">
AND USE_YN = #{useYn}
AND CSH.USE_YN = #{useYn}
</if>
</where>
<include refid="utility.orderBy" />
@ -55,9 +59,18 @@
<select id="selectCrdnSttsHstrys" parameterType="map" resultType="dataobject">/* 단속 상태 이력 객체 가져오기(crdnSttsHstryMapper.selectCrdnSttsHstrys) */
<include refid="select" />
WHERE CRDN_ID = #{crdnId}
AND USE_YN = 'Y'
<include refid="utility.sortBy" /> DESC
<where>
<if test="sttsHstryId != null">
AND CSH.STTS_HSTRY_ID = #{sttsHstryId}
</if>
<if test="crdnId != null">
AND CSH.CRDN_ID = #{crdnId}
</if>
<if test="useYn != null">
AND CSH.USE_YN = #{useYn}
</if>
</where>
<include refid="utility.sortBy" />
</select>
<insert id="insertCrdnSttsHstry" parameterType="map">/* 단속 상태 이력 등록(crdnSttsHstryMapper.insertCrdnSttsHstry) */

@ -447,7 +447,7 @@
// 달력 초기화
initDatepicker("frmSearch--${pageName}");
$("#schLevyExclYmdFrom--${pageName}").datepicker("setDate", DateUtil.getDateDay(-7).date);
$("#schLevyExclYmdFrom--${pageName}").datepicker("setDate", DateUtil.getDateDay(-30).date);
$("#schLevyExclYmdTo--${pageName}").datepicker("setDate", new Date());
${pageName}Control.dataset.clear();
@ -457,13 +457,13 @@
setEvent${pageName} = () => {
// form-date 항목에서 키보드로 입력시 날짜 포맷팅 적용
$("#frmSearch--${pageName}").find(".form-date").each(function() {
$(this).on("input",function() {
$(this).on("input", function() {
let value = this.value.replaceAll("-", "");
if (value.length > 7) {
this.value = value.substring(0,4) + "-" + value.substring(4,6) + "-" + value.substring(6);
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);
this.value = value.substring(0, 4) + "-" + value.substring(4);
}
});
});
@ -516,7 +516,7 @@
// 한번에 조회되는 건수 - 30건
${pageName}Control.query.fetchSize = FETCH_XS;
${pageName}Control.load(1);
${pageName}Control.load();
}
// 엑셀

@ -454,7 +454,7 @@
setEvent${pageName} = () => {
// form-date 항목에서 키보드로 입력시 날짜 포맷팅 적용
$("#frmSearch--${pageName}").find(".form-date").each(function() {
$(this).on("input",function() {
$(this).on("input", function() {
let value = this.value.replaceAll("-", "");
if (value.length > 7) {

@ -377,13 +377,13 @@
function setEvent${pageName} = () => {
// form-date 항목에서 키보드로 입력시 날짜 포맷팅 적용
$("#frmSearch--${pageName}").find(".form-date").each(function() {
$(this).on("input",function() {
$(this).on("input", function() {
let value = this.value.replaceAll("-", "");
if (value.length > 7) {
this.value = value.substring(0,4) + "-" + value.substring(4,6) + "-" + value.substring(6);
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);
this.value = value.substring(0, 4) + "-" + value.substring(4);
}
});
});

@ -9,6 +9,8 @@
<form id="frmEdit--${pageName}" name="frmEdit">
<!-- hidden -->
<input type="hidden" id="crdnId--${pageName}" name="crdnId" data-map="CRDN_ID" />
<input type="hidden" id="sggCd--${pageName}" name="sggCd" data-map="SGG_CD" />
<input type="hidden" id="taskSeCd--${pageName}" name="taskSeCd" data-map="TASK_SE_CD" />
<div class="row g-1">
<!-- 차량번호 -->
@ -58,7 +60,10 @@
</button>
</li>
<li class="nav-item">
<button type="button" class="nav-link" role="tab" data-bs-toggle="tab" data-bs-target="#prcsDtlInfo" aria-controls="prcsDtlInfo" aria-selected="false">처리 상세정보</button>
<button type="button" class="nav-link" role="tab" data-bs-toggle="tab" data-bs-target="#prcsDtlInfo"
aria-controls="prcsDtlInfo" aria-selected="false" onClick="fnBtnPrcsDtlInfo${pageName}();">
처리 상세정보
</button>
</li>
<li class="nav-item">
<button type="button" class="nav-link" role="tab" data-bs-toggle="tab" data-bs-target="#levyNpmntInfo" aria-controls="levyNpmntInfo" aria-selected="false">부과체납 정보</button>
@ -66,34 +71,21 @@
<li class="nav-item">
<button type="button" class="nav-link" role="tab" data-bs-toggle="tab" data-bs-target="#rcvmtInfo" aria-controls="rcvmtInfo" aria-selected="false">수납 정보</button>
</li>
<li class="nav-item">
<button type="button" class="nav-link" role="tab" data-bs-toggle="tab" data-bs-target="#cvlcptDscsnInfo" aria-controls="cvlcptDscsnInfo" aria-selected="false">민원상담 정보</button>
</li>
</ul>
<div class="tab-content">
<div class="tab-pane fade show active" id="crdnPayerInfo" role="tabpanel">
단속 정보
</div>
<div class="tab-pane fade" id="opnnSbmsnInfo" role="tabpanel">
의견제출 정보
</div>
<div class="tab-pane fade" id="sndngInfo" role="tabpanel">
발송 정보
</div>
<div class="tab-pane fade" id="prcsDtlInfo" role="tabpanel">
처리상세 정보
</div>
<div class="tab-pane fade" id="levyAfterInfo" role="tabpanel">
부과이후 정보
</div>
<div class="tab-pane fade" id="cvlcptDscsnInfo" role="tabpanel">
민원상담 정보
<div class="tab-pane fade show active" id="crdnPayerInfo" role="tabpanel"></div>
<div class="tab-pane fade" id="opnnSbmsnInfo" role="tabpanel">단속 정보</div>
<div class="tab-pane fade" id="sndngInfo" role="tabpanel">의견제출 정보</div>
<div class="tab-pane fade" id="prcsDtlInfo" role="tabpanel">발송반송 정보</div>
<div class="tab-pane fade" id="levyNpmntInfo" role="tabpanel">부과체납 정보</div>
<div class="tab-pane fade" id="rcvmtInfo" role="tabpanel">수납 정보</div>
<div class="tab-pane fade" id="cvlcptDscsnInfo" role="tabpanel">민원상담 정보</div>
</div>
</div>
</div>
</div> <!-- <div class="wrapper-list"> -->
</div> <!-- <div class="card"> -->
@ -130,29 +122,18 @@
/**************************************************************************
*
**************************************************************************/
// 저장 callback
${pageName}Control.onSave = (resp) => {
if (resp.saved) {
}
}
// 저장
${pageName}Control.save = (info) => {
if (!info) return;
}
/**************************************************************************
* 초기 셋팅
**************************************************************************/
// 검색조건 초기값 셋팅
function initForm${pageName}() {
initForm${pageName} = () => {
}
// 이벤트 설정
function setEvent${pageName}() {
setEvent${pageName} = () => {
}
@ -160,7 +141,7 @@
* function
**************************************************************************/
// 단속 정보
function fnBtnCrdnPayerInfo${pageName}() {
fnBtnCrdnPayerInfo${pageName} = () => {
let crdnId = ${pageName}Control.dataset.getValue("CRDN_ID");
// 단속 ID 가 없다면.. return
@ -183,7 +164,7 @@
}
// 의견제출 정보
function fnBtnOpnnSbmsnInfo${pageName}() {
fnBtnOpnnSbmsnInfo${pageName} = () => {
let crdnId = ${pageName}Control.dataset.getValue("CRDN_ID");
// 단속 ID 가 없다면.. return
@ -205,7 +186,7 @@
});
}
// 발송 정보
// 발송 반송 정보
fnBtnSndngInfo${pageName} = () => {
let crdnId = ${pageName}Control.dataset.getValue("CRDN_ID");
@ -228,6 +209,29 @@
});
}
// 처리 상세 정보
fnBtnPrcsDtlInfo${pageName} = () => {
let crdnId = ${pageName}Control.dataset.getValue("CRDN_ID");
// 단속 ID 가 없다면.. return
if (crdnId == null || crdnId == "") {
return;
}
let params = {
callPurpose : "view"
, crdnId : crdnId
};
ajax.get({
url : wctx.url("/sprt/sprt02/050/info.do")
, data : params || {}
, success : resp => {
$("#prcsDtlInfo").html(resp);
}
});
}
/**************************************************************************
* script 진입
**************************************************************************/

@ -226,7 +226,7 @@
<!-- 납부자 주소 --><!-- 납부자 우편번호 -->
<div class="col-md-12">
<label for="addr--${pageName}" class="w-px-120 bg-lighter pe-2 col-form-label text-sm-end">주소</label>
<input type="text" class="form-control w-80" id="addr--${pageName}" name="addr" data-map="addr" readonly />
<input type="text" class="form-control w-80" id="addr--${pageName}" name="addr" data-map="ADDR" readonly />
<input type="text" class="form-control w-px-75" id="zip--${pageName}" name="zip" data-map="ZIP" readonly />
</div>
<!-- 납부자 상세주소 -->
@ -319,8 +319,7 @@
/**************************************************************************
*
**************************************************************************/
fnBtnOpenCvlcptOrgnl = (params) => {
openCvlcptOrgnl${pageName} = (params) => {
let taskSeCd = ${pageName}Control.dataset.getValue("TASK_SE_CD");
let dialogId = "cvlcptOrgnlDialog--${pageName}";
@ -342,12 +341,12 @@
* 초기 셋팅
**************************************************************************/
// 검색조건 초기값 셋팅
function initForm${pageName}() {
initForm${pageName} = () => {
//
}
// 이벤트 설정
function setEvent${pageName}() {
setEvent${pageName} = () => {
//
}
@ -355,7 +354,7 @@
* function
**************************************************************************/
// 민원 원본 보기
function fnBtnOpenCvlcptOrgnl${pageName}() {
fnBtnOpenCvlcptOrgnl${pageName} = () => {
let crdnId = ${pageName}Control.dataset.getValue("CRDN_ID");
// 단속 ID 가 없다면.. return
@ -367,51 +366,51 @@
crdnId : crdnId
};
fnBtnOpenCvlcptOrgnl(params);
openCvlcptOrgnl${pageName}(params);
}
// 민원 답변 보기
function fnBtnOpenAnswerPreview${pageName}() {
fnBtnOpenAnswerPreview${pageName} = () => {
console.log("민원 답변 보기");
}
// 단속정보 수정
function fnBtnCrdnUpdate${pageName}() {
fnBtnCrdnUpdate${pageName} = () => {
console.log("단속정보 수정");
}
// 부과취소 재등록
function btnCrdnReReg${pageName}() {
btnCrdnReReg${pageName} = () => {
console.log("부과취소 재등록");
}
// 자료 삭제
function fnBtnCrdnRemove${pageName}() {
fnBtnCrdnRemove${pageName} = () => {
console.log("자료 삭제");
}
// 수기 수납 등록
function fnBtnRcvmtCreate${pageName}() {
fnBtnRcvmtCreate${pageName} = () => {
console.log("수기 수납 등록");
}
// 수기 수납 삭제
function fnBtnRcvmtRemove${pageName}() {
fnBtnRcvmtRemove${pageName} = () => {
console.log("수기 수납 삭제");
}
// 고지서 출력
function fnBtnNoticeOtpt${pageName}() {
fnBtnNoticeOtpt${pageName} = () => {
console.log("고지서 출력");
}
// 단속 상태 변경
function fnBtnCrdnSttsUpdate${pageName}() {
fnBtnCrdnSttsUpdate${pageName} = () => {
console.log("단속 상태 변경");
}
// 우편번호 검색
function fnBtnZip${pageName}() {
fnBtnZip${pageName} = () => {
}

@ -227,9 +227,7 @@
, title : dialogTitle
, content : resp
, size : "xl"
, onClose : () => { // callback
fnDataRefreshInfo(); // 자료 조회
}
, onClose : () => { fnDataRefreshInfo(); } // callback 자료 조회
});
}
});
@ -241,6 +239,7 @@
fnDataRefreshInfo(); // 자료 조회
}
}
// 삭제
${pageName}Control.removeOpnnSbmsn = (params) => {
ajax.post({
@ -319,7 +318,6 @@
${pageName}Control.getOpnnSbmsnInfo(params);
}
// 의견제출 수정
fnBtnOpnnSbmsnUpdate${pageName} = () => {
let opnnId = ${pageName}Control.dataset.getValue("OPNN_ID")

@ -104,7 +104,7 @@
</template>
<template id="${infoPrefix}NotFound--${pageName}">
<tr class="odd">
<td valign="top" colspan="19" class="dataTables_empty text-center">${prefixName} 정보를 찾지 못했습니다.</td>
<td valign="top" colspan="22" class="dataTables_empty text-center">${prefixName} 정보를 찾지 못했습니다.</td>
</tr>
</template>
</table>
@ -117,7 +117,7 @@
</div> <!-- <div class="col-xl-9 mx-1"> -->
<!-- 화면 오른쪽 -->
<div class="col-xl-3 mx-0">
<div class="col-xl-3 mx-1">
<!-- 가상계좌 정보 -->
<div class="card">
<!-- 업무 버튼 -->
@ -127,9 +127,14 @@
<div class="row g-1">
<!-- 가상계좌 -->
<div class="col-md-12">
<textarea type="text" class="form-control w-100" id="vrActno--${pageName}" name="vrActno" cols="100%" rows="18" readonly>
<textarea type="text" class="form-control w-100" id="vrActno--${pageName}" name="vrActno" cols="100%" rows="16" readonly>
</textarea>
</div>
<!-- 전자납부번호 -->
<div class="col-md-12">
<label for="epayno--${pageName}" class="w-px-120 bg-lighter pe-2 col-form-label text-sm-end">전자납부번호</label>
<input type="text" class="form-control w-65" id="epayno--${pageName}" name="epayno" data-map="EPAYNO" readonly />
</div>
</div>
</div> <!-- 가상계좌 정보 <div class="card"> -->
</div> <!-- <div class="col-xl-3 mx-0"> -->
@ -201,6 +206,9 @@
if (item.data.BANK_NM_11 != null) vrActno += item.data.BANK_NM_11 + " " + item.data.VR_ACTNO_11; // 가상 계좌번호11
$("#vrActno--${pageName}").val(vrActno);
// 전자납부번호
$("#epayno--${pageName}").val(item.data.EPAYNO);
};
/**************************************************************************

@ -7,164 +7,222 @@
<form id="frmEdit--${pageName}" name="frmEdit">
<!-- hidden -->
<input type="hidden" id="crdnId--${pageName}" name="crdnId" data-map="CRDN_ID" />
<input type="hidden" id="opnnId--${pageName}" name="opnnId" data-map="OPNN_ID" />
<input type="hidden" id="rductId--${pageName}" name="rductId" data-map="RDUCT_ID" />
<input type="hidden" id="levyExclId--${pageName}" name="levyExclId" data-map="LEVY_EXCL_ID" />
<div class="d-flex flex-row justify-content-evenly">
<!-- 화면 왼쪽 -->
<div class="col-xl-9 mx-1">
<!-- 의견제출 정보 -->
<div class="col-xl-6 mx-1">
<!-- 감경 정보 -->
<div class="card">
<!-- 업무 버튼 -->
<div class="container-page-btn">
<label class="w-px-120 bg-label-danger pe-2 col-form-label text-sm-center">의견제출 정보</label>
<label class="w-px-120 bg-label-danger pe-2 col-form-label text-sm-center">감경 정보</label>
<!-- 버튼 우측 정렬 -->
<span class="container-window-btn-right">
<button type="button" class="btn btn-primary" id="btnOpnnSbmsnCreate--${pageName}" title="의견제출 등록" onclick="fnBtnOpnnSbmsnCreate${pageName}();">
의견제출 등록
<button type="button" class="btn btn-primary" id="btnRductCreate--${pageName}" title="감경 등록" onclick="fnBtnRductCreate${pageName}();">
감경 등록
</button>
<button type="button" class="btn btn-primary" id="btnOpnnSbmsnUpdate--${pageName}" title="의견제출 수정" onclick="fnBtnOpnnSbmsnUpdate${pageName}();">
의견제출 수정
<button type="button" class="btn btn-primary" id="btnRductUpdate--${pageName}" title="감경 수정" onclick="fnBtnRductUpdate${pageName}();">
감경 수정
</button>
<button type="button" class="btn btn-primary" id="btnOpnnSbmsnRemove--${pageName}" title="의견제출 삭제" onclick="fnBtnOpnnSbmsnRemove${pageName}();">
의견제출 삭제
</button>
<button type="button" class="btn btn-primary" id="btnDlbrtLtfrOtpt --${pageName}" title="심의의결서 출력" onclick="fnBtnDlbrtLtfrOtpt${pageName}();">
심의의결서 출력
<button type="button" class="btn btn-primary" id="btnRductRemove--${pageName}" title="감경 삭제" onclick="fnBtnRductRemove${pageName}();">
감경 삭제
</button>
</span> <!-- <span class="container-window-btn-right"> -->
</div> <!-- <div class="container-page-btn"> -->
<div class="row g-1">
<!-- 접수 번호 -->
<div class="col-md-4">
<label for="rcptNo--${pageName}" class="w-px-120 bg-lighter pe-2 col-form-label text-sm-end">접수 번호</label>
<input type="text" class="form-control w-30" id="rcptNo--${pageName}" name="rcptNo" data-map="RCPT_NO" readonly />
</div>
<!-- 접수 일자 -->
<div class="col-md-4">
<label for="rcptYmd--${pageName}" class="w-px-120 bg-lighter pe-2 col-form-label text-sm-end">접수 일자</label>
<input type="text" class="form-control w-30" id="rcptYmd--${pageName}" name="rcptYmd" data-map="RCPT_YMD" readonly />
<!-- 감경 일자 -->
<div class="col-md-6">
<label for="rductYmd--${pageName}" class="w-px-120 bg-lighter pe-2 col-form-label text-sm-end">감경 일자</label>
<input type="text" class="form-control w-30" id="rductYmd--${pageName}" name="rductYmd" data-map="RDUCT_YMD" readonly />
</div>
<!-- 진술자 이름 -->
<div class="col-md-4">
<label for="sttrNm--${pageName}" class="w-px-120 bg-lighter pe-2 col-form-label text-sm-end">성명</label>
<input type="text" class="form-control w-40" id="sttrNm--${pageName}" name="sttrNm" data-map="STTR_NM" readonly />
<!-- -->
<div class="col-md-6">
</div>
<!-- 진술자 생년월일 -->
<div class="col-md-4">
<label for="sttrBrdt--${pageName}" class="w-px-120 bg-lighter pe-2 col-form-label text-sm-end">생년월일</label>
<input type="text" class="form-control w-25" id="sttrBrdt--${pageName}" name="sttrBrdt" data-map="STTR_BRDT" placeholder="YY-MM-DD" readonly />
<!-- 감경 사유 명 -->
<div class="col-md-6">
<label for="rductRsnNm--${pageName}" class="w-px-120 bg-lighter pe-2 col-form-label text-sm-end">감경 사유</label>
<input type="text" class="form-control w-50" id="rductRsnNm--${pageName}" name="rductRsnNm" data-map="RDUCT_RSN_NM" readonly />
</div>
<!-- 소유주 관계 구분 명 -->
<div class="col-md-4">
<label for="ownrRelNm--${pageName}" class="w-px-120 bg-lighter pe-2 col-form-label text-sm-end">소유주 관계 구분</label>
<input type="text" class="form-control w-40" id="ownrRelNm--${pageName}" name="ownrRelNm" data-map="OWNR_REL_NM" readonly />
</div>
<!-- 진술자 주소 --><!-- 진술자 우편번호 -->
<div class="col-md-12">
<label for="sttrAddr--${pageName}" class="w-px-120 bg-lighter pe-2 col-form-label text-sm-end">주소</label>
<input type="text" class="form-control w-80" id="sttrAddr--${pageName}" name="sttrAddr" data-map="STTR_ADDR" readonly />
<input type="text" class="form-control w-px-75" id="sttrZip--${pageName}" name="sttrZip" data-map="STTR_ZIP" readonly />
<!-- 감경 금액 -->
<div class="col-md-6">
<label for="sttrDaddr--${pageName}" class="w-px-120 bg-lighter pe-2 col-form-label text-sm-end">감경 금액</label>
<input type="text" class="form-control w-30" id="sttrDaddr--${pageName}" name="sttrDaddr" data-map="STTR_DADDR" readonly />
</div>
<!-- 진술자 상세주소 -->
<!-- 기타 내용 -->
<div class="col-md-12">
<label for="sttrDaddr--${pageName}" class="w-px-120 bg-lighter pe-2 col-form-label text-sm-end">상세 주소</label>
<input type="text" class="form-control w-87" id="sttrDaddr--${pageName}" name="sttrDaddr" data-map="STTR_DADDR" readonly />
</div>
<!-- 진술자 연락처 -->
<div class="col-md-4">
<label for="sttrCttpc--${pageName}" class="w-px-120 bg-lighter pe-2 col-form-label text-sm-end">연락처</label>
<input type="text" class="form-control w-35" id="sttrCttpc--${pageName}" name="sttrCttpc" data-map="STTR_CTTPC" readonly />
</div>
<!-- 진술자 이메일 -->
<div class="col-md-8">
<label for="sttrEml--${pageName}" class="w-px-120 bg-lighter pe-2 col-form-label text-sm-end">이메일</label>
<input type="text" class="form-control w-35" id="sttrEml--${pageName}" name="sttrEml" data-map="STTR_EML" readonly />
</div>
<!-- 의견 제출 내용 -->
<div class="col-md-12">
<label for="opnnSbmsnCn--${pageName}" class="w-px-120 bg-lighter pe-2 col-form-label text-sm-end">의견제출 내용</label>
<textarea type="text" class="form-control w-87" id="opnnSbmsnCn--${pageName}" name="opnnSbmsnCn" data-map="OPNN_SBMSN_CN" rows="4" data-maxlengthb="4000" readonly>
<label for="etcCn--${pageName}" class="w-px-120 bg-lighter pe-2 col-form-label text-sm-end">기타 내용</label>
<textarea type="text" class="form-control w-80" id="etcCn--${pageName}" name="etcCn" data-map="ETC_CN" rows="3" data-maxlengthb="1000" readonly>
</textarea>
</div>
<!-- 의견 제출 구분 명 -->
<div class="col-md-4">
<label for="opnnSbmsnSeNm--${pageName}" class="w-px-120 bg-lighter pe-2 col-form-label text-sm-end">의견 제출 구분</label>
<input type="text" class="form-control w-40" id="opnnSbmsnSeNm--${pageName}" name="opnnSbmsnSeNm" data-map="OPNN_SBMSN_SE_NM" readonly />
</div>
<!-- 의견 제출 요지 -->
<div class="col-md-8">
<label for="opnnSbmsnGist--${pageName}" class="w-px-120 bg-lighter pe-2 col-form-label text-sm-end">의견제출 요지</label>
<input type="text" class="form-control w-80" id="opnnSbmsnGist--${pageName}" name="opnnSbmsnGist" data-map="OPNN_SBMSN_GIST" data-maxlengthb="300" readonly />
<!-- 등록 일시 -->
<div class="col-md-6">
<label for="regDt--${pageName}" class="w-px-120 bg-lighter pe-2 col-form-label text-sm-end">등록 일시</label>
<input type="text" class="form-control w-40" id="regDt--${pageName}" name="regDt" data-map="REG_DT" readonly />
</div>
<!-- 담당자 검토 의견 -->
<div class="col-md-12">
<label for="picRvwOpnn--${pageName}" class="w-px-120 bg-lighter pe-2 col-form-label text-sm-end">검토 의견</label>
<textarea class="form-control w-87" id="picRvwOpnn--${pageName}" name="picRvwOpnn" data-map="PIC_RVW_OPNN" rows="3" data-maxlengthb="1000" readonly>
</textarea>
<!-- 등록자 -->
<div class="col-md-6">
<label for="rgtrNm--${pageName}" class="w-px-120 bg-lighter pe-2 col-form-label text-sm-end">등록자</label>
<input type="text" class="form-control w-40" id="rgtrNm--${pageName}" name="rgtrNm" data-map="RGTR_NM" readonly />
</div>
<!-- 첨부 파일 테이블 -->
<div class="table-responsive">
<table class="table table-bordered table-hover table-striped" id="fileList--${pageName}">
<thead>
<th class="text-center" style="width: 24px">NO.</th>
<th class="text-center" style="width: 200px">파일 번호</th>
<th class="text-center">파일 이름</th>
<th class="text-center" style="width: 200px">파일 크기</th>
<th class="text-center" style="width: 120px">다운로드</th>
</thead>
<tbody></tbody>
</table>
</div> <!-- 첨부 파일 테이블 <div class="table-responsive"> -->
</div> <!-- <div class="row g-1"> -->
</div> <!-- <div class="card"> -->
</div> <!-- <div class="col-xl-9 mx-1"> -->
</div> <!-- <div class="col-xl-6 mx-1"> -->
<!-- 화면 오른쪽 -->
<div class="col-xl-3 mx-0">
<!-- 심의 정보 -->
<div class="col-xl-6 mx-1">
<!-- 부과제외 정보 -->
<div class="card">
<!-- 업무 버튼 -->
<div class="container-page-btn">
<label class="w-px-120 bg-label-danger pe-2 col-form-label text-sm-center">심의 정보</label>
<label class="w-px-120 bg-label-danger pe-2 col-form-label text-sm-center">부과제외 정보</label>
<!-- 버튼 우측 정렬 -->
<span class="container-window-btn-right">
<button type="button" class="btn btn-primary" id="btnOpnnSbmsnDlbrt--${pageName}" title="의견제출 심의" onclick="fnBtnOpnnSbmsnDlbrt${pageName}();">
의견제출 심의
<button type="button" class="btn btn-primary" id="btnLevyExclCreate--${pageName}" title="부과제외 등록" onclick="fnBtnLevyExclCreate${pageName}();">
부과제외 등록
</button>
<button type="button" class="btn btn-primary" id="btnLevyExclUpdate--${pageName}" title="부과제외 수정" onclick="fnBtnLevyExclUpdate${pageName}();">
부과제외 수정
</button>
<button type="button" class="btn btn-primary" id="btnLevyExclRemove--${pageName}" title="부과제외 삭제" onclick="fnBtnLevyExclRemove${pageName}();">
부과제외 삭제
</button>
</span> <!-- <span class="container-window-btn-right"> -->
</div> <!-- <div class="container-page-btn"> -->
<div class="row g-1">
<!-- 문서 번호 -->
<div class="col-md-12">
<label for="docNo--${pageName}" class="w-px-120 bg-lighter pe-2 col-form-label text-sm-end">문서 번호</label>
<input type="text" class="form-control w-50" id="docNo--${pageName}" name="docNo" data-map="DOC_NO" readonly />
<!-- 부과제외 일자 -->
<div class="col-md-6">
<label for="rductYmd--${pageName}" class="w-px-120 bg-lighter pe-2 col-form-label text-sm-end">부과제외 일자</label>
<input type="text" class="form-control w-30" id="rductYmd--${pageName}" name="rductYmd" data-map="RDUCT_YMD" readonly />
</div>
<!-- 답변일시 -->
<div class="col-md-12">
<label for="ansYmdTm--${pageName}" class="w-px-120 bg-lighter pe-2 col-form-label text-sm-end">처리 일시</label>
<input type="text" class="form-control w-50" id="ansYmdTm--${pageName}" name="ansYmdTm" data-map="ANS_YMD_TM" readonly />
<!-- -->
<div class="col-md-6">
</div>
<!-- 의견 제출 상태 코드 -->
<div class="col-md-12">
<label for="opnnSbmsnSttsNm--${pageName}" class="w-px-120 bg-lighter pe-2 col-form-label text-sm-end">처리 결과</label>
<input type="text" class="form-control w-50" id="opnnSbmsnSttsNm--${pageName}" name="opnnSbmsnSttsNm" data-map="OPNN_SBMSN_STTS_NM" readonly />
<!-- 부과제외 구분 명 -->
<div class="col-md-6">
<label for="levyExclSeNm--${pageName}" class="w-px-120 bg-lighter pe-2 col-form-label text-sm-end">부과제외 구분</label>
<input type="text" class="form-control w-30" id="levyExclSeNm--${pageName}" name="levyExclSeNm" data-map="LEVY_EXCL_SE_NM" readonly />
</div>
<!-- 답변 내용 -->
<div class="col-md-12">
<label for="ansCn--${pageName}" class="w-px-120 bg-lighter pe-2 col-form-label text-sm-end">처리 내용</label>
<!-- 부과제외 사유 명 -->
<div class="col-md-6">
<label for="levyExclRsnNm--${pageName}" class="w-px-120 bg-lighter pe-2 col-form-label text-sm-end">부과제외 사유</label>
<input type="text" class="form-control w-60" id="levyExclRsnNm--${pageName}" name="levyExclRsnNm" data-map="LEVY_EXCL_RSN_NM" readonly />
</div>
<!-- 기타 내용 -->
<div class="col-md-12">
<textarea type="text" class="form-control w-100" id="ansCn--${pageName}" name="ansCn" data-map="ANS_CN" rows="14" data-maxlengthb="4000">
<label for="etcCn--${pageName}" class="w-px-120 bg-lighter pe-2 col-form-label text-sm-end">기타 내용</label>
<textarea type="text" class="form-control w-80" id="etcCn--${pageName}" name="etcCn" data-map="ETC_CN" rows="3" data-maxlengthb="1000" readonly>
</textarea>
</div>
<!-- 등록 일시 -->
<div class="col-md-6">
<label for="regDt--${pageName}" class="w-px-120 bg-lighter pe-2 col-form-label text-sm-end">등록 일시</label>
<input type="text" class="form-control w-40" id="regDt--${pageName}" name="regDt" data-map="REG_DT" readonly />
</div>
<!-- 등록자 -->
<div class="col-md-6">
<label for="rgtrNm--${pageName}" class="w-px-120 bg-lighter pe-2 col-form-label text-sm-end">등록자</label>
<input type="text" class="form-control w-40" id="rgtrNm--${pageName}" name="rgtrNm" data-map="RGTR_NM" readonly />
</div>
</div> <!-- 의견제출 심의 정보 <div class="card" title="심의 정보"> -->
</div> <!-- <div class="col-xl-3 mx-0"> -->
</div> <!-- <div class="row g-1"> -->
</div> <!-- 부과제외 정보 <div class="card"> -->
</div> <!-- <div class="col-xl-6 mx-1"> -->
</div> <!-- <div class="d-flex flex-row justify-content-evenly"> -->
</form>
</p>
<div class="d-flex flex-row justify-content-evenly">
<!-- 화면 왼쪽 -->
<div class="col-xl-6 mx-1">
<!-- 처리 상태 이력 -->
<div class="card">
<!-- 업무 버튼 -->
<div class="container-page-btn">
<label class="w-px-120 bg-label-danger pe-2 col-form-label text-sm-center">처리 상태 이력</label>
</div>
<div class="row g-1">
<!-- DataTables(그리드) -->
<div class="card-datatable text-nowrap">
<div id="DataTables_Table_0_wrapperCrdnSttsHstry--${pageName}" class="dataTables_wrapper dt-bootstrap5 no-footer">
<div id="table-responsiveCrdnSttsHstry--${pageName}" class="table-responsive" style="overflow-x:scroll; height:340px; overflow-y:scroll;" >
<table class="dataTable datatables-ajax table table-bordered no-footer" id="DataTables_Table_0CrdnSttsHstry--${pageName}" aria-describedby="DataTables_Table_0_info">
<thead>
<tr id="theadTrCrdnSttsHstry--${pageName}">
<th>등록일시</th>
<th>등록사용자</th>
<th>단속상태</th>
<th>기타내용</th>
</tr>
</thead>
<tbody id="tbodyCrdnSttsHstry--${pageName}">
</tbody>
<template id="${infoPrefix}CrdnSttsHstryRow--${pageName}">
<tr data-key="{STTS_HSTRY_ID}">
<td class="text-center" onclick="{onclick}">{REG_DT}</td>
<td class="text-center" onclick="{onclick}">{RGTR_NM}</td>
<td class="text-center" onclick="{onclick}">{CRDN_STTS_NM}</td>
<td class="text-center" onclick="{onclick}">{ETC_CN}</td>
</tr>
</template>
<template id="${infoPrefix}CrdnSttsHstryNotFound--${pageName}">
<tr class="odd">
<td valign="top" colspan="6" class="dataTables_empty text-center">처리상태 이력 정보를 찾지 못했습니다.</td>
</tr>
</template>
</table>
</div>
</div>
</div> <!-- / DataTables(그리드) -->
</div> <!-- <div class="row g-1"> -->
</div> <!-- <div class="card"> -->
</div> <!-- 화면 왼쪽 <div class="col-xl-6 mx-1"> -->
<!-- 화면 오른쪽 -->
<div class="col-xl-6 mx-1">
<div class="card">
<!-- 업무 버튼 -->
<div class="container-page-btn">
<label class="w-px-120 bg-label-danger pe-2 col-form-label text-sm-center">주소 변동 이력</label>
</div>
<div class="row g-1">
<!-- DataTables(그리드) -->
<div class="card-datatable text-nowrap">
<div id="DataTables_Table_0_wrapperCrdnPayerHstry--${pageName}" class="dataTables_wrapper dt-bootstrap5 no-footer">
<div id="table-responsiveCrdnPayerHstry--${pageName}" class="table-responsive" style="overflow-x:scroll; height:340px; overflow-y:scroll;" >
<table class="dataTable datatables-ajax table table-bordered no-footer" id="DataTables_Table_0CrdnPayerHstry--${pageName}" aria-describedby="DataTables_Table_0_info">
<thead>
<tr id="theadTrCrdnPayerHstry--${pageName}">
<th>등록일시</th>
<th>등록사용자</th>
<th>납부자명</th>
<th>우편번호</th>
<th>전체주소</th>
</tr>
</thead>
<tbody id="tbodyCrdnPayerHstry--${pageName}">
</tbody>
<template id="${infoPrefix}CrdnPayerHstryRow--${pageName}">
<tr data-key="{CHG_HSTRY_ID}">
<td class="text-center" onclick="{onclick}">{REG_DT}</td>
<td class="text-center" onclick="{onclick}">{RGTR_NM}</td>
<td class="text-center" onclick="{onclick}">{RTPYR_NM}</td>
<td class="text-center" onclick="{onclick}">{ZIP}</td>
<td class="text-center" onclick="{onclick}">{WHOL_ADDR}</td>
</tr>
</template>
<template id="${infoPrefix}CrdnPayerHstryNotFound--${pageName}">
<tr class="odd">
<td valign="top" colspan="5" class="dataTables_empty text-center">주소변동 이력 정보를 찾지 못했습니다.</td>
</tr>
</template>
</table>
</div>
</div>
</div> <!-- / DataTables(그리드) -->
</div> <!-- <div class="row g-1"> -->
</div> <!-- <div class="card"> -->
</div> <!-- 화면 오른쪽 <div class="col-xl-6 mx-1"> -->
</div> <!-- <div class="d-flex flex-row justify-content-evenly"> -->
</div>
<script>
@ -175,243 +233,131 @@
var ${pageName}PrefixUrl = "/sprt/sprt02";
// FormFields
var ${pageName}Fields = new FormFields("#frmEdit--${pageName}");
// 파일 리스트
var $fileListArr = new Array();
/**************************************************************************
* DatasetControl
**************************************************************************/
var ${pageName}Control = new DatasetControl({
prefix : "totalInfoOpnnSbmsn"
, prefixName : "의견제출 정보"
, keymapper : info => info ? info.CRDN_ID : ""
, dataGetter : obj => obj.opnnSbmsnInfo
var ${pageName}CrdnSttsHstryDataset = new Dataset({
prefix : "crdnSttsHstry"
, prefixName : "단속상태이력"
, keymapper : info => info ? info.STTS_HSTRY_ID : ""
, dataGetter : obj => obj.crdnSttsHstryList
, appendData : true
, formats : {
RCPT_YMD : dateFormat
, ANS_YMD_TM : datetimeFormat
}
});
${pageName}Control.onCurrentChange = item => {
// Dataset 셋팅
${pageName}Fields.set(item);
if (item.data.OPNN_ID != null) {
// 첨부파일 조회
fnSearchFileList${pageName}(item.data.OPNN_ID);
REG_DT : datetimeFormat
}
, onDatasetChange : obj => {
crdnSttsHstryRenderList${pageName}();
}
, onCurrentChange : item => {
if (!item) return;
/**************************************************************************
*
**************************************************************************/
// 의견제출 dialog
${pageName}Control.getOpnnSbmsnInfo = (params) => {
let dialogTitle = "";
if (params.callPurpose == "create") {
dialogTitle = "의견제출 등록";
} else if (params.callPurpose == "update") {
dialogTitle = "의견제출 수정";
} else {
return;
}
let key = item.data.STTS_HSTRY_ID;
ajax.get({
url : wctx.url("/excl/excl02/020/info.do")
, data : params
, success : resp => {
resp = resp.replace(/infoPrefix/g, this.prefix)
.replace(/prefixName/g, this.prefixName)
dialog.open({
id : "opnnInfoDialog"
, title : dialogTitle
, content : resp
, size : "xl"
, onClose : () => { fnDataRefreshInfo(); } // callback
});
$("#tbodyCrdnSttsHstry--${pageName}").setCurrentRow(key);
}
});
}
// 삭제 후 재조회
${pageName}Control.onRemoveOpnnSbmsn = (resp) => {
if (resp.saved) {
fnDataRefreshInfo();
}
var ${pageName}CrdnPayerHstryDataset = new Dataset({
prefix : "crdnPayerHstry"
, prefixName : "단속납부자이력"
, keymapper : info => info ? info.CHG_HSTRY_ID : ""
, dataGetter : obj => obj.crdnPayerHstryList
, appendData : true
, formats : {
REG_DT : datetimeFormat
}
// 삭제
${pageName}Control.removeOpnnSbmsn = (opnnId) => {
ajax.post({
url : wctx.url("/excl/excl02/010/remove.do")
, data : {opnnId : opnnId}
, success : resp => ${pageName}Control.onRemoveOpnnSbmsn(resp)
});
, onDatasetChange : obj => {
crdnPayerHstryRenderList${pageName}();
}
, onCurrentChange : item => {
if (!item) return;
// 심의 dialog
${pageName}Control.getOpnnSbmsnDlbrtInfo = (params) => {
ajax.get({
url : wctx.url("/excl/excl02/030/info.do")
, data : params
, success : resp => {
resp = resp.replace(/infoPrefix/g, this.prefix)
.replace(/prefixName/g, this.prefixName)
dialog.open({
id : "opnnInfoDialog"
, title : "의견제출 답변 처리"
, content : resp
, size : "lg"
});
let key = item.data.CHG_HSTRY_ID;
$("#tbodyCrdnPayerHstry--${pageName}").setCurrentRow(key);
}
});
/**************************************************************************
*
**************************************************************************/
// 단속 상태 이력 DataTables에 click 이벤트
crdnSttsHstryRenderList${pageName} = () => {
let ${infoPrefix}List = ${pageName}CrdnSttsHstryDataset;
let empty = ${infoPrefix}List.empty;
let trs = empty ?
[document.getElementById("${infoPrefix}CrdnSttsHstryNotFound--${pageName}").innerHTML] : <%-- from template#${infoPrefix}NotFound --%>
${infoPrefix}List.inStrings(
document.getElementById("${infoPrefix}CrdnSttsHstryRow--${pageName}").innerHTML, <%-- from template#${infoPrefix}Row --%>
(str, dataItem) => str
.replace(/{onclick}/gi, "${pageName}CrdnSttsHstryDataset.setCurrent('" + dataItem.getValue("STTS_HSTRY_ID") + "');")
);
$("#tbodyCrdnSttsHstry--${pageName}").html(trs.join());
}
// 재조회
function fnDataRefreshInfo() {
let crdnId = $("#crdnId--${pageName}").val();
// 단속 납부자 이력 DataTables에 click 이벤트
crdnPayerHstryRenderList${pageName} = () => {
let ${infoPrefix}List = ${pageName}CrdnPayerHstryDataset;
let empty = ${infoPrefix}List.empty;
ajax.get({
url : wctx.url("/sprt/sprt02/030/info.do")
, headers: { Accept: "application/json; charset=utf-8" } // json
, data : { crdnId : crdnId }
, success : resp => {
// Dataset 셋팅
${pageName}Control.setData([resp.opnnSbmsnInfo]);
}
});
let trs = empty ?
[document.getElementById("${infoPrefix}CrdnPayerHstryNotFound--${pageName}").innerHTML] : <%-- from template#${infoPrefix}NotFound --%>
${infoPrefix}List.inStrings(
document.getElementById("${infoPrefix}CrdnPayerHstryRow--${pageName}").innerHTML, <%-- from template#${infoPrefix}Row --%>
(str, dataItem) => str
.replace(/{onclick}/gi, "${pageName}CrdnPayerHstryDataset.setCurrent('" + dataItem.getValue("CHG_HSTRY_ID") + "');")
);
$("#tbodyCrdnPayerHstry--${pageName}").html(trs.join());
}
/**************************************************************************
* 초기 셋팅
**************************************************************************/
// 검색조건 초기값 셋팅
function initForm${pageName}() {
initForm${pageName} = () => {
}
// 이벤트 설정
function setEvent${pageName}() {
setEvent${pageName} = () => {
}
/**************************************************************************
* function
**************************************************************************/
// 의견제출 등록
function fnBtnOpnnSbmsnCreate${pageName}() {
let crdnId = ${pageName}Control.dataset.getValue("CRDN_ID");
// 감경 등록
fnBtnRductCreate${pageName} = () => {
// 단속 ID 가 없다면.. return
if (crdnId == undefined || crdnId == "") {
return;
}
let params = {
callPurpose : "create"
, crdnId : crdnId
};
// 감경 수정
fnBtnRductUpdate${pageName} = () => {
${pageName}Control.getOpnnSbmsnInfo(params);
}
// 감경 삭제
fnBtnRductRemove${pageName} = () => {
// 의견제출 수정
function fnBtnOpnnSbmsnUpdate${pageName}() {
let opnnId = ${pageName}Control.dataset.getValue("OPNN_ID")
// 의견 ID 가 없다면.. return
if (opnnId == undefined || opnnId == "") {
return;
}
let params = {
callPurpose : "update"
, opnnId : opnnId
};
// 부과제외 등록
fnBtnLevyExclCreate${pageName} = () => {
${pageName}Control.getOpnnSbmsnInfo(params);
}
// 의견제출 삭제
function fnBtnOpnnSbmsnRemove${pageName}() {
let opnnId = ${pageName}Control.dataset.getValue("OPNN_ID");
// 부과제외 수정
fnBtnLevyExclUpdate${pageName} = () => {
// 의견 ID 가 없다면.. return
if (opnnId == undefined || opnnId == "") {
return;
}
dialog.alert({
content : "선택한 ${prefixName} 정보를 삭제하시겠습니까?"
, onOK : () => {
${pageName}Control.removeOpnnSbmsn(opnnId);
}
});
}
// 의견제출 심의
function fnBtnOpnnSbmsnDlbrt${pageName}() {
let opnnId = ${pageName}Control.dataset.getValue("OPNN_ID");
// 의견제출 ID 가 없다면.. return
if (opnnId == undefined || opnnId == "") {
return;
}
let params = {
callPurpose : "update"
, opnnId : opnnId
};
${pageName}Control.getOpnnSbmsnDlbrtInfo(params);
}
// 심의의결서 출력
function fnBtnDlbrtLtfrOtpt${pageName}() {
}
// 첨부파일 조회
function fnSearchFileList${pageName}(opnnId) {
// 의견제출 등록일 경우에는 첨부파일을 조회하지 안는다..
if (opnnId == null || opnnId == "") {
return;
}
// 첨부파일 리스트
ajax.get({
url : "file/list.do"
, data : {
infoType : "110"
, infoKeys : opnnId
, fetchSize : 0
}
, success : resp => {
let fileNo = 0;
let fileList = resp.fileList;
fileList.forEach(function (item, index, array) {
fileNo = index + 1;
let innerHtml = "";
innerHtml += "<tr>";
innerHtml += "<td class='text-center'>" + fileNo + "</td>";
innerHtml += "<td class='text-center'>" + item.FILE_ID + "</td>";
innerHtml += "<td class='text-center'>" + item.FILE_NM + "</td>";
innerHtml += "<td class='text-center'>" + item.FILE_SIZE + " byte</td>";
innerHtml += "<td class='text-center'>" + "<button class='btn' onclick='fnBtnFileDownload${pageName}(" + item.FILE_ID + ");'><i class='bx bx-download me-1'></i></button>" + "</td>";
innerHtml += "</tr>";
$("#fileList--${pageName} > tbody:last").append(innerHtml);
});
}
});
}
// 부과제외 삭제
fnBtnLevyExclRemove${pageName} = () => {
// 첨부파일 다운로드
function fnBtnFileDownload${pageName}(fileID) {
top.location.href = "/file/download.do?fileID=" + fileID;
}
/**************************************************************************
@ -425,8 +371,9 @@
initForm${pageName}();
// Dataset 셋팅
${pageName}Control.setData([${opnnSbmsnInfo}]);
${pageName}CrdnSttsHstryDataset.setData(${crdnSttsHstryList});
${pageName}CrdnPayerHstryDataset.setData(${crdnPayerHstryList});
});
// #sourceURL=sprt02030-info.jsp
// #sourceURL=sprt02050-info.jsp
</script>

Loading…
Cancel
Save