발송 수정.

main
jjh 12 months ago
parent 2cbd1c0908
commit d4f0b78ebc

@ -51,6 +51,18 @@ public interface LevyMapper extends AbstractMapper {
return !levys.isEmpty() ? levys.get(0) : null; return !levys.isEmpty() ? levys.get(0) : null;
} }
/** ID .
* @param crdnId ID
* @return
*/
DataObject selectCrdnInfo(String crdnId);
/** ID .
* @param crdnId ID
* @return
*/
String selectMaxLevyNo(LevyQuery req);
/** . /** .
* @param params * @param params
* <ul><li>"levy" - </li> * <ul><li>"levy" - </li>
@ -91,6 +103,19 @@ public interface LevyMapper extends AbstractMapper {
return levy != null && updateLevy(params().set("levy", levy)) == 1; return levy != null && updateLevy(params().set("levy", levy)) == 1;
} }
/** , , .
* @param levy
* @return
* <ul><li> true</li>
* <li> false</li>
* </ul>
*/
int updateRductLevyYmd(Map<String, Object> params);
default boolean updateRductLevyYmd(Levy levy) {
return levy != null && updateRductLevyYmd(params().set("levy", levy)) == 1;
}
/** . /** .
* @param params * @param params
* <ul><li>"levy" - </li> * <ul><li>"levy" - </li>
@ -111,16 +136,4 @@ public interface LevyMapper extends AbstractMapper {
return levy != null && deleteLevy(params().set("levy", levy)) == 1; return levy != null && deleteLevy(params().set("levy", levy)) == 1;
} }
/** ID .
* @param crdnId ID
* @return
*/
DataObject selectCrdnInfo(String crdnId);
/** ID .
* @param crdnId ID
* @return
*/
String selectMaxLevyNo(LevyQuery req);
} }

