고지서 발송등록 쿼리 수정

main
김의진 2 months ago
parent 5d88969f3c
commit 70d2aaf43d

@ -198,6 +198,9 @@ public class Levy extends AbstractEntity {
private String delRsn;
/** 단속 Ids */
private String[] crdnIds;
/** 단속 테이블 과태료대장키 */
private String nxrpAcbKey;
/**( - - ) .
* @return

@ -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 extends LevyQuery> T setSchFrstDudtYmdFrom(String schFrstDudtYmdFrom) {
this.schFrstDudtYmdFrom = schFrstDudtYmdFrom;
return self();
}
public String getSchFrstDudtYmdTo() {
return ifEmpty(schFrstDudtYmdTo, () -> null);
}
public <T extends LevyQuery> T setSchFrstDudtYmdTo(String schFrstDudtYmdTo) {
this.schFrstDudtYmdTo = schFrstDudtYmdTo;
return self();
}
public String getSchCrdnYmdFrom() {
return ifEmpty(schCrdnYmdFrom, () -> null);

@ -174,5 +174,11 @@ public interface LevyMapper extends AbstractMapper {
* @return
*/
DataObject selectLevyAmt(LevyQuery req);
/** .<br />
* @param req
* @return
*/
List<Levy> selectLevyForGoji(LevyQuery req);
}

@ -58,5 +58,7 @@ public interface LevyService {
String createRdctLevy(Levy levy);
String createRdctLevyList(LevyQuery req);
List<Levy> getLevyForGoji(LevyQuery req);
}

@ -282,4 +282,19 @@ public class LevyBean extends AbstractBean {
return "[S] 작업이 정상 처리 되었습니다.";
}
/** .
* @param req
* @return
*/
public List<Levy> 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);
}
}

@ -63,5 +63,10 @@ public class LevyServiceBean extends AbstractServiceBean implements LevyService
public String createRdctLevyList(LevyQuery req) {
return levyBean.createRdctLevyList(req);
}
@Override
public List<Levy> getLevyForGoji(LevyQuery req) {
return levyBean.getLevyForGoji(req);
}
}

