이행정보 등록/수정 판단을 frontend -> backend 로 변경함

dev
박성영 2 months ago
parent 26631eca43
commit fc0538489b

@ -202,7 +202,7 @@ public class CrdnImpltTaskController {
/**
* .
*
*
* @param paramVO VO
* @return
*/
@ -229,6 +229,74 @@ public class CrdnImpltTaskController {
}
}
/**
* (/ )
* : / .
*
* @param paramVO VO
* @return
*/
@PostMapping("/saveImpltInfo.ajax")
@Operation(summary = "이행정보 저장", description = "신규/수정을 자동 판단하여 이행정보를 저장합니다.")
@io.swagger.v3.oas.annotations.responses.ApiResponses(value = {
@io.swagger.v3.oas.annotations.responses.ApiResponse(responseCode = "200", description = "저장 성공"),
@io.swagger.v3.oas.annotations.responses.ApiResponse(responseCode = "400", description = "잘못된 요청"),
@io.swagger.v3.oas.annotations.responses.ApiResponse(responseCode = "500", description = "서버 오류")
})
public ResponseEntity<?> saveImpltInfo(@ModelAttribute CrdnImpltTaskVO paramVO) {
log.debug("이행정보 저장 요청 - 단속연도: {}, 단속번호: {}, 이행업무구분코드: {}",
paramVO.getCrdnYr(), paramVO.getCrdnNo(), paramVO.getImpltTaskSeCd());
try {
// 단속정보 조회 및 시군구코드 설정
CrdnRegistAndViewVO crdnParamVO = new CrdnRegistAndViewVO();
crdnParamVO.setCrdnYr(paramVO.getCrdnYr());
crdnParamVO.setCrdnNo(paramVO.getCrdnNo());
CrdnRegistAndViewVO crdnData = crdnRegistAndViewService.selectOne(crdnParamVO);
if (crdnData == null) {
return ApiResponseUtil.error("단속정보가 존재하지 않습니다.");
}
paramVO.setSggCd(crdnData.getSggCd());
// 기존 이행정보 존재 여부 확인
CrdnImpltTaskVO searchVO = new CrdnImpltTaskVO();
searchVO.setCrdnYr(paramVO.getCrdnYr());
searchVO.setCrdnNo(paramVO.getCrdnNo());
searchVO.setImpltTaskSeCd(paramVO.getImpltTaskSeCd());
CrdnImpltTaskVO existingImpltInfo = crdnImpltTaskService.selectImpltInfo(searchVO);
int result;
String message;
if (existingImpltInfo != null) {
// 수정 처리
paramVO.setImpltInfoId(existingImpltInfo.getImpltInfoId()); // 기존 ID 설정
paramVO.setMdfr(SessionUtil.getUserId());
result = crdnImpltTaskService.updateImpltInfo(paramVO);
message = "이행정보가 성공적으로 수정되었습니다.";
log.debug("이행정보 수정 처리 완료 - impltInfoId: {}", paramVO.getImpltInfoId());
} else {
// 신규 등록 처리
paramVO.setRgtr(SessionUtil.getUserId());
result = crdnImpltTaskService.insertImpltInfo(paramVO);
message = "이행정보가 성공적으로 등록되었습니다.";
log.debug("이행정보 신규 등록 처리 완료 - impltInfoId: {}", paramVO.getImpltInfoId());
}
if (result > 0) {
return ApiResponseUtil.success(result, message);
} else {
return ApiResponseUtil.error("이행정보 저장에 실패했습니다.");
}
} catch (Exception e) {
log.error("이행정보 저장 중 오류 발생", e);
return ApiResponseUtil.error("이행정보 저장 중 오류가 발생했습니다: " + e.getMessage());
}
}
/**
* .
*

@ -53,6 +53,7 @@ public class LevyPrvntcActInfoVO extends PagingVO {
private String actnLastYmd; // 최종 조치 일자
private BigDecimal actnWholArea; // 최종 조치 면적
private String actnPrcsSttsCd; // 조치 상태
private String actnPrcsSttsCdNm; // 조치 상태 코드 명
private BigDecimal calcArea; // 면적 - 조치면적
private String no; //건물 신축 가격 기준액 NO

@ -40,6 +40,7 @@
t3.ACTN_LAST_YMD,
t3.ACTN_WHOL_AREA,
t3.ACTN_PRCS_STTS_CD,
aps.CD_NM as ACTN_PRCS_STTS_CD_NM,
bnpca.no as BLDG_NEW_PRC_CRTR_AMT_NO, -- 건물기준가액 NO
bnpca.BDST_USG, -- 건축물용도
bnpca.BLDG_NEW_PRC_CRTR_AMT, -- 건물기준시가액
@ -70,6 +71,7 @@
LEFT JOIN tb_cd_detail sgg ON sgg.CD_GROUP_ID = 'ORG_CD' AND sgg.CD_ID = t2.SGG_CD
LEFT JOIN tb_cd_detail emd ON emd.CD_GROUP_ID = 'STDG_EMD_CD' AND emd.CD_ID = t2.STDG_EMD_CD
LEFT JOIN tb_cd_detail ld ON ld.CD_GROUP_ID = 'LDCG_CD' AND ld.CD_ID = t2.LDCG_CD
LEFT JOIN tb_cd_detail aps ON aps.CD_GROUP_ID = 'ACTN_PRCS_STTS_CD' AND aps.CD_ID = t3.ACTN_PRCS_STTS_CD
LEFT JOIN TB_ACT_TYPE act ON act.ACT_TYPE_CD = t3.ACT_TYPE_CD
LEFT JOIN tb_vltn_lwrg vltn1 ON vltn1.VLTN_LWRG_CD = t3.VLTN_LWRG_CD_1 AND vltn1.DEL_YN = 'N'
LEFT JOIN tb_vltn_lwrg vltn2 ON vltn2.VLTN_LWRG_CD = t3.VLTN_LWRG_CD_2 AND vltn2.DEL_YN = 'N'

@ -405,24 +405,24 @@
*/
save: function() {
var self = this;
// 유효성 검증
if (!this.validateForm()) {
return;
}
// 폼 데이터 수집
var formData = this.collectFormData();
// 그리드에서 선택된 이행 대상자 정보 수집
var selectedTrprInfoList = this.collectSelectedTrprInfo();
// 선택된 이행 대상자가 없으면 경고
if (selectedTrprInfoList.length === 0) {
alert('이행 대상자를 선택해주세요.');
return;
}
// 이행 대상자 정보를 formData에 추가
for (var i = 0; i < selectedTrprInfoList.length; i++) {
var trprInfo = selectedTrprInfoList[i];
@ -430,11 +430,10 @@
formData['impltTrprInfoList[' + i + '].' + key] = trprInfo[key];
}
}
var url = this.mode === 'C' ?
'<c:url value="/crdn/crndRegistAndView/crdnImpltTask/insertImpltInfo.ajax"/>' :
'<c:url value="/crdn/crndRegistAndView/crdnImpltTask/updateImpltInfo.ajax"/>';
// 신규/수정 자동 판단 API 사용
var url = '<c:url value="/crdn/crndRegistAndView/crdnImpltTask/saveImpltInfo.ajax"/>';
$.ajax({
url: url,
type: 'POST',

@ -555,6 +555,7 @@
{header: '이행강제금산출', name: 'levyCnt', align: 'center', width: 120, formatter: function(e){
return e.value > 0 ? '등록':'미등록'; }
},
{ header: '조치처리상태', name: 'actnPrcsSttsCdNm', align: 'center', width: 120},
{ header: '행위유형코드', name: 'actTypeCd', align: 'center', width: 60, hidden: true},
{ header: '행위유형산정률1', name: 'actCmpttnRt', align: 'center', width: 60, hidden: true},
{ header: '행위유형명', name: 'actTypeCdNm', align: 'center', width: 180},
@ -593,12 +594,12 @@
},
{ header: '구조지수코드', name: 'strctIdxCd', align: 'center', width: 60, hidden: true},
{ header: '구조지수', name: 'strctIdx', align: 'right', width: 150, formatter: function(e){ return e.value != null ? Number(e.value).toLocaleString(undefined, { minimumFractionDigits: 2, maximumFractionDigits: 2 }) : ''; } },
{ header: '구조지수명', name: 'strctIdxCdNm', align: 'left', width: 150},
{ header: '구조지수명', name: 'strctIdxCdNm', align: 'center', width: 150},
{ header: '용도지수코드', name: 'usgIdxCd', align: 'center', width: 150, hidden: true},
{ header: '용도지수', name: 'usgIdx', align: 'right', width: 150, formatter: function(e){ return e.value != null ? Number(e.value).toLocaleString(undefined, { minimumFractionDigits: 2, maximumFractionDigits: 2 }) : ''; } },
{ header: '용도지수명', name: 'usgIdxCdNm', align: 'left', width: 150},
{ header: '용도지수명', name: 'usgIdxCdNm', align: 'center', width: 150},
{ header: '건물신축가격기준액NO', name: 'no', hidden: true },
{ header: '건축물용도', name: 'bdstUsg', align: 'right', width: 120 },
{ header: '건축물용도', name: 'bdstUsg', align: 'center', width: 120 },
{ header: '건물신축가격기준액', name: 'bldgNewPrcCrtrAmt', align: 'right', width: 140, formatter: function(e){ return e.value != null ? Number(e.value).toLocaleString() : ''; } },
{ header: '위치지수NO', name: 'pstnIdxNo', hidden: true },
{ header: '위치지수', name: 'pstnIdx', align: 'right', width: 100, formatter: function(e){ return e.value != null ? Number(e.value).toLocaleString(undefined, { minimumFractionDigits: 2, maximumFractionDigits: 2 }) : ''; } },

Loading…
Cancel
Save