수납(RCVM) 관련 자바 소스 추가.
parent
224fe92879
commit
7594ca9efd
@ -0,0 +1,124 @@
|
||||
package cokr.xit.fims.rcvm;
|
||||
|
||||
import cokr.xit.foundation.component.QueryRequest;
|
||||
|
||||
/**수납 대장 정보 조회 요청
|
||||
*
|
||||
* <p>상세 설명:
|
||||
*
|
||||
* <pre>
|
||||
* ============ 변경 이력 ============
|
||||
* 2023-08-31 JoJH 최초 작성
|
||||
* ================================
|
||||
* </pre>
|
||||
*/
|
||||
public class RcvmQuery extends QueryRequest {
|
||||
|
||||
private static final long serialVersionUID = 1L;
|
||||
|
||||
// 필수 조건
|
||||
private String sggCd; // 시군구 코드
|
||||
private String taskSeCd; // 업무 구분 코드
|
||||
private String delYn; // 삭제 여부
|
||||
// ID
|
||||
private String crdnId; // 단속 ID
|
||||
private String levyId; // 부과 ID
|
||||
private String[] rcvmtIDs; // 수납 IDs
|
||||
private String rcvmtId; // 수납 ID
|
||||
// ETC
|
||||
private String callPurpose; // 호출용도 필요시 사용(select, create, update)
|
||||
private String delRsn; // 삭제 사유
|
||||
|
||||
public String getSggCd() {
|
||||
return ifEmpty(sggCd, () -> null);
|
||||
}
|
||||
|
||||
public <T extends RcvmQuery> T setSggCd(String sggCd) {
|
||||
this.sggCd = sggCd;
|
||||
|
||||
return self();
|
||||
}
|
||||
|
||||
public String getTaskSeCd() {
|
||||
return ifEmpty(taskSeCd, () -> null);
|
||||
}
|
||||
|
||||
public <T extends RcvmQuery> T setTaskSeCd(String taskSeCd) {
|
||||
this.taskSeCd = taskSeCd;
|
||||
|
||||
return self();
|
||||
}
|
||||
|
||||
public String getDelYn() {
|
||||
return ifEmpty(delYn, () -> null);
|
||||
}
|
||||
|
||||
public <T extends RcvmQuery> T setDelYn(String delYn) {
|
||||
this.delYn = delYn;
|
||||
|
||||
return self();
|
||||
}
|
||||
|
||||
public String getCrdnId() {
|
||||
return ifEmpty(crdnId, () -> null);
|
||||
}
|
||||
|
||||
public <T extends RcvmQuery> T setCrdnId(String crdnId) {
|
||||
this.crdnId = crdnId;
|
||||
|
||||
return self();
|
||||
}
|
||||
|
||||
public String getLevyId() {
|
||||
return ifEmpty(levyId, () -> null);
|
||||
}
|
||||
|
||||
public <T extends RcvmQuery> T setLevyId(String levyId) {
|
||||
this.levyId = levyId;
|
||||
|
||||
return self();
|
||||
}
|
||||
|
||||
public String[] getRcvmtIDs() {
|
||||
return ifEmpty(rcvmtIDs, () -> null);
|
||||
}
|
||||
|
||||
public <T extends RcvmQuery> T setRcvmtIDs(String... rcvmtIDs) {
|
||||
this.rcvmtIDs = rcvmtIDs;
|
||||
|
||||
return self();
|
||||
}
|
||||
|
||||
public String getRcvmtId() {
|
||||
return ifEmpty(rcvmtId, () -> null);
|
||||
}
|
||||
|
||||
public <T extends RcvmQuery> T setRcvmtId(String rcvmtId) {
|
||||
this.rcvmtId = rcvmtId;
|
||||
|
||||
return self();
|
||||
}
|
||||
|
||||
// ETC /////////////////////////////////////////////////////////////////////
|
||||
public String getCallPurpose() {
|
||||
return ifEmpty(callPurpose, () -> null);
|
||||
}
|
||||
|
||||
public <T extends RcvmQuery> T setCallPurpose(String callPurpose) {
|
||||
this.callPurpose = callPurpose;
|
||||
|
||||
return self();
|
||||
}
|
||||
|
||||
public String getDelRsn() {
|
||||
return ifEmpty(delRsn, () -> null);
|
||||
}
|
||||
|
||||
public <T extends RcvmQuery> T setDelRsn(String delRsn) {
|
||||
this.delRsn = delRsn;
|
||||
|
||||
return self();
|
||||
}
|
||||
// ETC /////////////////////////////////////////////////////////////////////
|
||||
|
||||
}
|
@ -0,0 +1,156 @@
|
||||
package cokr.xit.fims.rcvm;
|
||||
|
||||
import cokr.xit.foundation.AbstractEntity;
|
||||
import lombok.Getter;
|
||||
import lombok.Setter;
|
||||
|
||||
/**
|
||||
* 수납 대장
|
||||
* @author JoJH
|
||||
*/
|
||||
@Getter
|
||||
@Setter
|
||||
public class Rcvmt extends AbstractEntity {
|
||||
|
||||
/**
|
||||
* 수납 ID
|
||||
*/
|
||||
private String rcvmtId;
|
||||
|
||||
/**
|
||||
* 시군구 코드
|
||||
*/
|
||||
private String sggCd;
|
||||
|
||||
/**
|
||||
* 업무 구분 코드
|
||||
*/
|
||||
private String taskSeCd;
|
||||
|
||||
/**
|
||||
* 부과 ID
|
||||
*/
|
||||
private String levyId;
|
||||
|
||||
/**
|
||||
* 수납 입력 구분 코드
|
||||
*/
|
||||
private String rcvmtInptSeCd;
|
||||
|
||||
/**
|
||||
* 회계 연도
|
||||
*/
|
||||
private String acntgYr;
|
||||
|
||||
/**
|
||||
* 회계 구분
|
||||
*/
|
||||
private String acntgSe;
|
||||
|
||||
/**
|
||||
* 세목 코드
|
||||
*/
|
||||
private String txitmCd;
|
||||
|
||||
/**
|
||||
* 세목 명
|
||||
*/
|
||||
private String txitmNm;
|
||||
|
||||
/**
|
||||
* 부과 번호
|
||||
*/
|
||||
private String levyNo;
|
||||
|
||||
/**
|
||||
* 수납 순번
|
||||
*/
|
||||
private String rcvmtSn;
|
||||
|
||||
/**
|
||||
* 수납 일자
|
||||
*/
|
||||
private String rcvmtYmd;
|
||||
|
||||
/**
|
||||
* 수납 본세
|
||||
*/
|
||||
private Integer rcvmtPcptax;
|
||||
|
||||
/**
|
||||
* 수납 가산금
|
||||
*/
|
||||
private Integer rcvmtAdamt;
|
||||
|
||||
/**
|
||||
* 수납 이자
|
||||
*/
|
||||
private Integer rcvmtInt;
|
||||
|
||||
/**
|
||||
* 수납 은행
|
||||
*/
|
||||
private String rcvmtBank;
|
||||
|
||||
/**
|
||||
* 납부 방법
|
||||
*/
|
||||
private String payMthd;
|
||||
|
||||
/**
|
||||
* 회계 일자
|
||||
*/
|
||||
private String acntgYmd;
|
||||
|
||||
/**
|
||||
* 소인 일자
|
||||
*/
|
||||
private String pstmrkYmd;
|
||||
|
||||
/**
|
||||
* 가상계좌번호
|
||||
*/
|
||||
private String vractno;
|
||||
|
||||
/**
|
||||
* 전자납부번호
|
||||
*/
|
||||
private String epayno;
|
||||
|
||||
/**
|
||||
* 수납 구분 코드
|
||||
*/
|
||||
private String rcvmtSeCd;
|
||||
|
||||
/**
|
||||
* 세외수입 부과 키
|
||||
*/
|
||||
private String nxrpLevyKey;
|
||||
|
||||
/**
|
||||
* 수납 취소 여부
|
||||
*/
|
||||
private String rcvmtRtrcnYn;
|
||||
|
||||
/**
|
||||
* 수납 취소 일시
|
||||
*/
|
||||
private String rcvmtRtrcnDt;
|
||||
|
||||
/**
|
||||
* 수납 취소 사유
|
||||
*/
|
||||
private String rcvmtRtrcnRsn;
|
||||
|
||||
/**
|
||||
* 삭제 여부
|
||||
*/
|
||||
private String delYn;
|
||||
|
||||
/**
|
||||
* 삭제 사유
|
||||
*/
|
||||
private String delRsn;
|
||||
|
||||
}
|
||||
|
@ -0,0 +1,99 @@
|
||||
package cokr.xit.fims.rcvm.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.rcvm.Rcvmt;
|
||||
import cokr.xit.fims.rcvm.RcvmQuery;
|
||||
|
||||
/** 수납 대장 정보 DAO
|
||||
*
|
||||
* <p>상세 설명:
|
||||
*
|
||||
* <pre>
|
||||
* ============ 변경 이력 ============
|
||||
* 2023-08-31 mjkhan 최초 작성
|
||||
* ================================
|
||||
* </pre>
|
||||
*/
|
||||
@Mapper("rcvmtMapper")
|
||||
public interface RcvmtMapper extends AbstractMapper {
|
||||
|
||||
/**지정한 조건에 따라 수납 대장 목록을 조회하여 반환한다.<br />
|
||||
* @param req 수납 대장 조회 조건
|
||||
* @return 수납 대장 목록
|
||||
*/
|
||||
List<DataObject> selectRcvmtList(RcvmQuery req);
|
||||
|
||||
/**지정한 조건에 따라 수납 대장 객체들을 반환한다.
|
||||
* @param req 수납 대장 조회 조건
|
||||
* @return 수납 대장 객체 목록
|
||||
*/
|
||||
List<DataObject> selectRcvmts(RcvmQuery req);
|
||||
|
||||
/**수납 대장 정보를 등록한다.
|
||||
* @param params 파라미터
|
||||
* <ul><li>"rcvmt" - 수납 대장</li>
|
||||
* <li>"currentUser" - 현재 접속한 사용자</li>
|
||||
* </ul>
|
||||
* @return 저장된 정보수
|
||||
*/
|
||||
int insertRcvmt(Map<String, Object> params);
|
||||
|
||||
/**수납 대장 정보를 등록한다.
|
||||
* @param rcvmt 수납 대장
|
||||
* @return 저장 여부
|
||||
* <ul><li>저장됐으면 true</li>
|
||||
* <li>그렇지 않으면 false</li>
|
||||
* </ul>
|
||||
*/
|
||||
default boolean insert(Rcvmt rcvmt) {
|
||||
return rcvmt != null && insertRcvmt(params().set("rcvmt", rcvmt)) == 1;
|
||||
}
|
||||
|
||||
/**수납 대장 정보를 수정한다.
|
||||
* @param params 파라미터
|
||||
* <ul><li>"rcvmt" - 수납 대장</li>
|
||||
* <li>"currentUser" - 현재 접속한 사용자</li>
|
||||
* </ul>
|
||||
* @return 저장된 정보수
|
||||
*/
|
||||
int updateRcvmt(Map<String, Object> params);
|
||||
|
||||
/**수납 대장 정보를 수정한다.
|
||||
* @param rcvmt 수납 대장
|
||||
* @return 저장 여부
|
||||
* <ul><li>저장됐으면 true</li>
|
||||
* <li>그렇지 않으면 false</li>
|
||||
* </ul>
|
||||
*/
|
||||
default boolean update(Rcvmt rcvmt) {
|
||||
return rcvmt != null && updateRcvmt(params().set("rcvmt", rcvmt)) == 1;
|
||||
}
|
||||
|
||||
/**지정한 수납 대장을 삭제한다.
|
||||
* @param params 파라미터
|
||||
* <ul><li>"rcvmt" - 수납 대장</li>
|
||||
* <li>"currentUser" - 현재 접속한 사용자</li>
|
||||
* </ul>
|
||||
* @return 저장된 정보수
|
||||
*/
|
||||
int deleteRcvmt(Map<String, ?> params);
|
||||
|
||||
/**수납 대장 정보를 삭제한다.
|
||||
* @param rcvmt 수납 대장
|
||||
* @return 저장 여부
|
||||
* <ul><li>저장됐으면 true</li>
|
||||
* <li>그렇지 않으면 false</li>
|
||||
* </ul>
|
||||
*/
|
||||
default boolean delete(Rcvmt rcvmt) {
|
||||
return rcvmt != null && deleteRcvmt(params().set("rcvmt", rcvmt)) == 1;
|
||||
}
|
||||
|
||||
}
|
@ -0,0 +1,61 @@
|
||||
package cokr.xit.fims.rcvm.service;
|
||||
|
||||
import java.util.List;
|
||||
|
||||
import cokr.xit.foundation.data.DataObject;
|
||||
|
||||
import cokr.xit.fims.rcvm.Rcvmt;
|
||||
import cokr.xit.fims.rcvm.RcvmQuery;
|
||||
|
||||
/**수납 대장 관리 서비스 인터페이스.
|
||||
*
|
||||
* <p>상세 설명:
|
||||
*
|
||||
* <pre>
|
||||
* ============ 변경 이력 ============
|
||||
* 2023-08-31 mjkhan 최초 작성
|
||||
* ================================
|
||||
* </pre>
|
||||
*/
|
||||
public interface Rcvm01Service {
|
||||
|
||||
/**지정한 조건에 따라 수납 대장 목록을 조회하여 반환한다.
|
||||
* @param req 수납 대장 조회 조건
|
||||
* @return 수납 대장 목록
|
||||
*/
|
||||
List<DataObject> getRcvmtList(RcvmQuery req);
|
||||
|
||||
/**지정한 조건에 따라 수납 대장 객체들을 반환한다.
|
||||
* @param req 수납 대장 조회 조건
|
||||
* @return 수납 대장 객체 목록
|
||||
*/
|
||||
List<DataObject> getRcvmts(RcvmQuery req);
|
||||
|
||||
/**수납 대장 정보를 등록한다.
|
||||
* @param rcvmt 수납 대장
|
||||
* @return 저장 여부
|
||||
* <ul><li>저장됐으면 true</li>
|
||||
* <li>그렇지 않으면 false</li>
|
||||
* </ul>
|
||||
*/
|
||||
boolean createRcvmt(Rcvmt rcvmt);
|
||||
|
||||
/**수납 대장 정보를 수정한다.
|
||||
* @param rcvmt 수납 대장
|
||||
* @return 저장 여부
|
||||
* <ul><li>저장됐으면 true</li>
|
||||
* <li>그렇지 않으면 false</li>
|
||||
* </ul>
|
||||
*/
|
||||
boolean updateRcvmt(Rcvmt rcvmt);
|
||||
|
||||
/**수납 대장 정보를 삭제한다.
|
||||
* @param rcvmt 수납 대장
|
||||
* @return 저장 여부
|
||||
* <ul><li>저장됐으면 true</li>
|
||||
* <li>그렇지 않으면 false</li>
|
||||
* </ul>
|
||||
*/
|
||||
boolean removeRcvmt(Rcvmt rcvmt);
|
||||
|
||||
}
|
@ -0,0 +1,81 @@
|
||||
package cokr.xit.fims.rcvm.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.rcvm.Rcvmt;
|
||||
import cokr.xit.fims.rcvm.RcvmQuery;
|
||||
import cokr.xit.fims.rcvm.dao.RcvmtMapper;
|
||||
|
||||
/**수납 대장 정보 관리 Bean
|
||||
*
|
||||
* <p>상세 설명:
|
||||
*
|
||||
* <pre>
|
||||
* ============ 변경 이력 ============
|
||||
* 2023-08-31 JoJH 최초 작성
|
||||
* ================================
|
||||
* </pre>
|
||||
*/
|
||||
@Component("rcvm01Bean")
|
||||
public class Rcvm01Bean extends AbstractComponent {
|
||||
|
||||
/** 수납 대장 정보 DAO */
|
||||
@Resource(name = "rcvmtMapper")
|
||||
private RcvmtMapper rcvmtMapper;
|
||||
|
||||
/**지정한 조건에 따라 수납 대장 목록을 조회하여 반환한다.
|
||||
* @param req 수납 대장 조회 조건
|
||||
* @return 수납 대장 목록
|
||||
*/
|
||||
public List<DataObject> getRcvmtList(RcvmQuery req) {
|
||||
return rcvmtMapper.selectRcvmtList(req);
|
||||
}
|
||||
|
||||
/**지정한 조건에 따라 수납 대장 객체들을 반환한다.
|
||||
* @param req 수납 대장 조회 조건
|
||||
* @return 수납 대장 객체 목록
|
||||
*/
|
||||
public List<DataObject> getRcvmts(RcvmQuery req) {
|
||||
return rcvmtMapper.selectRcvmts(req);
|
||||
}
|
||||
|
||||
/**수납 대장 정보를 등록한다.
|
||||
* @param rcvmt 수납 대장
|
||||
* @return 저장 여부
|
||||
* <ul><li>저장됐으면 true</li>
|
||||
* <li>그렇지 않으면 false</li>
|
||||
* </ul>
|
||||
*/
|
||||
public boolean createRcvmt(Rcvmt rcvmt) {
|
||||
return rcvmtMapper.insert(rcvmt);
|
||||
}
|
||||
|
||||
/**수납 대장 정보를 수정한다.
|
||||
* @param rcvmt 수납 대장
|
||||
* @return 저장 여부
|
||||
* <ul><li>저장됐으면 true</li>
|
||||
* <li>그렇지 않으면 false</li>
|
||||
* </ul>
|
||||
*/
|
||||
public boolean updateRcvmt(Rcvmt rcvmt) {
|
||||
return rcvmtMapper.update(rcvmt);
|
||||
}
|
||||
|
||||
/**수납 대장 정보를 삭제한다.
|
||||
* @param rcvmt 수납 대장
|
||||
* @return 저장 여부
|
||||
* <ul><li>저장됐으면 true</li>
|
||||
* <li>그렇지 않으면 false</li>
|
||||
* </ul>
|
||||
*/
|
||||
public boolean removeRcvmt(Rcvmt rcvmt) {
|
||||
return rcvmtMapper.delete(rcvmt);
|
||||
}
|
||||
}
|
@ -0,0 +1,57 @@
|
||||
package cokr.xit.fims.rcvm.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.rcvm.Rcvmt;
|
||||
import cokr.xit.fims.rcvm.RcvmQuery;
|
||||
import cokr.xit.fims.rcvm.service.Rcvm01Service;
|
||||
|
||||
/**수납 대장 서비스 구현체.
|
||||
*
|
||||
* <p>상세 설명:
|
||||
*
|
||||
* <pre>
|
||||
* ============ 변경 이력 ============
|
||||
* 2023-08-31 JoJH 최초 작성
|
||||
* ================================
|
||||
* </pre>
|
||||
*/
|
||||
@Service("rcvm01Service")
|
||||
public class Rcvm01ServiceBean extends AbstractServiceBean implements Rcvm01Service {
|
||||
|
||||
/** 수납 대장 정보 Bean */
|
||||
@Resource(name = "rcvm01Bean")
|
||||
private Rcvm01Bean rcvm01Bean;
|
||||
|
||||
@Override
|
||||
public List<DataObject> getRcvmtList(RcvmQuery req) {
|
||||
return rcvm01Bean.getRcvmtList(req);
|
||||
}
|
||||
|
||||
@Override
|
||||
public List<DataObject> getRcvmts(RcvmQuery req) {
|
||||
return rcvm01Bean.getRcvmts(req);
|
||||
}
|
||||
|
||||
@Override
|
||||
public boolean createRcvmt(Rcvmt rcvmt) {
|
||||
return rcvm01Bean.createRcvmt(rcvmt);
|
||||
}
|
||||
|
||||
@Override
|
||||
public boolean updateRcvmt(Rcvmt rcvmt) {
|
||||
return rcvm01Bean.updateRcvmt(rcvmt);
|
||||
}
|
||||
|
||||
@Override
|
||||
public boolean removeRcvmt(Rcvmt rcvmt) {
|
||||
return rcvm01Bean.removeRcvmt(rcvmt);
|
||||
}
|
||||
}
|
@ -0,0 +1,111 @@
|
||||
package cokr.xit.fims.rcvm.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.rcvm.Rcvmt;
|
||||
import cokr.xit.fims.rcvm.RcvmQuery;
|
||||
import cokr.xit.fims.rcvm.service.Rcvm01Service;
|
||||
|
||||
/**수납 대장 서비스의 웹 컨트롤러
|
||||
*
|
||||
* <p>상세 설명:
|
||||
*
|
||||
* <pre>
|
||||
* ============ 변경 이력 ============
|
||||
* 2023-08-31 mjkhan 최초 작성
|
||||
* ================================
|
||||
* </pre>
|
||||
*/
|
||||
@RequestMapping(name = "수납 대장", value = "/rcvmt")
|
||||
public class Rcvm01Controller extends ApplicationController {
|
||||
|
||||
/**수납 대장 서비스*/
|
||||
@Resource(name = "rcvm01Service")
|
||||
private Rcvm01Service rcvm01Service;
|
||||
|
||||
/**수납 대장 관리 메인화면(rcvmt/rcvmt-main)을 연다.
|
||||
* 조건없는 {@link #getRcvmtList(RcvmtQuery) 수납 대장 조회 결과}를 포함시킨다.
|
||||
* @return /rcvmt/rcvmt-main
|
||||
*/
|
||||
@RequestMapping(name = "수납 대장 메인", value = "/010/main.do")
|
||||
public ModelAndView main() {
|
||||
ModelAndView mav = getRcvmtList(new RcvmQuery().setPageNum(1));
|
||||
|
||||
mav.setViewName("/rcvmt/rcvmt-main");
|
||||
|
||||
return mav.addObject("rcvmtList", toJson(mav.getModel().get("rcvmtList")));
|
||||
}
|
||||
|
||||
/**수납 대장 목록을 조회하여 반환한다.<br />
|
||||
* {@link RcvmtService#getRcvmtList(RcvmtQuery)} 참고
|
||||
* @param req 수납 대장 조회 조건
|
||||
* @return jsonView
|
||||
* <pre><code> {
|
||||
* "rcvmtList": [수납 대장 목록]
|
||||
* "rcvmtStart": 수납 대장 목록 시작 인덱스
|
||||
* "rcvmtFetch": 한 번에 가져오는 수납 대장 목록 수
|
||||
* "rcvmtTotal": 조회 결과 찾은 전체 수납 대장 수
|
||||
* }</code></pre>
|
||||
*/
|
||||
@RequestMapping(name = "수납 대장 조회", value = "/010/list.do")
|
||||
public ModelAndView getRcvmtList(RcvmQuery req) {
|
||||
List<?> result = rcvm01Service.getRcvmtList(setFetchSize(req));
|
||||
|
||||
return setCollectionInfo(new ModelAndView("jsonView"), result, "rcvmt");
|
||||
}
|
||||
|
||||
/**수납 대장를 등록한다.
|
||||
* @param rcvmt 수납 대장 정보
|
||||
* @return jsonView
|
||||
* <pre><code> {
|
||||
* "saved": 등록되었으면 true, 그렇지 않으면 false
|
||||
* }</code></pre>
|
||||
*/
|
||||
@PostMapping(name = "수납 대장 등록", value = "/010/create.do")
|
||||
public ModelAndView create(Rcvmt rcvmt) {
|
||||
boolean saved = rcvm01Service.createRcvmt(rcvmt);
|
||||
|
||||
return new ModelAndView("jsonView")
|
||||
.addObject("saved", saved);
|
||||
}
|
||||
|
||||
/**수납 대장 정보를 수정한다.
|
||||
* @param rcvmt 수납 대장 정보
|
||||
* @return jsonView
|
||||
* <pre><code> {
|
||||
* "saved": 수정되었으면 true, 그렇지 않으면 false
|
||||
* }</code></pre>
|
||||
*/
|
||||
@PostMapping(name = "수납 대장 수정", value = "/010/update.do")
|
||||
public ModelAndView update(Rcvmt rcvmt) {
|
||||
boolean saved = rcvm01Service.updateRcvmt(rcvmt);
|
||||
|
||||
return new ModelAndView("jsonView")
|
||||
.addObject("saved", saved);
|
||||
}
|
||||
|
||||
/**지정한 수납 대장를 제거한다.
|
||||
* @param rcvmtIDs 수납 대장 아이디
|
||||
* @return jsonView
|
||||
* <pre><code> {
|
||||
* "affected": 저장된 정보수
|
||||
* "saved": 저장되었으면 true, 그렇지 않으면 false
|
||||
* }</code></pre>
|
||||
*/
|
||||
@PostMapping(name = "수납 대장 제거", value = "/010/remove.do")
|
||||
public ModelAndView remove(Rcvmt rcvmt) {
|
||||
boolean saved = rcvm01Service.removeRcvmt(rcvmt);
|
||||
|
||||
return new ModelAndView("jsonView")
|
||||
.addObject("saved", saved);
|
||||
}
|
||||
|
||||
}
|
@ -0,0 +1,205 @@
|
||||
<?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.rcvm.dao.RcvmtMapper">
|
||||
|
||||
<!-- 수납 대장 정보 매퍼
|
||||
========== 변경 이력 ==========
|
||||
2023-08-31 JoJH 최초 작성
|
||||
============================ -->
|
||||
|
||||
<resultMap id="rcvmtRow" type="cokr.xit.fims.rcvm.Rcvmt">
|
||||
<result property="rcvmtId" column="RCVMT_ID" /> <!-- 수납 ID -->
|
||||
<result property="sggCd" column="SGG_CD" /> <!-- 시군구 코드 -->
|
||||
<result property="levyId" column="LEVY_ID" /> <!-- 부과 ID -->
|
||||
<result property="rcvmtInptSeCd" column="RCVMT_INPT_SE_CD" /> <!-- 수납 입력 구분 코드 -->
|
||||
<result property="acntgYr" column="ACNTG_YR" /> <!-- 회계 연도 -->
|
||||
<result property="acntgSe" column="ACNTG_SE" /> <!-- 회계 구분 -->
|
||||
<result property="txitmCd" column="TXITM_CD" /> <!-- 세목 코드 -->
|
||||
<result property="txitmNm" column="TXITM_NM" /> <!-- 세목 명 -->
|
||||
<result property="levyNo" column="LEVY_NO" /> <!-- 부과 번호 -->
|
||||
<result property="rcvmtSn" column="RCVMT_SN" /> <!-- 수납 순번 -->
|
||||
<result property="rcvmtYmd" column="RCVMT_YMD" /> <!-- 수납 일자 -->
|
||||
<result property="rcvmtPcptax" column="RCVMT_PCPTAX" /> <!-- 수납 본세 -->
|
||||
<result property="rcvmtAdamt" column="RCVMT_ADAMT" /> <!-- 수납 가산금 -->
|
||||
<result property="rcvmtInt" column="RCVMT_INT" /> <!-- 수납 이자 -->
|
||||
<result property="rcvmtBank" column="RCVMT_BANK" /> <!-- 수납 은행 -->
|
||||
<result property="payMthd" column="PAY_MTHD" /> <!-- 납부 방법 -->
|
||||
<result property="acntgYmd" column="ACNTG_YMD" /> <!-- 회계 일자 -->
|
||||
<result property="pstmrkYmd" column="PSTMRK_YMD" /> <!-- 소인 일자 -->
|
||||
<result property="vractno" column="VRACTNO" /> <!-- 가상계좌번호 -->
|
||||
<result property="epayno" column="EPAYNO" /> <!-- 전자납부번호 -->
|
||||
<result property="rcvmtSeCd" column="RCVMT_SE_CD" /> <!-- 수납 구분 코드 -->
|
||||
<result property="nxrpLevyKey" column="NXRP_LEVY_KEY" /> <!-- 세외수입 부과 키 -->
|
||||
<result property="rcvmtRtrcnYn" column="RCVMT_RTRCN_YN" /> <!-- 수납 취소 여부 -->
|
||||
<result property="rcvmtRtrcnDt" column="RCVMT_RTRCN_DT" /> <!-- 수납 취소 일시 -->
|
||||
<result property="rcvmtRtrcnRsn" column="RCVMT_RTRCN_RSN" /> <!-- 수납 취소 사유 -->
|
||||
<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 RCVMT_ID <!-- 수납 ID -->
|
||||
, SGG_CD <!-- 시군구 코드 -->
|
||||
, LEVY_ID <!-- 부과 ID -->
|
||||
, RCVMT_INPT_SE_CD <!-- 수납 입력 구분 코드 -->
|
||||
, ACNTG_YR <!-- 회계 연도 -->
|
||||
, ACNTG_SE <!-- 회계 구분 -->
|
||||
, TXITM_CD <!-- 세목 코드 -->
|
||||
, TXITM_NM <!-- 세목 명 -->
|
||||
, LEVY_NO <!-- 부과 번호 -->
|
||||
, RCVMT_SN <!-- 수납 순번 -->
|
||||
, RCVMT_YMD <!-- 수납 일자 -->
|
||||
, RCVMT_PCPTAX <!-- 수납 본세 -->
|
||||
, RCVMT_ADAMT <!-- 수납 가산금 -->
|
||||
, RCVMT_INT <!-- 수납 이자 -->
|
||||
, RCVMT_BANK <!-- 수납 은행 -->
|
||||
, PAY_MTHD <!-- 납부 방법 -->
|
||||
, ACNTG_YMD <!-- 회계 일자 -->
|
||||
, PSTMRK_YMD <!-- 소인 일자 -->
|
||||
, VRACTNO <!-- 가상계좌번호 -->
|
||||
, EPAYNO <!-- 전자납부번호 -->
|
||||
, RCVMT_SE_CD <!-- 수납 구분 코드 -->
|
||||
, NXRP_LEVY_KEY <!-- 세외수입 부과 키 -->
|
||||
, RCVMT_RTRCN_YN <!-- 수납 취소 여부 -->
|
||||
, RCVMT_RTRCN_DT <!-- 수납 취소 일시 -->
|
||||
, RCVMT_RTRCN_RSN <!-- 수납 취소 사유 -->
|
||||
, DEL_YN <!-- 삭제 여부 -->
|
||||
, REG_DT <!-- 등록 일시 -->
|
||||
, RGTR <!-- 등록자 -->
|
||||
, MDFCN_DT <!-- 수정 일시 -->
|
||||
, MDFR <!-- 수정자 -->
|
||||
, DEL_DT <!-- 삭제 일시 -->
|
||||
, DLTR <!-- 삭제자 -->
|
||||
, DEL_RSN <!-- 삭제 사유 -->
|
||||
FROM TB_RCVMT</sql>
|
||||
|
||||
<select id="selectRcvmtList" parameterType="map" resultType="dataobject">/* 수납 대장 목록 조회(rcvmtMapper.selectRcvmtList) */
|
||||
<include refid="utility.paging-prefix" />
|
||||
<include refid="select" />
|
||||
<where></where>
|
||||
<include refid="utility.orderBy" />
|
||||
<include refid="utility.paging-suffix" /></select>
|
||||
|
||||
<select id="selectRcvmts" parameterType="map" resultMap="rcvmtRow">/* 수납 대장 객체 가져오기(rcvmtMapper.selectRcvmts) */
|
||||
<include refid="select" />
|
||||
<where></where>
|
||||
<include refid="utility.orderBy" /></select>
|
||||
|
||||
<insert id="insertRcvmt" parameterType="map">/* 수납 대장 등록(rcvmtMapper.insertRcvmt) */
|
||||
INSERT INTO TB_RCVMT (
|
||||
RCVMT_ID <!-- 수납 ID -->
|
||||
, SGG_CD <!-- 시군구 코드 -->
|
||||
, LEVY_ID <!-- 부과 ID -->
|
||||
, RCVMT_INPT_SE_CD <!-- 수납 입력 구분 코드 -->
|
||||
, ACNTG_YR <!-- 회계 연도 -->
|
||||
, ACNTG_SE <!-- 회계 구분 -->
|
||||
, TXITM_CD <!-- 세목 코드 -->
|
||||
, TXITM_NM <!-- 세목 명 -->
|
||||
, LEVY_NO <!-- 부과 번호 -->
|
||||
, RCVMT_SN <!-- 수납 순번 -->
|
||||
, RCVMT_YMD <!-- 수납 일자 -->
|
||||
, RCVMT_PCPTAX <!-- 수납 본세 -->
|
||||
, RCVMT_ADAMT <!-- 수납 가산금 -->
|
||||
, RCVMT_INT <!-- 수납 이자 -->
|
||||
, RCVMT_BANK <!-- 수납 은행 -->
|
||||
, PAY_MTHD <!-- 납부 방법 -->
|
||||
, ACNTG_YMD <!-- 회계 일자 -->
|
||||
, PSTMRK_YMD <!-- 소인 일자 -->
|
||||
, VRACTNO <!-- 가상계좌번호 -->
|
||||
, EPAYNO <!-- 전자납부번호 -->
|
||||
, RCVMT_SE_CD <!-- 수납 구분 코드 -->
|
||||
, NXRP_LEVY_KEY <!-- 세외수입 부과 키 -->
|
||||
, RCVMT_RTRCN_YN <!-- 수납 취소 여부 -->
|
||||
, RCVMT_RTRCN_DT <!-- 수납 취소 일시 -->
|
||||
, RCVMT_RTRCN_RSN <!-- 수납 취소 사유 -->
|
||||
, DEL_YN <!-- 삭제 여부 -->
|
||||
, REG_DT <!-- 등록 일시 -->
|
||||
, RGTR <!-- 등록자 -->
|
||||
, MDFCN_DT <!-- 수정 일시 -->
|
||||
, MDFR <!-- 수정자 -->
|
||||
, DEL_DT <!-- 삭제 일시 -->
|
||||
, DLTR <!-- 삭제자 -->
|
||||
, DEL_RSN <!-- 삭제 사유 -->
|
||||
) VALUES (
|
||||
#{rcvmt.rcvmtId} <!-- 수납 ID -->
|
||||
, #{rcvmt.sggCd} <!-- 시군구 코드 -->
|
||||
, #{rcvmt.levyId} <!-- 부과 ID -->
|
||||
, #{rcvmt.rcvmtInptSeCd} <!-- 수납 입력 구분 코드 -->
|
||||
, #{rcvmt.acntgYr} <!-- 회계 연도 -->
|
||||
, #{rcvmt.acntgSe} <!-- 회계 구분 -->
|
||||
, #{rcvmt.txitmCd} <!-- 세목 코드 -->
|
||||
, #{rcvmt.txitmNm} <!-- 세목 명 -->
|
||||
, #{rcvmt.levyNo} <!-- 부과 번호 -->
|
||||
, #{rcvmt.rcvmtSn} <!-- 수납 순번 -->
|
||||
, #{rcvmt.rcvmtYmd} <!-- 수납 일자 -->
|
||||
, #{rcvmt.rcvmtPcptax} <!-- 수납 본세 -->
|
||||
, #{rcvmt.rcvmtAdamt} <!-- 수납 가산금 -->
|
||||
, #{rcvmt.rcvmtInt} <!-- 수납 이자 -->
|
||||
, #{rcvmt.rcvmtBank} <!-- 수납 은행 -->
|
||||
, #{rcvmt.payMthd} <!-- 납부 방법 -->
|
||||
, #{rcvmt.acntgYmd} <!-- 회계 일자 -->
|
||||
, #{rcvmt.pstmrkYmd} <!-- 소인 일자 -->
|
||||
, #{rcvmt.vractno} <!-- 가상계좌번호 -->
|
||||
, #{rcvmt.epayno} <!-- 전자납부번호 -->
|
||||
, #{rcvmt.rcvmtSeCd} <!-- 수납 구분 코드 -->
|
||||
, #{rcvmt.nxrpLevyKey} <!-- 세외수입 부과 키 -->
|
||||
, #{rcvmt.rcvmtRtrcnYn} <!-- 수납 취소 여부 -->
|
||||
, #{rcvmt.rcvmtRtrcnDt} <!-- 수납 취소 일시 -->
|
||||
, #{rcvmt.rcvmtRtrcnRsn} <!-- 수납 취소 사유 -->
|
||||
, #{rcvmt.delYn} <!-- 삭제 여부 -->
|
||||
, <include refid="utility.now" /> <!-- 등록 일시 -->
|
||||
, #{currentUser.id} <!-- 등록자 -->
|
||||
, <include refid="utility.now" /> <!-- 수정 일시 -->
|
||||
, #{currentUser.id} <!-- 수정자 -->
|
||||
, #{rcvmt.removedAt} <!-- 삭제 일시 -->
|
||||
, #{rcvmt.removedBy} <!-- 삭제자 -->
|
||||
, #{rcvmt.delRsn} <!-- 삭제 사유 -->
|
||||
)</insert>
|
||||
|
||||
<update id="updateRcvmt" parameterType="map">/* 수납 대장 수정(rcvmtMapper.updateRcvmt) */
|
||||
UPDATE TB_RCVMT SET
|
||||
SGG_CD = #{rcvmt.sggCd} <!-- 시군구 코드 -->
|
||||
, LEVY_ID = #{rcvmt.levyId} <!-- 부과 ID -->
|
||||
, RCVMT_INPT_SE_CD = #{rcvmt.rcvmtInptSeCd} <!-- 수납 입력 구분 코드 -->
|
||||
, ACNTG_YR = #{rcvmt.acntgYr} <!-- 회계 연도 -->
|
||||
, ACNTG_SE = #{rcvmt.acntgSe} <!-- 회계 구분 -->
|
||||
, TXITM_CD = #{rcvmt.txitmCd} <!-- 세목 코드 -->
|
||||
, TXITM_NM = #{rcvmt.txitmNm} <!-- 세목 명 -->
|
||||
, LEVY_NO = #{rcvmt.levyNo} <!-- 부과 번호 -->
|
||||
, RCVMT_SN = #{rcvmt.rcvmtSn} <!-- 수납 순번 -->
|
||||
, RCVMT_YMD = #{rcvmt.rcvmtYmd} <!-- 수납 일자 -->
|
||||
, RCVMT_PCPTAX = #{rcvmt.rcvmtPcptax} <!-- 수납 본세 -->
|
||||
, RCVMT_ADAMT = #{rcvmt.rcvmtAdamt} <!-- 수납 가산금 -->
|
||||
, RCVMT_INT = #{rcvmt.rcvmtInt} <!-- 수납 이자 -->
|
||||
, RCVMT_BANK = #{rcvmt.rcvmtBank} <!-- 수납 은행 -->
|
||||
, PAY_MTHD = #{rcvmt.payMthd} <!-- 납부 방법 -->
|
||||
, ACNTG_YMD = #{rcvmt.acntgYmd} <!-- 회계 일자 -->
|
||||
, PSTMRK_YMD = #{rcvmt.pstmrkYmd} <!-- 소인 일자 -->
|
||||
, VRACTNO = #{rcvmt.vractno} <!-- 가상계좌번호 -->
|
||||
, EPAYNO = #{rcvmt.epayno} <!-- 전자납부번호 -->
|
||||
, RCVMT_SE_CD = #{rcvmt.rcvmtSeCd} <!-- 수납 구분 코드 -->
|
||||
, NXRP_LEVY_KEY = #{rcvmt.nxrpLevyKey} <!-- 세외수입 부과 키 -->
|
||||
, RCVMT_RTRCN_YN = #{rcvmt.rcvmtRtrcnYn} <!-- 수납 취소 여부 -->
|
||||
, RCVMT_RTRCN_DT = #{rcvmt.rcvmtRtrcnDt} <!-- 수납 취소 일시 -->
|
||||
, RCVMT_RTRCN_RSN = #{rcvmt.rcvmtRtrcnRsn} <!-- 수납 취소 사유 -->
|
||||
, DEL_YN = #{rcvmt.delYn} <!-- 삭제 여부 -->
|
||||
, MDFCN_DT = <include refid="utility.now" /> <!-- 수정 일시 -->
|
||||
, MDFR = #{currentUser.id} <!-- 수정자 -->
|
||||
, DEL_DT = #{rcvmt.removedAt} <!-- 삭제 일시 -->
|
||||
, DLTR = #{rcvmt.removedBy} <!-- 삭제자 -->
|
||||
, DEL_RSN = #{rcvmt.delRsn} <!-- 삭제 사유 -->
|
||||
WHERE RCVMT_ID = #{rcvmt.rcvmtId}</update>
|
||||
|
||||
<update id="deleteRcvmt" parameterType="map">/* 수납 대장 삭제(rcvmtMapper.deleteRcvmt) */
|
||||
UPDATE TB_RCVMT SET
|
||||
USE_YN = 'N'
|
||||
, MDFCN_DT =<include refid="utility.now" />
|
||||
, MDFR = #{currentUser.id}
|
||||
WHERE RCVMT_ID = #{rcvmt.rcvmtId}</update>
|
||||
|
||||
</mapper>
|
@ -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}");
|
||||
|
||||
/**************************************************************************
|
||||
* DatasetControl
|
||||
**************************************************************************/
|
||||
var ${pageName}Control = new DatasetControl({
|
||||
prefix : "totalInfoRcvmt"
|
||||
, prefixName : "수납 정보"
|
||||
, keymapper : info => info ? info.RCVMT_ID : ""
|
||||
, dataGetter : obj => obj.rcvmt
|
||||
, formats : {
|
||||
RCVMT_YMD : dateFormat
|
||||
, ACNTG_YMD : dateFormat
|
||||
, PSTMRK_YMD : dateFormat
|
||||
, REG_DT : 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([${rcvmt}]);
|
||||
});
|
||||
|
||||
// #sourceURL=sprt02070-info.jsp
|
||||
</script>
|
Loading…
Reference in New Issue