우편통합 - 안내문관리 추가.

main
jjh 12 months ago
parent 54ee5dcf1e
commit a3528cea27

@ -0,0 +1,51 @@
package cokr.xit.fims.epst;
import cokr.xit.foundation.AbstractEntity;
import lombok.Getter;
import lombok.Setter;
/**
*
* @author JoJH
*/
@Getter
@Setter
public class EpostGdcc extends AbstractEntity {
/**
*
*/
private String sggCd;
/**
*
*/
private String taskSeCd;
/**
*
*/
private String sndngSeCd;
/**
* ID
*/
private String gdccId;
/**
*
*/
private String ttlNm;
/**
*
*/
private String wordsCn;
/**
*
*/
private String lastUseDt;
}

@ -0,0 +1,99 @@
package cokr.xit.fims.epst.dao;
import java.util.List;
import java.util.Map;
import org.egovframe.rte.psl.dataaccess.mapper.Mapper;
import cokr.xit.foundation.component.AbstractMapper;
import cokr.xit.foundation.data.DataObject;
import cokr.xit.fims.epst.EpostGdcc;
import cokr.xit.fims.epst.EpostQuery;
/** DAO
*
* <p> :
*
* <pre>
* ============ ============
* 2023-12-04 JoJH
* ================================
* </pre>
*/
@Mapper("epostGdccMapper")
public interface EpostGdccMapper extends AbstractMapper {
/** .<br />
* @param req
* @return
*/
List<DataObject> selectEpostGdccList(EpostQuery req);
/** .
* @param req
* @return
*/
List<EpostGdcc> selectEpostGdccs(EpostQuery req);
/** .
* @param params
* <ul><li>"epostGdcc" - </li>
* <li>"currentUser" - </li>
* </ul>
* @return
*/
int insertEpostGdcc(Map<String, Object> params);
/** .
* @param epostGdcc
* @return
* <ul><li> true</li>
* <li> false</li>
* </ul>
*/
default boolean insert(EpostGdcc epostGdcc) {
return epostGdcc != null && insertEpostGdcc(params().set("epostGdcc", epostGdcc)) == 1;
}
/** .
* @param params
* <ul><li>"epostGdcc" - </li>
* <li>"currentUser" - </li>
* </ul>
* @return
*/
int updateEpostGdcc(Map<String, Object> params);
/** .
* @param epostGdcc
* @return
* <ul><li> true</li>
* <li> false</li>
* </ul>
*/
default boolean update(EpostGdcc epostGdcc) {
return epostGdcc != null && updateEpostGdcc(params().set("epostGdcc", epostGdcc)) == 1;
}
/** .
* @param params
* <ul><li>"epostGdcc" - </li>
* <li>"currentUser" - </li>
* </ul>
* @return
*/
int deleteEpostGdcc(Map<String, ?> params);
/** .
* @param epostGdcc
* @return
* <ul><li> true</li>
* <li> false</li>
* </ul>
*/
default boolean delete(EpostGdcc epostGdcc) {
return epostGdcc != null && deleteEpostGdcc(params().set("epostGdcc", epostGdcc)) == 1;
}
}

@ -0,0 +1,61 @@
package cokr.xit.fims.epst.service;
import java.util.List;
import cokr.xit.foundation.data.DataObject;
import cokr.xit.fims.epst.EpostGdcc;
import cokr.xit.fims.epst.EpostQuery;
/** .
*
* <p> :
*
* <pre>
* ============ ============
* 2023-12-04 JoJH
* ================================
* </pre>
*/
public interface EpostGdccService {
/** .
* @param req
* @return
*/
List<DataObject> getEpostGdccList(EpostQuery req);
/** .
* @param req
* @return
*/
List<EpostGdcc> getEpostGdccs(EpostQuery req);
/** .
* @param epostGdcc
* @return
* <ul><li> true</li>
* <li> false</li>
* </ul>
*/
boolean create(EpostGdcc epostGdcc);
/** .
* @param epostGdcc
* @return
* <ul><li> true</li>
* <li> false</li>
* </ul>
*/
boolean update(EpostGdcc epostGdcc);
/** .
* @param epostGdcc
* @return
* <ul><li> true</li>
* <li> false</li>
* </ul>
*/
boolean remove(EpostGdcc epostGdcc);
}

@ -0,0 +1,82 @@
package cokr.xit.fims.epst.service.bean;
import java.util.List;
import javax.annotation.Resource;
import org.springframework.stereotype.Component;
import cokr.xit.foundation.AbstractComponent;
import cokr.xit.foundation.data.DataObject;
import cokr.xit.fims.epst.EpostGdcc;
import cokr.xit.fims.epst.EpostQuery;
import cokr.xit.fims.epst.dao.EpostGdccMapper;
/** Bean
*
* <p> :
*
* <pre>
* ============ ============
* 2023-12-04 JoJH
* ================================
* </pre>
*/
@Component("epostGdccBean")
public class EpostGdccBean extends AbstractComponent {
/** 전자우편 안내문 정보 DAO */
@Resource(name = "epostGdccMapper")
private EpostGdccMapper epostGdccMapper;
/** .
* @param req
* @return
*/
public List<DataObject> getEpostGdccList(EpostQuery req) {
return epostGdccMapper.selectEpostGdccList(req);
}
/** .
* @param req
* @return
*/
public List<EpostGdcc> getEpostGdccs(EpostQuery req) {
return epostGdccMapper.selectEpostGdccs(req);
}
/** .
* @param epostGdcc
* @return
* <ul><li> true</li>
* <li> false</li>
* </ul>
*/
public boolean create(EpostGdcc epostGdcc) {
return epostGdccMapper.insert(epostGdcc);
}
/** .
* @param epostGdcc
* @return
* <ul><li> true</li>
* <li> false</li>
* </ul>
*/
public boolean update(EpostGdcc epostGdcc) {
return epostGdccMapper.update(epostGdcc);
}
/** .
* @param epostGdcc
* @return
* <ul><li> true</li>
* <li> false</li>
* </ul>
*/
public boolean remove(EpostGdcc epostGdcc) {
return epostGdccMapper.delete(epostGdcc);
}
}

@ -0,0 +1,58 @@
package cokr.xit.fims.epst.service.bean;
import java.util.List;
import javax.annotation.Resource;
import org.springframework.stereotype.Service;
import cokr.xit.foundation.component.AbstractServiceBean;
import cokr.xit.foundation.data.DataObject;
import cokr.xit.fims.epst.EpostGdcc;
import cokr.xit.fims.epst.EpostQuery;
import cokr.xit.fims.epst.service.EpostGdccService;
/** .
*
* <p> :
*
* <pre>
* ============ ============
* 2023-12-04 JoJH
* ================================
* </pre>
*/
@Service("epostGdccService")
public class EpostGdccServiceBean extends AbstractServiceBean implements EpostGdccService {
/** 전자우편 안내문 정보 Bean */
@Resource(name = "epostGdccBean")
private EpostGdccBean epostGdccBean;
@Override
public List<DataObject> getEpostGdccList(EpostQuery req) {
return epostGdccBean.getEpostGdccList(req);
}
@Override
public List<EpostGdcc> getEpostGdccs(EpostQuery req) {
return epostGdccBean.getEpostGdccs(req);
}
@Override
public boolean create(EpostGdcc epostGdcc) {
return epostGdccBean.create(epostGdcc);
}
@Override
public boolean update(EpostGdcc epostGdcc) {
return epostGdccBean.update(epostGdcc);
}
@Override
public boolean remove(EpostGdcc epostGdcc) {
return epostGdccBean.remove(epostGdcc);
}
}

