diff --git a/src/main/java/cokr/xit/fims/levy/Levy.java b/src/main/java/cokr/xit/fims/levy/Levy.java index fec26099..b2f7f34a 100644 --- a/src/main/java/cokr/xit/fims/levy/Levy.java +++ b/src/main/java/cokr/xit/fims/levy/Levy.java @@ -198,6 +198,9 @@ public class Levy extends AbstractEntity { private String delRsn; /** 단속 Ids */ private String[] crdnIds; + + /** 단속 테이블 과태료대장키 */ + private String nxrpAcbKey; /**최종본세(부과본세 - 수납본세 - 감액본세)를 반환한다. * @return 최종본세 diff --git a/src/main/java/cokr/xit/fims/levy/LevyQuery.java b/src/main/java/cokr/xit/fims/levy/LevyQuery.java index 60372940..f4ec6912 100644 --- a/src/main/java/cokr/xit/fims/levy/LevyQuery.java +++ b/src/main/java/cokr/xit/fims/levy/LevyQuery.java @@ -33,6 +33,8 @@ public class LevyQuery extends CmmnQuery { private String schRdctSeCd; // 감경 구분 코드 private String schLevyYmdFrom; // 부과 일자 시작 private String schLevyYmdTo; // 부과 일자 종료 + private String schFrstDudtYmdFrom; // 최초납기일자 시작 + private String schFrstDudtYmdTo; // 최초납기일자 종료 private String schRdctYmdFrom; // 감경 일자 시작 private String schRdctYmdTo; // 감경 일자 종료 private String schRdctRsnCd; // 감경 사유 코드 @@ -216,6 +218,25 @@ public class LevyQuery extends CmmnQuery { this.schLevyYmdTo = schLevyYmdTo; return self(); } + + public String getSchFrstDudtYmdFrom() { + return ifEmpty(schFrstDudtYmdFrom, () -> null); + } + + public T setSchFrstDudtYmdFrom(String schFrstDudtYmdFrom) { + this.schFrstDudtYmdFrom = schFrstDudtYmdFrom; + return self(); + } + + public String getSchFrstDudtYmdTo() { + return ifEmpty(schFrstDudtYmdTo, () -> null); + } + + public T setSchFrstDudtYmdTo(String schFrstDudtYmdTo) { + this.schFrstDudtYmdTo = schFrstDudtYmdTo; + return self(); + } + public String getSchCrdnYmdFrom() { return ifEmpty(schCrdnYmdFrom, () -> null); diff --git a/src/main/java/cokr/xit/fims/levy/dao/LevyMapper.java b/src/main/java/cokr/xit/fims/levy/dao/LevyMapper.java index 0c531875..167dda5f 100644 --- a/src/main/java/cokr/xit/fims/levy/dao/LevyMapper.java +++ b/src/main/java/cokr/xit/fims/levy/dao/LevyMapper.java @@ -174,5 +174,11 @@ public interface LevyMapper extends AbstractMapper { * @return 부과 대장 객체 목록 */ DataObject selectLevyAmt(LevyQuery req); + + /**지정한 조건에 따라 고지 대상 목록을 조회하여 반환한다.
+ * @param req 부과 대장 조회 조건 + * @return 고지 대상 목록 + */ + List selectLevyForGoji(LevyQuery req); } diff --git a/src/main/java/cokr/xit/fims/levy/service/LevyService.java b/src/main/java/cokr/xit/fims/levy/service/LevyService.java index 8fc8e41e..37384d8b 100644 --- a/src/main/java/cokr/xit/fims/levy/service/LevyService.java +++ b/src/main/java/cokr/xit/fims/levy/service/LevyService.java @@ -58,5 +58,7 @@ public interface LevyService { String createRdctLevy(Levy levy); String createRdctLevyList(LevyQuery req); + + List getLevyForGoji(LevyQuery req); } diff --git a/src/main/java/cokr/xit/fims/levy/service/bean/LevyBean.java b/src/main/java/cokr/xit/fims/levy/service/bean/LevyBean.java index 192f6f10..4ca1af51 100644 --- a/src/main/java/cokr/xit/fims/levy/service/bean/LevyBean.java +++ b/src/main/java/cokr/xit/fims/levy/service/bean/LevyBean.java @@ -282,4 +282,19 @@ public class LevyBean extends AbstractBean { return "[S] 작업이 정상 처리 되었습니다."; } + + /**지정한 조건에 따라 고지 대상 목록을 조회하여 반환한다. + * @param req 고지 대상 조회 조건 + * @return 고지 대상 목록 + */ + public List getLevyForGoji(LevyQuery req) { + // 삭제 여부 확인 + if (isEmpty(req.getDelYn())) + req.setDelYn("N"); + // 정렬 확인 + if (isEmpty(req.getOrderBy())) + req.setOrderBy(isEmpty(req.getBy()) ? "REG_DT" : CmmnUtil.convertCamelCaseToSnakeCase(req.getBy())); + + return levyMapper.selectLevyForGoji(req); + } } \ No newline at end of file diff --git a/src/main/java/cokr/xit/fims/levy/service/bean/LevyServiceBean.java b/src/main/java/cokr/xit/fims/levy/service/bean/LevyServiceBean.java index bc05d27c..600c7cb6 100644 --- a/src/main/java/cokr/xit/fims/levy/service/bean/LevyServiceBean.java +++ b/src/main/java/cokr/xit/fims/levy/service/bean/LevyServiceBean.java @@ -63,5 +63,10 @@ public class LevyServiceBean extends AbstractServiceBean implements LevyService public String createRdctLevyList(LevyQuery req) { return levyBean.createRdctLevyList(req); } + + @Override + public List getLevyForGoji(LevyQuery req) { + return levyBean.getLevyForGoji(req); + } } diff --git a/src/main/java/cokr/xit/fims/nxrp/service/bean/SnisBean.java b/src/main/java/cokr/xit/fims/nxrp/service/bean/SnisBean.java index 13629941..02329249 100644 --- a/src/main/java/cokr/xit/fims/nxrp/service/bean/SnisBean.java +++ b/src/main/java/cokr/xit/fims/nxrp/service/bean/SnisBean.java @@ -280,6 +280,15 @@ public class SnisBean extends ScheduledBean { update(notices); return notices; } + + public List lookupPreNotices(String buAk) { + Ye22InputDTO input = new Ye22InputDTO(); + input.setBuAk(buAk); + input.setSystemGubun(FimsConf.get().getSystemGubun()); + List notices = sntrisBean.getPreNoticeList(input); + update(notices); + return notices; + } private void update(Ye22NoticeInfoDTO notice, Levy levy) { if (notice == null || levy == null) return; diff --git a/src/main/java/cokr/xit/fims/sndb/SndbQuery.java b/src/main/java/cokr/xit/fims/sndb/SndbQuery.java index 9d23d0aa..c4270518 100644 --- a/src/main/java/cokr/xit/fims/sndb/SndbQuery.java +++ b/src/main/java/cokr/xit/fims/sndb/SndbQuery.java @@ -57,6 +57,10 @@ public class SndbQuery extends CmmnQuery { private String schFyr; // 회계연도 private String schLevyNoFrom; // 부과번호 시작 private String schLevyNoTo; // 부과번호 종료 + private String schLevyYmdFrom; // 부과일자 시작 + private String schLevyYmdTo; // 부과일자 종료 + private String schFrstDudtYmdFrom; // 최초납기일자 시작 + private String schFrstDudtYmdTo; // 최초납기일자 종료 // 상세 검색 조건 @@ -396,6 +400,24 @@ public class SndbQuery extends CmmnQuery { this.schLevyYmd = schLevyYmd; return self(); } + + public String getSchLevyYmdFrom() { + return ifEmpty(schLevyYmdFrom, () -> null); + } + + public T setSchLevyYmdFrom(String schLevyYmdFrom) { + this.schLevyYmdFrom = schLevyYmdFrom; + return self(); + } + + public String getSchLevyYmdTo() { + return ifEmpty(schLevyYmdTo, () -> null); + } + + public T setSchLevyYmdTo(String schLevyYmdTo) { + this.schLevyYmdTo = schLevyYmdTo; + return self(); + } public String getSchFrstDudtYmd() { return ifEmpty(schFrstDudtYmd, () -> null); @@ -405,6 +427,24 @@ public class SndbQuery extends CmmnQuery { this.schFrstDudtYmd = schFrstDudtYmd; return self(); } + + public String getSchFrstDudtYmdFrom() { + return ifEmpty(schFrstDudtYmdFrom, () -> null); + } + + public T setSchFrstDudtYmdFrom(String schFrstDudtYmdFrom) { + this.schFrstDudtYmdFrom = schFrstDudtYmdFrom; + return self(); + } + + public String getSchFrstDudtYmdTo() { + return ifEmpty(schFrstDudtYmdTo, () -> null); + } + + public T setSchFrstDudtYmdTo(String schFrstDudtYmdTo) { + this.schFrstDudtYmdTo = schFrstDudtYmdTo; + return self(); + } public String getSchFyr() { return ifEmpty(schFyr, () -> null); diff --git a/src/main/java/cokr/xit/fims/sndb/service/SndngDtlService.java b/src/main/java/cokr/xit/fims/sndb/service/SndngDtlService.java index 55cb3d20..0f2edc4f 100644 --- a/src/main/java/cokr/xit/fims/sndb/service/SndngDtlService.java +++ b/src/main/java/cokr/xit/fims/sndb/service/SndngDtlService.java @@ -59,7 +59,9 @@ public interface SndngDtlService { * @return 저장 여부 */ String updatePreNotice(SndngDtl sndngDtl); - + + String updatePreNotice(String buAk); + void updatePreNotices(); /**지정한 조건에 따라 반송 목록을 조회하여 반환한다. diff --git a/src/main/java/cokr/xit/fims/sndb/service/bean/SndngDtlServiceBean.java b/src/main/java/cokr/xit/fims/sndb/service/bean/SndngDtlServiceBean.java index 578ddfae..9a05298e 100644 --- a/src/main/java/cokr/xit/fims/sndb/service/bean/SndngDtlServiceBean.java +++ b/src/main/java/cokr/xit/fims/sndb/service/bean/SndngDtlServiceBean.java @@ -81,6 +81,12 @@ public class SndngDtlServiceBean extends ScheduledServiceBean implements SndngDt snisBean.lookupPreNotices(sndngDtl); return "[S] 저장됐습니다."; } + + @Override + public String updatePreNotice(String buAk) { + snisBean.lookupPreNotices(buAk); + return "[S] 저장됐습니다."; + } @Override public void updatePreNotices() { diff --git a/src/main/java/cokr/xit/fims/sndb/web/Sndb01Controller.java b/src/main/java/cokr/xit/fims/sndb/web/Sndb01Controller.java index 5e1d8818..dcdf0084 100644 --- a/src/main/java/cokr/xit/fims/sndb/web/Sndb01Controller.java +++ b/src/main/java/cokr/xit/fims/sndb/web/Sndb01Controller.java @@ -57,6 +57,11 @@ import cokr.xit.foundation.UserInfo; import cokr.xit.foundation.data.DataObject; import cokr.xit.foundation.data.DataProc; +import cokr.xit.fims.levy.LevyQuery; +import cokr.xit.fims.levy.Levy; +import cokr.xit.fims.levy.service.LevyService; +import cokr.xit.fims.levy.service.bean.LevyBean; + /**발송대장 서비스의 웹 컨트롤러 * *

상세 설명: @@ -146,6 +151,9 @@ public class Sndb01Controller extends ApplicationController { /**업무 정보 서비스*/ @Resource(name="taskBean") private TaskBean taskBean; + /**부과 서비스*/ + @Resource(name="levyService") + private LevyService levyService; /**통합 조회 서비스*/ @Resource(name="integrationSearchService") private IntegrationSearchService integrationSearchService; @@ -2224,9 +2232,41 @@ public class Sndb01Controller extends ApplicationController { @RequestMapping(name="세외수입 체납상세 세목정보 조회", value=METHOD_URL.getNonTaxReceiptSpecialB01List) public ModelAndView getNonTaxReceiptSpecialB01List(SndbQuery req) { boolean saved = false; + + LevyQuery levyQuery = new LevyQuery().setSchLevyYmdFrom(req.getSchLevyYmdFrom()) + .setSchLevyYmdTo(req.getSchLevyYmdTo()) + .setSchFrstDudtYmdFrom(req.getSchFrstDudtYmdFrom()) + .setSchFrstDudtYmdTo(req.getSchFrstDudtYmdTo()) + .setSchFyr(req.getSchFyr()); + + List levys = levyService.getLevyForGoji(levyQuery); + + String rtnMsg = levys.isEmpty() ? "[F] 자료를 찾지못했습니다." : ""; + + for (Levy levy: levys) { + //sndngDtlService.updatePreNotice((String) levy.get("nxrpAcbKey")); + saved = rtnMsg.contains("[S]"); + } + + saved = true; + + ModelAndView mav = new ModelAndView("jsonView") + .addObject("saved", saved) + .addObject("rtnMsg", rtnMsg); + if (saved) { + levys = levyService.getLevyForGoji(levyQuery); + mav.addObject("tnocs", levys.size()) + .addObject("gramt", levys.stream().mapToInt(Levy::getLastAmt).sum()) + ; + } + + return mav; + + /* List sndngDtls = sndngDtlService.getSndngDetails(req.setSndngDtlSttsCds(List.of( - "04", "05", "06", "07", "08" + "01", "02", "03","04", "05", "06", "07" ))); + String rtnMsg = sndngDtls.isEmpty() ? "[F] 자료를 찾지못했습니다." : ""; boolean lntris = "lntris".equals(TaskProcessor.get().getNtrisInterface(req.getTaskSeCd())); @@ -2244,7 +2284,7 @@ public class Sndb01Controller extends ApplicationController { .addObject("gramt", sndngDtls.stream().mapToInt(SndngDtl::getLastAmt).sum()); } - return mav; + /* boolean saved = false; String rtnMsg = ""; diff --git a/src/main/resources/sql/mapper/fims/levy/levy-mapper.xml b/src/main/resources/sql/mapper/fims/levy/levy-mapper.xml index 5c85398c..b157b7ad 100644 --- a/src/main/resources/sql/mapper/fims/levy/levy-mapper.xml +++ b/src/main/resources/sql/mapper/fims/levy/levy-mapper.xml @@ -105,6 +105,7 @@ + @@ -1133,5 +1134,19 @@ WHERE C.CRDN_ID = #{crdnId} AND C.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 f65ebfa2..c88a46ef 100644 --- a/src/main/resources/sql/mapper/fims/sndb/sndng-mapper.xml +++ b/src/main/resources/sql/mapper/fims/sndb/sndng-mapper.xml @@ -654,7 +654,7 @@ , P.RTPYR_NM , P.RTPYR_BRDT , PA.ADDR_SN - , PA.ZIP + , PA.ZIP , PA.ADDR , PA.DTL_ADDR @@ -666,47 +666,53 @@ LEFT OUTER JOIN TB_PAYER_ADDR PA ON (C.RTPYR_ID = PA.RTPYR_ID AND C.ADDR_SN = PA.ADDR_SN) - AND L.LEVY_ID IN ( + AND L.LEVY_ID IN ( #{levyId} - ) + ) - AND L.LEVY_ID = #{levyId} + AND L.LEVY_ID = #{levyId} - AND C.CRDN_ID IN ( + AND C.CRDN_ID IN ( #{crdnId} - ) + ) - AND C.CRDN_ID = #{crdnId} + AND C.CRDN_ID = #{crdnId} - AND V.VLTN_CD = #{schVltnCd} + AND V.VLTN_CD = #{schVltnCd} - AND L.LEVY_YMD = #{schLevyYmd} + AND L.LEVY_YMD = #{schLevyYmd} - AND L.FRST_DUDT_YMD = #{schFrstDudtYmd} + AND L.FRST_DUDT_YMD = #{schFrstDudtYmd} - AND L.FYR = #{schFyr} + AND L.FYR = #{schFyr} - AND L.LEVY_NO =]]> #{schLevyNoFrom} + AND L.LEVY_NO =]]> #{schLevyNoFrom} - AND L.LEVY_NO #{schLevyNoTo} - - - AND L.SGG_CD = #{sggCd} - - - AND L.TASK_SE_CD = #{taskSeCd} - - AND L.DEL_YN = 'N' - AND C.DEL_YN = 'N' + AND L.LEVY_NO #{schLevyNoTo} + + + AND L.SGG_CD = #{sggCd} + + + AND L.TASK_SE_CD = #{taskSeCd} + + + AND L.LEVY_YMD BETWEEN #{schLevyYmdFrom} AND #{schLevyYmdTo} + + + AND L.FRST_DUDT_YMD BETWEEN #{schFrstDudtYmdFrom} AND #{schFrstDudtYmdTo} + + AND L.DEL_YN = 'N' + AND C.DEL_YN = 'N' @@ -732,6 +738,9 @@ , C.CRDN_ID , SUM(L.LAST_AMT) OVER() AS GRAMT + AND C.CRDN_STTS_CD < '70' + AND C.NXRP_CRDN_LINK_YN = 'Y' + AND C.NXRP_ACB_KEY IS NOT null diff --git a/src/main/resources/sql/mapper/fims/sndb/sndngDtl-mapper.xml b/src/main/resources/sql/mapper/fims/sndb/sndngDtl-mapper.xml index 6289ad0c..3ef5cc55 100644 --- a/src/main/resources/sql/mapper/fims/sndb/sndngDtl-mapper.xml +++ b/src/main/resources/sql/mapper/fims/sndb/sndngDtl-mapper.xml @@ -108,8 +108,10 @@ SELECT * AND SNDNG_DTL_ID IN (#{sndngDtlId}) AND CRDN_ID IN (#{crdnId}) -AND LEVY_YMD = #{schLevyYmd} + AND LEVY_YMD = #{schLevyYmd} + AND LEVY_YMD BETWEEN #{schLevyYmdFrom} AND #{schLevyYmdTo} AND DUDT_YMD = #{schFrstDudtYmd} +AND DUDT_YMD BETWEEN #{schFrstDudtYmdFrom} AND #{schFrstDudtYmdTo} AND FYR = #{schFyr} AND SNDNG_DTL_STTS_CD IN (#{sttsCd}) AND DEL_YN = 'N'