|
|
|
@ -1,6 +1,5 @@
|
|
|
|
|
package cokr.xit.fims.levy.service.bean;
|
|
|
|
|
|
|
|
|
|
import java.text.SimpleDateFormat;
|
|
|
|
|
import java.util.List;
|
|
|
|
|
|
|
|
|
|
import javax.annotation.Resource;
|
|
|
|
@ -132,12 +131,12 @@ public class LevyBean extends AbstractComponent {
|
|
|
|
|
return rtnMsg;
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
for (int iLoop = 0; iLoop < trgtList.size() ; iLoop++) {
|
|
|
|
|
for (int iLoop = 0; iLoop < trgtList.size(); iLoop++) {
|
|
|
|
|
Levy levy = new Levy();
|
|
|
|
|
levy.setCrdnId(trgtList.get(iLoop).string("CRDN_ID")); // 단속 ID
|
|
|
|
|
levy.setLevyYmd(req.getLevyYmd()); // 부과 일자
|
|
|
|
|
levy.setFrstDudtYmd(req.getDudtYmd()); // 최초 납기 일자
|
|
|
|
|
levy.setDudtYmd(req.getDudtYmd()); // 납기 일자
|
|
|
|
|
levy.setCrdnId(trgtList.get(iLoop).string("CRDN_ID")); // 단속 ID
|
|
|
|
|
levy.setLevyYmd(req.getLevyYmd()); // 부과 일자
|
|
|
|
|
levy.setFrstDudtYmd(req.getDudtYmd()); // 최초 납기 일자
|
|
|
|
|
levy.setDudtYmd(req.getDudtYmd()); // 납기 일자
|
|
|
|
|
|
|
|
|
|
rtnMsg = createRductLevy(levy);
|
|
|
|
|
if (rtnMsg.contains("[F]")) {
|
|
|
|
@ -168,6 +167,11 @@ public class LevyBean extends AbstractComponent {
|
|
|
|
|
// 단속 정보
|
|
|
|
|
DataObject crdnInfo = levyMapper.selectCrdn(levy.getCrdnId());
|
|
|
|
|
|
|
|
|
|
// 전용차로위반, 주정차위반 과태료가 아니라면 오류.
|
|
|
|
|
if (!"BPV,PVS".contains(crdnInfo.string("TASK_SE_CD"))) {
|
|
|
|
|
rtnMsg = "[F] 작업 중 " + crdnInfo.string("TASK_SE_NM") + " 업무는 사전부과를 할 수 없습니다.";
|
|
|
|
|
return rtnMsg;
|
|
|
|
|
}
|
|
|
|
|
if (!crdnInfo.string("LEVY_ID").equals("")) {
|
|
|
|
|
rtnMsg = "[F] 작업 중 이미 감경 부과된 자료가 있습니다.";
|
|
|
|
|
return rtnMsg;
|
|
|
|
@ -181,61 +185,48 @@ public class LevyBean extends AbstractComponent {
|
|
|
|
|
return rtnMsg;
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
// 전용차로위반, 주정차위반 과태료
|
|
|
|
|
if ("BPV,PVS".contains(crdnInfo.string("TASK_SE_CD"))) {
|
|
|
|
|
LevyQuery selectLevyNo = new LevyQuery();
|
|
|
|
|
|
|
|
|
|
selectLevyNo.setSggCd(crdnInfo.string("SGG_CD"));
|
|
|
|
|
selectLevyNo.setTaskSeCd(crdnInfo.string("TASK_SE_CD"));
|
|
|
|
|
selectLevyNo.setFyr(crdnInfo.string("TODAY").substring(0, 4));
|
|
|
|
|
selectLevyNo.setAcntgSeCd(crdnInfo.string("ACNTG_SE_CD"));
|
|
|
|
|
selectLevyNo.setTxitmCd(crdnInfo.string("TXITM_CD"));
|
|
|
|
|
|
|
|
|
|
levy.setFyr(levy.getLevyYmd().substring(0, 4)); // 회계연도
|
|
|
|
|
levy.setLevyNo(levyMapper.selectMaxLevyNo(selectLevyNo)); // 부과 번호 (최종 부과번호+1 을 조회 한다.)
|
|
|
|
|
levy.setFfnlgAmt(crdnInfo.number("FFNLG_AMT").intValue()); // 과태료 금액
|
|
|
|
|
levy.setLevyPcptax(crdnInfo.number("ADVNTCE_AMT").intValue()); // 부과 본세
|
|
|
|
|
levy.setSumAmt(crdnInfo.number("ADVNTCE_AMT").intValue()); // 합계 금액
|
|
|
|
|
} else {
|
|
|
|
|
// levy.setFyr(null); // 회계연도
|
|
|
|
|
levy.setLevyNo(null); // 부과 번호
|
|
|
|
|
levy.setLevyYmd(null); // 부과 일자
|
|
|
|
|
levy.setFrstDudtYmd(null); // 최초 납기 일자
|
|
|
|
|
levy.setDudtYmd(null); // 납기 일자
|
|
|
|
|
levy.setFfnlgAmt(crdnInfo.number("FFNLG_AMT").intValue()); // 과태료 금액
|
|
|
|
|
levy.setLevyPcptax(crdnInfo.number("FFNLG_AMT").intValue()); // 부과 본세
|
|
|
|
|
levy.setSumAmt(crdnInfo.number("FFNLG_AMT").intValue()); // 합계 금액
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
levy.setSggCd(crdnInfo.string("SGG_CD")); // 시군구 코드
|
|
|
|
|
levy.setTaskSeCd(crdnInfo.string("TASK_SE_CD")); // 업무 구분 코드
|
|
|
|
|
levy.setInstCd(managedUser.getInstitute()); // 기관 코드
|
|
|
|
|
levy.setDeptCd(managedUser.getDeptCode()); // 부서 코드
|
|
|
|
|
levy.setAcntgSeCd(crdnInfo.string("ACNTG_SE_CD")); // 회계 구분 코드
|
|
|
|
|
levy.setTxitmCd(crdnInfo.string("TXITM_CD")); // 세목 코드
|
|
|
|
|
levy.setOperItemCd(crdnInfo.string("OPER_ITEM_CD")); // 운영 항목 코드
|
|
|
|
|
levy.setSpclBizCd(crdnInfo.string("SPCL_BIZ_CD")); // 특별회계 사업 코드
|
|
|
|
|
levy.setInspySn("00"); // 분납 일련번호
|
|
|
|
|
levy.setLevySeCd("02"); // 부과 구분 코드 FIM040
|
|
|
|
|
levy.setUntySeCd("02"); // 통합 구분 코드 FIM072
|
|
|
|
|
// 고지번호
|
|
|
|
|
LevyQuery selectLevyNo = new LevyQuery();
|
|
|
|
|
selectLevyNo.setSggCd(crdnInfo.string("SGG_CD"));
|
|
|
|
|
selectLevyNo.setTaskSeCd(crdnInfo.string("TASK_SE_CD"));
|
|
|
|
|
selectLevyNo.setFyr(crdnInfo.string("TODAY").substring(0, 4));
|
|
|
|
|
selectLevyNo.setAcntgSeCd(crdnInfo.string("ACNTG_SE_CD"));
|
|
|
|
|
selectLevyNo.setTxitmCd(crdnInfo.string("TXITM_CD"));
|
|
|
|
|
|
|
|
|
|
levy.setFyr(levy.getLevyYmd().substring(0, 4)); // 회계연도
|
|
|
|
|
levy.setLevyNo(levyMapper.selectMaxLevyNo(selectLevyNo)); // 부과 번호 (최종 부과번호+1 을 조회 한다.)
|
|
|
|
|
levy.setFfnlgAmt(crdnInfo.number("FFNLG_AMT").intValue()); // 과태료 금액
|
|
|
|
|
levy.setLevyPcptax(crdnInfo.number("ADVNTCE_AMT").intValue()); // 부과 본세
|
|
|
|
|
levy.setSumAmt(crdnInfo.number("ADVNTCE_AMT").intValue()); // 합계 금액
|
|
|
|
|
levy.setSggCd(crdnInfo.string("SGG_CD")); // 시군구 코드
|
|
|
|
|
levy.setTaskSeCd(crdnInfo.string("TASK_SE_CD")); // 업무 구분 코드
|
|
|
|
|
levy.setInstCd(managedUser.getInstitute()); // 기관 코드
|
|
|
|
|
levy.setDeptCd(managedUser.getDeptCode()); // 부서 코드
|
|
|
|
|
levy.setAcntgSeCd(crdnInfo.string("ACNTG_SE_CD")); // 회계 구분 코드
|
|
|
|
|
levy.setTxitmCd(crdnInfo.string("TXITM_CD")); // 세목 코드
|
|
|
|
|
levy.setOperItemCd(crdnInfo.string("OPER_ITEM_CD")); // 운영 항목 코드
|
|
|
|
|
levy.setSpclBizCd(crdnInfo.string("SPCL_BIZ_CD")); // 특별회계 사업 코드
|
|
|
|
|
levy.setInspySn("00"); // 분납 일련번호
|
|
|
|
|
levy.setLevySeCd("02"); // 부과 구분 코드 FIM040
|
|
|
|
|
levy.setUntySeCd("02"); // 통합 구분 코드 FIM072
|
|
|
|
|
if (crdnInfo.string("TASK_SE_CD").equals("BPV")) {
|
|
|
|
|
levy.setRductSeCd("02"); // 감경 구분 코드 FIM046 - 02 미감경
|
|
|
|
|
levy.setRductSeCd("02"); // 감경 구분 코드 FIM046 - 02 미감경
|
|
|
|
|
} else {
|
|
|
|
|
levy.setRductSeCd("01"); // 감경 구분 코드 FIM046 - 01 감경
|
|
|
|
|
levy.setRductSeCd("01"); // 감경 구분 코드 FIM046 - 01 감경
|
|
|
|
|
}
|
|
|
|
|
levy.setLevyAdamt(0); // 부과 가산금
|
|
|
|
|
levy.setInspyInt(0); // 분납 이자
|
|
|
|
|
levy.setRcvmtPcptax(0); // 수납 본세
|
|
|
|
|
levy.setRcvmtAdamt(0); // 수납 가산금
|
|
|
|
|
levy.setRdcamtPcptax(0); // 감액 본세
|
|
|
|
|
levy.setRdcamtAdamt(0); // 감액 가산금
|
|
|
|
|
levy.setTxtnThing(crdnInfo.string("VHRNO")); // 과세 물건
|
|
|
|
|
levy.setMngItem1(crdnInfo.string("CRDN_YMD_TM_MASK")); // 관리 아이템1 - 위반일시
|
|
|
|
|
levy.setLevyAdamt(0); // 부과 가산금
|
|
|
|
|
levy.setInspyInt(0); // 분납 이자
|
|
|
|
|
levy.setRcvmtPcptax(0); // 수납 본세
|
|
|
|
|
levy.setRcvmtAdamt(0); // 수납 가산금
|
|
|
|
|
levy.setRdcamtPcptax(0); // 감액 본세
|
|
|
|
|
levy.setRdcamtAdamt(0); // 감액 가산금
|
|
|
|
|
levy.setTxtnThing(crdnInfo.string("VHRNO")); // 과세 물건
|
|
|
|
|
levy.setMngItem1(crdnInfo.string("CRDN_YMD_TM_MASK")); // 관리 아이템1 - 위반일시
|
|
|
|
|
levy.setMngItem2(crdnInfo.string("CRDN_STDG_NM") + " " + crdnInfo.string("CRDN_PLC")); // 관리 아이템2 - 장소
|
|
|
|
|
levy.setMngItem3(crdnInfo.string("VLTN_LAW_NM") + " " + crdnInfo.string("VLTN_LAW1") + " " + crdnInfo.string("VLTN_LAW2")); // 관리 아이템3 - 법령
|
|
|
|
|
levy.setMngItem4(crdnInfo.string("VLTN_ARTCL")); // 관리 아이템4 - 위반항목
|
|
|
|
|
levy.setMngItem5(""); // 관리 아이템5
|
|
|
|
|
levy.setMngItem6(crdnInfo.string("CRDN_ID")); // 관리 아이템6
|
|
|
|
|
levy.setMngItem4(crdnInfo.string("VLTN_ARTCL")); // 관리 아이템4 - 위반항목
|
|
|
|
|
levy.setMngItem5(""); // 관리 아이템5
|
|
|
|
|
levy.setMngItem6(crdnInfo.string("SGG_CD") + "_" + crdnInfo.string("CRDN_ID")); // 관리 아이템6 - 시군구코드 + 단속ID
|
|
|
|
|
|
|
|
|
|
rtnScs = levyMapper.insert(levy);
|
|
|
|
|
if (!rtnScs) {
|
|
|
|
@ -243,18 +234,13 @@ public class LevyBean extends AbstractComponent {
|
|
|
|
|
throw new RuntimeException("감경부과 대장 등록에 실패하였습니다.");
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
// 현재 날짜 구하기
|
|
|
|
|
SimpleDateFormat dateFormat = new SimpleDateFormat("yyyyMMddHHmmss");
|
|
|
|
|
|
|
|
|
|
// 단속상태이력(TB_CRDN_STTS_HSTRY)
|
|
|
|
|
CrdnSttsHstry crdnSttsHstry = new CrdnSttsHstry();
|
|
|
|
|
|
|
|
|
|
crdnSttsHstry.setCrdnId(crdnInfo.string("CRDN_ID")); // 단속 ID
|
|
|
|
|
crdnSttsHstry.setBfrSttsCd(crdnInfo.string("CRDN_STTS_CD")); // 이전 단속 상태 코드
|
|
|
|
|
crdnSttsHstry.setBfrSttsChgDt(crdnInfo.string("CRDN_STTS_CHG_DT")); // 이전 단속 상태 변경 일시
|
|
|
|
|
crdnSttsHstry.setCrdnSttsCd("23"); // 단속 상태 코드(FIM010) - 감경부과
|
|
|
|
|
crdnSttsHstry.setCrdnSttsChgDt(dateFormat.format(System.currentTimeMillis())); // 단속 상태 변경 일시
|
|
|
|
|
crdnSttsHstry.setTaskDtlId(levy.getLevyId()); // 부과 ID
|
|
|
|
|
crdnSttsHstry.setCrdnId(crdnInfo.string("CRDN_ID")); // 단속 ID
|
|
|
|
|
crdnSttsHstry.setBfrSttsCd(crdnInfo.string("CRDN_STTS_CD")); // 이전 단속 상태 코드
|
|
|
|
|
crdnSttsHstry.setBfrSttsChgDt(crdnInfo.string("CRDN_STTS_CHG_DT")); // 이전 단속 상태 변경 일시
|
|
|
|
|
crdnSttsHstry.setCrdnSttsCd("23"); // 단속 상태 코드(FIM010) - 23: 사전부과
|
|
|
|
|
crdnSttsHstry.setTaskDtlId(levy.getLevyId()); // 부과 ID
|
|
|
|
|
|
|
|
|
|
if (crdnInfo.number("CRDN_STTS_CD").intValue() >= 1 && crdnInfo.number("CRDN_STTS_CD").intValue() <= 22 ) {
|
|
|
|
|
// 단속 상태 이력(TB_CRDN_STTS_HSTRY) 대장에 등록하고, 단속(TB_CRDN) 대장을 수정한다.
|
|
|
|
@ -307,8 +293,8 @@ public class LevyBean extends AbstractComponent {
|
|
|
|
|
*/
|
|
|
|
|
public String updateRcvmt(Levy levy) {
|
|
|
|
|
// 변수 선언
|
|
|
|
|
boolean rtnScs = false; // DB 처리 결과
|
|
|
|
|
String rtnMsg = "[F] "; // 처리 결과 메시지
|
|
|
|
|
boolean rtnScs = false; // DB 처리 결과
|
|
|
|
|
String rtnMsg = ""; // 처리 결과 메시지
|
|
|
|
|
|
|
|
|
|
rtnScs = levyMapper.updateRcvmt(levy);
|
|
|
|
|
if (!rtnScs) {
|
|
|
|
@ -330,8 +316,8 @@ public class LevyBean extends AbstractComponent {
|
|
|
|
|
*/
|
|
|
|
|
public String updateRdcamt(Levy levy) {
|
|
|
|
|
// 변수 선언
|
|
|
|
|
boolean rtnScs = false; // DB 처리 결과
|
|
|
|
|
String rtnMsg = "[F] "; // 처리 결과 메시지
|
|
|
|
|
boolean rtnScs = false; // DB 처리 결과
|
|
|
|
|
String rtnMsg = ""; // 처리 결과 메시지
|
|
|
|
|
|
|
|
|
|
rtnScs = levyMapper.updateRdcamt(levy);
|
|
|
|
|
if (!rtnScs) {
|
|
|
|
@ -344,37 +330,4 @@ public class LevyBean extends AbstractComponent {
|
|
|
|
|
return rtnMsg;
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
/**부과 대장 정보를 등록한다.
|
|
|
|
|
* @param levy 부과 대장
|
|
|
|
|
* @return 저장 여부
|
|
|
|
|
* <ul><li>저장됐으면 true</li>
|
|
|
|
|
* <li>그렇지 않으면 false</li>
|
|
|
|
|
* </ul>
|
|
|
|
|
*/
|
|
|
|
|
public boolean create(Levy levy) {
|
|
|
|
|
return levyMapper.insert(levy);
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
/**부과 대장 정보를 수정한다.
|
|
|
|
|
* @param levy 부과 대장
|
|
|
|
|
* @return 저장 여부
|
|
|
|
|
* <ul><li>저장됐으면 true</li>
|
|
|
|
|
* <li>그렇지 않으면 false</li>
|
|
|
|
|
* </ul>
|
|
|
|
|
*/
|
|
|
|
|
public boolean update(Levy levy) {
|
|
|
|
|
return levyMapper.update(levy);
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
/**부과 대장 정보를 삭제한다.
|
|
|
|
|
* @param levy 부과 대장
|
|
|
|
|
* @return 저장 여부
|
|
|
|
|
* <ul><li>저장됐으면 true</li>
|
|
|
|
|
* <li>그렇지 않으면 false</li>
|
|
|
|
|
* </ul>
|
|
|
|
|
*/
|
|
|
|
|
public boolean remove(Levy levy) {
|
|
|
|
|
return levyMapper.delete(levy);
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
}
|
|
|
|
|