@ -280,6 +280,15 @@ public class SnisBean extends ScheduledBean {
update(notices);
return notices;
}
public List<Ye22NoticeInfoDTO> lookupPreNotices(String buAk) {
Ye22InputDTO input = new Ye22InputDTO();
input.setBuAk(buAk);
input.setSystemGubun(FimsConf.get().getSystemGubun());
List<Ye22NoticeInfoDTO> notices = sntrisBean.getPreNoticeList(input);
update(notices);
return notices;
}
private void update(Ye22NoticeInfoDTO notice, Levy levy) {
if (notice == null || levy == null) return;

@ -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 extends SndbQuery> T setSchLevyYmdFrom(String schLevyYmdFrom) {
this.schLevyYmdFrom = schLevyYmdFrom;
return self();
}
public String getSchLevyYmdTo() {
return ifEmpty(schLevyYmdTo, () -> null);
}
public <T extends SndbQuery> 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 extends SndbQuery> T setSchFrstDudtYmdFrom(String schFrstDudtYmdFrom) {
this.schFrstDudtYmdFrom = schFrstDudtYmdFrom;
return self();
}
public String getSchFrstDudtYmdTo() {
return ifEmpty(schFrstDudtYmdTo, () -> null);
}
public <T extends SndbQuery> T setSchFrstDudtYmdTo(String schFrstDudtYmdTo) {
this.schFrstDudtYmdTo = schFrstDudtYmdTo;
return self();
}
public String getSchFyr() {
return ifEmpty(schFyr, () -> null);

@ -59,7 +59,9 @@ public interface SndngDtlService {
* @return
*/
String updatePreNotice(SndngDtl sndngDtl);
String updatePreNotice(String buAk);
void updatePreNotices();
/** .

@ -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() {

@ -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;
/**
*
* <p> :
@ -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<Levy> 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<SndngDtl> 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 = "";

@ -105,6 +105,7 @@
<result property="removedAt" column="DEL_DT" /> <!-- 삭제 일시 -->
<result property="removedBy" column="DLTR" /> <!-- 삭제자 -->
<result property="delRsn" column="DEL_RSN" /> <!-- 삭제 사유 -->
<result property="nxrpAcbKey" column="NXRP_ACB_KEY" /> <!-- 단속 테이블 과태료 대장키 -->
</resultMap>
<sql id="selectTrgtList">
@ -1133,5 +1134,19 @@
WHERE C.CRDN_ID = #{crdnId} <!-- 단속 ID -->
AND C.DEL_YN = 'N' <!-- 삭제 여부 -->
</select>
<select id="selectLevyForGoji" parameterType="map" resultMap="levyRow">/* 고지 대상 가져오기(levyMapper.selectLevyForGoji) */
SELECT C.NXRP_ACB_KEY,
L.LAST_AMT
FROM TB_LEVY L
INNER JOIN TB_CRDN C ON L.CRDN_ID = C.CRDN_ID
WHERE L.DEL_YN = 'N'
AND L.FYR = #{schFyr}
AND L.LEVY_YMD BETWEEN #{schLevyYmdFrom} AND #{schLevyYmdTo}
AND L.FRST_DUDT_YMD BETWEEN #{schFrstDudtYmdFrom} AND #{schFrstDudtYmdTo}
AND C.CRDN_STTS_CD &lt; '70'
AND C.NXRP_CRDN_LINK_YN = 'Y'
AND C.NXRP_ACB_KEY IS NOT null
</select>
</mapper>

@ -654,7 +654,7 @@
, P.RTPYR_NM <!-- 납부자 명 -->
, P.RTPYR_BRDT <!-- 납부자 생년월일 -->
, PA.ADDR_SN <!-- 주소 일련번호 -->
, PA.ZIP <!-- 우편번호 -->
, PA.ZIP <!-- 우편번호 -->
, PA.ADDR <!-- 주소 -->
, PA.DTL_ADDR <!-- 상세 주소 -->
</sql>
@ -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)
<where>
<if test="levyIds != null">
AND L.LEVY_ID IN ( <!-- 부과 Ids -->
AND L.LEVY_ID IN ( <!-- 부과 Ids -->
<foreach collection="levyIds" item="levyId" separator=","> #{levyId} </foreach>
)
)
</if>
<if test="levyId != null">
AND L.LEVY_ID = #{levyId} <!-- 부과 ID -->
AND L.LEVY_ID = #{levyId} <!-- 부과 ID -->
</if>
<if test="crdnIds != null">
AND C.CRDN_ID IN ( <!-- 단속 Ids -->
AND C.CRDN_ID IN ( <!-- 단속 Ids -->
<foreach collection="crdnIds" item="crdnId" separator=","> #{crdnId} </foreach>
)
)
</if>
<if test="crdnId != null">
AND C.CRDN_ID = #{crdnId} <!-- 단속 ID -->
AND C.CRDN_ID = #{crdnId} <!-- 단속 ID -->
</if>
<if test="schVltnCd != null">
AND V.VLTN_CD = #{schVltnCd} <!-- 위반 코드 -->
AND V.VLTN_CD = #{schVltnCd} <!-- 위반 코드 -->
</if>
<if test="schLevyYmd != null">
AND L.LEVY_YMD = #{schLevyYmd} <!-- 부과 일자 -->
AND L.LEVY_YMD = #{schLevyYmd} <!-- 부과 일자 -->
</if>
<if test="schFrstDudtYmd != null">
AND L.FRST_DUDT_YMD = #{schFrstDudtYmd} <!-- 최초 납기 일자 -->
AND L.FRST_DUDT_YMD = #{schFrstDudtYmd} <!-- 최초 납기 일자 -->
</if>
<if test="schFyr != null">
AND L.FYR = #{schFyr} <!-- 회계연도 -->
AND L.FYR = #{schFyr} <!-- 회계연도 -->
</if>
<if test="schLevyNoFrom != null">
AND L.LEVY_NO <![CDATA[>=]]> #{schLevyNoFrom} <!-- 부과 번호 시작 -->
AND L.LEVY_NO <![CDATA[>=]]> #{schLevyNoFrom} <!-- 부과 번호 시작 -->
</if>
<if test="schLevyNoTo != null">
AND L.LEVY_NO <![CDATA[<=]]> #{schLevyNoTo} <!-- 부과 번호종료 -->
</if>
<if test="sggCd != null">
AND L.SGG_CD = #{sggCd} <!-- 시군구 코드 -->
</if>
<if test="taskSeCd != null">
AND L.TASK_SE_CD = #{taskSeCd} <!-- 업무 구분 코드 -->
</if>
AND L.DEL_YN = 'N' <!-- 삭제 여부 -->
AND C.DEL_YN = 'N' <!-- 삭제 여부 -->
AND L.LEVY_NO <![CDATA[<=]]> #{schLevyNoTo} <!-- 부과 번호종료 -->
</if>
<if test="sggCd != null">
AND L.SGG_CD = #{sggCd} <!-- 시군구 코드 -->
</if>
<if test="taskSeCd != null">
AND L.TASK_SE_CD = #{taskSeCd} <!-- 업무 구분 코드 -->
</if>
<if test="schLevyYmdFrom != null and schLevyYmdTo != null">
AND L.LEVY_YMD BETWEEN #{schLevyYmdFrom} AND #{schLevyYmdTo}
</if>
<if test="schFrstDudtYmdFrom != null and schFrstDudtYmdTo != null">
AND L.FRST_DUDT_YMD BETWEEN #{schFrstDudtYmdFrom} AND #{schFrstDudtYmdTo}
</if>
AND L.DEL_YN = 'N' <!-- 삭제 여부 -->
AND C.DEL_YN = 'N' <!-- 삭제 여부 -->
</where>
</sql>
@ -732,6 +738,9 @@
, C.CRDN_ID <!-- 단속 ID -->
, SUM(L.LAST_AMT) OVER() AS GRAMT <!-- 총금액 -->
<include refid="fromNhtTrgt" />
AND C.CRDN_STTS_CD &lt; '70'
AND C.NXRP_CRDN_LINK_YN = 'Y'
AND C.NXRP_ACB_KEY IS NOT null
<include refid="utility.orderBy" />
</select>

@ -108,8 +108,10 @@ SELECT *
<where>
<if test='sndngDtlIds != null'>AND SNDNG_DTL_ID IN (<foreach collection="sndngDtlIds" item="sndngDtlId" separator=",">#{sndngDtlId}</foreach>)</if>
<if test='crdnIds != null'>AND CRDN_ID IN (<foreach collection="crdnIds" item="crdnId" separator=",">#{crdnId}</foreach>)</if>
<if test='schLevyYmd != null'>AND LEVY_YMD = #{schLevyYmd}</if>
<if test='schLevyYmd != null'> AND LEVY_YMD = #{schLevyYmd}</if>
<if test='schLevyYmdFrom != null and schLevyYmdTo != null'> AND LEVY_YMD BETWEEN #{schLevyYmdFrom} AND #{schLevyYmdTo}</if>
<if test='schFrstDudtYmd != null'> AND DUDT_YMD = #{schFrstDudtYmd}</if>
<if test='schFrstDudtYmdFrom != null and schFrstDudtYmdTo != null'>AND DUDT_YMD BETWEEN #{schFrstDudtYmdFrom} AND #{schFrstDudtYmdTo}</if>
<if test='schFyr != null'> AND FYR = #{schFyr}</if>
<if test="sndngDtlSttsCds != null"> AND SNDNG_DTL_STTS_CD IN (<foreach collection="sndngDtlSttsCds" item="sttsCd" separator=",">#{sttsCd}</foreach>)</if>
AND DEL_YN = 'N'

Loading…
Cancel
Save