설정추가(additionalTasks), 부과제외 등록 수정

main
mjkhan21 10 months ago
parent ab5ed11675
commit ae9df2da18

@ -12,7 +12,6 @@ import lombok.Setter;
@Getter
@Setter
public class FimsConf extends AbstractComponent {
private static final FimsConf conf;
static {
@ -27,16 +26,18 @@ public class FimsConf extends AbstractComponent {
return conf;
}
private String sgg; //WAS서버 시군구코드
private String sgg; // WAS서버 시군구코드
private List<String> tasks; // 업무코드
private List<String> taskUrlNames; // 업무URL명칭
private List<String> additionalTasks; // 추가업무코드
private List<String> tasks; //업무코드
private List<String> taskUrlNames; //업무URL명칭
private List<String> sggNet; // 시군구별 내부망 IP대역
private List<String> externalEntNet; // 외부 협력업체PC IP
private List<String> sggNet; //시군구별 내부망 IP대역
private List<String> externalEntNet; //외부 협력업체PC IP
private String publicInfoCarYn; //차적조회연계 행공센연계여부
private String nxrpDemonYn; //차세대연계 별도 프로세스 여부
private String disabledParkingDemonYn; //장애인표지조회연계 별도 프로세스 여부
private String disabledParkingDemonUrl;//장애인표지조회연계 API 아이피,포트
private String publicInfoCarYn; // 차적조회연계 행공센연계여부
private String nxrpDemonYn; // 차세대연계 별도 프로세스 여부
}
private String disabledParkingDemonYn; // 장애인표지조회연계 별도 프로세스 여부
private String disabledParkingDemonUrl;// 장애인표지조회연계 API 아이피,포트
}

