1. 개별총정보 - 공시송달 정보 추가.

2. 소스 정리.
main
jjh 1 year ago
parent 8566d2a924
commit eaa281cd4b

@ -57,36 +57,6 @@ public class LevyExcl extends AbstractEntity {
*/
private String delYn;
/**
*
*/
private String regDt;
/**
*
*/
private String rgtr;
/**
*
*/
private String mdfcnDt;
/**
*
*/
private String mdfr;
/**
*
*/
private String delDt;
/**
*
*/
private String dltr;
/**
*
*/

@ -44,8 +44,8 @@ public class Excl02ServiceBean extends AbstractServiceBean implements Excl02Serv
public DataObject getOpnnSbmsnInfo(ExclQuery req) {
DataObject opnnSbmsnInfo = excl02Bean.getOpnnSbmsnInfo(req);
// 등록으로 실행했는데 의견제출 ID가 존재한다면 이미 등록되었으므로 오류로 처리..
if (req.getOpnnId() == null && !opnnSbmsnInfo.string("OPNN_ID").equals("")) {
// 등록(create)으로 실행했는데 의견제출 ID가 존재한다면 이미 등록되었으므로 오류로 처리..
if (req.getCallPurpose() == "create" && !opnnSbmsnInfo.string("OPNN_ID").equals("")) {
// 예외를 발생시켜서 오류메세지를 보내고 DB Rollback
throw new RuntimeException("의견제출 대장에 정보가 이미 존재합니다.");
}

@ -8,11 +8,11 @@ import cokr.xit.foundation.component.QueryRequest;
*
* <pre>
* ============ ============
* 2023-08-24 mjkhan
* 2023-08-24 JoJH
* ================================
* </pre>
*/
public class Sndb01Query extends QueryRequest {
public class SndbQuery extends QueryRequest {
private static final long serialVersionUID = 1L;
@ -26,6 +26,8 @@ public class Sndb01Query extends QueryRequest {
private String sndngId; // 발송 ID
private String[] sndngDtlIDs; // 발송 상세 IDs
private String sndngDtlId; // 발송 상세 ID
private String[] svbtcIDs; // 공시송달 IDs
private String svbtcId; // 공시송달 ID
// ETC
private String callPurpose; // 호출용도 필요시 사용(select, create, update)
private String delRsn; // 삭제 사유
@ -34,7 +36,7 @@ public class Sndb01Query extends QueryRequest {
return ifEmpty(sggCd, () -> null);
}
public <T extends Sndb01Query> T setSggCd(String sggCd) {
public <T extends SndbQuery> T setSggCd(String sggCd) {
this.sggCd = sggCd;
return self();
@ -44,7 +46,7 @@ public class Sndb01Query extends QueryRequest {
return ifEmpty(taskSeCd, () -> null);
}
public <T extends Sndb01Query> T setTaskSeCd(String taskSeCd) {
public <T extends SndbQuery> T setTaskSeCd(String taskSeCd) {
this.taskSeCd = taskSeCd;
return self();
@ -54,7 +56,7 @@ public class Sndb01Query extends QueryRequest {
return ifEmpty(delYn, () -> null);
}
public <T extends Sndb01Query> T setDelYn(String delYn) {
public <T extends SndbQuery> T setDelYn(String delYn) {
this.delYn = delYn;
return self();
@ -64,7 +66,7 @@ public class Sndb01Query extends QueryRequest {
return ifEmpty(crdnId, () -> null);
}
public <T extends Sndb01Query> T setCrdnId(String crdnId) {
public <T extends SndbQuery> T setCrdnId(String crdnId) {
this.crdnId = crdnId;
return self();
@ -74,7 +76,7 @@ public class Sndb01Query extends QueryRequest {
return ifEmpty(sndngIDs, () -> null);
}
public <T extends Sndb01Query> T setSndngIDs(String... sndngIDs) {
public <T extends SndbQuery> T setSndngIDs(String... sndngIDs) {
this.sndngIDs = sndngIDs;
return self();
@ -84,7 +86,7 @@ public class Sndb01Query extends QueryRequest {
return ifEmpty(sndngId, () -> null);
}
public <T extends Sndb01Query> T setSndngId(String sndngId) {
public <T extends SndbQuery> T setSndngId(String sndngId) {
this.sndngId = sndngId;
return self();
@ -94,7 +96,7 @@ public class Sndb01Query extends QueryRequest {
return ifEmpty(sndngDtlIDs, () -> null);
}
public <T extends Sndb01Query> T setSndngDtlIDs(String... sndngDtlIDs) {
public <T extends SndbQuery> T setSndngDtlIDs(String... sndngDtlIDs) {
this.sndngDtlIDs = sndngDtlIDs;
return self();
@ -104,18 +106,38 @@ public class Sndb01Query extends QueryRequest {
return ifEmpty(sndngDtlId, () -> null);
}
public <T extends Sndb01Query> T setSndngDtlId(String sndngDtlId) {
public <T extends SndbQuery> T setSndngDtlId(String sndngDtlId) {
this.sndngDtlId = sndngDtlId;
return self();
}
public String[] getSvbtcIDs() {
return ifEmpty(svbtcIDs, () -> null);
}
public <T extends SndbQuery> T setSvbtcIDs(String... svbtcIDs) {
this.svbtcIDs = svbtcIDs;
return self();
}
public String getSvbtcId() {
return ifEmpty(svbtcId, () -> null);
}
public <T extends SndbQuery> T setSvbtcId(String svbtcId) {
this.svbtcId = svbtcId;
return self();
}
// ETC /////////////////////////////////////////////////////////////////////
public String getCallPurpose() {
return ifEmpty(callPurpose, () -> null);
}
public <T extends Sndb01Query> T setCallPurpose(String callPurpose) {
public <T extends SndbQuery> T setCallPurpose(String callPurpose) {
this.callPurpose = callPurpose;
return self();
@ -125,7 +147,7 @@ public class Sndb01Query extends QueryRequest {
return ifEmpty(delRsn, () -> null);
}
public <T extends Sndb01Query> T setDelRsn(String delRsn) {
public <T extends SndbQuery> T setDelRsn(String delRsn) {
this.delRsn = delRsn;
return self();

@ -112,24 +112,4 @@ public class Sndng extends AbstractEntity {
*/
private String resndYn;
/**
*
*/
private String regDt;
/**
*
*/
private String rgtr;
/**
*
*/
private String mdfcnDt;
/**
*
*/
private String mdfr;
}

@ -307,24 +307,4 @@ public class SndngDtl extends AbstractEntity {
*/
private String vrActno11;
/**
*
*/
private String regDt;
/**
*
*/
private String rgtr;
/**
*
*/
private String mdfcnDt;
/**
*
*/
private String mdfr;
}

@ -0,0 +1,81 @@
package cokr.xit.fims.sndb;
import cokr.xit.foundation.AbstractEntity;
import lombok.Getter;
import lombok.Setter;
/**
*
* @author JoJH
*/
@Getter
@Setter
public class Svbtc extends AbstractEntity {
/**
* ID
*/
private String svbtcId;
/**
*
*/
private String sggCd;
/**
*
*/
private String taskSeCd;
/**
* ID
*/
private String vltnId;
/**
*
*/
private String sndngSeCd;
/**
*
*/
private String svbtcYmd;
/**
*
*/
private String ttlNm;
/**
*
*/
private String docNo;
/**
*
*/
private String etcCn;
/**
*
*/
private Integer tnocs;
/**
*
*/
private Long gramt;
/**
*
*/
private String delYn;
/**
*
*/
private String delRsn;
}

@ -10,7 +10,7 @@ import cokr.xit.foundation.data.DataObject;
import cokr.xit.fims.sndb.Sndng;
import cokr.xit.fims.sndb.SndngDtl;
import cokr.xit.fims.sndb.Sndb01Query;
import cokr.xit.fims.sndb.SndbQuery;
/** DAO
*
@ -29,13 +29,13 @@ public interface SndngMapper extends AbstractMapper {
* @param req
* @return
*/
List<DataObject> selectSndngList(Sndb01Query req);
List<DataObject> selectSndngList(SndbQuery req);
/** .
* @param req
* @return
*/
List<DataObject> selectSndngs(Sndb01Query req);
List<DataObject> selectSndngs(SndbQuery req);
/** .
* @param params
@ -101,13 +101,13 @@ public interface SndngMapper extends AbstractMapper {
* @param req
* @return
*/
List<DataObject> selectSndngDtlList(Sndb01Query req);
List<DataObject> selectSndngDtlList(SndbQuery req);
/** .
* @param req
* @return
*/
List<DataObject> selectSndngDtls(Sndb01Query req);
List<DataObject> selectSndngDtls(SndbQuery req);
/** .
* @param params

@ -0,0 +1,98 @@
package cokr.xit.fims.sndb.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.sndb.SndbQuery;
import cokr.xit.fims.sndb.Svbtc;
/** DAO
*
* <p> :
*
* <pre>
* ============ ============
* 2023-08-31 mjkhan
* ================================
* </pre>
*/
@Mapper("svbtcMapper")
public interface SvbtcMapper extends AbstractMapper {
/** .<br />
* @param req
* @return
*/
List<DataObject> selectSvbtcList(SndbQuery req);
/** .
* @param req
* @return
*/
List<DataObject> selectSvbtcs(SndbQuery req);
/** .
* @param params
* <ul><li>"svbtc" - </li>
* <li>"currentUser" - </li>
* </ul>
* @return
*/
int insertSvbtc(Map<String, Object> params);
/** .
* @param svbtc
* @return
* <ul><li> true</li>
* <li> false</li>
* </ul>
*/
default boolean insert(Svbtc svbtc) {
return svbtc != null && insertSvbtc(params().set("svbtc", svbtc)) == 1;
}
/** .
* @param params
* <ul><li>"svbtc" - </li>
* <li>"currentUser" - </li>
* </ul>
* @return
*/
int updateSvbtc(Map<String, Object> params);
/** .
* @param svbtc
* @return
* <ul><li> true</li>
* <li> false</li>
* </ul>
*/
default boolean update(Svbtc svbtc) {
return svbtc != null && updateSvbtc(params().set("svbtc", svbtc)) == 1;
}
/** .
* @param params
* <ul><li>"svbtc" - </li>
* <li>"currentUser" - </li>
* </ul>
* @return
*/
int deleteSvbtc(Map<String, ?> params);
/** .
* @param svbtc
* @return
* <ul><li> true</li>
* <li> false</li>
* </ul>
*/
default boolean delete(Svbtc svbtc) {
return svbtc != null && deleteSvbtc(params().set("svbtc", svbtc)) == 1;
}
}

@ -2,9 +2,10 @@ package cokr.xit.fims.sndb.service;
import java.util.List;
import cokr.xit.fims.sndb.Sndb01Query;
import cokr.xit.fims.sndb.SndbQuery;
import cokr.xit.fims.sndb.Sndng;
import cokr.xit.fims.sndb.SndngDtl;
import cokr.xit.fims.sndb.Svbtc;
import cokr.xit.foundation.data.DataObject;
/** .
@ -23,13 +24,13 @@ public interface Sndb01Service {
* @param req
* @return
*/
List<DataObject> getSndngList(Sndb01Query req);
List<DataObject> getSndngList(SndbQuery req);
/** .
* @param req
* @return
*/
List<DataObject> getSndngs(Sndb01Query req);
List<DataObject> getSndngs(SndbQuery req);
/** .
* @param sndng
@ -62,13 +63,13 @@ public interface Sndb01Service {
* @param req
* @return
*/
List<DataObject> getSndngDtlList(Sndb01Query req);
List<DataObject> getSndngDtlList(SndbQuery req);
/** .
* @param req
* @return
*/
List<DataObject> getSndngDtls(Sndb01Query req);
List<DataObject> getSndngDtls(SndbQuery req);
/** .
* @param sndngDtl
@ -97,4 +98,43 @@ public interface Sndb01Service {
*/
boolean removeSndngDtl(SndngDtl sndngDtl);
/** .
* @param req
* @return
*/
List<DataObject> getSvbtcList(SndbQuery req);
/** .
* @param req
* @return
*/
List<DataObject> getSvbtcs(SndbQuery req);
/** .
* @param svbtc
* @return
* <ul><li> true</li>
* <li> false</li>
* </ul>
*/
boolean createSvbtc(Svbtc svbtc);
/** .
* @param svbtc
* @return
* <ul><li> true</li>
* <li> false</li>
* </ul>
*/
boolean updateSvbtc(Svbtc svbtc);
/** .
* @param svbtc
* @return
* <ul><li> true</li>
* <li> false</li>
* </ul>
*/
boolean removeSvbtc(Svbtc svbtc);
}

@ -11,8 +11,10 @@ import cokr.xit.foundation.data.DataObject;
import cokr.xit.fims.sndb.Sndng;
import cokr.xit.fims.sndb.SndngDtl;
import cokr.xit.fims.sndb.Sndb01Query;
import cokr.xit.fims.sndb.Svbtc;
import cokr.xit.fims.sndb.SndbQuery;
import cokr.xit.fims.sndb.dao.SndngMapper;
import cokr.xit.fims.sndb.dao.SvbtcMapper;
/** Bean
*
@ -31,11 +33,15 @@ public class Sndb01Bean extends AbstractComponent {
@Resource(name = "sndngMapper")
private SndngMapper sndngMapper;
/** 공시송달 대장 정보 DAO */
@Resource(name = "svbtcMapper")
private SvbtcMapper svbtcMapper;
/** .
* @param req
* @return
*/
public List<DataObject> getSndngList(Sndb01Query req) {
public List<DataObject> getSndngList(SndbQuery req) {
return sndngMapper.selectSndngList(req);
}
@ -43,7 +49,7 @@ public class Sndb01Bean extends AbstractComponent {
* @param req
* @return
*/
public List<DataObject> getSndngs(Sndb01Query req) {
public List<DataObject> getSndngs(SndbQuery req) {
return sndngMapper.selectSndngs(req);
}
@ -84,7 +90,7 @@ public class Sndb01Bean extends AbstractComponent {
* @param req
* @return
*/
public List<DataObject> getSndngDtlList(Sndb01Query req) {
public List<DataObject> getSndngDtlList(SndbQuery req) {
return sndngMapper.selectSndngDtlList(req);
}
@ -92,7 +98,7 @@ public class Sndb01Bean extends AbstractComponent {
* @param req
* @return
*/
public List<DataObject> getSndngDtls(Sndb01Query req) {
public List<DataObject> getSndngDtls(SndbQuery req) {
return sndngMapper.selectSndngDtls(req);
}
@ -129,4 +135,53 @@ public class Sndb01Bean extends AbstractComponent {
return sndngMapper.deleteSndngDtl(sndngDtl);
}
/** .
* @param req
* @return
*/
public List<DataObject> getSvbtcList(SndbQuery req) {
return svbtcMapper.selectSvbtcList(req);
}
/** .
* @param req
* @return
*/
public List<DataObject> getSvbtcs(SndbQuery req) {
return svbtcMapper.selectSvbtcs(req);
}
/** .
* @param svbtc
* @return
* <ul><li> true</li>
* <li> false</li>
* </ul>
*/
public boolean createSvbtc(Svbtc svbtc) {
return svbtcMapper.insert(svbtc);
}
/** .
* @param svbtc
* @return
* <ul><li> true</li>
* <li> false</li>
* </ul>
*/
public boolean updateSvbtc(Svbtc svbtc) {
return svbtcMapper.update(svbtc);
}
/** .
* @param svbtc
* @return
* <ul><li> true</li>
* <li> false</li>
* </ul>
*/
public boolean removeSvbtc(Svbtc svbtc) {
return svbtcMapper.delete(svbtc);
}
}

@ -6,9 +6,10 @@ import javax.annotation.Resource;
import org.springframework.stereotype.Service;
import cokr.xit.fims.sndb.Sndb01Query;
import cokr.xit.fims.sndb.SndbQuery;
import cokr.xit.fims.sndb.Sndng;
import cokr.xit.fims.sndb.SndngDtl;
import cokr.xit.fims.sndb.Svbtc;
import cokr.xit.fims.sndb.service.Sndb01Service;
import cokr.xit.foundation.component.AbstractServiceBean;
import cokr.xit.foundation.data.DataObject;
@ -31,12 +32,12 @@ public class Sndb01ServiceBean extends AbstractServiceBean implements Sndb01Serv
private Sndb01Bean sndb01Bean;
@Override
public List<DataObject> getSndngList(Sndb01Query req) {
public List<DataObject> getSndngList(SndbQuery req) {
return sndb01Bean.getSndngList(req);
}
@Override
public List<DataObject> getSndngs(Sndb01Query req) {
public List<DataObject> getSndngs(SndbQuery req) {
return sndb01Bean.getSndngs(req);
}
@ -56,12 +57,12 @@ public class Sndb01ServiceBean extends AbstractServiceBean implements Sndb01Serv
}
@Override
public List<DataObject> getSndngDtlList(Sndb01Query req) {
public List<DataObject> getSndngDtlList(SndbQuery req) {
return sndb01Bean.getSndngDtlList(req);
}
@Override
public List<DataObject> getSndngDtls(Sndb01Query req) {
public List<DataObject> getSndngDtls(SndbQuery req) {
return sndb01Bean.getSndngDtls(req);
}
@ -80,4 +81,29 @@ public class Sndb01ServiceBean extends AbstractServiceBean implements Sndb01Serv
return sndb01Bean.removeSndngDtl(sndngDtl);
}
@Override
public List<DataObject> getSvbtcList(SndbQuery req) {
return sndb01Bean.getSvbtcList(req);
}
@Override
public List<DataObject> getSvbtcs(SndbQuery req) {
return sndb01Bean.getSvbtcs(req);
}
@Override
public boolean createSvbtc(Svbtc svbtc) {
return sndb01Bean.createSvbtc(svbtc);
}
@Override
public boolean updateSvbtc(Svbtc svbtc) {
return sndb01Bean.updateSvbtc(svbtc);
}
@Override
public boolean removeSvbtc(Svbtc svbtc) {
return sndb01Bean.removeSvbtc(svbtc);
}
}

@ -11,9 +11,10 @@ import org.springframework.web.servlet.ModelAndView;
import cokr.xit.base.code.CommonCode;
import cokr.xit.base.web.ApplicationController;
import cokr.xit.fims.sndb.Sndb01Query;
import cokr.xit.fims.sndb.SndbQuery;
import cokr.xit.fims.sndb.Sndng;
import cokr.xit.fims.sndb.SndngDtl;
import cokr.xit.fims.sndb.Svbtc;
import cokr.xit.fims.sndb.service.Sndb01Service;
/**
@ -22,11 +23,10 @@ import cokr.xit.fims.sndb.service.Sndb01Service;
*
* <pre>
* ============ ============
* 2023-08-24 mjkhan
* 2023-08-24 JoJH
* ================================
* </pre>
*/
@RequestMapping(name = "발송 대장", value = "/sndng")
public class Sndb01Controller extends ApplicationController {
/**발송 대장 서비스*/
@ -34,7 +34,7 @@ public class Sndb01Controller extends ApplicationController {
private Sndb01Service sndb01Service;
/** (sndb/sndb01/010-main) .
* {@link #getSndngList(Sndb01Query) } .
* {@link #getSndngList(SndbQuery) } .
* @return /sndb/sndb01/010-main
*/
public ModelAndView warningSendingTargetMain() {
@ -50,7 +50,7 @@ public class Sndb01Controller extends ApplicationController {
}
/** (sndb/sndb01/020-main) .
* {@link #getSndngList(Sndb01Query) } .
* {@link #getSndngList(SndbQuery) } .
* @return /sndb/sndb01/020-main
*/
public ModelAndView warningSendingStatusMain() {
@ -77,7 +77,7 @@ public class Sndb01Controller extends ApplicationController {
* }</code></pre>
*/
@RequestMapping(name = "발송 대장 조회", value = "/010/sndngList.do")
public ModelAndView getSndngList(Sndb01Query req) {
public ModelAndView getSndngList(SndbQuery req) {
List<?> result = sndb01Service.getSndngList(setFetchSize(req));
return setCollectionInfo(new ModelAndView("jsonView"), result, "sndng");
@ -130,7 +130,7 @@ public class Sndb01Controller extends ApplicationController {
}
/** .<br />
* {@link SndngDtlService#getSndngDtlList(SndngDtlQuery)}
* {@link SndngDtlService#getSndngDtlList(SndbQuery)}
* @param req
* @return jsonView
* <pre><code> {
@ -141,8 +141,9 @@ public class Sndb01Controller extends ApplicationController {
* }</code></pre>
*/
@RequestMapping(name = "발송 상세 조회", value = "/010/sndngDtlList.do")
public ModelAndView getSndngDtlList(Sndb01Query req) {
public ModelAndView getSndngDtlList(SndbQuery req) {
List<?> result = sndb01Service.getSndngDtlList(setFetchSize(req));
return setCollectionInfo(new ModelAndView("jsonView"), result, "sndngDtl");
}
@ -156,6 +157,7 @@ public class Sndb01Controller extends ApplicationController {
@PostMapping(name = "발송 상세 등록", value = "/010/createSndngDtl.do")
public ModelAndView createSndngDtl(SndngDtl sndngDtl) {
boolean saved = sndb01Service.createSndngDtl(sndngDtl);
return new ModelAndView("jsonView")
.addObject("saved", saved);
}
@ -170,6 +172,7 @@ public class Sndb01Controller extends ApplicationController {
@PostMapping(name = "발송 상세 수정", value = "/010/updateSndngDtl.do")
public ModelAndView updateSndngDtl(SndngDtl sndngDtl) {
boolean saved = sndb01Service.updateSndngDtl(sndngDtl);
return new ModelAndView("jsonView")
.addObject("saved", saved);
}
@ -185,32 +188,90 @@ public class Sndb01Controller extends ApplicationController {
@PostMapping(name = "발송 상세 제거", value = "/010/removeSndngDtl.do")
public ModelAndView removeSndngDtl(SndngDtl sndngDtl) {
boolean saved = sndb01Service.removeSndngDtl(sndngDtl);
return new ModelAndView("jsonView")
.addObject("saved", saved);
}
/** (fims/sndb/sndb01120-main) .
* {@link #getSvbtcList(SndbQuery) } .
* @return /svbtc/svbtc-main
*/
@RequestMapping(name = "공시송달 대장 메인", value = "/120/main.do")
public ModelAndView ServiceByPublicNoticeMain() {
ModelAndView mav = new ModelAndView("fims/sndb/sndb01120-main");
// View(jsp)에서 사용할 공통코드를 조회
Map<String, List<CommonCode>> commonCodes = getCodesOf("FIM054");
return mav.addObject("pageName", "sndb01010") // View(jsp)에서 사용할 id 뒤에 붙일 suffix
.addObject("infoPrefix", "sndng") // prefix
.addObject("FIM054List", commonCodes.get("FIM054")) // 업무 구분 코드(TASK_SE_CD)
;
}
/** (sndng/sndng-main) .
* {@link #getSndngList(SndngQuery) } .
* @return /sndng/sndng-main
/** .<br />
* {@link SvbtcService#getSvbtcList(SndbQuery)}
* @param req
* @return jsonView
* <pre><code> {
* "svbtcList": [ ]
* "svbtcStart":
* "svbtcFetch":
* "svbtcTotal":
* }</code></pre>
*/
// @RequestMapping(name = "발송 대장 메인", value = "/main.do")
// public ModelAndView main() {
// ModelAndView mav = getSndngList(new Sndb01Query().setPageNum(1));
// mav.setViewName("/sndng/sndng-main");
// return mav.addObject("sndngList", toJson(mav.getModel().get("sndngList")));
// }
@RequestMapping(name = "공시송달 대장 조회", value = "/120/list.do")
public ModelAndView getSvbtcList(SndbQuery req) {
List<?> result = sndb01Service.getSvbtcList(setFetchSize(req));
return setCollectionInfo(new ModelAndView("jsonView"), result, "svbtc");
}
/** (sndngDtl/sndngDtl-main) .
* {@link #getSndngDtlList(SndngDtlQuery) } .
* @return /sndngDtl/sndngDtl-main
/** .
* @param svbtc
* @return jsonView
* <pre><code> {
* "saved": true, false
* }</code></pre>
*/
// @RequestMapping(name = "발송 상세 메인", value = "/main.do")
// public ModelAndView main() {
// ModelAndView mav = getSndngDtlList(new Sndb01Query().setPageNum(1));
// mav.setViewName("/sndngDtl/sndngDtl-main");
// return mav.addObject("sndngDtlList", toJson(mav.getModel().get("sndngDtlList")));
// }
@PostMapping(name = "공시송달 대장 등록", value = "/120/create.do")
public ModelAndView createSvbtc(Svbtc svbtc) {
boolean saved = sndb01Service.createSvbtc(svbtc);
return new ModelAndView("jsonView")
.addObject("saved", saved);
}
/** .
* @param svbtc
* @return jsonView
* <pre><code> {
* "saved": true, false
* }</code></pre>
*/
@PostMapping(name = "공시송달 대장 수정", value = "/120/update.do")
public ModelAndView updateSvbtc(Svbtc svbtc) {
boolean saved = sndb01Service.updateSvbtc(svbtc);
return new ModelAndView("jsonView")
.addObject("saved", saved);
}
/** .
* @param svbtcIDs
* @return jsonView
* <pre><code> {
* "affected":
* "saved": true, false
* }</code></pre>
*/
@PostMapping(name = "공시송달 대장 제거", value = "/120/remove.do")
public ModelAndView removeSvbtc(Svbtc svbtc) {
boolean saved = sndb01Service.removeSvbtc(svbtc);
return new ModelAndView("jsonView")
.addObject("saved", saved);
}
}

@ -24,16 +24,4 @@ public interface Sprt02Service {
*/
DataObject getCrdnPayerInfo(SprtQuery req);
/** ID .
* @param crdnId ID
* @return
*/
DataObject getOpnnSbmsnInfo(SprtQuery req);
/** ID .
* @param crdnId ID
* @return
*/
List<DataObject> getSndngDtlInfo(SprtQuery req);
}

@ -1,14 +1,9 @@
package cokr.xit.fims.sprt.service.bean;
import java.util.List;
import javax.annotation.Resource;
import org.springframework.stereotype.Service;
import cokr.xit.fims.excl.ExclQuery;
import cokr.xit.fims.excl.service.bean.Excl02Bean;
import cokr.xit.fims.sndb.Sndb01Query;
import cokr.xit.fims.sndb.service.bean.Sndb01Bean;
import cokr.xit.fims.sprt.SprtQuery;
import cokr.xit.fims.sprt.service.Sprt02Service;
@ -25,10 +20,6 @@ public class Sprt02ServiceBean extends AbstractServiceBean implements Sprt02Serv
@Resource(name="sprt02Bean")
protected Sprt02Bean sprt02Bean;
/* 의견제출 대장 정보 Bean */
@Resource(name = "excl02Bean")
protected Excl02Bean excl02Bean;
/** 발송 대장 정보 Bean */
@Resource(name = "sndb01Bean")
private Sndb01Bean sndb01Bean;
@ -43,25 +34,4 @@ public class Sprt02ServiceBean extends AbstractServiceBean implements Sprt02Serv
return sprt02Bean.getCrdnPayerInfo(req);
}
@Override
public DataObject getOpnnSbmsnInfo(SprtQuery req) {
ExclQuery exclQuery = new ExclQuery();
exclQuery.setCallPurpose(req.getCallPurpose());
exclQuery.setCrdnId(req.getCrdnId());
return excl02Bean.getOpnnSbmsnInfo(exclQuery);
}
@Override
public List<DataObject> getSndngDtlInfo(SprtQuery req) {
Sndb01Query sndb01Query = new Sndb01Query();
sndb01Query.setCallPurpose(req.getCallPurpose());
sndb01Query.setCrdnId(req.getCrdnId());
sndb01Query.setOrderBy("SNDNG_DTL_ID DESC");
return sndb01Bean.getSndngDtls(sndb01Query);
}
}

@ -14,8 +14,11 @@ 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.excl.service.Excl02Service;
import cokr.xit.fims.levy.LevyQuery;
import cokr.xit.fims.levy.service.Levy02Service;
import cokr.xit.fims.sndb.SndbQuery;
import cokr.xit.fims.sndb.service.Sndb01Service;
import cokr.xit.fims.sprt.SprtQuery;
import cokr.xit.fims.sprt.service.Sprt02Service;
import cokr.xit.foundation.data.DataObject;
@ -43,6 +46,14 @@ public class Sprt02Controller extends ApplicationController {
@Resource(name = "excl01Service")
protected Excl01Service excl01Service;
/** 의견제출 대장 서비스 */
@Resource(name = "excl02Service")
protected Excl02Service excl02Service;
/** 발송 대장 서비스*/
@Resource(name = "sndb01Service")
protected Sndb01Service sndb01Service;
/** 단속 상태 이력 서비스 */
@Resource(name = "crdnSttsHstryService")
private CrdnSttsHstryService crdnSttsHstryService;
@ -97,7 +108,18 @@ public class Sprt02Controller extends ApplicationController {
*/
@RequestMapping(name="의견제출 정보 조회", value="/030/info.do")
public ModelAndView getOpnnSbmsnInfo(SprtQuery req) {
DataObject opnnSbmsn = sprt02Service.getOpnnSbmsnInfo(req);
// 의견제출
ExclQuery exclQuery = new ExclQuery();
if (req.getCallPurpose() == null) {
exclQuery.setCallPurpose("view");
} else {
exclQuery.setCallPurpose(req.getCallPurpose());
}
exclQuery.setCrdnId(req.getCrdnId());
exclQuery.setDelYn("N");
DataObject opnnSbmsn = excl02Service.getOpnnSbmsnInfo(exclQuery);
boolean json = jsonResponse();
@ -118,7 +140,26 @@ public class Sprt02Controller extends ApplicationController {
*/
@RequestMapping(name="발송 정보 조회", value="/040/info.do")
public ModelAndView getSndngInfo(SprtQuery req) {
List<?> sndngDtl = sprt02Service.getSndngDtlInfo(req);
// 발송반송 정보
SndbQuery sndb01Query = new SndbQuery();
if (req.getCallPurpose() == null) {
sndb01Query.setCallPurpose("view");
} else {
sndb01Query.setCallPurpose(req.getCallPurpose());
}
sndb01Query.setCrdnId(req.getCrdnId());
sndb01Query.setDelYn("N");
sndb01Query.setOrderBy("SD.REG_DT, SD.SNDNG_YMD DESC");
List<?> sndngDtl = sndb01Service.getSndngDtls(sndb01Query);
// 공시송달 정보
sndb01Query.setCrdnId(req.getCrdnId());
sndb01Query.setDelYn("N");
sndb01Query.setOrderBy("SV.REG_DT DESC");
List<?> svbtc = sndb01Service.getSvbtcs(sndb01Query);
boolean json = jsonResponse();
@ -126,8 +167,10 @@ public class Sprt02Controller extends ApplicationController {
return mav
.addObject("pageName", "sprt02040")
.addObject("infoPrefix", "sndngDtl") // prefix
.addObject("infoPrefix", "sndng") // prefix
.addObject("sndngDtlList", json ? sndngDtl : toJson(sndngDtl)) // 발송 정보
.addObject("pageDataName2", "Svbtc") // dataset2
.addObject("svbtcList", json ? svbtc : toJson(svbtc)) // 공시송달 정보
;
}
@ -142,6 +185,12 @@ public class Sprt02Controller extends ApplicationController {
public ModelAndView getPrcsDtlnfo(SprtQuery req) {
// 감경
LevyQuery levyQuery = new LevyQuery();
if (req.getCallPurpose() == null) {
levyQuery.setCallPurpose("view");
} else {
levyQuery.setCallPurpose(req.getCallPurpose());
}
levyQuery.setCrdnId(req.getCrdnId());
levyQuery.setDelYn("N");
@ -157,6 +206,12 @@ public class Sprt02Controller extends ApplicationController {
// 부과 제외
ExclQuery exclQuery = new ExclQuery();
if (req.getCallPurpose() == null) {
exclQuery.setCallPurpose("view");
} else {
exclQuery.setCallPurpose(req.getCallPurpose());
}
exclQuery.setCrdnId(req.getCrdnId());
exclQuery.setDelYn("N");
@ -190,9 +245,12 @@ public class Sprt02Controller extends ApplicationController {
return mav
.addObject("pageName", "sprt02050")
.addObject("rduct", json ? rduct : toJson(rduct)) // 감경 대장
.addObject("levyExcl", json ? levyExcl : toJson(levyExcl)) // 부과 제외 대장
.addObject("rduct", json ? rduct : toJson(rduct)) // 감경 정보
.addObject("pageDataName2", "LevyExcl") // dataset2
.addObject("levyExcl", json ? levyExcl : toJson(levyExcl)) // 부과 제외 정보
.addObject("pageDataName3", "CrdnSttsHstry") // dataset3
.addObject("crdnSttsHstryList", json ? crdnSttsHstry : toJson(crdnSttsHstry)) // 단속 상태 이력
.addObject("pageDataName4", "CrdnPayerHstry") // dataset4
.addObject("crdnPayerHstryList", json ? crdnPayerHstry : toJson(crdnPayerHstry)) // 단속 납부자 이력
;
}

@ -32,6 +32,7 @@
, (SELECT FN_GET_CODE_NM('FIM010', CSH.CRDN_STTS_CD) FROM DUAL) AS CRDN_STTS_NM /* 단속 상태 명 */
, CSH.TASK_DTL_ID /* 업무 상세 ID */
, CSH.USE_YN /* 사용 여부 */
, (SELECT FN_GET_CODE_NM('CMM003', CSH.USE_YN) FROM DUAL) AS USE_YN_NM /* 사용 여부 명 */
, CSH.ETC_CN /* 기타 내용 */
, CSH.REG_DT /* 등록 일시 */
, CSH.RGTR /* 등록자 */

@ -23,7 +23,7 @@
<result property="delRsn" column="DEL_RSN" /> <!-- 삭제 사유 -->
</resultMap>
<sql id="selectList">
<sql id="select">
SELECT CRR.RE_REG_ID /* 재등록 ID */
, CRR.BFR_CRDN_ID /* 이전 단속 ID */
, CRR.CRDN_ID /* 단속 ID */
@ -62,7 +62,7 @@
<select id="selectCrdnReRegList" parameterType="map" resultType="dataobject">/* 단속 재등록 목록 조회(excl03Mapper.selectCrdnReRegList) */
<include refid="utility.paging-prefix" />
<include refid="selectList" />
<include refid="select" />
WHERE CRR.CRDN_REG_SE_CD = '03' /* 단속 등록 구분 코드 - FIM026 */
AND C.SGG_CD = #{sggCd} /* 시군구 코드 */
AND C.TASK_SE_CD = #{taskSeCd} /* 업무 구분 코드 */
@ -102,36 +102,13 @@
</otherwise>
</choose>
</if>
<choose>
<when test="delYn != null">
<if test="delYn != null">
AND CRR.DEL_YN = #{delYn} /* 삭제 여부 */
</when>
<otherwise>
AND CRR.DEL_YN = 'N' /* 삭제 여부 */
</otherwise>
</choose>
</if>
<include refid="utility.orderBy" />
<include refid="utility.paging-suffix" />
</select>
<sql id="select">
SELECT CRR.RE_REG_ID /* 재등록 ID */
, CRR.BFR_CRDN_ID /* 이전 단속 ID */
, CRR.CRDN_ID /* 단속 ID */
, CRR.RE_REG_YMD /* 재등록 일자 */
, CRR.CRDN_REG_SE_CD /* 단속 등록 구분 코드 */
, CRR.ETC_CN /* 기타 내용 */
, CRR.DEL_YN /* 삭제 여부 */
, CRR.REG_DT /* 등록 일시 */
, CRR.RGTR /* 등록자 */
, (SELECT USER_NM FROM TB_USER X WHERE X.USER_ID = CRR.RGTR) AS RGTR_NM /* 등록자 명 */
, CRR.DEL_DT /* 삭제 일시 */
, CRR.DLTR /* 삭제자 */
, (SELECT USER_NM FROM TB_USER X WHERE X.USER_ID = CRR.DLTR) AS DLTR_NM /* 삭제자 명 */
, CRR.DEL_RSN /* 삭제 사유 */
FROM TB_CRDN_RE_REG CRR
</sql>
<select id="selectCrdnReRegs" parameterType="map" resultType="dataobject">/* 단속 재등록 객체 가져오기(excl03Mapper.selectCrdnReRegs) */
<include refid="select" />
<where>
@ -143,14 +120,9 @@
<if test="reRegId != null">
AND CRR.RE_REG_ID = #{reRegId} /* 재등록 ID */
</if>
<choose>
<when test="delYn != null">
<if test="delYn != null">
AND CRR.DEL_YN = #{delYn} /* 삭제 여부 */
</when>
<otherwise>
AND CRR.DEL_YN = 'N' /* 삭제 여부 */
</otherwise>
</choose>
</if>
</where>
<include refid="utility.orderBy" />
</select>

@ -29,7 +29,7 @@
<result property="delRsn" column="DEL_RSN" /> <!-- 삭제 사유 -->
</resultMap>
<sql id="selectList">
<sql id="select">
SELECT LE.LEVY_EXCL_ID /* 부과제외 ID */
, LE.SGG_CD /* 시군구 코드 */
, LE.TASK_SE_CD /* 업무 구분 코드 */
@ -68,8 +68,10 @@
, (SELECT FN_GET_CODE_NM('FIM010', C.CRDN_STTS_CD) FROM DUAL) AS CRDN_STTS_NM /* 단속 상태 명 */
, CA.CRDN_SE_CD /* 단속 구분 코드 */
, (SELECT FN_GET_CODE_NM('FIM002', CA.CRDN_SE_CD) FROM DUAL) AS CRDN_SE_NM /* 단속 구분 명 */
, CA.CRDN_SPAREA_CD /* 단속 특별구역 코드 */
, (SELECT FN_GET_CODE_NM('FIM007', CA.CRDN_SPAREA_CD) FROM DUAL) AS CRDN_SPAREA_NM /* 단속 특별구역 명 */
, CA.PARKNG_PSBLTY_RSLT_CD /* 주차 가능 결과 코드 */
, (SELECT FN_GET_CODE_NM('FIM034', CA.PARKNG_PSBLTY_RSLT_CD) FROM DUAL) AS PARKNG_PSBLTY_RSLT_NM/* 단속 구분 명 */
, (SELECT FN_GET_CODE_NM('FIM034', CA.PARKNG_PSBLTY_RSLT_CD) FROM DUAL) AS PARKNG_PSBLTY_RSLT_NM/* 주차 가능 결과 명 */
, P.RTPYR_ID /* 납부자 ID */
, P.RTPYR_SE_CD /* 납부자 구분 코드 */
, (SELECT FN_GET_CODE_NM('FIM011', P.RTPYR_SE_CD) FROM DUAL) AS RTPYR_SE_NM /* 납부자 구분 명 */
@ -84,6 +86,12 @@
, CC.CVLCPT_RCPT_YMD /* 민원 접수 일자 */
, CC.CVLCPT_APLY_NO /* 민원 신청 번호 */
, CC.CVLCPT_RCPT_NO /* 민원 접수 번호 */
, CC.CVLCPT_PRCS_CD /* 민원 처리 코드 */
, CC.CVLCPT_PRCS_SUMRY /* 민원 처리 요약 */
, CC.CVLCPT_PRCS_RSLT_CN /* 민원 처리 결과 내용 */
, CC.CVLCPT_PRCS_CMPTN_DT /* 민원 처리 완료 일시 */
, CC.CVLCPT_TRSM_CD /* 민원 전송 코드 */
, CC.CVLCPT_TRSM_DT /* 민원 전송 일시 */
FROM TB_LEVY_EXCL LE
INNER JOIN TB_CRDN C ON (LE.CRDN_ID = C.CRDN_ID)
INNER JOIN TB_CRDN_ADI CA ON (C.CRDN_ID = CA.CRDN_ID)
@ -93,7 +101,7 @@
<select id="selectLevyExclList" parameterType="map" resultType="dataobject">/* 부과제외 대장 목록 조회(levyExclMapper.selectLevyExclList) */
<include refid="utility.paging-prefix" />
<include refid="selectList" />
<include refid="select" />
WHERE C.SGG_CD = #{sggCd} /* 시군구 코드 */
AND C.TASK_SE_CD = #{taskSeCd} /* 업무 구분 코드 */
<if test="schLevyExclYmdFrom != null">
@ -177,69 +185,13 @@
</otherwise>
</choose>
</if>
<choose>
<when test="delYn != null">
<if test="delYn != null">
AND LE.DEL_YN = #{delYn} /* 삭제 여부 */
</when>
<otherwise>
AND LE.DEL_YN = 'N' /* 삭제 여부 */
</otherwise>
</choose>
</if>
<include refid="utility.orderBy" />
<include refid="utility.paging-suffix" />
</select>
<sql id="select">
SELECT LE.LEVY_EXCL_ID /* 부과제외 ID */
, LE.SGG_CD /* 시군구 코드 */
, LE.TASK_SE_CD /* 업무 구분 코드 */
, LE.CRDN_ID /* 단속 ID */
, LE.LEVY_EXCL_YMD /* 부과제외 일자 */
, LE.LEVY_EXCL_SE_CD /* 부과제외 구분 코드 */
, (SELECT FN_GET_CODE_NM('FIM021', LE.LEVY_EXCL_SE_CD) FROM DUAL) AS LEVY_EXCL_SE_NM /* 부과 제외 구분 명 */
, LE.LEVY_EXCL_RSN_CD /* 부과제외 사유 코드 */
, (SELECT FN_GET_CODE_NM('FIM022', LE.LEVY_EXCL_RSN_CD) FROM DUAL) AS LEVY_EXCL_RSN_NM /* 부과 제외 사유 명 */
, LE.ETC_CN /* 기타 내용 */
, LE.DEL_YN /* 삭제 여부 */
, LE.REG_DT /* 등록 일시 */
, LE.RGTR /* 등록자 */
, (SELECT USER_NM FROM TB_USER X WHERE X.USER_ID = LE.RGTR) AS RGTR_NM /* 등록자 명 */
, LE.MDFCN_DT /* 수정 일시 */
, LE.MDFR /* 수정자 */
, (SELECT USER_NM FROM TB_USER X WHERE X.USER_ID = LE.MDFR) AS MDFR_NM /* 수정자 명 */
, LE.DEL_DT /* 삭제 일시 */
, LE.DLTR /* 삭제자 */
, (SELECT USER_NM FROM TB_USER X WHERE X.USER_ID = LE.DLTR) AS DLTR_NM /* 삭제자 명 */
, LE.DEL_RSN /* 삭제 사유 */
, C.CRDN_REG_SE_CD /* 단속 등록 구분 코드 */
, (SELECT FN_GET_CODE_NM('FIM026', C.CRDN_REG_SE_CD) FROM DUAL) AS CRDN_REG_SE_NM /* 단속 등록 구분 명 */
, C.CRDN_INPT_SE_CD /* 단속 입력 구분 코드 */
, (SELECT FN_GET_CODE_NM('FIM003', C.CRDN_INPT_SE_CD) FROM DUAL) AS CRDN_INPT_SE_NM /* 단속 입력 구분 명 */
, C.CRDN_YMD /* 단속 일자 */
, C.CRDN_TM /* 단속 시각 */
, C.VHRNO /* 차량번호 */
, C.CRDN_STTS_CD /* 단속 상태 코드 */
, (SELECT FN_GET_CODE_NM('FIM010', C.CRDN_STTS_CD) FROM DUAL) AS CRDN_STTS_NM /* 단속 상태 명 */
, CA.CRDN_SE_CD /* 단속 구분 코드 */
, (SELECT FN_GET_CODE_NM('FIM002', CA.CRDN_SE_CD) FROM DUAL) AS CRDN_SE_NM /* 단속 구분 명 */
, CA.PARKNG_PSBLTY_RSLT_CD /* 주차 가능 결과 코드 */
, (SELECT FN_GET_CODE_NM('FIM034', CA.PARKNG_PSBLTY_RSLT_CD) FROM DUAL) AS PARKNG_PSBLTY_RSLT_NM/* 단속 구분 명 */
, P.RTPYR_ID /* 납부자 ID */
, P.RTPYR_NM /* 납부자 명 */
, CC.CVLCPT_LINK_ID /* 민원 연계 ID */
, CC.CVLCPT_PRCS_CD /* 민원 처리 코드 */
, CC.CVLCPT_PRCS_SUMRY /* 민원 처리 요약 */
, CC.CVLCPT_PRCS_RSLT_CN /* 민원 처리 결과 내용 */
, CC.CVLCPT_PRCS_CMPTN_DT /* 민원 처리 완료 일시 */
, CC.CVLCPT_TRSM_CD /* 민원 전송 코드 */
, CC.CVLCPT_TRSM_DT /* 민원 전송 일시 */
FROM TB_LEVY_EXCL LE
INNER JOIN TB_CRDN C ON (LE.CRDN_ID = C.CRDN_ID)
INNER JOIN TB_CRDN_ADI CA ON (C.CRDN_ID = CA.CRDN_ID)
LEFT OUTER JOIN TB_PAYER P ON (C.RTPYR_ID = P.RTPYR_ID)
LEFT OUTER JOIN TB_CRDN_CVLCPT CC ON (C.LINK_ID = CC.CVLCPT_LINK_ID AND C.CVLCPT_LINK_YN = 'Y' AND CC.DEL_YN = 'N')
</sql>
<select id="selectLevyExcls" parameterType="map" resultType="dataobject">/* 부과제외 대장 객체 가져오기(levyExclMapper.selectLevyExcl) */
<include refid="select" />
<where>
@ -249,14 +201,9 @@
<if test="crdnId != null">
AND LE.CRDN_ID = #{crdnId} /* 단속 ID */
</if>
<choose>
<when test="delYn != null">
<if test="delYn != null">
AND LE.DEL_YN = #{delYn} /* 삭제 여부 */
</when>
<otherwise>
AND LE.DEL_YN = 'N' /* 삭제 여부 */
</otherwise>
</choose>
</if>
</where>
<include refid="utility.orderBy" />
</select>

@ -50,7 +50,7 @@
<result property="delRsn" column="DEL_RSN" /> <!-- 삭제 사유 -->
</resultMap>
<sql id="selectList">
<sql id="select">
SELECT OS.OPNN_ID /* 의견 ID */
, OS.CRDN_ID /* 단속 ID */
, OS.RCPT_NO /* 접수 번호 */
@ -125,7 +125,7 @@
<select id="selectOpnnSbmsnList" parameterType="map" resultType="dataobject">/* 의견제출 대장 목록 조회(opnnSbmsnMapper.selectOpnnSbmsnList) */
<include refid="utility.paging-prefix" />
<include refid="selectList" />
<include refid="select" />
WHERE C.SGG_CD = #{sggCd} /* 시군구 코드 */
AND C.TASK_SE_CD = #{taskSeCd} /* 업무 구분 코드 */
<if test="schRcptYmdFrom != null">
@ -219,74 +219,13 @@
</otherwise>
</choose>
</if>
<choose>
<when test="delYn != null">
<if test="delYn != null">
AND OS.DEL_YN = #{delYn} /* 삭제 여부 */
</when>
<otherwise>
AND OS.DEL_YN = 'N' /* 삭제 여부 */
</otherwise>
</choose>
</if>
<include refid="utility.orderBy" />
<include refid="utility.paging-suffix" />
</select>
<sql id="select">
SELECT OS.OPNN_ID /* 의견 ID */
, OS.CRDN_ID /* 단속 ID */
, OS.RCPT_NO /* 접수 번호 */
, OS.RCPT_YMD /* 접수 일자 */
, OS.RCPT_SE_CD /* 접수 구분 코드 */
, (SELECT FN_GET_CODE_NM('FIM029', OS.RCPT_SE_CD) FROM DUAL) AS RCPT_SE_NM /* 접수 구분 명 */
, OS.OWNR_REL_CD /* 소유주 관계 코드 */
, (SELECT FN_GET_CODE_NM('FIM032', OS.OWNR_REL_CD) FROM DUAL) AS OWNR_REL_NM /* 소유주 관계 명*/
, OS.STTR_NM /* 진술자 명 */
, OS.STTR_BRDT /* 진술자 생년월일 */
, (SELECT FN_GET_BRDT_FORMAT(OS.STTR_BRDT, '-') FROM DUAL) AS STTR_BRDT_FORMAT /* 납부자 생년월일 */
, OS.STTR_RRNO /* 진술자 주민등록번호 */
, OS.STTR_ADDR /* 진술자 주소 */
, OS.STTR_DADDR /* 진술자 상세주소 */
, OS.STTR_ZIP /* 진술자 우편번호 */
, OS.STTR_CTTPC /* 진술자 연락처 */
, OS.STTR_EML /* 진술자 이메일 */
, OS.OPNN_SBMSN_CN /* 의견 제출 내용 */
, OS.OPNN_SBMSN_SE_CD /* 의견 제출 구분 코드 */
, (SELECT FN_GET_CODE_NM('FIM033', OS.OPNN_SBMSN_SE_CD) FROM DUAL) AS OPNN_SBMSN_SE_NM /* 의견 제출 구분 명 */
, OS.OPNN_SBMSN_GIST /* 의견 제출 요지 */
, OS.ATCH_FILE_CNT /* 첨부 파일 수 */
, OS.DOC_NO /* 문서 번호 */
, OS.NTFCTN_SE_CD /* 통보 구분 코드 */
, (SELECT FN_GET_CODE_NM('FIM030', OS.NTFCTN_SE_CD) FROM DUAL) AS NTFCTN_SE_NM /* 통보 구분 명 */
, OS.PIC_RVW_OPNN /* 담당자 검토 의견 */
, OS.OPNN_SBMSN_STTS_CD /* 의견 제출 상태 코드 */
, (SELECT FN_GET_CODE_NM('FIM031', OS.OPNN_SBMSN_STTS_CD) FROM DUAL) AS OPNN_SBMSN_STTS_NM /* 의견 제출 상태 명 */
, OS.ANS_YMD /* 답변 일자 */
, OS.ANS_TM /* 답변 시각 */
, (CONCAT(OS.ANS_YMD, OS.ANS_TM)) AS ANS_YMD_TM /* 답변 일시 */
, OS.ANS_CN /* 답변 내용 */
, OS.DEL_YN /* 삭제 여부 */
, OS.REG_DT /* 등록 일시 */
, OS.RGTR /* 등록자 */
, (SELECT USER_NM FROM TB_USER X WHERE X.USER_ID = OS.RGTR) AS RGTR_NM /* 등록자 명 */
, OS.MDFCN_DT /* 수정 일시 */
, OS.MDFR /* 수정자 */
, (SELECT USER_NM FROM TB_USER X WHERE X.USER_ID = OS.MDFR) AS MDFR_NM /* 수정자 명 */
, OS.DEL_DT /* 삭제 일시 */
, OS.DLTR /* 삭제자 */
, (SELECT USER_NM FROM TB_USER X WHERE X.USER_ID = OS.DLTR) AS DLTR_NM /* 삭제자 명 */
, OS.DEL_RSN /* 삭제 사유 */
, C.CRDN_YMD /* 단속 일자 */
, C.CRDN_TM /* 단속 시각 */
, C.VHRNO /* 차량번호 */
, C.CRDN_STTS_CD /* 단속 상태 코드 */
, (SELECT FN_GET_CODE_NM('FIM010', C.CRDN_STTS_CD) FROM DUAL) AS CRDN_STTS_NM /* 단속 상태 명 */
, P.RTPYR_ID /* 납부자 ID */
, P.RTPYR_NM /* 납부자 명 */
FROM TB_OPNN_SBMSN OS
INNER JOIN TB_CRDN C ON (OS.CRDN_ID = C.CRDN_ID)
LEFT OUTER JOIN TB_PAYER P ON (C.RTPYR_ID = P.RTPYR_ID)
</sql>
<select id="selectOpnnSbmsns" parameterType="map" resultType="dataobject">/* 의견제출 대장 객체 가져오기(opnnSbmsnMapper.selectOpnnSbmsns) */
<include refid="select" />
<where>
@ -301,14 +240,9 @@
<if test="crdnId != null">
AND OS.CRDN_ID = #{crdnId} /* 단속 ID */
</if>
<choose>
<when test="delYn != null">
<if test="delYn != null">
AND OS.DEL_YN = #{delYn} /* 삭제 여부 */
</when>
<otherwise>
AND OS.DEL_YN = 'N' /* 삭제 여부 */
</otherwise>
</choose>
</if>
</where>
<include refid="utility.orderBy" />
</select>

@ -325,8 +325,10 @@ UPDATE TB_SNDNG SET
, S.EPOST_NOTICE_ID /* 전자우편 안내문 ID */
, S.SNDNG_STTS_CD /* 발송 상태 코드 */
, S.RESND_YN /* 재발송 여부 */
, SV.SVBTC_YMD /* 공시송달 일자 */
FROM TB_SNDNG_DTL SD
INNER JOIN TB_SNDNG S ON (SD.SNDNG_ID = S.SNDNG_ID)
LEFT OUTER JOIN TB_SVBTC SV ON (SD.SVBTC_ID = SV.SVBTC_ID)
</sql>
<select id="selectSndngDtlList" parameterType="map" resultType="dataobject">/* 발송 상세 목록 조회(sndngMapper.selectSndngDtlList) */
@ -550,11 +552,11 @@ UPDATE TB_SNDNG_DTL SET
<update id="deleteSndngDtl" parameterType="map">/* 발송 상세 삭제(sndngMapper.deleteSndngDtl) */
UPDATE TB_SNDNG_DTL SET
USE_YN = 'N'
, MDFCN_DT = <include refid="utility.now" />
, MDFR = #{currentUser.id}
DEL_YN = 'N'
, DEL_DT = <include refid="utility.now" />
, DLTR = #{currentUser.id}
, DEL_RSN = #{sndngDtl.delRsn}
WHERE SNDNG_DTL_ID = #{sndngDtl.sndngDtlId}
</update>
</mapper>

@ -0,0 +1,161 @@
<?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.sndb.dao.SvbtcMapper">
<!-- 공시송달 대장 정보 매퍼
========== 변경 이력 ==========
2023-08-31 JoJH 최초 작성
============================ -->
<resultMap id="svbtcRow" type="cokr.xit.fims.sndb.Svbtc">
<result property="svbtcId" column="SVBTC_ID" /> <!-- 공시송달 ID -->
<result property="sggCd" column="SGG_CD" /> <!-- 시군구 코드 -->
<result property="taskSeCd" column="TASK_SE_CD" /> <!-- 업무 구분 코드 -->
<result property="vltnId" column="VLTN_ID" /> <!-- 위반 ID -->
<result property="sndngSeCd" column="SNDNG_SE_CD" /> <!-- 발송 구분 코드 -->
<result property="svbtcYmd" column="SVBTC_YMD" /> <!-- 공시송달 일자 -->
<result property="ttlNm" column="TTL_NM" /> <!-- 제목 명 -->
<result property="docNo" column="DOC_NO" /> <!-- 문서 번호 -->
<result property="etcCn" column="ETC_CN" /> <!-- 기타 내용 -->
<result property="tnocs" column="TNOCS" /> <!-- 총건수 -->
<result property="gramt" column="GRAMT" /> <!-- 총금액 -->
<result property="delYn" column="DEL_YN" /> <!-- 삭제 여부 -->
<result property="createdAt" column="REG_DT" /> <!-- 등록 일시 -->
<result property="createdBy" column="RGTR" /> <!-- 등록자 -->
<result property="lastModified" column="MDFCN_DT" /> <!-- 수정 일시 -->
<result property="modifiedBy" column="MDFR" /> <!-- 수정자 -->
<result property="removedAt" column="DEL_DT" /> <!-- 삭제 일시 -->
<result property="removedBy" column="DLTR" /> <!-- 삭제자 -->
<result property="delRsn" column="DEL_RSN" /> <!-- 삭제 사유 -->
</resultMap>
<sql id="select">
SELECT SV.SVBTC_ID /* 공시송달 ID */
, SV.SGG_CD /* 시군구 코드 */
, SV.TASK_SE_CD /* 업무 구분 코드 */
, (SELECT FN_GET_CODE_NM('FIM054', SV.TASK_SE_CD) FROM DUAL) AS TASK_SE_NM /* 업무 구분 명 */
, SV.VLTN_ID /* 위반 ID */
, SV.SNDNG_SE_CD /* 발송 구분 코드 */
, (SELECT FN_GET_CODE_NM('FIM047', SV.SNDNG_SE_CD) FROM DUAL) AS SNDNG_SE_NM /* 발송 구분 명 */
, SV.SVBTC_YMD /* 공시송달 일자 */
, SV.TTL_NM /* 제목 명 */
, SV.DOC_NO /* 문서 번호 */
, SV.ETC_CN /* 기타 내용 */
, SV.TNOCS /* 총건수 */
, SV.GRAMT /* 총금액 */
, SV.DEL_YN /* 삭제 여부 */
, SV.REG_DT /* 등록 일시 */
, SV.RGTR /* 등록자 */
, (SELECT USER_NM FROM TB_USER X WHERE X.USER_ID = SV.RGTR) AS RGTR_NM /* 등록자 명 */
, SV.MDFCN_DT /* 수정 일시 */
, SV.MDFR /* 수정자 */
, (SELECT USER_NM FROM TB_USER X WHERE X.USER_ID = SV.RGTR) AS RGTR_NM /* 등록자 명 */
, SV.DEL_DT /* 삭제 일시 */
, SV.DLTR /* 삭제자 */
, (SELECT USER_NM FROM TB_USER X WHERE X.USER_ID = SV.RGTR) AS RGTR_NM /* 등록자 명 */
, SV.DEL_RSN /* 삭제 사유 */
, SD.SNDNG_DTL_ID /* 발송 상세 ID */
, SD.SNDNG_ID /* 발송 ID */
, SD.CRDN_ID /* 단속 ID */
FROM TB_SVBTC SV
INNER JOIN TB_SNDNG_DTL SD ON (SV.SVBTC_ID = SD.SVBTC_ID)
</sql>
<select id="selectSvbtcList" parameterType="map" resultType="dataobject">/* 공시송달 대장 목록 조회(svbtcMapper.selectSvbtcList) */
<include refid="utility.paging-prefix" />
<include refid="select" />
WHERE SV.SGG_CD = #{sggCd} /* 시군구 코드 */
AND SV.TASK_SE_CD = #{taskSeCd} /* 업무 구분 코드 */
<if test="delYn != null">
AND SV.DEL_YN = #{delYn} /* 삭제 여부 */
</if>
<include refid="utility.orderBy" />
<include refid="utility.paging-suffix" />
</select>
<select id="selectSvbtcs" parameterType="map" resultType="dataobject">/* 공시송달 대장 객체 가져오기(svbtcMapper.selectSvbtcs) */
<include refid="select" />
<where>
<if test="svbtcId != null">
AND SV.SVBTC_ID = #{svbtcId} /* 공시송달 ID */
</if>
<if test="sndngDtlId != null">
AND SD.SNDNG_DTL_ID = #{sndngDtlId} /* 발송 상세 ID */
</if>
<if test="sndngId != null">
AND SD.SNDNG_ID = #{sndngId} /* 발송 ID */
</if>
<if test="crdnId != null">
AND SD.CRDN_ID = #{crdnId} /* 단속 ID */
</if>
<if test="delYn != null">
AND SV.DEL_YN = #{delYn} /* 삭제 여부 */
</if>
</where>
<include refid="utility.orderBy" />
</select>
<insert id="insertSvbtc" parameterType="map">/* 공시송달 대장 등록(svbtcMapper.insertSvbtc) */
INSERT
INTO TB_SVBTC (
SVBTC_ID /* 공시송달 ID */
, SGG_CD /* 시군구 코드 */
, TASK_SE_CD /* 업무 구분 코드 */
, VLTN_ID /* 위반 ID */
, SNDNG_SE_CD /* 발송 구분 코드 */
, SVBTC_YMD /* 공시송달 일자 */
, TTL_NM /* 제목 명 */
, DOC_NO /* 문서 번호 */
, ETC_CN /* 기타 내용 */
, TNOCS /* 총건수 */
, GRAMT /* 총금액 */
, DEL_YN /* 삭제 여부 */
, REG_DT /* 등록 일시 */
, RGTR /* 등록자 */
, MDFCN_DT /* 수정 일시 */
, MDFR /* 수정자 */
)
VALUES (
#{svbtc.svbtcId} /* 공시송달 ID */
, #{svbtc.sggCd} /* 시군구 코드 */
, #{svbtc.taskSeCd} /* 업무 구분 코드 */
, #{svbtc.vltnId} /* 위반 ID */
, #{svbtc.sndngSeCd} /* 발송 구분 코드 */
, #{svbtc.svbtcYmd} /* 공시송달 일자 */
, #{svbtc.ttlNm} /* 제목 명 */
, #{svbtc.docNo} /* 문서 번호 */
, #{svbtc.etcCn} /* 기타 내용 */
, #{svbtc.tnocs} /* 총건수 */
, #{svbtc.gramt} /* 총금액 */
, 'N' /* 삭제 여부 */
, #{svbtc.createdAt} /* 등록 일시 */
, #{svbtc.createdBy} /* 등록자 */
, #{svbtc.lastModified} /* 수정 일시 */
, #{svbtc.modifiedBy} /* 수정자 */
)
</insert>
<update id="updateSvbtc" parameterType="map">/* 공시송달 대장 수정(svbtcMapper.updateSvbtc) */
UPDATE TB_SVBTC
SET SVBTC_YMD = #{svbtc.svbtcYmd} /* 공시송달 일자 */
, TTL_NM = #{svbtc.ttlNm} /* 제목 명 */
, DOC_NO = #{svbtc.docNo} /* 문서 번호 */
, ETC_CN = #{svbtc.etcCn} /* 기타 내용 */
, TNOCS = #{svbtc.tnocs} /* 총건수 */
, GRAMT = #{svbtc.gramt} /* 총금액 */
, MDFCN_DT = #{svbtc.lastModified} /* 수정 일시 */
, MDFR = #{svbtc.modifiedBy} /* 수정자 */
WHERE SVBTC_ID = #{svbtc.svbtcId} /* 공시송달 ID */
</update>
<update id="deleteSvbtc" parameterType="map">/* 공시송달 대장 삭제(svbtcMapper.deleteSvbtc) */
UPDATE TB_SVBTC
SET DEL_YN = 'Y' /* 삭제 여부 */
, DEL_DT = #{svbtc.lastModified} /* 삭제 일시 */
, DLTR = #{svbtc.modifiedBy} /* 삭제자 */
, DEL_RSN = #{svbtc.delRsn} /* 삭제 사유 */
WHERE SVBTC_ID = #{svbtc.svbtcId} /* 공시송달 ID */
AND DEL_YN = 'N' /* 삭제 여부 */
</update>
</mapper>

@ -419,6 +419,16 @@
${pageName}Control.urls.getInfo = wctx.url("/" + taskSeCd + "/sprt/sprt02/010/main.do"); // 개별총정보
}
// 검색 조건 파라미터 가져오기
fnGetParams${pageName} = () => {
let formFields = new FimsFormFields("#frmSearch--${pageName}");
let formData = formFields.get();
formData.sggCd = "41480"; // 시군구 코드 임시
return formData;
}
// 수정 dialog -> callback 추가
${pageName}Info = (params) => {
ajax.get({
@ -492,40 +502,30 @@
/**************************************************************************
* function
**************************************************************************/
// 검색 조건 파라미터 가져오기
function fnGetParams${pageName}() {
let formFields = new FimsFormFields("#frmSearch--${pageName}");
let formData = formFields.get();
formData.sggCd = "41480"; // 시군구 코드 임시
return formData;
}
// 초기화
function fnBtnReset${pageName}() {
fnBtnReset${pageName} = () => {
let taskSeCd = $("#layout-navbar input[name='taskSeCd']:checked").val();
fnResetAndChangeBiz${pageName}(taskSeCd);
}
// 검색
function fnBtnSearchList${pageName}() {
fnBtnSearchList${pageName} = () => {
// 검색조건
${pageName}Control.query = fnGetParams${pageName}();
// 한번에 조회되는 건수 - 30건
${pageName}Control.query.fetchSize = FETCH_XS;
${pageName}Control.query.fetchSize = FETCH_XS; // 한번에 조회되는 건수 - 30건
${pageName}Control.query.delYn = "N"; // 삭제 여부
${pageName}Control.load();
}
// 엑셀
function fnBtnExcel${pageName}() {
fnBtnExcel${pageName} = () => {
}
// 수정
function fnBtnUpdate${pageName}() {
fnBtnUpdate${pageName} = () => {
let taskSeCd = $("#layout-navbar input[name='taskSeCd']:checked").val();
let levyExclId = ${pageName}Control.dataset.getValue("LEVY_EXCL_ID");
@ -552,7 +552,7 @@
}
// 삭제
function fnBtnRemove${pageName}() {
fnBtnRemove${pageName} = () => {
dialog.alert({
content : "선택한 부과제외 정보를 삭제하시겠습니까?"
, onOK : () => {

@ -396,6 +396,16 @@
${pageName}Control.urls.getInfo = wctx.url("/" + taskSeCd + "/sprt/sprt02/010/main.do"); // 개별총정보
}
// 검색 조건 파라미터 가져오기
fnGetParams${pageName} = () => {
let formFields = new FimsFormFields("#frmSearch--${pageName}");
let formData = formFields.get();
formData.sggCd = "41480"; // 시군구 코드 임시
return formData;
}
// 수정 dialog -> callback 추가
${pageName}Info = (params) => {
ajax.get({
@ -489,40 +499,30 @@
/**************************************************************************
* function
**************************************************************************/
// 검색 조건 파라미터 가져오기
function fnGetParams${pageName}() {
let formFields = new FimsFormFields("#frmSearch--${pageName}");
let formData = formFields.get();
formData.sggCd = "41480"; // 시군구 코드 임시
return formData;
}
// 초기화
function fnBtnReset${pageName}() {
fnBtnReset${pageName} = () => {
let taskSeCd = $("#layout-navbar input[name='taskSeCd']:checked").val();
fnResetAndChangeBiz${pageName}(taskSeCd);
}
// 검색
function fnBtnSearchList${pageName}() {
fnBtnSearchList${pageName} = () => {
// 검색조건
${pageName}Control.query = fnGetParams${pageName}();
// 한번에 조회되는 건수 - 30건
${pageName}Control.query.fetchSize = FETCH_XS;
${pageName}Control.query.fetchSize = FETCH_XS; // 한번에 조회되는 건수 - 30건
${pageName}Control.query.delYn = "N"; // 삭제 여부
${pageName}Control.load(1);
${pageName}Control.load();
}
// 엑셀
function fnBtnExcel${pageName}() {
fnBtnExcel${pageName} = () => {
}
// 수정
function fnBtnUpdate${pageName}() {
fnBtnUpdate${pageName} = () => {
let taskSeCd = $("#layout-navbar input[name='taskSeCd']:checked").val();
let opnnId = ${pageName}Control.dataset.getValue("OPNN_ID");
@ -541,7 +541,7 @@
}
// 심의
function fnBtnOpnnSbmsnDlbrt${pageName}() {
fnBtnOpnnSbmsnDlbrt${pageName} = () => {
let taskSeCd = $("#layout-navbar input[name='taskSeCd']:checked").val();
let opnnId = ${pageName}Control.dataset.getValue("OPNN_ID");
@ -560,7 +560,7 @@
}
// 삭제
function fnBtnRemove${pageName}() {
fnBtnRemove${pageName} = () => {
dialog.alert({
content : "선택한 의견제출 정보를 삭제하시겠습니까?"
, onOK : () => {

@ -359,6 +359,16 @@
${pageName}Control.urls.getInfo = wctx.url("/" + taskSeCd + "/sprt/sprt02/010/main.do"); // 개별총정보
}
// 검색 조건 파라미터 가져오기
fnGetParams${pageName} = () => {
let formFields = new FimsFormFields("#frmSearch--${pageName}");
let formData = formFields.get();
formData.sggCd = "41480"; // 시군구 코드 임시
return formData;
}
/**************************************************************************
* 초기 셋팅
**************************************************************************/
@ -412,16 +422,6 @@
/**************************************************************************
* function
**************************************************************************/
// 검색 조건 파라미터 가져오기
fnGetParams${pageName} = () => {
let formFields = new FimsFormFields("#frmSearch--${pageName}");
let formData = formFields.get();
formData.sggCd = "41480"; // 시군구 코드 임시
return formData;
}
// 초기화
fnBtnReset${pageName} = () => {
let taskSeCd = $("#layout-navbar input[name='taskSeCd']:checked").val();
@ -433,8 +433,8 @@
fnBtnSearchList${pageName} = () => {
// 검색조건
${pageName}Control.query = fnGetParams${pageName}();
// 한번에 조회되는 건수 - 30건
${pageName}Control.query.fetchSize = FETCH_XS;
${pageName}Control.query.fetchSize = FETCH_XS; // 한번에 조회되는 건수 - 30건
${pageName}Control.query.delYn = "N"; // 삭제 여부
${pageName}Control.load(1);
}

@ -3,17 +3,9 @@
<!-- Page Body -->
<div class="content-wrapper">
<!-- 입력 영역 -->
<form id="frmEdit--${pageName}" name="frmEdit">
<!-- hidden -->
<input type="hidden" id="crdnId--${pageName}" name="crdnId" data-map="CRDN_ID" />
<input type="hidden" id="sndngId--${pageName}" name="sndngId" data-map="SNDNG_ID" />
<input type="hidden" id="sndngDtlId--${pageName}" name="sndngDtlId" data-map="SNDNG_DTL_ID" />
<div class="d-flex flex-row justify-content-evenly">
<!-- 화면 왼쪽 -->
<div class="col-xl-9 mx-1">
<!-- 발송 정보 -->
<div class="col-xl-12 mx-1">
<div class="card">
<!-- 업무 버튼 -->
<div class="container-page-btn">
@ -45,29 +37,29 @@
<!-- DataTables(그리드) -->
<div class="card-datatable text-nowrap">
<div id="DataTables_Table_0_wrapper--${pageName}" class="dataTables_wrapper dt-bootstrap5 no-footer">
<div id="table-responsive--${pageName}" class="table-responsive" style="overflow-x:scroll; height:400px; overflow-y:scroll;" >
<div id="table-responsive--${pageName}" class="table-responsive" style="overflow-x:scroll; height:336px; overflow-y:scroll;" >
<table class="dataTable datatables-ajax table table-bordered no-footer" id="DataTables_Table_0--${pageName}" aria-describedby="DataTables_Table_0_info">
<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 onclick="searchFromGridTitle('SNDNG_RCVMT_CD', this.innerText, 'codeValue', 'FIM051');">수납</th>
<th onclick="searchFromGridTitle('RG_NO', this.innerText, 'match', 'part');">등기번호</th>
<th onclick="searchFromGridTitle('SNDNG_SE_CD', this.innerText, 'codeValue', 'FIM047');">발송구분</th>
<th onclick="searchFromGridTitle('SNDNG_YMD', this.innerText, 'ymd', '');">발송일자</th>
<th onclick="searchFromGridTitle('DUDT_YMD', this.innerText, 'ymd', '');">납기일자</th>
<th onclick="searchFromGridTitle('RTPYR_NM', this.innerText, 'match', 'part');">성명</th>
<th onclick="searchFromGridTitle('RTPYR_ADDR', this.innerText, 'match', 'part');">주소</th>
<th onclick="searchFromGridTitle('RTPYR_DTL_ADDR', this.innerText, 'match', 'part');">상세주소</th>
<th onclick="searchFromGridTitle('RTPYR_ZIP', this.innerText, 'match', 'part');">우편번호</th>
<th onclick="searchFromGridTitle('FYR', this.innerText, 'match', 'part');">회계연도</th>
<th onclick="searchFromGridTitle('LEVY_NO', this.innerText, 'match', 'part');">부과번호</th>
<th onclick="searchFromGridTitle('LEVY_SUM_AMT', this.innerText, 'match', 'part');">금액</th>
<th onclick="searchFromGridTitle('DLVR_YMD', this.innerText, 'ymd', '');">배달일자</th>
<th onclick="searchFromGridTitle('DLVR_TM', this.innerText, 'time', '');">배달시각</th>
<th onclick="searchFromGridTitle('UNDLVR_RSN_NM', this.innerText, 'match', 'part');">미배달사유</th>
<th onclick="searchFromGridTitle('RCPN_NM', this.innerText, 'match', 'part');">수령인</th>
<th onclick="searchFromGridTitle('RCPN_REL_NM', this.innerText, 'match', 'part');">수령인관계</th>
<th onclick="searchFromGridTitle('SNDNG_DTL_STTS_CD', this.innerText, 'codeValue', 'FIM050');">처리상태</th>
<tr id="theadTr--${pageName}">
<th>수납</th>
<th>발송구분</th>
<th>발송일자</th>
<th>납기일자</th>
<th>등기번호</th>
<th>성명</th>
<th>주소</th>
<th>상세주소</th>
<th>우편번호</th>
<th>회계연도</th>
<th>부과번호</th>
<th>금액</th>
<th>배달일자</th>
<th>배달시각</th>
<th>미배달사유</th>
<th>수령인</th>
<th>수령인관계</th>
<th>공시송달일자</th>
<th>처리상태</th>
<th>등록일시</th>
<th>등록사용자</th>
<th>수정일시</th>
@ -79,10 +71,10 @@
<template id="${infoPrefix}Row--${pageName}">
<tr data-key="{SNDNG_DTL_ID}">
<td class="text-center" onclick="{onclick}">{SNDNG_RCVMT_NM}</td>
<td class="text-center" onclick="{onclick}">{RG_NO}</td>
<td class="text-center" onclick="{onclick}">{SNDNG_SE_NM}</td>
<td class="text-center" onclick="{onclick}">{SNDNG_YMD}</td>
<td class="text-center" onclick="{onclick}">{DUDT_YMD}</td>
<td class="text-center" onclick="{onclick}">{RG_NO}</td>
<td class="text-start" onclick="{onclick}">{RTPYR_NM}</td>
<td class="text-start" onclick="{onclick}">{RTPYR_ADDR}</td>
<td class="text-start" onclick="{onclick}">{RTPYR_DTL_ADDR}</td>
@ -95,6 +87,7 @@
<td class="text-start" onclick="{onclick}">{UNDLVR_RSN_NM}</td>
<td class="text-start" onclick="{onclick}">{RCPN_NM}</td>
<td class="text-center" onclick="{onclick}">{RCPN_REL_NM}</td>
<td class="text-center" onclick="{onclick}">{SVBTC_YMD}</td>
<td class="text-start" onclick="{onclick}">{SNDNG_DTL_STTS_NM}</td>
<td class="text-center" onclick="{onclick}">{REG_DT}</td>
<td class="text-center" onclick="{onclick}">{RGTR_NM}</td>
@ -104,7 +97,7 @@
</template>
<template id="${infoPrefix}NotFound--${pageName}">
<tr class="odd">
<td valign="top" colspan="22" class="dataTables_empty text-center">${prefixName} 정보를 찾지 못했습니다.</td>
<td valign="top" colspan="23" class="dataTables_empty text-center">발송 정보를 찾지 못했습니다.</td>
</tr>
</template>
</table>
@ -112,13 +105,20 @@
</div>
</div> <!-- / DataTables(그리드) -->
</div> <!-- <div class="row g-1"> -->
</div> <!-- <div class="card"> -->
</div> <!-- <div class="col-xl-9 mx-1"> -->
<!-- 화면 오른쪽 -->
<div class="col-xl-3 mx-1">
</div> <!-- 발송 정보 <div class="col-xl-12 mx-1"> -->
</div> <!-- <div class="d-flex flex-row justify-content-evenly"> -->
</p>
<div class="d-flex flex-row justify-content-evenly">
<!-- 가상계좌 정보 -->
<div class="col-xl-3 mx-1">
<!-- 입력 영역 -->
<form id="frmEdit--${pageName}" name="frmEdit">
<!-- hidden -->
<input type="hidden" id="crdnId--${pageName}" name="crdnId" data-map="CRDN_ID" />
<input type="hidden" id="sndngId--${pageName}" name="sndngId" data-map="SNDNG_ID" />
<input type="hidden" id="sndngDtlId--${pageName}" name="sndngDtlId" data-map="SNDNG_DTL_ID" />
<div class="card">
<!-- 업무 버튼 -->
<div class="container-page-btn">
@ -127,7 +127,7 @@
<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="16" readonly>
<textarea type="text" class="form-control w-100" id="vrActno--${pageName}" name="vrActno" cols="100%" rows="7" readonly>
</textarea>
</div>
<!-- 전자납부번호 -->
@ -136,11 +136,59 @@
<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"> -->
</div> <!-- <div class="d-flex flex-row justify-content-evenly"> -->
</div> <!-- <div class="card"> -->
</form>
</div> <!-- 가상계좌 정보 <div class="col-xl-3 mx-1"> -->
<!-- 공시송달 이력 -->
<div class="col-xl-9 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_wrapper--${pageName}${pageDataName2}" class="dataTables_wrapper dt-bootstrap5 no-footer">
<div id="table-responsive--${pageName}${pageDataName2}" class="table-responsive" style="overflow-x:scroll; height:200px; overflow-y:scroll;" >
<table class="dataTable datatables-ajax table table-bordered no-footer" id="DataTables_Table_0--${pageName}${pageDataName2}" aria-describedby="DataTables_Table_0_info">
<thead>
<tr id="theadTr--${pageName}${pageDataName2}">
<th>공시송달일자</th>
<th>제목</th>
<th>문서번호</th>
<th>기타내용</th>
<th>등록일시</th>
<th>등록사용자</th>
</tr>
</thead>
<tbody id="tbody--${pageName}${pageDataName2}">
</tbody>
<template id="${infoPrefix}Row--${pageName}${pageDataName2}">
<tr data-key="{SVBTC_ID}">
<td class="text-center" onclick="{onclick}">{SVBTC_YMD}</td>
<td class="text-center" onclick="{onclick}">{TTL_NM}</td>
<td class="text-center" onclick="{onclick}">{DOC_NO}</td>
<td class="text-center" onclick="{onclick}">{ETC_CN}</td>
<td class="text-center" onclick="{onclick}">{REG_DT}</td>
<td class="text-center" onclick="{onclick}">{RGTR_NM}</td>
</tr>
</template>
<template id="${infoPrefix}NotFound--${pageName}${pageDataName2}">
<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-12 mx-1"> -->
</div> <!-- <div class="d-flex flex-row justify-content-evenly"> -->
</div> <!-- <div class="content-wrapper"> -->
<script>
/**************************************************************************
@ -150,14 +198,12 @@
var ${pageName}PrefixUrl = "/sprt/sprt02";
// FormFields
var ${pageName}Fields = new FormFields("#frmEdit--${pageName}");
// 파일 리스트
var $fileListArr = new Array();
/**************************************************************************
* DatasetControl
**************************************************************************/
var ${pageName}Control = new DatasetControl({
prefix : "totalInfoSndng"
var ${pageName}Dataset = new Dataset({
prefix : "sndng"
, prefixName : "발송 정보"
, keymapper : info => info ? info.SNDNG_DTL_ID : ""
, dataGetter : obj => obj.sndngDtlList
@ -171,19 +217,10 @@
, REG_DT : datetimeFormat
, MDFCN_DT : datetimeFormat
}
});
/**************************************************************************
* DatasetControl 이벤트
**************************************************************************/
// onDatasetChange 이벤트
${pageName}Control.onDatasetChange = obj => {
, onDatasetChange : obj => {
renderList${pageName}();
};
// onCurrentChange 이벤트
${pageName}Control.onCurrentChange = item => {
//
}
, onCurrentChange : item => {
if (!item) return;
let key = item.data.SNDNG_DTL_ID;
@ -209,14 +246,38 @@
// 전자납부번호
$("#epayno--${pageName}").val(item.data.EPAYNO);
};
}
});
// 공시송달 정보 Dataset
var ${pageName}${pageDataName2}Dataset = new Dataset({
prefix : "svbtc"
, prefixName : "공시송달 정보"
, keymapper : info => info ? info.SVBTC_ID : ""
, dataGetter : obj => obj.svbtcList
, appendData : true
, formats : {
SVBTC_YMD : dateFormat
, REG_DT : datetimeFormat
}
, onDatasetChange : obj => {
renderList${pageName}${pageDataName2}();
}
, onCurrentChange : item => {
if (!item) return;
let key = item.data.SVBTC_ID;
$("#tbody--${pageName}${pageDataName2}").setCurrentRow(key);
}
});
/**************************************************************************
*
**************************************************************************/
// DataTables에 click, dbclick 이벤트
renderList${pageName} = () => {
let ${infoPrefix}List = ${pageName}Control.dataset;
let ${infoPrefix}List = ${pageName}Dataset;
let empty = ${infoPrefix}List.empty;
let trs = empty ?
@ -224,12 +285,28 @@
${infoPrefix}List.inStrings(
document.getElementById("${infoPrefix}Row--${pageName}").innerHTML, <%-- from template#${infoPrefix}Row --%>
(str, dataItem) => str
.replace(/{onclick}/gi, "${pageName}Control.setCurrent('" + dataItem.getValue("SNDNG_DTL_ID") + "');")
.replace(/{onclick}/gi, "${pageName}Dataset.setCurrent('" + dataItem.getValue("SNDNG_DTL_ID") + "');")
);
$("#tbody--${pageName}").html(trs.join());
}
// 공시송달 정보 DataTables에 click 이벤트
renderList${pageName}${pageDataName2} = () => {
let ${infoPrefix}List = ${pageName}${pageDataName2}Dataset;
let empty = ${infoPrefix}List.empty;
let trs = empty ?
[document.getElementById("${infoPrefix}NotFound--${pageName}${pageDataName2}").innerHTML] : <%-- from template#${infoPrefix}NotFound --%>
${infoPrefix}List.inStrings(
document.getElementById("${infoPrefix}Row--${pageName}${pageDataName2}").innerHTML, <%-- from template#${infoPrefix}Row --%>
(str, dataItem) => str
.replace(/{onclick}/gi, "${pageName}${pageDataName2}Dataset.setCurrent('" + dataItem.getValue("SVBTC_ID") + "');")
);
$("#tbody--${pageName}${pageDataName2}").html(trs.join());
}
/**************************************************************************
* 초기 셋팅
**************************************************************************/
@ -287,7 +364,8 @@
initForm${pageName}();
// Dataset 셋팅
${pageName}Control.setData(${sndngDtlList});
${pageName}Dataset.setData(${sndngDtlList});
${pageName}${pageDataName2}Dataset.setData(${svbtcList});
});
// #sourceURL=sprt02040-info.jsp

@ -26,7 +26,7 @@
</span> <!-- <span class="container-window-btn-right"> -->
</div> <!-- <div class="container-page-btn"> -->
<!-- 입력 영역 -->
<form id="frmEditRduct--${pageName}" name="frmEditRduct">
<form id="frmEdit--${pageName}" name="frmEdit">
<!-- hidden -->
<input type="hidden" id="rductId--${pageName}" name="rductId" data-map="RDUCT_ID" />
@ -92,7 +92,7 @@
</div> <!-- <div class="container-page-btn"> -->
<!-- 입력 영역 -->
<form id="frmEditLevyExcl--${pageName}" name="frmEditLevyExcl">
<form id="frmEdit--${pageName}${pageDataName2}" name="frmEdit${pageDataName2}">
<!-- hidden -->
<input type="hidden" id="levyExclId--${pageName}" name="levyExclId" data-map="LEVY_EXCL_ID" />
@ -149,28 +149,30 @@
<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">
<div id="DataTables_Table_0_wrapper--${pageName}${pageDataName3}" class="dataTables_wrapper dt-bootstrap5 no-footer">
<div id="table-responsive--${pageName}${pageDataName3}" 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_0--${pageName}${pageDataName3}" aria-describedby="DataTables_Table_0_info">
<thead>
<tr id="theadTrCrdnSttsHstry--${pageName}">
<tr id="theadTr--${pageName}${pageDataName3}">
<th>등록일시</th>
<th>등록사용자</th>
<th>단속상태</th>
<th>기타내용</th>
<th>사용여부</th>
</tr>
</thead>
<tbody id="tbodyCrdnSttsHstry--${pageName}">
<tbody id="tbody--${pageName}${pageDataName3}">
</tbody>
<template id="${infoPrefix}CrdnSttsHstryRow--${pageName}">
<template id="${infoPrefix}Row--${pageName}${pageDataName3}">
<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>
<td class="text-center" onclick="{onclick}">{USE_YN_NM}</td>
</tr>
</template>
<template id="${infoPrefix}CrdnSttsHstryNotFound--${pageName}">
<template id="${infoPrefix}NotFound--${pageName}${pageDataName3}">
<tr class="odd">
<td valign="top" colspan="6" class="dataTables_empty text-center">처리상태 이력 정보를 찾지 못했습니다.</td>
</tr>
@ -192,11 +194,11 @@
<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">
<div id="DataTables_Table_0_wrapper--${pageName}${pageDataName4}" class="dataTables_wrapper dt-bootstrap5 no-footer">
<div id="table-responsive--${pageName}${pageDataName4}" 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_0--${pageName}${pageDataName4}" aria-describedby="DataTables_Table_0_info">
<thead>
<tr id="theadTrCrdnPayerHstry--${pageName}">
<tr id="theadTr--${pageName}${pageDataName4}">
<th>등록일시</th>
<th>등록사용자</th>
<th>납부자명</th>
@ -204,9 +206,9 @@
<th>전체주소</th>
</tr>
</thead>
<tbody id="tbodyCrdnPayerHstry--${pageName}">
<tbody id="tbody--${pageName}${pageDataName4}">
</tbody>
<template id="${infoPrefix}CrdnPayerHstryRow--${pageName}">
<template id="${infoPrefix}Row--${pageName}${pageDataName4}">
<tr data-key="{CHG_HSTRY_ID}">
<td class="text-center" onclick="{onclick}">{REG_DT}</td>
<td class="text-center" onclick="{onclick}">{RGTR_NM}</td>
@ -215,7 +217,7 @@
<td class="text-center" onclick="{onclick}">{WHOL_ADDR}</td>
</tr>
</template>
<template id="${infoPrefix}CrdnPayerHstryNotFound--${pageName}">
<template id="${infoPrefix}NotFound--${pageName}${pageDataName4}">
<tr class="odd">
<td valign="top" colspan="5" class="dataTables_empty text-center">주소변동 이력 정보를 찾지 못했습니다.</td>
</tr>
@ -237,14 +239,14 @@
// URL
var ${pageName}PrefixUrl = "/sprt/sprt02";
// FormFields
var ${pageName}RductFields = new FormFields("#frmEditRduct--${pageName}");
var ${pageName}LevyExclFields = new FormFields("#frmEditLevyExcl--${pageName}");
var ${pageName}Fields = new FormFields("#frmEdit--${pageName}");
var ${pageName}${pageDataName2}Fields = new FormFields("#frmEdit--${pageName}${pageDataName2}");
/**************************************************************************
* DatasetControl
**************************************************************************/
// 감경 Dataset
var ${pageName}RductDataset = new Dataset({
var ${pageName}Control = new DatasetControl({
prefix : "rduct"
, prefixName : "감경"
, keymapper : info => info ? info.RDUCT_ID : ""
@ -253,13 +255,14 @@
, RDUCT_AMT : numberFormat
, REG_DT : datetimeFormat
}
, onCurrentChange : item => {
${pageName}RductFields.set(item);
}
});
${pageName}Control.onCurrentChange = item => {
${pageName}Fields.set(item);
}
// 부과제외 Dataset
var ${pageName}LevyExclDataset = new Dataset({
var ${pageName}${pageDataName2}Control = new DatasetControl({
prefix : "levyExcl"
, prefixName : "부과제외"
, keymapper : info => info ? info.LEVY_EXCL_ID : ""
@ -267,13 +270,14 @@
LEVY_EXCL_YMD : dateFormat
, REG_DT : datetimeFormat
}
, onCurrentChange : item => {
${pageName}LevyExclFields.set(item);
}
});
${pageName}${pageDataName2}Control.onCurrentChange = item => {
${pageName}${pageDataName2}Fields.set(item);
}
// 단속상태이력 Dataset
var ${pageName}CrdnSttsHstryDataset = new Dataset({
var ${pageName}${pageDataName3}Dataset = new Dataset({
prefix : "crdnSttsHstry"
, prefixName : "단속상태이력"
, keymapper : info => info ? info.STTS_HSTRY_ID : ""
@ -283,19 +287,19 @@
REG_DT : datetimeFormat
}
, onDatasetChange : obj => {
crdnSttsHstryRenderList${pageName}();
renderList${pageName}${pageDataName3}();
}
, onCurrentChange : item => {
if (!item) return;
let key = item.data.STTS_HSTRY_ID;
$("#tbodyCrdnSttsHstry--${pageName}").setCurrentRow(key);
$("#tbody--${pageName}${pageDataName3}").setCurrentRow(key);
}
});
// 단속납부자이력 Dataset
var ${pageName}CrdnPayerHstryDataset = new Dataset({
var ${pageName}${pageDataName4}Dataset = new Dataset({
prefix : "crdnPayerHstry"
, prefixName : "단속납부자이력"
, keymapper : info => info ? info.CHG_HSTRY_ID : ""
@ -305,14 +309,14 @@
REG_DT : datetimeFormat
}
, onDatasetChange : obj => {
crdnPayerHstryRenderList${pageName}();
renderList${pageName}${pageDataName4}();
}
, onCurrentChange : item => {
if (!item) return;
let key = item.data.CHG_HSTRY_ID;
$("#tbodyCrdnPayerHstry--${pageName}").setCurrentRow(key);
$("#tbody--${pageName}${pageDataName4}").setCurrentRow(key);
}
});
@ -320,35 +324,35 @@
*
**************************************************************************/
// 단속 상태 이력 DataTables에 click 이벤트
crdnSttsHstryRenderList${pageName} = () => {
let ${infoPrefix}List = ${pageName}CrdnSttsHstryDataset;
renderList${pageName}${pageDataName3} = () => {
let ${infoPrefix}List = ${pageName}${pageDataName3}Dataset;
let empty = ${infoPrefix}List.empty;
let trs = empty ?
[document.getElementById("${infoPrefix}CrdnSttsHstryNotFound--${pageName}").innerHTML] : <%-- from template#${infoPrefix}NotFound --%>
[document.getElementById("${infoPrefix}NotFound--${pageName}${pageDataName3}").innerHTML] : <%-- from template#${infoPrefix}NotFound --%>
${infoPrefix}List.inStrings(
document.getElementById("${infoPrefix}CrdnSttsHstryRow--${pageName}").innerHTML, <%-- from template#${infoPrefix}Row --%>
document.getElementById("${infoPrefix}Row--${pageName}${pageDataName3}").innerHTML, <%-- from template#${infoPrefix}Row --%>
(str, dataItem) => str
.replace(/{onclick}/gi, "${pageName}CrdnSttsHstryDataset.setCurrent('" + dataItem.getValue("STTS_HSTRY_ID") + "');")
.replace(/{onclick}/gi, "${pageName}${pageDataName3}Dataset.setCurrent('" + dataItem.getValue("STTS_HSTRY_ID") + "');")
);
$("#tbodyCrdnSttsHstry--${pageName}").html(trs.join());
$("#tbody--${pageName}${pageDataName3}").html(trs.join());
}
// 단속 납부자 이력 DataTables에 click 이벤트
crdnPayerHstryRenderList${pageName} = () => {
let ${infoPrefix}List = ${pageName}CrdnPayerHstryDataset;
renderList${pageName}${pageDataName4} = () => {
let ${infoPrefix}List = ${pageName}${pageDataName4}Dataset;
let empty = ${infoPrefix}List.empty;
let trs = empty ?
[document.getElementById("${infoPrefix}CrdnPayerHstryNotFound--${pageName}").innerHTML] : <%-- from template#${infoPrefix}NotFound --%>
[document.getElementById("${infoPrefix}NotFound--${pageName}${pageDataName4}").innerHTML] : <%-- from template#${infoPrefix}NotFound --%>
${infoPrefix}List.inStrings(
document.getElementById("${infoPrefix}CrdnPayerHstryRow--${pageName}").innerHTML, <%-- from template#${infoPrefix}Row --%>
document.getElementById("${infoPrefix}Row--${pageName}${pageDataName4}").innerHTML, <%-- from template#${infoPrefix}Row --%>
(str, dataItem) => str
.replace(/{onclick}/gi, "${pageName}CrdnPayerHstryDataset.setCurrent('" + dataItem.getValue("CHG_HSTRY_ID") + "');")
.replace(/{onclick}/gi, "${pageName}${pageDataName4}Dataset.setCurrent('" + dataItem.getValue("CHG_HSTRY_ID") + "');")
);
$("#tbodyCrdnPayerHstry--${pageName}").html(trs.join());
$("#tbody--${pageName}${pageDataName4}").html(trs.join());
}
/**************************************************************************
@ -407,19 +411,23 @@
// 화면 초기 설정
initForm${pageName}();
// Dataset 셋팅
// 감경 정보 Control 셋팅
let rduct = ${rduct};
if (rduct) {
${pageName}RductDataset.setData([${rduct}]);
${pageName}Control.setData([${rduct}]);
}
// 부과제외 정보 Control 셋팅
let levyExcl = ${levyExcl};
if (levyExcl) {
${pageName}LevyExclDataset.setData([${levyExcl}]);
${pageName}${pageDataName2}Control.setData([${levyExcl}]);
}
${pageName}CrdnSttsHstryDataset.setData(${crdnSttsHstryList});
${pageName}CrdnPayerHstryDataset.setData(${crdnPayerHstryList});
// 처리 상태 이력 Dataset 셋팅
${pageName}${pageDataName3}Dataset.setData(${crdnSttsHstryList});
// 주소 변동 이력 Dataset 셋팅
${pageName}${pageDataName4}Dataset.setData(${crdnPayerHstryList});
});
// #sourceURL=sprt02050-info.jsp

Loading…
Cancel
Save