1. 사전부과 수정.

main
jjh 6 months ago
parent c12bbef5c0
commit 527f43c258

@ -112,14 +112,14 @@ public class CrdnSttsHstryBean extends AbstractComponent {
*/
public boolean createHstryUpdateCrdnSttsCd(CrdnSttsHstry crdnSttsHstry) {
// 변수 선언
boolean rtnScs = false; // DB 처리 결과
boolean rtnScs = false; // DB 처리 결과
// 사용 여부
if (crdnSttsHstry.getUseYn() == null) {
crdnSttsHstry.setUseYn("Y");
}
// 단속 상태 변경 일시
if (crdnSttsHstry.getCrdnSttsChgDt() == null) {
if (crdnSttsHstry.getCrdnSttsChgDt() == null || crdnSttsHstry.getCrdnSttsChgDt().equals("")) {
// 현재 날짜 구하기
SimpleDateFormat dateFormat = new SimpleDateFormat("yyyyMMddHHmmss");
crdnSttsHstry.setCrdnSttsChgDt(dateFormat.format(System.currentTimeMillis()));

@ -59,31 +59,4 @@ public interface LevyService {
String createRductLevyList(LevyQuery req);
/** .
* @param levy
* @return
* <ul><li> true</li>
* <li> false</li>
* </ul>
*/
boolean create(Levy levy);
/** .
* @param levy
* @return
* <ul><li> true</li>
* <li> false</li>
* </ul>
*/
boolean update(Levy levy);
/** .
* @param levy
* @return
* <ul><li> true</li>
* <li> false</li>
* </ul>
*/
boolean remove(Levy levy);
}

@ -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);
}
}

@ -64,19 +64,4 @@ public class LevyServiceBean extends AbstractServiceBean implements LevyService
return levyBean.createRductLevyList(req);
}
@Override
public boolean create(Levy levy) {
return levyBean.create(levy);
}
@Override
public boolean update(Levy levy) {
return levyBean.update(levy);
}
@Override
public boolean remove(Levy levy) {
return levyBean.remove(levy);
}
}