@ -127,7 +127,7 @@ public class LevyBean extends AbstractComponent {
return retMessage; return retMessage;
} }
/** . /** .
* @param levy * @param levy
* @return * @return
* <ul><li> true</li> * <ul><li> true</li>
@ -165,6 +165,8 @@ public class LevyBean extends AbstractComponent {
levy.setLevyPcptax(crdnInfo.number("ADVNTCE_AMT").intValue()); // 부과 본세 levy.setLevyPcptax(crdnInfo.number("ADVNTCE_AMT").intValue()); // 부과 본세
levy.setSumAmt(crdnInfo.number("ADVNTCE_AMT").intValue()); // 합계 금액 levy.setSumAmt(crdnInfo.number("ADVNTCE_AMT").intValue()); // 합계 금액
} else { } else {
levy.setFyr(null); // 회계연도
levy.setLevyNo(null); // 부과 번호
levy.setLevyYmd(null); // 부과 일자 levy.setLevyYmd(null); // 부과 일자
levy.setFrstDudtYmd(null); // 최초 납기 일자 levy.setFrstDudtYmd(null); // 최초 납기 일자
levy.setDudtYmd(null); // 납기 일자 levy.setDudtYmd(null); // 납기 일자
@ -192,7 +194,7 @@ public class LevyBean extends AbstractComponent {
levy.setRdcamtAdamt(0); // 감액 가산금 levy.setRdcamtAdamt(0); // 감액 가산금
levy.setTxtnThing(crdnInfo.string("VHRNO")); // 과세 물건 levy.setTxtnThing(crdnInfo.string("VHRNO")); // 과세 물건
levy.setMngArtcl1(crdnInfo.string("CRDN_YMD_TM_MASK")); // 관리 항목1 - 위반일시 levy.setMngArtcl1(crdnInfo.string("CRDN_YMD_TM_MASK")); // 관리 항목1 - 위반일시
levy.setMngArtcl2(crdnInfo.string("CRDN_STDG_NM") + " " + crdnInfo.string("CRDN_PLC")); // 관리 항목2 - 장소 levy.setMngArtcl2(crdnInfo.string("CRDN_PLC")); // 관리 항목2 - 장소
levy.setMngArtcl3(crdnInfo.string("VLTN_LAW_NM") + " " + crdnInfo.string("VLTN_LAW1") + " " + crdnInfo.string("VLTN_LAW2")); // 관리 항목3 - 법령 levy.setMngArtcl3(crdnInfo.string("VLTN_LAW_NM") + " " + crdnInfo.string("VLTN_LAW1") + " " + crdnInfo.string("VLTN_LAW2")); // 관리 항목3 - 법령
levy.setMngArtcl4(crdnInfo.string("VLTN_ARTCL")); // 관리 항목4 - 위반항목 levy.setMngArtcl4(crdnInfo.string("VLTN_ARTCL")); // 관리 항목4 - 위반항목
levy.setMngArtcl5(""); // 관리 항목5 levy.setMngArtcl5(""); // 관리 항목5
@ -233,7 +235,34 @@ public class LevyBean extends AbstractComponent {
return retMessage; return retMessage;
} }
/** . /** , , .
* @param levy
* @return
* <ul><li> true</li>
* <li> false</li>
* </ul>
*/
public String updateRductLevyYmd(Levy levy) {
// 변수 선언
boolean retSuccess = false; // DB 처리 결과
String retMessage = "[F] "; // 처리 결과 메시지
retSuccess = levyMapper.updateRductLevyYmd(levy);
if (!retSuccess) {
// 예외를 발생시켜서 오류메세지를 보내고 DB Rollback
throw new RuntimeException("감경부과 대장 등록에 실패하였습니다.");
}
retMessage = "[S] 작업이 정상 처리 되었습니다.";
return retMessage;
}
/** .
* @param levy * @param levy
* @return * @return
* <ul><li> true</li> * <ul><li> true</li>

@ -246,14 +246,24 @@ public class SndngBean extends AbstractComponent {
// 단속, 납부자 정보 재조회 ///////////////////////////////////////// // 단속, 납부자 정보 재조회 /////////////////////////////////////////
crdnPayerInfo = sndngMapper.selectCrdnPayerTrgtInfo(sndng.getCrdnIDs()[iLoop]); crdnPayerInfo = sndngMapper.selectCrdnPayerTrgtInfo(sndng.getCrdnIDs()[iLoop]);
} else {
// 확인이 필요하다!!!!! if ("BPV,PVS".contains(crdnPayerInfo.string("TASK_SE_CD"))) {
// // 세외수입에 등록 후 세외수입에서 감경해야 하므로 사전통보액 80,000 원이 아닌 본 부과액 100,000 원으로 등록한다. // 부과일자, 최초납기일자, 납기일자를 변경한다.
// // 세외수입에서 가상계좌를 부여 받은 후 다시 금액이 80,000 원으로 업데이트 된다. Levy levy = new Levy();
// ffnlgAmt = crdnPayerInfo.number("FFNLG_AMT").intValue(); // 과태료 금액
// pcptax = crdnPayerInfo.number("FFNLG_AMT").intValue(); // 본세 levy.setLevyId(crdnPayerInfo.string("LEVY_ID")); // 부과 ID
// adamt = 0; // 가산금 levy.setLevyYmd(sndng.getSndngYmd()); // 부과 일자
// sumAmt = crdnPayerInfo.number("FFNLG_AMT").intValue(); // 합계 금액 levy.setFrstDudtYmd(sndng.getSndngEndYmd()); // 최초 납기 일자
levy.setDudtYmd(sndng.getSndngEndYmd()); // 납기 일자
levy.setFfnlgAmt(crdnPayerInfo.number("FFNLG_AMT").intValue()); // 과태료 금액
levy.setLevyPcptax(crdnPayerInfo.number("ADVNTCE_AMT").intValue()); // 본세 금액
levy.setSumAmt(crdnPayerInfo.number("ADVNTCE_AMT").intValue()); // 합계 금액
retMessage = levyBean.updateRductLevyYmd(levy);
if (retMessage.contains("[F]")) {
throw new RuntimeException("발송 상세 등록 작업중 부과대장 수정에 실패하였습니다."); // 예외를 발생시켜서 DB Rollback
}
}
} }
ffnlgAmt = crdnPayerInfo.number("FFNLG_AMT").intValue(); // 과태료 금액 ffnlgAmt = crdnPayerInfo.number("FFNLG_AMT").intValue(); // 과태료 금액

@ -150,9 +150,10 @@
WHERE C.SGG_CD = #{sggCd} <!-- 시군구 코드 --> WHERE C.SGG_CD = #{sggCd} <!-- 시군구 코드 -->
AND C.TASK_SE_CD = #{taskSeCd} <!-- 업무 구분 코드 --> AND C.TASK_SE_CD = #{taskSeCd} <!-- 업무 구분 코드 -->
AND C.CRDN_STTS_CD BETWEEN '21' AND '31' <!-- 단속 상태 코드 --> AND C.CRDN_STTS_CD BETWEEN '21' AND '31' <!-- 단속 상태 코드 -->
AND C.RTPYR_ID IS NOT NULL <!-- 납부자 ID -->
AND C.DEL_YN = 'N' <!-- 삭제 여부 -->
AND (CC.CVLCPT_PRCS_CD IS NULL OR CC.CVLCPT_PRCS_CD <![CDATA[ <> ]]> '00') <!-- 민원 처리 코드 --> AND (CC.CVLCPT_PRCS_CD IS NULL OR CC.CVLCPT_PRCS_CD <![CDATA[ <> ]]> '00') <!-- 민원 처리 코드 -->
AND L.LEVY_ID IS NULL <!-- 부과 ID --> AND L.LEVY_ID IS NULL <!-- 부과 ID -->
AND C.DEL_YN = 'N' <!-- 삭제 여부 -->
<if test="schCrdnYmdFrom != null"> <if test="schCrdnYmdFrom != null">
AND C.CRDN_YMD <![CDATA[ >= ]]> #{schCrdnYmdFrom} <!-- 단속 일자 시작 --> AND C.CRDN_YMD <![CDATA[ >= ]]> #{schCrdnYmdFrom} <!-- 단속 일자 시작 -->
</if> </if>
@ -346,6 +347,73 @@
<include refid="utility.orderBy" /> <include refid="utility.orderBy" />
</select> </select>
<select id="selectCrdnInfo" parameterType="map" resultType="dataobject">/* 단속 정보 가져오기(levyMapper.selectCrdnInfo) */
SELECT C.CRDN_ID <!-- 단속 ID -->
, C.SGG_CD
, C.TASK_SE_CD
, C.CRDN_REG_SE_CD
, C.CRDN_INPT_SE_CD
, C.CVLCPT_LINK_YN
, C.LINK_TBL_NM
, C.LINK_ID
, C.RTPYR_ID
, C.CRDN_YMD
, C.CRDN_TM
, C.VHRNO
, C.CRDN_STDG_NM
, C.CRDN_ROAD_NM
, C.CRDN_PLC
, C.VLTN_ID
, C.GPS_X
, C.GPS_Y
, C.ATCH_FILE_CNT
, C.VIN
, C.VHCL_NM
, C.VHCL_COLOR
, C.FFNLG_CRDN_AMT
, C.FFNLG_RDUCT_RT
, C.FFNLG_AMT
, C.ADVNTCE_BGNG_YMD
, C.ADVNTCE_DUDT_YMD
, C.ADVNTCE_AMT
, C.OPNN_SBMSN_YN
, C.ETC_CN
, C.CRDN_STTS_CD
, C.CRDN_STTS_CHG_DT
, C.ADTN_AMT
, C.MINUS_AMT
, C.RCVMT_AMT
, C.BFR_CRDN_ID
, VI.VLTN_CD <!-- 위반 코드 -->
, VI.VLTN_ARTCL <!-- 위반 항목 -->
, VI.VLTN_LAW_NM <!-- 위반 법 명 -->
, VI.VLTN_LAW1 <!-- 위반 법1 -->
, VI.VLTN_LAW2 <!-- 위반 법2 -->
, VI.VLTN_LAW_ETC <!-- 위반 법 기타 -->
, VI.ACNTG_SE_CD <!-- 회계 구분 코드 -->
, VI.TXITM_CD <!-- 세목 코드 -->
, VI.OPER_ITEM_CD <!-- 운영 항목 코드 -->
, VI.SPCL_BIZ_CD <!-- 특별회계 사업 코드 -->
, L.LEVY_ID <!-- 부과 ID -->
, <include refid="utility.today" /> AS TODAY <!-- 오늘 일자 -->
, (SELECT GET_MASK_DATETIME(C.CRDN_YMD, '-', C.CRDN_TM, ':') FROM DUAL) AS CRDN_YMD_TM_MASK <!-- 단속 일시 마스크 -->
, (SELECT GET_CODE_NM('FIM010', C.CRDN_STTS_CD) FROM DUAL) AS CRDN_STTS_NM <!-- 단속 상태 명 -->
FROM TB_CRDN C
INNER JOIN TB_VLTN_INFO VI ON (C.VLTN_ID = VI.VLTN_ID AND C.SGG_CD = VI.SGG_CD AND C.TASK_SE_CD = VI.TASK_SE_CD AND VI.USE_YN = 'Y')
LEFT OUTER JOIN TB_LEVY L ON (C.CRDN_ID = L.CRDN_ID AND L.DEL_YN = 'N')
WHERE C.CRDN_ID = #{crdnId} <!-- 단속 ID -->
AND C.DEL_YN = 'N' <!-- 삭제 여부 -->
</select>
<select id="selectMaxLevyNo" parameterType="map" resultType="String">/* 고지번호 가져오기(levyMapper.selectMaxLevyNo) */
SELECT LPAD(IFNULL(MAX(LEVY_NO) + 1, 1), 6, '0') AS NEW_LEVY_NO
FROM TB_LEVY
WHERE SGG_CD = #{sggCd}
AND FYR = #{fyr}
AND ACNTG_SE_CD = #{acntgSeCd}
AND TXITM_CD = #{txitmCd}
</select>
<insert id="insertLevy" parameterType="map">/* 부과 대장 등록(levyMapper.insertLevy) */ <insert id="insertLevy" parameterType="map">/* 부과 대장 등록(levyMapper.insertLevy) */
<selectKey resultType="string" keyProperty="levy.levyId" keyColumn="NEW_ID" order="BEFORE"> <selectKey resultType="string" keyProperty="levy.levyId" keyColumn="NEW_ID" order="BEFORE">
SELECT CONCAT(DATE_FORMAT(CURRENT_DATE, '%Y'), LPAD(CAST(IFNULL(MAX(SUBSTRING(LEVY_ID, 5)) + 1, 1) AS INT), 16, '0')) AS NEW_ID SELECT CONCAT(DATE_FORMAT(CURRENT_DATE, '%Y'), LPAD(CAST(IFNULL(MAX(SUBSTRING(LEVY_ID, 5)) + 1, 1) AS INT), 16, '0')) AS NEW_ID
@ -588,81 +656,28 @@
AND DEL_YN = 'N' <!-- 삭제 여부 --> AND DEL_YN = 'N' <!-- 삭제 여부 -->
</update> </update>
<update id="deleteLevy" parameterType="map">/* 부과 대장 삭제(levyMapper.deleteLevy) */ <update id="updateRductLevyYmd" parameterType="map">/* 감경부과 대장 부과일자, 최초납기일자, 납기일자 수정(levyMapper.updateRductLevyYmd) */
UPDATE TB_LEVY UPDATE TB_LEVY
SET DEL_YN = 'Y' SET LEVY_YMD = #{levy.levyYmd} <!-- 부과 일자 -->
, DEL_DT = #{levy.lastModified} <!-- 삭제 일시 --> , FRST_DUDT_YMD = #{levy.frstDudtYmd} <!-- 최초 납기 일자 -->
, DLTR = #{levy.modifiedBy} <!-- 삭제자 --> , DUDT_YMD = #{levy.dudtYmd} <!-- 납기 일자 -->
, DEL_RSN = #{levy.delRsn} <!-- 삭제 사유 --> , FFNLG_AMT = #{levy.ffnlgAmt} <!-- 과태료 금액 -->
WHERE LEVY_ID = #{levy.levyId} <!-- 부과 ID --> , LEVY_PCPTAX = #{levy.levyPcptax} <!-- 본세 금액 -->
AND DEL_YN = 'N' <!-- 삭제 여부 --> , SUM_AMT = #{levy.sumAmt} <!-- 합계 금액 -->
, MDFCN_DT = #{levy.lastModified} <!-- 수정 일시 -->
, MDFR = #{levy.modifiedBy} <!-- 수정자 -->
WHERE LEVY_ID = #{levy.levyId} <!-- 부과 ID -->
AND DEL_YN = 'N' <!-- 삭제 여부 -->
</update> </update>
<select id="selectCrdnInfo" parameterType="map" resultType="dataobject">/* 단속 정보 가져오기(levyMapper.selectCrdnInfo) */ <update id="deleteLevy" parameterType="map">/* 부과 대장 삭제(levyMapper.deleteLevy) */
SELECT C.CRDN_ID <!-- 단속 ID --> UPDATE TB_LEVY
, C.SGG_CD SET DEL_YN = 'Y' <!-- 삭제 여부 -->
, C.TASK_SE_CD , DEL_DT = #{levy.lastModified} <!-- 삭제 일시 -->
, C.CRDN_REG_SE_CD , DLTR = #{levy.modifiedBy} <!-- 삭제자 -->
, C.CRDN_INPT_SE_CD , DEL_RSN = #{levy.delRsn} <!-- 삭제 사유 -->
, C.CVLCPT_LINK_YN WHERE LEVY_ID = #{levy.levyId} <!-- 부과 ID -->
, C.LINK_TBL_NM AND DEL_YN = 'N' <!-- 삭제 여부 -->
, C.LINK_ID </update>
, C.RTPYR_ID
, C.CRDN_YMD
, C.CRDN_TM
, C.VHRNO
, C.CRDN_STDG_NM
, C.CRDN_ROAD_NM
, C.CRDN_PLC
, C.VLTN_ID
, C.GPS_X
, C.GPS_Y
, C.ATCH_FILE_CNT
, C.VIN
, C.VHCL_NM
, C.VHCL_COLOR
, C.FFNLG_CRDN_AMT
, C.FFNLG_RDUCT_RT
, C.FFNLG_AMT
, C.ADVNTCE_BGNG_YMD
, C.ADVNTCE_DUDT_YMD
, C.ADVNTCE_AMT
, C.OPNN_SBMSN_YN
, C.ETC_CN
, C.CRDN_STTS_CD
, C.CRDN_STTS_CHG_DT
, C.ADTN_AMT
, C.MINUS_AMT
, C.RCVMT_AMT
, C.BFR_CRDN_ID
, VI.VLTN_CD <!-- 위반 코드 -->
, VI.VLTN_ARTCL <!-- 위반 항목 -->
, VI.VLTN_LAW_NM <!-- 위반 법 명 -->
, VI.VLTN_LAW1 <!-- 위반 법1 -->
, VI.VLTN_LAW2 <!-- 위반 법2 -->
, VI.VLTN_LAW_ETC <!-- 위반 법 기타 -->
, VI.ACNTG_SE_CD <!-- 회계 구분 코드 -->
, VI.TXITM_CD <!-- 세목 코드 -->
, VI.OPER_ITEM_CD <!-- 운영 항목 코드 -->
, VI.SPCL_BIZ_CD <!-- 특별회계 사업 코드 -->
, L.LEVY_ID <!-- 부과 ID -->
, <include refid="utility.today" /> AS TODAY <!-- 오늘 일자 -->
, (SELECT GET_MASK_DATETIME(C.CRDN_YMD, '-', C.CRDN_TM, ':') FROM DUAL) AS CRDN_YMD_TM_MASK <!-- 단속 일시 마스크 -->
, (SELECT GET_CODE_NM('FIM010', C.CRDN_STTS_CD) FROM DUAL) AS CRDN_STTS_NM <!-- 단속 상태 명 -->
FROM TB_CRDN C
INNER JOIN TB_VLTN_INFO VI ON (C.VLTN_ID = VI.VLTN_ID AND C.SGG_CD = VI.SGG_CD AND C.TASK_SE_CD = VI.TASK_SE_CD AND VI.USE_YN = 'Y')
LEFT OUTER JOIN TB_LEVY L ON (C.CRDN_ID = L.CRDN_ID AND L.DEL_YN = 'N')
WHERE C.CRDN_ID = #{crdnId} <!-- 단속 ID -->
AND C.DEL_YN = 'N' <!-- 삭제 여부 -->
</select>
<select id="selectMaxLevyNo" parameterType="map" resultType="String">/* 고지번호 가져오기(levyMapper.selectMaxLevyNo) */
SELECT LPAD(IFNULL(MAX(LEVY_NO) + 1, 1), 6, '0') AS NEW_LEVY_NO
FROM TB_LEVY
WHERE SGG_CD = #{sggCd}
AND FYR = #{fyr}
AND ACNTG_SE_CD = #{acntgSeCd}
AND TXITM_CD = #{txitmCd}
</select>
</mapper> </mapper>

@ -831,9 +831,6 @@
<include refid="utility.orderBy" /> <include refid="utility.orderBy" />
</select> </select>
<sql id="selectCrdnPayerTrgt"> <sql id="selectCrdnPayerTrgt">
SELECT C.CRDN_ID <!-- 단속 ID --> SELECT C.CRDN_ID <!-- 단속 ID -->
, C.SGG_CD <!-- 시군구 코드 --> , C.SGG_CD <!-- 시군구 코드 -->

Loading…
Cancel
Save