|
|
@ -1,5 +1,7 @@
|
|
|
|
package cokr.xit.fims.excl.service.bean;
|
|
|
|
package cokr.xit.fims.excl.service.bean;
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
import static org.junit.jupiter.api.Assertions.assertDoesNotThrow;
|
|
|
|
|
|
|
|
|
|
|
|
import java.util.HashMap;
|
|
|
|
import java.util.HashMap;
|
|
|
|
import java.util.List;
|
|
|
|
import java.util.List;
|
|
|
|
import java.util.Map;
|
|
|
|
import java.util.Map;
|
|
|
@ -154,139 +156,167 @@ public class Excl01ServiceBean extends AbstractServiceBean implements Excl01Serv
|
|
|
|
return retMap;
|
|
|
|
return retMap;
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
@Override
|
|
|
|
|
|
|
|
public boolean removeLevyExclusionList(Excl01 excl01) {
|
|
|
|
|
|
|
|
// 변수 선언
|
|
|
|
|
|
|
|
boolean retSuccess = false; // DB 처리 결과
|
|
|
|
|
|
|
|
Excl01 infoLevyExcl = new Excl01(); // 부과제외(TB_LEVY_EXCL) 조회
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
// 부과제외ID 건수를 확인하여 1건이하면.. 종료
|
|
|
|
|
|
|
|
if (excl01.getLevyExclIDs().length < 1 ) {
|
|
|
|
|
|
|
|
return retSuccess;
|
|
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
// 부과제외ID 만큼 반복..
|
|
|
|
|
|
|
|
for (int iLoop = 0; iLoop < excl01.getLevyExclIDs().length; iLoop++) {
|
|
|
|
|
|
|
|
infoLevyExcl.setLevyExclId(excl01.getLevyExclIDs()[iLoop]); // 부과제외 ID
|
|
|
|
|
|
|
|
infoLevyExcl.setDelRsn(excl01.getDelRsn()); // 삭제 사유
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
retSuccess = removeLevyExclusion(infoLevyExcl);
|
|
|
|
|
|
|
|
if (!retSuccess) {
|
|
|
|
|
|
|
|
return retSuccess;
|
|
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
// 처리 성공
|
|
|
|
|
|
|
|
retSuccess = true;
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
return retSuccess;
|
|
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
@Override
|
|
|
|
@Override
|
|
|
|
public boolean removeLevyExclusion(Excl01 excl01) {
|
|
|
|
public boolean removeLevyExclusion(Excl01 excl01) {
|
|
|
|
// 변수 선언
|
|
|
|
// 변수 선언
|
|
|
|
boolean retSuccess = false; // DB 처리 결과
|
|
|
|
boolean retSuccess = false; // DB 처리 결과
|
|
|
|
|
|
|
|
|
|
|
|
String levyExclID = "";
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
DataObject infoCrdnSttsCd = new DataObject(); // 단속(TB_CRDN) 조회
|
|
|
|
DataObject infoCrdnSttsCd = new DataObject(); // 단속(TB_CRDN) 조회
|
|
|
|
Excl01 updtCrdnSttsCd = new Excl01(); // 단속(TB_CRDN) 수정
|
|
|
|
|
|
|
|
DataObject infoCrdnSttsHstry = new DataObject(); // 단속상태이력(TB_CRDN_STTS_HSTRY) 조회
|
|
|
|
DataObject infoCrdnSttsHstry = new DataObject(); // 단속상태이력(TB_CRDN_STTS_HSTRY) 조회
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
Excl01 updtCrdnSttsCd = new Excl01(); // 단속(TB_CRDN) 수정
|
|
|
|
CrdnSttsHstry deltCrdnSttsHstry = new CrdnSttsHstry(); // 단속상태이력(TB_CRDN_STTS_HSTRY) 삭제
|
|
|
|
CrdnSttsHstry deltCrdnSttsHstry = new CrdnSttsHstry(); // 단속상태이력(TB_CRDN_STTS_HSTRY) 삭제
|
|
|
|
|
|
|
|
|
|
|
|
// 부과제외 삭제
|
|
|
|
// 부과제외(TB_LEVY_EXCL) + 단속(TB_CRDN) 자료 조회
|
|
|
|
|
|
|
|
infoCrdnSttsCd = excl01Bean.getLevyExclusionInfo(new Excl01Query().setLevyExclId(excl01.getLevyExclId()));
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
// 단속 상태 이력(TB_CRDN_STTS_HSTRY) 대장에서 부과제외 자료 조회
|
|
|
|
|
|
|
|
infoCrdnSttsHstry = crdnSttsHstryBean.getCrdnSttsHstryInfo(infoCrdnSttsCd.string("CRDN_ID"));
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
// 단속 상태 비교..
|
|
|
|
|
|
|
|
if (!infoCrdnSttsHstry.string("CRDN_STTS_CD").equals(infoCrdnSttsCd.string("CRDN_STTS_CD"))) {
|
|
|
|
|
|
|
|
return retSuccess;
|
|
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
// 부과제외(TB_LEVY_EXCL) 삭제
|
|
|
|
retSuccess = excl01Bean.removeLevyExclusion(excl01);
|
|
|
|
retSuccess = excl01Bean.removeLevyExclusion(excl01);
|
|
|
|
if (!retSuccess) {
|
|
|
|
if (!retSuccess) {
|
|
|
|
return retSuccess;
|
|
|
|
return retSuccess;
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
for (int iLoop = 0; iLoop < excl01.getLevyExclIDs().length; iLoop++) {
|
|
|
|
// 단속 상태 이력(TB_CRDN_STTS_HSTRY) 삭제
|
|
|
|
levyExclID = excl01.getLevyExclIDs()[iLoop];
|
|
|
|
deltCrdnSttsHstry.setSttsHstryId(infoCrdnSttsHstry.string("STTS_HSTRY_ID"));
|
|
|
|
|
|
|
|
|
|
|
|
// 부과제외(TB_LEVY_EXCL) + 단속(TB_CRDN) 자료 조회
|
|
|
|
|
|
|
|
infoCrdnSttsCd = excl01Bean.getLevyExclusionInfo(new Excl01Query().setLevyExclId(levyExclID));
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
// 단속 상태 이력(TB_CRDN_STTS_HSTRY) 대장에서 부과제외 자료 조회
|
|
|
|
|
|
|
|
infoCrdnSttsHstry = crdnSttsHstryBean.getCrdnSttsHstryInfo(infoCrdnSttsCd.string("CRDN_ID"));
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
// 단속 상태 비교..
|
|
|
|
retSuccess = crdnSttsHstryBean.remove(deltCrdnSttsHstry);
|
|
|
|
if (!infoCrdnSttsHstry.string("CRDN_STTS_CD").equals(infoCrdnSttsCd.string("CRDN_STTS_CD"))) {
|
|
|
|
if (!retSuccess) {
|
|
|
|
return retSuccess;
|
|
|
|
// if (retSuccess) {
|
|
|
|
}
|
|
|
|
// throw new RuntimeException("오류"); // 예외 발생하여 롤백..
|
|
|
|
|
|
|
|
return retSuccess;
|
|
|
|
// 단속 상태 이력(TB_CRDN_STTS_HSTRY) 삭제
|
|
|
|
}
|
|
|
|
deltCrdnSttsHstry.setSttsHstryId(infoCrdnSttsHstry.string("STTS_HSTRY_ID"));
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
retSuccess = crdnSttsHstryBean.remove(deltCrdnSttsHstry);
|
|
|
|
|
|
|
|
if (!retSuccess) {
|
|
|
|
|
|
|
|
return retSuccess;
|
|
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
// 단속(TB_CRDN) 대장 상태 코드 수정
|
|
|
|
// 단속(TB_CRDN) 대장 상태 코드 수정
|
|
|
|
updtCrdnSttsCd.setCrdnId(infoCrdnSttsHstry.string("CRDN_ID"));
|
|
|
|
updtCrdnSttsCd.setCrdnId(infoCrdnSttsHstry.string("CRDN_ID"));
|
|
|
|
updtCrdnSttsCd.setCrdnSttsCd(infoCrdnSttsHstry.string("BFR_STTS_CD"));
|
|
|
|
updtCrdnSttsCd.setCrdnSttsCd(infoCrdnSttsHstry.string("BFR_STTS_CD"));
|
|
|
|
updtCrdnSttsCd.setCrdnSttsChgDt(infoCrdnSttsHstry.string("BFR_STTS_CHG_DT"));
|
|
|
|
updtCrdnSttsCd.setCrdnSttsChgDt(infoCrdnSttsHstry.string("BFR_STTS_CHG_DT"));
|
|
|
|
|
|
|
|
|
|
|
|
retSuccess = excl01Bean.updateCrackdownStatus(updtCrdnSttsCd);
|
|
|
|
retSuccess = excl01Bean.updateCrackdownStatus(updtCrdnSttsCd);
|
|
|
|
if (!retSuccess) {
|
|
|
|
if (!retSuccess) {
|
|
|
|
return retSuccess;
|
|
|
|
return retSuccess;
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
/*
|
|
|
|
// 추가필요 20230718 조재현 //////////////////////////////////////////////////////////
|
|
|
|
* // 추가필요 20230718 조재현 //////////////////////////////////////////////////////////
|
|
|
|
// 부과제외구분이 비부과(서손), 계고일 경우
|
|
|
|
if GB <> 3 then
|
|
|
|
if (excl01.getLevyExclSeCd().equals("1") || excl01.getLevyExclSeCd().equals("2")) {
|
|
|
|
begin
|
|
|
|
/*
|
|
|
|
//서손 취소하는데, cp_answer의 처리상태가 답변대상 또는 서손의 답변 미대상 자료이면 원래 초기상태로 되돌린다
|
|
|
|
if GB <> 3 then
|
|
|
|
with qryAnswer_Get do begin
|
|
|
|
begin
|
|
|
|
Close;
|
|
|
|
//서손 취소하는데, cp_answer의 처리상태가 답변대상 또는 서손의 답변 미대상 자료이면 원래 초기상태로 되돌린다
|
|
|
|
ParamByName('AS_MMCODE').AsString :=MainInfo.mm_code;
|
|
|
|
with qryAnswer_Get do begin
|
|
|
|
Open;
|
|
|
|
Close;
|
|
|
|
if (not IsEmpty) then
|
|
|
|
ParamByName('AS_MMCODE').AsString :=MainInfo.mm_code;
|
|
|
|
begin
|
|
|
|
Open;
|
|
|
|
{
|
|
|
|
if (not IsEmpty) then
|
|
|
|
old_state := FieldByName('AS_STATE').AsString;
|
|
|
|
begin
|
|
|
|
if (FieldByName('AS_STATE').AsString = ANSWER_STATE_ANSWER_FOR_CANCEL) or
|
|
|
|
{
|
|
|
|
(FieldByName('AS_STATE').AsString = ANSWER_STATE_CANCEL_IGNORE) then
|
|
|
|
old_state := FieldByName('AS_STATE').AsString;
|
|
|
|
begin
|
|
|
|
if (FieldByName('AS_STATE').AsString = ANSWER_STATE_ANSWER_FOR_CANCEL) or
|
|
|
|
qryAnswer_SetState.ParamByName('AS_STATE').AsString := ANSWER_STATE_FIRST;
|
|
|
|
(FieldByName('AS_STATE').AsString = ANSWER_STATE_CANCEL_IGNORE) then
|
|
|
|
qryAnswer_SetState.ParamByName('AS_STATE_DT').AsString := sDateTime;
|
|
|
|
begin
|
|
|
|
qryAnswer_SetState.ParamByName('AS_MMCODE').AsString := MainInfo.mm_code;
|
|
|
|
qryAnswer_SetState.ParamByName('AS_STATE').AsString := ANSWER_STATE_FIRST;
|
|
|
|
qryAnswer_SetState.ExecSQL;
|
|
|
|
qryAnswer_SetState.ParamByName('AS_STATE_DT').AsString := sDateTime;
|
|
|
|
end;
|
|
|
|
qryAnswer_SetState.ParamByName('AS_MMCODE').AsString := MainInfo.mm_code;
|
|
|
|
}
|
|
|
|
qryAnswer_SetState.ExecSQL;
|
|
|
|
|
|
|
|
end;
|
|
|
|
//2017.01.17 서손취소를 하면 무조건 초기상태로 되게
|
|
|
|
}
|
|
|
|
{
|
|
|
|
|
|
|
|
qryAnswer_SetState.ParamByName('AS_STATE').AsString := ANSWER_STATE_FIRST;
|
|
|
|
//2017.01.17 서손취소를 하면 무조건 초기상태로 되게
|
|
|
|
qryAnswer_SetState.ParamByName('AS_STATE_DT').AsString := sDateTime;
|
|
|
|
{
|
|
|
|
qryAnswer_SetState.ParamByName('AS_MMCODE').AsString := MainInfo.mm_code;
|
|
|
|
qryAnswer_SetState.ParamByName('AS_STATE').AsString := ANSWER_STATE_FIRST;
|
|
|
|
qryAnswer_SetState.ExecSQL;
|
|
|
|
qryAnswer_SetState.ParamByName('AS_STATE_DT').AsString := sDateTime;
|
|
|
|
}
|
|
|
|
qryAnswer_SetState.ParamByName('AS_MMCODE').AsString := MainInfo.mm_code;
|
|
|
|
|
|
|
|
qryAnswer_SetState.ExecSQL;
|
|
|
|
//20201203 UIJIN 재등록 자료가 서손>취소>차적조회 시에 사전통보 대상에 올라오지 않아서 추가..
|
|
|
|
}
|
|
|
|
if (MainInfo.MM_DLGB = '3') or
|
|
|
|
|
|
|
|
(MainInfo.MM_DLGB = '4') then
|
|
|
|
//20201203 UIJIN 재등록 자료가 서손>취소>차적조회 시에 사전통보 대상에 올라오지 않아서 추가..
|
|
|
|
as_state := ANSWER_STATE_CANCEL_COPY
|
|
|
|
if (MainInfo.MM_DLGB = '3') or
|
|
|
|
else
|
|
|
|
(MainInfo.MM_DLGB = '4') then
|
|
|
|
as_state := ANSWER_STATE_FIRST;
|
|
|
|
as_state := ANSWER_STATE_CANCEL_COPY
|
|
|
|
|
|
|
|
else
|
|
|
|
qryAnswer_Set.ParamByName('AS_POST_DT').AsString := '';
|
|
|
|
as_state := ANSWER_STATE_FIRST;
|
|
|
|
qryAnswer_Set.ParamByName('AS_STATE').AsString := as_state;
|
|
|
|
|
|
|
|
qryAnswer_Set.ParamByName('AS_TEXT').AsString := '';
|
|
|
|
qryAnswer_Set.ParamByName('AS_POST_DT').AsString := '';
|
|
|
|
qryAnswer_Set.ParamByName('AS_REUSER').AsInteger := 0;
|
|
|
|
qryAnswer_Set.ParamByName('AS_STATE').AsString := as_state;
|
|
|
|
qryAnswer_Set.ParamByName('AS_MMCODE').AsString := MainInfo.mm_code;
|
|
|
|
qryAnswer_Set.ParamByName('AS_TEXT').AsString := '';
|
|
|
|
qryAnswer_Set.ExecSQL;
|
|
|
|
qryAnswer_Set.ParamByName('AS_REUSER').AsInteger := 0;
|
|
|
|
|
|
|
|
qryAnswer_Set.ParamByName('AS_MMCODE').AsString := MainInfo.mm_code;
|
|
|
|
end;
|
|
|
|
qryAnswer_Set.ExecSQL;
|
|
|
|
end;
|
|
|
|
|
|
|
|
|
|
|
|
end;
|
|
|
|
|
|
|
|
end;
|
|
|
|
// 답변내용을 초기화,
|
|
|
|
|
|
|
|
// 답변대상이었다가 답변내용보기를 했다가 서손처리하면 답변내용이 이미 세팅되어 있으므로 초기화해야 한다.
|
|
|
|
|
|
|
|
// 서손사유 수정시도 답변내용보기를 했을 수 있으므로 초기화해야 한다.
|
|
|
|
// 답변내용을 초기화,
|
|
|
|
// 서손취소시도 답변내용이 부과 기본 내용으로 바꾸이야 하므로 초기화해야 한다.
|
|
|
|
// 답변대상이었다가 답변내용보기를 했다가 서손처리하면 답변내용이 이미 세팅되어 있으므로 초기화해야 한다.
|
|
|
|
with qryAnswer_SetTextNull do begin
|
|
|
|
// 서손사유 수정시도 답변내용보기를 했을 수 있으므로 초기화해야 한다.
|
|
|
|
ParamByName('AS_MMCODE').AsString := MainInfo.mm_code;
|
|
|
|
// 서손취소시도 답변내용이 부과 기본 내용으로 바꾸이야 하므로 초기화해야 한다.
|
|
|
|
ExecSQL;
|
|
|
|
with qryAnswer_SetTextNull do begin
|
|
|
|
end;
|
|
|
|
ParamByName('AS_MMCODE').AsString := MainInfo.mm_code;
|
|
|
|
|
|
|
|
ExecSQL;
|
|
|
|
|
|
|
|
end;
|
|
|
|
|
|
|
|
|
|
|
|
//표지정보 확인여부가 조회미대상이면 -> 미확인 으로
|
|
|
|
|
|
|
|
//혹시 차적조회가 안되었으면? 놔두자 차적조회되면 그 때 표지정보 BJ_Send가 처리할테니
|
|
|
|
|
|
|
|
if MainInfo.mm_carcheck = CARCHECK_STATE_IGNORE then
|
|
|
|
//표지정보 확인여부가 조회미대상이면 -> 미확인 으로
|
|
|
|
begin
|
|
|
|
//혹시 차적조회가 안되었으면? 놔두자 차적조회되면 그 때 표지정보 BJ_Send가 처리할테니
|
|
|
|
with qryMain_SetCarCheck do begin
|
|
|
|
if MainInfo.mm_carcheck = CARCHECK_STATE_IGNORE then
|
|
|
|
ParamByName('MM_CARCHECK').AsString := CARCHECK_STATE_BEFORE;
|
|
|
|
begin
|
|
|
|
ParamByName('MM_CODE').AsString := MainInfo.mm_code;
|
|
|
|
with qryMain_SetCarCheck do begin
|
|
|
|
ExecSQL;
|
|
|
|
ParamByName('MM_CARCHECK').AsString := CARCHECK_STATE_BEFORE;
|
|
|
|
end;
|
|
|
|
ParamByName('MM_CODE').AsString := MainInfo.mm_code;
|
|
|
|
if MainCD <> nil then
|
|
|
|
ExecSQL;
|
|
|
|
begin
|
|
|
|
end;
|
|
|
|
if MainCD.FindField('MM_CARCHECK') <> nil then
|
|
|
|
if MainCD <> nil then
|
|
|
|
begin
|
|
|
|
begin
|
|
|
|
MainCD.Edit;
|
|
|
|
if MainCD.FindField('MM_CARCHECK') <> nil then
|
|
|
|
MainCD.FieldByName('MM_CARCHECK').AsString := CARCHECK_STATE_BEFORE;
|
|
|
|
begin
|
|
|
|
MainCD.Post;
|
|
|
|
MainCD.Edit;
|
|
|
|
end;
|
|
|
|
MainCD.FieldByName('MM_CARCHECK').AsString := CARCHECK_STATE_BEFORE;
|
|
|
|
end;
|
|
|
|
MainCD.Post;
|
|
|
|
|
|
|
|
end;
|
|
|
|
end;
|
|
|
|
end;
|
|
|
|
|
|
|
|
|
|
|
|
end;
|
|
|
|
end;
|
|
|
|
*/
|
|
|
|
|
|
|
|
|
|
|
|
end;
|
|
|
|
|
|
|
|
*/
|
|
|
|
|
|
|
|
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|