@ -23,7 +23,6 @@ import cokr.xit.fims.cmmn.CmmnQuery;
import cokr.xit.fims.cmmn.service.bean.StngBean;
import cokr.xit.fims.cmmn.xls.FormatMaker;
import cokr.xit.fims.cmmn.xls.StyleMaker;
import cokr.xit.fims.levy.Levy;
import cokr.xit.fims.levy.LevyQuery;
import cokr.xit.fims.levy.service.LevyService;
import cokr.xit.fims.mngt.service.bean.TaskBean;
@ -104,7 +103,7 @@ public class Levy01Controller extends ApplicationController {
* "levyTotal":
* }</code></pre>
*/
@Task({"DPV", "PVS","BPV"})
@Task({"PVS","BPV"})
@RequestMapping(name="사전 감경부과 대상 목록 조회", value=METHOD_URL.getReductionLevyTargetList)
public ModelAndView getReductionLevyTargetList(LevyQuery req) {
if (!"xls".equals(req.getDownload())) {
@ -170,7 +169,7 @@ public class Levy01Controller extends ApplicationController {
* "rductLevyYmdInfo":
* }</pre>
*/
@Task({"DPV", "PVS","BPV"})
@Task({"PVS","BPV"})
@RequestMapping(name="사전 감경부과 정보 조회", value=METHOD_URL.getReductionLevyTargetInfo)
public ModelAndView getReductionLevyTargetInfo(LevyQuery req) {
// 감경 부과일자
@ -202,7 +201,7 @@ public class Levy01Controller extends ApplicationController {
* "saved": true, false
* }</code></pre>
*/
@Task({"DPV", "PVS","BPV"})
@Task({"PVS","BPV"})
@RequestMapping(name="사전 감경부과 대장 등록", value=METHOD_URL.createReductionLevyList)
public ModelAndView createReductionLevyList(LevyQuery req) {
boolean saved = false;
@ -341,52 +340,4 @@ public class Levy01Controller extends ApplicationController {
}
}
/** .
* @param levy
* @return jsonView
* <pre><code> {
* "saved": true, false
* }</code></pre>
*/
public ModelAndView create(Levy levy) {
boolean saved = levyService.create(levy);
return new ModelAndView("jsonView")
.addObject("saved", saved);
}
/** .
* @param levy
* @return jsonView
* <pre><code> {
* "saved": true, false
* }</code></pre>
*/
public ModelAndView update(Levy levy) {
boolean saved = levyService.update(levy);
return new ModelAndView("jsonView")
.addObject("saved", saved);
}
/** .
* @param levyId ID
* @return jsonView
* <pre><code> {
* "affected":
* "saved": true, false
* }</code></pre>
*/
public ModelAndView remove(Levy levy) {
boolean saved = levyService.remove(levy);
return new ModelAndView("jsonView")
.addObject("saved", saved);
}
}

@ -962,11 +962,13 @@
SELECT C.CRDN_ID <!-- 단속 ID -->
, C.SGG_CD <!-- 시군구 코드 -->
, C.TASK_SE_CD <!-- 업무 구분 코드 -->
, (SELECT GET_CODE_NM('FIM054', C.TASK_SE_CD) FROM DUAL) AS TASK_SE_NM <!-- 업무 구분 명 -->
, C.CVLCPT_LINK_YN
, C.LINK_TBL_NM
, C.LINK_ID
, C.CRDN_YMD <!-- 단속 일자 -->
, C.CRDN_TM <!-- 단속 시각 -->
, (SELECT GET_MASK_DATETIME(C.CRDN_YMD, '-', C.CRDN_TM, ':') FROM DUAL) AS CRDN_YMD_TM_MASK <!-- 단속 일시 마스크 -->
, C.VHRNO <!-- 차량번호 -->
, C.CRDN_STDG_NM <!-- 단속 법정동 명 -->
, C.CRDN_ROAD_NM <!-- 단속 도로 명 -->
@ -985,12 +987,11 @@
, C.ADVNTCE_DUDT_YMD
, C.ADVNTCE_AMT
, C.CRDN_STTS_CD
, (SELECT GET_CODE_NM('FIM010', C.CRDN_STTS_CD) FROM DUAL) AS CRDN_STTS_NM <!-- 단속 상태 명 -->
, C.CRDN_STTS_CHG_DT
, C.ADTN_AMT
, C.MINUS_AMT
, C.RCVMT_AMT
, (GET_MASK_DATETIME(C.CRDN_YMD, '-', C.CRDN_TM, ':')) AS CRDN_YMD_TM_MASK <!-- 단속 일시 마스크 -->
, (SELECT GET_CODE_NM('FIM010', C.CRDN_STTS_CD) FROM DUAL) AS CRDN_STTS_NM <!-- 단속 상태 명 -->
, V.VLTN_CD <!-- 위반 코드 -->
, V.VLTN_ARTCL <!-- 위반 항목 -->
, V.VLTN_LAW_NM <!-- 위반 법 명 -->

@ -178,10 +178,10 @@
</div>
<span class="container-window-btn-right">
<!-- 업무 버튼 -->
<button type="button" class="btn btn-primary w-px-120" id="btnCreateSlctnTrgtRductLevy--${pageName}" title="선택 대상 감경부과 등록">
<button type="button" class="btn btn-primary w-px-120" id="btnCreateSlctnTrgt--${pageName}" title="선택 대상 감경부과 등록">
선택 대상 감경부과 등록
</button>
<button type="button" class="btn btn-primary w-px-120" id="btnCreateWholTrgtRductLevy--${pageName}" title="전체 대상 감경부과 등록">
<button type="button" class="btn btn-primary w-px-120" id="btnCreateWholTrgt--${pageName}" title="전체 대상 감경부과 등록">
전체 대상 감경부과 등록
</button>
</span>
@ -382,7 +382,7 @@
});
// 선택 대상 감경부과 등록 버튼
$("#btnCreateSlctnTrgtRductLevy--${pageName}").prop("disabled", keys.length < 1);
$("#btnCreateSlctnTrgt--${pageName}").prop("disabled", keys.length < 1);
// DataTables(그리드) 전체 선택(checkbox)
if (keys.length < 1) {

Loading…
Cancel
Save