1. 개별총정보 - 민원상담내용 탭 추가.

2. 주석 수정.
3. 소스 정리.
main
jjh 1 year ago
parent 0bd2fca496
commit f7a959bbb9

@ -32,9 +32,9 @@ public class Excl01Controller extends ApplicationController {
@Resource(name = "excl01Service")
protected Excl01Service excl01Service;
/** (excl/excl01/010-main) .
* {@link #getLevyExclList(ExclQuery) } .
* @return /excl/excl01/010-main
/** (fims/excl/excl01/010-main) .
*
* @return /fims/excl/excl01010
*/
public ModelAndView levyExclusionMain() {
ModelAndView mav = new ModelAndView("fims/excl/excl01010-main");

@ -41,9 +41,9 @@ public class Excl02Controller extends ApplicationController {
@Resource(name="fileService")
private FileService fileService;
/** (excl/excl02/010-main) .
* {@link #getOpnnSbmsnList(ExclQuery01) } .
* @return /excl/excl02/010-main
/** (fims/excl/excl02/010-main) .
*
* @return /fims/excl/excl02010
*/
public ModelAndView opinionSubmissionMain() {
ModelAndView mav = new ModelAndView("fims/excl/excl02010-main");

@ -32,8 +32,8 @@ public class Excl03Controller extends ApplicationController {
private Excl03Service excl03Service;
/** (excl03/excl03-main) .
* {@link #getExcl03List(Excl03Query) } .
* @return /excl03/excl03-main
*
* @return /fims/excl/excl03010
*/
public ModelAndView crackdownReRegistrationMain() {
ModelAndView mav = new ModelAndView("fims/excl/excl03010-main");

@ -0,0 +1,64 @@
package cokr.xit.fims.sprt;
import cokr.xit.foundation.AbstractEntity;
import lombok.Getter;
import lombok.Setter;
/**
*
* @author JoJH
*/
@Getter
@Setter
public class CvlcptDscsnCn extends AbstractEntity {
/**
* ID
*/
private String cvlcptDscsnId;
/**
*
*/
private String sggCd;
/**
*
*/
private String taskSeCd;
/**
*
*/
private String cvlcptSeCd;
/**
* ID
*/
private String crdnId;
/**
*
*/
private String vhrno;
/**
*
*/
private String dscsnCn;
/**
*
*/
private String weekNm;
/**
*
*/
private String delYn;
/**
*
*/
private String delRsn;
}

@ -12,9 +12,15 @@ public class SprtQuery extends QueryRequest {
private String delYn; // 삭제 여부
// ID
private String crdnId; // 단속 ID
private String levyExclId; // 부과 제외 ID
private String opnnId; // 의견 ID
private String levyId; // 부과 ID
private String cvlcptDscsnId; // 민원 상담 ID
private String vhrno; // 차량번호
// ETC
private String callPurpose; // 호출용도 필요시 사용(select, create, update)
private String inquiryCondition; // 조회조건
private String delRsn; // 삭제 사유
public String getSggCd() {
@ -57,6 +63,16 @@ public class SprtQuery extends QueryRequest {
return self();
}
public String getLevyExclId() {
return ifEmpty(levyExclId, () -> null);
}
public <T extends SprtQuery> T setLevyExclId(String levyExclId) {
this.levyExclId = levyExclId;
return self();
}
public String getOpnnId() {
return ifEmpty(opnnId, () -> null);
}
@ -67,6 +83,36 @@ public class SprtQuery extends QueryRequest {
return self();
}
public String getLevyId() {
return ifEmpty(levyId, () -> null);
}
public <T extends SprtQuery> T setLevyId(String levyId) {
this.levyId = levyId;
return self();
}
public String getCvlcptDscsnId() {
return ifEmpty(cvlcptDscsnId, () -> null);
}
public <T extends SprtQuery> T setCvlcptDscsnId(String cvlcptDscsnId) {
this.cvlcptDscsnId = cvlcptDscsnId;
return self();
}
public String getVhrno() {
return ifEmpty(vhrno, () -> null);
}
public <T extends SprtQuery> T setVhrno(String vhrno) {
this.vhrno = vhrno;
return self();
}
// ETC /////////////////////////////////////////////////////////////////////
public String getCallPurpose() {
return ifEmpty(callPurpose, () -> null);
@ -78,6 +124,15 @@ public class SprtQuery extends QueryRequest {
return self();
}
public String getInquiryCondition() {
return ifEmpty(inquiryCondition, () -> null);
}
public <T extends SprtQuery> T setInquiryCondition(String inquiryCondition) {
this.inquiryCondition = inquiryCondition;
return self();
}
public String getDelRsn() {
return ifEmpty(delRsn, () -> null);
}

@ -0,0 +1,99 @@
package cokr.xit.fims.sprt.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.sprt.CvlcptDscsnCn;
import cokr.xit.fims.sprt.SprtQuery;
/** - DAO
*
* <p> :
*
* <pre>
* ============ ============
* 2023-09-05 JoJH
* ================================
* </pre>
*/
@Mapper("cvlcptDscsnCnMapper")
public interface CvlcptDscsnCnMapper extends AbstractMapper {
/** .<br />
* @param req
* @return
*/
List<DataObject> selectCvlcptDscsnCnList(SprtQuery req);
/** .
* @param req
* @return
*/
List<DataObject> selectCvlcptDscsnCns(SprtQuery req);
/** .
* @param params
* <ul><li>"cvlcptDscsnCn" - </li>
* <li>"currentUser" - </li>
* </ul>
* @return
*/
int insertCvlcptDscsnCn(Map<String, Object> params);
/** .
* @param cvlcptDscsnCn
* @return
* <ul><li> true</li>
* <li> false</li>
* </ul>
*/
default boolean insert(CvlcptDscsnCn cvlcptDscsnCn) {
return cvlcptDscsnCn != null && insertCvlcptDscsnCn(params().set("cvlcptDscsnCn", cvlcptDscsnCn)) == 1;
}
/** .
* @param params
* <ul><li>"cvlcptDscsnCn" - </li>
* <li>"currentUser" - </li>
* </ul>
* @return
*/
int updateCvlcptDscsnCn(Map<String, Object> params);
/** .
* @param cvlcptDscsnCn
* @return
* <ul><li> true</li>
* <li> false</li>
* </ul>
*/
default boolean update(CvlcptDscsnCn cvlcptDscsnCn) {
return cvlcptDscsnCn != null && updateCvlcptDscsnCn(params().set("cvlcptDscsnCn", cvlcptDscsnCn)) == 1;
}
/** .
* @param params
* <ul><li>"cvlcptDscsnCn" - </li>
* <li>"currentUser" - </li>
* </ul>
* @return
*/
int deleteCvlcptDscsnCn(Map<String, ?> params);
/** .
* @param cvlcptDscsnCn
* @return
* <ul><li> true</li>
* <li> false</li>
* </ul>
*/
default boolean delete(CvlcptDscsnCn cvlcptDscsnCn) {
return cvlcptDscsnCn != null && deleteCvlcptDscsnCn(params().set("cvlcptDscsnCn", cvlcptDscsnCn)) == 1;
}
}

@ -1,23 +0,0 @@
package cokr.xit.fims.sprt.dao;
import java.util.List;
import org.egovframe.rte.psl.dataaccess.mapper.Mapper;
import cokr.xit.fims.sprt.SprtQuery;
import cokr.xit.foundation.component.AbstractMapper;
import cokr.xit.foundation.data.DataObject;
/** DAO
* @author leebj
*/
@Mapper("sprt01Mapper")
public interface Sprt01Mapper extends AbstractMapper {
/** .
* @param crdnId
* @return
*/
DataObject selectTotalDataInfo(String crdnId);
}

@ -6,7 +6,7 @@ import cokr.xit.fims.sprt.SprtQuery;
import cokr.xit.foundation.component.AbstractMapper;
import cokr.xit.foundation.data.DataObject;
/** - DAO
/** - DAO
*
* <p> :
*
@ -16,8 +16,8 @@ import cokr.xit.foundation.data.DataObject;
* ================================
* </pre>
*/
@Mapper("sprt02Mapper")
public interface Sprt02Mapper extends AbstractMapper {
@Mapper("totalInfoMapper")
public interface TotalInfoMapper extends AbstractMapper {
/** ID .
* @param crdnId ID

@ -0,0 +1,36 @@
package cokr.xit.fims.sprt.dao;
import java.util.List;
import org.egovframe.rte.psl.dataaccess.mapper.Mapper;
import cokr.xit.fims.sprt.SprtQuery;
import cokr.xit.foundation.component.AbstractMapper;
import cokr.xit.foundation.data.DataObject;
/** - DAO
*
* <p> :
*
* <pre>
* ============ ============
* 2023-08-18 JoJH
* ================================
* </pre>
*/
@Mapper("unityInqMapper")
public interface UnityInqMapper extends AbstractMapper {
/** .<br />
* @param req
* @return
*/
List<DataObject> selectUnityInqList(SprtQuery req);
/** .
* @param req
* @return
*/
List<DataObject> selectUnityInqs(SprtQuery req);
}

@ -1,18 +1,32 @@
package cokr.xit.fims.sprt.service;
import java.util.List;
import cokr.xit.fims.sprt.SprtQuery;
import cokr.xit.foundation.data.DataObject;
/** .
* <ul><li>{@link #getTotalDataInfo(SprtQuery) }</li>
* </ul>
* @author leebj
*/
/** .
*
* <p> :
*
* <pre>
* ============ ============
* 2023-08-18 JoJH
* ================================
* </pre>
*/
public interface Sprt01Service {
/** .
* @param crdnId
* @return
*/
DataObject getTotalDataInfo(String crdnId);
List<DataObject> getUnityInqList(SprtQuery req);
/** .
* @param crdnId
* @return
*/
List<DataObject> getUnityInqs(SprtQuery req);
}

@ -1,14 +1,17 @@
package cokr.xit.fims.sprt.service;
import java.util.List;
import cokr.xit.fims.sprt.SprtQuery;
import cokr.xit.foundation.data.DataObject;
/** .
* <ul><li>{@link #getTotalDataInfo(SprtQuery) }</li>
* </ul>
* @author leebj
/** .
*
* <p> :
*
* <pre>
* ============ ============
* 2023-08-18 JoJH
* ================================
* </pre>
*/
public interface Sprt02Service {

@ -0,0 +1,61 @@
package cokr.xit.fims.sprt.service;
import java.util.List;
import cokr.xit.foundation.data.DataObject;
import cokr.xit.fims.sprt.CvlcptDscsnCn;
import cokr.xit.fims.sprt.SprtQuery;
/** .
*
* <p> :
*
* <pre>
* ============ ============
* 2023-09-05 JoJH
* ================================
* </pre>
*/
public interface Sprt04Service {
/** .
* @param req
* @return
*/
List<DataObject> getCvlcptDscsnCnList(SprtQuery req);
/** .
* @param req
* @return
*/
List<DataObject> getCvlcptDscsnCns(SprtQuery req);
/** .
* @param cvlcptDscsnCn
* @return
* <ul><li> true</li>
* <li> false</li>
* </ul>
*/
boolean create(CvlcptDscsnCn cvlcptDscsnCn);
/** .
* @param cvlcptDscsnCn
* @return
* <ul><li> true</li>
* <li> false</li>
* </ul>
*/
boolean update(CvlcptDscsnCn cvlcptDscsnCn);
/** .
* @param cvlcptDscsnCn
* @return
* <ul><li> true</li>
* <li> false</li>
* </ul>
*/
boolean remove(CvlcptDscsnCn cvlcptDscsnCn);
}

@ -1,28 +1,47 @@
package cokr.xit.fims.sprt.service.bean;
import java.util.List;
import javax.annotation.Resource;
import org.springframework.stereotype.Component;
import cokr.xit.fims.sprt.dao.Sprt01Mapper;
import cokr.xit.fims.sprt.SprtQuery;
import cokr.xit.fims.sprt.dao.UnityInqMapper;
import cokr.xit.foundation.AbstractComponent;
import cokr.xit.foundation.data.DataObject;
/** Bean
* @author leebj
*/
/** Bean
*
* <p> :
*
* <pre>
* ============ ============
* 2023-08-18 JoJH
* ================================
* </pre>
*/
@Component("sprt01Bean")
public class Sprt01Bean extends AbstractComponent {
@Resource(name = "sprt01Mapper")
private Sprt01Mapper sprt01Mapper;
/** 통합 조회 정보 DAO */
@Resource(name = "unityInqMapper")
private UnityInqMapper unityInqMapper;
/** .
* @param req
* @return
*/
public List<DataObject> getUnityInqList(SprtQuery req) {
return unityInqMapper.selectUnityInqList(req);
}
/** .
* @param crdnId
* @return
/** .
* @param req
* @return
*/
public DataObject getTotalDataInfo(String crdnId) {
return sprt01Mapper.selectTotalDataInfo(crdnId);
public List<DataObject> getUnityInqs(SprtQuery req) {
return unityInqMapper.selectUnityInqs(req);
}
}

@ -1,16 +1,26 @@
package cokr.xit.fims.sprt.service.bean;
import java.util.List;
import javax.annotation.Resource;
import org.springframework.stereotype.Service;
import cokr.xit.fims.sprt.SprtQuery;
import cokr.xit.fims.sprt.service.Sprt01Service;
import cokr.xit.foundation.component.AbstractServiceBean;
import cokr.xit.foundation.data.DataObject;
/**
* @author leebj
*/
/** .
*
* <p> :
*
* <pre>
* ============ ============
* 2023-08-18 JoJH
* ================================
* </pre>
*/
@Service("sprt01Service")
public class Sprt01ServiceBean extends AbstractServiceBean implements Sprt01Service {
@ -19,7 +29,13 @@ public class Sprt01ServiceBean extends AbstractServiceBean implements Sprt01Serv
protected Sprt01Bean sprt01Bean;
@Override
public DataObject getTotalDataInfo(String crdnId) {
return sprt01Bean.getTotalDataInfo(crdnId);
public List<DataObject> getUnityInqList(SprtQuery req) {
return sprt01Bean.getUnityInqList(req);
}
@Override
public List<DataObject> getUnityInqs(SprtQuery req) {
return sprt01Bean.getUnityInqs(req);
}
}

@ -5,33 +5,41 @@ import javax.annotation.Resource;
import org.springframework.stereotype.Component;
import cokr.xit.fims.sprt.SprtQuery;
import cokr.xit.fims.sprt.dao.Sprt02Mapper;
import cokr.xit.fims.sprt.dao.TotalInfoMapper;
import cokr.xit.foundation.AbstractComponent;
import cokr.xit.foundation.data.DataObject;
/** Bean
* @author leebj
*/
/** Bean
*
* <p> :
*
* <pre>
* ============ ============
* 2023-08-18 JoJH
* ================================
* </pre>
*/
@Component("sprt02Bean")
public class Sprt02Bean extends AbstractComponent {
@Resource(name = "sprt02Mapper")
private Sprt02Mapper sprt02Mapper;
/** 개별 총정보 DAO */
@Resource(name = "totalInfoMapper")
private TotalInfoMapper totalInfoMapper;
/** ID .
* @param crdnId
* @return
/** main() .
* @param req
* @return main()
*/
public DataObject getCrdnInfo(SprtQuery req) {
return sprt02Mapper.selectCrdnInfo(req);
return totalInfoMapper.selectCrdnInfo(req);
}
/** ID , , .
* @param crdnId ID
* @return , ,
/** , .
* @param req
* @return ,
*/
public DataObject getCrdnPayerInfo(SprtQuery req) {
return sprt02Mapper.selectCrdnPayerInfo(req);
return totalInfoMapper.selectCrdnPayerInfo(req);
}
}

@ -4,15 +4,21 @@ import javax.annotation.Resource;
import org.springframework.stereotype.Service;
import cokr.xit.fims.sndb.service.bean.Sndb01Bean;
import cokr.xit.fims.sprt.SprtQuery;
import cokr.xit.fims.sprt.service.Sprt02Service;
import cokr.xit.foundation.component.AbstractServiceBean;
import cokr.xit.foundation.data.DataObject;
/**
* @author leebj
*/
/** .
*
* <p> :
*
* <pre>
* ============ ============
* 2023-08-18 JoJH
* ================================
* </pre>
*/
@Service("sprt02Service")
public class Sprt02ServiceBean extends AbstractServiceBean implements Sprt02Service {
@ -20,10 +26,6 @@ public class Sprt02ServiceBean extends AbstractServiceBean implements Sprt02Serv
@Resource(name="sprt02Bean")
protected Sprt02Bean sprt02Bean;
/** 발송 대장 정보 Bean */
@Resource(name = "sndb01Bean")
private Sndb01Bean sndb01Bean;
@Override
public DataObject getCrdnInfo(SprtQuery req) {
return sprt02Bean.getCrdnInfo(req);

@ -0,0 +1,82 @@
package cokr.xit.fims.sprt.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.sprt.CvlcptDscsnCn;
import cokr.xit.fims.sprt.SprtQuery;
import cokr.xit.fims.sprt.dao.CvlcptDscsnCnMapper;
/** Bean
*
* <p> :
*
* <pre>
* ============ ============
* 2023-09-05 JoJH
* ================================
* </pre>
*/
@Component("sprt04Bean")
public class Sprt04Bean extends AbstractComponent {
/** 민원 상담 내용 정보 DAO */
@Resource(name = "cvlcptDscsnCnMapper")
private CvlcptDscsnCnMapper cvlcptDscsnCnMapper;
/** .
* @param req
* @return
*/
public List<DataObject> getCvlcptDscsnCnList(SprtQuery req) {
return cvlcptDscsnCnMapper.selectCvlcptDscsnCnList(req);
}
/** .
* @param req
* @return
*/
public List<DataObject> getCvlcptDscsnCns(SprtQuery req) {
return cvlcptDscsnCnMapper.selectCvlcptDscsnCns(req);
}
/** .
* @param cvlcptDscsnCn
* @return
* <ul><li> true</li>
* <li> false</li>
* </ul>
*/
public boolean create(CvlcptDscsnCn cvlcptDscsnCn) {
return cvlcptDscsnCnMapper.insert(cvlcptDscsnCn);
}
/** .
* @param cvlcptDscsnCn
* @return
* <ul><li> true</li>
* <li> false</li>
* </ul>
*/
public boolean update(CvlcptDscsnCn cvlcptDscsnCn) {
return cvlcptDscsnCnMapper.update(cvlcptDscsnCn);
}
/** .
* @param cvlcptDscsnCn
* @return
* <ul><li> true</li>
* <li> false</li>
* </ul>
*/
public boolean remove(CvlcptDscsnCn cvlcptDscsnCn) {
return cvlcptDscsnCnMapper.delete(cvlcptDscsnCn);
}
}

@ -0,0 +1,58 @@
package cokr.xit.fims.sprt.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.sprt.CvlcptDscsnCn;
import cokr.xit.fims.sprt.SprtQuery;
import cokr.xit.fims.sprt.service.Sprt04Service;
/** .
*
* <p> :
*
* <pre>
* ============ ============
* 2023-09-05 JoJH
* ================================
* </pre>
*/
@Service("sprt04Service")
public class Sprt04ServiceBean extends AbstractServiceBean implements Sprt04Service {
/** 민원 상담 내용 정보 Bean */
@Resource(name = "sprt04Bean")
private Sprt04Bean sprt04Bean;
@Override
public List<DataObject> getCvlcptDscsnCnList(SprtQuery req) {
return sprt04Bean.getCvlcptDscsnCnList(req);
}
@Override
public List<DataObject> getCvlcptDscsnCns(SprtQuery req) {
return sprt04Bean.getCvlcptDscsnCns(req);
}
@Override
public boolean create(CvlcptDscsnCn cvlcptDscsnCn) {
return sprt04Bean.create(cvlcptDscsnCn);
}
@Override
public boolean update(CvlcptDscsnCn cvlcptDscsnCn) {
return sprt04Bean.update(cvlcptDscsnCn);
}
@Override
public boolean remove(CvlcptDscsnCn cvlcptDscsnCn) {
return sprt04Bean.remove(cvlcptDscsnCn);
}
}

@ -7,22 +7,32 @@ import org.springframework.web.servlet.ModelAndView;
import cokr.xit.base.web.ApplicationController;
import cokr.xit.fims.sprt.service.Sprt01Service;
/**
*
* <p> :
*
* <pre>
* ============ ============
* 2023-08-18 JoJH
* ================================
* </pre>
*/
public class Sprt01Controller extends ApplicationController {
/**통합 조회 서비스*/
@Resource(name="sprt01Service")
private Sprt01Service sprt01Service;
/** .
* @return fims/sprt/sprt01010-main
/** (fims/sprt/sprt01/010-main) .
*
* @return /fims/sprt/sprt01010
*/
public ModelAndView integratedInquireMain() {
ModelAndView mav = new ModelAndView();
mav.setViewName("fims/sprt/sprt01010-main");
mav.addObject("pageName", "sprt01010-main");
public ModelAndView unityInquireMain() {
ModelAndView mav = new ModelAndView("fims/sprt/sprt01010-main");
return mav;
return mav.addObject("pageName", "sprt01010") // View(jsp)에서 사용할 id 뒤에 붙일 suffix
.addObject("infoPrefix", "unityInq") // prefix
;
}
}

@ -24,6 +24,7 @@ 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.fims.sprt.service.Sprt04Service;
import cokr.xit.foundation.data.DataObject;
/**
@ -73,8 +74,13 @@ public class Sprt02Controller extends ApplicationController {
@Resource(name = "crdnPayerHstryService")
private CrdnPayerHstryService crdnPayerHstryService;
/** (sprt/sprt02/010-main) .
* @return /sprt/sprt02/010-main
/** 민원 상담 내용 대장 서비스 */
@Resource(name="sprt04Service")
private Sprt04Service sprt04Service;
/** (fims/sprt/sprt02/010-main) .
* {@link #getCrdnInfo(SprtQuery) } .
* @return fims/sprt/sprt02010
*/
public ModelAndView indivTotalInfoMain(SprtQuery req) {
DataObject totalInfo = sprt02Service.getCrdnInfo(req);
@ -128,7 +134,7 @@ public class Sprt02Controller extends ApplicationController {
exclQuery.setCallPurpose(req.getCallPurpose());
}
exclQuery.setCrdnId(req.getCrdnId());
exclQuery.setDelYn("N");
exclQuery.setDelYn(req.getDelYn());
DataObject opnnSbmsn = excl02Service.getOpnnSbmsnInfo(exclQuery);
@ -160,14 +166,14 @@ public class Sprt02Controller extends ApplicationController {
sndb01Query.setCallPurpose(req.getCallPurpose());
}
sndb01Query.setCrdnId(req.getCrdnId());
sndb01Query.setDelYn("N");
sndb01Query.setDelYn(req.getDelYn());
sndb01Query.setOrderBy("SD.REG_DT, SD.SNDNG_YMD DESC");
List<?> sndngDtl = sndb01Service.getSndngDtls(sndb01Query);
// 공시송달 정보
sndb01Query.setCrdnId(req.getCrdnId());
sndb01Query.setDelYn("N");
sndb01Query.setDelYn(req.getDelYn());
sndb01Query.setOrderBy("SV.REG_DT DESC");
List<?> svbtc = sndb01Service.getSvbtcs(sndb01Query);
@ -203,7 +209,7 @@ public class Sprt02Controller extends ApplicationController {
levyQuery.setCallPurpose(req.getCallPurpose());
}
levyQuery.setCrdnId(req.getCrdnId());
levyQuery.setDelYn("N");
levyQuery.setDelYn(req.getDelYn());
levyQuery.setOrderBy("RDUCT_ID DESC"); // 정렬
DataObject rduct = levy02Service.getRductInfo(levyQuery);
@ -217,7 +223,7 @@ public class Sprt02Controller extends ApplicationController {
exclQuery.setCallPurpose(req.getCallPurpose());
}
exclQuery.setCrdnId(req.getCrdnId());
exclQuery.setDelYn("N");
exclQuery.setDelYn(req.getDelYn());
exclQuery.setOrderBy("LEVY_EXCL_ID DESC"); // 정렬
DataObject levyExcl = excl01Service.getLevyExclInfo(exclQuery);
@ -270,7 +276,7 @@ public class Sprt02Controller extends ApplicationController {
levyQuery.setCallPurpose(req.getCallPurpose());
}
levyQuery.setCrdnId(req.getCrdnId());
levyQuery.setDelYn("N");
levyQuery.setDelYn(req.getDelYn());
levyQuery.setOrderBy("LEVY_ID DESC"); // 정렬
DataObject levy = levy01Service.getLevyInfo(levyQuery);
@ -302,7 +308,7 @@ public class Sprt02Controller extends ApplicationController {
rcvmQuery.setCallPurpose(req.getCallPurpose());
}
rcvmQuery.setCrdnId(req.getCrdnId());
rcvmQuery.setDelYn("N");
rcvmQuery.setDelYn(req.getDelYn());
rcvmQuery.setOrderBy("R.RCVMT_SN DESC");
List<DataObject> rcvmt = rcvm01Service.getRcvmts(rcvmQuery);
@ -318,7 +324,7 @@ public class Sprt02Controller extends ApplicationController {
;
}
/** ID .
/** ID .
* @param crdnId ID
* @return fims/sprt/sprt02080-main jsonView
* <pre><code> {
@ -327,12 +333,23 @@ public class Sprt02Controller extends ApplicationController {
*/
@RequestMapping(name="민원 상담 정보 조회", value="/080/info.do")
public ModelAndView getCvlcptDscsnCnInfo(SprtQuery req) {
if (req.getCallPurpose() == null) {
req.setCallPurpose("view");
} else {
req.setCallPurpose(req.getCallPurpose());
}
req.setOrderBy("CDC.CVLCPT_DSCSN_ID DESC");
List<DataObject> cvlcptDscsnCn = sprt04Service.getCvlcptDscsnCns(req);
boolean json = jsonResponse();
ModelAndView mav = new ModelAndView(json ? "jsonView" : "fims/sprt/sprt02080-info");
return mav
.addObject("pageName", "sprt02080")
.addObject("infoPrefix", "cvlcptDscsnCn") // prefix
.addObject("cvlcptDscsnCn", json ? cvlcptDscsnCn : toJson(cvlcptDscsnCn)) // 민원상담내용 정보
;
}

@ -0,0 +1,107 @@
package cokr.xit.fims.sprt.web;
import java.util.List;
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.web.ApplicationController;
import cokr.xit.fims.sprt.CvlcptDscsnCn;
import cokr.xit.fims.sprt.SprtQuery;
import cokr.xit.fims.sprt.service.Sprt04Service;
/**
*
* <p> :
*
* <pre>
* ============ ============
* 2023-09-05 JoJH
* ================================
* </pre>
*/
public class Sprt04Controller extends ApplicationController {
/**민원 상담 내용 서비스*/
@Resource(name = "sprt04Service")
private Sprt04Service sprt04Service;
/** (fims/sprt/sprt04/010-main) .
*
* @return /fims/sprt/sprt04010
*/
public ModelAndView civilComplaintDiscussionContentMain() {
ModelAndView mav = new ModelAndView("fims/sprt/sprt04010-main");
return mav.addObject("pageName", "sprt04010") // View(jsp)에서 사용할 id 뒤에 붙일 suffix
.addObject("infoPrefix", "cvlcptDscsnCn") // prefix
;
}
/** .<br />
* {@link CvlcptDscsnCnService#getCvlcptDscsnCnList(CvlcptDscsnCnQuery)}
* @param req
* @return jsonView
* <pre><code> {
* "cvlcptDscsnCnList": [ ]
* "cvlcptDscsnCnStart":
* "cvlcptDscsnCnFetch":
* "cvlcptDscsnCnTotal":
* }</code></pre>
*/
@RequestMapping(name = "민원 상담 내용 조회", value = "/list.do")
public ModelAndView getCvlcptDscsnCnList(SprtQuery req) {
List<?> result = sprt04Service.getCvlcptDscsnCnList(setFetchSize(req));
return setCollectionInfo(new ModelAndView("jsonView"), result, "cvlcptDscsnCn");
}
/** .
* @param cvlcptDscsnCn
* @return jsonView
* <pre><code> {
* "saved": true, false
* }</code></pre>
*/
@PostMapping(name = "민원 상담 내용 등록", value = "/create.do")
public ModelAndView create(CvlcptDscsnCn cvlcptDscsnCn) {
boolean saved = sprt04Service.create(cvlcptDscsnCn);
return new ModelAndView("jsonView")
.addObject("saved", saved);
}
/** .
* @param cvlcptDscsnCn
* @return jsonView
* <pre><code> {
* "saved": true, false
* }</code></pre>
*/
@PostMapping(name = "민원 상담 내용 수정", value = "/update.do")
public ModelAndView update(CvlcptDscsnCn cvlcptDscsnCn) {
boolean saved = sprt04Service.update(cvlcptDscsnCn);
return new ModelAndView("jsonView")
.addObject("saved", saved);
}
/** .
* @param cvlcptDscsnCnIDs
* @return jsonView
* <pre><code> {
* "affected":
* "saved": true, false
* }</code></pre>
*/
@PostMapping(name = "민원 상담 내용 제거", value = "/remove.do")
public ModelAndView remove(CvlcptDscsnCn cvlcptDscsnCn) {
boolean saved = sprt04Service.remove(cvlcptDscsnCn);
return new ModelAndView("jsonView")
.addObject("saved", saved);
}
}

@ -202,52 +202,52 @@ public class CmnController {
}
@Controller
@RequestMapping(name="부과제외 관리", value="/excl/excl01")
@RequestMapping(name = "부과제외 관리", value = "/excl/excl01")
class Excl01Controller extends cokr.xit.fims.excl.web.Excl01Controller {
/** .
* @return fims/excl/excl01010-main
*/
@Override
@RequestMapping(name="부과제외 관리 메인", value="/010/main.do")
@RequestMapping(name = "부과제외 관리 메인", value = "/010/main.do")
public ModelAndView levyExclusionMain() {
return super.levyExclusionMain();
}
}
@Controller
@RequestMapping(name="의견제출 관리", value="/excl/excl02")
@RequestMapping(name = "의견제출 관리", value = "/excl/excl02")
class Excl02Controller extends cokr.xit.fims.excl.web.Excl02Controller {
/** .
* @return fims/excl/excl02010-main
*/
@Override
@RequestMapping(name="의견제출 관리 메인", value="/010/main.do")
@RequestMapping(name = "의견제출 관리 메인", value = "/010/main.do")
public ModelAndView opinionSubmissionMain() {
return super.opinionSubmissionMain();
}
}
@Controller
@RequestMapping(name="단속 재등록 관리", value="/excl/excl03")
@RequestMapping(name = "단속 재등록 관리", value = "/excl/excl03")
class Excl03Controller extends cokr.xit.fims.excl.web.Excl03Controller {
/** .
* @return fims/excl/excl03010-main
*/
@Override
@RequestMapping(name="단속 재등록 관리 메인", value="/010/main.do")
@RequestMapping(name = "단속 재등록 관리 메인", value = "/010/main.do")
public ModelAndView crackdownReRegistrationMain() {
return super.crackdownReRegistrationMain();
}
}
@Controller
@RequestMapping(name="발송 관리", value="/sndb/sndb01")
@RequestMapping(name = "발송 관리", value = "/sndb/sndb01")
class Sndb01Controller extends cokr.xit.fims.sndb.web.Sndb01Controller {
/** .
* @return fims/sndb/sndb01010-main
*/
@Override
@RequestMapping(name="계도장 발송 대상 자료", value="/010/main.do")
@RequestMapping(name = "계도장 발송 대상 자료", value = "/010/main.do")
public ModelAndView warningSendingTargetMain() {
return super.warningSendingTargetMain();
}
@ -256,29 +256,42 @@ public class CmnController {
* @return fims/sndb/sndb01020-main
*/
@Override
@RequestMapping(name="계도장 발송 현황", value="/020/main.do")
@RequestMapping(name = "계도장 발송 현황", value = "/020/main.do")
public ModelAndView warningSendingStatusMain() {
return super.warningSendingStatusMain();
}
}
@Controller
@RequestMapping(name="통합조회", value="/sprt/sprt01")
@RequestMapping(name = "통합 조회", value = "/sprt/sprt01")
class Sprt01Controller extends cokr.xit.fims.sprt.web.Sprt01Controller {
/** .
* @return fims/sprt/sprt01010-main
*/
@Override
@RequestMapping(name="통합조회 메인", value="/010/main.do")
public ModelAndView integratedInquireMain() {
return super.integratedInquireMain();
@RequestMapping(name = "통합조회 메인", value = "/010/main.do")
public ModelAndView unityInquireMain() {
return super.unityInquireMain();
}
}
@Controller
@RequestMapping(name="개별총정보", value="/sprt/sprt02")
@RequestMapping(name = "개별 총정보", value = "/sprt/sprt02")
class Sprt02Controller extends cokr.xit.fims.sprt.web.Sprt02Controller {
}
@Controller
@RequestMapping(name = "민원 상담 내용", value = "/sprt/sprt04")
class Sprt04Controller extends cokr.xit.fims.sprt.web.Sprt04Controller {
/** .
* @return fims/sprt/sprt04010-main
*/
@Override
@RequestMapping(name = "민원 상담 내용 메인", value = "/010/main.do")
public ModelAndView civilComplaintDiscussionContentMain() {
return super.civilComplaintDiscussionContentMain();
}
}
}

@ -0,0 +1,145 @@
<?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.sprt.dao.CvlcptDscsnCnMapper">
<!-- 민원 상담 내용 정보 매퍼
========== 변경 이력 ==========
2023-09-05 JoJH 최초 작성
============================ -->
<resultMap id="cvlcptDscsnCnRow" type="cokr.xit.fims.sprt.CvlcptDscsnCn">
<result property="cvlcptDscsnId" column="CVLCPT_DSCSN_ID" /> <!-- 민원 상담 ID -->
<result property="sggCd" column="SGG_CD" /> <!-- 시군구 코드 -->
<result property="taskSeCd" column="TASK_SE_CD" /> <!-- 업무 구분 코드 -->
<result property="cvlcptSeCd" column="CVLCPT_SE_CD" /> <!-- 민원 구분 코드 -->
<result property="crdnId" column="CRDN_ID" /> <!-- 단속 ID -->
<result property="vhrno" column="VHRNO" /> <!-- 차량번호 -->
<result property="dscsnCn" column="DSCSN_CN" /> <!-- 상담 내용 -->
<result property="weekNm" column="WEEK_NM" /> <!-- 요일 명 -->
<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 CDC.CVLCPT_DSCSN_ID /* 민원 상담 ID */
, CDC.SGG_CD /* 시군구 코드 */
, CDC.TASK_SE_CD /* 업무 구분 코드 */
, CDC.CVLCPT_SE_CD /* 민원 구분 코드 */
, CDC.CRDN_ID /* 단속 ID */
, CDC.VHRNO /* 차량번호 */
, CDC.DSCSN_CN /* 상담 내용 */
, CDC.WEEK_NM /* 요일 명 */
, CDC.DEL_YN /* 삭제 여부 */
, CDC.REG_DT /* 등록 일시 */
, CDC.RGTR /* 등록자 */
, (SELECT USER_NM FROM TB_USER X WHERE X.USER_ID = CDC.RGTR) AS RGTR_NM /* 등록자 명 */
, CDC.MDFCN_DT /* 수정 일시 */
, CDC.MDFR /* 수정자 */
, (SELECT USER_NM FROM TB_USER X WHERE X.USER_ID = CDC.MDFR) AS MDFR_NM /* 수정자 명 */
, CDC.DEL_DT /* 삭제 일시 */
, CDC.DLTR /* 삭제자 */
, (SELECT USER_NM FROM TB_USER X WHERE X.USER_ID = CDC.DLTR) AS DLTR_NM /* 삭제자 명 */
, CDC.DEL_RSN /* 삭제 사유 */
FROM TB_CVLCPT_DSCSN_CN CDC
</sql>
<select id="selectCvlcptDscsnCnList" parameterType="map" resultType="dataobject">/* 민원 상담 내용 목록 조회(cvlcptDscsnCnMapper.selectCvlcptDscsnCnList) */
<include refid="utility.paging-prefix" />
<include refid="select" />
<where>
</where>
<include refid="utility.orderBy" />
<include refid="utility.paging-suffix" />
</select>
<select id="selectCvlcptDscsnCns" parameterType="map" resultType="dataobject">/* 민원 상담 내용 객체 가져오기(cvlcptDscsnCnMapper.selectCvlcptDscsnCns) */
<include refid="select" />
<where>
<if test="cvlcptDscsnId != null">
AND CDC.CVLCPT_DSCSN_ID = #{rductId} /* 감경 ID */
</if>
<choose>
<when test="inquiryCondition == 'crdnId_vhrno'">
AND (CDC.CRDN_ID = #{crdnId} OR CDC.VHRNO = #{vhrno})
</when>
<otherwise>
<if test="crdnId != null">
AND CDC.CRDN_ID = #{crdnId} /* 단속 ID */
</if>
<if test="vhrno != null">
AND CDC.VHRNO = #{vhrno} /* 차량번호 */
</if>
</otherwise>
</choose>
<if test="delYn != null">
AND CDC.DEL_YN = #{delYn} /* 삭제 여부 */
</if>
</where>
<include refid="utility.orderBy" />
</select>
<insert id="insertCvlcptDscsnCn" parameterType="map">/* 민원 상담 내용 등록(cvlcptDscsnCnMapper.insertCvlcptDscsnCn) */
<selectKey resultType="string" keyProperty="cvlcptDscsnCn.cvlcptDscsnId" keyColumn="NEW_ID" order="BEFORE">
SELECT CONCAT(DATE_FORMAT(CURRENT_DATE, '%Y'), LPAD(CAST(IFNULL(MAX(SUBSTRING(CVLCPT_DSCSN_ID, 5)) + 1, 1) AS INT), 16, '0')) AS NEW_ID
FROM TB_CVLCPT_DSCSN_CN
WHERE CVLCPT_DSCSN_ID LIKE CONCAT(DATE_FORMAT(CURRENT_DATE, '%Y'), '%')
</selectKey>
INSERT
INTO TB_CVLCPT_DSCSN_CN (
CVLCPT_DSCSN_ID /* 민원 상담 ID */
, SGG_CD /* 시군구 코드 */
, TASK_SE_CD /* 업무 구분 코드 */
, CVLCPT_SE_CD /* 민원 구분 코드 */
, CRDN_ID /* 단속 ID */
, VHRNO /* 차량번호 */
, DSCSN_CN /* 상담 내용 */
, WEEK_NM /* 요일 명 */
, DEL_YN /* 삭제 여부 */
, REG_DT /* 등록 일시 */
, RGTR /* 등록자 */
, MDFCN_DT /* 수정 일시 */
, MDFR /* 수정자 */
)
VALUES (
#{cvlcptDscsnCn.cvlcptDscsnId} /* 민원 상담 ID */
, #{cvlcptDscsnCn.sggCd} /* 시군구 코드 */
, #{cvlcptDscsnCn.taskSeCd} /* 업무 구분 코드 */
, #{cvlcptDscsnCn.cvlcptSeCd} /* 민원 구분 코드 */
, #{cvlcptDscsnCn.crdnId} /* 단속 ID */
, #{cvlcptDscsnCn.vhrno} /* 차량번호 */
, #{cvlcptDscsnCn.dscsnCn} /* 상담 내용 */
, #{cvlcptDscsnCn.weekNm} /* 요일 명 */
, #{cvlcptDscsnCn.delYn} /* 삭제 여부 */
, #{cvlcptDscsnCn.createdAt} /* 등록 일시 */
, #{cvlcptDscsnCn.createdBy} /* 등록자 */
, #{cvlcptDscsnCn.lastModified} /* 수정 일시 */
, #{cvlcptDscsnCn.modifiedBy} /* 수정자 */
)
</insert>
<update id="updateCvlcptDscsnCn" parameterType="map">/* 민원 상담 내용 수정(cvlcptDscsnCnMapper.updateCvlcptDscsnCn) */
UPDATE TB_CVLCPT_DSCSN_CN
SET DSCSN_CN = #{cvlcptDscsnCn.dscsnCn} /* 상담 내용 */
, MDFCN_DT = #{cvlcptDscsnCn.lastModified} /* 수정 일시 */
, MDFR = #{cvlcptDscsnCn.modifiedBy} /* 수정자 */
WHERE CVLCPT_DSCSN_ID = #{cvlcptDscsnCn.cvlcptDscsnId} /* 민원 상담 ID */
AND DEL_YN = 'N' /* 삭제 여부 */
</update>
<update id="deleteCvlcptDscsnCn" parameterType="map">/* 민원 상담 내용 삭제(cvlcptDscsnCnMapper.deleteCvlcptDscsnCn) */
UPDATE TB_CVLCPT_DSCSN_CN
SET DEL_YN = 'Y' /* 삭제 여부 */
, DEL_DT = #{cvlcptDscsnCn.lastModified} /* 삭제 일시 */
, DLTR = #{cvlcptDscsnCn.modifiedBy} /* 삭제자 */
, DEL_RSN = #{cvlcptDscsnCn.delRsn} /* 삭제 사유 */
WHERE CVLCPT_DSCSN_ID = #{cvlcptDscsnCn.cvlcptDscsnId} /* 민원 상담 ID */
AND DEL_YN = 'N' /* 삭제 여부 */
</update>
</mapper>

@ -1,12 +0,0 @@
<?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.sprt.dao.Sprt01Mapper">
<select id="selectTotalDataInfo" parameterType="String" resultType="dataobject">
/* 개별총정보 조회(sprt01Mapper.selectTotalDataInfo) */
SELECT *
FROM TB_CRDN
WHERE CRDN_ID = #{crdnId}
</select>
</mapper>

@ -1,6 +1,6 @@
<?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.sprt.dao.Sprt02Mapper">
<mapper namespace="cokr.xit.fims.sprt.dao.TotalInfoMapper">
<!-- 개별총정보 매퍼
========== 변경 이력 ==========

@ -0,0 +1,175 @@
<?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.sprt.dao.UnityInqMapper">
<sql id="select">
SELECT C.CRDN_ID /* 단속 ID */
, C.SGG_CD /* 시군구 코드 */
, C.TASK_SE_CD /* 업무 구분 코드 */
, (SELECT FN_GET_CODE_NM('FIM054', C.TASK_SE_CD) FROM DUAL) AS TASK_SE_NM /* 업무 구분 코드 명 */
, 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.CVLCPT_LINK_YN /* 민원 연계 여부 */
, C.LINK_TBL_NM /* 연계 테이블 명 */
, C.LINK_ID /* 연계 ID */
, C.CRDN_YMD /* 단속 일자 */
, C.CRDN_TM /* 단속 시각 */
, (CONCAT(C.CRDN_YMD, C.CRDN_TM)) AS CRDN_YMD_TM /* 단속 일시 */
, C.VHRNO /* 차량번호 */
, C.CRDN_STDG_NM /* 단속 법정동 명 */
, C.CRDN_ROAD_NM /* 단속 도로 명 */
, C.CRDN_PLC /* 단속 장소 */
, C.VLTN_ID /* 위반 ID */
, C.GPS_X /* GPS X */
, C.GPS_Y /* GPS Y */
, C.ATCH_FILE_CNT /* 첨부 파일 수 */
, C.VIN /* 차대번호 */
, C.VHCL_NM /* 차량 명 */
, C.VHCL_COLOR /* 차량 색상 */
, C.FFNLG_CRDN_AMT /* 과태료 단속 금액 */
, C.FFNLG_RDUCT_RT /* 과태료 감경 율 */
, C.FFNLG_AMT /* 과태료 금액 */
, C.ADVNTCE_BGNG_YMD /* 사전통지 시작 일자 */
, C.ADVNTCE_DUDT_YMD /* 사전통지 납기 일자 */
, C.ADVNTCE_AMT /* 사전통지 금액 */
, C.OPNN_SBMSN_YN /* 의견 제출 여부 */
, C.ETC_CN /* 기타 내용 */
, C.CRDN_STTS_CD /* 단속 상태 코드 */
, (SELECT FN_GET_CODE_NM('FIM010', C.CRDN_STTS_CD) FROM DUAL) AS CRDN_STTS_NM /* 단속 상태 명 */
, C.CRDN_STTS_CHG_DT /* 단속 상태 변경 일시 */
, C.BFR_CRDN_ID /* 이전 단속 ID */
, C.DEL_YN /* 삭제 여부 */
, C.REG_DT /* 등록 일시 */
, C.RGTR /* 등록자 */
, (SELECT USER_NM FROM TB_USER X WHERE X.USER_ID = C.RGTR) AS RGTR_NM /* 등록자 명 */
, C.MDFCN_DT /* 수정 일시 */
, C.MDFR /* 수정자 */
, (SELECT USER_NM FROM TB_USER X WHERE X.USER_ID = C.MDFR) AS MDFR_NM /* 수정자 명 */
, C.DEL_DT /* 삭제 일시 */
, C.DLTR /* 삭제자 */
, (SELECT USER_NM FROM TB_USER X WHERE X.USER_ID = C.DLTR) AS DLTR_NM /* 삭제자 명 */
, C.DEL_RSN /* 삭제 사유 */
, CA.CRDN_SE_CD /* 단속 구분 코드 */
, (SELECT FN_GET_CODE_NM('FIM002', CA.CRDN_SE_CD) FROM DUAL) AS CRDN_SE_NM /* 단속 구분 명 */
, CA.TEAM_ID /* 조 ID */
, CA.DTL_CRDN_PLC /* 상세 단속 장소 */
, CA.CRDN_SPAREA_CD /* 단속 특별구역 코드 */
, (SELECT FN_GET_CODE_NM('FIM007', CA.CRDN_SPAREA_CD) FROM DUAL) AS CRDN_SPAREA_NM /* 단속 특별구역 명 */
, CA.CRDN_BGNG_TM /* 단속 시작 시각 */
, CA.CRDN_END_TM /* 단속 종료 시각 */
, CA.CRDN_SN /* 단속 일련번호 */
, CA.MOSC_X /* 모자이크 X */
, CA.MOSC_Y /* 모자이크 Y */
, CA.TOWNG_YN /* 견인 여부 */
, (SELECT FN_GET_CODE_NM('FIM006', CA.TOWNG_YN) FROM DUAL) AS TOWNG_YN_NM /* 견인 여부 명 */
, CA.USE_FUEL_CD /* 사용 연료 코드 */
, (SELECT FN_GET_CODE_NM('LVS005', CA.USE_FUEL_CD) FROM DUAL) AS USE_FUEL_NM /* 사용 연료 명 */
, CA.FFNLG_CARMDL_CD /* 과태료 차종 코드 */
, (SELECT FN_GET_CODE_NM('FIM009', CA.FFNLG_CARMDL_CD) FROM DUAL) AS FFNLG_CARMDL_NM /* 과태료 차종 명 */
, CA.PARKNG_PSBLTY_RSLT_CD /* 주차 가능 결과 코드 */
, (SELECT FN_GET_CODE_NM('FIM034', CA.PARKNG_PSBLTY_RSLT_CD) FROM DUAL) AS PARKNG_PSBLTY_RSLT_NM/* 주차 가능 결과 명 */
, CA.VLTN_NMTM /* 위반 횟수 */
, CA.OVTIME_YN /* 시간외 여부 */
, (SELECT FN_GET_CODE_NM('FIM006', CA.OVTIME_YN) FROM DUAL) AS OVTIME_YN_NM /* 시간외 여부 명 */
, CA.OVTIME_PRTTN_YN /* 시간외 분할 여부 */
, (SELECT FN_GET_CODE_NM('FIM006', CA.OVTIME_PRTTN_YN) FROM DUAL) AS OVTIME_PRTTN_YN_NM /* 시간외 분할 여부 명 */
, P.RTPYR_ID /* 납부자 ID */
, P.RTPYR_INPT_SE_CD /* 납부자 입력 구분 코드 */
, P.RTPYR_SE_CD /* 납부자 구분 코드 */
, (SELECT FN_GET_CODE_NM('FIM011', P.RTPYR_SE_CD) FROM DUAL) AS RTPYR_SE_NM /* 납부자 구분 명 */
, P.RTPYR_NO /* 납부자 번호 */
, P.RTPYR_NM /* 납부자 명 */
, P.RTPYR_TELNO /* 납부자 전화번호 */
, P.RTPYR_MBL_TELNO /* 납부자 휴대 전화번호 */
, P.RTPYR_EML /* 납부자 이메일 */
, P.RTPYR_STTS_CD /* 납부자 상태 코드 */
, (SELECT FN_GET_CODE_NM('FIM014', P.RTPYR_STTS_CD) FROM DUAL) AS RTPYR_STTS_NM /* 납부자 상태 명 */
, P.ADDR_SE_CD /* 주소 구분 코드 */
, (SELECT FN_GET_CODE_NM('FIM013', P.ADDR_SE_CD) FROM DUAL) AS ADDR_SE_NM /* 주소 구분 명 */
, P.ZIP /* 우편번호 */
, P.ADDR /* 주소 */
, P.DTL_ADDR /* 상세 주소 */
, L.LEVY_ID /* 부과 ID */
, L.INST_CD /* 기관 코드 */
, L.DEPT_CD /* 부서 코드 */
, L.FYR /* 회계 연도 */
, L.ACNTG_SE /* 회계 구분 */
, L.TXITM_CD /* 세목 코드 */
, L.TXITM_NM /* 세목 명 */
, L.LEVY_NO /* 부과 번호 */
, L.INSPY_SN /* 분납 순번 */
, (CONCAT(L.FYR, '-', L.LEVY_NO)) AS GOJI_NO /* 고지번호 */
, L.LEVY_SE_NM /* 부과 구분 명 */
, L.RCVMT_SE_NM /* 수납 구분 명 */
, L.LEVY_PCPTAX /* 부과 본세 */
, L.LEVY_ADAMT /* 부과 가산금 */
, L.INSPY_INT /* 분납 이자 */
, L.LEVY_PCPTAX + L.LEVY_ADAMT + L.INSPY_INT AS LEVY_AMT /* 부과금액 */
, L.RCVMT_PCPTAX /* 수납 본세 */
, L.RCVMT_ADAMT /* 수납 가산금 */
, L.RCVMT_PCPTAX + L.RCVMT_ADAMT AS RCVMT_AMT /* 수납 금액 */
, L.RDCAMT_PCPTAX /* 감액 본세 */
, L.RDCAMT_ADAMT /* 감액 가산금 */
, L.RDCAMT_PCPTAX + L.RDCAMT_ADAMT AS REDUC_AMT /* 감액 금액 */
, L.SUM_AMT /* 합계 금액 */
FROM TB_CRDN C /* 단속 대장 */
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_LEVY L ON (C.LEVY_ID = L.LEVY_ID) /* 부과 대장 */
</sql>
<select id="selectCvlcptDscsnCnList" parameterType="map" resultType="dataobject">/* 민원 상담 내용 목록 조회(cvlcptDscsnCnMapper.selectCvlcptDscsnCnList) */
<include refid="utility.paging-prefix" />
<include refid="select" />
<where>
<if test="vhrno != null">
AND C.VHRNO = #{vhrno} /* 차량번호 */
</if>
<if test="rtpyrNo != null">
AND C.RTPYR_NO = #{rtpyrNo} /* 납부자 번호 */
</if>
<if test="rtpyrNm != null">
AND P.RTPYR_NM = #{rtpyrNm} /* 납부자 명 */
</if>
<if test="fyr != null">
AND L.FYR = #{fyr} /* 회계연도 */
</if>
<if test="levyNo != null">
AND L.LEVY_NO = #{levyNo} /* 부과 번호 */
</if>
<if test="delYn != null">
AND C.DEL_YN = #{delYn} /* 삭제 여부 */
</if>
</where>
<include refid="utility.orderBy" />
<include refid="utility.paging-suffix" />
</select>
<select id="selectCvlcptDscsnCns" parameterType="map" resultType="dataobject">/* 민원 상담 내용 객체 가져오기(cvlcptDscsnCnMapper.selectCvlcptDscsnCns) */
<include refid="select" />
<where>
<if test="vhrno != null">
AND C.VHRNO = #{vhrno} /* 차량번호 */
</if>
<if test="rtpyrNo != null">
AND C.RTPYR_NO = #{rtpyrNo} /* 납부자 번호 */
</if>
<if test="rtpyrNm != null">
AND P.RTPYR_NM = #{rtpyrNm} /* 납부자 명 */
</if>
<if test="fyr != null">
AND L.FYR = #{fyr} /* 회계연도 */
</if>
<if test="levyNo != null">
AND L.LEVY_NO = #{levyNo} /* 부과 번호 */
</if>
<if test="delYn != null">
AND C.DEL_YN = #{delYn} /* 삭제 여부 */
</if>
</where>
<include refid="utility.orderBy" />
</select>
</mapper>

@ -78,8 +78,8 @@
</button>
</li>
<li class="nav-item">
<button type="button" class="nav-link" role="tab" data-bs-toggle="tab" data-bs-target="#cvlcptDscsnInfo"
aria-controls="cvlcptDscsnInfo" aria-selected="false" onClick="fnBtnCvlcptDscsnInfo${pageName}();">
<button type="button" class="nav-link" role="tab" data-bs-toggle="tab" data-bs-target="#cvlcptDscsnCnInfo"
aria-controls="cvlcptDscsnCnInfo" aria-selected="false" onClick="fnBtnCvlcptDscsnCnInfo${pageName}();">
민원상담 정보
</button>
</li>
@ -159,6 +159,7 @@
let params = {
callPurpose : "view"
, crdnId : crdnId
, delYn : "N"
};
ajax.get({
@ -182,6 +183,7 @@
let params = {
callPurpose : "view"
, crdnId : crdnId
, delYn : "N"
};
ajax.get({
@ -205,6 +207,7 @@
let params = {
callPurpose : "view"
, crdnId : crdnId
, delYn : "N"
};
ajax.get({
@ -228,6 +231,7 @@
let params = {
callPurpose : "view"
, crdnId : crdnId
, delYn : "N"
};
ajax.get({
@ -251,6 +255,7 @@
let params = {
callPurpose : "view"
, crdnId : crdnId
, delYn : "N"
};
ajax.get({
@ -274,6 +279,7 @@
let params = {
callPurpose : "view"
, crdnId : crdnId
, delYn : "N"
};
ajax.get({
@ -286,8 +292,30 @@
}
// 민원상담 정보
fnBtnCvlcptDscsnInfo${pageName} = () => {
fnBtnCvlcptDscsnCnInfo${pageName} = () => {
let crdnId = ${pageName}Control.dataset.getValue("CRDN_ID");
let vhrno = ${pageName}Control.dataset.getValue("VHRNO");
// 단속 ID 가 없다면.. return
if (crdnId == null || crdnId == "") {
return;
}
let params = {
callPurpose : "view"
, inquiryCondition : "crdnId_vhrno"
, crdnId : crdnId
, vhrno : vhrno
, delYn : "N"
};
ajax.get({
url : wctx.url("/sprt/sprt02/080/info.do")
, data : params || {}
, success : resp => {
$("#cvlcptDscsnCnInfo").html(resp);
}
});
}
/**************************************************************************

@ -7,7 +7,6 @@
<form id="frmEdit--${pageName}" name="frmEdit">
<!-- hidden -->
<input type="hidden" id="opnnId--${pageName}" name="opnnId" data-map="OPNN_ID" />
<input type="hidden" id="crdnId--${pageName}" name="crdnId" data-map="CRDN_ID" />
<div class="d-flex flex-row justify-content-evenly">
<!-- 화면 왼쪽 -->
@ -328,7 +327,8 @@
// 의견제출 수정
fnBtnOpnnSbmsnUpdate${pageName} = () => {
let opnnId = ${pageName}Control.dataset.getValue("OPNN_ID")
let opnnId = ${pageName}Control.dataset.getValue("OPNN_ID");
let crdnId = ${pageName}Control.dataset.getValue("CRDN_ID");
// 의견 ID 가 없다면.. return
if (opnnId == null || opnnId == "") {
@ -338,6 +338,7 @@
let params = {
callPurpose : "update"
, opnnId : opnnId
, crdnId : crdnId
};
${pageName}Control.getOpnnSbmsnInfo(params);
@ -346,6 +347,7 @@
// 의견제출 삭제
fnBtnOpnnSbmsnRemove${pageName} = () => {
let opnnId = ${pageName}Control.dataset.getValue("OPNN_ID");
let crdnId = ${pageName}Control.dataset.getValue("CRDN_ID");
// 의견 ID 가 없다면.. return
if (opnnId == null || opnnId == "") {
@ -355,6 +357,7 @@
let params = {
callPurpose : "remove"
, opnnId : opnnId
, crdnId : crdnId
};
dialog.alert({
@ -368,6 +371,7 @@
// 의견제출 심의
fnBtnOpnnSbmsnDlbrt${pageName} = () => {
let opnnId = ${pageName}Control.dataset.getValue("OPNN_ID");
let crdnId = ${pageName}Control.dataset.getValue("CRDN_ID");
// 의견제출 ID 가 없다면.. return
if (opnnId == null || opnnId == "") {
@ -377,6 +381,7 @@
let params = {
callPurpose : "update"
, opnnId : opnnId
, crdnId : crdnId
};
${pageName}Control.getOpnnSbmsnDlbrtInfo(params);
@ -384,7 +389,7 @@
// 심의의결서 출력
fnBtnDlbrtLtfrPrint${pageName} = () => {
alert("심의의결서 출력");
}
// 첨부파일 조회

@ -117,7 +117,6 @@
<!-- hidden -->
<input type="hidden" id="sndngDtlId--${pageName}" name="sndngDtlId" data-map="SNDNG_DTL_ID" />
<input type="hidden" id="sndngId--${pageName}" name="sndngId" data-map="SNDNG_ID" />
<input type="hidden" id="crdnId--${pageName}" name="crdnId" data-map="CRDN_ID" />
<div class="card">
<!-- 업무 버튼 -->
@ -325,32 +324,34 @@
**************************************************************************/
// 개별 발송 등록
fnBtnSndngCreate${pageName} = () => {
alert("개별 발송 등록");
}
// 개별 발송 삭제
fnBtnSndngRemove${pageName} = () => {
alert("개별 발송 삭제");
}
// 개별 반송 등록
fnBtnSndbkCreate${pageName} = () => {
alert("개별 반송 등록");
}
// 개별 반송 수정
fnBtnSndbkUpdate${pageName} = () => {
alert("개별 반송 수정");
}
// 개별 반송 등록
// 개별 반송 삭제
fnBtnSndbkRemove${pageName} = () => {
alert("개별 반송 삭제");
}
// 우편 종적 보기 참고 https://www.data.go.kr/dataset/15000390/openapi.do
fnBtnPostTraceView${pageName} = () => {
let rgNo = ${pageName}Control.dataset.getValue("RG_NO");
let rgNo = ${pageName}Dataset.getValue("RG_NO");
alert("우편 종적 보기");
}
/**************************************************************************

@ -28,7 +28,6 @@
<form id="frmEdit--${pageName}" name="frmEdit">
<!-- hidden -->
<input type="hidden" id="rductId--${pageName}" name="rductId" data-map="RDUCT_ID" />
<input type="hidden" id="crdnId--${pageName}" name="crdnId" data-map="CRDN_ID" />
<div class="row g-1">
<!-- 감경 일자 -->

@ -7,7 +7,6 @@
<form id="frmEdit--${pageName}" name="frmEdit">
<!-- hidden -->
<input type="hidden" id="levyId--${pageName}" name="levyId" data-map="LEVY_ID" />
<input type="hidden" id="crdnId--${pageName}" name="crdnId" data-map="CRDN_ID" />
<div class="d-flex flex-row justify-content-evenly">
<!-- 부과 정보 -->
@ -157,9 +156,8 @@
</div> <!-- 부과 정보 <div class="card"> -->
</div> <!-- <div class="col-xl-9 mx-1"> -->
<!-- 화면 오른쪽 -->
<!-- 가상계좌 정보 -->
<div class="col-xl-3 mx-0">
<!-- 심의 정보 -->
<div class="card">
<!-- 업무 버튼 -->
<div class="container-page-btn">
@ -167,11 +165,6 @@
</div> <!-- <div class="container-page-btn"> -->
<div class="row g-1">
<!-- 전자납부번호 -->
<div class="col-md-12">
<label for="epayno--${pageName}" class="w-px-120 bg-lighter pe-2 col-form-label text-sm-end">전자납부번호</label>
<input type="text" class="form-control w-50" id="epayno--${pageName}" name="epayno" data-map="EPAYNO" readonly />
</div>
<!-- 가상 계좌번호 -->
<div class="col-md-12">
<label for="vrActno--${pageName}" class="w-px-120 bg-lighter pe-2 col-form-label text-sm-end">가상계좌번호</label>
@ -180,9 +173,14 @@
<textarea type="text" class="form-control w-100" id="vrActno--${pageName}" name="vrActno" data-map="VR_ACTNO" rows="12" >
</textarea>
</div>
<!-- 전자납부번호 -->
<div class="col-md-12">
<label for="epayno--${pageName}" class="w-px-120 bg-lighter pe-2 col-form-label text-sm-end">전자납부번호</label>
<input type="text" class="form-control w-65" id="epayno--${pageName}" name="epayno" data-map="EPAYNO" readonly />
</div>
</div> <!-- 심의 정보 <div class="card"> -->
</div> <!-- <div class="col-xl-3 mx-0"> -->
</div>
</div> <!-- <div class="card"> -->
</div> <!-- 가상계좌 정보 <div class="col-xl-3 mx-0"> -->
</div> <!-- <div class="d-flex flex-row justify-content-evenly"> -->
</form>

@ -17,7 +17,6 @@
<!-- hidden -->
<input type="hidden" id="rcvmtId--${pageName}" name="rcvmtId" data-map="RCVMT_ID" />
<input type="hidden" id="levyId--${pageName}" name="levyId" data-map="LEVY_ID" />
<input type="hidden" id="crdnId--${pageName}" name="crdnId" data-map="CRDN_ID" />
<div class="row g-1">
<!-- 회계 연도 -->

@ -0,0 +1,455 @@
<%@ page language="java" contentType="text/html; charset=UTF-8" pageEncoding="UTF-8" isELIgnored="false" session="false"%>
<%@ include file="/WEB-INF/jsp/include/taglib.jsp"%>
<!-- 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="opnnId--${pageName}" name="opnnId" data-map="OPNN_ID" />
<div class="d-flex flex-row justify-content-evenly">
<!-- 화면 왼쪽 -->
<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>
<!-- 버튼 우측 정렬 -->
<span class="container-window-btn-right">
<button type="button" class="btn btn-primary" id="btnOpnnSbmsnCreate--${pageName}" title="의견제출 등록" onclick="fnBtnOpnnSbmsnCreate${pageName}();">
의견제출 등록
</button>
<button type="button" class="btn btn-primary" id="btnOpnnSbmsnUpdate--${pageName}" title="의견제출 수정" onclick="fnBtnOpnnSbmsnUpdate${pageName}();">
의견제출 수정
</button>
<button type="button" class="btn btn-primary" id="btnOpnnSbmsnRemove--${pageName}" title="의견제출 삭제" onclick="fnBtnOpnnSbmsnRemove${pageName}();">
의견제출 삭제
</button>
<button type="button" class="btn btn-primary" id="btnDlbrtLtfrPrint--${pageName}" title="심의의결서 출력" onclick="fnBtnDlbrtLtfrPrint${pageName}();">
심의의결서 출력
</button>
</span> <!-- <span class="container-window-btn-right"> -->
</div> <!-- <div class="container-page-btn"> -->
<div class="row g-1">
<!-- 접수 번호 -->
<div class="col-md-4">
<label for="rcptNo--${pageName}" class="w-px-120 bg-lighter pe-2 col-form-label text-sm-end">접수 번호</label>
<input type="text" class="form-control w-30" id="rcptNo--${pageName}" name="rcptNo" data-map="RCPT_NO" readonly />
</div>
<!-- 접수 일자 -->
<div class="col-md-4">
<label for="rcptYmd--${pageName}" class="w-px-120 bg-lighter pe-2 col-form-label text-sm-end">접수 일자</label>
<input type="text" class="form-control w-30" id="rcptYmd--${pageName}" name="rcptYmd" data-map="RCPT_YMD" readonly />
</div>
<!-- 접수 구분 -->
<div class="col-md-4">
<label for="rcptSeNm--${pageName}" class="w-px-120 bg-lighter pe-2 col-form-label text-sm-end">접수 구분</label>
<input type="text" class="form-control w-30" id="rcptSeNm--${pageName}" name="rcptSeNm" data-map="RCPT_SE_NM" readonly />
</div>
<!-- 진술자 이름 -->
<div class="col-md-4">
<label for="sttrNm--${pageName}" class="w-px-120 bg-lighter pe-2 col-form-label text-sm-end">성명</label>
<input type="text" class="form-control w-40" id="sttrNm--${pageName}" name="sttrNm" data-map="STTR_NM" readonly />
</div>
<!-- 진술자 생년월일 -->
<div class="col-md-4">
<label for="sttrBrdt--${pageName}" class="w-px-120 bg-lighter pe-2 col-form-label text-sm-end">생년월일</label>
<input type="text" class="form-control w-25" id="sttrBrdt--${pageName}" name="sttrBrdt" data-map="STTR_BRDT_FORMAT" placeholder="YY-MM-DD" readonly />
</div>
<!-- 소유주 관계 구분 명 -->
<div class="col-md-4">
<label for="ownrRelNm--${pageName}" class="w-px-120 bg-lighter pe-2 col-form-label text-sm-end">소유주 관계 구분</label>
<input type="text" class="form-control w-40" id="ownrRelNm--${pageName}" name="ownrRelNm" data-map="OWNR_REL_NM" readonly />
</div>
<!-- 진술자 주소 --><!-- 진술자 우편번호 -->
<div class="col-md-12">
<label for="sttrAddr--${pageName}" class="w-px-120 bg-lighter pe-2 col-form-label text-sm-end">주소</label>
<input type="text" class="form-control w-80" id="sttrAddr--${pageName}" name="sttrAddr" data-map="STTR_ADDR" readonly />
<input type="text" class="form-control w-px-75" id="sttrZip--${pageName}" name="sttrZip" data-map="STTR_ZIP" readonly />
</div>
<!-- 진술자 상세주소 -->
<div class="col-md-12">
<label for="sttrDaddr--${pageName}" class="w-px-120 bg-lighter pe-2 col-form-label text-sm-end">상세 주소</label>
<input type="text" class="form-control w-87" id="sttrDaddr--${pageName}" name="sttrDaddr" data-map="STTR_DADDR" readonly />
</div>
<!-- 진술자 연락처 -->
<div class="col-md-4">
<label for="sttrCttpc--${pageName}" class="w-px-120 bg-lighter pe-2 col-form-label text-sm-end">연락처</label>
<input type="text" class="form-control w-35" id="sttrCttpc--${pageName}" name="sttrCttpc" data-map="STTR_CTTPC" readonly />
</div>
<!-- 진술자 이메일 -->
<div class="col-md-8">
<label for="sttrEml--${pageName}" class="w-px-120 bg-lighter pe-2 col-form-label text-sm-end">이메일</label>
<input type="text" class="form-control w-35" id="sttrEml--${pageName}" name="sttrEml" data-map="STTR_EML" readonly />
</div>
<!-- 의견 제출 내용 -->
<div class="col-md-12">
<label for="opnnSbmsnCn--${pageName}" class="w-px-120 bg-lighter pe-2 col-form-label text-sm-end">의견제출 내용</label>
<textarea type="text" class="form-control w-87" id="opnnSbmsnCn--${pageName}" name="opnnSbmsnCn" data-map="OPNN_SBMSN_CN" rows="4" data-maxlengthb="4000" readonly>
</textarea>
</div>
<!-- 의견 제출 구분 명 -->
<div class="col-md-4">
<label for="opnnSbmsnSeNm--${pageName}" class="w-px-120 bg-lighter pe-2 col-form-label text-sm-end">의견 제출 구분</label>
<input type="text" class="form-control w-40" id="opnnSbmsnSeNm--${pageName}" name="opnnSbmsnSeNm" data-map="OPNN_SBMSN_SE_NM" readonly />
</div>
<!-- 의견 제출 요지 -->
<div class="col-md-8">
<label for="opnnSbmsnGist--${pageName}" class="w-px-120 bg-lighter pe-2 col-form-label text-sm-end">의견제출 요지</label>
<input type="text" class="form-control w-80" id="opnnSbmsnGist--${pageName}" name="opnnSbmsnGist" data-map="OPNN_SBMSN_GIST" data-maxlengthb="300" readonly />
</div>
<!-- 담당자 검토 의견 -->
<div class="col-md-12">
<label for="picRvwOpnn--${pageName}" class="w-px-120 bg-lighter pe-2 col-form-label text-sm-end">검토 의견</label>
<textarea class="form-control w-87" id="picRvwOpnn--${pageName}" name="picRvwOpnn" data-map="PIC_RVW_OPNN" rows="3" data-maxlengthb="1000" readonly>
</textarea>
</div>
<!-- 첨부 파일 테이블 -->
<div class="table-responsive">
<table class="table table-bordered table-hover table-striped" id="fileList--${pageName}">
<thead>
<th class="text-center" style="width: 24px">NO.</th>
<th class="text-center" style="width: 200px">파일 번호</th>
<th class="text-center">파일 이름</th>
<th class="text-center" style="width: 200px">파일 크기</th>
<th class="text-center" style="width: 120px">다운로드</th>
</thead>
<tbody></tbody>
</table>
</div> <!-- 첨부 파일 테이블 <div class="table-responsive"> -->
</div> <!-- <div class="row g-1"> -->
</div> <!-- 의견제출 정보 <div class="card"> -->
</div> <!-- <div class="col-xl-9 mx-1"> -->
<!-- 화면 오른쪽 -->
<div class="col-xl-3 mx-0">
<!-- 심의 정보 -->
<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>
<!-- 버튼 우측 정렬 -->
<span class="container-window-btn-right">
<button type="button" class="btn btn-primary" id="btnOpnnSbmsnDlbrt--${pageName}" title="의견제출 심의" onclick="fnBtnOpnnSbmsnDlbrt${pageName}();">
의견제출 심의
</button>
</span> <!-- <span class="container-window-btn-right"> -->
</div> <!-- <div class="container-page-btn"> -->
<div class="row g-1">
<!-- 문서 번호 -->
<div class="col-md-12">
<label for="docNo--${pageName}" class="w-px-120 bg-lighter pe-2 col-form-label text-sm-end">문서 번호</label>
<input type="text" class="form-control w-45" id="docNo--${pageName}" name="docNo" data-map="DOC_NO" readonly />
</div>
<!-- 통보 구분 -->
<div class="col-md-12">
<label for="ntfctnSeNm--${pageName}" class="w-px-120 bg-lighter pe-2 col-form-label text-sm-end">통보 구분</label>
<input type="text" class="form-control w-30" id="ntfctnSeNm--${pageName}" name="ntfctnSeNm" data-map="NTFCTN_SE_NM" readonly />
</div>
<!-- 의견 제출 상태 코드 -->
<div class="col-md-12">
<label for="opnnSbmsnSttsNm--${pageName}" class="w-px-120 bg-lighter pe-2 col-form-label text-sm-end">처리 결과</label>
<input type="text" class="form-control w-30" id="opnnSbmsnSttsNm--${pageName}" name="opnnSbmsnSttsNm" data-map="OPNN_SBMSN_STTS_NM" readonly />
</div>
<!-- 답변일시 -->
<div class="col-md-12">
<label for="ansYmdTm--${pageName}" class="w-px-120 bg-lighter pe-2 col-form-label text-sm-end">처리 일시</label>
<input type="text" class="form-control w-45" id="ansYmdTm--${pageName}" name="ansYmdTm" data-map="ANS_YMD_TM" readonly />
</div>
<!-- 답변 내용 -->
<div class="col-md-12">
<label for="ansCn--${pageName}" class="w-px-120 bg-lighter pe-2 col-form-label text-sm-end">처리 내용</label>
</div>
<div class="col-md-12">
<textarea type="text" class="form-control w-100" id="ansCn--${pageName}" name="ansCn" data-map="ANS_CN" rows="14" data-maxlengthb="4000">
</textarea>
</div>
</div>
</div> <!-- 심의 정보 <div class="card"> -->
</div> <!-- <div class="col-xl-3 mx-0"> -->
</div> <!-- <div class="d-flex flex-row justify-content-evenly"> -->
</form>
</div>
<script>
/**************************************************************************
* Global Variable
**************************************************************************/
// URL
var ${pageName}PrefixUrl = "/sprt/sprt02";
// FormFields
var ${pageName}Fields = new FormFields("#frmEdit--${pageName}");
// 파일 리스트
var $fileListArr = new Array();
/**************************************************************************
* DatasetControl
**************************************************************************/
var ${pageName}Control = new DatasetControl({
prefix : "totalInfoOpnnSbmsn"
, prefixName : "의견제출 정보"
, keymapper : info => info ? info.OPNN_ID : ""
, dataGetter : obj => obj.opnnSbmsn
, formats : {
RCPT_YMD : dateFormat
, ANS_YMD_TM : datetimeFormat
}
});
${pageName}Control.onCurrentChange = item => {
// Dataset 셋팅
${pageName}Fields.set(item);
if (item.data.OPNN_ID != null) {
// 첨부파일 조회
fnSearchFileList${pageName}(item.data.OPNN_ID);
}
}
/**************************************************************************
*
**************************************************************************/
// 의견제출 dialog
${pageName}Control.getOpnnSbmsnInfo = (params) => {
let dialogTitle = "";
if (params.callPurpose == "create") {
dialogTitle = "의견제출 등록";
} else if (params.callPurpose == "update") {
dialogTitle = "의견제출 수정";
} else {
return;
}
ajax.get({
url : wctx.url("/excl/excl02/020/info.do")
, data : params || {}
, success : resp => {
dialog.open({
id : "opnnInfoDialog"
, title : dialogTitle
, content : resp
, size : "xl"
, onClose : () => { fnDataRefreshInfo(params.crdnId); } // callback 자료 조회
});
}
});
}
// 삭제 callback
${pageName}Control.onRemoveOpnnSbmsn = (resp) => {
if (resp.saved) {
fnDataRefreshInfo(); // 자료 조회
}
}
// 삭제
${pageName}Control.removeOpnnSbmsn = (params) => {
ajax.post({
url : wctx.url("/excl/excl02/010/remove.do")
, data : params || {}
, success : resp => ${pageName}Control.onRemoveOpnnSbmsn(resp)
});
}
// 심의 dialog
${pageName}Control.getOpnnSbmsnDlbrtInfo = (params) => {
ajax.get({
url : wctx.url("/excl/excl02/030/info.do")
, data : params || {}
, success : resp => {
dialog.open({
id : "opnnSbmsnInfoDialog"
, title : "의견제출 답변 처리"
, content : resp
, size : "lg"
, onClose : () => { fnDataRefreshInfo(params.crdnId); } // callback 자료 조회
});
}
});
}
// 재조회
fnDataRefreshInfo = (crdnId) => {
// 단속 ID 확인
if (crdnId == undefined || crdnId == null || crdnId == "") {
crdnId = $("#crdnId--${pageName}").val();
}
ajax.get({
url : wctx.url("/sprt/sprt02/030/info.do")
, headers: { Accept: "application/json; charset=utf-8" } // json
, data : { crdnId : crdnId }
, success : resp => {
// Dataset 셋팅
${pageName}Control.setData([resp.opnnSbmsn]);
}
});
}
/**************************************************************************
* 초기 셋팅
**************************************************************************/
// 검색조건 초기값 셋팅
initForm${pageName} = () => {
}
// 이벤트 설정
setEvent${pageName} = () => {
}
/**************************************************************************
* function
**************************************************************************/
// 의견제출 등록
fnBtnOpnnSbmsnCreate${pageName} = () => {
let crdnId = ${pageName}Control.dataset.getValue("CRDN_ID");
// 단속 ID 가 없다면.. return
if (crdnId == null || crdnId == "") {
return;
}
let params = {
callPurpose : "create"
, crdnId : crdnId
};
${pageName}Control.getOpnnSbmsnInfo(params);
}
// 의견제출 수정
fnBtnOpnnSbmsnUpdate${pageName} = () => {
let opnnId = ${pageName}Control.dataset.getValue("OPNN_ID")
// 의견 ID 가 없다면.. return
if (opnnId == null || opnnId == "") {
return;
}
let params = {
callPurpose : "update"
, opnnId : opnnId
};
${pageName}Control.getOpnnSbmsnInfo(params);
}
// 의견제출 삭제
fnBtnOpnnSbmsnRemove${pageName} = () => {
let opnnId = ${pageName}Control.dataset.getValue("OPNN_ID");
// 의견 ID 가 없다면.. return
if (opnnId == null || opnnId == "") {
return;
}
let params = {
callPurpose : "remove"
, opnnId : opnnId
};
dialog.alert({
content : "선택한 의견제출 정보를 삭제하시겠습니까?"
, onOK : () => {
${pageName}Control.removeOpnnSbmsn(params);
}
});
}
// 의견제출 심의
fnBtnOpnnSbmsnDlbrt${pageName} = () => {
let opnnId = ${pageName}Control.dataset.getValue("OPNN_ID");
// 의견제출 ID 가 없다면.. return
if (opnnId == null || opnnId == "") {
return;
}
let params = {
callPurpose : "update"
, opnnId : opnnId
};
${pageName}Control.getOpnnSbmsnDlbrtInfo(params);
}
// 심의의결서 출력
fnBtnDlbrtLtfrPrint${pageName} = () => {
}
// 첨부파일 조회
fnSearchFileList${pageName} = (opnnId) => {
// 의견제출 등록일 경우에는 첨부파일을 조회하지 안는다..
if (opnnId == null || opnnId == "") {
return;
}
// 기존 table에 자료가 존재하면 table 삭제
let fileListTable = document.getElementById("fileList--${pageName}"); // table element 찾기
for (iLoop = 2; iLoop <= fileListTable.rows.length; iLoop++) {
let newRow = fileListTable.deleteRow(fileListTable.rows.length-1); // table 행(Row) 삭제
}
// 첨부파일 리스트
ajax.get({
url : "file/list.do"
, data : {
infoType : "110"
, infoKeys : opnnId
, fetchSize : 0
}
, success : resp => {
let fileNo = 0;
let fileList = resp.fileList;
fileList.forEach(function (item, index, array) {
fileNo = index + 1;
let innerHtml = "";
innerHtml += "<tr>";
innerHtml += "<td class='text-center'>" + fileNo + "</td>";
innerHtml += "<td class='text-center'>" + item.FILE_ID + "</td>";
innerHtml += "<td class='text-center'>" + item.FILE_NM + "</td>";
innerHtml += "<td class='text-center'>" + item.FILE_SIZE + " byte</td>";
innerHtml += "<td class='text-center'>" + "<button class='btn' onclick='fnBtnFileDownload${pageName}(" + item.FILE_ID + ");'><i class='bx bx-download me-1'></i></button>" + "</td>";
innerHtml += "</tr>";
$("#fileList--${pageName} > tbody:last").append(innerHtml);
});
}
});
}
// 첨부파일 다운로드
fnBtnFileDownload${pageName} = (fileID) => {
top.location.href = "/file/download.do?fileID=" + fileID;
}
/**************************************************************************
* script 진입
**************************************************************************/
$(document).ready(function() {
// 이벤트 설정
setEvent${pageName}();
// 화면 초기 설정
initForm${pageName}();
// Dataset 셋팅
${pageName}Control.setData([${opnnSbmsn}]);
});
// #sourceURL=sprt02080-info.jsp
</script>
Loading…
Cancel
Save