1. 과태료 대장 등록 자료 상세 조회(실시간) 수정.

2. 부과제외 수정.
main
jjh 6 months ago
parent 2db70576e6
commit 21df072845

@ -53,6 +53,11 @@ public class CrdnSttsHstry extends AbstractEntity {
*/
private String etcCn;
/**
*
*/
private String useYn;
/**
*
*/

@ -63,8 +63,8 @@ public class CrdnSttsHstryBean extends AbstractComponent {
* </ul>
*/
public boolean create(CrdnSttsHstry crdnSttsHstry) {
if (crdnSttsHstry.getUseYN() == null) {
crdnSttsHstry.setUseYN("Y");
if (crdnSttsHstry.getUseYn() == null) {
crdnSttsHstry.setUseYn("Y");
}
return crdnSttsHstryMapper.insert(crdnSttsHstry);
@ -115,8 +115,8 @@ public class CrdnSttsHstryBean extends AbstractComponent {
boolean rtnScs = false; // DB 처리 결과
// 사용 여부
if (crdnSttsHstry.getUseYN() == null) {
crdnSttsHstry.setUseYN("Y");
if (crdnSttsHstry.getUseYn() == null) {
crdnSttsHstry.setUseYn("Y");
}
// 단속 상태 변경 일시
if (crdnSttsHstry.getCrdnSttsChgDt() == null) {
@ -149,7 +149,7 @@ public class CrdnSttsHstryBean extends AbstractComponent {
* <li> false</li>
* </ul>
*/
public boolean removeHstryUpdateCrdnSttsCd(String crdnId, String crdnSttsCd, String deleteSttsCd, boolean insertBfrSttsYn) {
public boolean removeHstryUpdateCrdnSttsCd(String crdnId, String crdnSttsCd, String deltSttsCd, String deltEtcCn, boolean insertBfrSttsYn) {
// 변수 선언
boolean rtnScs = false; // DB 처리 결과
@ -162,9 +162,8 @@ public class CrdnSttsHstryBean extends AbstractComponent {
if (!crdnSttsCd.equals("")) {
CrdnSttsHstry crdnSttsHstry = new CrdnSttsHstry();
crdnSttsHstry.setSttsHstryId(crdnSttsHstryInfo.string("STTS_HSTRY_ID"));
crdnSttsHstry.setUseYN("N");
crdnSttsHstry.setUseYn("N");
rtnScs = crdnSttsHstryMapper.update(crdnSttsHstry);
if (!rtnScs) {
@ -173,9 +172,9 @@ public class CrdnSttsHstryBean extends AbstractComponent {
}
// 삭제 단속상태코드가 있다면.. 단속상태이력(TB_CRDN_STTS_HSTRY) 대장을 등록 한다.
if (!deleteSttsCd.equals("")) {
if (!deltSttsCd.equals("")) {
// 단속상태가 의견제출접수(31)가 아니면서, 삭제상태코드가 의견제출삭제(92)나 경찰서이첩삭제(97) 일 경우
if (!crdnSttsCd.equals("31") && "92,97".contains(deleteSttsCd)) {
if (!crdnSttsCd.equals("31") && "92,97".contains(deltSttsCd)) {
// 단속상태이력(TB_CRDN_STTS_HSTRY) 대장에서 의견제출접수(31) 이력을 조회후 사용여부를 미사용("N")으로 수정.
crdnSttsHstryInfo = crdnSttsHstryMapper.selectCrdnSttsHstryInfo(crdnId, "31", "Y");
@ -184,9 +183,8 @@ public class CrdnSttsHstryBean extends AbstractComponent {
}
CrdnSttsHstry opnnSttsHstry = new CrdnSttsHstry();
opnnSttsHstry.setSttsHstryId(crdnSttsHstryInfo.string("STTS_HSTRY_ID"));
opnnSttsHstry.setUseYN("N");
opnnSttsHstry.setUseYn("N");
rtnScs = crdnSttsHstryMapper.update(opnnSttsHstry);
if (!rtnScs) {
@ -195,12 +193,12 @@ public class CrdnSttsHstryBean extends AbstractComponent {
}
CrdnSttsHstry deleteSttsHstry = new CrdnSttsHstry();
deleteSttsHstry.setCrdnId(crdnSttsHstryInfo.string("CRDN_ID"));
deleteSttsHstry.setBfrSttsCd(crdnSttsHstryInfo.string("CRDN_STTS_CD"));
deleteSttsHstry.setBfrSttsChgDt(crdnSttsHstryInfo.string("REG_DT"));
deleteSttsHstry.setCrdnSttsCd(deleteSttsCd);
deleteSttsHstry.setUseYN("N");
deleteSttsHstry.setCrdnSttsCd(deltSttsCd);
deleteSttsHstry.setEtcCn(deltEtcCn);
deleteSttsHstry.setUseYn("N");
rtnScs = crdnSttsHstryMapper.insert(deleteSttsHstry);
if (!rtnScs) {
@ -211,13 +209,12 @@ public class CrdnSttsHstryBean extends AbstractComponent {
if (insertBfrSttsYn) {
// 단속상태이력(TB_CRDN_STTS_HSTRY) 대장을 등록 한다.
CrdnSttsHstry crdnSttsHstry = new CrdnSttsHstry();
crdnSttsHstry.setCrdnId(crdnSttsHstryInfo.string("CRDN_ID"));
crdnSttsHstry.setBfrSttsCd(deleteSttsCd);
crdnSttsHstry.setBfrSttsCd(deltSttsCd);
crdnSttsHstry.setBfrSttsChgDt(crdnSttsHstry.getCreatedAt());
crdnSttsHstry.setCrdnSttsCd(crdnSttsHstryInfo.string("BFR_STTS_CD"));
crdnSttsHstry.setCrdnSttsChgDt(crdnSttsHstryInfo.string("BFR_STTS_CHG_DT"));
crdnSttsHstry.setUseYN("Y");
crdnSttsHstry.setUseYn("Y");
rtnScs = createHstryUpdateCrdnSttsCd(crdnSttsHstry);
if (!rtnScs) {

@ -113,47 +113,43 @@ public class LevyExclBean extends AbstractComponent {
*/
public String createLevyExcl(LevyExcl levyExcl) {
// 변수 선언
boolean rtnScs = false; // DB 처리 결과
String rtnMsg = "[F] "; // 처리 결과 메시지
String newCrdnSttsCd = ""; // 신규 단속 상태 코드(CRDN_STTS_CD)
boolean rtnScs = false; // DB 처리 결과
String rtnMsg = ""; // 처리 결과 메시지
String newCrdnSttsCd = ""; // 신규 단속 상태 코드(CRDN_STTS_CD)
// 단속 ID로 단속, 부과제외 정보 조회
DataObject crdnInfo = levyExclMapper.selectCrdnInfo(levyExcl.getCrdnId());
// 부과제외 ID가 있다면 이미 부과제외 자료가 존재하므로 종료..
if (!crdnInfo.string("LEVY_EXCL_ID").equals("")) {
rtnMsg = "[F] 작업 중 이미 등록된 부과제외 자료가 존재합니다.";
// 조회된 자료 정보로 등록 가능한지 검증
if (!crdnInfo.string("LEVY_EXCL_ID").equals("")) { // 부과제외 ID가 있다면 이미 부과제외 자료가 존재하므로 종료..
rtnMsg = "[F] 작업중 이미 등록된 부과제외 자료가 존재합니다.";
return rtnMsg;
}
// 단속 상태 코드(CRDN_STTS_CD) 확인..
if (levyExcl.getLevyExclSeCd().equals("1") || levyExcl.getLevyExclSeCd().equals("2")) { // 비부과(서손), 계고
// 단속 상태 코드가 부과(51) 보다 크다면, 비부과 또는 계고 등록을 할 수 없다. 종료..
if (crdnInfo.number("CRDN_STTS_CD").intValue() >= 51) {
rtnMsg = "[F] 작업 중 오류가 발생하였습니다.<br>현재 자료의 단속 상태가 " + crdnInfo.string("CRDN_STTS_NM") + " 상태 입니다.";
if (levyExcl.getLevyExclSeCd().contains("1,2")) { // 비부과(서손), 계고
if (crdnInfo.number("CRDN_STTS_CD").intValue() >= 51) { // 단속상태코드가 부과(51) 보다 크다면, 비부과 또는 계고 등록을 할 수 없다.
rtnMsg = "[F] 작업중 오류가 발생하였습니다.<br>현재 자료의 단속상태가 " + crdnInfo.string("CRDN_STTS_NM") + " 상태 입니다.";
return rtnMsg;
}
} else if (levyExcl.getLevyExclSeCd().equals("5")) {
// 단속 상태 코드가 부과(51) 보다 작다면, 전액감액 등록 할 수 없다. 종료.. 전액감액 등록은 부과이후...
if (crdnInfo.number("CRDN_STTS_CD").intValue() < 51) {
rtnMsg = "[F] 작업 중 오류가 발생하였습니다.<br>현재 자료의 단속 상태가 " + crdnInfo.string("CRDN_STTS_NM") + " 상태 입니다.";
} else if (levyExcl.getLevyExclSeCd().equals("3")) { // 부과취소
if (crdnInfo.number("CRDN_STTS_CD").intValue() < 51) { // 단속상태코드가 부과(51) 보다 작다면, 전액감액 등록 할 수 없다.
rtnMsg = "[F] 작업중 오류가 발생하였습니다.<br>현재 자료의 단속상태가 " + crdnInfo.string("CRDN_STTS_NM") + " 상태 입니다.";
return rtnMsg;
}
}
// 단속 민원(TB_CRDN_CVLCPT) 민원 처리 확인
if (!crdnInfo.string("CVLCPT_LINK_ID").equals("")) {
if (!crdnInfo.string("CVLCPT_LINK_ID").equals("")) { // 단속 민원(TB_CRDN_CVLCPT) 민원 처리 확인
if (crdnInfo.string("CVLCPT_PRCS_CD").equals("00")) {
rtnMsg = "[F] 작업 중 단속 민원 자료가 처리 되지 않았습니다.<br>단속 민원 업무를 먼저 처리 하시기 바랍니다.<br>";
rtnMsg = "[F] 작업중 단속 민원 자료가 처리 되지 않았습니다.<br>단속 민원 업무를 먼저 처리 하시기 바랍니다.<br>";
return rtnMsg;
}
}
// 단속 상태 코드 설정.
if (levyExcl.getLevyExclSeCd().equals("1")) { // 비부과
newCrdnSttsCd = "81"; // 비부과(서손)
} else if (levyExcl.getLevyExclSeCd().equals("2")) { // 계고
newCrdnSttsCd = "83"; // 계고
} else if (levyExcl.getLevyExclSeCd().equals("3")) { // 부과취소(전액감액)
newCrdnSttsCd = "80"; // 부과취소
// 단속상태코드 설정.
if (levyExcl.getLevyExclSeCd().equals("1")) { // 비부과
newCrdnSttsCd = "81"; // 비부과(서손)
} else if (levyExcl.getLevyExclSeCd().equals("2")) { // 계고
newCrdnSttsCd = "83"; // 계고
} else if (levyExcl.getLevyExclSeCd().equals("3")) { // 부과취소(전액감액)
newCrdnSttsCd = "80"; // 부과취소
}
// 부과취소(전액감액)일 경우 부과(TB_LEVY)에 감액금액 입력이 필요..
@ -163,9 +159,8 @@ public class LevyExclBean extends AbstractComponent {
return rtnMsg;
}
// 감액 등록
// 감액(TB_RDCAMT) 등록
Rdcamt rdcamt = new Rdcamt();
rdcamt.setLevyId(crdnInfo.string("LEVY_ID")); // 부과 ID
rdcamt.setRdcamtYmd(levyExcl.getLevyExclYmd()); // 감액 일자
rdcamt.setRdcamtSeCd("02"); // 감액 구분 코드 FIM085 - 02:부과취소
@ -185,7 +180,6 @@ public class LevyExclBean extends AbstractComponent {
// 단속상태이력(TB_CRDN_STTS_HSTRY)
CrdnSttsHstry crdnSttsHstry = new CrdnSttsHstry();
crdnSttsHstry.setCrdnId(crdnInfo.string("CRDN_ID"));
crdnSttsHstry.setBfrSttsCd(crdnInfo.string("CRDN_STTS_CD"));
crdnSttsHstry.setBfrSttsChgDt(crdnInfo.string("CRDN_STTS_CHG_DT"));
@ -213,7 +207,7 @@ public class LevyExclBean extends AbstractComponent {
public String updateLevyExcl(LevyExcl levyExcl) {
// 변수 선언
boolean rtnScs = false; // DB 처리 결과
String rtnMsg = "[F] "; // 처리 결과 메시지
String rtnMsg = ""; // 처리 결과 메시지
// 부과제외(TB_LEVY_EXCL) 대장을 수정 한다.
rtnScs = levyExclMapper.update(levyExcl);
@ -236,14 +230,10 @@ public class LevyExclBean extends AbstractComponent {
public String removeLevyExcl(LevyExcl levyExcl) {
// 변수 선언
boolean rtnScs = false; // DB 처리 결과
String rtnMsg = "[F] "; // 처리 결과 메시지
String rtnMsg = ""; // 처리 결과 메시지
// 부과제외(TB_LEVY_EXCL) 정보를 조회한다.
LevyExclQuery req = new LevyExclQuery();
req.setLevyExclId(levyExcl.getLevyExclId());
req.setDelYn("N");
DataObject levyExclInfo = levyExclMapper.selectLevyExclInfo(req);
DataObject levyExclInfo = levyExclMapper.selectLevyExclInfo(new LevyExclQuery().setLevyExclId(levyExcl.getLevyExclId()));
// 부과제외 ID가 조회되지 않았다면 종료..
if (levyExclInfo.string("LEVY_EXCL_ID").equals("")) {
@ -269,16 +259,16 @@ public class LevyExclBean extends AbstractComponent {
}
// 단속상태이력(TB_CRDN_STTS_HSTRY) 대장에 부과제외 이력삭제 및 부과제외삭제 이력을 등록 한다.
String deleteCrdnSttsCd = "";
String deltCrdnSttsCd = "";
if (levyExclInfo.string("CRDN_STTS_CD").equals("80")) { // 임시
throw new RuntimeException("부과취소는 부과제외 삭제에 실패하였습니다."); // 예외를 발생시켜서 DB Rollback
} else if (levyExclInfo.string("CRDN_STTS_CD").equals("81")) {
deleteCrdnSttsCd = "91"; // 비부과(서손) 삭제
deltCrdnSttsCd = "91"; // 비부과(서손) 삭제
} else if (("83,84").contains(levyExclInfo.string("CRDN_STTS_CD"))) {
deleteCrdnSttsCd = "93"; // 계고 삭제
deltCrdnSttsCd = "93"; // 계고 삭제
}
rtnScs = crdnSttsHstryBean.removeHstryUpdateCrdnSttsCd(levyExclInfo.string("CRDN_ID"), levyExclInfo.string("CRDN_STTS_CD"), deleteCrdnSttsCd, true);
rtnScs = crdnSttsHstryBean.removeHstryUpdateCrdnSttsCd(levyExclInfo.string("CRDN_ID"), levyExclInfo.string("CRDN_STTS_CD"), deltCrdnSttsCd, levyExcl.getDelRsn(), true);
if (!rtnScs) {
throw new RuntimeException("부과제외 삭제 작업 중 단속상태이력 삭제 및 등록에 실패하였습니다."); // 예외를 발생시켜서 DB Rollback
}

@ -56,40 +56,7 @@ public class LevyExclServiceBean extends AbstractServiceBean implements LevyExcl
@Override
public String removeLevyExcl(LevyExcl levyExcl) {
// 변수 선언
String rtnMsg = "[F] "; // 처리 결과 메시지
// 부과제외 ID 및 부과제외 IDs 확인하여 null이면 종료
if (levyExcl.getLevyExclId() == null && levyExcl.getLevyExclIds() == null) {
rtnMsg = "[F] 작업 중 선택 자료가 존재하지 않습니다.";
return rtnMsg;
}
// 부과제외 삭제 처리
if (levyExcl.getLevyExclId() != null) {
rtnMsg = levyExclBean.removeLevyExcl(levyExcl);
} else {
// 부과제외 IDs 를 확인하여 건수가 1보다 작다면 종료..
if (levyExcl.getLevyExclIds().length < 1) {
rtnMsg = "[F] 작업 중 선택 자료가 존재하지 않습니다.";
return rtnMsg;
}
// 부과제외 Ids 만큼 반복..
for (int iLoop = 0; iLoop < levyExcl.getLevyExclIds().length; iLoop++) {
// 부과제외 ID 설정
levyExcl.setLevyExclId(levyExcl.getLevyExclIds()[iLoop]);
// 부과제외 삭제 호출
rtnMsg = levyExclBean.removeLevyExcl(levyExcl);
// 오류가 발생하였으면 종료..
if (rtnMsg.contains("[F]")) {
return rtnMsg;
}
}
}
return rtnMsg;
return levyExclBean.removeLevyExcl(levyExcl);
}
}

@ -389,27 +389,27 @@ public class OpnnSbmsnBean extends AbstractComponent {
// 단속상태이력(TB_CRDN_STTS_HSTRY) 대장에 의견제출 이력삭제 및 의견제출삭제 이력을 등록 한다.
boolean insertBfrSttsYN = false;
String crdnSttsCd = "";
String deleteCrdnSttsCd = "";
String deltCrdnSttsCd = "";
if (opnnSbmsnInfo.string("CRDN_STTS_CD").equals("31")) { // 의견진술 접수
insertBfrSttsYN = true;
crdnSttsCd = opnnSbmsnInfo.string("CRDN_STTS_CD");
deleteCrdnSttsCd = "92";
deltCrdnSttsCd = "92";
} else if (opnnSbmsnInfo.string("CRDN_STTS_CD").equals("82")) { // 의견진술 수용
insertBfrSttsYN = true;
crdnSttsCd = opnnSbmsnInfo.string("CRDN_STTS_CD");
deleteCrdnSttsCd = "92";
deltCrdnSttsCd = "92";
} else if (opnnSbmsnInfo.string("CRDN_STTS_CD").equals("87")) { // 경찰서 이첩
insertBfrSttsYN = true;
crdnSttsCd = opnnSbmsnInfo.string("CRDN_STTS_CD");
deleteCrdnSttsCd = "97";
deltCrdnSttsCd = "97";
} else {
insertBfrSttsYN = false;
crdnSttsCd = "";
deleteCrdnSttsCd = "92";
deltCrdnSttsCd = "92";
}
rtnScs = crdnSttsHstryBean.removeHstryUpdateCrdnSttsCd(opnnSbmsnInfo.string("CRDN_ID"), crdnSttsCd, deleteCrdnSttsCd, insertBfrSttsYN);
rtnScs = crdnSttsHstryBean.removeHstryUpdateCrdnSttsCd(opnnSbmsnInfo.string("CRDN_ID"), crdnSttsCd, deltCrdnSttsCd, opnnSbmsn.getDelRsn(), insertBfrSttsYN);
if (!rtnScs) {
throw new RuntimeException("단속상태이력 삭제 및 등록에 실패하였습니다."); // 예외를 발생시켜서 DB Rollback
}

@ -47,19 +47,20 @@ public class Excl01Controller extends ApplicationController {
public class METHOD_URL {
public static final String
levyExclusionMain = "/010/main.do" // 부과 제외 관리 메인 화면
, getLevyExclusionList = "/010/list.do" // 부과 제외 대장 목록 조회
, removeLevyExclusion = "/010/remove.do" // 부과 제외 대장 삭제
, getLevyExclusionInfo = "/020/info.do" // 부과 제외 대장 조회
, createLevyExclusion = "/020/create.do" // 부과 제외 대장 등록
, updateLevyExclusion = "/020/update.do" // 부과 제외 대장 수정
levyExclusionMain = "/010/main.do" // 부과 제외 관리 메인 화면
, getLevyExclusionList = "/010/list.do" // 부과 제외 대장 목록 조회
, getLevyExclusionInfo = "/020/info.do" // 부과 제외 대장 조회
, createLevyExclusion = "/020/create.do" // 부과 제외 대장 등록
, updateLevyExclusion = "/020/update.do" // 부과 제외 대장 수정
, removeLevyExclusion = "/010/remove.do" // 부과 제외 대장 삭제
;
}
/** 부과제외 대장 서비스 */
/**부과제외 대장 서비스*/
@Resource(name="levyExclService")
protected LevyExclService levyExclService;
/**설정 정보 Bean */
@Resource(name="stngBean")
private StngBean stngBean;
@ -80,16 +81,16 @@ public class Excl01Controller extends ApplicationController {
addCodes(commonCodes, mav, "FIM021", "FIM022");
return mav
.addObject("pageName", "excl01010") // View(jsp)에서 사용할 id 뒤에 붙일 suffix
.addObject("infoPrefix", "levyExcl") // prefix
.addObject("sggCd", managedUser.getOrgID()) // 시군구 코드(SGG_CD)
.addObject("pageName", "excl01010") // View(jsp)에서 사용할 id 뒤에 붙일 suffix
.addObject("infoPrefix", "levyExcl") // prefix
.addObject("sggCd", managedUser.getOrgID()) // 시군구 코드(SGG_CD)
.addObject("taskListForSgg", stngBean.filterTaskSectionCodeForSgg(commonCodes.get("FIM054")))
.addObject("FIM021List", commonCodes.get("FIM021")) // 부과 제외 구분 코드(LEVY_EXCL_SE_CD)
.addObject("FIM022List", commonCodes.get("FIM022")) // 부과 제외 사유 코드(LEVY_EXCL_RSN_CD)
.addObject("FIM021List", commonCodes.get("FIM021")) // 부과 제외 구분 코드(LEVY_EXCL_SE_CD)
.addObject("FIM022List", commonCodes.get("FIM022")) // 부과 제외 사유 코드(LEVY_EXCL_RSN_CD)
;
}
/** .<br />
/** .<br />
* {@link LevyExclService#getLevyExclList(LevyExclQuery)}
* @param req
* @return jsonView
@ -159,10 +160,12 @@ public class Excl01Controller extends ApplicationController {
xlsx.cell(0, 0).value("부과제외").value(center).merge(0, cellDefs.size() - 1)
.cell(3, 0).rowValues(CellDef.header(cellDefs, () -> StyleMaker.headerStyle(xlsx)))
.cell(4, 0).values(list, CellDef.values(cellDefs.stream().map(i -> {if(i.getValue() instanceof Format) {i.setField(null);}; return i;}).toList()));
List<Integer> cellWidthInfo = cellDefs.stream().map(CellDef::getWidth).toList();
for(int i=0; i<cellWidthInfo.size();i++) {
xlsx.workbook().getSheetAt(0).setColumnWidth(i, cellWidthInfo.get(i)*256);
}
return new ModelAndView("downloadView")
.addObject("download", xlsx.getDownloadable().setFilename("부과제외" + "_목록_" + dateTime + ".xlsx"));
}
@ -178,7 +181,6 @@ public class Excl01Controller extends ApplicationController {
@Task
@RequestMapping(name="부과제외 정보 조회", value=METHOD_URL.getLevyExclusionInfo)
public ModelAndView getLevyExclusionInfo(String saveCallbackFuncName, String savedCallbackFuncName, LevyExclQuery req) {
//
DataObject info = levyExclService.getLevyExclInfo(req);
// 등록을 호출하였지만 등록된 부과제외 ID가 있는지 확인.
@ -197,17 +199,17 @@ public class Excl01Controller extends ApplicationController {
// View(jsp)에서 사용할 공통코드를 조회
Map<String, List<CommonCode>> commonCodes = getCodesOf("FIM021", "FIM022", "FIM054");
addCodes(commonCodes, mav, "FIM021", "FIM022", "FIM054");
addCodes(commonCodes, mav, "FIM021", "FIM022");
return mav
.addObject("saveCallbackFuncName", saveCallbackFuncName) //
.addObject("savedCallbackFuncName", savedCallbackFuncName) //
.addObject("pageName", "excl01020") //
.addObject("callPurpose", req.getCallPurpose()) // 호출 용도
.addObject("FIM021List", commonCodes.get("FIM021")) // 부과 제외 구분 코드(LEVY_EXCL_SE_CD)
.addObject("FIM022List", commonCodes.get("FIM022")) // 부과 제외 사유 코드(LEVY_EXCL_RSN_CD)
.addObject("FIM054List", commonCodes.get("FIM054")) // 업무 구분 코드(TASK_SE_CD)
.addObject("levyExclInfo", json ? info : toJson(info)) // 부과제외 정보
.addObject("saveCallbackFuncName", saveCallbackFuncName) //
.addObject("savedCallbackFuncName", savedCallbackFuncName) //
.addObject("pageName", "excl01020") //
.addObject("callPurpose", req.getCallPurpose()) // 호출 용도
.addObject("FIM021List", commonCodes.get("FIM021")) // 부과 제외 구분 코드(LEVY_EXCL_SE_CD)
.addObject("FIM022List", commonCodes.get("FIM022")) // 부과 제외 사유 코드(LEVY_EXCL_RSN_CD)
.addObject("FIM054List", commonCodes.get("FIM054")) // 업무 구분 코드(TASK_SE_CD)
.addObject("levyExclInfo", json ? info : toJson(info)) // 부과제외 정보
;
}
}
@ -223,8 +225,9 @@ public class Excl01Controller extends ApplicationController {
@RequestMapping(name="부과제외 대장 등록", value=METHOD_URL.createLevyExclusion)
public ModelAndView createLevyExclusion(LevyExcl levyExcl) {
boolean saved = false;
String rtnMsg = levyExclService.createLevyExcl(levyExcl);
String rtnMsg = "";
rtnMsg = levyExclService.createLevyExcl(levyExcl);
if (rtnMsg.contains("[S]")) {
saved = true;
} else {
@ -247,8 +250,9 @@ public class Excl01Controller extends ApplicationController {
@RequestMapping(name="부과제외 대장 수정", value=METHOD_URL.updateLevyExclusion)
public ModelAndView updateLevyExclusion(LevyExcl levyExcl) {
boolean saved = false;
String rtnMsg = levyExclService.updateLevyExcl(levyExcl);
String rtnMsg = "";
rtnMsg = levyExclService.updateLevyExcl(levyExcl);
if (rtnMsg.contains("[S]")) {
saved = true;
} else {
@ -272,7 +276,22 @@ public class Excl01Controller extends ApplicationController {
@RequestMapping(name="부과제외 대장 삭제", value=METHOD_URL.removeLevyExclusion)
public ModelAndView removeLevyExclusion(LevyExcl levyExcl) {
boolean saved = false;
String rtnMsg = levyExclService.removeLevyExcl(levyExcl);
String rtnMsg = "";
if (levyExcl.getLevyExclIds().length > 0) { // 부과제외 IDs
// 부과제외 IDs 만큼 반복..
for (int iLoop = 0; iLoop < levyExcl.getLevyExclIds().length; iLoop++) {
// 부과제외 ID 설정
levyExcl.setLevyExclId(levyExcl.getLevyExclIds()[iLoop]);
// 부과제외 삭제 호출
rtnMsg = levyExclService.removeLevyExcl(levyExcl);
if (rtnMsg.contains("[F]")) // 오류가 발생하였으면 종료..
break;
}
} else {
rtnMsg = levyExclService.removeLevyExcl(levyExcl);
}
if (rtnMsg.contains("[S]")) {
saved = true;

@ -375,7 +375,8 @@ public class NisIndivBean extends AbstractComponent {
// 연계 서비스 호출 후 메세지 return
rtnMsg = callHttpsJson(sUrl, "POST", sJsonData);
/*
/*
// 테스트 샘플
rtnMsg = "{ "
+ " \"linkRstCd\":" + "\"000" + "\""
+ ", \"linkRstMsg\":" + "\"정상 조회되었습니다." + "\""

@ -99,30 +99,37 @@ public class RdcamtBean extends AbstractComponent {
*/
public String createRdcamt(Rdcamt rdcamt) {
// 변수 선언
boolean rtnScs = false; // DB 처리 결과
String rtnMsg = "[F] "; // 처리 결과 메시지
boolean rtnScs = false; // DB 처리 결과
String rtnMsg = ""; // 처리 결과 메시지
// 부과 ID로 부과 정보 조회
DataObject levyInfo = levyMapper.selectLevyAmt(new LevyQuery().setLevyId(rdcamt.getLevyId()));
// 부과 확인
// 부과(TB_LEVY) 대장 정보를 수정한다.
Levy levy = new Levy();
levy.setLevyId(levyInfo.string("LEVY_ID")); // 부과 ID
// 부과 취소(전액감액)
if (rdcamt.getRdcamtSeCd().equals("02")) {
rdcamt.setLastPcptax(levyInfo.number("LAST_PCPTAX").intValue());
rdcamt.setLastAdamt(levyInfo.number("LAST_ADAMT").intValue());
rdcamt.setRdcamtPcptax(levyInfo.number("LAST_PCPTAX").intValue());
rdcamt.setRdcamtAdamt(levyInfo.number("LAST_ADAMT").intValue());
}
if ("02,03,04".contains(rdcamt.getRdcamtSeCd())) { // 02:부과취소, 03:이의신청수용, 04:법원이송
// 수납금액이 있으면 오류 발생
if (levyInfo.number("RCVMT_PCPTAX").intValue() + levyInfo.number("RCVMT_ADAMT").intValue() > 0) {
rtnMsg = "[F] 수납금액이 존재합니다.<br>부분 감액으로 진행하시기 바랍니다."; // 예외를 발생시켜서 DB Rollback
return rtnMsg;
}
levy.setLevyId(levyInfo.string("LEVY_ID")); // 부과 ID
levy.setRdcamtPcptax(levyInfo.number("RDCAMT_PCPTAX").intValue() + rdcamt.getRdcamtPcptax()); // 감액 본세
levy.setRdcamtAdamt(levyInfo.number("RDCAMT_ADAMT").intValue() + rdcamt.getRdcamtAdamt()); // 감액 가산금
levy.setSumAmt(levyInfo.number("SUM_AMT").intValue() - rdcamt.getRdcamtPcptax() - rdcamt.getRdcamtAdamt()); // 합계 금액
levy.setDudtAftrAmt(levyInfo.number("DUDT_AFTR_AMT").intValue() - rdcamt.getRdcamtPcptax() - rdcamt.getRdcamtAdamt()); // 납기 후 금액
levy.setRdcamtPcptax(levyInfo.number("LEVY_PCPTAX").intValue()); // 감액 본세
levy.setRdcamtAdamt(levyInfo.number("LEVY_ADAMT").intValue()); // 감액 가산금
levy.setSumAmt(0); // 합계 금액
levy.setDudtAftrAmt(0); // 납기 후 금액
} else {
levy.setRdcamtPcptax(levyInfo.number("RDCAMT_PCPTAX").intValue() + rdcamt.getRdcamtPcptax()); // 감액 본세
levy.setRdcamtAdamt(levyInfo.number("RDCAMT_ADAMT").intValue() + rdcamt.getRdcamtAdamt()); // 감액 가산금
levy.setSumAmt(levyInfo.number("SUM_AMT").intValue() - rdcamt.getRdcamtPcptax() - rdcamt.getRdcamtAdamt()); // 합계 금액
if (levy.getSumAmt() > 0) {
levy.setDudtAftrAmt(levyInfo.number("DUDT_AFTR_AMT").intValue() - rdcamt.getRdcamtPcptax() - rdcamt.getRdcamtAdamt()); // 납기 후 금액
} else {
levy.setDudtAftrAmt(0);
}
}
rtnScs = levyMapper.updateRdcamt(levy);
if (!rtnScs) {
@ -130,6 +137,18 @@ public class RdcamtBean extends AbstractComponent {
}
// 감액(TB_RDCAMT) 대장 정보를 등록한다.
if ("02,03,04".contains(rdcamt.getRdcamtSeCd())) { // 02:부과취소, 03:이의신청수용, 04:법원이송
rdcamt.setLastPcptax(levyInfo.number("LEVY_PCPTAX").intValue());
rdcamt.setLastAdamt(levyInfo.number("LEVY_ADAMT").intValue());
rdcamt.setRdcamtPcptax(levyInfo.number("LEVY_PCPTAX").intValue());
rdcamt.setRdcamtAdamt(levyInfo.number("LEVY_ADAMT").intValue());
} else {
rdcamt.setLastPcptax(levyInfo.number("LAST_PCPTAX").intValue());
rdcamt.setLastAdamt(levyInfo.number("LAST_ADAMT").intValue());
rdcamt.setRdcamtPcptax(rdcamt.getRdcamtPcptax());
rdcamt.setRdcamtAdamt(rdcamt.getRdcamtAdamt());
}
rtnScs = rdcamtMapper.insert(rdcamt);
if (!rtnScs) {
throw new RuntimeException("감액 대장 등록에 실패하였습니다."); // 예외를 발생시켜서 DB Rollback

@ -571,13 +571,12 @@ public class SndngBean extends AbstractComponent {
// 단속 상태 이력(TB_CRDN_STTS_HSTRY)을 등록하고, 단속(TB_CRDN) 대장의 단속상태코드를 수정한다.
if ("21,22,23".contains(crdnPayerInfo.string("CRDN_STTS_CD"))) {
CrdnSttsHstry crdnSttsHstry = new CrdnSttsHstry();
crdnSttsHstry.setCrdnId(crdnPayerInfo.string("CRDN_ID"));
crdnSttsHstry.setBfrSttsCd(crdnPayerInfo.string("CRDN_STTS_CD"));
crdnSttsHstry.setBfrSttsChgDt(crdnPayerInfo.string("CRDN_STTS_CHG_DT"));
crdnSttsHstry.setCrdnSttsCd("42");
crdnSttsHstry.setTaskDtlId(sndngDtl.getSndngDtlId());
crdnSttsHstry.setUseYN("Y");
crdnSttsHstry.setUseYn("Y");
// 단속 상태 이력(TB_CRDN_STTS_HSTRY) 대장에 등록하고, 단속(TB_CRDN) 대장을 수정한다.
rtnScs = crdnSttsHstryBean.createHstryUpdateCrdnSttsCd(crdnSttsHstry);
@ -586,13 +585,12 @@ public class SndngBean extends AbstractComponent {
}
} else if (crdnPayerInfo.string("CRDN_STTS_CD").equals("31")) {
CrdnSttsHstry crdnSttsHstry = new CrdnSttsHstry();
crdnSttsHstry.setCrdnId(crdnPayerInfo.string("CRDN_ID"));
crdnSttsHstry.setBfrSttsCd(crdnPayerInfo.string("CRDN_STTS_CD"));
crdnSttsHstry.setBfrSttsChgDt(crdnPayerInfo.string("CRDN_STTS_CHG_DT"));
crdnSttsHstry.setCrdnSttsCd("42");
crdnSttsHstry.setTaskDtlId(sndngDtl.getSndngDtlId());
crdnSttsHstry.setUseYN("Y");
crdnSttsHstry.setUseYn("Y");
// 단속 상태 이력(TB_CRDN_STTS_HSTRY) 대장에 등록한다.
rtnScs = crdnSttsHstryBean.create(crdnSttsHstry);

@ -194,8 +194,8 @@ public class SndngDtlBean extends AbstractComponent {
boolean rtnScs = false; // DB 처리 결과
String rtnMsg = "[F] "; // 처리 결과 메시지
// 발송 상세 상태 코드(SNDNG_DTL_STTS_CD) 가 처리전(00)인 자료만 처리
if (sndngDtl.getSndngDtlSttsCd().equals("00")) {
// 발송 상세 상태 코드(SNDNG_DTL_STTS_CD) 가 세외수입부과(01)인 자료만 처리
if (sndngDtl.getSndngDtlSttsCd().equals("01")) {
NisIndivQuery nisIndivQuery = new NisIndivQuery();
nisIndivQuery.setCrdnId(sndngDtl.getCrdnId());

@ -856,14 +856,14 @@ public class Sndb01Controller extends ApplicationController {
}
/** .
* @param nisIndivA01
* @param req
* @return jsonView
* <pre><code> {
* "saved": true, false
* }</code></pre>
*/
@Task({"ECA","DPV","PES","DVS"})
@RequestMapping(name="차세대 세외수입 과태료 대장 단속 정보 등록", value=METHOD_URL.setNonTaxReceiptIndividualA01List)
@RequestMapping(name="세외수입 과태료 대장 단속 정보 등록", value=METHOD_URL.setNonTaxReceiptIndividualA01List)
public ModelAndView setNonTaxReceiptIndividualA01List(SndbQuery req) {
boolean saved = false;
String rtnMsg = "[F]";
@ -894,7 +894,44 @@ public class Sndb01Controller extends ApplicationController {
.addObject("rtnMsg", rtnMsg);
}
/** ().
* @param req
* @return jsonView
* <pre><code> {
* "saved": true, false
* }</code></pre>
*/
@Task({"ECA","DPV","PES","DVS"})
@RequestMapping(name="세외수입 과태료 대장 등록 자료 상세 조회", value=METHOD_URL.getNonTaxReceiptIndividualA03List)
public ModelAndView getNonTaxReceiptIndividualA03List(SndbQuery req) {
boolean saved = false;
String rtnMsg = "[F]";
List<DataObject> dtlList = sndngDtlService.getSndngTrgtDtlIds(req);
// 발송상세 Ids 만큼 반복..
for (int iLoop = 0; iLoop < dtlList.size(); iLoop++) {
SndngDtl sndngDtl = new SndngDtl();
sndngDtl.setSndngDtlId(dtlList.get(iLoop).string("SNDNG_DTL_ID"));
sndngDtl.setCrdnId(dtlList.get(iLoop).string("CRDN_ID"));
sndngDtl.setLinkTrgtCd(dtlList.get(iLoop).string("LINK_TRGT_CD"));
sndngDtl.setLinkMngKey(dtlList.get(iLoop).string("LINK_MNG_KEY"));
sndngDtl.setSndngDtlSttsCd(dtlList.get(iLoop).string("SNDNG_DTL_STTS_CD"));
sndngDtl.setDelYn("N");
rtnMsg = sndngDtlService.getNxrpIndivA03List(sndngDtl);
if (rtnMsg.contains("[S]")) {
saved = true;
} else {
saved = false;
}
}
return new ModelAndView("jsonView")
.addObject("saved", saved)
.addObject("rtnMsg", rtnMsg);
}
/** (sndb/sndb01/090-main) .
*

@ -561,11 +561,11 @@
<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 TASK_SE_CD = #{taskSeCd}
AND FYR = #{fyr}
AND ACNTG_SE_CD = #{acntgSeCd}
AND TXITM_CD = #{txitmCd}
WHERE SGG_CD = #{sggCd}
AND TASK_SE_CD = #{taskSeCd}
AND FYR = #{fyr}
AND ACNTG_SE_CD = #{acntgSeCd}
AND TXITM_CD = #{txitmCd}
</select>
<select id="selectLevyAmt" parameterType="map" resultType="dataobject">/* 부과 금액 가져오기(levyMapper.selectLevyAmt) */
@ -582,7 +582,6 @@
, FFNLG_AMT <!-- 과태료 금액 -->
, LEVY_PCPTAX <!-- 부과 본세 -->
, LEVY_ADAMT <!-- 부과 가산금 -->
, INSPY_INT <!-- 분납 이자 -->
, RCVMT_PCPTAX <!-- 수납 본세 -->
, RCVMT_ADAMT <!-- 수납 가산금 -->
, RDCAMT_PCPTAX <!-- 감액 본세 -->

@ -1,12 +1,12 @@
<%@ page language="java" contentType="text/html; charset=UTF-8" pageEncoding="UTF-8" isELIgnored="false" session="false"%>
<%@ include file="/WEB-INF/jsp/include/taglib.jsp"%>
<c:set var="prefixName" scope="request">부과제외 관리</c:set>
<!-- inner page html -->
<div class="content-wrapper">
<!-- Content -->
<div class="container-xxl flex-grow-1 px-0">
<c:set var="prefixName" scope="request">부과제외 관리</c:set>
<!-- Page Body -->
<div class="card">
<div class="wrapper-list">
@ -395,8 +395,8 @@
, title : params.title
, content : resp
, size : $P.control.infoSize
, init : () => { }
, onClose : () => { $P.refreshList(); } // 자료 재조회
, init : () => { }
, onClose : () => { $P.refreshList(); } // 자료 재조회
});
}
});
@ -413,7 +413,7 @@
, onOK : () => { }
});
if (resp.saved) { $P.refreshList(); } // 자료 재조회
if (resp.saved) { $P.refreshList(); } // 자료 재조회
}
// 삭제
@ -537,9 +537,15 @@
// 삭제 사유 callback
$P.callbackRsn = (obj) => {
// 선택 자료
let selected = $P.control.dataset.getKeys("selected");
if (selected.length < 1) return;
// 서버에 전송할 data(파라미터) 생성
let params = {};
params[$P.control.prefixed("IDs")] = selected.join(","); // IDs
params[$P.control.prefixed("Ids")] = selected.join(","); // Ids
params.delRsn = obj.reason; // 삭제 사유
$P.control.remove(params);
@ -632,29 +638,32 @@
// 선택 자료
let selected = $P.control.dataset.getKeys("selected");
if (selected.length < 1) return;
if (selected.length < 1) {
dialog.alert({
content : "선택하신 부과제외 정보가 없습니다."
, onOK : () => { }
});
return;
}
// 삭제 메세지 확인
dialog.alert({
content : "선택하신 " + selected.length + "건의 " + $P.control.prefixName + " 정보를 삭제하시겠습니까?"
, onOK : async() => {
// 삭제 사유 입력
var resp = await fetch(wctx.url("/resources/html/inputRsnDialog.html"));
var template = await resp.text();
let resp = await fetch(wctx.url("/resources/html/inputRsnDialog.html"));
let template = await resp.text();
dialog.open({
id : "inputDelRsnDialog",
title: title,
size : "lg",
content: template,
init : () => {
setDialogZindex();
},
onOK : () => {
id : "inputDelRsnDialog"
, title: title
, size : "lg"
, content: template
, init : () => { setDialogZindex(); }
, onOK : () => {
$P.callbackRsn({ reason : $("#reason").val() });
}
});
}
});
}
@ -771,9 +780,9 @@
// 업무구분에 따른 URL 설정
$P.setURL = (taskSeCd) => {
$P.control.urls.load = wctx.url("/" + taskSeCd + $P.PrefixUrl + "/010/list.do"); // 조회
$P.control.urls.remove = wctx.url("/" + taskSeCd + $P.PrefixUrl + "/010/remove.do"); // 삭제
$P.control.urls.load = wctx.url("/" + taskSeCd + $P.PrefixUrl + "/010/list.do"); // 조회
$P.control.urls.getInfo = wctx.url("/" + taskSeCd + $P.PrefixUrl + "/020/info.do"); // 수정
$P.control.urls.remove = wctx.url("/" + taskSeCd + $P.PrefixUrl + "/010/remove.do"); // 삭제
}
/**************************************************************************

@ -1,12 +1,12 @@
<%@ page language="java" contentType="text/html; charset=UTF-8" pageEncoding="UTF-8" isELIgnored="false" session="false"%>
<%@ include file="/WEB-INF/jsp/include/taglib.jsp"%>
<c:set var="prefixName" scope="request">부과제외 정보</c:set>
<!-- inner page html -->
<div class="content-wrapper">
<!-- Content -->
<div class="container flex-grow-1 px-0">
<c:set var="prefixName" scope="request">부과제외 정보</c:set>
<!-- Page Body -->
<div class="card">
<!-- 입력 영역 -->

@ -1,12 +1,12 @@
<%@ page language="java" contentType="text/html; charset=UTF-8" pageEncoding="UTF-8" isELIgnored="false" session="false"%>
<%@ include file="/WEB-INF/jsp/include/taglib.jsp"%>
<c:set var="prefixName" scope="request">의견제출 관리</c:set>
<!-- inner page html -->
<div class="content-wrapper">
<!-- Content -->
<div class="container-xxl flex-grow-1 px-0">
<c:set var="prefixName" scope="request">의견제출 관리</c:set>
<!-- Page Body -->
<div class="card">
<div class="wrapper-list">

@ -1,12 +1,12 @@
<%@ page language="java" contentType="text/html; charset=UTF-8" pageEncoding="UTF-8" isELIgnored="false" session="false"%>
<%@ include file="/WEB-INF/jsp/include/taglib.jsp"%>
<c:set var="prefixName" scope="request">의견제출 정보</c:set>
<!-- inner page html -->
<div class="content-wrapper">
<!-- Content -->
<div class="container flex-grow-1 px-0">
<c:set var="prefixName" scope="request">의견제출 정보</c:set>
<!-- Page Body -->
<div class="card">
<!-- 입력 영역 -->
@ -305,10 +305,10 @@
// 주소 검색
$P.fnSearchAddr = async(title) => {
var resp = await fetch(wctx.url("/resources/html/searchAddr.html"));
var template = await resp.text();
dialog.open({
id : "searchAddrDialog",
title: title,
@ -319,7 +319,7 @@
setDialogZindex();
}
});
}
// 첨부파일 조회

@ -1,12 +1,12 @@
<%@ page language="java" contentType="text/html; charset=UTF-8" pageEncoding="UTF-8" isELIgnored="false" session="false"%>
<%@ include file="/WEB-INF/jsp/include/taglib.jsp"%>
<c:set var="prefixName" scope="request">의견제출 심의 정보</c:set>
<!-- inner page html -->
<div class="content-wrapper">
<!-- Content -->
<div class="container flex-grow-1 px-0">
<c:set var="prefixName" scope="request">의견제출 심의 정보</c:set>
<!-- Page Body -->
<div class="card">
<!-- 입력 영역 -->

@ -1,12 +1,12 @@
<%@ page language="java" contentType="text/html; charset=UTF-8" pageEncoding="UTF-8" isELIgnored="false" session="false"%>
<%@ include file="/WEB-INF/jsp/include/taglib.jsp"%>
<c:set var="prefixName" scope="request">단속 재등록</c:set>
<!-- inner page html -->
<div class="content-wrapper">
<!-- Content -->
<div class="container-xxl flex-grow-1 px-0">
<c:set var="prefixName" scope="request">단속 재등록</c:set>
<!-- Page Body -->
<div class="card">
<div class="wrapper-list">

@ -29,10 +29,10 @@
<button type="button" class="btn btn-excel w-px-120" id="btnExcel--${pageName}" title="엑셀">
엑셀
</button>
<button type="button" class="btn btn-primary w-px-120" id="btnLinkNxrpIndivA01--${pageName}" title="세외수입 과태료 대장 단속 정보 등록">
<button type="button" class="btn btn-primary w-px-120" id="btnLinkNxrpIndivA01--${pageName}" title="세외수입 과태료대장 등록">
과태료대장 등록
</button>
<button type="button" class="btn btn-primary w-px-120" id="btnLinkNxrpIndivA03--${pageName}" title="세외수입 과태료 대장 등록 자료 상세 조회">
<button type="button" class="btn btn-primary w-px-120" id="btnLinkNxrpIndivA03--${pageName}" title="세외수입 과태료대장 상세조회">
과태료대장 상세조회
</button>
<button type="button" class="btn btn-primary w-px-120" id="btnCreateSndngLink--${pageName}" title="우편통합 발송">
@ -303,7 +303,7 @@
if (!params) return;
ajax.post({
url : wctx.url("/" + params.taskSeCd + $P.PrefixUrl + "/080/nxrpA01List.do");
url : wctx.url("/" + params.taskSeCd + $P.PrefixUrl + "/080/nxrpA01List.do")
, data : params || {}
, success : resp => {
// S 또는 F 를 버튼 title 로 변경하여 메시지 출력
@ -322,7 +322,7 @@
if (!params) return;
ajax.post({
url : wctx.url("/" + params.taskSeCd + $P.PrefixUrl + "/080/nxrpA03List.do");
url : wctx.url("/" + params.taskSeCd + $P.PrefixUrl + "/080/nxrpA03List.do")
, data : params || {}
, success : resp => {
// S 또는 F 를 버튼 title 로 변경하여 메시지 출력

@ -80,8 +80,8 @@
<button type="button" class="btn btn-primary w-px-120" id="btnCreateWrng--${pageName}" title="계고 등록">
계고 등록
</button>
<button type="button" class="btn btn-primary w-px-120" id="btnCreateLevyExcl--${pageName}" title="부과 등록">
부과 등록
<button type="button" class="btn btn-primary w-px-120" id="btnCreateLevyExcl--${pageName}" title="부과제외 등록">
부과제외 등록
</button>
<button type="button" class="btn btn-primary w-px-120" id="btnUpdateLevyExcl--${pageName}" title="부과제외 수정">
부과제외 수정

Loading…
Cancel
Save