diff --git a/src/main/java/cokr/xit/fims/enis/EnisMtchg.java b/src/main/java/cokr/xit/fims/enis/EnisMtchg.java new file mode 100644 index 00000000..acdbd0c1 --- /dev/null +++ b/src/main/java/cokr/xit/fims/enis/EnisMtchg.java @@ -0,0 +1,200 @@ +package cokr.xit.fims.enis; + +import cokr.xit.foundation.AbstractEntity; +import lombok.Getter; +import lombok.Setter; + +/** + * 세외수입 매칭 내역 + * @author JoJH + */ +@Getter +@Setter +public class EnisMtchg extends AbstractEntity { + + /** + * 매칭 ID + */ + private String mtchgId; + + /** + * 단속 ID + */ + private String crdnId; + + /** + * 단속 일시 + */ + private String crdnDt; + + /** + * 법정동 명 + */ + private String stdgNm; + + /** + * 단속 장소 + */ + private String crdnPlc; + + /** + * 부과 키 + */ + private String lvyKey; + + /** + * 회계 연도 + */ + private String acntgYr; + + /** + * 부과 번호 + */ + private String levyNo; + + /** + * 부과 금액 + */ + private Integer levyAmt; + + /** + * 가산 금액 + */ + private Integer adtnAmt; + + /** + * 합계 금액 + */ + private Integer sumAmt; + + /** + * 처리 상태 코드 + */ + private String prcsSttsCd; + + /** + * 전자납부번호 + */ + private String epayno; + + /** + * 은행 명1 + */ + private String bankNm1; + + /** + * 가상계좌번호1 + */ + private String vractno1; + + /** + * 은행 명2 + */ + private String bankNm2; + + /** + * 가상계좌번호2 + */ + private String vractno2; + + /** + * 은행 명3 + */ + private String bankNm3; + + /** + * 가상계좌번호3 + */ + private String vractno3; + + /** + * 은행 명4 + */ + private String bankNm4; + + /** + * 가상계좌번호4 + */ + private String vractno4; + + /** + * 은행 명5 + */ + private String bankNm5; + + /** + * 가상계좌번호5 + */ + private String vractno5; + + /** + * 은행 명6 + */ + private String bankNm6; + + /** + * 가상계좌번호6 + */ + private String vractno6; + + /** + * 은행 명7 + */ + private String bankNm7; + + /** + * 가상계좌번호7 + */ + private String vractno7; + + /** + * 은행 명8 + */ + private String bankNm8; + + /** + * 가상계좌번호8 + */ + private String vractno8; + + /** + * 은행 명9 + */ + private String bankNm9; + + /** + * 가상계좌번호9 + */ + private String vractno9; + + /** + * 은행 명10 + */ + private String bankNm10; + + /** + * 가상계좌번호10 + */ + private String vractno10; + + /** + * 은행 명11 + */ + private String bankNm11; + + /** + * 가상계좌번호11 + */ + private String vractno11; + + /** + * 삭제 여부 + */ + private String delYn; + + /** + * 삭제 사유 + */ + private String delRsn; + +} diff --git a/src/main/java/cokr/xit/fims/enis/EnisMtchgQuery.java b/src/main/java/cokr/xit/fims/enis/EnisMtchgQuery.java new file mode 100644 index 00000000..d1810128 --- /dev/null +++ b/src/main/java/cokr/xit/fims/enis/EnisMtchgQuery.java @@ -0,0 +1,102 @@ +package cokr.xit.fims.enis; + +import cokr.xit.foundation.component.QueryRequest; + +/**세외수입 매칭 내역 정보 조회 요청 + * + *

상세 설명: + * + *

+ * ============ 변경 이력 ============
+ * 2023-10-04	JoJH 최초 작성
+ * ================================
+ * 
+ */ +public class EnisMtchgQuery extends QueryRequest { + + private static final long serialVersionUID = 1L; + + // ID + private String[] mtchgIDs; // 매칭 IDs + private String mtchgId; // 매칭 ID + private String crdnId; // 단속 ID + + // ETC + private String callPurpose; // 자료 조회시 호출용도. (view 조회, create 등록, update 수정, refresh 재조회) + private String delYn; // 삭제 여부 + private String delRsn; // 삭제 사유 + private String crdnDelYn; // 단속 삭제 여부 + + public String[] getMtchgIDs() { + return ifEmpty(mtchgIDs, () -> null); + } + + public T setMtchgIDs(String... mtchgIDs) { + this.mtchgIDs = mtchgIDs; + + return self(); + } + + public String getMtchgId() { + return ifEmpty(mtchgId, () -> null); + } + + public T setMtchgId(String mtchgId) { + this.mtchgId = mtchgId; + + return self(); + } + + public String getCrdnId() { + return ifEmpty(crdnId, () -> null); + } + + public T setCrdnId(String crdnId) { + this.crdnId = crdnId; + + return self(); + } + + // ETC ///////////////////////////////////////////////////////////////////// + public String getCallPurpose() { + return ifEmpty(callPurpose, () -> null); + } + + public T setCallPurpose(String callPurpose) { + this.callPurpose = callPurpose; + + return self(); + } + + public String getDelYn() { + return ifEmpty(delYn, () -> null); + } + + public T setDelYn(String delYn) { + this.delYn = delYn; + + return self(); + } + + public String getDelRsn() { + return ifEmpty(delRsn, () -> null); + } + + public T setDelRsn(String delRsn) { + this.delRsn = delRsn; + + return self(); + } + + public String getCrdnDelYn() { + return ifEmpty(crdnDelYn, () -> null); + } + + public T setCrdnDelYn(String crdnDelYn) { + this.crdnDelYn = crdnDelYn; + + return self(); + } + // ETC ///////////////////////////////////////////////////////////////////// + +} diff --git a/src/main/java/cokr/xit/fims/enis/dao/EnisMtchgMapper.java b/src/main/java/cokr/xit/fims/enis/dao/EnisMtchgMapper.java new file mode 100644 index 00000000..d149b2c8 --- /dev/null +++ b/src/main/java/cokr/xit/fims/enis/dao/EnisMtchgMapper.java @@ -0,0 +1,107 @@ +package cokr.xit.fims.enis.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.enis.EnisMtchg; +import cokr.xit.fims.enis.EnisMtchgQuery; + +/** 세외수입 매칭 내역 정보 DAO + * + *

상세 설명: + * + *

+ * ============ 변경 이력 ============
+ * 2023-10-04	JoJH 최초 작성
+ * ================================
+ * 
+ */ +@Mapper("enisMtchgMapper") +public interface EnisMtchgMapper extends AbstractMapper { + + /**지정한 조건에 따라 세외수입 매칭 내역 목록을 조회하여 반환한다.
+ * @param req 세외수입 매칭 내역 조회 조건 + * @return 세외수입 매칭 내역 목록 + */ + List selectEnisMtchgList(EnisMtchgQuery req); + + /**지정한 조건에 따라 세외수입 매칭 내역 객체들을 반환한다. + * @param req 세외수입 매칭 내역 조회 조건 + * @return 세외수입 매칭 내역 객체 목록 + */ + List selectEnisMtchgs(EnisMtchgQuery req); + + default DataObject selectEnisMtchgInfo(String crdnId) { + List infoEnisMtchg = selectEnisMtchgs(new EnisMtchgQuery().setCrdnId(crdnId) + .setDelYn("N") + .setOrderBy("MTCHG_ID DESC")); + + return !infoEnisMtchg.isEmpty() ? infoEnisMtchg.get(0) : null; + } + + /**세외수입 매칭 내역 정보를 등록한다. + * @param params 파라미터 + *
  • "enisMtchg" - 세외수입 매칭 내역
  • + *
  • "currentUser" - 현재 접속한 사용자
  • + *
+ * @return 저장된 정보수 + */ + int insertEnisMtchg(Map params); + + /**세외수입 매칭 내역 정보를 등록한다. + * @param enisMtchg 세외수입 매칭 내역 + * @return 저장 여부 + *
  • 저장됐으면 true
  • + *
  • 그렇지 않으면 false
  • + *
+ */ + default boolean insert(EnisMtchg enisMtchg) { + return enisMtchg != null && insertEnisMtchg(params().set("enisMtchg", enisMtchg)) == 1; + } + + /**세외수입 매칭 내역 정보를 수정한다. + * @param params 파라미터 + *
  • "enisMtchg" - 세외수입 매칭 내역
  • + *
  • "currentUser" - 현재 접속한 사용자
  • + *
+ * @return 저장된 정보수 + */ + int updateEnisMtchg(Map params); + + /**세외수입 매칭 내역 정보를 수정한다. + * @param enisMtchg 세외수입 매칭 내역 + * @return 저장 여부 + *
  • 저장됐으면 true
  • + *
  • 그렇지 않으면 false
  • + *
+ */ + default boolean update(EnisMtchg enisMtchg) { + return enisMtchg != null && updateEnisMtchg(params().set("enisMtchg", enisMtchg)) == 1; + } + + /**지정한 세외수입 매칭 내역을 삭제한다. + * @param params 파라미터 + *
  • "enisMtchg" - 세외수입 매칭 내역
  • + *
  • "currentUser" - 현재 접속한 사용자
  • + *
+ * @return 저장된 정보수 + */ + int deleteEnisMtchg(Map params); + + /**세외수입 매칭 내역 정보를 삭제한다. + * @param enisMtchg 세외수입 매칭 내역 + * @return 저장 여부 + *
  • 저장됐으면 true
  • + *
  • 그렇지 않으면 false
  • + *
+ */ + default boolean delete(EnisMtchg enisMtchg) { + return enisMtchg != null && deleteEnisMtchg(params().set("enisMtchg", enisMtchg)) == 1; + } + +} diff --git a/src/main/java/cokr/xit/fims/enis/service/EnisMtchgService.java b/src/main/java/cokr/xit/fims/enis/service/EnisMtchgService.java new file mode 100644 index 00000000..bf5ba6ab --- /dev/null +++ b/src/main/java/cokr/xit/fims/enis/service/EnisMtchgService.java @@ -0,0 +1,61 @@ +package cokr.xit.fims.enis.service; + +import java.util.List; + +import cokr.xit.foundation.data.DataObject; + +import cokr.xit.fims.enis.EnisMtchg; +import cokr.xit.fims.enis.EnisMtchgQuery; + +/**세외수입 매칭 내역 관리 서비스 인터페이스. + * + *

상세 설명: + * + *

+ * ============ 변경 이력 ============
+ * 2023-10-04	JoJH 최초 작성
+ * ================================
+ * 
+ */ +public interface EnisMtchgService { + + /**지정한 조건에 따라 세외수입 매칭 내역 목록을 조회하여 반환한다. + * @param req 세외수입 매칭 내역 조회 조건 + * @return 세외수입 매칭 내역 목록 + */ + List getEnisMtchgList(EnisMtchgQuery req); + + /**지정한 조건에 따라 세외수입 매칭 내역 객체들을 반환한다. + * @param req 세외수입 매칭 내역 조회 조건 + * @return 세외수입 매칭 내역 객체 목록 + */ + List getEnisMtchgs(EnisMtchgQuery req); + + /**세외수입 매칭 내역 정보를 등록한다. + * @param enisMtchg 세외수입 매칭 내역 + * @return 저장 여부 + *
  • 저장됐으면 true
  • + *
  • 그렇지 않으면 false
  • + *
+ */ + boolean createEnisMtchg(EnisMtchg enisMtchg); + + /**세외수입 매칭 내역 정보를 수정한다. + * @param enisMtchg 세외수입 매칭 내역 + * @return 저장 여부 + *
  • 저장됐으면 true
  • + *
  • 그렇지 않으면 false
  • + *
+ */ + boolean updateEnisMtchg(EnisMtchg enisMtchg); + + /**세외수입 매칭 내역 정보를 삭제한다. + * @param enisMtchg 세외수입 매칭 내역 + * @return 저장 여부 + *
  • 저장됐으면 true
  • + *
  • 그렇지 않으면 false
  • + *
+ */ + boolean removeEnisMtchg(EnisMtchg enisMtchg); + +} diff --git a/src/main/java/cokr/xit/fims/enis/service/bean/EnisMtchgBean.java b/src/main/java/cokr/xit/fims/enis/service/bean/EnisMtchgBean.java new file mode 100644 index 00000000..5e9d1011 --- /dev/null +++ b/src/main/java/cokr/xit/fims/enis/service/bean/EnisMtchgBean.java @@ -0,0 +1,90 @@ +package cokr.xit.fims.enis.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.enis.EnisMtchg; +import cokr.xit.fims.enis.EnisMtchgQuery; +import cokr.xit.fims.enis.dao.EnisMtchgMapper; + +/**세외수입 매칭 내역 정보 관리 Bean + * + *

상세 설명: + * + *

+ * ============ 변경 이력 ============
+ * 2023-10-04	JoJH 최초 작성
+ * ================================
+ * 
+ */ +@Component("enisMtchgBean") +public class EnisMtchgBean extends AbstractComponent { + + /** 세외수입 매칭 내역 정보 DAO */ + @Resource(name = "enisMtchgMapper") + private EnisMtchgMapper enisMtchgMapper; + + /**지정한 조건에 따라 세외수입 매칭 내역 목록을 조회하여 반환한다. + * @param req 세외수입 매칭 내역 조회 조건 + * @return 세외수입 매칭 내역 목록 + */ + public List getEnisMtchgList(EnisMtchgQuery req) { + return enisMtchgMapper.selectEnisMtchgList(req); + } + + /**지정한 조건에 따라 세외수입 매칭 내역 객체들을 반환한다. + * @param req 세외수입 매칭 내역 조회 조건 + * @return 세외수입 매칭 내역 객체 목록 + */ + public List getEnisMtchgs(EnisMtchgQuery req) { + return enisMtchgMapper.selectEnisMtchgs(req); + } + + /**지정한 단속 ID의 세외수입 매칭 내역 정보를 반환한다.
+ * @param crdnId 단속 ID + * @return 세외수입 매칭 내역 정보 + */ + public DataObject getEnisMtchgInfo(String crdnId) { + return enisMtchgMapper.selectEnisMtchgInfo(crdnId); + } + + /**세외수입 매칭 내역 정보를 등록한다. + * @param enisMtchg 세외수입 매칭 내역 + * @return 저장 여부 + *
  • 저장됐으면 true
  • + *
  • 그렇지 않으면 false
  • + *
+ */ + public boolean createEnisMtchg(EnisMtchg enisMtchg) { + return enisMtchgMapper.insert(enisMtchg); + } + + /**세외수입 매칭 내역 정보를 수정한다. + * @param enisMtchg 세외수입 매칭 내역 + * @return 저장 여부 + *
  • 저장됐으면 true
  • + *
  • 그렇지 않으면 false
  • + *
+ */ + public boolean updateEnisMtchg(EnisMtchg enisMtchg) { + return enisMtchgMapper.update(enisMtchg); + } + + /**세외수입 매칭 내역 정보를 삭제한다. + * @param enisMtchg 세외수입 매칭 내역 + * @return 저장 여부 + *
  • 저장됐으면 true
  • + *
  • 그렇지 않으면 false
  • + *
+ */ + public boolean removeEnisMtchg(EnisMtchg enisMtchg) { + return enisMtchgMapper.delete(enisMtchg); + } + +} diff --git a/src/main/java/cokr/xit/fims/enis/service/bean/EnisMtchgServiceBean.java b/src/main/java/cokr/xit/fims/enis/service/bean/EnisMtchgServiceBean.java new file mode 100644 index 00000000..d0aa916e --- /dev/null +++ b/src/main/java/cokr/xit/fims/enis/service/bean/EnisMtchgServiceBean.java @@ -0,0 +1,58 @@ +package cokr.xit.fims.enis.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.enis.EnisMtchg; +import cokr.xit.fims.enis.EnisMtchgQuery; +import cokr.xit.fims.enis.service.EnisMtchgService; + +/**세외수입 매칭 내역 서비스 구현체. + * + *

상세 설명: + * + *

+ * ============ 변경 이력 ============
+ * 2023-10-04	JoJH 최초 작성
+ * ================================
+ * 
+ */ +@Service("enisMtchgService") +public class EnisMtchgServiceBean extends AbstractServiceBean implements EnisMtchgService { + + /** 세외수입 매칭 내역 정보 Bean */ + @Resource(name = "enisMtchgBean") + private EnisMtchgBean enisMtchgBean; + + @Override + public List getEnisMtchgList(EnisMtchgQuery req) { + return enisMtchgBean.getEnisMtchgList(req); + } + + @Override + public List getEnisMtchgs(EnisMtchgQuery req) { + return enisMtchgBean.getEnisMtchgs(req); + } + + @Override + public boolean createEnisMtchg(EnisMtchg enisMtchg) { + return enisMtchgBean.createEnisMtchg(enisMtchg); + } + + @Override + public boolean updateEnisMtchg(EnisMtchg enisMtchg) { + return enisMtchgBean.updateEnisMtchg(enisMtchg); + } + + @Override + public boolean removeEnisMtchg(EnisMtchg enisMtchg) { + return enisMtchgBean.removeEnisMtchg(enisMtchg); + } + +} diff --git a/src/main/java/cokr/xit/fims/enis/web/EnisMtchgController.java b/src/main/java/cokr/xit/fims/enis/web/EnisMtchgController.java new file mode 100644 index 00000000..e930dfac --- /dev/null +++ b/src/main/java/cokr/xit/fims/enis/web/EnisMtchgController.java @@ -0,0 +1,105 @@ +package cokr.xit.fims.enis.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.foundation.web.AbstractController; + +import cokr.xit.fims.enis.EnisMtchg; +import cokr.xit.fims.enis.EnisMtchgQuery; +import cokr.xit.fims.enis.service.EnisMtchgService; + +/**세외수입 매칭 내역 서비스의 웹 컨트롤러 + * + *

상세 설명: + * + *

+ * ============ 변경 이력 ============
+ * 2023-10-04	mjkhan 최초 작성
+ * ================================
+ * 
+ */ +@RequestMapping(name = "세외수입 매칭 내역", value = "/enisMtchg") +public class EnisMtchgController extends AbstractController { + + /**세외수입 매칭 내역 서비스*/ + @Resource(name = "enisMtchgService") + private EnisMtchgService enisMtchgService; + + /**세외수입 매칭 내역 관리 메인화면(enisMtchg/enisMtchg-main)을 연다. + * 조건없는 {@link #getEnisMtchgList(EnisMtchgQuery) 세외수입 매칭 내역 조회 결과}를 포함시킨다. + * @return /enisMtchg/enisMtchg-main + */ + @RequestMapping(name = "세외수입 매칭 내역 메인", value = "/main.do") + public ModelAndView main() { + ModelAndView mav = getEnisMtchgList(new EnisMtchgQuery().setPageNum(1)); + mav.setViewName("/enisMtchg/enisMtchg-main"); + return mav.addObject("enisMtchgList", toJson(mav.getModel().get("enisMtchgList"))); + } + + /**세외수입 매칭 내역 목록을 조회하여 반환한다.
+ * {@link EnisMtchgService#getEnisMtchgList(EnisMtchgQuery)} 참고 + * @param req 세외수입 매칭 내역 조회 조건 + * @return jsonView + *
 {
+	 *     "enisMtchgList": [세외수입 매칭 내역 목록]
+	 *     "enisMtchgStart": 세외수입 매칭 내역 목록 시작 인덱스
+	 *     "enisMtchgFetch": 한 번에 가져오는 세외수입 매칭 내역 목록 수
+	 *     "enisMtchgTotal": 조회 결과 찾은 전체 세외수입 매칭 내역 수
+	 * }
+ */ + @RequestMapping(name = "세외수입 매칭 내역 조회", value = "/list.do") + public ModelAndView getEnisMtchgList(EnisMtchgQuery req) { + List result = enisMtchgService.getEnisMtchgList(setFetchSize(req)); + return setCollectionInfo(new ModelAndView("jsonView"), result, "enisMtchg"); + } + + /**세외수입 매칭 내역를 등록한다. + * @param enisMtchg 세외수입 매칭 내역 정보 + * @return jsonView + *
 {
+	 *     "saved": 등록되었으면 true, 그렇지 않으면 false
+	 * }
+ */ + @PostMapping(name = "세외수입 매칭 내역 등록", value = "/create.do") + public ModelAndView createEnisMtchg(EnisMtchg enisMtchg) { + boolean saved = enisMtchgService.createEnisMtchg(enisMtchg); + return new ModelAndView("jsonView") + .addObject("saved", saved); + } + + /**세외수입 매칭 내역 정보를 수정한다. + * @param enisMtchg 세외수입 매칭 내역 정보 + * @return jsonView + *
 {
+	 *     "saved": 수정되었으면 true, 그렇지 않으면 false
+	 * }
+ */ + @PostMapping(name = "세외수입 매칭 내역 수정", value = "/update.do") + public ModelAndView updateEnisMtchg(EnisMtchg enisMtchg) { + boolean saved = enisMtchgService.updateEnisMtchg(enisMtchg); + return new ModelAndView("jsonView") + .addObject("saved", saved); + } + + /**지정한 세외수입 매칭 내역를 제거한다. + * @param enisMtchgIDs 세외수입 매칭 내역 아이디 + * @return jsonView + *
 {
+	 *     "affected": 저장된 정보수
+	 *     "saved": 저장되었으면 true, 그렇지 않으면 false
+	 * }
+ */ + @PostMapping(name = "세외수입 매칭 내역 제거", value = "/remove.do") + public ModelAndView removeEnisMtchg(EnisMtchg enisMtchg) { + boolean saved = enisMtchgService.removeEnisMtchg(enisMtchg); + return new ModelAndView("jsonView") + .addObject("saved", saved); + } + +} diff --git a/src/main/java/cokr/xit/fims/sndb/Sndng.java b/src/main/java/cokr/xit/fims/sndb/Sndng.java index 00ca7936..0917e158 100644 --- a/src/main/java/cokr/xit/fims/sndb/Sndng.java +++ b/src/main/java/cokr/xit/fims/sndb/Sndng.java @@ -27,11 +27,6 @@ public class Sndng extends AbstractEntity { */ private String taskSeCd; - /** - * 위반 ID - */ - private String vltnId; - /** * 발송 등록 구분 코드 */ @@ -112,6 +107,16 @@ public class Sndng extends AbstractEntity { */ private String resndYn; + /** + * 삭제 여부 + */ + private String delYn; + + /** + * 삭제 사유 + */ + private String delRsn; + /** * 단속 IDs */ diff --git a/src/main/java/cokr/xit/fims/sndb/SndngDtl.java b/src/main/java/cokr/xit/fims/sndb/SndngDtl.java index 85300c5e..235c1d87 100644 --- a/src/main/java/cokr/xit/fims/sndb/SndngDtl.java +++ b/src/main/java/cokr/xit/fims/sndb/SndngDtl.java @@ -37,6 +37,11 @@ public class SndngDtl extends AbstractEntity { */ private String levyId; + /** + * 위반 코드 + */ + private String vltnCd; + /** * 차량번호 */ @@ -307,4 +312,9 @@ public class SndngDtl extends AbstractEntity { */ private String vrActno11; + /** + * 삭제 여부 + */ + private String delYn; + } diff --git a/src/main/java/cokr/xit/fims/sndb/dao/SndngMapper.java b/src/main/java/cokr/xit/fims/sndb/dao/SndngMapper.java index e7f206c2..3f6b515a 100644 --- a/src/main/java/cokr/xit/fims/sndb/dao/SndngMapper.java +++ b/src/main/java/cokr/xit/fims/sndb/dao/SndngMapper.java @@ -37,6 +37,14 @@ public interface SndngMapper extends AbstractMapper { */ List selectSndngTrgts(SndbQuery req); + default DataObject selectSndngTrgtInfo(String crdnId) { + List InfoSndngTrgt = selectSndngTrgts(new SndbQuery().setCrdnId(crdnId) + .setCrdnDelYn("N") + .setOrderBy("C.CRDN_ID DESC")); + + return !InfoSndngTrgt.isEmpty() ? InfoSndngTrgt.get(0) : null; + } + /**지정한 조건에 따라 계도장 발송 현황 목록을 조회하여 반환한다.
* @param req 발송 대장 조회 조건 * @return 계도장 발송 현황 목록 diff --git a/src/main/java/cokr/xit/fims/sndb/service/bean/SndngBean.java b/src/main/java/cokr/xit/fims/sndb/service/bean/SndngBean.java index f86f1aa3..315c86c5 100644 --- a/src/main/java/cokr/xit/fims/sndb/service/bean/SndngBean.java +++ b/src/main/java/cokr/xit/fims/sndb/service/bean/SndngBean.java @@ -12,6 +12,10 @@ import cokr.xit.foundation.data.DataObject; import cokr.xit.fims.sndb.Sndng; import cokr.xit.fims.sndb.SndngDtl; import cokr.xit.fims.sndb.Svbtc; +import cokr.xit.fims.cmmn.CrdnSttsHstry; +import cokr.xit.fims.cmmn.service.bean.CrdnSttsHstryBean; +import cokr.xit.fims.enis.EnisMtchg; +import cokr.xit.fims.enis.service.bean.EnisMtchgBean; import cokr.xit.fims.sndb.SndbQuery; import cokr.xit.fims.sndb.dao.SndngMapper; import cokr.xit.fims.sndb.dao.SvbtcMapper; @@ -37,6 +41,14 @@ public class SndngBean extends AbstractComponent { @Resource(name = "svbtcMapper") private SvbtcMapper svbtcMapper; + /** 단속 상태 이력 정보 Bean */ + @Resource(name = "crdnSttsHstryBean") + private CrdnSttsHstryBean crdnSttsHstryBean; + + /** 세외수입 매칭 내역 정보 Bean */ + @Resource(name = "enisMtchgBean") + private EnisMtchgBean enisMtchgBean; + /**지정한 조건에 따라 계도장 발송 대상 목록을 조회하여 반환한다. * @param req 발송 대장 조회 조건 * @return 계도장 발송 대상 목록 @@ -121,24 +133,6 @@ public class SndngBean extends AbstractComponent { return sndngMapper.selectNhtSndngs(req); } - - - - - - - - - - - - - - - - - - /**지정한 조건에 따라 발송 대장 목록을 조회하여 반환한다. * @param req 발송 대장 조회 조건 * @return 발송 대장 목록 @@ -164,24 +158,154 @@ public class SndngBean extends AbstractComponent { */ public String createSndng(Sndng sndng) { // 변수 선언 - boolean retSuccess = false; // DB 처리 결과 - String retMessage = "[F] "; // 처리 결과 메시지 + boolean retSuccess = false; // DB 처리 결과 + String retMessage = "[F] "; // 처리 결과 메시지 + String newCrdnSttsCd = ""; // 단속 상태 코드 + int ffnlgAmt = 0; // 과태료 금액 + int levyPcptax = 0; // 부과 본세 + int levyAdamt = 0; // 부과 가산금 + int levySumAmt = 0; // 부과 합계 금액 + + // 계고장 + if (sndng.getSndngSeCd().equals("10")) { + sndng.setLevyBgngYmd(null); // 부과 시작 일자 + sndng.setLevyEndYmd(null); // 부과 종료 일자 + sndng.setDudtYmd(null); // 납기 일자 + } + // 발송 등록 구분 코드 + if (sndng.getTnocs() == 1) { + sndng.setSndngRegSeCd("02"); // 개별 + } else { + sndng.setSndngRegSeCd("01"); // 일괄 + } + // 재발송 여부 + if (sndng.getResndYn() == null) { + sndng.setResndYn("N"); + } + // 삭제 여부 + if (sndng.getDelYn() == null) { + sndng.setDelYn("N"); + } + // 발송 구분 코드 + if (sndng.getSndngSeCd().equals("01")) { + newCrdnSttsCd = "42"; // 사전통보중 + } else if (sndng.getSndngSeCd().equals("10")) { + newCrdnSttsCd = "84"; // 계고장 출력 완료 + } else { + newCrdnSttsCd = ""; + } // 발송 등록 -// retSuccess = sndngMapper.insertSndng(sndng); -// if (!retSuccess) { -// // 예외를 발생시켜서 오류메세지를 보내고 DB Rollback -// throw new RuntimeException("발송 등록에 실패하였습니다."); -// } - - // 발송 상세 등록 -// SndngDtl sndngDtl = new SndngDtl(); -// -// retSuccess = sndngMapper.insertSndngDtl(sndngDtl); -// if (!retSuccess) { -// // 예외를 발생시켜서 오류메세지를 보내고 DB Rollback -// throw new RuntimeException("발송 등록에 실패하였습니다."); -// } + retSuccess = sndngMapper.insertSndng(sndng); + if (!retSuccess) { + // 예외를 발생시켜서 오류메세지를 보내고 DB Rollback + throw new RuntimeException("발송 등록에 실패하였습니다."); + } + + for (int iLoop = 0; iLoop < sndng.getCrdnIDs().length ; iLoop++) { + // 발송 상세 등록 + SndngDtl sndngDtl = new SndngDtl(); + + // 단속, 납부자 정보 조회 + DataObject infoCrdnSndngTrgt = sndngMapper.selectSndngTrgtInfo(sndng.getCrdnIDs()[iLoop]); + + // 주정차 위반, 전용차로 위반 + if (sndng.getTaskSeCd().equals("BPV") || sndng.getTaskSeCd().equals("PVS")) { + // + } else if (sndng.getTaskSeCd().equals("DPV") || sndng.getTaskSeCd().equals("ECA") || sndng.getTaskSeCd().equals("TPV")) { + // 기본 데이터 셋팅 + sndngDtl.setSndngId(sndng.getSndngId()); // 발송 ID + sndngDtl.setCrdnId(infoCrdnSndngTrgt.string("CRDN_ID")); // 단속 ID + sndngDtl.setLevyId(infoCrdnSndngTrgt.string("LEVY_ID")); // 부과 ID + sndngDtl.setVltnCd(infoCrdnSndngTrgt.string("VLTN_CD")); // 위반 코드 + sndngDtl.setVhrno(infoCrdnSndngTrgt.string("VHRNO")); // 차량번호 + sndngDtl.setCrdnDt(infoCrdnSndngTrgt.string("CRDN_YMD_TM_MASK")); // 단속 일시 + sndngDtl.setCrdnPlc(infoCrdnSndngTrgt.string("CRDN_PLC")); // 단속 장소 + sndngDtl.setSndngYmd(sndng.getSndngYmd()); // 발송 일자 + sndngDtl.setDudtYmd(sndng.getDudtYmd()); // 납기 일자 + + if (sndng.getSndngSeCd().equals("10")) { // 계고장 + ffnlgAmt = infoCrdnSndngTrgt.number("FFNLG_CRDN_AMT").intValue(); // 과태료 금액 + levyPcptax = infoCrdnSndngTrgt.number("FFNLG_AMT").intValue(); // 부과 본세 + levyAdamt = 0; // 부과 가산금 + levySumAmt = infoCrdnSndngTrgt.number("FFNLG_AMT").intValue(); // 부과 합계 금액 + } else { + ffnlgAmt = 0; // 과태료 금액 + levyPcptax = 0; // 부과 본세 + levyAdamt = 0; // 부과 가산금 + levySumAmt = 0; // 부과 합계 금액 + } + + sndngDtl.setFfnlgAmt(ffnlgAmt); // 과태료 금액 + sndngDtl.setLevyPcptax(levyPcptax); // 부과 본세 + sndngDtl.setLevyAdamt(levyAdamt); // 부과 가산금 + sndngDtl.setLevySumAmt(levySumAmt); // 부과 합계 금액 + sndngDtl.setRtpyrNm(infoCrdnSndngTrgt.string("RTPYR_NM")); // 납부자 명 + sndngDtl.setRtpyrNo(infoCrdnSndngTrgt.string("RTPYR_NO")); // 납부자 번호 + sndngDtl.setRtpyrAddr(infoCrdnSndngTrgt.string("ADDR")); // 납부자 주소 + sndngDtl.setRtpyrDtlAddr(infoCrdnSndngTrgt.string("DTL_ADDR")); // 납부자 상세 주소 + sndngDtl.setRtpyrZip(infoCrdnSndngTrgt.string("ZIP")); // 납부자 우편번호 + sndngDtl.setSndngDtlSttsCd("00"); // 발송 상세 상태 코드 - 00 발송준비 + sndngDtl.setDelYn("N"); // 삭제 여부 + } else { + // 예외를 발생시켜서 오류메세지를 보내고 DB Rollback + throw new RuntimeException("발송 상세 등록 작업중 업무 구분 코드가 확인되지 않았습니다."); + } + + retSuccess = sndngMapper.insertSndngDtl(sndngDtl); + if (!retSuccess) { + // 예외를 발생시켜서 오류메세지를 보내고 DB Rollback + throw new RuntimeException("발송 상세 등록에 실패하였습니다."); + } + + // 단속상태이력(TB_CRDN_STTS_HSTRY) + CrdnSttsHstry crdnSttsHstry = new CrdnSttsHstry(); + + crdnSttsHstry.setCrdnId(infoCrdnSndngTrgt.string("CRDN_ID")); + crdnSttsHstry.setBfrSttsCd(infoCrdnSndngTrgt.string("CRDN_STTS_CD")); + crdnSttsHstry.setBfrSttsChgDt(infoCrdnSndngTrgt.string("CRDN_STTS_CHG_DT")); + crdnSttsHstry.setCrdnSttsCd(newCrdnSttsCd); + crdnSttsHstry.setTaskDtlId(sndngDtl.getSndngDtlId()); + + // 단속 상태 이력(TB_CRDN_STTS_HSTRY) 대장에 등록하고, 단속(TB_CRDN) 대장을 수정한다. + retSuccess = crdnSttsHstryBean.createHstryUpdateCrdnSttsCd(crdnSttsHstry); + if (!retSuccess) { + // 예외를 발생시켜서 오류메세지를 보내고 DB Rollback + throw new RuntimeException("부과제외 등록 중 단속 대장의 단속상태 변경에 실패하였습니다."); + } + + // 세외수입 등록 + if (sndng.getTaskSeCd().equals("DPV") || sndng.getTaskSeCd().equals("ECA") || sndng.getTaskSeCd().equals("TPV")) { + // 세외수입 매칭 내역(TB_ENIS_MTCHG) + EnisMtchg enisMtchg = new EnisMtchg(); + + // 세외수입 매핑 내역 정보 조회 + DataObject infoEnisMtchg = enisMtchgBean.getEnisMtchgInfo(sndng.getCrdnIDs()[iLoop]); + + // 기존에 등록된 자료가 있다면 삭제 처리 + if (infoEnisMtchg != null) { + enisMtchg.setCrdnId(infoCrdnSndngTrgt.string("CRDN_ID")); + + enisMtchgBean.removeEnisMtchg(enisMtchg); + } + + enisMtchg.setCrdnId(infoCrdnSndngTrgt.string("CRDN_ID")); + enisMtchg.setCrdnDt(infoCrdnSndngTrgt.string("CRDN_YMD_TM_MASK")); + enisMtchg.setStdgNm(infoCrdnSndngTrgt.string("CRDN_STDG_NM")); + enisMtchg.setCrdnPlc(infoCrdnSndngTrgt.string("CRDN_PLC")); + enisMtchg.setLevyAmt(levyPcptax); // 부과 금액 + enisMtchg.setAdtnAmt(levyAdamt); // 가산 금액 + enisMtchg.setSumAmt(levySumAmt); // 합계 금액 + enisMtchg.setPrcsSttsCd("01"); // 처리 상태 코드 + + // 단속 상태 이력(TB_CRDN_STTS_HSTRY) 대장에 등록하고, 단속(TB_CRDN) 대장을 수정한다. + retSuccess = enisMtchgBean.createEnisMtchg(enisMtchg); + if (!retSuccess) { + // 예외를 발생시켜서 오류메세지를 보내고 DB Rollback + throw new RuntimeException("부과제외 등록 중 단속 대장의 단속상태 변경에 실패하였습니다."); + } + } + } retMessage = "[S] 작업이 정상 처리 되었습니다."; diff --git a/src/main/java/cokr/xit/fims/sndb/web/Sndb04Controller.java b/src/main/java/cokr/xit/fims/sndb/web/Sndb04Controller.java index 027a688f..29a65be8 100644 --- a/src/main/java/cokr/xit/fims/sndb/web/Sndb04Controller.java +++ b/src/main/java/cokr/xit/fims/sndb/web/Sndb04Controller.java @@ -38,7 +38,7 @@ public class Sndb04Controller extends ApplicationController { , getWrngSndngTrgtInfo = "/020/info.do" // 계도장 발송 대상 등록 , warningSendingMain = "/030/main.do" // 계도장 발송 현황 메인 화면 , getWrngSndngList = "/030/list.do" // 계도장 발송 현황 목록 조회 - + , advanceNoticeSendingTargetMain = "/030/main.do" // 사전통보 발송 대상 메인 화면 , getAdvntceSndngTrgtList = "/030/list.do" // 사전통보 발송 대상 목록 조회 , advanceNoticeSendingMain = "/040/main.do" // 사전통보 발송 현황 메인 화면 @@ -101,7 +101,7 @@ public class Sndb04Controller extends ApplicationController { * } */ public ModelAndView getWrngSndngTrgtInfo(SndbQuery req) { - List wrngSndngTrgts = sndngService.getWrngSndngTrgts(req); + List sndngTrgts = sndngService.getSndngTrgts(req); boolean json = jsonResponse(); @@ -112,8 +112,8 @@ public class Sndb04Controller extends ApplicationController { return mav .addObject("pageName", "sndb01020") - .addObject("FIM054List", commonCodes.get("FIM054")) // 업무 구분 코드(TASK_SE_CD) - .addObject("wrngSndngTrgts", json ? wrngSndngTrgts : toJson(wrngSndngTrgts)) // 계도장 발송 대상 정보 + .addObject("FIM054List", commonCodes.get("FIM054")) // 업무 구분 코드(TASK_SE_CD) + .addObject("wrngSndngTrgts", json ? sndngTrgts : toJson(sndngTrgts)) // 계도장 발송 대상 정보 ; } @@ -280,7 +280,8 @@ public class Sndb04Controller extends ApplicationController { */ @PostMapping(name = "발송 대장 등록", value = "/010/createSndng.do") public ModelAndView createSndng(Sndng sndng) { - boolean saved = sndngService.createSndng(sndng); +// boolean saved = sndngService.createSndng(sndng); + boolean saved = true; return new ModelAndView("jsonView") .addObject("saved", saved); diff --git a/src/main/resources/sql/mapper/fims/enis/enisMtchg-mapper.xml b/src/main/resources/sql/mapper/fims/enis/enisMtchg-mapper.xml new file mode 100644 index 00000000..a486848a --- /dev/null +++ b/src/main/resources/sql/mapper/fims/enis/enisMtchg-mapper.xml @@ -0,0 +1,283 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + SELECT EM.MTCHG_ID + , EM.CRDN_ID + , EM.CRDN_DT + , EM.STDG_NM + , EM.CRDN_PLC + , EM.LVY_KEY + , EM.ACNTG_YR + , EM.LEVY_NO + , EM.LEVY_AMT + , EM.ADTN_AMT + , EM.SUM_AMT + , EM.PRCS_STTS_CD + , EM.EPAYNO + , EM.BANK_NM1 + , EM.VRACTNO1 + , EM.BANK_NM2 + , EM.VRACTNO2 + , EM.BANK_NM3 + , EM.VRACTNO3 + , EM.BANK_NM4 + , EM.VRACTNO4 + , EM.BANK_NM5 + , EM.VRACTNO5 + , EM.BANK_NM6 + , EM.VRACTNO6 + , EM.BANK_NM7 + , EM.VRACTNO7 + , EM.BANK_NM8 + , EM.VRACTNO8 + , EM.BANK_NM9 + , EM.VRACTNO9 + , EM.BANK_NM10 + , EM.VRACTNO10 + , EM.BANK_NM11 + , EM.VRACTNO11 + , EM.REG_DT + , EM.RGTR + , EM.MDFCN_DT + , EM.MDFR + FROM TB_ENIS_MTCHG EM + + + + + + + /* 세외수입 매칭 내역 등록(enisMtchgMapper.insertEnisMtchg) */ + + SELECT CONCAT(DATE_FORMAT(CURRENT_DATE, '%Y'), LPAD(CAST(IFNULL(MAX(SUBSTRING(MTCHG_ID, 5)) + 1, 1) AS INT), 16, '0')) AS NEW_ID + FROM TB_ENIS_MTCHG + WHERE MTCHG_ID LIKE CONCAT(DATE_FORMAT(CURRENT_DATE, '%Y'), '%') + + INSERT + INTO TB_ENIS_MTCHG ( + MTCHG_ID + , CRDN_ID + , CRDN_DT + , STDG_NM + , CRDN_PLC + , LVY_KEY + , ACNTG_YR + , LEVY_NO + , LEVY_AMT + , ADTN_AMT + , SUM_AMT + , PRCS_STTS_CD + , EPAYNO + , BANK_NM1 + , VRACTNO1 + , BANK_NM2 + , VRACTNO2 + , BANK_NM3 + , VRACTNO3 + , BANK_NM4 + , VRACTNO4 + , BANK_NM5 + , VRACTNO5 + , BANK_NM6 + , VRACTNO6 + , BANK_NM7 + , VRACTNO7 + , BANK_NM8 + , VRACTNO8 + , BANK_NM9 + , VRACTNO9 + , BANK_NM10 + , VRACTNO10 + , BANK_NM11 + , VRACTNO11 + , DEL_YN /* 삭제 여부 */ + , REG_DT + , RGTR + , MDFCN_DT + , MDFR + ) + VALUES ( + #{enisMtchg.mtchgId} + , #{enisMtchg.crdnId} + , #{enisMtchg.crdnDt} + , #{enisMtchg.stdgNm} + , #{enisMtchg.crdnPlc} + , #{enisMtchg.lvyKey} + , #{enisMtchg.acntgYr} + , #{enisMtchg.levyNo} + , #{enisMtchg.levyAmt} + , #{enisMtchg.adtnAmt} + , #{enisMtchg.sumAmt} + , #{enisMtchg.prcsSttsCd} + , #{enisMtchg.epayno} + , #{enisMtchg.bankNm1} + , #{enisMtchg.vractno1} + , #{enisMtchg.bankNm2} + , #{enisMtchg.vractno2} + , #{enisMtchg.bankNm3} + , #{enisMtchg.vractno3} + , #{enisMtchg.bankNm4} + , #{enisMtchg.vractno4} + , #{enisMtchg.bankNm5} + , #{enisMtchg.vractno5} + , #{enisMtchg.bankNm6} + , #{enisMtchg.vractno6} + , #{enisMtchg.bankNm7} + , #{enisMtchg.vractno7} + , #{enisMtchg.bankNm8} + , #{enisMtchg.vractno8} + , #{enisMtchg.bankNm9} + , #{enisMtchg.vractno9} + , #{enisMtchg.bankNm10} + , #{enisMtchg.vractno10} + , #{enisMtchg.bankNm11} + , #{enisMtchg.vractno11} + , #{enisMtchg.delYn} /* 삭제 여부 */ + , /* 등록 일시 */ + , #{enisMtchg.createdBy} /* 등록자 */ + , /* 수정 일시 */ + , #{enisMtchg.modifiedBy} /* 수정자 */ + ) + + +/* 세외수입 매칭 내역 수정(enisMtchgMapper.updateEnisMtchg) */ +UPDATE TB_ENIS_MTCHG SET + CRDN_ID = #{enisMtchg.crdnId} + , CRDN_DT = #{enisMtchg.crdnDt} + , STDG_NM = #{enisMtchg.stdgNm} + , CRDN_PLC = #{enisMtchg.crdnPlc} + , LVY_KEY = #{enisMtchg.lvyKey} + , ACNTG_YR = #{enisMtchg.acntgYr} + , LEVY_NO = #{enisMtchg.levyNo} + , LEVY_AMT = #{enisMtchg.levyAmt} + , ADTN_AMT = #{enisMtchg.adtnAmt} + , SUM_AMT = #{enisMtchg.sumAmt} + , PRCS_STTS_CD = #{enisMtchg.prcsSttsCd} + , EPAYNO = #{enisMtchg.epayno} + , BANK_NM1 = #{enisMtchg.bankNm1} + , VRACTNO1 = #{enisMtchg.vractno1} + , BANK_NM2 = #{enisMtchg.bankNm2} + , VRACTNO2 = #{enisMtchg.vractno2} + , BANK_NM3 = #{enisMtchg.bankNm3} + , VRACTNO3 = #{enisMtchg.vractno3} + , BANK_NM4 = #{enisMtchg.bankNm4} + , VRACTNO4 = #{enisMtchg.vractno4} + , BANK_NM5 = #{enisMtchg.bankNm5} + , VRACTNO5 = #{enisMtchg.vractno5} + , BANK_NM6 = #{enisMtchg.bankNm6} + , VRACTNO6 = #{enisMtchg.vractno6} + , BANK_NM7 = #{enisMtchg.bankNm7} + , VRACTNO7 = #{enisMtchg.vractno7} + , BANK_NM8 = #{enisMtchg.bankNm8} + , VRACTNO8 = #{enisMtchg.vractno8} + , BANK_NM9 = #{enisMtchg.bankNm9} + , VRACTNO9 = #{enisMtchg.vractno9} + , BANK_NM10 = #{enisMtchg.bankNm10} + , VRACTNO10 = #{enisMtchg.vractno10} + , BANK_NM11 = #{enisMtchg.bankNm11} + , VRACTNO11 = #{enisMtchg.vractno11} + , MDFCN_DT = + , MDFR = #{currentUser.id} + WHERE MTCHG_ID = #{enisMtchg.mtchgId} + + /* 세외수입 매칭 내역 삭제(enisMtchgMapper.deleteEnisMtchg) */ + UPDATE TB_ENIS_MTCHG + SET DEL_YN = 'N' + , DEL_DT = + , DLTR = #{enisMtchg.modifiedBy} + , DEL_RSN = #{enisMtchg.delRsn} + + + WHERE CRDN_ID = #{enisMtchg.crdnId} /* 단속 ID */ + + + WHERE MTCHG_ID = #{enisMtchg.mtchgId} /* 매핑 ID */ + + + AND EM.DEL_YN = 'N' /* 삭제 여부 */ + + + diff --git a/src/main/resources/sql/mapper/fims/sndb/sndng-mapper.xml b/src/main/resources/sql/mapper/fims/sndb/sndng-mapper.xml index f7ca930c..6e09eab9 100644 --- a/src/main/resources/sql/mapper/fims/sndb/sndng-mapper.xml +++ b/src/main/resources/sql/mapper/fims/sndb/sndng-mapper.xml @@ -12,7 +12,6 @@ - @@ -45,6 +44,7 @@ + @@ -248,6 +248,9 @@ , C.CRDN_YMD /* 단속 일자 */ , C.CRDN_TM /* 단속 시각 */ , (CONCAT(C.CRDN_YMD, C.CRDN_TM)) AS CRDN_YMD_TM /* 단속 일시 */ + , FN_GET_MASK_DATETIME(C.CRDN_YMD, C.CRDN_TM, '-', ':') AS CRDN_YMD_TM_MASK /* 단속 일시 마스크 */ + , (SELECT VI.VLTN_CD FROM TB_VLTN_INFO VI + WHERE C.VLTN_ID=VI.VLTN_ID AND C.SGG_CD=VI.SGG_CD AND C.TASK_SE_CD=VI.TASK_SE_CD) AS VLTN_CD /* 위반 코드 */ , C.VHRNO /* 차량번호 */ , C.CRDN_STDG_NM /* 단속 법정동 명 */ , C.CRDN_ROAD_NM /* 단속 도로 명 */ @@ -257,6 +260,7 @@ , C.ADVNTCE_AMT /* 사전통지 금액 */ , 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.REG_DT /* 등록 일시 */ , C.RGTR /* 등록자 */ , (SELECT USER_NM FROM TB_USER X WHERE X.USER_ID = C.RGTR) AS RGTR_NM /* 등록자 명 */ @@ -270,12 +274,10 @@ , CC.CVLCPT_APLY_DT /* 민원 신청 일시 */ , CC.CVLCPT_APLY_TTL_NM /* 민원 신청 제목 명 */ , CC.CVLCPT_GIST /* 민원 요지 */ - , CC.CVLCPT_PRCS_CD /* 민원 처리 코드 */ , (SELECT FN_GET_CODE_NM('FIM017', CC.CVLCPT_PRCS_CD) FROM DUAL) AS CVLCPT_PRCS_NM /* 민원 처리 명 */ , CC.CVLCPT_PRCS_SUMRY /* 민원 처리 요약 */ , CC.CVLCPT_PRCS_RSLT_CN /* 민원 처리 결과 내용 */ , CC.CVLCPT_PRCS_CMPTN_DT /* 민원 처리 완료 일시 */ - , CC.CVLCPT_TRSM_CD /* 민원 전송 코드 */ , (SELECT FN_GET_CODE_NM('FIM018', CC.CVLCPT_TRSM_CD) FROM DUAL) AS CVLCPT_TRSM_NM /* 민원 전송 명 */ , CC.CVLCPT_TRSM_DT /* 민원 전송 일시 */ , P.RTPYR_ID /* 납부자 ID */ @@ -293,11 +295,13 @@ , LE.LEVY_EXCL_RSN_CD /* 부과 제외 사유 코드 */ , (SELECT FN_GET_CODE_NM('FIM022', LE.LEVY_EXCL_RSN_CD) FROM DUAL) AS LEVY_EXCL_RSN_NM /* 부과 제외 사유 명 */ , LE.ETC_CN /* 기타 내용 */ + , L.LEVY_ID /* 부과 ID */ FROM TB_CRDN C - INNER JOIN TB_CRDN_ADI CA ON (C.CRDN_ID = CA.CRDN_ID) - LEFT OUTER JOIN TB_CRDN_CVLCPT CC ON (C.LINK_ID = CC.CVLCPT_LINK_ID AND C.CVLCPT_LINK_YN = 'Y' AND CC.DEL_YN = 'N') - LEFT OUTER JOIN TB_PAYER P ON (C.RTPYR_ID = P.RTPYR_ID) - LEFT OUTER JOIN TB_LEVY_EXCL LE ON (C.CRDN_ID = LE.CRDN_ID AND LE.DEL_YN = 'N') + INNER JOIN TB_CRDN_ADI CA ON (C.CRDN_ID = CA.CRDN_ID) + LEFT OUTER JOIN TB_CRDN_CVLCPT CC ON (C.LINK_ID = CC.CVLCPT_LINK_ID AND C.CVLCPT_LINK_YN = 'Y' AND CC.DEL_YN = 'N') + LEFT OUTER JOIN TB_PAYER P ON (C.RTPYR_ID = P.RTPYR_ID) + LEFT OUTER JOIN TB_LEVY_EXCL LE ON (C.CRDN_ID = LE.CRDN_ID AND LE.DEL_YN = 'N') + LEFT OUTER JOIN TB_LEVY L ON (C.CRDN_ID = L.CRDN_ID AND L.DEL_YN = 'N') AND C.CRDN_ID IN ( @@ -323,9 +327,11 @@ SELECT SNDNG_ID /* 발송 ID */ , SGG_CD /* 시군구 코드 */ , TASK_SE_CD /* 업무 구분 코드 */ - , VLTN_ID /* 위반 ID */ + , (SELECT FN_GET_CODE_NM('FIM054', C.TASK_SE_CD) FROM DUAL) AS TASK_SE_NM /* 업무 구분 명 */ , SNDNG_REG_SE_CD /* 발송 등록 구분 코드 */ + , (SELECT FN_GET_CODE_NM('FIM066', C.SNDNG_REG_SE_CD) FROM DUAL) AS SNDNG_REG_SE_NM /* 발송 등록 구분 명 */ , SNDNG_SE_CD /* 발송 구분 코드 */ + , (SELECT FN_GET_CODE_NM('FIM047', C.SNDNG_SE_CD) FROM DUAL) AS SNDNG_SE_NM /* 단속 상태 명 */ , LEVY_BGNG_YMD /* 부과 시작 일자 */ , LEVY_END_YMD /* 부과 종료 일자 */ , SNDNG_YMD /* 발송 일자 */ @@ -367,11 +373,11 @@ FROM TB_SNDNG WHERE SNDNG_ID LIKE CONCAT(DATE_FORMAT(CURRENT_DATE, '%Y'), '%') - INSERT INTO TB_SNDNG ( + INSERT + INTO TB_SNDNG ( SNDNG_ID /* 발송 ID */ , SGG_CD /* 시군구 코드 */ , TASK_SE_CD /* 업무 구분 코드 */ - , VLTN_ID /* 위반 ID */ , SNDNG_REG_SE_CD /* 발송 등록 구분 코드 */ , SNDNG_SE_CD /* 발송 구분 코드 */ , LEVY_BGNG_YMD /* 부과 시작 일자 */ @@ -388,6 +394,7 @@ , EPOST_NOTICE_ID /* 전자우편 안내문 ID */ , SNDNG_STTS_CD /* 발송 상태 코드 */ , RESND_YN /* 재발송 여부 */ + , DEL_YN /* 삭제 여부 */ , REG_DT /* 등록 일시 */ , RGTR /* 등록자 */ , MDFCN_DT /* 수정 일시 */ @@ -397,7 +404,6 @@ #{sndng.sndngId} /* 발송 ID */ , #{sndng.sggCd} /* 시군구 코드 */ , #{sndng.taskSeCd} /* 업무 구분 코드 */ - , #{sndng.vltnId} /* 위반 ID */ , #{sndng.sndngRegSeCd} /* 발송 등록 구분 코드 */ , #{sndng.sndngSeCd} /* 발송 구분 코드 */ , #{sndng.levyBgngYmd} /* 부과 시작 일자 */ @@ -414,6 +420,7 @@ , #{sndng.epostNoticeId} /* 전자우편 안내문 ID */ , #{sndng.sndngSttsCd} /* 발송 상태 코드 */ , #{sndng.resndYn} /* 재발송 여부 */ + , #{sndng.delYn} /* 삭제 여부 */ , /* 등록 일시 */ , #{sndng.createdBy} /* 등록자 */ , /* 수정 일시 */ @@ -421,37 +428,39 @@ ) -/* 발송 대장 수정(sndngMapper.updateSndng) */ -UPDATE TB_SNDNG SET - SGG_CD = #{sndng.sggCd} - , VLTN_ID = #{sndng.vltnId} - , SNDNG_REG_SE_CD = #{sndng.sndngRegSeCd} - , SNDNG_SE_CD = #{sndng.sndngSeCd} - , LEVY_BGNG_YMD = #{sndng.levyBgngYmd} - , LEVY_END_YMD = #{sndng.levyEndYmd} - , SNDNG_YMD = #{sndng.sndngYmd} - , DUDT_YMD = #{sndng.dudtYmd} - , TTL_NM = #{sndng.ttlNm} - , DOC_NO = #{sndng.docNo} - , ETC_CN = #{sndng.etcCn} - , TNOCS = #{sndng.tnocs} - , GRAMT = #{sndng.gramt} - , CON_KEY = #{sndng.conKey} - , DIV_KB = #{sndng.divKb} - , EPOST_NOTICE_ID = #{sndng.epostNoticeId} - , SNDNG_STTS_CD = #{sndng.sndngSttsCd} - , RESND_YN = #{sndng.resndYn} - , MDFCN_DT = - , MDFR = #{currentUser.id} - , TASK_SE_CD = #{sndng.taskSeCd} - WHERE SNDNG_ID = #{sndng.sndngId} + /* 발송 대장 수정(sndngMapper.updateSndng) */ + UPDATE TB_SNDNG + SET SGG_CD = #{sndng.sggCd} /* 시군구 코드 */ + , TASK_SE_CD = #{sndng.taskSeCd} /* 업무 구분 코드 */ + , SNDNG_REG_SE_CD = #{sndng.sndngRegSeCd} /* 발송 등록 구분 코드 */ + , SNDNG_SE_CD = #{sndng.sndngSeCd} /* 발송 구분 코드 */ + , LEVY_BGNG_YMD = #{sndng.levyBgngYmd} /* 부과 시작 일자 */ + , LEVY_END_YMD = #{sndng.levyEndYmd} /* 부과 종료 일자 */ + , SNDNG_YMD = #{sndng.sndngYmd} /* 발송 일자 */ + , DUDT_YMD = #{sndng.dudtYmd} /* 납기 일자 */ + , TTL_NM = #{sndng.ttlNm} /* 제목 명 */ + , DOC_NO = #{sndng.docNo} /* 문서 번호 */ + , ETC_CN = #{sndng.etcCn} /* 기타 내용 */ + , TNOCS = #{sndng.tnocs} /* 총건수 */ + , GRAMT = #{sndng.gramt} /* 총금액 */ + , CON_KEY = #{sndng.conKey} /* 외부연계식별키 */ + , DIV_KB = #{sndng.divKb} /* 취급 구분 */ + , EPOST_NOTICE_ID = #{sndng.epostNoticeId} /* 전자우편 안내문 ID */ + , SNDNG_STTS_CD = #{sndng.sndngSttsCd} /* 발송 상태 코드 */ + , RESND_YN = #{sndng.resndYn} /* 재발송 여부 */ + , MDFCN_DT = /* 수정 일시 */ + , MDFR = #{sndng.modifiedBy} /* 수정자 */ + WHERE SNDNG_ID = #{sndng.sndngId} + -/* 발송 대장 삭제(sndngMapper.deleteSndng) */ -UPDATE TB_SNDNG SET - USE_YN = 'N' - , MDFCN_DT = - , MDFR = #{currentUser.id} - WHERE SNDNG_ID = #{sndng.sndngId} + /* 발송 대장 삭제(sndngMapper.deleteSndng) */ + UPDATE TB_SNDNG + SET DEL_YN = 'Y' + , MDFCN_DT = + , MDFR = #{sndng.modifiedBy} + WHERE SNDNG_ID = #{sndng.sndngId} + AND DEL_YN = 'N' + SELECT SD.SNDNG_DTL_ID /* 발송 상세 ID */ @@ -459,6 +468,7 @@ UPDATE TB_SNDNG SET , SD.SVBTC_ID /* 공시송달 ID */ , SD.CRDN_ID /* 단속 ID */ , SD.LEVY_ID /* 부과 ID */ + , SD.VLTN_CD /* 위반 ID */ , SD.VHRNO /* 차량번호 */ , SD.CRDN_DT /* 단속 일시 */ , SD.CRDN_PLC /* 단속 장소 */ @@ -528,7 +538,7 @@ UPDATE TB_SNDNG SET , SD.DEL_RSN /* 삭제 사유 */ , S.SGG_CD /* 시군구 코드 */ , S.TASK_SE_CD /* 업무 구분 코드 */ - , S.VLTN_ID /* 위반 ID */ + , S.VLTN_CD /* 위반 ID */ , S.SNDNG_REG_SE_CD /* 발송 등록 구분 코드 */ , S.SNDNG_SE_CD /* 발송 구분 코드 */ , (SELECT FN_GET_CODE_NM('FIM047', S.SNDNG_SE_CD) FROM DUAL) AS SNDNG_SE_NM /* 발송 구분 명 */ @@ -574,208 +584,220 @@ UPDATE TB_SNDNG SET -/* 발송 상세 등록(sndngMapper.insertSndngDtl) */ -INSERT INTO TB_SNDNG_DTL ( - SNDNG_DTL_ID - , SNDNG_ID - , SVBTC_ID - , CRDN_ID - , LEVY_ID - , VHRNO - , CRDN_DT - , CRDN_PLC - , LEV_KEY - , FYR - , LEVY_NO - , SNDNG_YMD - , DUDT_YMD - , FFNLG_AMT - , LEVY_PCPTAX - , LEVY_ADAMT - , LEVY_SUM_AMT - , RTPYR_NM - , RTPYR_NO - , RTPYR_ADDR - , RTPYR_DTL_ADDR - , RTPYR_ZIP - , CON_KEY - , RG_NO - , DLVR_YMD - , DLVR_TM - , UNDLVR_RSN_NM - , RCPN_NM - , RCPN_REL_NM - , SNDNG_DTL_STTS_CD - , BFR_SNDNG_DTL_STTS_CD - , BFR_DLVR_YMD - , BFR_DLVR_HR - , SNDNG_RCVMT_CD - , ADDR_CHG_CD - , TAX_NO - , EPAYNO - , BANK_NM - , VR_ACTNO - , BANK_NM_2 - , VR_ACTNO_2 - , BANK_NM_3 - , VR_ACTNO_3 - , BANK_NM_4 - , VR_ACTNO_4 - , BANK_NM_5 - , VR_ACTNO_5 - , BANK_NM_6 - , VR_ACTNO_6 - , BANK_NM_7 - , VR_ACTNO_7 - , BANK_NM_8 - , VR_ACTNO_8 - , BANK_NM_9 - , VR_ACTNO_9 - , BANK_NM_10 - , VR_ACTNO_10 - , BANK_NM_11 - , VR_ACTNO_11 - , REG_DT - , RGTR - , MDFCN_DT - , MDFR -) VALUES ( - #{sndngDtl.sndngDtlId} - , #{sndngDtl.sndngId} - , #{sndngDtl.svbtcId} - , #{sndngDtl.crdnId} - , #{sndngDtl.levyId} - , #{sndngDtl.vhrno} - , #{sndngDtl.crdnDt} - , #{sndngDtl.crdnPlc} - , #{sndngDtl.levKey} - , #{sndngDtl.fyr} - , #{sndngDtl.levyNo} - , #{sndngDtl.sndngYmd} - , #{sndngDtl.dudtYmd} - , #{sndngDtl.ffnlgAmt} - , #{sndngDtl.levyPcptax} - , #{sndngDtl.levyAdamt} - , #{sndngDtl.levySumAmt} - , #{sndngDtl.rtpyrNm} - , #{sndngDtl.rtpyrNo} - , #{sndngDtl.rtpyrAddr} - , #{sndngDtl.rtpyrDtlAddr} - , #{sndngDtl.rtpyrZip} - , #{sndngDtl.conKey} - , #{sndngDtl.rgNo} - , #{sndngDtl.dlvrYmd} - , #{sndngDtl.dlvrTm} - , #{sndngDtl.undlvrRsnNm} - , #{sndngDtl.rcpnNm} - , #{sndngDtl.rcpnRelNm} - , #{sndngDtl.sndngDtlSttsCd} - , #{sndngDtl.bfrSndngDtlSttsCd} - , #{sndngDtl.bfrDlvrYmd} - , #{sndngDtl.bfrDlvrHr} - , #{sndngDtl.sndngRcvmtCd} - , #{sndngDtl.addrChgCd} - , #{sndngDtl.taxNo} - , #{sndngDtl.epayno} - , #{sndngDtl.bankNm} - , #{sndngDtl.vrActno} - , #{sndngDtl.bankNm2} - , #{sndngDtl.vrActno2} - , #{sndngDtl.bankNm3} - , #{sndngDtl.vrActno3} - , #{sndngDtl.bankNm4} - , #{sndngDtl.vrActno4} - , #{sndngDtl.bankNm5} - , #{sndngDtl.vrActno5} - , #{sndngDtl.bankNm6} - , #{sndngDtl.vrActno6} - , #{sndngDtl.bankNm7} - , #{sndngDtl.vrActno7} - , #{sndngDtl.bankNm8} - , #{sndngDtl.vrActno8} - , #{sndngDtl.bankNm9} - , #{sndngDtl.vrActno9} - , #{sndngDtl.bankNm10} - , #{sndngDtl.vrActno10} - , #{sndngDtl.bankNm11} - , #{sndngDtl.vrActno11} - , - , #{currentUser.id} - , - , #{currentUser.id} -) + /* 발송 상세 등록(sndngMapper.insertSndngDtl) */ + + SELECT CONCAT(DATE_FORMAT(CURRENT_DATE, '%Y'), LPAD(CAST(IFNULL(MAX(SUBSTRING(SNDNG_DTL_ID, 5)) + 1, 1) AS INT), 16, '0')) AS NEW_ID + FROM TB_SNDNG_DTL + WHERE SNDNG_DTL_ID LIKE CONCAT(DATE_FORMAT(CURRENT_DATE, '%Y'), '%') + + INSERT + INTO TB_SNDNG_DTL ( + SNDNG_DTL_ID /* 발송 상세 ID */ + , SNDNG_ID /* 발송 ID */ + , SVBTC_ID /* 공시송달 ID */ + , CRDN_ID /* 단속 ID */ + , LEVY_ID /* 부과 ID */ + , VLTN_CD /* 위반 코드 */ + , VHRNO /* 차량번호 */ + , CRDN_DT /* 단속 일시 */ + , CRDN_PLC /* 단속 장소 */ + , LEV_KEY /* 세외수입 부과키 */ + , FYR /* 회계연도 */ + , LEVY_NO /* 부과 번호 */ + , SNDNG_YMD /* 발송 일자 */ + , DUDT_YMD /* 납기 일자 */ + , FFNLG_AMT /* 과태료 금액 */ + , LEVY_PCPTAX /* 부과 본세 */ + , LEVY_ADAMT /* 부과 가산금 */ + , LEVY_SUM_AMT /* 부과 합계 금액 */ + , RTPYR_NM /* 납부자 명 */ + , RTPYR_NO /* 납부자 번호 */ + , RTPYR_ADDR /* 납부자 주소 */ + , RTPYR_DTL_ADDR /* 납부자 상세 주소 */ + , RTPYR_ZIP /* 납부자 우편번호 */ + , CON_KEY /* 외부연계식별키 */ + , RG_NO /* 등기 번호 */ + , DLVR_YMD /* 배달 일자 */ + , DLVR_TM /* 배달 시각 */ + , UNDLVR_RSN_NM /* 미배달 사유 명 */ + , RCPN_NM /* 수령인 명 */ + , RCPN_REL_NM /* 수령인 관계 명 */ + , SNDNG_DTL_STTS_CD /* 발송 상세 상태 코드 */ + , BFR_SNDNG_DTL_STTS_CD /* 전 발송 상세 상태 코드 */ + , BFR_DLVR_YMD /* 전 배달 일자 */ + , BFR_DLVR_HR /* 전 배달 시간 */ + , SNDNG_RCVMT_CD /* 발송 수납 코드 */ + , ADDR_CHG_CD /* 주소 변경 코드 */ + , TAX_NO /* 납세 번호 */ + , EPAYNO /* 전자납부번호 */ + , BANK_NM /* 은행 명 */ + , VR_ACTNO /* 가상 계좌번호 */ + , BANK_NM_2 /* 은행 명 2 */ + , VR_ACTNO_2 /* 가상 계좌번호 2 */ + , BANK_NM_3 /* 은행 명 3 */ + , VR_ACTNO_3 /* 가상 계좌번호 3 */ + , BANK_NM_4 /* 은행 명 4 */ + , VR_ACTNO_4 /* 가상 계좌번호 4 */ + , BANK_NM_5 /* 은행 명 5 */ + , VR_ACTNO_5 /* 가상 계좌번호 5 */ + , BANK_NM_6 /* 은행 명 6 */ + , VR_ACTNO_6 /* 가상 계좌번호 6 */ + , BANK_NM_7 /* 은행 명 7 */ + , VR_ACTNO_7 /* 가상 계좌번호 7 */ + , BANK_NM_8 /* 은행 명 8 */ + , VR_ACTNO_8 /* 가상 계좌번호 8 */ + , BANK_NM_9 /* 은행 명 9 */ + , VR_ACTNO_9 /* 가상 계좌번호 9 */ + , BANK_NM_10 /* 은행 명 10 */ + , VR_ACTNO_10 /* 가상 계좌번호 10 */ + , BANK_NM_11 /* 은행 명 11 */ + , VR_ACTNO_11 /* 가상 계좌번호 11 */ + , REG_DT /* 등록 일시 */ + , RGTR /* 등록자 */ + , MDFCN_DT /* 수정 일시 */ + , MDFR /* 수정자 */ + ) + VALUES ( + #{sndngDtl.sndngDtlId} /* 발송 상세 ID */ + , #{sndngDtl.sndngId} /* 발송 ID */ + , #{sndngDtl.svbtcId} /* 공시송달 ID */ + , #{sndngDtl.crdnId} /* 단속 ID */ + , #{sndngDtl.levyId} /* 부과 ID */ + , #{sndng.vltnCd} /* 위반 코드 */ + , #{sndngDtl.vhrno} /* 차량번호 */ + , #{sndngDtl.crdnDt} /* 단속 일시 */ + , #{sndngDtl.crdnPlc} /* 단속 장소 */ + , #{sndngDtl.levKey} /* 세외수입 부과키 */ + , #{sndngDtl.fyr} /* 회계연도 */ + , #{sndngDtl.levyNo} /* 부과 번호 */ + , #{sndngDtl.sndngYmd} /* 발송 일자 */ + , #{sndngDtl.dudtYmd} /* 납기 일자 */ + , #{sndngDtl.ffnlgAmt} /* 과태료 금액 */ + , #{sndngDtl.levyPcptax} /* 부과 본세 */ + , #{sndngDtl.levyAdamt} /* 부과 가산금 */ + , #{sndngDtl.levySumAmt} /* 부과 합계 금액 */ + , #{sndngDtl.rtpyrNm} /* 납부자 명 */ + , #{sndngDtl.rtpyrNo} /* 납부자 번호 */ + , #{sndngDtl.rtpyrAddr} /* 납부자 주소 */ + , #{sndngDtl.rtpyrDtlAddr} /* 납부자 상세 주소 */ + , #{sndngDtl.rtpyrZip} /* 납부자 우편번호 */ + , #{sndngDtl.conKey} /* 외부연계식별키 */ + , #{sndngDtl.rgNo} /* 등기 번호 */ + , #{sndngDtl.dlvrYmd} /* 배달 일자 */ + , #{sndngDtl.dlvrTm} /* 배달 시각 */ + , #{sndngDtl.undlvrRsnNm} /* 미배달 사유 명 */ + , #{sndngDtl.rcpnNm} /* 수령인 명 */ + , #{sndngDtl.rcpnRelNm} /* 수령인 관계 명 */ + , #{sndngDtl.sndngDtlSttsCd} /* 발송 상세 상태 코드 */ + , #{sndngDtl.bfrSndngDtlSttsCd} /* 전 발송 상세 상태 코드 */ + , #{sndngDtl.bfrDlvrYmd} /* 전 배달 일자 */ + , #{sndngDtl.bfrDlvrHr} /* 전 배달 시간 */ + , #{sndngDtl.sndngRcvmtCd} /* 발송 수납 코드 */ + , #{sndngDtl.addrChgCd} /* 주소 변경 코드 */ + , #{sndngDtl.taxNo} /* 납세 번호 */ + , #{sndngDtl.epayno} /* 전자납부번호 */ + , #{sndngDtl.bankNm} /* 은행 명 */ + , #{sndngDtl.vrActno} /* 가상 계좌번호 */ + , #{sndngDtl.bankNm2} /* 은행 명 2 */ + , #{sndngDtl.vrActno2} /* 가상 계좌번호 2 */ + , #{sndngDtl.bankNm3} /* 은행 명 3 */ + , #{sndngDtl.vrActno3} /* 가상 계좌번호 3 */ + , #{sndngDtl.bankNm4} /* 은행 명 4 */ + , #{sndngDtl.vrActno4} /* 가상 계좌번호 4 */ + , #{sndngDtl.bankNm5} /* 은행 명 5 */ + , #{sndngDtl.vrActno5} /* 가상 계좌번호 5 */ + , #{sndngDtl.bankNm6} /* 은행 명 6 */ + , #{sndngDtl.vrActno6} /* 가상 계좌번호 6 */ + , #{sndngDtl.bankNm7} /* 은행 명 7 */ + , #{sndngDtl.vrActno7} /* 가상 계좌번호 7 */ + , #{sndngDtl.bankNm8} /* 은행 명 8 */ + , #{sndngDtl.vrActno8} /* 가상 계좌번호 8 */ + , #{sndngDtl.bankNm9} /* 은행 명 9 */ + , #{sndngDtl.vrActno9} /* 가상 계좌번호 9 */ + , #{sndngDtl.bankNm10} /* 은행 명 10 */ + , #{sndngDtl.vrActno10} /* 가상 계좌번호 10 */ + , #{sndngDtl.bankNm11} /* 은행 명 11 */ + , #{sndngDtl.vrActno11} /* 가상 계좌번호 11 */ + , /* 등록 일시 */ + , #{sndngDtl.createdBy} /* 등록자 */ + , /* 수정 일시 */ + , #{sndngDtl.modifiedBy} /* 수정자 */ + ) + -/* 발송 상세 수정(sndngMapper.updateSndngDtl) */ -UPDATE TB_SNDNG_DTL SET - SNDNG_ID = #{sndngDtl.sndngId} - , SVBTC_ID = #{sndngDtl.svbtcId} - , CRDN_ID = #{sndngDtl.crdnId} - , LEVY_ID = #{sndngDtl.levyId} - , VHRNO = #{sndngDtl.vhrno} - , CRDN_DT = #{sndngDtl.crdnDt} - , CRDN_PLC = #{sndngDtl.crdnPlc} - , LEV_KEY = #{sndngDtl.levKey} - , FYR = #{sndngDtl.fyr} - , LEVY_NO = #{sndngDtl.levyNo} - , SNDNG_YMD = #{sndngDtl.sndngYmd} - , DUDT_YMD = #{sndngDtl.dudtYmd} - , FFNLG_AMT = #{sndngDtl.ffnlgAmt} - , LEVY_PCPTAX = #{sndngDtl.levyPcptax} - , LEVY_ADAMT = #{sndngDtl.levyAdamt} - , LEVY_SUM_AMT = #{sndngDtl.levySumAmt} - , RTPYR_NM = #{sndngDtl.rtpyrNm} - , RTPYR_NO = #{sndngDtl.rtpyrNo} - , RTPYR_ADDR = #{sndngDtl.rtpyrAddr} - , RTPYR_DTL_ADDR = #{sndngDtl.rtpyrDtlAddr} - , RTPYR_ZIP = #{sndngDtl.rtpyrZip} - , CON_KEY = #{sndngDtl.conKey} - , RG_NO = #{sndngDtl.rgNo} - , DLVR_YMD = #{sndngDtl.dlvrYmd} - , DLVR_TM = #{sndngDtl.dlvrTm} - , UNDLVR_RSN_NM = #{sndngDtl.undlvrRsnNm} - , RCPN_NM = #{sndngDtl.rcpnNm} - , RCPN_REL_NM = #{sndngDtl.rcpnRelNm} - , SNDNG_DTL_STTS_CD = #{sndngDtl.sndngDtlSttsCd} - , BFR_SNDNG_DTL_STTS_CD = #{sndngDtl.bfrSndngDtlSttsCd} - , BFR_DLVR_YMD = #{sndngDtl.bfrDlvrYmd} - , BFR_DLVR_HR = #{sndngDtl.bfrDlvrHr} - , SNDNG_RCVMT_CD = #{sndngDtl.sndngRcvmtCd} - , ADDR_CHG_CD = #{sndngDtl.addrChgCd} - , TAX_NO = #{sndngDtl.taxNo} - , EPAYNO = #{sndngDtl.epayno} - , BANK_NM = #{sndngDtl.bankNm} - , VR_ACTNO = #{sndngDtl.vrActno} - , BANK_NM_2 = #{sndngDtl.bankNm2} - , VR_ACTNO_2 = #{sndngDtl.vrActno2} - , BANK_NM_3 = #{sndngDtl.bankNm3} - , VR_ACTNO_3 = #{sndngDtl.vrActno3} - , BANK_NM_4 = #{sndngDtl.bankNm4} - , VR_ACTNO_4 = #{sndngDtl.vrActno4} - , BANK_NM_5 = #{sndngDtl.bankNm5} - , VR_ACTNO_5 = #{sndngDtl.vrActno5} - , BANK_NM_6 = #{sndngDtl.bankNm6} - , VR_ACTNO_6 = #{sndngDtl.vrActno6} - , BANK_NM_7 = #{sndngDtl.bankNm7} - , VR_ACTNO_7 = #{sndngDtl.vrActno7} - , BANK_NM_8 = #{sndngDtl.bankNm8} - , VR_ACTNO_8 = #{sndngDtl.vrActno8} - , BANK_NM_9 = #{sndngDtl.bankNm9} - , VR_ACTNO_9 = #{sndngDtl.vrActno9} - , BANK_NM_10 = #{sndngDtl.bankNm10} - , VR_ACTNO_10 = #{sndngDtl.vrActno10} - , BANK_NM_11 = #{sndngDtl.bankNm11} - , VR_ACTNO_11 = #{sndngDtl.vrActno11} - , MDFCN_DT = - , MDFR = #{currentUser.id} - WHERE SNDNG_DTL_ID = #{sndngDtl.sndngDtlId} + /* 발송 상세 수정(sndngMapper.updateSndngDtl) */ + UPDATE TB_SNDNG_DTL + SET SNDNG_ID = #{sndngDtl.sndngId} /* 발송 ID */ + , SVBTC_ID = #{sndngDtl.svbtcId} /* 공시송달 ID */ + , CRDN_ID = #{sndngDtl.crdnId} /* 단속 ID */ + , LEVY_ID = #{sndngDtl.levyId} /* 부과 ID */ + , VLTN_CD = #{sndng.vltnCd} /* 위반 ID */ + , VHRNO = #{sndngDtl.vhrno} /* 차량번호 */ + , CRDN_DT = #{sndngDtl.crdnDt} /* 단속 일시 */ + , CRDN_PLC = #{sndngDtl.crdnPlc} /* 단속 장소 */ + , LEV_KEY = #{sndngDtl.levKey} /* 세외수입 부과키 */ + , FYR = #{sndngDtl.fyr} /* 회계연도 */ + , LEVY_NO = #{sndngDtl.levyNo} /* 부과 번호 */ + , SNDNG_YMD = #{sndngDtl.sndngYmd} /* 발송 일자 */ + , DUDT_YMD = #{sndngDtl.dudtYmd} /* 납기 일자 */ + , FFNLG_AMT = #{sndngDtl.ffnlgAmt} /* 과태료 금액 */ + , LEVY_PCPTAX = #{sndngDtl.levyPcptax} /* 부과 본세 */ + , LEVY_ADAMT = #{sndngDtl.levyAdamt} /* 부과 가산금 */ + , LEVY_SUM_AMT = #{sndngDtl.levySumAmt} /* 부과 합계 금액 */ + , RTPYR_NM = #{sndngDtl.rtpyrNm} /* 납부자 명 */ + , RTPYR_NO = #{sndngDtl.rtpyrNo} /* 납부자 번호 */ + , RTPYR_ADDR = #{sndngDtl.rtpyrAddr} /* 납부자 주소 */ + , RTPYR_DTL_ADDR = #{sndngDtl.rtpyrDtlAddr} /* 납부자 상세 주소 */ + , RTPYR_ZIP = #{sndngDtl.rtpyrZip} /* 납부자 우편번호 */ + , CON_KEY = #{sndngDtl.conKey} /* 외부연계식별키 */ + , RG_NO = #{sndngDtl.rgNo} /* 등기 번호 */ + , DLVR_YMD = #{sndngDtl.dlvrYmd} /* 배달 일자 */ + , DLVR_TM = #{sndngDtl.dlvrTm} /* 배달 시각 */ + , UNDLVR_RSN_NM = #{sndngDtl.undlvrRsnNm} /* 미배달 사유 명 */ + , RCPN_NM = #{sndngDtl.rcpnNm} /* 수령인 명 */ + , RCPN_REL_NM = #{sndngDtl.rcpnRelNm} /* 수령인 관계 명 */ + , SNDNG_DTL_STTS_CD = #{sndngDtl.sndngDtlSttsCd} /* 발송 상세 상태 코드 */ + , BFR_SNDNG_DTL_STTS_CD = #{sndngDtl.bfrSndngDtlSttsCd} /* 전 발송 상세 상태 코드 */ + , BFR_DLVR_YMD = #{sndngDtl.bfrDlvrYmd} /* 전 배달 일자 */ + , BFR_DLVR_HR = #{sndngDtl.bfrDlvrHr} /* 전 배달 시간 */ + , SNDNG_RCVMT_CD = #{sndngDtl.sndngRcvmtCd} /* 발송 수납 코드 */ + , ADDR_CHG_CD = #{sndngDtl.addrChgCd} /* 주소 변경 코드 */ + , TAX_NO = #{sndngDtl.taxNo} /* 납세 번호 */ + , EPAYNO = #{sndngDtl.epayno} /* 전자납부번호 */ + , BANK_NM = #{sndngDtl.bankNm} /* 은행 명 */ + , VR_ACTNO = #{sndngDtl.vrActno} /* 가상 계좌번호 */ + , BANK_NM_2 = #{sndngDtl.bankNm2} /* 은행 명 2 */ + , VR_ACTNO_2 = #{sndngDtl.vrActno2} /* 가상 계좌번호 2 */ + , BANK_NM_3 = #{sndngDtl.bankNm3} /* 은행 명 3 */ + , VR_ACTNO_3 = #{sndngDtl.vrActno3} /* 가상 계좌번호 3 */ + , BANK_NM_4 = #{sndngDtl.bankNm4} /* 은행 명 4 */ + , VR_ACTNO_4 = #{sndngDtl.vrActno4} /* 가상 계좌번호 4 */ + , BANK_NM_5 = #{sndngDtl.bankNm5} /* 은행 명 5 */ + , VR_ACTNO_5 = #{sndngDtl.vrActno5} /* 가상 계좌번호 5 */ + , BANK_NM_6 = #{sndngDtl.bankNm6} /* 은행 명 6 */ + , VR_ACTNO_6 = #{sndngDtl.vrActno6} /* 가상 계좌번호 6 */ + , BANK_NM_7 = #{sndngDtl.bankNm7} /* 은행 명 7 */ + , VR_ACTNO_7 = #{sndngDtl.vrActno7} /* 가상 계좌번호 7 */ + , BANK_NM_8 = #{sndngDtl.bankNm8} /* 은행 명 8 */ + , VR_ACTNO_8 = #{sndngDtl.vrActno8} /* 가상 계좌번호 8 */ + , BANK_NM_9 = #{sndngDtl.bankNm9} /* 은행 명 9 */ + , VR_ACTNO_9 = #{sndngDtl.vrActno9} /* 가상 계좌번호 9 */ + , BANK_NM_10 = #{sndngDtl.bankNm10} /* 은행 명 10 */ + , VR_ACTNO_10 = #{sndngDtl.vrActno10} /* 가상 계좌번호 10 */ + , BANK_NM_11 = #{sndngDtl.bankNm11} /* 은행 명 11 */ + , VR_ACTNO_11 = #{sndngDtl.vrActno11} /* 가상 계좌번호 11 */ + , MDFCN_DT = /* 수정 일시 */ + , MDFR = #{sndngDtl.modifiedBy} /* 수정자 */ + WHERE SNDNG_DTL_ID = #{sndngDtl.sndngDtlId} + /* 발송 상세 삭제(sndngMapper.deleteSndngDtl) */ - UPDATE TB_SNDNG_DTL SET - DEL_YN = 'N' - , DEL_DT = - , DLTR = #{currentUser.id} - , DEL_RSN = #{sndngDtl.delRsn} - WHERE SNDNG_DTL_ID = #{sndngDtl.sndngDtlId} + UPDATE TB_SNDNG_DTL + SET DEL_YN = 'N' + , DEL_DT = + , DLTR = #{sndngDtl.modifiedBy} + , DEL_RSN = #{sndngDtl.delRsn} + WHERE SNDNG_DTL_ID = #{sndngDtl.sndngDtlId} diff --git a/src/main/webapp/WEB-INF/jsp/fims/sndb/sndb01010-main.jsp b/src/main/webapp/WEB-INF/jsp/fims/sndb/sndb01010-main.jsp index b24bb7dc..5983c82b 100644 --- a/src/main/webapp/WEB-INF/jsp/fims/sndb/sndb01010-main.jsp +++ b/src/main/webapp/WEB-INF/jsp/fims/sndb/sndb01010-main.jsp @@ -253,13 +253,17 @@ * DatasetControl **************************************************************************/ var ${pageName}Control = new DatasetControl({ - prefix : "wrngSndngTrgt" - , prefixName : "계고장 발송 대상" - , infoSize : "lg" + prefix : "sndngTrgtInfo" + , prefixName : "발송 대상" + , infoSize : "xl" , keymapper : info => info ? info.CRDN_ID : "" , dataGetter : obj => obj.wrngSndngTrgtList , appendData : true , tableRenderComplete : false // dataTables 에 자료 추가 완료 여부 + , urls : { + load : wctx.url(${pageName}PrefixUrl + "/010/list.do") // 검색 + , getInfo : wctx.url("/sprt/sprt02/010/main.do") // 개별총정보 + } , formats : { LEVY_EXCL_YMD : dateFormat , CRDN_YMD_TM : datetimeFormat @@ -416,6 +420,8 @@ params["crdnIDs"] = selected.join(","); + // title = "계고장 발송 대상"; + ajax.get({ url : wctx.url("/" + params.taskSeCd + ${pageName}PrefixUrl + "/020/info.do") , data : params || {} @@ -458,7 +464,7 @@ // 달력 초기화 initDatepicker("frmSearch--${pageName}"); - $("#schLevyExclYmdFrom--${pageName}").datepicker("setDate", DateUtil.getDateDay(-30).date); + $("#schLevyExclYmdFrom--${pageName}").datepicker("setDate", DateUtil.getDateDay(-90).date); $("#schLevyExclYmdTo--${pageName}").datepicker("setDate", new Date()); ${pageName}Control.dataset.clear(); diff --git a/src/main/webapp/WEB-INF/jsp/fims/sndb/sndb01020-info.jsp b/src/main/webapp/WEB-INF/jsp/fims/sndb/sndb01020-info.jsp index 58271adf..46b22870 100644 --- a/src/main/webapp/WEB-INF/jsp/fims/sndb/sndb01020-info.jsp +++ b/src/main/webapp/WEB-INF/jsp/fims/sndb/sndb01020-info.jsp @@ -20,34 +20,34 @@ + +
+ + +
-
+
-
+
- -
- -
- - +
- +
-
@@ -61,8 +61,8 @@ - @@ -85,7 +85,7 @@ 기타내용 민원신청번호 민원접수번호 - 민원접수일자 + 민원접수일자 민원처리결과 단속일시 차량번호 @@ -171,10 +171,14 @@ , dataGetter : obj => obj.sndngTrgtInfoList , appendData : true , tableRenderComplete : false // dataTables 에 자료 추가 완료 여부 + , urls : { + getInfo : wctx.url("/sprt/sprt02/010/main.do") // 개별총정보 + } , formats : { TNOCS : numberFormat , GRAMT : numberFormat , LEVY_EXCL_YMD : dateFormat + , CVLCPT_RCPT_YMD : dateFormat , CRDN_YMD_TM : datetimeFormat , FFNLG_CRDN_AMT : numberFormat , REG_DT : datetimeFormat @@ -221,34 +225,36 @@ // 개별총정보 dialog ${pageName}Control.getInfo = (crdnId) => { - if (crdnId == undefined || crdnId == null || crdnId == "") { - return; - } - - let params = { - callControlName : "${pageName}Control" - , crdnId : crdnId - } - - ajax.get({ - url : ${pageName}Control.urls.getInfo - , data : params || {} - , success : resp => { - dialog.open({ - id : "totalInfoMainDialog" - , title : "개별총정보" - , content : resp - , size : "xxl" - , init : () => { } - , onClose : () => { } - }); - } - }); + return; + +// if (crdnId == undefined || crdnId == null || crdnId == "") { +// return; +// } + +// let params = { +// callControlName : "${pageName}Control" +// , crdnId : crdnId +// } + +// ajax.get({ +// url : ${pageName}Control.urls.getInfo +// , data : params || {} +// , success : resp => { +// dialog.open({ +// id : "totalInfoMainDialog" +// , title : "개별총정보" +// , content : resp +// , size : "xxl" +// , init : () => { } +// , onClose : () => { } +// }); +// } +// }); } // 저장 callback ${pageName}Control.onSave = (resp) => { - let dialogTitle = $("#" + ${pageName}Control.prefix + "Dialog").find("h5.modal-title").html(); + let dialogTitle = $("#btnSave--${pageName}").attr("title"); let showMessage = resp.retMessage.replace(/[S]|[F]/g, dialogTitle); dialog.alert(showMessage); @@ -267,7 +273,9 @@ if (selected.length < 1) return; - info.crdnIDs = selected.join(","); + info.crdnIDs = selected.join(","); // 단속 IDs + info.resndYn = "N"; // 재발송 여부 + info.delYn = "N"; // 삭제 여부 let createUrl = wctx.url(info.taskSeCd + ${pageName}PrefixUrl + "/020/create.do"); @@ -323,12 +331,14 @@ $("#dudtYmd--${pageName}").prop("disabled", false); $("#divDudtYmd--${pageName}").show(); } + + ${pageName}Control.urls.getInfo = wctx.url("/" + ${pageName}Control.dataset.getValue("TASK_SE_CD") + "/sprt/sprt02/010/main.do"); // 개별총정보 } // 이벤트 setEvent${pageName} = () => { // form-date 항목에서 키보드로 입력시 날짜 포맷팅 적용 - $("#frmSearch--${pageName}").find(".form-date").each(function() { + $("#frmEdit--${pageName}").find(".form-date").each(function() { $(this).on("input", function() { let value = this.value.replaceAll("-", "");