From 653923781f7c5e1e95b004eb31d6175b682362ee Mon Sep 17 00:00:00 2001 From: leebeomjun Date: Mon, 14 Aug 2023 10:16:06 +0900 Subject: [PATCH] =?UTF-8?q?=EB=AF=BC=EC=9B=90=20=EC=88=98=EC=A0=95?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/main/java/cokr/xit/fims/crdn/Crdn.java | 5 + .../xit/fims/crdn/service/CrdnService.java | 4 +- .../fims/crdn/service/bean/Crdn06Bean.java | 2 +- .../xit/fims/cvlc/dao/CrdnCvlcptMapper.java | 14 ++- .../fims/cvlc/service/CrdnCvlcptService.java | 6 +- .../cvlc/service/bean/CrdnCvlcptBean.java | 51 +++++++- .../service/bean/CrdnCvlcptServiceBean.java | 118 ++++++++++++++---- .../xit/fims/cvlc/web/Cvlc01Controller.java | 6 +- .../mapper/fims/cvlc/crdnCvlcpt-mapper.xml | 29 ++++- 9 files changed, 198 insertions(+), 37 deletions(-) diff --git a/src/main/java/cokr/xit/fims/crdn/Crdn.java b/src/main/java/cokr/xit/fims/crdn/Crdn.java index 9078d5de..de5c46fd 100644 --- a/src/main/java/cokr/xit/fims/crdn/Crdn.java +++ b/src/main/java/cokr/xit/fims/crdn/Crdn.java @@ -326,4 +326,9 @@ public class Crdn extends AbstractEntity { * 납부자 상세주소 */ private String dtlAddr; + + /** + * 부과 제외 사유 코드 + */ + private String levyExclRsnCd; } diff --git a/src/main/java/cokr/xit/fims/crdn/service/CrdnService.java b/src/main/java/cokr/xit/fims/crdn/service/CrdnService.java index e8838fe4..fd935387 100644 --- a/src/main/java/cokr/xit/fims/crdn/service/CrdnService.java +++ b/src/main/java/cokr/xit/fims/crdn/service/CrdnService.java @@ -26,13 +26,13 @@ public interface CrdnService { boolean remove(String... crdnIDs); /** 단속 자료를 신규 등록한다. - * @param crdn 단속정보, newFileList 업로드 파일 목록 + * @param nonQueryRequest 등록 요청, crdn 단속정보, newFileList 업로드 파일 목록 * @return 저장여부 */ boolean create(Map nonQueryRequest, Crdn crdn, List newFileInfoList); /** 단속 자료를 수정한다. - * @param crdn 단속정보, nonQueryRequest 요청정보, newFileInfoList 업로드 파일 목록 + * @param nonQueryRequest 수정 요청, crdn 단속정보, newFileInfoList 업로드 파일 목록 * @return 저장여부 */ boolean update(Map nonQueryRequest, Crdn crdn, List newFileInfoList); diff --git a/src/main/java/cokr/xit/fims/crdn/service/bean/Crdn06Bean.java b/src/main/java/cokr/xit/fims/crdn/service/bean/Crdn06Bean.java index 6edf8508..d66d9cbc 100644 --- a/src/main/java/cokr/xit/fims/crdn/service/bean/Crdn06Bean.java +++ b/src/main/java/cokr/xit/fims/crdn/service/bean/Crdn06Bean.java @@ -20,7 +20,7 @@ public class Crdn06Bean extends AbstractComponent { private Crdn06Mapper crdn06Mapper; /**단속 대장 정보를 수정한다. - * @param crdn 단속 대장 + * @param nonQueryRequest 수정 요청, crdn 단속 대장 * @return 저장 여부 *
  • 저장됐으면 true
  • *
  • 그렇지 않으면 false
  • diff --git a/src/main/java/cokr/xit/fims/cvlc/dao/CrdnCvlcptMapper.java b/src/main/java/cokr/xit/fims/cvlc/dao/CrdnCvlcptMapper.java index 37610dcf..4f064932 100644 --- a/src/main/java/cokr/xit/fims/cvlc/dao/CrdnCvlcptMapper.java +++ b/src/main/java/cokr/xit/fims/cvlc/dao/CrdnCvlcptMapper.java @@ -71,7 +71,7 @@ public interface CrdnCvlcptMapper extends AbstractMapper { * @param crdn 민원정보 * @return 저장된 정보 수 */ - int updateCvlcptPrcs(CrdnCvlcpt cvlcpt); + int updateCvlcptPrcsSe(CrdnCvlcpt cvlcpt); /** 단속정보를 수정한다. * @param params 단속정보 수정 파라미터 @@ -79,4 +79,16 @@ public interface CrdnCvlcptMapper extends AbstractMapper { */ int updateCrdn(Map params); + /** 단속정보 조회한다. + * @param crdnId 단속정보 아이디 + * @return 단속정보 + */ + DataObject getCrdnInfo(String crdnId); + + /** 답변 내용을 초기화한다. + * @param crdnCvlcpt 단속민원 + * @return 저장된 정보 수 + */ + int initCvlcptPrcsRsltCn(CrdnCvlcpt crdnCvlcpt); + } diff --git a/src/main/java/cokr/xit/fims/cvlc/service/CrdnCvlcptService.java b/src/main/java/cokr/xit/fims/cvlc/service/CrdnCvlcptService.java index e29e54ce..041e640f 100644 --- a/src/main/java/cokr/xit/fims/cvlc/service/CrdnCvlcptService.java +++ b/src/main/java/cokr/xit/fims/cvlc/service/CrdnCvlcptService.java @@ -44,11 +44,11 @@ public interface CrdnCvlcptService { */ Map makeFileFromHwpFormat(CrdnQuery query); - /** 단속민원 부과요청 수용 정보를 변경한다. - * @param crdnCvlcpt 단속민원정보, crdn 단속정보, newFileInfoList 업로드 파일 목록 + /** 단속민원 부과요청에 대한 수용 처리구분을 변경한다. + * @param nonQueryRequest 처리 요청, crdnCvlcpt 단속민원정보, crdn 단속정보, newFileInfoList 업로드 파일 목록 * @return 저장여부 */ - boolean updateCvlcptPrcs(Map nonQueryRequest, CrdnCvlcpt crdnCvlcpt, Crdn crdn, List newFileInfoList); + boolean updateCvlcptPrcsSe(Map nonQueryRequest, CrdnCvlcpt crdnCvlcpt, Crdn crdn, List newFileInfoList); } diff --git a/src/main/java/cokr/xit/fims/cvlc/service/bean/CrdnCvlcptBean.java b/src/main/java/cokr/xit/fims/cvlc/service/bean/CrdnCvlcptBean.java index 7f65dbb9..16663226 100644 --- a/src/main/java/cokr/xit/fims/cvlc/service/bean/CrdnCvlcptBean.java +++ b/src/main/java/cokr/xit/fims/cvlc/service/bean/CrdnCvlcptBean.java @@ -30,6 +30,13 @@ public class CrdnCvlcptBean extends AbstractComponent { @Resource(name = "crdn05Mapper") private Crdn05Mapper crdn05Mapper; + /**민원 정보를 삭제한다. + * @param crdnIDs 단속아이디 목록 + * @return 저장 여부 + *
    • 저장됐으면 true
    • + *
    • 그렇지 않으면 false
    • + *
    + */ public boolean remove(String... crdnIDs) { if (isEmpty(crdnIDs)) return false; @@ -41,6 +48,10 @@ public class CrdnCvlcptBean extends AbstractComponent { return crdn05Mapper.removeCrdn(paramMap) == 1 ? true : false; } + /**민원 원본 정보를 조회한다. + * @param query 조회 요청 + * @return 민원 원본 정보 + */ public DataObject getCivilComplaintOriginalInfo(CrdnQuery query) { if(ifEmpty(query.getViewType(), () -> "").equals("hwp")) { return crdnCvlcptMapper.selectCivilComplaintOriginalInfoHwp(query); @@ -48,10 +59,24 @@ public class CrdnCvlcptBean extends AbstractComponent { return crdnCvlcptMapper.selectCivilComplaintOriginalInfo(query); } - public boolean updateCvlcptPrcs(CrdnCvlcpt cvlcpt) { - return crdnCvlcptMapper.updateCvlcptPrcs(cvlcpt) == 1 ? true : false; + /**민원 처리 정보를 수정한다. + * @param crdnCvlcpt 민원 정보 + * @return 저장 여부 + *
    • 저장됐으면 true
    • + *
    • 그렇지 않으면 false
    • + *
    + */ + public boolean updateCvlcptPrcsSe(CrdnCvlcpt cvlcpt) { + return crdnCvlcptMapper.updateCvlcptPrcsSe(cvlcpt) == 1 ? true : false; } + /**단속 대장 정보를 수정한다. + * @param nonQueryRequest 수정 요청, crdn 단속 대장 + * @return 저장 여부 + *
    • 저장됐으면 true
    • + *
    • 그렇지 않으면 false
    • + *
    + */ public boolean updateCrdn(Map nonQueryRequest, Crdn crdn) { DataObject params = new DataObject(); params.set("currentUser", currentUser()); @@ -62,4 +87,26 @@ public class CrdnCvlcptBean extends AbstractComponent { return crdnCvlcptMapper.updateCrdn(params) == 1 ? true : false; } + /**단속 대장 정보를 조회한다. + * @param crdnId 단속 아이디 + * @return 단속 정보 + */ + public DataObject getCrdnInfo(String crdnId) { + return crdnCvlcptMapper.getCrdnInfo(crdnId); + } + + /**답변 내용을 초기화한다. + * @param cvlcptLinkId 민원 연계 아이디 + * @return 저장 여부 + *
    • 저장됐으면 true
    • + *
    • 그렇지 않으면 false
    • + *
    + */ + public boolean initCvlcptPrcsRsltCn(String cvlcptLinkId) { + CrdnCvlcpt crdnCvlcpt = new CrdnCvlcpt(); + crdnCvlcpt.setCvlcptLinkId(cvlcptLinkId); + + return crdnCvlcptMapper.initCvlcptPrcsRsltCn(crdnCvlcpt) == 1 ? true : false; + } + } diff --git a/src/main/java/cokr/xit/fims/cvlc/service/bean/CrdnCvlcptServiceBean.java b/src/main/java/cokr/xit/fims/cvlc/service/bean/CrdnCvlcptServiceBean.java index 32cb36ee..709f99a9 100644 --- a/src/main/java/cokr/xit/fims/cvlc/service/bean/CrdnCvlcptServiceBean.java +++ b/src/main/java/cokr/xit/fims/cvlc/service/bean/CrdnCvlcptServiceBean.java @@ -2,6 +2,8 @@ package cokr.xit.fims.cvlc.service.bean; import java.io.File; import java.text.SimpleDateFormat; +import java.time.LocalDate; +import java.time.format.DateTimeFormatter; import java.util.ArrayList; import java.util.Date; import java.util.List; @@ -27,7 +29,10 @@ import cokr.xit.fims.crdn.dao.Crdn06Mapper; import cokr.xit.fims.cvlc.CrdnCvlcpt; import cokr.xit.fims.cvlc.dao.CrdnCvlcptMapper; import cokr.xit.fims.cvlc.service.CrdnCvlcptService; +import cokr.xit.fims.excl.Excl01; +import cokr.xit.fims.excl.service.bean.Excl01Bean; import cokr.xit.fims.sprt.Sprt; +import cokr.xit.foundation.UserInfo; import cokr.xit.foundation.component.AbstractServiceBean; import cokr.xit.foundation.data.DataObject; import kr.dogfoot.hwplib.object.HWPFile; @@ -44,6 +49,9 @@ public class CrdnCvlcptServiceBean extends AbstractServiceBean implements CrdnCv @Resource(name="crdnCvlcptBean") protected CrdnCvlcptBean crdnCvlcptBean; + @Resource(name="excl01Bean") + private Excl01Bean excl01Bean; + @Resource(name = "crdnCvlcptMapper") private CrdnCvlcptMapper crdnCvlcptMapper; @@ -237,46 +245,110 @@ public class CrdnCvlcptServiceBean extends AbstractServiceBean implements CrdnCv } @Override - public boolean updateCvlcptPrcs(Map nonQueryRequest, CrdnCvlcpt crdnCvlcpt, Crdn crdn, List newFileInfoList) { + public boolean updateCvlcptPrcsSe(Map nonQueryRequest, CrdnCvlcpt crdnCvlcpt, Crdn crdn, List newFileInfoList) { boolean saved = false; - int fileInsertEffected = 0; - int fileDeleteEffected = 0; + DataObject crdnInfo = crdnCvlcptBean.getCrdnInfo(crdn.getCrdnId()); - if(newFileInfoList != null && !newFileInfoList.isEmpty()) { - fileInsertEffected = fileBean.create(newFileInfoList); - } + crdnCvlcpt.setCvlcptLinkId(crdnInfo.string("CVLCPT_LINK_ID")); - if((String[])nonQueryRequest.get("deleteFileKeyList") != null) { - fileDeleteEffected = fileBean.remove((String[])nonQueryRequest.get("deleteFileKeyList")); - } + String acceptType = (String)nonQueryRequest.get("acceptType"); - int changeFileCnt = (fileInsertEffected - fileDeleteEffected); + if (crdnInfo.string("CRDN_REG_SE_CD").equals("02")) { - crdnCvlcpt.setCvlcptLinkId(crdn.getLinkId()); + if(acceptType.equals("someAccept") || acceptType.equals("nonAccept")) { //일부수용,불수용 - String acceptType = (String)nonQueryRequest.get("acceptType"); + // 단속민원(TB_CRDN_CVLCPT) 대장 + Excl01 updtCrdnCvlcpt = new Excl01(); + boolean retSuccess = false; + String newCvlcptPrcsCd = ""; + String newCvlcptTrsmCd = ""; + + updtCrdnCvlcpt.setCvlcptLinkId(crdnInfo.string("CVLCPT_LINK_ID")); // 민원 연계 ID + + // 답변내용 초기화 + retSuccess = crdnCvlcptBean.initCvlcptPrcsRsltCn(crdnCvlcpt.getCvlcptLinkId()); + if (!retSuccess) { + // 예외를 발생시켜서 오류메세지를 보내고 DB Rollback + throw new RuntimeException("부과제외 등록 중 단속민원 대장의 민원처리결과내용 초기화에 실패하였습니다."); + } + + // 답변완료 후 서손처리에 대해서는 답변 상태를 업데이트 하지 않는다 + // 전송대상, 전송 미대상 자료에 대해서 업데이트한다. + if (crdnInfo.string("CVLCPT_TRSM_CD").equals("01") + || crdnInfo.string("CVLCPT_TRSM_CD").equals("02") + || crdnInfo.string("CVLCPT_TRSM_CD").equals("03")) { + // 민원 답변 문구(TB_CVLCPT_ANS_WORDS) 대장 조회 + DataObject infoCvlcptAnsWords = excl01Bean.selectCvlcptAnsWordsInfo(crdn.getLevyExclRsnCd()); + + // 비부과(서손)사유가 민원 답변대상인가? 민원 답변 문구(TB_CVLCPT_ANS_WORDS) 대장에 답변 사유 코드가 존재한다면.. + if (!infoCvlcptAnsWords.string("ANS_WORDS_ID").equals("")) { + newCvlcptPrcsCd = "04"; // 민원 처리 코드 - 불수용(과태료 부과제외) + newCvlcptTrsmCd = "01"; // 민원 전송 코드 - 전송 대상 + } else { + newCvlcptPrcsCd = "07"; // 민원 처리 코드 - 비부과(서손)사유가 답변 미대상 + newCvlcptTrsmCd = "03"; // 민원 전송 코드 - 비부과(서손)사유가 전송 미대상 + } + + // 현재 날짜 구하기 + LocalDate now = LocalDate.now(); + // 포맷 정의 + DateTimeFormatter formatter = DateTimeFormatter.ofPattern("yyyyMMddHHmmss"); // yyyy년 MM월 dd일 HH시 mm분 ss초 + // 포맷 적용 + String formatedNow = now.format(formatter); + + // 단속민원(TB_CRDN_CVLCPT) 대장을 수정 한다. + updtCrdnCvlcpt.setCvlcptPrcsCd(newCvlcptPrcsCd); // 민원 처리 코드 + updtCrdnCvlcpt.setCvlcptPrcsSumry(infoCvlcptAnsWords.string("PRCS_SUMRY")); // 민원 처리 요약 + updtCrdnCvlcpt.setCvlcptPrcsRsltCn(infoCvlcptAnsWords.string("PRCS_RSLT_CN")); // 민원 처리 결과 내용 + updtCrdnCvlcpt.setCvlcptPrcsCmptnDt(formatedNow); // 민원 처리 완료 일시 + updtCrdnCvlcpt.setCvlcptPrcsPic(UserInfo.current().getId()); // 민원 처리 담당자 + updtCrdnCvlcpt.setCvlcptTrsmCd(newCvlcptTrsmCd); // 민원 전송 코드 + + // 단속민원 민원처리코드 수정 + retSuccess = excl01Bean.updateCrdnCvlcpt(updtCrdnCvlcpt); + if (!retSuccess) { + // 예외를 발생시켜서 오류메세지를 보내고 DB Rollback + throw new RuntimeException("부과제외 등록 중 단속민원답변 수정에 실패하였습니다."); + } + } - if(acceptType.equals("someAccept") || acceptType.equals("nonAccept")) { - ///call 부과제외 + + } else { //수용일 때 + + //TODO : 전송코드,처리코드 결정 + crdnCvlcpt.setCvlcptPrcsCd(""); + crdnCvlcpt.setCvlcptTrsmCd("02"); + + //TODO : 전송문구 조회 + crdnCvlcpt.setCvlcptPrcsSumry("요약요약요약"); + crdnCvlcpt.setCvlcptPrcsRsltCn("결과결과결과"); + + + //민원정보변경 + saved = crdnCvlcptBean.updateCvlcptPrcsSe(crdnCvlcpt); + + } } - //TODO : 전송코드,처리코드 결정 - crdnCvlcpt.setCvlcptPrcsCd(""); - crdnCvlcpt.setCvlcptTrsmCd("02"); - //TODO : 전송문구 조회 - crdnCvlcpt.setCvlcptPrcsSumry("요약요약요약"); - crdnCvlcpt.setCvlcptPrcsRsltCn("결과결과결과"); + int fileInsertEffected = 0; + int fileDeleteEffected = 0; - //민원정보변경 - saved = crdnCvlcptBean.updateCvlcptPrcs(crdnCvlcpt); + if(newFileInfoList != null && !newFileInfoList.isEmpty()) { + fileInsertEffected = fileBean.create(newFileInfoList); + } + if((String[])nonQueryRequest.get("deleteFileKeyList") != null) { + fileDeleteEffected = fileBean.remove((String[])nonQueryRequest.get("deleteFileKeyList")); + } - nonQueryRequest.put("changeFileCnt", changeFileCnt); + int changeFileCnt = (fileInsertEffected - fileDeleteEffected); //단속정보변경 + nonQueryRequest.put("changeFileCnt", changeFileCnt); saved = crdnCvlcptBean.updateCrdn(nonQueryRequest, crdn); + return saved; } diff --git a/src/main/java/cokr/xit/fims/cvlc/web/Cvlc01Controller.java b/src/main/java/cokr/xit/fims/cvlc/web/Cvlc01Controller.java index da1cafd8..df412f1d 100644 --- a/src/main/java/cokr/xit/fims/cvlc/web/Cvlc01Controller.java +++ b/src/main/java/cokr/xit/fims/cvlc/web/Cvlc01Controller.java @@ -231,7 +231,7 @@ public class Cvlc01Controller extends ApplicationController { .addObject("saved", saved); } - /**지정한 민원자료를 수정한다. + /**지정한 민원 초기자료를 수정한다. * @param crdnId 단속대장 아이디 * @return jsonView *
     {
    @@ -240,7 +240,7 @@ public class Cvlc01Controller extends ApplicationController {
     	 * }
    */ @RequestMapping(name="민원 정보 수정", value="/020/save.do") - public ModelAndView saveCivilComplaintProcess(HttpServletRequest hReq, CrdnCvlcpt crdnCvlcpt, Crdn crdn, MultipartFile[] newFileList, MultipartFile[] modifyFileList) { + public ModelAndView saveCivilComplaintProcessSe(HttpServletRequest hReq, CrdnCvlcpt crdnCvlcpt, Crdn crdn, MultipartFile[] newFileList, MultipartFile[] modifyFileList) { boolean saved = false; @@ -276,7 +276,7 @@ public class Cvlc01Controller extends ApplicationController { String acceptType = hReq.getParameter("acceptType"); nonQueryRequest.put("acceptType", acceptType); - saved = crdnCvlcptService.updateCvlcptPrcs(nonQueryRequest, crdnCvlcpt, crdn, newFileInfoList); + saved = crdnCvlcptService.updateCvlcptPrcsSe(nonQueryRequest, crdnCvlcpt, crdn, newFileInfoList); return new ModelAndView("jsonView") diff --git a/src/main/resources/sql/mapper/fims/cvlc/crdnCvlcpt-mapper.xml b/src/main/resources/sql/mapper/fims/cvlc/crdnCvlcpt-mapper.xml index 976c1437..407c01b9 100644 --- a/src/main/resources/sql/mapper/fims/cvlc/crdnCvlcpt-mapper.xml +++ b/src/main/resources/sql/mapper/fims/cvlc/crdnCvlcpt-mapper.xml @@ -369,8 +369,8 @@ SELECT C.CRDN_ID AND C.CRDN_ID = #{crdnId} - - /* 단속민원 처리 수정(crdnCvlcptMapper.updateCvlcptPrcs) */ + + /* 단속민원 처리 구분 수정(crdnCvlcptMapper.updateCvlcptPrcsSe) */ UPDATE TB_CRDN_CVLCPT SET CVLCPT_PRCS_CMPTN_DT = , CVLCPT_PRCS_CD = #{cvlcptPrcsCd} /* 민원처리코드 */ @@ -413,4 +413,29 @@ SELECT C.CRDN_ID WHERE CRDN_ID = #{crdn.crdnId} /* 단속 ID */ + + + +/* 단속민원 대장 민원처리결과내용 초기화(crdnCvlcptMapper.initCvlcptPrcsRsltCn) */ + UPDATE TB_CRDN_CVLCPT + SET CVLCPT_PRCS_SUMRY = NULL /* 민원 처리 요약 */ + , CVLCPT_PRCS_RSLT_CN = NULL /* 민원 처리 결과 내용 */ + , MDFCN_DT = #{lastModified} /* 수정 일시 */ + , MDFR = #{modifiedBy} /* 수정자 */ + WHERE CVLCPT_LINK_ID = #{cvlcptLinkId} /* 민원 연계 ID */ + AND DEL_YN = 'N' + + \ No newline at end of file