From 6ffa467974f65c94e4273a473207dc57cf302278 Mon Sep 17 00:00:00 2001 From: jjh Date: Mon, 16 Oct 2023 14:57:29 +0900 Subject: [PATCH] =?UTF-8?q?=EC=9C=84=EB=B0=98=20=EB=82=B4=EC=97=AD(TB=5FVL?= =?UTF-8?q?TN=5FINFO)=20=EA=B4=80=EB=A0=A8=20=EC=A1=B0=ED=9A=8C=20?= =?UTF-8?q?=EC=B6=94=EA=B0=80.?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../java/cokr/xit/fims/cmmn/VltnInfo.java | 86 +++++++ .../cokr/xit/fims/cmmn/VltnInfoQuery.java | 100 ++++++++ .../xit/fims/cmmn/dao/VltnInfoMapper.java | 109 +++++++++ .../fims/cmmn/service/VltnInfoService.java | 61 +++++ .../fims/cmmn/service/bean/VltnInfoBean.java | 90 +++++++ .../service/bean/VltnInfoServiceBean.java | 58 +++++ .../xit/fims/cmmn/web/VltnInfoController.java | 105 +++++++++ .../epst/service/bean/EpostRcptRegBean.java | 2 +- .../xit/fims/sndb/service/bean/SndngBean.java | 219 +++++++++++++----- .../sql/mapper/fims/cmmn/vltnInfo-mapper.xml | 157 +++++++++++++ .../mapper/fims/epst/epostRcptReg-mapper.xml | 6 +- .../sql/mapper/fims/sndb/sndng-mapper.xml | 2 +- .../WEB-INF/jsp/fims/sndb/sndb01070-main.jsp | 2 + .../WEB-INF/jsp/fims/sndb/sndb01080-info.jsp | 2 + 14 files changed, 942 insertions(+), 57 deletions(-) create mode 100644 src/main/java/cokr/xit/fims/cmmn/VltnInfo.java create mode 100644 src/main/java/cokr/xit/fims/cmmn/VltnInfoQuery.java create mode 100644 src/main/java/cokr/xit/fims/cmmn/dao/VltnInfoMapper.java create mode 100644 src/main/java/cokr/xit/fims/cmmn/service/VltnInfoService.java create mode 100644 src/main/java/cokr/xit/fims/cmmn/service/bean/VltnInfoBean.java create mode 100644 src/main/java/cokr/xit/fims/cmmn/service/bean/VltnInfoServiceBean.java create mode 100644 src/main/java/cokr/xit/fims/cmmn/web/VltnInfoController.java create mode 100644 src/main/resources/sql/mapper/fims/cmmn/vltnInfo-mapper.xml diff --git a/src/main/java/cokr/xit/fims/cmmn/VltnInfo.java b/src/main/java/cokr/xit/fims/cmmn/VltnInfo.java new file mode 100644 index 00000000..118fa500 --- /dev/null +++ b/src/main/java/cokr/xit/fims/cmmn/VltnInfo.java @@ -0,0 +1,86 @@ +package cokr.xit.fims.cmmn; + +import cokr.xit.foundation.AbstractEntity; +import lombok.Getter; +import lombok.Setter; + +/** + * 위반 정보 + * @author JoJH + */ +@Getter +@Setter +public class VltnInfo extends AbstractEntity { + + /** + * 위반 ID + */ + private String vltnId; + + /** + * 시군구 코드 + */ + private String sggCd; + + /** + * 업무 구분 코드 + */ + private String taskSeCd; + + /** + * 법 코드 + */ + private String lawCd; + + /** + * 위반 코드 + */ + private String vltnCd; + + /** + * 위반 항목 + */ + private String vltnArtcl; + + /** + * 회계 구분 코드 + */ + private String acntgSeCd; + + /** + * 회계 구분 명 + */ + private String acntgSeNm; + + /** + * 세목 코드 + */ + private String txitmCd; + + /** + * 세목 명 + */ + private String txitmNm; + + /** + * 운영 항목 코드 + */ + private String operItemCd; + + /** + * 운영 항목 명 + */ + private String operItemNm; + + /** + * 특별회계 사업 코드 + */ + private String spclBizCd; + + /** + * 사용 여부 + */ + private String useYN; + +} + diff --git a/src/main/java/cokr/xit/fims/cmmn/VltnInfoQuery.java b/src/main/java/cokr/xit/fims/cmmn/VltnInfoQuery.java new file mode 100644 index 00000000..45cb5bf8 --- /dev/null +++ b/src/main/java/cokr/xit/fims/cmmn/VltnInfoQuery.java @@ -0,0 +1,100 @@ +package cokr.xit.fims.cmmn; + +import cokr.xit.foundation.component.QueryRequest; + +/**위반 정보 정보 조회 요청 + * + *

상세 설명: + * + *

+ * ============ 변경 이력 ============
+ * 2023-10-16	JoJH 최초 작성
+ * ================================
+ * 
+ */ +public class VltnInfoQuery extends QueryRequest { + + private static final long serialVersionUID = 1L; + + private String vltnId; // 위반 ID + private String sggCd; // 시군구 코드 + private String taskSeCd; // 업무구분코드 + private String lawCd; // 법 코드 + private String vltnCd; // 위반 코드 + private String vltnArtcl; // 위반 항목 + private String acntgSeCd; // 회계 구분 코드 + private String txitmCd; // 세목 코드 + + public String getVltnId() { + return ifEmpty(vltnId, () -> null); + } + + public T setVltnId(String vltnId) { + this.vltnId = vltnId; + return self(); + } + + public String getSggCd() { + return ifEmpty(sggCd, () -> null); + } + + public T setSggCd(String sggCd) { + this.sggCd = sggCd; + return self(); + } + + public String getTaskSeCd() { + return ifEmpty(taskSeCd, () -> null); + } + + public T setTaskSeCd(String taskSeCd) { + this.taskSeCd = taskSeCd; + return self(); + } + + public String getLawCd() { + return ifEmpty(lawCd, () -> null); + } + + public T setLawCd(String lawCd) { + this.lawCd = lawCd; + return self(); + } + + public String getVltnCd() { + return ifEmpty(vltnCd, () -> null); + } + + public T setVltnCd(String vltnCd) { + this.vltnCd = vltnCd; + return self(); + } + + public String getVltnArtcl() { + return ifEmpty(vltnArtcl, () -> null); + } + + public T setVltnArtcl(String vltnArtcl) { + this.vltnArtcl = vltnArtcl; + return self(); + } + + public String getAcntgSeCd() { + return ifEmpty(acntgSeCd, () -> null); + } + + public T setAcntgSeCd(String acntgSeCd) { + this.acntgSeCd = acntgSeCd; + return self(); + } + + public String getTxitmCd() { + return ifEmpty(txitmCd, () -> null); + } + + public T setTxitmCd(String txitmCd) { + this.txitmCd = txitmCd; + return self(); + } + +} diff --git a/src/main/java/cokr/xit/fims/cmmn/dao/VltnInfoMapper.java b/src/main/java/cokr/xit/fims/cmmn/dao/VltnInfoMapper.java new file mode 100644 index 00000000..8182f0e4 --- /dev/null +++ b/src/main/java/cokr/xit/fims/cmmn/dao/VltnInfoMapper.java @@ -0,0 +1,109 @@ +package cokr.xit.fims.cmmn.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.cmmn.VltnInfo; +import cokr.xit.fims.cmmn.VltnInfoQuery; + +/** 위반 정보 정보 DAO + * + *

상세 설명: + * + *

+ * ============ 변경 이력 ============
+ * 2023-10-16	JoJH 최초 작성
+ * ================================
+ * 
+ */ +@Mapper("vltnInfoMapper") +public interface VltnInfoMapper extends AbstractMapper { + + /**지정한 조건에 따라 위반 정보 목록을 조회하여 반환한다.
+ * @param req 위반 정보 조회 조건 + * @return 위반 정보 목록 + */ + List selectVltnInfoList(VltnInfoQuery req); + + /**지정한 조건에 따라 위반 정보 객체들을 반환한다. + * @param req 위반 정보 조회 조건 + * @return 위반 정보 객체 목록 + */ + List selectVltnInfos(VltnInfoQuery req); + + /**지정한 조건에 따라 위반 정보 객체들을 반환한다. + * @param req 위반 정보 조회 조건 + * @return 위반 정보 객체 목록 + */ + default DataObject selectVltnInfo(VltnInfoQuery req) { + List vltnInfos = selectVltnInfos(req); + + return !vltnInfos.isEmpty() ? vltnInfos.get(0) : null; + } + + /**위반 정보 정보를 등록한다. + * @param params 파라미터 + *
  • "vltnInfo" - 위반 정보
  • + *
  • "currentUser" - 현재 접속한 사용자
  • + *
+ * @return 저장된 정보수 + */ + int insertVltnInfo(Map params); + + /**위반 정보 정보를 등록한다. + * @param vltnInfo 위반 정보 + * @return 저장 여부 + *
  • 저장됐으면 true
  • + *
  • 그렇지 않으면 false
  • + *
+ */ + default boolean insert(VltnInfo vltnInfo) { + return vltnInfo != null && insertVltnInfo(params().set("vltnInfo", vltnInfo)) == 1; + } + + /**위반 정보 정보를 수정한다. + * @param params 파라미터 + *
  • "vltnInfo" - 위반 정보
  • + *
  • "currentUser" - 현재 접속한 사용자
  • + *
+ * @return 저장된 정보수 + */ + int updateVltnInfo(Map params); + + /**위반 정보 정보를 수정한다. + * @param vltnInfo 위반 정보 + * @return 저장 여부 + *
  • 저장됐으면 true
  • + *
  • 그렇지 않으면 false
  • + *
+ */ + default boolean update(VltnInfo vltnInfo) { + return vltnInfo != null && updateVltnInfo(params().set("vltnInfo", vltnInfo)) == 1; + } + + /**지정한 위반 정보을 삭제한다. + * @param params 파라미터 + *
  • "vltnInfo" - 위반 정보
  • + *
  • "currentUser" - 현재 접속한 사용자
  • + *
+ * @return 저장된 정보수 + */ + int deleteVltnInfo(Map params); + + /**위반 정보 정보를 삭제한다. + * @param vltnInfo 위반 정보 + * @return 저장 여부 + *
  • 저장됐으면 true
  • + *
  • 그렇지 않으면 false
  • + *
+ */ + default boolean delete(VltnInfo vltnInfo) { + return vltnInfo != null && deleteVltnInfo(params().set("vltnInfo", vltnInfo)) == 1; + } + +} diff --git a/src/main/java/cokr/xit/fims/cmmn/service/VltnInfoService.java b/src/main/java/cokr/xit/fims/cmmn/service/VltnInfoService.java new file mode 100644 index 00000000..54ff1985 --- /dev/null +++ b/src/main/java/cokr/xit/fims/cmmn/service/VltnInfoService.java @@ -0,0 +1,61 @@ +package cokr.xit.fims.cmmn.service; + +import java.util.List; + +import cokr.xit.foundation.data.DataObject; + +import cokr.xit.fims.cmmn.VltnInfo; +import cokr.xit.fims.cmmn.VltnInfoQuery; + +/**위반 정보 관리 서비스 인터페이스. + * + *

상세 설명: + * + *

+ * ============ 변경 이력 ============
+ * 2023-10-16	JoJH 최초 작성
+ * ================================
+ * 
+ */ +public interface VltnInfoService { + + /**지정한 조건에 따라 위반 정보 목록을 조회하여 반환한다. + * @param req 위반 정보 조회 조건 + * @return 위반 정보 목록 + */ + List getVltnInfoList(VltnInfoQuery req); + + /**지정한 조건에 따라 위반 정보 객체들을 반환한다. + * @param req 위반 정보 조회 조건 + * @return 위반 정보 객체 목록 + */ + List getVltnInfos(VltnInfoQuery req); + + /**위반 정보 정보를 등록한다. + * @param vltnInfo 위반 정보 + * @return 저장 여부 + *
  • 저장됐으면 true
  • + *
  • 그렇지 않으면 false
  • + *
+ */ + boolean create(VltnInfo vltnInfo); + + /**위반 정보 정보를 수정한다. + * @param vltnInfo 위반 정보 + * @return 저장 여부 + *
  • 저장됐으면 true
  • + *
  • 그렇지 않으면 false
  • + *
+ */ + boolean update(VltnInfo vltnInfo); + + /**위반 정보 정보를 삭제한다. + * @param vltnInfo 위반 정보 + * @return 저장 여부 + *
  • 저장됐으면 true
  • + *
  • 그렇지 않으면 false
  • + *
+ */ + boolean remove(VltnInfo vltnInfo); + +} diff --git a/src/main/java/cokr/xit/fims/cmmn/service/bean/VltnInfoBean.java b/src/main/java/cokr/xit/fims/cmmn/service/bean/VltnInfoBean.java new file mode 100644 index 00000000..71f67afe --- /dev/null +++ b/src/main/java/cokr/xit/fims/cmmn/service/bean/VltnInfoBean.java @@ -0,0 +1,90 @@ +package cokr.xit.fims.cmmn.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.cmmn.VltnInfo; +import cokr.xit.fims.cmmn.VltnInfoQuery; +import cokr.xit.fims.cmmn.dao.VltnInfoMapper; + +/**위반 정보 정보 관리 Bean + * + *

상세 설명: + * + *

+ * ============ 변경 이력 ============
+ * 2023-10-16	JoJH 최초 작성
+ * ================================
+ * 
+ */ +@Component("vltnInfoBean") +public class VltnInfoBean extends AbstractComponent { + + /** 위반 정보 정보 DAO */ + @Resource(name = "vltnInfoMapper") + private VltnInfoMapper vltnInfoMapper; + + /**지정한 조건에 따라 위반 정보 목록을 조회하여 반환한다. + * @param req 위반 정보 조회 조건 + * @return 위반 정보 목록 + */ + public List getVltnInfoList(VltnInfoQuery req) { + return vltnInfoMapper.selectVltnInfoList(req); + } + + /**지정한 조건에 따라 위반 정보 객체들을 반환한다. + * @param req 위반 정보 조회 조건 + * @return 위반 정보 객체 목록 + */ + public List getVltnInfos(VltnInfoQuery req) { + return vltnInfoMapper.selectVltnInfos(req); + } + + /**지정한 조건에 따라 위반 정보 객체들을 반환한다. + * @param req 위반 정보 조회 조건 + * @return 위반 정보 객체 목록 + */ + public DataObject getVltnInfo(VltnInfoQuery req) { + return vltnInfoMapper.selectVltnInfo(req); + } + + /**위반 정보 정보를 등록한다. + * @param vltnInfo 위반 정보 + * @return 저장 여부 + *
  • 저장됐으면 true
  • + *
  • 그렇지 않으면 false
  • + *
+ */ + public boolean create(VltnInfo vltnInfo) { + return vltnInfoMapper.insert(vltnInfo); + } + + /**위반 정보 정보를 수정한다. + * @param vltnInfo 위반 정보 + * @return 저장 여부 + *
  • 저장됐으면 true
  • + *
  • 그렇지 않으면 false
  • + *
+ */ + public boolean update(VltnInfo vltnInfo) { + return vltnInfoMapper.update(vltnInfo); + } + + /**위반 정보 정보를 삭제한다. + * @param vltnInfo 위반 정보 + * @return 저장 여부 + *
  • 저장됐으면 true
  • + *
  • 그렇지 않으면 false
  • + *
+ */ + public boolean remove(VltnInfo vltnInfo) { + return vltnInfoMapper.delete(vltnInfo); + } + +} diff --git a/src/main/java/cokr/xit/fims/cmmn/service/bean/VltnInfoServiceBean.java b/src/main/java/cokr/xit/fims/cmmn/service/bean/VltnInfoServiceBean.java new file mode 100644 index 00000000..ac04177e --- /dev/null +++ b/src/main/java/cokr/xit/fims/cmmn/service/bean/VltnInfoServiceBean.java @@ -0,0 +1,58 @@ +package cokr.xit.fims.cmmn.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.cmmn.VltnInfo; +import cokr.xit.fims.cmmn.VltnInfoQuery; +import cokr.xit.fims.cmmn.service.VltnInfoService; + +/**위반 정보 서비스 구현체. + * + *

상세 설명: + * + *

+ * ============ 변경 이력 ============
+ * 2023-10-16	JoJH 최초 작성
+ * ================================
+ * 
+ */ +@Service("vltnInfoService") +public class VltnInfoServiceBean extends AbstractServiceBean implements VltnInfoService { + + /** 위반 정보 정보 Bean */ + @Resource(name = "vltnInfoBean") + private VltnInfoBean vltnInfoBean; + + @Override + public List getVltnInfoList(VltnInfoQuery req) { + return vltnInfoBean.getVltnInfoList(req); + } + + @Override + public List getVltnInfos(VltnInfoQuery req) { + return vltnInfoBean.getVltnInfos(req); + } + + @Override + public boolean create(VltnInfo vltnInfo) { + return vltnInfoBean.create(vltnInfo); + } + + @Override + public boolean update(VltnInfo vltnInfo) { + return vltnInfoBean.update(vltnInfo); + } + + @Override + public boolean remove(VltnInfo vltnInfo) { + return vltnInfoBean.remove(vltnInfo); + } + +} diff --git a/src/main/java/cokr/xit/fims/cmmn/web/VltnInfoController.java b/src/main/java/cokr/xit/fims/cmmn/web/VltnInfoController.java new file mode 100644 index 00000000..5a00885b --- /dev/null +++ b/src/main/java/cokr/xit/fims/cmmn/web/VltnInfoController.java @@ -0,0 +1,105 @@ +package cokr.xit.fims.cmmn.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.cmmn.VltnInfo; +import cokr.xit.fims.cmmn.VltnInfoQuery; +import cokr.xit.fims.cmmn.service.VltnInfoService; + +/**위반 정보 서비스의 웹 컨트롤러 + * + *

상세 설명: + * + *

+ * ============ 변경 이력 ============
+ * 2023-10-16	JoJH 최초 작성
+ * ================================
+ * 
+ */ +@RequestMapping(name = "위반 정보", value = "/vltnInfo") +public class VltnInfoController extends AbstractController { + + /**위반 정보 서비스*/ + @Resource(name = "vltnInfoService") + private VltnInfoService vltnInfoService; + + /**위반 정보 관리 메인화면(vltnInfo/vltnInfo-main)을 연다. + * 조건없는 {@link #getVltnInfoList(VltnInfoQuery) 위반 정보 조회 결과}를 포함시킨다. + * @return /vltnInfo/vltnInfo-main + */ + @RequestMapping(name = "위반 정보 메인", value = "/main.do") + public ModelAndView main() { + ModelAndView mav = getVltnInfoList(new VltnInfoQuery().setPageNum(1)); + mav.setViewName("/vltnInfo/vltnInfo-main"); + return mav.addObject("vltnInfoList", toJson(mav.getModel().get("vltnInfoList"))); + } + + /**위반 정보 목록을 조회하여 반환한다.
+ * {@link VltnInfoService#getVltnInfoList(VltnInfoQuery)} 참고 + * @param req 위반 정보 조회 조건 + * @return jsonView + *
 {
+	 *     "vltnInfoList": [위반 정보 목록]
+	 *     "vltnInfoStart": 위반 정보 목록 시작 인덱스
+	 *     "vltnInfoFetch": 한 번에 가져오는 위반 정보 목록 수
+	 *     "vltnInfoTotal": 조회 결과 찾은 전체 위반 정보 수
+	 * }
+ */ + @RequestMapping(name = "위반 정보 조회", value = "/list.do") + public ModelAndView getVltnInfoList(VltnInfoQuery req) { + List result = vltnInfoService.getVltnInfoList(setFetchSize(req)); + return setCollectionInfo(new ModelAndView("jsonView"), result, "vltnInfo"); + } + + /**위반 정보를 등록한다. + * @param vltnInfo 위반 정보 정보 + * @return jsonView + *
 {
+	 *     "saved": 등록되었으면 true, 그렇지 않으면 false
+	 * }
+ */ + @PostMapping(name = "위반 정보 등록", value = "/create.do") + public ModelAndView create(VltnInfo vltnInfo) { + boolean saved = vltnInfoService.create(vltnInfo); + return new ModelAndView("jsonView") + .addObject("saved", saved); + } + + /**위반 정보 정보를 수정한다. + * @param vltnInfo 위반 정보 정보 + * @return jsonView + *
 {
+	 *     "saved": 수정되었으면 true, 그렇지 않으면 false
+	 * }
+ */ + @PostMapping(name = "위반 정보 수정", value = "/update.do") + public ModelAndView update(VltnInfo vltnInfo) { + boolean saved = vltnInfoService.update(vltnInfo); + return new ModelAndView("jsonView") + .addObject("saved", saved); + } + + /**지정한 위반 정보를 제거한다. + * @param vltnInfoIDs 위반 정보 아이디 + * @return jsonView + *
 {
+	 *     "affected": 저장된 정보수
+	 *     "saved": 저장되었으면 true, 그렇지 않으면 false
+	 * }
+ */ + @PostMapping(name = "위반 정보 제거", value = "/remove.do") + public ModelAndView remove(VltnInfo vltnInfo) { + boolean saved = vltnInfoService.remove(vltnInfo); + return new ModelAndView("jsonView") + .addObject("saved", saved); + } + +} diff --git a/src/main/java/cokr/xit/fims/epst/service/bean/EpostRcptRegBean.java b/src/main/java/cokr/xit/fims/epst/service/bean/EpostRcptRegBean.java index a77b8662..ecf508c0 100644 --- a/src/main/java/cokr/xit/fims/epst/service/bean/EpostRcptRegBean.java +++ b/src/main/java/cokr/xit/fims/epst/service/bean/EpostRcptRegBean.java @@ -21,7 +21,7 @@ import cokr.xit.fims.epst.EpostRcptDtl; * *
  * ============ 변경 이력 ============
- * 2023-10-11	mjkhan 최초 작성
+ * 2023-10-11	JoJH 최초 작성
  * ================================
  * 
*/ 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 5b596db2..957397c5 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 @@ -1,14 +1,12 @@ package cokr.xit.fims.sndb.service.bean; import java.util.List; -import java.util.Map; import javax.annotation.Resource; import org.springframework.stereotype.Component; import cokr.xit.foundation.AbstractComponent; -import cokr.xit.foundation.UserInfo; import cokr.xit.foundation.data.DataObject; import cokr.xit.fims.sndb.Sndng; @@ -16,12 +14,13 @@ import cokr.xit.fims.sndb.SndngDtl; import cokr.xit.fims.sndb.Svbtc; import cokr.xit.base.user.service.bean.UserBean; import cokr.xit.fims.cmmn.CrdnSttsHstry; +import cokr.xit.fims.cmmn.VltnInfoQuery; import cokr.xit.fims.cmmn.service.bean.CrdnSttsHstryBean; +import cokr.xit.fims.cmmn.service.bean.VltnInfoBean; import cokr.xit.fims.enis.EnisMtchg; import cokr.xit.fims.enis.service.bean.EnisMtchgBean; import cokr.xit.fims.epst.EpostRcptDtl; import cokr.xit.fims.epst.EpostRcptReg; -import cokr.xit.fims.epst.dao.EpostRcptRegMapper; import cokr.xit.fims.epst.service.bean.EpostRcptRegBean; import cokr.xit.fims.levy.Levy; import cokr.xit.fims.levy.service.bean.LevyBean; @@ -70,6 +69,10 @@ public class SndngBean extends AbstractComponent { @Resource(name = "epostRcptRegBean") private EpostRcptRegBean epostRcptRegBean; + /** 위반 정보 정보 Bean */ + @Resource(name = "vltnInfoBean") + private VltnInfoBean vltnInfoBean; + /**지정한 조건에 따라 계도장 발송 대상 목록을 조회하여 반환한다. * @param req 발송 대장 조회 조건 * @return 계도장 발송 대상 목록 @@ -410,25 +413,39 @@ public class SndngBean extends AbstractComponent { // 발송 정보 조회 DataObject sndngInfo = sndngMapper.selectSndngInfo(sndng.getSndngId()); - if (sndngInfo.string("VLTN_CD").equals("")) { + if (sndngInfo.string("VLTN_ID").equals("")) { jobCd = "01"; } else { jobCd = sndngInfo.string("VLTN_CD"); } - if (sndng.getSndngSeCd().equals("01")) { // 계고장 + // 위반 정보 조회 + VltnInfoQuery vltnInfoQuery = new VltnInfoQuery(); + + if (sndngInfo.string("VLTN_ID").equals("")) { + vltnInfoQuery.setSggCd(sndngInfo.string("SGG_CD")); + vltnInfoQuery.setTaskSeCd(sndngInfo.string("TASK_SE_CD")); + vltnInfoQuery.setVltnCd(jobCd); + } else { + vltnInfoQuery.setVltnId(sndngInfo.string("VLTN_ID")); + } + + DataObject vltnInfo = vltnInfoBean.getVltnInfo(vltnInfoQuery); + + // + if (sndngInfo.string("SNDNG_SE_CD").equals("01")) { // 계고장 jobCd = jobCd + "01"; - } else if (sndng.getSndngSeCd().equals("02")) { // 사전통지 + } else if (sndngInfo.string("SNDNG_SE_CD").equals("02")) { // 사전통지 jobCd = jobCd + "02"; - } else if (sndng.getSndngSeCd().equals("03")) { // 부과 + } else if (sndngInfo.string("SNDNG_SE_CD").equals("03")) { // 부과 jobCd = jobCd + "03"; - } else if (sndng.getSndngSeCd().equals("04")) { // 독촉 + } else if (sndngInfo.string("SNDNG_SE_CD").equals("04")) { // 독촉 jobCd = jobCd + "04"; - } else if (sndng.getSndngSeCd().equals("05")) { // 압류예고 + } else if (sndngInfo.string("SNDNG_SE_CD").equals("05")) { // 압류예고 jobCd = jobCd + "05"; - } else if (sndng.getSndngSeCd().equals("06")) { // 압류통지 + } else if (sndngInfo.string("SNDNG_SE_CD").equals("06")) { // 압류통지 jobCd = jobCd + "06"; - } else if (sndng.getSndngSeCd().equals("09")) { // 체납분 + } else if (sndngInfo.string("SNDNG_SE_CD").equals("09")) { // 체납분 jobCd = jobCd + "09"; } else { retMessage = "[E] 작업중 발송구분이 지정되지 않았습니다."; @@ -454,13 +471,13 @@ public class SndngBean extends AbstractComponent { // 전자우편 접수 등록 EpostRcptReg epostRcptReg = new EpostRcptReg(); - epostRcptReg.setConKey(conKey); // - epostRcptReg.setRceptId(epostInfo.string("RCEPT_ID")); // - epostRcptReg.setDataCd("00"); // + epostRcptReg.setConKey(conKey); // 외부연계식별키 + epostRcptReg.setRceptId(epostInfo.string("RCEPT_ID")); // 접수우체국국기호 + epostRcptReg.setDataCd("00"); // 접수코드 // 000=일반 001=등기 201=선택등기 if (sndng.getPostSndngSeCd().equals("1")) { - if (sndng.getSggCd().equals("11500")) { + if (sndngInfo.string("SGG_CD").equals("11500")) { epostRcptReg.setDivKb("00" + sndng.getPostSndngSeCd()); epostRcptReg.setSealCd("1" + "2" + workId); } else { @@ -475,11 +492,12 @@ public class SndngBean extends AbstractComponent { epostRcptReg.setDfpayyn("001"); epostRcptReg.setRcptKb("020"); epostRcptReg.setWordKb("001"); - epostRcptReg.setRecevCnt(sndngInfo.number("TNOCS").intValue()); // 건수 확인 필요하다. - epostRcptReg.setEnvCd("003"); // 접착식 + // 건수 확인 필요하다. ///////////////////////////////////////////////// + epostRcptReg.setRecevCnt(sndngInfo.number("TNOCS").intValue()); // 수취인 수 + epostRcptReg.setEnvCd("003"); // 봉투 종류 - 접착식 // 서울 - if ("11".equals(sndng.getSggCd().substring(0, 2))) { + if ("11".equals(sndngInfo.string("SGG_CD").substring(0, 2))) { // 서울특별시 epostRcptReg.setColorYn("Y"); epostRcptReg.setMailCnt(2); @@ -489,64 +507,157 @@ public class SndngBean extends AbstractComponent { epostRcptReg.setFlexCd("Y"); } } else { - if (sndng.getSggCd().equals("44200")) { // 아산시청 + if (sndngInfo.string("SGG_CD").equals("44200")) { // 아산시청 if (sndng.getSndngSeCd().equals("02")) { // 사전통지는 컬러로.. epostRcptReg.setColorYn("Y"); } else { epostRcptReg.setColorYn("N"); } - } else if (sndng.getSggCd().equals("50110")) { // 제주시청 + } else if (sndngInfo.string("SGG_CD").equals("50110")) { // 제주시청 if (sndng.getSndngSeCd().equals("02") || sndng.getSndngSeCd().equals("01") || sndng.getSndngSeCd().equals("10")) { // 사전통지, 계도 컬러로 epostRcptReg.setColorYn("Y"); } else { epostRcptReg.setColorYn("N"); } + } else { + epostRcptReg.setColorYn("N"); // 칼라우편물 } - epostRcptReg.setFlexCd("N"); - epostRcptReg.setMailCnt(1); + + epostRcptReg.setFlexCd("N"); // 이면구분 + epostRcptReg.setMailCnt(1); // 내용문 매수 } - epostRcptReg.setMmYn("Y"); - epostRcptReg.setDmCnt(0); - epostRcptReg.setSbFg("Y"); + epostRcptReg.setMmYn("Y"); // 메일머지 플래그 + epostRcptReg.setDmCnt(0); // 동봉물 개수 + epostRcptReg.setSbFg("Y"); // 반송불필요 여부 epostRcptReg.setApvlNb(epostInfo.string("APVL_NB")); // 후납계약 승인번호 - epostRcptReg.setSendDate(sndngInfo.string("NOW").substring(0, 8)); - epostRcptReg.setSendTime(sndngInfo.string("NOW").substring(8)); + epostRcptReg.setSendDate(sndngInfo.string("NOW").substring(0, 8)); // 신청 일자 + epostRcptReg.setSendTime(sndngInfo.string("NOW").substring(8)); // 전송 시간 if ("420".equals(epostInfo.string("DEPT_CD").substring(0,3)) && (sndngInfo.string("TASK_SE_CD").equals("ECA"))) { - epostRcptReg.setRelorsectCd(epostInfo.string("4200999")); + epostRcptReg.setRelorsectCd(epostInfo.string("4200999")); // 연계기관결제부서코드 } else { - epostRcptReg.setRelorsectCd(epostInfo.string("DEPT_CD")); + epostRcptReg.setRelorsectCd(epostInfo.string("DEPT_CD")); // 연계기관결제부서코드 } - epostRcptReg.setRecevSenderOrgCode(epostInfo.string("DEPT_CD") + "0000"); - epostRcptReg.setRecevSenderNm(epostInfo.string("INST_NM") + " " + epostInfo.string("DEPT_NM")); - epostRcptReg.setRecevSenderZipcode(epostInfo.string("INST_ZIP")); - epostRcptReg.setRecevSenderAddr(epostInfo.string("INST_ADDR")); - epostRcptReg.setRecevSenderDetailaddr(epostInfo.string("INST_DADDR")); - epostRcptReg.setRecevSenderDepartTel(epostInfo.string("DEPT_TELNO")); - epostRcptReg.setRecevSenderDepartNm(epostInfo.string("DEPT_NM")); - epostRcptReg.setRecevDivCd(sndng.getPostSndngSeCd()); - epostRcptReg.setRecevPrintDt(sndngInfo.string("TODAY_MASK")); - epostRcptReg.setRecevPrintYear(sndngInfo.string("TODAY").substring(0, 4)); - epostRcptReg.setRecevPrintMonth(sndngInfo.string("TODAY").substring(4, 6)); - epostRcptReg.setRecevPrintDay(sndngInfo.string("TODAY").substring(6, 8)); - epostRcptReg.setRecevSenderFax(epostInfo.string("DEPT_FXNO")); - epostRcptReg.setRecevSerderStaff(userInfo.string("USER_NM")); - epostRcptReg.setRecevSenderEmail(userInfo.string("EML_ADRS")); -// epostRcptReg.set_ - - - - -// for (int iLoop = 0; iLoop < sndng.getSndngDtlIDs().length; iLoop++) { -// // 전자우편 접수 상세 -// EpostRcptDtl epostRcptDtl = new EpostRcptDtl(); + epostRcptReg.setRecevSenderOrgCode(epostInfo.string("DEPT_CD") + "0000"); // 발송기관코드 + epostRcptReg.setRecevSenderNm(epostInfo.string("INST_NM") + " " + epostInfo.string("DEPT_NM")); // 발송인명 + epostRcptReg.setRecevSenderZipcode(epostInfo.string("INST_ZIP")); // 발송인 우편번호 + epostRcptReg.setRecevSenderAddr(epostInfo.string("INST_ADDR")); // 주소 + epostRcptReg.setRecevSenderDetailaddr(epostInfo.string("INST_DADDR")); // 상세주소 + epostRcptReg.setRecevSenderDepartTel(epostInfo.string("DEPT_TELNO")); // 부과부서 전화번호 + epostRcptReg.setRecevSenderDepartNm(epostInfo.string("DEPT_NM")); // 부과부서 + epostRcptReg.setRecevDivCd(sndng.getPostSndngSeCd()); // 등기구분 + epostRcptReg.setRecevPrintDt(sndngInfo.string("TODAY_MASK")); // 출력일자 + epostRcptReg.setRecevPrintYear(sndngInfo.string("TODAY").substring(0, 4)); // 출력연도 + epostRcptReg.setRecevPrintMonth(sndngInfo.string("TODAY").substring(4, 6)); // 출력월 + epostRcptReg.setRecevPrintDay(sndngInfo.string("TODAY").substring(6, 8)); // 출력일 + epostRcptReg.setRecevSenderFax(epostInfo.string("DEPT_FXNO")); // 부과부서 팩스번호 + epostRcptReg.setRecevSerderStaff(userInfo.string("USER_NM")); // 부과부서 담당자 + epostRcptReg.setRecevSenderEmail(userInfo.string("EML_ADRS")); // 부과부서 이메일 + epostRcptReg.setJobCd(jobCd); // 작업 코드 + epostRcptReg.setPostProcStt("01"); // 우편 처리 상태 + epostRcptReg.setDelYn("N"); // 삭제 여부 + epostRcptReg.setRceptYmd(sndngInfo.string("TODAY")); // 접수 일자 + epostRcptReg.setSndngId(sndngInfo.string("SNDNG_ID")); // 발송 ID + + // 전자우편 접수 내역을 등록한다. + retSuccess = epostRcptRegBean.createEpostRcptReg(epostRcptReg); + if (!retSuccess) { + // 예외를 발생시켜서 오류메세지를 보내고 DB Rollback + throw new RuntimeException("우편통합 발송 작업중 전자우편 접수 등록에 실패하였습니다."); + } + + // 전자우편 접수 상세 + String gojiStep = "00"; // 고지순번이 아님 01은 분납 + String gojiGubun = "2"; // 1=정기분 2=수시분 + String gojiTitle = sndngInfo.string("TXITM_NM"); + String prtGubun = ""; + + if (sndngInfo.string("SNDNG_SE_CD").equals("01")) { // 계도 + prtGubun = "계도"; + } else if (sndngInfo.string("SNDNG_SE_CD").equals("02")) { // 사전통지서 + prtGubun = "사전"; + } else if (sndngInfo.string("SNDNG_SE_CD").equals("03")) { // 부과고지서 + prtGubun = "부과"; + } else if (sndngInfo.string("SNDNG_SE_CD").equals("04")) { // 독촉고지서 + prtGubun = "독촉"; + } else if (sndngInfo.string("SNDNG_SE_CD").equals("05")) { // 압류예고통지서 + prtGubun = "예고"; + } else if (sndngInfo.string("SNDNG_SE_CD").equals("06")) { // 압류통지 + prtGubun = "압류"; + } else if (sndngInfo.string("SNDNG_SE_CD").equals("07")) { // 사전통지서(개별) + prtGubun = "사전"; + } else if (sndngInfo.string("SNDNG_SE_CD").equals("08")) { // 체납고지서(개별) + prtGubun = "체납"; + } else if (sndngInfo.string("SNDNG_SE_CD").equals("09")) { // 체납고지서 + prtGubun = "체납"; + } + + String docStr1 = gojiTitle; // 장애인주주차위반과태료 + String docStr2 = "납부(" + prtGubun + ")서 영수증"; // 납부(사전)서 영수증 + String docStr3 = "[" + prtGubun + "]"; // [사전] + String docStr4 = "[시세외]" + gojiTitle; + String docStr5 = "영수필통지서"; + + String im_subj2 = ""; + if (sndngInfo.string("SNDNG_SE_CD").equals("01") || sndngInfo.string("SNDNG_SE_CD").equals("02")) { // 계도, 사전통지서 + im_subj2 = ""; + } else { + im_subj2 = "가산금"; + } + + String im_SggName = epostInfo.string("INST_CHIEF_NM"); + + // + for (int iLoop = 0; iLoop < sndng.getSndngDtlIDs().length; iLoop++) { + // 전자우편 접수 상세 + EpostRcptDtl epostRcptDtl = new EpostRcptDtl(); + + // 발송 상세 정보 조회 + DataObject sndngDtlInfo = sndngMapper.selectSndngDtlInfo(sndng.getSndngDtlIDs()[iLoop]); + +// +// if regist_gubun = '1' then // 등기 +// begin +// try +// im_regt_no := Get_TRGST_NMBR(regist_gubun); +// except +// on e:exception do begin +// showmessage(e.Message); +// fData.UniConnection1.Rollback; +// Exit; +// end; +// +// end; +// end +// else begin +// Inc(nSeqNo); +// im_regt_no := sToday + FormatFloat('00000', nSeqNo); +// end; +// // -// // 발송 상세 정보 조회 -// DataObject sndngDtlInfo = sndngMapper.selectSndngDtlInfo(sndng.getSndngDtlIDs()[iLoop]); +// epostRcptDtl.setConKey(conKey); +// epostRcptDtl.setRgstNmbr(); // 등기번호 // // +// qryPutDetail.ParamByName('RECEV_SEQ').AsString := FieldByName('GP_MMCODE').AsString; +// qryPutDetail.ParamByName('RECEV_CODE').AsString := FieldByName('gp_code').AsString; +// qryPutDetail.ParamByName('RECEV_BAR1D').AsString := im_SggName; // 2019.06.04''; +// qryPutDetail.ParamByName('RECEV_BAR2D').AsString := ''; +// qryPutDetail.ParamByName('RECEV_BILL_NUMBER').AsString := im_Gojino; +// qryPutDetail.ParamByName('RECEV_DOC_CD1').AsString := gDoc_Str2; +// qryPutDetail.ParamByName('RECEV_DOC_CD2').AsString := SizeString(trim(im_GwataeName),30); // 2019.06.04 gDoc_Str1; +// qryPutDetail.ParamByName('RECEV_DOC_CD3').AsString := gDoc_Str3; +// qryPutDetail.ParamByName('RECEV_DOC_CD4').AsString := gDoc_Str4; +// qryPutDetail.ParamByName('RECEV_DOC_CD5').AsString := gDoc_Str5; +// qryPutDetail.ParamByName('RECEV_SUBJ1').AsString := Get_Keum_Gubun_Str(CPSystem_Info.Job_Group_Code); +// qryPutDetail.ParamByName('RECEV_SUBJ2').AsString := im_subj2; +// qryPutDetail.ParamByName('RECEV_SUBJ3').AsString := CPSystem_Info.Sido_Name; // 2019.06.04 ''; +// qryPutDetail.ParamByName('RECEV_VIOLATE_DT').AsString := FieldByName('GP_MM_WDATETIME').AsString; +// qryPutDetail.ParamByName('RECEV_VIOLATE_DONG').AsString := Get_MM_BDONG_Str(FieldByName('MM_BDCODE').AsString); +// qryPutDetail.ParamByName('RECEV_VIOLATE_PLACE').AsString := copy(im_sgpos,1,80); +// qryPutDetail.ParamByName('RECEV_LAWS').AsString := im_Laws; // } retMessage = "[S] 작업이 정상 처리 되었습니다."; diff --git a/src/main/resources/sql/mapper/fims/cmmn/vltnInfo-mapper.xml b/src/main/resources/sql/mapper/fims/cmmn/vltnInfo-mapper.xml new file mode 100644 index 00000000..3e124c1a --- /dev/null +++ b/src/main/resources/sql/mapper/fims/cmmn/vltnInfo-mapper.xml @@ -0,0 +1,157 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + SELECT VI.VLTN_ID + , VI.SGG_CD + , VI.TASK_SE_CD + , VI.LAW_CD + , VI.VLTN_CD + , VI.VLTN_ARTCL + , VI.ACNTG_SE_CD + , VI.ACNTG_SE_NM + , VI.TXITM_CD + , VI.TXITM_NM + , VI.OPER_ITEM_CD + , VI.OPER_ITEM_NM + , VI.SPCL_BIZ_CD + , VI.USE_YN + , VI.REG_DT + , VI.RGTR + , VI.MDFCN_DT + , VI.MDFR + FROM TB_VLTN_INFO VI + + + + + + + /* 위반 정보 등록(vltnInfoMapper.insertVltnInfo) */ + INSERT + INTO TB_VLTN_INFO ( + VLTN_ID + , SGG_CD + , TASK_SE_CD + , LAW_CD + , VLTN_CD + , VLTN_ARTCL + , ACNTG_SE_CD + , ACNTG_SE_NM + , TXITM_CD + , TXITM_NM + , OPER_ITEM_CD + , OPER_ITEM_NM + , SPCL_BIZ_CD + , USE_YN + , REG_DT + , RGTR + , MDFCN_DT + , MDFR + ) + VALUES ( + #{vltnInfo.vltnId} + , #{vltnInfo.sggCd} + , #{vltnInfo.taskSeCd} + , #{vltnInfo.lawCd} + , #{vltnInfo.vltnCd} + , #{vltnInfo.vltnArtcl} + , #{vltnInfo.acntgSeCd} + , #{vltnInfo.acntgSeNm} + , #{vltnInfo.txitmCd} + , #{vltnInfo.txitmNm} + , #{vltnInfo.operItemCd} + , #{vltnInfo.operItemNm} + , #{vltnInfo.spclBizCd} + , #{vltnInfo.useYn} + , + , #{currentUser.id} + , + , #{currentUser.id} + ) + + + /* 위반 정보 수정(vltnInfoMapper.updateVltnInfo) */ + UPDATE TB_VLTN_INFO + SET LAW_CD = #{vltnInfo.lawCd} + , VLTN_CD = #{vltnInfo.vltnCd} + , VLTN_ARTCL = #{vltnInfo.vltnArtcl} + , ACNTG_SE_CD = #{vltnInfo.acntgSeCd} + , ACNTG_SE_NM = #{vltnInfo.acntgSeNm} + , TXITM_CD = #{vltnInfo.txitmCd} + , TXITM_NM = #{vltnInfo.txitmNm} + , OPER_ITEM_CD = #{vltnInfo.operItemCd} + , OPER_ITEM_NM = #{vltnInfo.operItemNm} + , SPCL_BIZ_CD = #{vltnInfo.spclBizCd} + , MDFCN_DT = + , MDFR = #{vltnInfo.modifiedBy} + WHERE VLTN_ID = #{vltnInfo.vltnId} + + + /* 위반 정보 삭제(vltnInfoMapper.deleteVltnInfo) */ + UPDATE TB_VLTN_INFO + SET USE_YN = 'N' + , MDFCN_DT = + , MDFR = #{vltnInfo.modifiedBy} + WHERE VLTN_ID = #{vltnInfo.vltnId} + + + diff --git a/src/main/resources/sql/mapper/fims/epst/epostRcptReg-mapper.xml b/src/main/resources/sql/mapper/fims/epst/epostRcptReg-mapper.xml index bd03b336..10fe1b0f 100644 --- a/src/main/resources/sql/mapper/fims/epst/epostRcptReg-mapper.xml +++ b/src/main/resources/sql/mapper/fims/epst/epostRcptReg-mapper.xml @@ -679,11 +679,15 @@ UPDATE TB_EPOST_RCPT_DTL SET , DI.RG_NO_HEADER , DI.VRBACNT_LINK_SE_CD , SI.SGG_CD + , SI.SGG_NM , SI.INST_CD , SI.INST_NM + , SI.INST_CHIEF_NM , SI.INST_ADDR , SI.INST_DADDR - , INST_ZIP + , SI.INST_ZIP + , SI.UP_INST_CD + , SI.UP_INST_NM FROM TB_DEPT_INFO DI INNER JOIN TB_SGG_INFO SI ON (DI.SGG_CD = SI.SGG_CD AND DI.INST_CD = SI.INST_CD) WHERE DEPT_CD = #{deptCd} 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 31bcdd31..4685be75 100644 --- a/src/main/resources/sql/mapper/fims/sndb/sndng-mapper.xml +++ b/src/main/resources/sql/mapper/fims/sndb/sndng-mapper.xml @@ -601,7 +601,7 @@ , FN_GET_MASK_DATE(, 'K') AS TODAY_MASK , AS NOW FROM TB_SNDNG S - LEFT OUTER JOIN TB_VLTN_INFO VI ON (S.VLTN_ID = VI.VLTN_ID AND S.SGG_CD = VI.SGG_CD AND S.TASK_SE_CD = VI.TASK_SE_CD) + LEFT OUTER JOIN TB_VLTN_INFO VI ON (S.VLTN_ID = VI.VLTN_ID AND S.SGG_CD = VI.SGG_CD AND S.TASK_SE_CD = VI.TASK_SE_CD) + @@ -458,6 +459,7 @@ $("#sggCd--${pageName}").val(${pageName}Control.dataset.getValue("SGG_CD")); // 시군구 코드 $("#taskSeCd--${pageName}").val(${pageName}Control.dataset.getValue("TASK_SE_CD")); // 업무 구분 코드 + $("#vltnId--${pageName}").val( ); // 위반 ID });