1. 사전통지 발송 수정.

2. 불필요 소스 제거.
3. 주석 수정.
main
jjh 5 months ago
parent 966c5a6718
commit b2f544bbea

@ -1,7 +1,6 @@
package cokr.xit.fims.cmmn.dao;
import java.util.List;
import java.util.Map;
import org.egovframe.rte.psl.dataaccess.mapper.Mapper;

@ -1,7 +1,6 @@
package cokr.xit.fims.excl.dao;
import java.util.List;
import java.util.Map;
import org.egovframe.rte.psl.dataaccess.mapper.Mapper;

@ -1,7 +1,6 @@
package cokr.xit.fims.excl.dao;
import java.util.List;
import java.util.Map;
import org.egovframe.rte.psl.dataaccess.mapper.Mapper;

@ -153,7 +153,7 @@ public class LevyExclBean extends AbstractBean {
rdcamt.setRdcamtRsnCd(levyExcl.getLevyExclRsnCd()); // 감액 사유 코드
rtnMsg = rdcamtBean.createRdcamt(rdcamt);
if (rtnMsg.contains("[F]")) {
if (!rtnMsg.contains("[S]")) {
throw new RuntimeException(rtnMsg.replace("[F]", "")); // 예외를 발생시켜서 DB Rollback
}
}

@ -275,7 +275,7 @@ public class OpnnSbmsnBean extends AbstractBean {
rduct.setEtcCn("의견제출 심의 처리에 의한 감경 등록");
rtnMsg = rductBean.createRduct(rduct);
if (rtnMsg.contains("[F]")) {
if (!rtnMsg.contains("[S]")) {
throw new RuntimeException("의견제출 심의 처리 중 과태료 감경 등록(수정)에 실패하였습니다."); // 예외를 발생시켜서 DB Rollback
}
} else {
@ -286,7 +286,7 @@ public class OpnnSbmsnBean extends AbstractBean {
rduct.setDelRsn("의견제출 심의 처리에 의한 감경 삭제");
rtnMsg = rductBean.removeRduct(rduct);
if (rtnMsg.contains("[F]")) {
if (!rtnMsg.contains("[S]")) {
throw new RuntimeException("의견제출 심의 처리 중 과태료 감경 등록(수정)에 실패하였습니다."); // 예외를 발생시켜서 DB Rollback
}
}
@ -409,7 +409,7 @@ public class OpnnSbmsnBean extends AbstractBean {
// 과태료 감경(TB_RDUCT) 대장을 삭제한다.
rtnMsg = rductBean.removeRduct(rduct);
if (rtnMsg.contains("[F]")) {
if (!rtnMsg.contains("[S]")) {
throw new RuntimeException("의견제출 심의 처리 중 과태료 감경 등록(수정)에 실패하였습니다."); // 예외를 발생시켜서 DB Rollback
}
}

@ -140,8 +140,9 @@ public class LevyBean extends AbstractBean {
levy.setFrstDudtYmd(req.getDudtYmd()); // 최초 납기 일자
levy.setDudtYmd(req.getDudtYmd()); // 납기 일자
// 사전부과 정보를 부과 대장에 등록한다.
rtnMsg = createRductLevy(levy);
if (rtnMsg.contains("[F]")) {
if (!rtnMsg.contains("[S]")) {
throw new RuntimeException(rtnMsg);
}
}

@ -1,7 +1,6 @@
package cokr.xit.fims.payer.dao;
import java.util.List;
import java.util.Map;
import org.egovframe.rte.psl.dataaccess.mapper.Mapper;

@ -217,7 +217,7 @@ public class RcvmtBean extends AbstractBean {
// 수납 취소
rtnMsg = updateRcvmtCancle(rcvmt);
if (rtnMsg.contains("[F]")) {
if (!rtnMsg.contains("[S]")) {
throw new RuntimeException(rtnMsg); // 예외를 발생시켜서 DB Rollback
}

@ -40,6 +40,7 @@ public class SndbQuery extends CmmnQuery {
private String schRtpyrNm; // 납부자(TB_PAYER)_납부자 명
private String schSndngYmdFrom; // 발송(TB_SNDNG)_발송 일자 시작
private String schSndngYmdTo; // 발송(TB_SNDNG)_발송 일자 종료
private String schSndngRegSeCd; // 발송(TB_SNDNG)_발송 등록 구분 코드
private String schDlvrYmdFrom; // 발송상세(TB_SNDNG_DTL)_배달 일자 시작
private String schDlvrYmdTo; // 발송상세(TB_SNDNG_DTL)_배달 일자 종료
private String schSvbtcYmdFrom; // 공시송달(TB_SVBTC)_공시송달 일자 시작
@ -279,6 +280,15 @@ public class SndbQuery extends CmmnQuery {
return self();
}
public String getSchSndngRegSeCd() {
return ifEmpty(schSndngRegSeCd, () -> null);
}
public <T extends SndbQuery> T setSchSndngRegSeCd(String schSndngRegSeCd) {
this.schSndngRegSeCd = schSndngRegSeCd;
return self();
}
public String getSchDlvrYmdFrom() {
return ifEmpty(schDlvrYmdFrom, () -> null);
}

@ -1,7 +1,6 @@
package cokr.xit.fims.sndb.dao;
import java.util.List;
import java.util.Map;
import org.egovframe.rte.psl.dataaccess.mapper.Mapper;

@ -330,11 +330,8 @@ public class SndngBean extends AbstractBean {
// 발송 대장에 등록한다.
sndng.setDeptCd(userInfo.string("DEPT_CD")); // 부서 코드
sndng.setVltnId(sndng.getVltnId()); // 위반 ID
if (sndng.getTnocs() == 1) {
sndng.setSndngRegSeCd("02"); // 발송 등록 구분 코드 - 개별
} else {
sndng.setSndngRegSeCd("01"); // 발송 등록 구분 코드 - 일괄
if (sndng.getSndngRegSeCd() == null) {
sndng.setSndngRegSeCd("02"); // 발송 등록 구분 코드(FIM067) - 02: 개별
}
if (sndng.getResndYn() == null) {
sndng.setResndYn("N"); // 재발송 여부
@ -342,7 +339,7 @@ public class SndngBean extends AbstractBean {
if (sndng.getDelYn() == null) {
sndng.setDelYn("N"); // 삭제 여부
}
sndng.setSndngSttsCd("00"); // 발송 상태 코드(FIM049) - 00 발송 준비
sndng.setSndngSttsCd("00"); // 발송 상태 코드(FIM049) - 00: 발송 준비
// 발송(TB_SNDNG) 대장을 등록한다.
rtnNocs = sndngMapper.insertSndng(sndng);
@ -355,7 +352,7 @@ public class SndngBean extends AbstractBean {
rtnMsg = createAdvntceSndngDtl(sndng, advntceTrgtList.get(iLoop).string("CRDN_ID"));
// 메시지 확인
if (!rtnMsg.contains("[S]")) {
throw new RuntimeException(rtnMsg); // 예외를 발생시켜서 DB Rollback
throw new RuntimeException(rtnMsg.replace("[F]", "사전통지")); // 예외를 발생시켜서 DB Rollback
}
}
@ -373,9 +370,9 @@ public class SndngBean extends AbstractBean {
// 변수 선언
boolean rtnScs = false; // 처리 결과 여부
int rtnNocs = -1; // 처리 결과 건수
String rtnMsg = "[F] "; // 처리 결과 메시지
String rtnMsg = ""; // 처리 결과 메시지
// 단속, 납부자 대장을 조회 한다.
// 단속(TB_CRDN), 납부자(TB_PAYER), 부과(TB_LEVY) 대장을 조회 한다.
DataObject crdnPayerInfo = sndngMapper.selectCrdnPayerInfo(crdnId);
if (crdnPayerInfo == null) {
@ -393,6 +390,22 @@ public class SndngBean extends AbstractBean {
}
if ("BPV,PVS".contains(crdnPayerInfo.string("TASK_SE_CD"))) {
// 사전 감경부과가 되지 않았다면.. 감경부과를 등록한다.
if (crdnPayerInfo.string("LEVY_ID").equals("")) {
Levy levy = new Levy();
levy.setSggCd(crdnPayerInfo.string("SGG_CD")); // 시군구 코드
levy.setTaskSeCd(crdnPayerInfo.string("TASK_SE_CD")); // 업무 구분 코드
levy.setCrdnId(crdnPayerInfo.string("CRDN_ID")); // 단속 ID
levy.setLevyYmd(sndng.getSndngYmd()); // 부과 일자
levy.setFrstDudtYmd(sndng.getSndngEndYmd()); // 최초 납기 일자
levy.setDudtYmd(sndng.getSndngEndYmd()); // 납기 일자
// 부과(TB_LEVY) 대장을 등록한다.
rtnMsg = levyBean.createRductLevy(levy);
// 단속(TB_CRDN), 납부자(TB_PAYER), 부과(TB_LEVY) 대장을 조회 한다.
crdnPayerInfo = sndngMapper.selectCrdnPayerInfo(crdnId);
} else {
// 부과 가산금 확인
if (crdnPayerInfo.number("LEVY_ADAMT").intValue() != 0) {
rtnMsg = "[F] 발송상세 등록 작업중 부과 가산금액이 0원이 아닙니다."
@ -425,7 +438,6 @@ public class SndngBean extends AbstractBean {
return rtnMsg;
}
// 부과일자, 최초납기일자, 납기일자를 변경한다.
Levy levy = new Levy();
levy.setLevyId(crdnPayerInfo.string("LEVY_ID")); // 부과 ID
levy.setLevyYmd(sndng.getSndngYmd()); // 부과 일자
@ -435,11 +447,13 @@ public class SndngBean extends AbstractBean {
levy.setLevyPcptax(crdnPayerInfo.number("ADVNTCE_AMT").intValue()); // 본세 금액
levy.setSumAmt(crdnPayerInfo.number("ADVNTCE_AMT").intValue()); // 합계 금액
// 부과(TB_LEVY) 대장에 부과일자, 최초납기일자, 납기일자를 수정한다.
rtnMsg = levyBean.updateRductLevyYmd(levy);
if (!rtnMsg.contains("[S]")) {
throw new RuntimeException(rtnMsg.replace("[F]", "사전통지 발송상세 등록 작업중 ")); // 예외를 발생시켜서 DB Rollback
}
}
}
// 발송 상세(TB_SNDNG_DTL)
SndngDtl sndngDtl = new SndngDtl();
@ -653,7 +667,7 @@ public class SndngBean extends AbstractBean {
rtnMsg = createNhtSndngDtl(sndng, nhtTrgtList.get(iLoop).string("CRDN_ID"));
// 메시지 확인
if (!rtnMsg.contains("[S]")) {
throw new RuntimeException(rtnMsg); // 예외를 발생시켜서 DB Rollback
throw new RuntimeException(rtnMsg.replace("[F]", "고지서")); // 예외를 발생시켜서 DB Rollback
}
}

@ -121,7 +121,6 @@ public class SndngDtlBean extends AbstractBean {
public String setNxrpIndivA01List(SndngDtl sndngDtl) {
// 변수 선언
int rtnNocs = -1; // 처리 결과 건수
String rtnMsg = ""; // 처리 결과 메시지
// 발송 상세 상태 코드(SNDNG_DTL_STTS_CD) 가 처리전(00)인 자료만 처리
if (sndngDtl.getSndngDtlSttsCd().equals("00")) {

@ -67,7 +67,7 @@ public class SvbtcServiceBean extends AbstractServiceBean implements SvbtcServic
@Override
public String removeSvbtc(Svbtc svbtc) {
// 변수 선언
String rtnMsg = "[F] "; // 처리 결과 메시지
String rtnMsg = ""; // 처리 결과 메시지
// 공시송달 Id 및 공시송달 Ids 확인하여 null이면 종료
if (svbtc.getSvbtcId() == null && svbtc.getSvbtcIds() == null) {
@ -93,7 +93,7 @@ public class SvbtcServiceBean extends AbstractServiceBean implements SvbtcServic
// 공시송달 삭제 호출
rtnMsg = svbtcBean.removeSvbtc(svbtc);
// 오류가 발생하였으면 종료..
if (rtnMsg.contains("[F]")) {
if (!rtnMsg.contains("[S]")) {
return rtnMsg;
}
}

@ -338,7 +338,7 @@ public class Sndb01Controller extends ApplicationController {
ManagedUser managedUser = (ManagedUser)currentUser().getUser();
// View(jsp)에서 사용할 공통코드를 조회
Map<String, List<CommonCode>> commonCodes = getCodesOf("FIM054");
Map<String, List<CommonCode>> commonCodes = getCodesOf("FIM054", "FIM067");
return mav
.addObject("pageName", "sndb01030") // View(jsp)에서 사용할 id 뒤에 붙일 suffix
@ -346,6 +346,7 @@ public class Sndb01Controller extends ApplicationController {
.addObject("infoPrefixUrl", CLASS_URL) // prefixUrl
.addObject("sggCd", managedUser.getOrgID()) // 시군구 코드(SGG_CD)
.addObject("taskListForSgg", stngBean.filterTaskSectionCodeForSgg(commonCodes.get("FIM054"))) // 시군구에서 사용하는 업무 목록
.addObject("FIM067List", commonCodes.get("FIM067")) // 발송 등록 구분 코드(SNDNG_REG_SE_CD)
;
}
@ -669,7 +670,7 @@ public class Sndb01Controller extends ApplicationController {
ManagedUser managedUser = (ManagedUser)currentUser().getUser();
// View(jsp)에서 사용할 공통코드를 조회
Map<String, List<CommonCode>> commonCodes = getCodesOf("FIM054");
Map<String, List<CommonCode>> commonCodes = getCodesOf("FIM054", "FIM067");
return mav
.addObject("pageName", "sndb01070") // View(jsp)에서 사용할 id 뒤에 붙일 suffix
@ -677,6 +678,7 @@ public class Sndb01Controller extends ApplicationController {
.addObject("infoPrefixUrl", CLASS_URL) // prefixUrl
.addObject("sggCd", managedUser.getOrgID()) // 시군구 코드(SGG_CD)
.addObject("taskListForSgg", stngBean.filterTaskSectionCodeForSgg(commonCodes.get("FIM054"))) // 시군구에서 사용하는 업무 목록
.addObject("FIM067List", commonCodes.get("FIM067")) // 발송 등록 구분 코드(SNDNG_REG_SE_CD)
;
}

@ -679,6 +679,7 @@ public class Sprt01Controller extends ApplicationController {
List<DataObject> dataObjectList0 = integrationSearchMapper.selectIntegrationDataList(sprtQuery);
SndbQuery sndbQuery = new SndbQuery();
sndbQuery.setCrdnIds(crdnIds);
sndng.setSndngRegSeCd("02");
sndng.setSndngSeCd("02");
sndng.setTnocs(crdnIds.length);
sndng.setGramt(CmmnUtil.sumByKey(dataObjectList0, "FFNLG_AMT"));
@ -694,11 +695,10 @@ public class Sprt01Controller extends ApplicationController {
sndng.setSndngEndYmd(sndngEndYmd);
DataObject first = dataObjectList0.get(0);
sndng.setTtlNm(first.string("TASK_SE_NM")+" "+first.string("VLTN_ARTCL")+" "+"사전통지서");
sndng.setTtlNm(first.string("TASK_SE_NM")+" "+"사전통지서");
sndng.setResndYn("N");
String insertSndngResult = sndngBean.createAdvntceSndngList(sndbQuery, sndng);
if(insertSndngResult.contains("[F]")) {
if(!insertSndngResult.contains("[S]")) {
throw new RuntimeException(insertSndngResult);
}

@ -91,6 +91,9 @@
<if test="schSndngYmdTo != null">
AND S.SNDNG_YMD <![CDATA[<=]]> #{schSndngYmdTo} <!-- 발송 일자 종료 -->
</if>
<if test="schSndngRegSeCd != null">
AND S.SNDNG_REG_SE_CD = #{schSndngRegSeCd} <!-- 발송 등록 구분 코드 -->
</if>
<if test="sndngSeCd != null">
AND S.SNDNG_SE_CD = #{sndngSeCd} <!-- 발송 구분 코드 -->
</if>
@ -150,8 +153,6 @@
<when test="by == 'taskSeCd'"> S.TASK_SE_CD </when>
<when test="by == 'sndngRegSeCd'"> S.SNDNG_REG_SE_CD </when>
<when test="by == 'sndngSeCd'"> S.SNDNG_SE_CD </when>
<when test="by == 'levyBgngYmd'"> S.LEVY_BGNG_YMD </when>
<when test="by == 'levyEndYmd'"> S.LEVY_END_YMD </when>
<when test="by == 'sndngYmd'"> S.SNDNG_YMD </when>
<when test="by == 'dudtYmd'"> S.DUDT_YMD </when>
<when test="by == 'ttlNm'"> S.TTL_NM </when>
@ -175,7 +176,7 @@
<include refid="selectList" />
<where>
<if test="sndngIds != null">
AND S.SNDNG_ID IN ( <!-- 발송 IDs -->
AND S.SNDNG_ID IN ( <!-- 발송 Ids -->
<foreach collection="sndngIds" item="sndngId" separator=","> #{sndngId} </foreach>
)
</if>
@ -278,7 +279,7 @@
AND C.TASK_SE_CD = #{taskSeCd} <!-- 업무 구분 코드 -->
<if test="crdnIds != null">
AND C.CRDN_ID IN (
<foreach collection="crdnIds" item="crdnId" separator=","> #{crdnId} </foreach> <!-- 단속 IDs -->
<foreach collection="crdnIds" item="crdnId" separator=","> #{crdnId} </foreach> <!-- 단속 Ids -->
)
</if>
<if test="crdnId != null">
@ -497,7 +498,7 @@
AND C.TASK_SE_CD = #{taskSeCd} <!-- 업무 구분 코드 -->
AND (CC.CVLCPT_PRCS_CD IS NULL OR CC.CVLCPT_PRCS_CD <![CDATA[ <> ]]> '00') <!-- 민원 처리 코드 -->
<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>
@ -677,7 +678,7 @@
WHERE L.SGG_CD = #{sggCd} <!-- 시군구 코드 -->
AND L.TASK_SE_CD = #{taskSeCd} <!-- 업무 구분 코드 -->
<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>
@ -685,7 +686,7 @@
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>
@ -871,7 +872,7 @@
<include refid="selectCrdnPayer" />
<choose>
<when test="crdnIds != null">
WHERE C.CRDN_ID IN ( <!-- 단속 IDs -->
WHERE C.CRDN_ID IN ( <!-- 단속 Ids -->
<foreach collection="crdnIds" item="crdnId" separator=","> #{crdnId} </foreach>
)
</when>

@ -143,9 +143,6 @@
$P.control.save = (info) => {
if (!info) return;
// 메인에서 받은 검색 조건과 객체를 합친다.
let params = $.extend({}, $P.mainQuery, info);
ajax.post({
url: $P.control.urls.create
, data: params || {}
@ -169,11 +166,14 @@
// validate 확인
if (!customValidate($("#frmEdit--${pageName}").find("input, select, textarea"))) return;
// 메인에서 받은 검색 조건과 객체를 합친다.
let params = $.extend({}, $P.mainQuery, $P.formFields.get());
dialog.alert({
content: "현재 " + $P.control.prefixName + " 정보를 저장하시겠습니까?"
, init: () => { setDialogZindex(); }
, onOK: () => {
$P.control.save($P.formFields.get()); // formFields
$P.control.save(params); // formFields
}
});
}

@ -336,15 +336,16 @@
// validate 확인
if (!customValidate($("#frmEdit--${pageName}").find("input, select, textarea"))) return;
// 저장 파라미터 설정
let info = $P.formFields.get();
// 검색조건과 저장 파라미터 객체를 합친다.
let params = $.extend({}, $P.mainQuery, info);
let params = $.extend({}, $P.mainQuery, $P.formFields.get());
params.sndngRegSeCd = "01"; // 발송 등록 구분 코드(SNDNG_REG_SE_CD) - 01: 일괄
dialog.alert({
content: "현재 " + $P.control.prefixName + " 정보를 저장하시겠습니까?"
, init: () => { setDialogZindex(); }
, onOK: () => { $P.control.save(params); }
, onOK: () => {
$P.control.save(params);
}
});
}

@ -60,6 +60,18 @@
<button type="button" class="bx bx-sm bx-calendar bg-white"></button>
</span>
</div>
<!-- 발송 등록 구분 코드 -->
<div class="col-6">
<label class="form-label fw-bold form-search-title w-px-120 text-end" for="schSndngRegSeCd--${pageName}">등록구분</label>
<select class="form-select w-px-80" id="schSndngRegSeCd--${pageName}" name="schSndngRegSeCd">
<c:forEach items="${FIM067List}" var="item">
<option value="${item.code}">${item.value}</option>
</c:forEach>
</select>
</div>
<!-- -->
<div class="col-6">
</div>
<!-- 동적검색 -->
<div class="col-6">
<input type="hidden" id="by--${pageName}" name="by" />

@ -330,15 +330,16 @@
// validate 확인
if (!customValidate($("#frmEdit--${pageName}").find("input, select, textarea"))) return;
// 저장 파라미터 설정
let info = $P.formFields.get();
// 검색조건과 저장 파라미터 객체를 합친다.
let params = $.extend({}, $P.mainQuery, info);
let params = $.extend({}, $P.mainQuery, $P.formFields.get());
params.sndngRegSeCd = "01"; // 발송 등록 구분 코드(SNDNG_REG_SE_CD) - 01: 일괄
dialog.alert({
content: "현재 " + $P.control.prefixName + " 정보를 저장하시겠습니까?"
, init: () => { setDialogZindex(); }
, onOK: () => { $P.control.save(params); }
, onOK: () => {
$P.control.save(params);
}
});
}

@ -60,6 +60,18 @@
<button type="button" class="bx bx-sm bx-calendar bg-white"></button>
</span>
</div>
<!-- 발송 등록 구분 코드 -->
<div class="col-6">
<label class="form-label fw-bold form-search-title w-px-120 text-end" for="schSndngRegSeCd--${pageName}">등록구분</label>
<select class="form-select w-px-80" id="schSndngRegSeCd--${pageName}" name="schSndngRegSeCd">
<c:forEach items="${FIM067List}" var="item">
<option value="${item.code}">${item.value}</option>
</c:forEach>
</select>
</div>
<!-- -->
<div class="col-6">
</div>
<!-- 동적검색 -->
<div class="col-6">
<input type="hidden" id="by--${pageName}" name="by" />

Loading…
Cancel
Save