@ -22,13 +22,13 @@ import cokr.xit.fims.epst.service.EpostRcptRegService;
* ================================ * ================================
* </pre> * </pre>
*/ */
public class EpostRcptRegController extends ApplicationController { public class Epst01Controller extends ApplicationController {
public static final String CLASS_URL = "/epst/epost"; public static final String CLASS_URL = "/epst/epst01";
public class METHOD_URL { public class METHOD_URL {
public static final String public static final String
mainEpostRcptReg = "/mainEpostRcptReg.do" // 전자우편 접수 메인 epostRcptRegMain = "/epostRcptRegMain.do" // 전자우편 접수 메인
, getEpostRcptRegList = "/getEpostRcptRegList.do" // 전자우편 접수 조회 , getEpostRcptRegList = "/getEpostRcptRegList.do" // 전자우편 접수 조회
, createEpostRcptReg = "/createEpostRcptReg.do" // 전자우편 접수 등록 , createEpostRcptReg = "/createEpostRcptReg.do" // 전자우편 접수 등록
, updateEpostRcptReg = "/updateEpostRcptReg.do" // 전자우편 접수 수정 , updateEpostRcptReg = "/updateEpostRcptReg.do" // 전자우편 접수 수정
@ -44,7 +44,7 @@ public class EpostRcptRegController extends ApplicationController {
* {@link #getEpostRcptRegList(EpostRcptRegQuery) } . * {@link #getEpostRcptRegList(EpostRcptRegQuery) } .
* @return /epostRcptReg/epostRcptReg-main * @return /epostRcptReg/epostRcptReg-main
*/ */
public ModelAndView mainEpostRcptReg() { public ModelAndView epostRcptRegMain() {
ModelAndView mav = getEpostRcptRegList(new EpostQuery().setPageNum(1)); ModelAndView mav = getEpostRcptRegList(new EpostQuery().setPageNum(1));
mav.setViewName("/epostRcptReg/epostRcptReg-main"); mav.setViewName("/epostRcptReg/epostRcptReg-main");

@ -0,0 +1,126 @@
package cokr.xit.fims.epst.web;
import java.util.List;
import java.util.Map;
import javax.annotation.Resource;
import org.springframework.web.bind.annotation.PostMapping;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.servlet.ModelAndView;
import cokr.xit.base.code.CommonCode;
import cokr.xit.base.user.ManagedUser;
import cokr.xit.base.web.ApplicationController;
import cokr.xit.fims.epst.EpostGdcc;
import cokr.xit.fims.epst.EpostQuery;
import cokr.xit.fims.epst.service.EpostGdccService;
/**
*
* <p> :
*
* <pre>
* ============ ============
* 2023-12-04 mjkhan
* ================================
* </pre>
*/
@RequestMapping(name = "전자우편 안내문", value = "/epostGdcc")
public class Epst02Controller extends ApplicationController {
public static final String CLASS_URL = "/epst/epst02";
public class METHOD_URL {
public static final String
epostGuidanceDocumentMain = "/010/main.do" // 전자우편 안내문 메인 화면
, getEpostGuidanceDocumentList = "/010/list.do" // 전자우편 안내문 대장 목록 조회
, create = "/010/create.do" // 등록
, update = "/010/update.do" // 수정
, remove = "/010/remove.do" // 삭제
;
}
/**전자우편 안내문 서비스*/
@Resource(name = "epostGdccService")
private EpostGdccService epostGdccService;
/** (epostGdcc/epostGdcc-main) .
* {@link #getEpostGdccList(EpostGdccQuery) } .
* @return /epostGdcc/epostGdcc-main
*/
public ModelAndView epostGuidanceDocumentMain() {
ModelAndView mav = new ModelAndView("fims/epst/epst02010-main");
// 사용자 정보
ManagedUser managedUser = (ManagedUser)currentUser().getUser();
// View(jsp)에서 사용할 공통코드를 조회
Map<String, List<CommonCode>> commonCodes = getCodesOf("FIM054");
return mav.addObject("pageName", "epst02010") // View(jsp)에서 사용할 id 뒤에 붙일 suffix
.addObject("infoPrefix", "epostGdcc") // prefix
.addObject("sggCd", managedUser.getOrgID()) // 시군구 코드(SGG_CD)
.addObject("FIM054List", commonCodes.get("FIM054")) // 업무 구분 코드(TASK_SE_CD)
;
}
/** .<br />
* {@link EpostGdccService#getEpostGdccList(EpostGdccQuery)}
* @param req
* @return jsonView
* <pre><code> {
* "epostGdccList": [ ]
* "epostGdccStart":
* "epostGdccFetch":
* "epostGdccTotal":
* }</code></pre>
*/
public ModelAndView getEpostGuidanceDocumentList(EpostQuery req) {
List<?> result = epostGdccService.getEpostGdccList(setFetchSize(req));
return setCollectionInfo(new ModelAndView("jsonView"), result, "epostGdcc");
}
/** .
* @param epostGdcc
* @return jsonView
* <pre><code> {
* "saved": true, false
* }</code></pre>
*/
public ModelAndView create(EpostGdcc epostGdcc) {
boolean saved = epostGdccService.create(epostGdcc);
return new ModelAndView("jsonView")
.addObject("saved", saved);
}
/** .
* @param epostGdcc
* @return jsonView
* <pre><code> {
* "saved": true, false
* }</code></pre>
*/
public ModelAndView update(EpostGdcc epostGdcc) {
boolean saved = epostGdccService.update(epostGdcc);
return new ModelAndView("jsonView")
.addObject("saved", saved);
}
/** .
* @param epostGdccIDs
* @return jsonView
* <pre><code> {
* "affected":
* "saved": true, false
* }</code></pre>
*/
@PostMapping(name = "전자우편 안내문 제거", value = "/remove.do")
public ModelAndView remove(EpostGdcc epostGdcc) {
boolean saved = epostGdccService.remove(epostGdcc);
return new ModelAndView("jsonView")
.addObject("saved", saved);
}
}

@ -178,34 +178,34 @@ public class Levy extends AbstractEntity {
private String txtnThing; private String txtnThing;
/** /**
* 1 * 1
*/ */
private String mngArtcl1; private String mngItem1;
/** /**
* 2 * 2
*/ */
private String mngArtcl2; private String mngItem2;
/** /**
* 3 * 3
*/ */
private String mngArtcl3; private String mngItem3;
/** /**
* 4 * 4
*/ */
private String mngArtcl4; private String mngItem4;
/** /**
* 5 * 5
*/ */
private String mngArtcl5; private String mngItem5;
/** /**
* 6 * 6
*/ */
private String mngArtcl6; private String mngItem6;
/** /**
* *

@ -217,12 +217,12 @@ public class LevyBean extends AbstractComponent {
levy.setRdcamtPcptax(0); // 감액 본세 levy.setRdcamtPcptax(0); // 감액 본세
levy.setRdcamtAdamt(0); // 감액 가산금 levy.setRdcamtAdamt(0); // 감액 가산금
levy.setTxtnThing(crdnInfo.string("VHRNO")); // 과세 물건 levy.setTxtnThing(crdnInfo.string("VHRNO")); // 과세 물건
levy.setMngArtcl1(crdnInfo.string("CRDN_YMD_TM_MASK")); // 관리 항목1 - 위반일시 levy.setMngItem1(crdnInfo.string("CRDN_YMD_TM_MASK")); // 관리 아이템1 - 위반일시
levy.setMngArtcl2(crdnInfo.string("CRDN_PLC")); // 관리 항목2 - 장소 levy.setMngItem2(crdnInfo.string("CRDN_PLC")); // 관리 아이템2 - 장소
levy.setMngArtcl3(crdnInfo.string("VLTN_LAW_NM") + " " + crdnInfo.string("VLTN_LAW1") + " " + crdnInfo.string("VLTN_LAW2")); // 관리 항목3 - 법령 levy.setMngItem3(crdnInfo.string("VLTN_LAW_NM") + " " + crdnInfo.string("VLTN_LAW1") + " " + crdnInfo.string("VLTN_LAW2")); // 관리 아이템3 - 법령
levy.setMngArtcl4(crdnInfo.string("VLTN_ARTCL")); // 관리 항목4 - 위반항목 levy.setMngItem4(crdnInfo.string("VLTN_ARTCL")); // 관리 아이템4 - 위반항목
levy.setMngArtcl5(""); // 관리 항목5 levy.setMngItem5(""); // 관리 아이템5
levy.setMngArtcl6(crdnInfo.string("CRDN_ID")); // 관리 항목6 levy.setMngItem6(crdnInfo.string("CRDN_ID")); // 관리 아이템6
levy.setLevySttsNm("부과"); // 부과 상태 명 levy.setLevySttsNm("부과"); // 부과 상태 명
retSuccess = levyMapper.insert(levy); retSuccess = levyMapper.insert(levy);

@ -544,6 +544,17 @@ public class CmnController {
} }
} }
@Controller
@RequestMapping(name="우편통합", value=Epst02Controller.CLASS_URL)
class Epst02Controller extends cokr.xit.fims.epst.web.Epst02Controller {
@Override
@RequestMapping(name="전자우편 안내문 메인", value=METHOD_URL.epostGuidanceDocumentMain)
public ModelAndView epostGuidanceDocumentMain() {
return super.epostGuidanceDocumentMain();
}
}
@Controller @Controller
@RequestMapping(name="납부자", value="/payer") @RequestMapping(name="납부자", value="/payer")

@ -10,6 +10,7 @@ import org.springframework.web.servlet.ModelAndView;
import cokr.xit.fims.crdn.Crdn; import cokr.xit.fims.crdn.Crdn;
import cokr.xit.fims.crdn.CrdnQuery; import cokr.xit.fims.crdn.CrdnQuery;
import cokr.xit.fims.cvlc.CrdnCvlcpt; import cokr.xit.fims.cvlc.CrdnCvlcpt;
import cokr.xit.fims.epst.EpostQuery;
import cokr.xit.fims.excl.CrdnReReg; import cokr.xit.fims.excl.CrdnReReg;
import cokr.xit.fims.excl.LevyExclQuery; import cokr.xit.fims.excl.LevyExclQuery;
import cokr.xit.fims.excl.LevyExcl; import cokr.xit.fims.excl.LevyExcl;
@ -892,6 +893,18 @@ public class DpvController {
} }
@Controller
@RequestMapping(name="장애인과태료업무 업무지원_민원상담", value=CLASS_URL+Epst02Controller.CLASS_URL)
class Epst02Controller extends cokr.xit.fims.epst.web.Epst02Controller {
@Override
@RequestMapping(name="장애인과태료업무 민원 상담 내용 대장 목록 조회", value=METHOD_URL.getEpostGuidanceDocumentList)
public ModelAndView getEpostGuidanceDocumentList(EpostQuery req) {
return super.getEpostGuidanceDocumentList(req);
}
}
@Controller @Controller
@RequestMapping(name="장애인과태료업무 납부자", value=CLASS_URL+"/payer") @RequestMapping(name="장애인과태료업무 납부자", value=CLASS_URL+"/payer")
class PayerController extends cokr.xit.fims.payer.web.PayerController { class PayerController extends cokr.xit.fims.payer.web.PayerController {

@ -0,0 +1,106 @@
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
<mapper namespace="cokr.xit.fims.epst.dao.EpostGdccMapper">
<!-- 전자우편 안내문 정보 매퍼
========== 변경 이력 ==========
2023-12-04 JoJH 최초 작성
============================ -->
<resultMap id="epostGdccRow" type="cokr.xit.fims.epst.EpostGdcc"> <!-- 전자우편 안내문 -->
<result property="gdccId" column="GDCC_ID" /> <!-- 안내문 ID -->
<result property="sggCd" column="SGG_CD" /> <!-- 시군구 코드 -->
<result property="taskSeCd" column="TASK_SE_CD" /> <!-- 업무 구분 코드 -->
<result property="sndngSeCd" column="SNDNG_SE_CD" /> <!-- 발송 구분 코드 -->
<result property="ttlNm" column="TTL_NM" /> <!-- 제목 명 -->
<result property="wordsCn" column="WORDS_CN" /> <!-- 문구 내용 -->
<result property="lastUseDt" column="LAST_USE_DT" /> <!-- 최종 사용 일시 -->
<result property="useYn" column="USE_YN" /> <!-- 최종 사용 여부 -->
<result property="createdAt" column="REG_DT" /> <!-- 등록 일시 -->
<result property="createdBy" column="RGTR" /> <!-- 등록자 -->
<result property="lastModified" column="MDFCN_DT" /> <!-- 수정 일시 -->
<result property="modifiedBy" column="MDFR" /> <!-- 수정자 -->
</resultMap>
<sql id="select">
SELECT GDCC_ID /* 안내문 ID */
, SGG_CD /* 시군구 코드 */
, TASK_SE_CD /* 업무 구분 코드 */
, SNDNG_SE_CD /* 발송 구분 코드 */
, TTL_NM /* 제목 명 */
, WORDS_CN /* 문구 내용 */
, LAST_USE_DT /* 최종 사용 일시 */
, REG_DT /* 등록 일시 */
, RGTR /* 등록자 */
, MDFCN_DT /* 수정 일시 */
, MDFR /* 수정자 */
FROM TB_EPOST_GDCC
</sql>
<select id="selectEpostGdccList" parameterType="map" resultType="dataobject">/* 전자우편 안내문 목록 조회(epostGdccMapper.selectEpostGdccList) */
<include refid="utility.paging-prefix" />
<include refid="select" />
<where></where>
<include refid="utility.orderBy" />
<include refid="utility.paging-suffix" />
</select>
<select id="selectEpostGdccs" parameterType="map" resultMap="epostGdccRow">/* 전자우편 안내문 객체 가져오기(epostGdccMapper.selectEpostGdccs) */
<include refid="select" />
<where></where>
<include refid="utility.orderBy" />
</select>
<insert id="insertEpostGdcc" parameterType="map">/* 전자우편 안내문 등록(epostGdccMapper.insertEpostGdcc) */
INSERT
INTO TB_EPOST_GDCC (
GDCC_ID /* 안내문 ID */
, SGG_CD /* 시군구 코드 */
, TASK_SE_CD /* 업무 구분 코드 */
, SNDNG_SE_CD /* 발송 구분 코드 */
, TTL_NM /* 제목 명 */
, WORDS_CN /* 문구 내용 */
, LAST_USE_DT /* 최종 사용 일시 */
, USE_YN /* 사용 여부 */
, REG_DT /* 등록 일시 */
, RGTR /* 등록자 */
, MDFCN_DT /* 수정 일시 */
, MDFR /* 수정자 */
)
VALUES (
#{epostGdcc.gdccId} /* 안내문 ID */
, #{epostGdcc.sggCd} /* 시군구 코드 */
, #{epostGdcc.taskSeCd} /* 업무 구분 코드 */
, #{epostGdcc.sndngSeCd} /* 발송 구분 코드 */
, #{epostGdcc.ttlNm} /* 제목 명 */
, #{epostGdcc.wordsCn} /* 문구 내용 */
, #{epostGdcc.lastUseDt} /* 최종 사용 일시 */
, 'Y' /* 사용 여부 */
, #{epostGdcc.createdAt} /* 등록 일시 */
, #{epostGdcc.createdBy} /* 등록자 */
, #{epostGdcc.lastModified} /* 수정 일시 */
, #{epostGdcc.modifiedBy} /* 수정자 */
)
</insert>
<update id="updateEpostGdcc" parameterType="map">/* 전자우편 안내문 수정(epostGdccMapper.updateEpostGdcc) */
UPDATE TB_EPOST_GDCC
SET TTL_NM = #{epostGdcc.ttlNm} /* 제목 명 */
, WORDS_CN = #{epostGdcc.wordsCn} /* 문구 내용 */
, LAST_USE_DT = #{epostGdcc.lastUseDt} /* 최종 사용 일시 */
, MDFCN_DT = #{epostGdcc.lastModified} /* 수정 일시 */
, MDFR = #{epostGdcc.modifiedBy} /* 수정자 */
WHERE GDCC_ID = #{epostGdcc.gdccId}
AND USE_YN = 'Y'
</update>
<update id="deleteEpostGdcc" parameterType="map">/* 전자우편 안내문 삭제(epostGdccMapper.deleteEpostGdcc) */
UPDATE TB_EPOST_GDCC
SET USE_YN = 'N' /* 사용 여부 */
, MDFCN_DT = #{epostGdcc.lastModified} /* 수정 일시 */
, MDFR = #{epostGdcc.modifiedBy} /* 수정자 */
WHERE GDCC_ID = #{epostGdcc.gdccId}
AND USE_YN = 'Y'
</update>
</mapper>

@ -41,12 +41,12 @@
<result property="sumAmt" column="SUM_AMT" /> <!-- 합계 금액 --> <result property="sumAmt" column="SUM_AMT" /> <!-- 합계 금액 -->
<result property="dudtAftrAmt" column="DUDT_AFTR_AMT" /> <!-- 납기 후 금액 --> <result property="dudtAftrAmt" column="DUDT_AFTR_AMT" /> <!-- 납기 후 금액 -->
<result property="txtnThing" column="TXTN_THING" /> <!-- 과세 물건 --> <result property="txtnThing" column="TXTN_THING" /> <!-- 과세 물건 -->
<result property="mngArtcl1" column="MNG_ARTCL1" /> <!-- 관리 항목 1 --> <result property="mngItem1" column="MNG_ITEM1" /> <!-- 관리 아이템1 -->
<result property="mngArtcl2" column="MNG_ARTCL2" /> <!-- 관리 항목 2 --> <result property="mngItem2" column="MNG_ITEM2" /> <!-- 관리 아이템2 -->
<result property="mngArtcl3" column="MNG_ARTCL3" /> <!-- 관리 항목 3 --> <result property="mngItem3" column="MNG_ITEM3" /> <!-- 관리 아이템3 -->
<result property="mngArtcl4" column="MNG_ARTCL4" /> <!-- 관리 항목 4 --> <result property="mngItem4" column="MNG_ITEM4" /> <!-- 관리 아이템4 -->
<result property="mngArtcl5" column="MNG_ARTCL5" /> <!-- 관리 항목 5 --> <result property="mngItem5" column="MNG_ITEM5" /> <!-- 관리 아이템5 -->
<result property="mngArtcl6" column="MNG_ARTCL6" /> <!-- 관리 항목 6 --> <result property="mngItem6" column="MNG_ITEM6" /> <!-- 관리 아이템6 -->
<result property="levySttsNm" column="LEVY_STTS_NM" /> <!-- 부과 상태 명 --> <result property="levySttsNm" column="LEVY_STTS_NM" /> <!-- 부과 상태 명 -->
<result property="npmntRsnCd" column="NPMNT_RSN_CD" /> <!-- 체납 사유 코드 --> <result property="npmntRsnCd" column="NPMNT_RSN_CD" /> <!-- 체납 사유 코드 -->
<result property="rcvmtYmd" column="RCVMT_YMD" /> <!-- 수납 일자 --> <result property="rcvmtYmd" column="RCVMT_YMD" /> <!-- 수납 일자 -->
@ -268,12 +268,12 @@
, L.SUM_AMT /* 합계 금액 */ , L.SUM_AMT /* 합계 금액 */
, L.DUDT_AFTR_AMT /* 납기 후 금액 */ , L.DUDT_AFTR_AMT /* 납기 후 금액 */
, L.TXTN_THING /* 과세 물건 */ , L.TXTN_THING /* 과세 물건 */
, L.MNG_ARTCL1 /* 관리 항목 1 */ , L.MNG_ITEM1 /* 관리 아이템1 */
, L.MNG_ARTCL2 /* 관리 항목 2 */ , L.MNG_ITEM2 /* 관리 아이템2 */
, L.MNG_ARTCL3 /* 관리 항목 3 */ , L.MNG_ITEM3 /* 관리 아이템3 */
, L.MNG_ARTCL4 /* 관리 항목 4 */ , L.MNG_ITEM4 /* 관리 아이템4 */
, L.MNG_ARTCL5 /* 관리 항목 5 */ , L.MNG_ITEM5 /* 관리 아이템5 */
, L.MNG_ARTCL6 /* 관리 항목 6 */ , L.MNG_ITEM6 /* 관리 아이템6 */
, L.LEVY_STTS_NM /* 부과 상태 명 */ , L.LEVY_STTS_NM /* 부과 상태 명 */
, L.NPMNT_RSN_CD /* 체납 사유 코드 */ , L.NPMNT_RSN_CD /* 체납 사유 코드 */
, L.RCVMT_YMD /* 수납 일자 */ , L.RCVMT_YMD /* 수납 일자 */
@ -618,12 +618,12 @@
, SUM_AMT /* 합계 금액 */ , SUM_AMT /* 합계 금액 */
, DUDT_AFTR_AMT /* 납기 후 금액 */ , DUDT_AFTR_AMT /* 납기 후 금액 */
, TXTN_THING /* 과세 물건 */ , TXTN_THING /* 과세 물건 */
, MNG_ARTCL1 /* 관리 항목 1 */ , MNG_ITEM1 /* 관리 아이템1 */
, MNG_ARTCL2 /* 관리 항목 2 */ , MNG_ITEM2 /* 관리 아이템2 */
, MNG_ARTCL3 /* 관리 항목 3 */ , MNG_ITEM3 /* 관리 아이템3 */
, MNG_ARTCL4 /* 관리 항목 4 */ , MNG_ITEM4 /* 관리 아이템4 */
, MNG_ARTCL5 /* 관리 항목 5 */ , MNG_ITEM5 /* 관리 아이템5 */
, MNG_ARTCL6 /* 관리 항목 6 */ , MNG_ITEM6 /* 관리 아이템6 */
, LEVY_STTS_NM /* 부과 상태 명 */ , LEVY_STTS_NM /* 부과 상태 명 */
, NPMNT_RSN_CD /* 체납 사유 코드 */ , NPMNT_RSN_CD /* 체납 사유 코드 */
, RCVMT_YMD /* 수납 일자 */ , RCVMT_YMD /* 수납 일자 */
@ -698,12 +698,12 @@
, #{levy.sumAmt} /* 합계 금액 */ , #{levy.sumAmt} /* 합계 금액 */
, #{levy.dudtAftrAmt} /* 납기 후 금액 */ , #{levy.dudtAftrAmt} /* 납기 후 금액 */
, #{levy.txtnThing} /* 과세 물건 */ , #{levy.txtnThing} /* 과세 물건 */
, #{levy.mngArtcl1} /* 관리 항목 1 */ , #{levy.mngItem1} /* 관리 아이템1 */
, #{levy.mngArtcl2} /* 관리 항목 2 */ , #{levy.mngItem2} /* 관리 아이템2 */
, #{levy.mngArtcl3} /* 관리 항목 3 */ , #{levy.mngItem3} /* 관리 아이템3 */
, #{levy.mngArtcl4} /* 관리 항목 4 */ , #{levy.mngItem4} /* 관리 아이템4 */
, #{levy.mngArtcl5} /* 관리 항목 5 */ , #{levy.mngItem5} /* 관리 아이템5 */
, #{levy.mngArtcl6} /* 관리 항목 6 */ , #{levy.mngItem6} /* 관리 아이템6 */
, #{levy.levySttsNm} /* 부과 상태 명 */ , #{levy.levySttsNm} /* 부과 상태 명 */
, #{levy.npmntRsnCd} /* 체납 사유 코드 */ , #{levy.npmntRsnCd} /* 체납 사유 코드 */
, #{levy.rcvmtYmd} /* 수납 일자 */ , #{levy.rcvmtYmd} /* 수납 일자 */
@ -775,12 +775,12 @@
, SUM_AMT = #{levy.sumAmt} /* 합계 금액 */ , SUM_AMT = #{levy.sumAmt} /* 합계 금액 */
, DUDT_AFTR_AMT = #{levy.dudtAftrAmt} /* 납기 후 금액 */ , DUDT_AFTR_AMT = #{levy.dudtAftrAmt} /* 납기 후 금액 */
, TXTN_THING = #{levy.txtnThing} /* 과세 물건 */ , TXTN_THING = #{levy.txtnThing} /* 과세 물건 */
, MNG_ARTCL1 = #{levy.mngArtcl1} /* 관리 항목1 */ , MNG_ITEM1 = #{levy.mngItem1} /* 관리 아이템1 */
, MNG_ARTCL2 = #{levy.mngArtcl2} /* 관리 항목2 */ , MNG_ITEM2 = #{levy.mngItem2} /* 관리 아이템2 */
, MNG_ARTCL3 = #{levy.mngArtcl3} /* 관리 항목3 */ , MNG_ITEM3 = #{levy.mngItem3} /* 관리 아이템3 */
, MNG_ARTCL4 = #{levy.mngArtcl4} /* 관리 항목4 */ , MNG_ITEM4 = #{levy.mngItem4} /* 관리 아이템4 */
, MNG_ARTCL5 = #{levy.mngArtcl5} /* 관리 항목5 */ , MNG_ITEM5 = #{levy.mngItem5} /* 관리 아이템5 */
, MNG_ARTCL6 = #{levy.mngArtcl6} /* 관리 항목6 */ , MNG_ITEM6 = #{levy.mngItem6} /* 관리 아이템6 */
, LEVY_STTS_NM = #{levy.levySttsNm} /* 부과 상태 명 */ , LEVY_STTS_NM = #{levy.levySttsNm} /* 부과 상태 명 */
, NPMNT_RSN_CD = #{levy.npmntRsnCd} /* 체납 사유 코드 */ , NPMNT_RSN_CD = #{levy.npmntRsnCd} /* 체납 사유 코드 */
, RCVMT_YMD = #{levy.rcvmtYmd} /* 수납 일자 */ , RCVMT_YMD = #{levy.rcvmtYmd} /* 수납 일자 */

@ -901,12 +901,12 @@
, L.SUM_AMT /* 합계 금액 */ , L.SUM_AMT /* 합계 금액 */
, L.DUDT_AFTR_AMT /* 납기 후 금액 */ , L.DUDT_AFTR_AMT /* 납기 후 금액 */
, L.TXTN_THING /* 과세 물건 */ , L.TXTN_THING /* 과세 물건 */
, L.MNG_ARTCL1 /* 관리 항목1 */ , L.MNG_ITEM1 /* 관리 아이템1 */
, L.MNG_ARTCL2 /* 관리 항목2 */ , L.MNG_ITEM2 /* 관리 아이템2 */
, L.MNG_ARTCL3 /* 관리 항목3 */ , L.MNG_ITEM3 /* 관리 아이템3 */
, L.MNG_ARTCL4 /* 관리 항목4 */ , L.MNG_ITEM4 /* 관리 아이템4 */
, L.MNG_ARTCL5 /* 관리 항목5 */ , L.MNG_ITEM5 /* 관리 아이템5 */
, L.MNG_ARTCL6 /* 관리 항목6 */ , L.MNG_ITEM6 /* 관리 아이템6 */
, L.EPAYNO /* 전자납부번호 */ , L.EPAYNO /* 전자납부번호 */
, L.BANK_NM /* 은행 명 */ , L.BANK_NM /* 은행 명 */
, L.VR_ACTNO /* 가상 계좌번호 */ , L.VR_ACTNO /* 가상 계좌번호 */

@ -0,0 +1,506 @@
<%@ page language="java" contentType="text/html; charset=UTF-8" pageEncoding="UTF-8" isELIgnored="false" session="false"%>
<%@ include file="/WEB-INF/jsp/include/taglib.jsp"%>
<!-- inner page html -->
<div class="content-wrapper">
<!-- Content -->
<div class="container-xxl flex-grow-1 px-0">
<c:set var="prefixName" scope="request">안내문 관리</c:set>
<!-- Page Body -->
<div class="card">
<div class="wrapper-list">
<div>
<!-- 상단 버튼 -->
<div class="container-page-btn">
<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 w-px-120" id="btnSearch--${pageName}" title="검색" onclick="fnSearchList${pageName}();">
검색
</button>
<button type="button" class="btn btn-excel w-px-120" id="btnExcel--${pageName}" title="엑셀 저장" onclick="fnExcel${pageName}();">
엑셀
</button>
</span>
</div>
<!-- / 상단 버튼 -->
<!-- 검색 조건 영역 -->
<form id="frmSearch--${pageName}" name="frmSearch">
<!-- hidden -->
<input type="hidden" id="sggCd--${pageName}" name="sggCd" data-map="SGG_CD" />
<!-- 메인 조건 -->
<div class="container-search">
<div class="row g-1">
<!-- 업무구분 -->
<div class="col-12">
<label class="form-label fw-bold form-search-title text-end">업무구분</label>
<span class="form-search-linebox">
<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);">
${item.value}
</label>
</c:forEach>
</span>
</div>
<!-- -->
<div class="col-6">
</div>
<!-- 동적검색 -->
<div class="col-6">
<input type="hidden" id="by--${pageName}" name="by" />
<input type="text" class="form-control" id="byOutput--${pageName}" value="동적 검색" readonly />
<input type="hidden" id="mainOption--${pageName}" name="mainOption" />
<input type="hidden" id="subOption--${pageName}" name="subOption" />
<input type="text" class="form-control w-px-300" id="term--${pageName}" name="term" autocomplete="off" />
<!-- 상세 검색조건 버튼 -->
<span class="flr">
<button type="button" class="btn btn-open-detail" data-bs-toggle="collapse" data-bs-target="#searchDetail--${pageName}">
<i class="bx bx-chevron-down"></i>
상세검색
</button>
</span>
</div>
</div>
</div> <!-- / 메인 조건 -->
<!-- 상세 조건 -->
<div id="searchDetail--${pageName}" class="container-search container-search-detail collapse">
<div class="row g-1">
<!-- 등록일자, 수정일자 -->
<div class="col-6">
<select class="form-select text-center" id="schDetailRegDtOpt--${pageName}" name="schDetailRegDtOpt">
<option value="regDt">등록일자</option>
<option value="mdfcnDt">수정일자</option>
</select>
<span class="form-search-linebox">
<input type="text" class="form-control form-date" id="schDetailRegDtFrom--${pageName}" name="schDetailRegDtFrom"
data-fmt-type="day" autocomplete="off" title="시작 날짜 선택" />
<button type="button" class="bx bx-sm bx-calendar bg-white"></button>
~
<input type="text" class="form-control form-date" id="schDetailRegDtTo--${pageName}" name="schDetailRegDtTo"
data-fmt-type="day" autocomplete="off" title="종료 날짜 선택">
<button type="button" class="bx bx-sm bx-calendar bg-white"></button>
</span>
</div>
<!-- 등록자명, 수정자명 -->
<div class="col-6">
<select class="form-select text-center" id="schDetailRgtrOpt--${pageName}" name="schDetailRgtrOpt">
<option value="rgtr">등록자</option>
<option value="mdfr">수정자</option>
</select>
<input type="text" class="form-control w-px-160" id="schDetailRgtrNm--${pageName}" name="schDetailRgtrNm" autocomplete="off" />
<button type="button" class="btn btn-sm btn-outline-dark" id="btnUser--${pageName}" title="사용자 검색" onclick="fnUser${pageName}();">
검색
</button>
</div>
</div>
</div>
<!-- / 상세 조건 -->
</form>
<!-- / 검색 조건 영역 -->
<!-- 업무 버튼 및 건수 표시 -->
<div>
<span class="container-page-btn">
<!-- 건수, 페이지 표시 -->
<div class="d-flex flex-row justify-content-between">
<label class="dataTables_info" id="paging--${pageName}PagingInfo" role="status" aria-live="polite"></label>
<ul class="pagination pagination-primary" id="paging--${pageName}">
</ul>
</div>
<span class="container-window-btn-right">
<!-- 업무 버튼 -->
<button type="button" class="btn btn-primary w-px-120" id="btnUpdate--${pageName}" title="수정" onclick="fnUpdate${pageName}();">
수정
</button>
<button type="button" class="btn btn-primary w-px-120" id="btnRemove--${pageName}" title="삭제" onclick="fnRemove${pageName}();">
삭제
</button>
</span>
</span>
</div>
<!-- / 업무 버튼 및 건수 표시 -->
<!-- DataTables(그리드) -->
<div class="card-datatable text-nowrap">
<div class="dataTables_wrapper dt-bootstrap5 no-footer" id="DataTables_Table_0_wrapper--${pageName}">
<div class="table-responsive" id="table-responsive--${pageName}" style="overflow-x:scroll; height:480px; overflow-y:scroll;" >
<table class="table-layout-fixed dataTable datatables-ajax table table-bordered no-footer" id="DataTables_Table_0--${pageName}" aria-describedby="DataTables_Table_0_info">
<thead class="sticky-thead">
<tr id="theadTr--${pageName}"
data-by="by--${pageName}" data-by-output="byOutput--${pageName}" data-main-option="mainOption--${pageName}" data-sub-option="subOption--${pageName}">
<th class="cmn" style="width: 72px;">NO.</th>
<th class="cmn" style="width: 56px;">
<input type="checkbox" class="form-check-input" onchange="${pageName}Control.select(this.checked);">
</th>
<th class="cmn" style="width: 120px;" onclick="searchFromGridTitle('CVLCPT_RCPT_SE_CD', this.innerText, 'codeValue', 'FIM065');">민원접수구분</th>
<th class="cmn" style="width: 120px;" onclick="searchFromGridTitle('DSCSN_YMD', this.innerText, 'ymd', '');">상담일자</th>
<th class="cmn" style="width: 80px;" onclick="searchFromGridTitle('WEEK_NM', this.innerText, 'match', 'part');">요일</th>
<th class="cmn" style="width: 160px;" onclick="searchFromGridTitle('CVLPR_NM', this.innerText, 'match', 'part');">성명</th>
<th class="cmn" style="width: 160px;" onclick="searchFromGridTitle('CVLPR_CTTPC', this.innerText, 'match', 'part');">연락처</th>
<th class="cmn" style="width: 400px;" onclick="searchFromGridTitle('DSCSN_CN', this.innerText, 'match', 'part');">상담내용</th>
<th class="cmn" style="width: 140px;" onclick="searchFromGridTitle('VHRNO', this.innerText, 'match', 'part');">차량번호</th>
<th class="cmn" style="width: 160px;" onclick="searchFromGridTitle('RTPYR_NO', this.innerText, 'match', 'part');">납부자번호</th>
<th class="cmn" style="width: 180px;">등록일시</th>
<th class="cmn" style="width: 140px;">등록사용자</th>
<th class="cmn" style="width: 180px;">수정일시</th>
<th class="cmn" style="width: 140px;">수정사용자</th>
<th class="cmn dummy-th"></th>
</tr>
</thead>
<tbody id="tbody--${pageName}">
</tbody>
<template id="${infoPrefix}Row--${pageName}">
<tr data-key="{CVLCPT_DSCSN_ID}">
<td class="cmn text-center" onclick="{onclick}" ondblclick="{ondblclick}">{ROW_NUM}</td>
<td class="cmn text-center">
<input type="checkbox" class="form-check-input" value="{CVLCPT_DSCSN_ID}" onchange="${pageName}Control.select('{CVLCPT_DSCSN_ID}', this.checked);">
</td>
<td class="cmn text-center" onclick="{onclick}" ondblclick="{ondblclick}">{CVLCPT_RCPT_SE_NM}</td>
<td class="cmn text-center" onclick="{onclick}" ondblclick="{ondblclick}">{DSCSN_YMD}</td>
<td class="cmn text-center" onclick="{onclick}" ondblclick="{ondblclick}">{WEEK_NM}</td>
<td class="cmn text-center" onclick="{onclick}" ondblclick="{ondblclick}">{CVLPR_NM}</td>
<td class="cmn text-center" onclick="{onclick}" ondblclick="{ondblclick}">{CVLPR_CTTPC}</td>
<td class="cmn text-start" onclick="{onclick}" ondblclick="{ondblclick}">{DSCSN_CN}</td>
<td class="cmn text-start" onclick="{onclick}" ondblclick="{ondblclick}">{VHRNO}</td>
<td class="cmn text-center" onclick="{onclick}" ondblclick="{ondblclick}">{RTPYR_NO}</td>
<td class="cmn text-center" onclick="{onclick}" ondblclick="{ondblclick}">{REG_DT}</td>
<td class="cmn text-center" onclick="{onclick}" ondblclick="{ondblclick}">{RGTR_NM}</td>
<td class="cmn text-center" onclick="{onclick}" ondblclick="{ondblclick}">{MDFCN_DT}</td>
<td class="cmn text-center" onclick="{onclick}" ondblclick="{ondblclick}">{MDFR_NM}</td>
<td class="cmn dummy-td"></td>
</tr>
</template>
<template id="${infoPrefix}NotFound--${pageName}">
<tr class="odd">
<td valign="top" colspan="15" class="dataTables_empty text-center">${prefixName} 정보를 찾지 못했습니다.</td>
</tr>
</template>
</table>
</div>
</div>
</div>
<!-- / DataTables(그리드) -->
</div>
</div> <!-- <div class="wrapper-list"> -->
</div> <!-- <div class="card"> -->
</div> <!-- <div class="container-xxl flex-grow-1 px-0"> -->
<jsp:include page="/WEB-INF/jsp/include/bottom.jsp" />
<div class="content-backdrop fade"></div>
</div>
<!-- / inner page html <div class="content-wrapper"> -->
<script>
/**************************************************************************
* Global Variable
**************************************************************************/
// URL
var ${pageName}PrefixUrl = "/sprt/sprt04";
// FormFields
var ${pageName}Fields = new FimsFormFields("#frmSearch--${pageName}");
/**************************************************************************
* DatasetControl
**************************************************************************/
var ${pageName}Control = new DatasetControl({
prefix : "cvlcptDscsn"
, prefixName : "민원상담내용"
, infoSize : "lg"
, keymapper : info => info ? info.CVLCPT_DSCSN_ID : ""
, dataGetter : obj => obj.cvlcptDscsnList
, appendData : true
, tableRenderComplete : false // dataTables 에 자료 추가 완료 여부
, formats : {
DSCSN_YMD : dateFormat
, REG_DT : datetimeFormat
, MDFCN_DT : datetimeFormat
}
});
/**************************************************************************
* DatasetControl 이벤트
**************************************************************************/
// Dataset 변경 이벤트
${pageName}Control.onDatasetChange = obj => {
renderList${pageName}();
$("#paging--${pageName}").setPagingInfo({
list : ${pageName}Control.dataset
, prefix : "paging--${pageName}"
, start : obj.${infoPrefix}Start
, totalSize : obj.${infoPrefix}Total
, fetchSize : obj.${infoPrefix}Fetch
, func : "${pageName}Control.load({index})"
});
${pageName}Control.tableRenderComplete = true; // dataTables 에 자료 추가 완료
};
// 현재 선택 자료 변경 이벤트
${pageName}Control.onCurrentChange = item => {
if (!item) return;
let key = item.data.CVLCPT_DSCSN_ID;
$("#tbody--${pageName}").setCurrentRow(key);
};
// 선택(체크) 변경 이벤트
${pageName}Control.onSelectionChange = selected => {
let ${infoPrefix}List = ${pageName}Control.dataset;
let keys = selected.map(e => ${infoPrefix}List.getKey(e));
$("#tbody--${pageName} input[type='checkbox']").each(function() {
let checkbox = $(this);
checkbox.prop("checked", keys.includes(checkbox.val()));
});
$("#btnRemove--${pageName}").prop("disabled", keys.length < 1);
};
// 민원상담 dialog
${pageName}Control.getInfo = (cvlcptDscsnId) => {
if (typeof cvlcptDscsnId == "undefined" || cvlcptDscsnId == null || cvlcptDscsnId == "") {
return;
}
let params = {
callPurpose : "update"
, sggCd : ${pageName}Control.dataset.getValue("SGG_CD")
, taskSeCd : ${pageName}Control.dataset.getValue("TASK_SE_CD")
, cvlcptDscsnId : cvlcptDscsnId
};
ajax.get({
url : wctx.url(params.taskSeCd + ${pageName}PrefixUrl + "/020/info.do")
, data : params || {}
, success : resp => {
dialog.open({
id : ${pageName}Control.prefixed("Dialog")
, title : ${pageName}Control.prefixName + " 수정"
, content : resp
, size : "lg"
, init : () => { }
, onClose : () => { ${pageName}Control.load(${pageName}Control.query.pageNum); } // callback 자료 재조회
});
}
});
}
// 삭제 callback
${pageName}Control.onRemove = (selected, resp) => {
let btnTitle = $("#btnRemove--${pageName}").attr("title");
let showMessage = resp.retMessage.replace(/[S]|[F]/g, btnTitle);
dialog.alert(showMessage);
if (resp.saved) {
${pageName}Control._load();
}
}
// 삭제
${pageName}Control.remove = (params) => {
let selected = ${pageName}Control.dataset.getKeys("selected");
if (selected.length < 1) return;
if (!params) {
params = {};
params[${pageName}Control.prefixed("IDs")] = selected.join(",");
}
ajax.post({
url : ${pageName}Control.urls.remove
, data : params
, success : resp => ${pageName}Control.onRemove(selected, resp)
});
}
/**************************************************************************
*
**************************************************************************/
// DataTables에 click, dbclick 이벤트
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("CVLCPT_DSCSN_ID") + "');")
.replace(/{ondblclick}/gi, "${pageName}Control.getInfo('" + dataItem.getValue("CVLCPT_DSCSN_ID") + "');")
);
$("#tbody--${pageName}").html(trs.join());
$("th input[type='checkbox']").prop("checked", false);
//보안모드
fn_securityModeToggle($("#securityMode--top").is(":checked"));
}
/**************************************************************************
* 초기 셋팅
**************************************************************************/
// 이벤트
setEvent${pageName} = () => {
// form-date 항목에서 키보드로 입력시 날짜 포맷팅 적용
$("#frmSearch--${pageName}").find(".form-date").each(function() {
$(this).on("input", function() {
let value = this.value.replaceAll("-", "");
if (value.length > 7) {
this.value = value.substring(0, 4) + "-" + value.substring(4, 6) + "-" + value.substring(6);
} else if(value.length > 5) {
this.value = value.substring(0, 4) + "-" + value.substring(4);
}
});
});
// DataTables 스크롤 이벤트
$("#table-responsive--${pageName}").scroll(function() {
let el = $(this);
if (el.scrollTop() == 0) {
return;
}
if (!${pageName}Control.tableRenderComplete) {
return;
}
let itemsCnt = ${pageName}Control.dataset._items.length;
let totCnt = ${pageName}Control.dataset.getValue("TOT_CNT");
if (itemsCnt >= totCnt) {
return;
}
if ((el[0].scrollHeight - el.scrollTop() + VERTICAL_SCROLL_HEIGHT) <= el.outerHeight()) {
${pageName}Control.tableRenderComplete = false; // dataTables 에 자료 추가 완료
${pageName}Control.load(${pageName}Control.query.pageNum + 1);
}
});
}
// 화면 초기값 셋팅
setForm${pageName} = (taskSeCd) => {
// 업무 구분 코드
$("#frmSearch--${pageName} input[name='taskSeCd'][value='" + taskSeCd + "']").prop("checked", true);
// 최고 관리자 경우 업무구분을 선택할 수 있도록 하자.
$("#frmSearch--${pageName} input[name='taskSeCd']").each(function(i) {
$(this).prop("disabled", "true");
});
// 달력 초기화
initDatepicker("frmSearch--${pageName}");
$("#schDscsnYmdFrom--${pageName}").datepicker("setDate", DateUtil.getDateDay(-1).date);
$("#schDscsnYmdTo--${pageName}").datepicker("setDate", new Date());
// DataTables width 변경 조정
$("#DataTables_Table_0--${pageName}").find("th").resizable( {handles : "e"} );
}
// URL 설정
setURL${pageName} = (taskSeCd) => {
${pageName}Control.urls.load = wctx.url("/" + taskSeCd + ${pageName}PrefixUrl + "/010/list.do"); // 조회
${pageName}Control.urls.remove = wctx.url("/" + taskSeCd + ${pageName}PrefixUrl + "/010/removes.do"); // 삭제
${pageName}Control.urls.getInfo = wctx.url("/" + taskSeCd + "/sprt/sprt02/010/main.do"); // 개별총정보
}
/**************************************************************************
* 버튼 clickEvent
**************************************************************************/
// 초기화 버튼 이벤트
fnReset${pageName} = () => {
fnResetAndChangeBiz${pageName}();
}
// 검색 버튼 이벤트
fnSearchList${pageName} = () => {
// 검색조건
${pageName}Control.query = ${pageName}Fields.get();
${pageName}Control.query.fetchSize = FETCH_XS; // 한번에 조회되는 자료 건수 FETCH_XS = 30
${pageName}Control.query.delYn = "N"; // 삭제 여부
${pageName}Control.load();
}
// 엑셀 버튼 이벤트
fnExcel${pageName} = () => {
}
// 업무 구분 변경
fnResetAndChangeBiz${pageName} = (taskSeCd) => {
// 화면 초기화
$("#frmSearch--${pageName}")[0].reset();
// dataset 초기화
${pageName}Control.dataset.clear();
// 업무 구분 코드
if (typeof taskSeCd == "undefined" || taskSeCd == null || taskSeCd == "") {
taskSeCd = $("#layout-navbar input[name='taskSeCd']:checked").val();
}
// 화면 초기값 설정
setForm${pageName}(taskSeCd);
// URL 설정
setURL${pageName}(taskSeCd);
}
// 사용자 조회 버튼 이벤트
fnUser${pageName} = () => {
}
// 수정 버튼 이벤트
fnUpdate${pageName} = () => {
${pageName}Control.getInfo(${pageName}Control.dataset.getValue("CVLCPT_DSCSN_ID"));
}
// 삭제 버튼 이벤트
fnRemove${pageName} = () => {
dialog.alert({
content : "선택한 부과제외 정보를 삭제하시겠습니까?"
, onOK : () => {
${pageName}Control.remove();
}
});
}
/**************************************************************************
* script 진입
**************************************************************************/
$(document).ready(function() {
// 보안모드
fn_securityModeToggle($("#securityMode--top").is(":checked"));
// 이벤트 설정
setEvent${pageName}();
// 시군구 코드 설정
$("#sggCd--${pageName}").val("${sggCd}");
// 업무 구분 설정
let defaultBizValue = $("#layout-navbar input[name='taskSeCd']:checked").val();
$("#frmSearch--${pageName} input[name='taskSeCd'][value='" + defaultBizValue + "']").prop("checked", true);
// 업무 구분 및 화면 초기 설정
fnResetAndChangeBiz${pageName}(defaultBizValue);
});
</script>

@ -142,33 +142,33 @@
</div> </div>
<!-- 관리 항목 1 --> <!-- 관리 항목 1 -->
<div class="col-md-4"> <div class="col-md-4">
<label for="mngArtcl1--${pageName}" class="w-px-120 bg-lighter pe-2 col-form-label text-sm-end">관리항목1</label> <label for="mngItem1--${pageName}" class="w-px-120 bg-lighter pe-2 col-form-label text-sm-end">관리항목1</label>
<input type="text" class="form-control w-60" id="mngArtcl1--${pageName}" name="mngArtcl1" data-map="MNG_ARTCL1" readonly /> <input type="text" class="form-control w-60" id="mngItem1--${pageName}" name="mngItem1" data-map="MNG_ITEM1" readonly />
</div> </div>
<!-- 관리 항목 2 --> <!-- 관리 항목 2 -->
<div class="col-md-4"> <div class="col-md-4">
<label for="mngArtcl2--${pageName}" class="w-px-120 bg-lighter pe-2 col-form-label text-sm-end">관리항목2</label> <label for="mngItem2--${pageName}" class="w-px-120 bg-lighter pe-2 col-form-label text-sm-end">관리항목2</label>
<input type="text" class="form-control w-60" id="mngArtcl2--${pageName}" name="mngArtcl2" data-map="MNG_ARTCL2" readonly /> <input type="text" class="form-control w-60" id="mngItem2--${pageName}" name="mngItem2" data-map="MNG_ITEM2" readonly />
</div> </div>
<!-- 관리 항목 3 --> <!-- 관리 항목 3 -->
<div class="col-md-4"> <div class="col-md-4">
<label for="mngArtcl3--${pageName}" class="w-px-120 bg-lighter pe-2 col-form-label text-sm-end">관리항목3</label> <label for="mngItem3--${pageName}" class="w-px-120 bg-lighter pe-2 col-form-label text-sm-end">관리항목3</label>
<input type="text" class="form-control w-60" id="mngArtcl3--${pageName}" name="mngArtcl3" data-map="MNG_ARTCL3" readonly /> <input type="text" class="form-control w-60" id="mngItem3--${pageName}" name="mngItem3" data-map="MNG_ITEM3" readonly />
</div> </div>
<!-- 관리 항목 4 --> <!-- 관리 항목 4 -->
<div class="col-md-4"> <div class="col-md-4">
<label for="mngArtcl4--${pageName}" class="w-px-120 bg-lighter pe-2 col-form-label text-sm-end">관리항목4</label> <label for="mngItem4--${pageName}" class="w-px-120 bg-lighter pe-2 col-form-label text-sm-end">관리항목4</label>
<input type="text" class="form-control w-60" id="mngArtcl4--${pageName}" name="mngArtcl4" data-map="MNG_ARTCL4" readonly /> <input type="text" class="form-control w-60" id="mngItem4--${pageName}" name="mngItem4" data-map="MNG_ITEM4" readonly />
</div> </div>
<!-- 관리 항목 5 --> <!-- 관리 항목 5 -->
<div class="col-md-4"> <div class="col-md-4">
<label for="mngArtcl5--${pageName}" class="w-px-120 bg-lighter pe-2 col-form-label text-sm-end">관리항목5</label> <label for="mngItem5--${pageName}" class="w-px-120 bg-lighter pe-2 col-form-label text-sm-end">관리항목5</label>
<input type="text" class="form-control w-60" id="mngArtcl5--${pageName}" name="mngArtcl5" data-map="MNG_ARTCL5" readonly /> <input type="text" class="form-control w-60" id="mngItem5--${pageName}" name="mngItem5" data-map="MNG_ITEM5" readonly />
</div> </div>
<!-- 관리 항목 6 --> <!-- 관리 항목 6 -->
<div class="col-md-4"> <div class="col-md-4">
<label for="mngArtcl6--${pageName}" class="w-px-120 bg-lighter pe-2 col-form-label text-sm-end">관리항목6</label> <label for="mngItem6--${pageName}" class="w-px-120 bg-lighter pe-2 col-form-label text-sm-end">관리항목6</label>
<input type="text" class="form-control w-60" id="mngArtcl6--${pageName}" name="mngArtcl6" data-map="MNG_ARTCL6" readonly /> <input type="text" class="form-control w-60" id="mngItem6--${pageName}" name="mngItem6" data-map="MNG_ITEM6" readonly />
</div> </div>
<!-- 체납 구분 코드 --> <!-- 체납 구분 코드 -->
<div class="col-md-4"> <div class="col-md-4">

Loading…
Cancel
Save