@ -42,41 +42,27 @@ import cokr.xit.foundation.data.DataObject;
*/
@Component("crdnBean")
public class CrdnBean extends AbstractBean {
@Resource(name = "crdnSttsHstryBean")
private CrdnSttsHstryBean crdnSttsHstryBean;
@Resource(name = "crdnPayerAddrHstryBean")
private CrdnPayerAddrHstryBean crdnPayerAddrHstryBean;
@Resource(name = "fileBean")
private FileBean fileBean;
@Resource(name = "crdnStngBean")
private CrdnStngBean crdnStngBean;
@Resource(name = "crdnInfoMapper")
private CrdnInfoMapper crdnInfoMapper;
@Resource(name = "crdnInstMapper")
private CrdnInstMapper crdnInstMapper;
@Resource(name = "crdnUpdtMapper")
private CrdnUpdtMapper crdnUpdtMapper;
@Resource(name = "crdnTeamMapper")
private CrdnTeamMapper crdnTeamMapper;
@Resource(name = "levyExclBean")
protected LevyExclBean levyExclBean;
public boolean create(Map<String, Object> nonQueryRequest, Crdn crdn, List<FileInfo> fileInfoList) {
if(fileInfoList != null && !fileInfoList.isEmpty()) {
crdn.setAtchFileCnt(fileInfoList.size());
} else {
crdn.setAtchFileCnt(0);
}
crdn.setAtchFileCnt(isEmpty(fileInfoList) ? 0 : fileInfoList.size());
//금액 계산
int[] basicAmt = crdnStngBean.getBasicAmt(crdn);
crdn.setFfnlgCrdnAmt(basicAmt[0]);
@ -84,7 +70,7 @@ public class CrdnBean extends AbstractBean {
crdn.setAdvntceAmt(basicAmt[1]);
//단속팀 정보 갱신
if(!ifEmpty(crdn.getTeamId(), () -> "").equals("")) {
if(!isEmpty(crdn.getTeamId())) {
DataObject teamInfo = crdnTeamMapper.selectTeamInfo(crdn.getTeamId());
Team team = new Team();
@ -101,47 +87,36 @@ public class CrdnBean extends AbstractBean {
}
//상태코드 설정
SimpleDateFormat dateFormat = new SimpleDateFormat("yyyyMMddHHmmss");
if(ifEmpty(crdn.getCrdnSttsCd(), () -> "").equals("")){ //상태코드가 없을경우
if(ifEmpty(crdn.getCvlcptLinkYn(), () -> "").equals("Y")) { //민원연계자료일 경우
if(isEmpty(crdn.getCrdnSttsCd())){ //상태코드가 없을경우
if("Y".equals(crdn.getCvlcptLinkYn())) { //민원연계자료일 경우
crdn.setCrdnSttsCd("01"); //초기상태
crdn.setCrdnSttsChgDt(dateFormat.format(System.currentTimeMillis()));
} else { //민원연계자료가 아닐 경우
if(ifEmpty(crdn.getRtpyrId(), () -> "").equals("")) { //납부자가 정보가 없을 경우
crdn.setCrdnSttsCd("01"); //초기상태
crdn.setCrdnSttsChgDt(dateFormat.format(System.currentTimeMillis()));
} else {
crdn.setCrdnSttsCd("21"); //납부자등록완료
crdn.setCrdnSttsChgDt(dateFormat.format(System.currentTimeMillis()));
}
crdn.setCrdnSttsCd(isEmpty(crdn.getRtpyrId()) ? "01" : "21"); // 01: 초기상태 21: 납부자등록완료
}
crdn.setCrdnSttsChgDt(new SimpleDateFormat("yyyyMMddHHmmss").format(System.currentTimeMillis()));
}
//단속 대장 등록
boolean result = this.createLedger(crdn);
if (!result) {
if (!result)
throw new RuntimeException("단속자료 등록 중 단속자료 등록에 실패하였습니다.");
}
SimpleDateFormat yyyyMMdd = new SimpleDateFormat("yyyyMMdd");
Date curTime = new Date();
String strCurrentDate = yyyyMMdd.format(curTime);
String today = new SimpleDateFormat("yyyyMMdd").format(new Date());
String taskDtlId = crdn.getCrdnId();
if(crdn.getCrdnSttsCd().equals("83")) {
// 부과제외(TB_LEVY_EXCL) 대장 등록
LevyExcl excl01 = new LevyExcl();
excl01.setCrdnId(crdn.getCrdnId());
excl01.setLevyExclYmd(strCurrentDate);
excl01.setSggCd(crdn.getSggCd());
excl01.setLevyExclYmd(today);
excl01.setLevyExclSeCd("2");
excl01.setLevyExclRsnCd("192");
excl01.setEtcCn("");
String rtnScs = levyExclBean.createLevyExcl(excl01);
if (rtnScs.contains("[F]")) {
if (rtnScs.contains("[F]"))
throw new RuntimeException("단속자료 등록 중 부과제외 자료 등록에 실패하였습니다.");
}
taskDtlId = excl01.getLevyExclId();
}
@ -156,9 +131,8 @@ public class CrdnBean extends AbstractBean {
crdnSttsHstry.setEtcCn("");
result = crdnSttsHstryBean.create(crdnSttsHstry);
if (!result) {
if (!result)
throw new RuntimeException("단속자료 등록 중 단속상태 이력 등록에 실패하였습니다.");
}
//단속납부자이력(TB_CRDN_PAYER_HSTRY) 대장 등록
if(!ifEmpty(crdn.getRtpyrId(), () -> "").equals("")) {
@ -168,19 +142,17 @@ public class CrdnBean extends AbstractBean {
crdnPayerAddrHstry.setAddrSn(crdn.getAddrSn());
// 단속 대장의 납부자ID 수정 및 단속 납부자 이력(TB_CRDN_PAYER_HSTRY) 대장에 등록한다.
int effected = crdnPayerAddrHstryBean.createCrdnPayerAddrHstry(crdnPayerAddrHstry);
if(effected != 1) {
int affected = crdnPayerAddrHstryBean.createCrdnPayerAddrHstry(crdnPayerAddrHstry);
if(affected != 1)
throw new RuntimeException("단속자료 등록 중 단속 납부자주소 이력 등록에 실패하였습니다.");
}
}
//파일 등록
if(fileInfoList != null && !fileInfoList.isEmpty()) {
if(!isEmpty(fileInfoList)) {
fileInfoList.forEach(fileInfo -> fileInfo.setInfoType(Crdn.INF_TYPE).setInfoKey(crdn.getCrdnId()));
int effected = fileBean.create(fileInfoList);
if(effected == 0) {
int affected = fileBean.create(fileInfoList);
if(affected == 0)
throw new RuntimeException("단속자료 등록 중 파일 등록에 실패하였습니다.");
}
}
return result;
@ -194,19 +166,8 @@ public class CrdnBean extends AbstractBean {
* </ul>
*/
public boolean createLedger(Crdn crdn) {
int effected = crdnInstMapper.insertCrdn(crdn);
if(effected != 1) {
return false;
}
effected = crdnInstMapper.insertCrdnAddition(crdn);
if(effected != 1) {
return false;
}
return true;
return crdnInstMapper.insertCrdn(crdn) == 1
&& crdnInstMapper.insertCrdnAddition(crdn) == 1;
}
/** .
@ -224,7 +185,7 @@ public class CrdnBean extends AbstractBean {
paramMap.put("crdnIds", crdnIdList);
paramMap.put("removedBy", UserInfo.current().getId());
return crdnUpdtMapper.deleteCrdn(paramMap) >= 1 ? true : false;
return crdnUpdtMapper.deleteCrdn(paramMap) >= 1;
}
/** .
@ -235,9 +196,6 @@ public class CrdnBean extends AbstractBean {
* </ul>
*/
public String updateCrackdown(Crdn crdn) {
// 변수 선언
int effected = 0; // DB 처리 결과
//금액 계산
int[] basicAmt = crdnStngBean.getBasicAmt(crdn);
crdn.setFfnlgCrdnAmt(basicAmt[0]);
@ -245,16 +203,14 @@ public class CrdnBean extends AbstractBean {
crdn.setAdvntceAmt(basicAmt[1]);
// 단속(TB_CRDN) 대장을 수정한다.
effected = crdnUpdtMapper.updateEditCrdn(crdn);
if (effected != 1) {
int affected = crdnUpdtMapper.updateEditCrdn(crdn);
if (affected != 1)
throw new RuntimeException("단속 대장 수정에 실패하였습니다."); // 예외를 발생시켜서 DB Rollback
}
// 단속 부가 정보(TB_CRDN_ADI) 대장을 수정한다.
effected = crdnUpdtMapper.updateCrdnAddition(crdn);
if (effected != 1) {
affected = crdnUpdtMapper.updateCrdnAddition(crdn);
if (affected != 1)
throw new RuntimeException("단속 부가 정보 수정에 실패하였습니다."); // 예외를 발생시켜서 DB Rollback
}
return "[S] 작업이 정상 처리 되었습니다.";
}
@ -267,10 +223,6 @@ public class CrdnBean extends AbstractBean {
* </ul>
*/
public String removeCrackdown(Crdn crdn) {
// 변수 선언
boolean rtnScs = false; // DB 처리 결과
int effected = 0;
// 단속 ID로 단속 정보 조회
DataObject infoCrdn = crdnInfoMapper.selectCrdnInfo(crdn.getCrdnId());
@ -282,10 +234,9 @@ public class CrdnBean extends AbstractBean {
crdnSttsHstry.setCrdnSttsCd("99");
// 단속 상태 이력(TB_CRDN_STTS_HSTRY) 대장에 등록한다.
rtnScs = crdnSttsHstryBean.createHstryUpdateCrdnSttsCd(crdnSttsHstry);
if (!rtnScs) {
boolean rtnScs = crdnSttsHstryBean.createHstryUpdateCrdnSttsCd(crdnSttsHstry);
if (!rtnScs)
throw new RuntimeException("단속 삭제 중 단속 대장의 단속상태코드 변경에 실패하였습니다."); // 예외를 발생시켜서 DB Rollback
}
Map<String, Object> paramMap = new HashMap<String, Object>();
List<String> crdnIdList = Arrays.asList(crdn.getCrdnId());
@ -294,16 +245,14 @@ public class CrdnBean extends AbstractBean {
paramMap.put("delRsn", crdn.getDelRsn());
// 단속(TB_CRDN) 대장을 삭제한다.
effected = crdnUpdtMapper.deleteCrdn(paramMap);
if (effected != 1) {
int affected = crdnUpdtMapper.deleteCrdn(paramMap);
if (affected != 1)
throw new RuntimeException("단속 대장 삭제에 실패하였습니다."); // 예외를 발생시켜서 DB Rollback
}
// 단속(TB_CRDN) 대장을 삭제한다.
effected = crdnUpdtMapper.deleteCrdnAdi(paramMap);
if (effected != 1) {
affected = crdnUpdtMapper.deleteCrdnAdi(paramMap);
if (affected != 1)
throw new RuntimeException("단속 부가 정보 삭제에 실패하였습니다."); // 예외를 발생시켜서 DB Rollback
}
return "[S] 작업이 정상 처리 되었습니다.";
}
@ -320,22 +269,18 @@ public class CrdnBean extends AbstractBean {
DataObject crdnInfo = crdnInfoMapper.selectCrdnInfo(crdn.getCrdnId());
String rtnMsg = ""; // 처리 결과 메시지
if (crdnInfo == null) {
if (crdnInfo == null)
rtnMsg = "[F] 작업중 단속 자료가 조회되지 않습니다.";
}
if (!"21,22".contains(crdnInfo.string("CRDN_STTS_CD"))) {
if (!"21,22".contains(crdnInfo.string("CRDN_STTS_CD")))
rtnMsg = "[F] 작업은 단속 처리상태가 납부자등록, 사전부과대상 자료만 가능합니다.";
}
// 오류메세지가 발생하면 종료..
if (rtnMsg.contains("[F]")) {
if (rtnMsg.contains("[F]"))
return rtnMsg;
}
// 단속(TB_CRDN) 대장에 납부자 ID를 삭제한다.
int rtnNocs = crdnUpdtMapper.deleteCrdnPayer(crdn);
if (rtnNocs != 1) {
if (rtnNocs != 1)
throw new RuntimeException("단속 대장에 납부자 삭제에 실패하였습니다."); // 예외를 발생시켜서 DB Rollback
}
// 단속 상태 코드 변경
CrdnSttsHstry crdnSttsHstry = new CrdnSttsHstry();
@ -347,9 +292,8 @@ public class CrdnBean extends AbstractBean {
// 단속 상태 이력(TB_CRDN_STTS_HSTRY) 대장에 등록한다.
boolean rtnScs = crdnSttsHstryBean.createHstryUpdateCrdnSttsCd(crdnSttsHstry);
if (!rtnScs) {
if (!rtnScs)
throw new RuntimeException("단속 대장의 단속상태코드 변경에 실패하였습니다."); // 예외를 발생시켜서 DB Rollback
}
return "[S] 작업이 정상 처리 되었습니다.";
}
@ -375,9 +319,8 @@ public class CrdnBean extends AbstractBean {
// 단속 상태 이력(TB_CRDN_STTS_HSTRY) 대장에 등록한다.
boolean rtnScs = crdnSttsHstryBean.createHstryUpdateCrdnSttsCd(crdnSttsHstry);
if (!rtnScs) {
if (!rtnScs)
throw new RuntimeException("단속 대장의 단속상태코드 변경에 실패하였습니다."); // 예외를 발생시켜서 DB Rollback
}
return "[S] 작업이 정상 처리 되었습니다.";
}
@ -390,15 +333,13 @@ public class CrdnBean extends AbstractBean {
boolean saved = false;
try {
Stream<Path> walk = Files.walk(Paths.get(workPath));
List<String> deleteFilePaths = new ArrayList<String>();
walk.filter(Files::isRegularFile)
.filter(p -> p.toFile().getName().equalsIgnoreCase(fileName))
.collect(Collectors.toList())
.forEach(item -> deleteFilePaths.add(item.toFile().getPath()));
.filter(p -> p.toFile().getName().equalsIgnoreCase(fileName))
.collect(Collectors.toList())
.forEach(item -> deleteFilePaths.add(item.toFile().getPath()));
for(String deleteFilePath : deleteFilePaths) {
saved = (new File(deleteFilePath)).delete();
@ -406,13 +347,11 @@ public class CrdnBean extends AbstractBean {
//빈 디렉토리 삭제
CmmnUtil.deleteEmptyDir(new File(workPath), false);
walk.close();
return saved;
} catch (Exception e) {
throw new RuntimeException(e);
throw runtimeException(e);
}
return saved;
}
}
}

@ -24,8 +24,8 @@ import cokr.xit.foundation.component.AbstractBean;
import cokr.xit.foundation.data.DataObject;
import cokr.xit.foundation.util.DateFormats;
import cokr.xit.interfaces.lvis.service.reg.BasicInfoExtRequest;
import cokr.xit.interfaces.lvis.service.reg.BasicInfoExtResponse;
import cokr.xit.interfaces.lvis.service.reg.BasicInfoRequest;
import cokr.xit.interfaces.lvis.service.reg.BasicInfoResponse;
import cokr.xit.interfaces.smg.Petition;
import cokr.xit.interfaces.smg.dao.SmgMapper;
@ -238,32 +238,26 @@ public class ImportBean extends AbstractBean {
return req;
}).toList();
for(BasicInfoRequest req : reqs) {
Payer p = payerBean.getVehicleOwners(List.of(req)).get(0);
crdns.forEach(crdn -> {
if(req.getLevy_stdde().equals(crdn.getCrdnYmd())
&& req.getVhrno().equals(crdn.getVhrno())
if (req.getLevy_stdde().equals(crdn.getCrdnYmd())
&& req.getVhrno().equals(crdn.getVhrno())
) {
payerMap.put(crdn.getCrdnYmd()+","+crdn.getVhrno(), p);
}
});
}
}
for(Crdn crdn : crdns) {
Payer payer = payerMap.get(crdn.getCrdnYmd()+","+crdn.getVhrno());
if (payer == null) return;
BasicInfoExtResponse.ExtInfo vehicle = payer.getVehicleInfo();
BasicInfoResponse.BasicInfo vehicle = payer.getVehicleInfo();
crdn.setSggCd(payer.getSggCd()); // 시군구 데이터 정리되면 지울 것
if(ifEmpty(vehicle.getErsr_regist_de(), () -> "").equals("")) {
crdn.setRtpyrId("");
} else {
crdn.setRtpyrId(payer.getRtpyrId());
}
crdn.setRtpyrId(isEmpty(vehicle.getErsr_regist_de()) ? "" : payer.getRtpyrId());
crdn.setVin(vehicle.getVin());
crdn.setVhclNm(vehicle.getCnm());
crdn.setVhclColr(vehicle.getColor_nm());
@ -292,19 +286,12 @@ public class ImportBean extends AbstractBean {
if (rcptYmd != null && rcptYmd.length() >= 8)
cvlcpt.setCvlcptRcptYmd(rcptYmd.substring(0, 8));
String cvlcptAplySeCd = "";
String petiAncCodeV = petition.getPetiAncCodeV();
if(petiAncCodeV.equals("1741000")) //행정안전부
cvlcptAplySeCd = "120"; //안전신문고
else if(petiAncCodeV.equals("1140100")) //국민권익위원회
cvlcptAplySeCd = "183"; //국민신문고
else if(petiAncCodeV.equals("1320000")) //경찰청
cvlcptAplySeCd = "130"; //경찰청
else
cvlcptAplySeCd = "181"; //기타
cvlcpt.setCvlcptAplySeCd(cvlcptAplySeCd);
cvlcpt.setCvlcptAplySeCd(switch (petition.getPetiAncCodeV()) {
case "1741000" -> "120"; // 행정안전부 -> 안전신문고
case "1140100" -> "183"; // 국민권익위원회 -> 국민신문고
case "1320000"-> "130"; // 경찰청 -> 경찰청
default -> "181"; // 기타
});
cvlcpt.setCvlcptAplyNo(petition.getPetiNoC());
cvlcpt.setCvlcptRcptNo(petition.getCivilNoC());

@ -30,15 +30,12 @@ import cokr.xit.foundation.data.DataObject;
*/
@Component("levyExclBean")
public class LevyExclBean extends AbstractBean {
/** 부과제외 대장 정보 DAO */
@Resource(name="levyExclMapper")
private LevyExclMapper levyExclMapper;
/** 단속 상태 이력 정보 Bean */
@Resource(name="crdnSttsHstryBean")
private CrdnSttsHstryBean crdnSttsHstryBean;
/** 감액 대장 정보 Bean */
@Resource(name="rdamtBean")
private RdamtBean rdamtBean;
@ -89,10 +86,9 @@ public class LevyExclBean extends AbstractBean {
DataObject info = levyExclMapper.selectLevyExclInfo(req);
// 신규 부과제외 등록일 경우 부과제외 구분코드를 입력한다.
if (req.getCallPurpose().equals("create")) {
info.set("LEVY_EXCL_SE_CD", req.getLevyExclSeCd());
info.set("LEVY_EXCL_SE_NM", info.string("CRT_LEVY_EXCL_SE_NM"));
}
if ("create".equals(req.getCallPurpose()))
info.set("LEVY_EXCL_SE_CD", req.getLevyExclSeCd())
.set("LEVY_EXCL_SE_NM", info.string("CRT_LEVY_EXCL_SE_NM"));
return info;
}
@ -105,16 +101,13 @@ public class LevyExclBean extends AbstractBean {
* </ul>
*/
public String createLevyExcl(LevyExcl levyExcl) {
// 변수 선언
int rtnNocs = -1; // 처리 결과 건수
String rtnMsg = ""; // 처리 결과 메시지
// 단속 ID로 단속, 부과제외 정보 조회
LevyExclQuery req = new LevyExclQuery();
req.setCrdnId(levyExcl.getCrdnId());
req.setDelYn("N");
DataObject levyExclInfo = levyExclMapper.selectLevyExclInfo(req);
String rtnMsg = ""; // 처리 결과 메시지
// 등록 대상 자료 검증
if (!levyExclInfo.string("LEVY_EXCL_ID").equals("")) { // 부과제외 ID가 있다면 이미 부과제외 자료가 존재하므로 종료..
rtnMsg = "[F] 작업중 이미 등록된 부과제외 자료가 존재합니다.";
@ -122,34 +115,34 @@ public class LevyExclBean extends AbstractBean {
if (!levyExclInfo.string("CVLCPT_LINK_ID").equals("")) { // 민원 ID
if (levyExclInfo.string("CVLCPT_PRCS_CD").equals("00")) { // 민원 처리상태 확인
rtnMsg = "[F] 작업중 단속 민원 자료가 처리 되지 않았습니다."
+ "<br>단속 민원 업무를 먼저 처리 하시기 바랍니다.";
+ "<br>단속 민원 업무를 먼저 처리 하시기 바랍니다.";
}
}
if (levyExcl.getLevyExclSeCd().contains("1,2")) { // 부과제외(서손), 계고
if (toInt(levyExclInfo.get("CRDN_STTS_CD")) >= 51) { // 단속상태코드가 부과(51) 보다 크다면, 부과제외 또는 계고 등록을 할 수 없다.
rtnMsg = "[F] 작업 중 오류가 발생하였습니다."
+ "<br>단속 자료의 처리상태가 " + levyExclInfo.string("CRDN_STTS_NM") + " 입니다";
+ "<br>단속 자료의 처리상태가 " + levyExclInfo.string("CRDN_STTS_NM") + " 입니다";
}
} else if (levyExcl.getLevyExclSeCd().equals("3")) { // 부과취소
if (toInt(levyExclInfo.get("CRDN_STTS_CD")) < 51) { // 단속상태코드가 부과(51) 보다 작다면, 전액감액 등록 할 수 없다.
rtnMsg = "[F] 작업 중 오류가 발생하였습니다."
+ "<br>단속 자료의 처리상태가 " + levyExclInfo.string("CRDN_STTS_NM") + " 입니다";
+ "<br>단속 자료의 처리상태가 " + levyExclInfo.string("CRDN_STTS_NM") + " 입니다";
}
if (toInt(levyExclInfo.get("CRDN_STTS_CD")) > 55) { // 단속상태코드가 압류(55) 보다 크면, 전액감액 등록 할 수 없다.
rtnMsg = "[F] 작업 중 오류가 발생하였습니다."
+ "<br>단속 자료의 처리상태가 " + levyExclInfo.string("CRDN_STTS_NM") + " 입니다";
+ "<br>단속 자료의 처리상태가 " + levyExclInfo.string("CRDN_STTS_NM") + " 입니다";
}
if (levyExclInfo.string("LEVY_ID").equals("")) { // 부과(TB_LEVY) 정보 확인
rtnMsg = "[F] 작업 중 오류가 발생하였습니다."
+ "<br>부과 자료가 존재하지 않습니다."
+ "<br>부과제외로 처리하시기 바랍니다.";
+ "<br>부과 자료가 존재하지 않습니다."
+ "<br>부과제외로 처리하시기 바랍니다.";
}
}
// 오류메세지가 발생하면 종료..
if (rtnMsg.contains("[F]")) {
if (rtnMsg.contains("[F]"))
return rtnMsg;
}
int rtnNocs = -1; // 처리 결과 건수
// 표지정보 확인여부가 미확인(0)이면 -> 조회미대상(9) 으로
if (levyExclInfo.string("PRK_PSBLTY_RSLT_CD").equals("0")) { // 주차 가능 결과 코드(FIM034) 0: 미확인
Crdn crdn = new Crdn();
@ -157,9 +150,8 @@ public class LevyExclBean extends AbstractBean {
crdn.setPrkPsbltyRsltCd("9"); // 주차 가능 결과 코드(FIM034) 9: 조회미대상
rtnNocs = levyExclMapper.updatePrkPsbltyRsltCd(crdn);
if (rtnNocs != 1) {
if (rtnNocs != 1)
throw new RuntimeException("부과제외 등록 작업 중 단속 대장의 표지정보 수정에 실패하였습니다."); // 예외를 발생시켜서 DB Rollback
}
}
// 부과취소(전액감액)일 경우 부과(TB_LEVY)에 감액금액 입력이 필요..
@ -172,41 +164,34 @@ public class LevyExclBean extends AbstractBean {
rdamt.setRdamtRsnCd(levyExcl.getLevyExclRsnCd()); // 감액 사유 코드
rtnMsg = rdamtBean.createRdamt(rdamt);
if (!rtnMsg.contains("[S]")) {
if (!rtnMsg.contains("[S]"))
throw new RuntimeException(rtnMsg.replace("[F]", "")); // 예외를 발생시켜서 DB Rollback
}
levyExcl.setRdamtId(rdamt.getRdamtId()); // 감액 ID
}
// 부과제외(TB_LEVY_EXCL) 대장을 등록한다.
rtnNocs = levyExclMapper.insertLevyExcl(levyExcl);
if (rtnNocs != 1) {
if (rtnNocs != 1)
throw new RuntimeException("부과제외 정보 등록에 실패하였습니다."); // 예외를 발생시켜서 DB Rollback
}
// 단속 상태 이력(TB_CRDN_STTS_HSTRY) 대장에 등록하고, 단속(TB_CRDN) 대장을 수정한다.
String newCrdnSttsCd = ""; // 신규 단속 상태 코드(CRDN_STTS_CD)
if (levyExcl.getLevyExclSeCd().equals("1")) { // 부과제외
newCrdnSttsCd = "81"; // 부과제외(서손)
} else if (levyExcl.getLevyExclSeCd().equals("2")) { // 계고
newCrdnSttsCd = "83"; // 계고
} else if (levyExcl.getLevyExclSeCd().equals("3")) { // 부과취소(전액감액)
newCrdnSttsCd = "80"; // 부과취소
}
// 단속 상태 이력(TB_CRDN_STTS_HSTRY)
CrdnSttsHstry crdnSttsHstry = new CrdnSttsHstry();
crdnSttsHstry.setCrdnId(levyExclInfo.string("CRDN_ID"));
crdnSttsHstry.setBfrSttsCd(levyExclInfo.string("CRDN_STTS_CD"));
crdnSttsHstry.setBfrSttsChgDt(levyExclInfo.string("CRDN_STTS_CHG_DT"));
crdnSttsHstry.setCrdnSttsCd(newCrdnSttsCd);
crdnSttsHstry.setCrdnSttsCd(switch (levyExcl.getLevyExclSeCd()) {
case "1" -> "81"; // 부과제외 -> 부과제외(서손)
case "2" -> "83"; // 계고 -> 계고
case "3" -> "80"; // 부과취소(전액감액) -> 부과취소
default -> "";
});
crdnSttsHstry.setTaskDtlId(levyExcl.getLevyExclId());
boolean rtnScs = crdnSttsHstryBean.createHstryUpdateCrdnSttsCd(crdnSttsHstry);
if (!rtnScs) {
if (!rtnScs)
throw new RuntimeException("부과제외 등록 작업 중 단속상태 변경에 실패하였습니다."); // 예외를 발생시켜서 DB Rollback
}
return "[S] 작업이 정상 처리 되었습니다.";
}
@ -221,9 +206,8 @@ public class LevyExclBean extends AbstractBean {
public String updateLevyExcl(LevyExcl levyExcl) {
// 부과제외(TB_LEVY_EXCL) 대장을 수정한다.
int rtnNocs = levyExclMapper.updateLevyExcl(levyExcl);
if (rtnNocs != 1) {
if (rtnNocs != 1)
throw new RuntimeException("부과제외 정보 수정에 실패하였습니다."); // 예외를 발생시켜서 DB Rollback
}
return "[S] 작업이 정상 처리 되었습니다.";
}
@ -236,55 +220,48 @@ public class LevyExclBean extends AbstractBean {
* </ul>
*/
public String removeLevyExcl(LevyExcl levyExcl) {
// 변수 선언
int rtnNocs = -1; // 처리 결과 건수
String rtnMsg = ""; // 처리 결과 메시지
// 부과제외(TB_LEVY_EXCL) 정보를 조회한다.
LevyExclQuery req = new LevyExclQuery();
req.setLevyExclId(levyExcl.getLevyExclId());
req.setDelYn("N");
DataObject levyExclInfo = levyExclMapper.selectLevyExclInfo(req);
String rtnMsg = ""; // 처리 결과 메시지
// 삭제 대상 자료 검증
if (levyExclInfo == null) {
if (levyExclInfo == null)
rtnMsg = "[F] 작업 중 부과제외 자료가 조회되지 않습니다.";
}
if (levyExclInfo.string("LEVY_EXCL_SE_CD").equals("1") && !levyExclInfo.string("CRDN_STTS_CD").equals("81")) { // 부과제외(서손)
rtnMsg = "[F] 작업 중 오류가 발생하였습니다."
+ "<br>단속 처리상태가 " + levyExclInfo.string("CRDN_STTS_NM") + " 입니다.";
+ "<br>단속 처리상태가 " + levyExclInfo.string("CRDN_STTS_NM") + " 입니다.";
} else if (levyExclInfo.string("LEVY_EXCL_SE_CD").equals("2") && !("83").contains(levyExclInfo.string("CRDN_STTS_CD"))) { // 계고
rtnMsg = "[F] 작업 중 오류가 발생하였습니다."
+ "<br>단속 자료의 처리상태가 " + levyExclInfo.string("CRDN_STTS_NM") + " 입니다.";
+ "<br>단속 자료의 처리상태가 " + levyExclInfo.string("CRDN_STTS_NM") + " 입니다.";
} else if (levyExclInfo.string("LEVY_EXCL_SE_CD").equals("3") && !levyExclInfo.string("CRDN_STTS_CD").equals("80")) { // 부과취소
rtnMsg = "[F] 작업 중 오류가 발생하였습니다."
+ "<br>단속 자료의 처리상태가 " + levyExclInfo.string("CRDN_STTS_NM") + " 입니다.";
+ "<br>단속 자료의 처리상태가 " + levyExclInfo.string("CRDN_STTS_NM") + " 입니다.";
}
// 오류메세지가 발생하면 종료..
if (rtnMsg.contains("[F]")) {
if (rtnMsg.contains("[F]"))
return rtnMsg;
}
int rtnNocs = -1; // 처리 결과 건수
// 부과제외 구분이 부과제외(서손)일 경우
if (levyExclInfo.string("LEVY_EXCL_SE_CD").equals("1")) {
if ("1".equals(levyExclInfo.get("LEVY_EXCL_SE_CD"))) {
// 표지정보 확인여부가 조회미대상이면 -> 미확인 으로
if (levyExclInfo.string("PRK_PSBLTY_RSLT_CD").equals("9")) { // 주차 가능 결과 코드 - 9 조회 미대상
if ("9".equals(levyExclInfo.get("PRK_PSBLTY_RSLT_CD"))) { // 주차 가능 결과 코드 - 9 조회 미대상
Crdn crdn = new Crdn();
crdn.setCrdnId(levyExclInfo.string("CRDN_ID")); // 단속 ID
crdn.setPrkPsbltyRsltCd("0"); // 주차 가능 결과 코드 - 0 미확인
rtnNocs = levyExclMapper.updatePrkPsbltyRsltCd(crdn);
if (rtnNocs != 1) {
if (rtnNocs != 1)
throw new RuntimeException("부과제외 삭제 작업 중 단속 대장의 표지정보 수정에 실패하였습니다."); // 예외를 발생시켜서 DB Rollback
}
}
}
// 부과제외(TB_LEVY_EXCL) 대장을 삭제한다.
rtnNocs = levyExclMapper.deleteLevyExcl(levyExcl);
if (rtnNocs != 1) {
if (rtnNocs != 1)
throw new RuntimeException("부과제외 정보 삭제에 실패하였습니다."); // 예외를 발생시켜서 DB Rollback
}
// 단속 상태 이력(TB_CRDN_STTS_HSTRY) 대장의 사용 여부를 "N"으로 처리하고, 단속(TB_CRDN) 대장의 단속 상태 코드를 수정한다.
CrdnSttsHstry crdnSttsHstry = new CrdnSttsHstry();
@ -294,11 +271,9 @@ public class LevyExclBean extends AbstractBean {
crdnSttsHstry.setUseYn("N"); // 사용 여부
boolean rtnScs = crdnSttsHstryBean.removeHstryUpdateCrdnSttsCd(crdnSttsHstry);
if (!rtnScs) {
if (!rtnScs)
throw new RuntimeException("부과제외 삭제 작업중 단속 대장의 단속상태 변경에 실패하였습니다."); // 예외를 발생시켜서 DB Rollback
}
return "[S] 작업이 정상 처리 되었습니다.";
}
}
}

@ -1,7 +1,7 @@
package cokr.xit.fims.payer;
import cokr.xit.foundation.AbstractEntity;
import cokr.xit.interfaces.lvis.service.reg.BasicInfoExtResponse.ExtInfo;
import cokr.xit.interfaces.lvis.service.reg.BasicInfoResponse;
import lombok.Getter;
import lombok.Setter;
@ -174,7 +174,7 @@ public class Payer extends AbstractEntity {
private String wholAddr;
/** 차량 정보 */
private ExtInfo vehicleInfo;
private BasicInfoResponse.BasicInfo vehicleInfo;
/**"차량번호-납부자번호" .
* @return "차량번호-납부자번호"

@ -22,7 +22,6 @@ import cokr.xit.interfaces.lvis.dao.VehicleInfoMapper;
import cokr.xit.interfaces.lvis.service.bean.VehicleInfoBean;
import cokr.xit.interfaces.lvis.service.reg.BasicInfoExtRequest;
import cokr.xit.interfaces.lvis.service.reg.BasicInfoExtResponse;
import cokr.xit.interfaces.lvis.service.reg.BasicInfoExtResponse.ExtInfo;
import cokr.xit.interfaces.lvis.service.reg.BasicInfoRequest;
import cokr.xit.interfaces.lvis.service.reg.BasicInfoResponse;
@ -280,7 +279,7 @@ public class PayerBean extends AbstractBean {
payer.setRtpyrTelno(basicInfo.getTelno());
payer.setRoadNmCd(basicInfo.getUse_strnghld_road_nm_code());
String str = basicInfo.getUsgsrhld_undgrnd_buld_se_code();
if (str.equals(""))
if (isEmpty(str))
payer.setUdgdSeCd("0");
else
payer.setUdgdSeCd(basicInfo.getUsgsrhld_undgrnd_buld_se_code());
@ -311,7 +310,7 @@ public class PayerBean extends AbstractBean {
Payer result = create(payer) ? payer : getPayerAddrInfo(payer);
if (result != null)
result.setVehicleInfo((ExtInfo) basicInfo);
result.setVehicleInfo(basicInfo);
return result;
}

@ -69,8 +69,7 @@ public class PayerServiceBean extends AbstractServiceBean implements PayerServic
@Override
public Payer getVehicleOwner(BasicInfoExtRequest req) {
Payer payer = payerBean.getVehicleOwner(req);
return payer;
return payerBean.getVehicleOwner(req);
}
@Override

@ -234,9 +234,10 @@ public class StatBean extends AbstractBean {
}
List<CompositeKey> fixedItemKeys = Arrays.asList(fixedItemKey);
group.keySet().stream()
List<CompositeKey> remove = group.keySet().stream()
.filter(compositekey -> !fixedItemKeys.contains(compositekey))
.forEach(deleteTarget -> group.remove(deleteTarget));
.toList();
remove.forEach(group::remove);
}
/** (, ) .

@ -1,6 +1,7 @@
package cokr.xit.fims.task;
import java.lang.reflect.Method;
import java.util.ArrayList;
import java.util.List;
import java.util.Set;
@ -37,6 +38,15 @@ public class TaskRequestMappingHandlerMapping extends RequestMappingHandlerMappi
prefix = new String[1 + tasksArray.length];
System.arraycopy(new String[] {""}, 0, prefix, 0, 1);
System.arraycopy(tasksArray, 0, prefix, 1, tasksArray.length);
} else {
List<String> newTasks = FimsConf.get().getAdditionalTasks();
if (newTasks != null) {
ArrayList<String> list = new ArrayList<>();
for (String str: prefix)
list.add(str);
list.addAll(newTasks);
prefix = list.toArray(new String[list.size()]);
}
}
RequestMapping rm = AnnotatedElementUtils.findMergedAnnotation(method, RequestMapping.class);

Loading…
Cancel
Save