사전처분 초기버전 진행중...

dev
박성영 3 months ago
parent 870b3cdea4
commit 01f0e2c28b

@ -186,6 +186,12 @@ public class CrdnImpltTaskController {
log.debug("이행정보 등록 요청 - 단속연도: {}, 단속번호: {}, 이행업무구분코드: {}",
paramVO.getCrdnYr(), paramVO.getCrdnNo(), paramVO.getImpltTaskSeCd());
// 단속정보
CrdnRegistAndViewVO crdnParamVO = new CrdnRegistAndViewVO();
crdnParamVO.setCrdnYr(paramVO.getCrdnYr());
crdnParamVO.setCrdnNo(paramVO.getCrdnNo());
CrdnRegistAndViewVO crdnData = crdnRegistAndViewService.selectOne(crdnParamVO);
paramVO.setSggCd(crdnData.getSggCd());
paramVO.setRgtr(SessionUtil.getUserId());
int result = crdnImpltTaskService.insertImpltInfo(paramVO);

@ -81,6 +81,19 @@ public class CrdnImpltTaskVO extends PagingVO {
/** 삭제자 */
private String dltr;
// ==================== 추가 필드 ====================
/** 모드 (C:등록, U:수정, V:보기, D:삭제) */
private String mode;
/** 단속 정보 (조인용) */
private String dsclYmd; // 적발일자
private String exmnr; // 조사원
private String lotnoWholAddr; // 지번전체주소
private String lotnoAddr; // 지번주소
private String lotnoMno; // 지번본번
private String lotnoSno; // 지번부번
// ==================== 조인 컬럼 (코드명) ====================
/** 이행업무구분코드명 */
@ -101,44 +114,8 @@ public class CrdnImpltTaskVO extends PagingVO {
/** 표준읍면동코드명 */
private String stdgEmdCdNm;
// ==================== 이행 대상자 정보 ====================
// ==================== 이행 대상자 정보, 등록용도 ====================
/** 이행 대상자 정보 리스트 */
private List<CrdnImpltTrprInfoVO> impltTrprInfoList;
/** 선택된 소유자/행위자 ID 배열 */
private String[] selectedOwnrActrIds;
/** 선택된 이행대상자구분코드 배열 (1:소유자, 2:행위자) */
private String[] selectedTrprSeCds;
// ==================== 검색 조건 ====================
/** 검색 조건 - 단속 연도 */
private String schCrdnYr;
/** 검색 조건 - 단속 번호 */
private String schCrdnNo;
/** 검색 조건 - 이행업무구분코드 */
private String schImpltTaskSeCd;
/** 검색 조건 - 이행 시작 일자 (시작) */
private String schImpltBgngYmdFrom;
/** 검색 조건 - 이행 시작 일자 (종료) */
private String schImpltBgngYmdTo;
// ==================== 추가 필드 ====================
/** 모드 (C:등록, U:수정, V:보기, D:삭제) */
private String mode;
/** 단속 정보 (조인용) */
private String dsclYmd; // 적발일자
private String exmnr; // 조사원
private String lotnoWholAddr; // 지번전체주소
private String lotnoAddr; // 지번주소
private String lotnoMno; // 지번본번
private String lotnoSno; // 지번부번
}

@ -99,6 +99,7 @@ public class CrdnCrdnImpltTaskServiceImpl extends EgovAbstractServiceImpl implem
String trprInfoId = crdnImpltTaskMapper.selectNextImpltTrprInfoId();
trprInfo.setImpltTrprInfoId(trprInfoId);
trprInfo.setImpltInfoId(impltInfoId);
trprInfo.setSggCd(vo.getSggCd());
trprInfo.setRgtr(SessionUtil.getUserId());
trprInfo.setDelYn("N");
@ -140,6 +141,7 @@ public class CrdnCrdnImpltTaskServiceImpl extends EgovAbstractServiceImpl implem
String trprInfoId = crdnImpltTaskMapper.selectNextImpltTrprInfoId();
trprInfo.setImpltTrprInfoId(trprInfoId);
trprInfo.setImpltInfoId(vo.getImpltInfoId());
trprInfo.setSggCd(vo.getSggCd());
trprInfo.setRgtr(SessionUtil.getUserId());
trprInfo.setDelYn("N");

@ -161,6 +161,8 @@
OWNR_ACTR_INFO_ID,
REG_DT,
RGTR,
MDFCN_DT,
MDFR,
DEL_YN
) VALUES (
#{impltTrprInfoId},
@ -174,6 +176,8 @@
#{ownrActrInfoId},
NOW(),
#{rgtr},
NOW(),
#{rgtr},
'N'
)
</insert>
@ -198,21 +202,20 @@
o.LOTNO_MNO,
o.LOTNO_SNO,
'1' as impltTrprSeCd,
-- 코드성 데이터 조인 (코드명)
impltTrprSe.CD_NM as impltTrprSeCdNm,
false as selected,
CASE WHEN iti.IMPLT_TRPR_INFO_ID IS NOT NULL THEN true ELSE false END as selected,
aio.ACT_NO,
aio.ACT_TYPE_CD,
act.CD_NM AS ACT_TYPE_CD_NM
FROM tb_act_info aio
inner JOIN tb_ownr_info oi ON aio.CRDN_YR = oi.CRDN_YR and aio.CRDN_NO = oi.CRDN_NO and aio.DEL_YN = 'N'
inner JOIN tb_ownr_info oi ON aio.CRDN_YR = oi.CRDN_YR AND aio.CRDN_NO = oi.CRDN_NO AND aio.DEL_YN = 'N'
INNER JOIN tb_ownr o ON o.OWNR_ID = oi.OWNR_ID AND o.DEL_YN = 'N'
LEFT JOIN tb_implt_trpr_info iti ON iti.OWNR_ACTR_INFO_ID = oi.OWNR_INFO_ID AND iti.IMPLT_TRPR_SE_CD = '1'
LEFT JOIN tb_cd_detail impltTrprSe ON impltTrprSe.CD_GROUP_ID = 'IMPLT_TRPR_SE_CD' AND impltTrprSe.CD_ID = '1'
LEFT JOIN tb_cd_detail act ON act.CD_GROUP_ID = 'ACT_TYPE_CD' AND act.CD_ID = aio.ACT_TYPE_CD
WHERE aio.CRDN_YR = '2025'
AND aio.CRDN_NO = '000067'
AND aio.DEL_YN = 'N'
ORDER BY o.FLNM;
</select>
<!-- 행위자 정보 목록 조회 (체크박스 선택용) -->
@ -227,21 +230,20 @@
o.LOTNO_MNO,
o.LOTNO_SNO,
'2' as impltTrprSeCd,
-- 코드성 데이터 조인 (코드명)
impltTrprSe.CD_NM as impltTrprSeCdNm,
false as selected,
CASE WHEN iti.IMPLT_TRPR_INFO_ID IS NOT NULL THEN true ELSE false END as selected,
aio.ACT_NO,
aio.ACT_TYPE_CD,
act.CD_NM AS ACT_TYPE_CD_NM
FROM tb_act_info aio
INNER JOIN tb_actr_info ai ON ai.ACT_INFO_ID = aio.ACT_INFO_ID AND aio.DEL_YN = 'N'
INNER JOIN tb_ownr o ON o.OWNR_ID = ai.OWNR_ID AND o.DEL_YN = 'N'
LEFT JOIN tb_implt_trpr_info iti ON iti.OWNR_ACTR_INFO_ID = ai.ACT_INFO_ID AND iti.IMPLT_TRPR_SE_CD = '2'
LEFT JOIN tb_cd_detail impltTrprSe ON impltTrprSe.CD_GROUP_ID = 'IMPLT_TRPR_SE_CD' AND impltTrprSe.CD_ID = '2'
LEFT JOIN tb_cd_detail act ON act.CD_GROUP_ID = 'ACT_TYPE_CD' AND act.CD_ID = aio.ACT_TYPE_CD
WHERE aio.CRDN_YR = #{crdnYr}
AND aio.CRDN_NO = #{crdnNo}
AND aio.DEL_YN = 'N'
ORDER BY o.FLNM
</select>
<!-- ==================== 시퀀스 관련 쿼리 ==================== -->

@ -169,7 +169,8 @@
{header: '지번 본번', name: 'lotnoMno', align: 'right', width: 90, hidden: true},
{header: '지번 부번', name: 'lotnoSno', align: 'right', width: 90, hidden: true},
{ header: '소유자 행위자 정보 ID', name: 'ownrActrInfoId', align: 'center', width: 120, hidden: true },
{ header: '이행 대상자 정보 ID', name: 'impltTrprInfoId', align: 'center', width: 120, hidden: true }
{ header: '이행 대상자 정보 ID', name: 'impltTrprInfoId', align: 'center', width: 120, hidden: true },
{ header: '체크박스여부', name: 'selected', align: 'center', width: 120, hidden: true },
];
},
@ -225,6 +226,20 @@
}
});
// 렌더링완료 후 check box
this.instance.on('onGridUpdated', function() {
var allRows = self.instance.getData();
var rowKey = null;
allRows.forEach(function(row) {
console.log(row.selected);
if (row.selected) {
rowKey = row.rowKey
}
// 1. 체크박스 선택
self.instance.check(rowKey);
});
});
},
},
@ -261,6 +276,7 @@
/**
* 저장
* 중요한 로직 주석: 폼 데이터와 그리드에서 선택된 이행 대상자 정보를 수집하여 저장 요청을 보냅니다.
*/
save: function() {
var self = this;
@ -270,7 +286,26 @@
return;
}
var formData = "";
// 폼 데이터 수집
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];
for (var key in trprInfo) {
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"/>';
@ -293,6 +328,60 @@
});
},
/**
* 폼 데이터 수집
* 중요한 로직 주석: 이행정보 등록/수정에 필요한 폼 데이터를 수집합니다.
*/
collectFormData: function() {
return {
mode: $('#mode').val(),
impltInfoId: $('#impltInfoId').val(),
crdnYr: $('#crdnYr').val(),
crdnNo: $('#crdnNo').val(),
impltTaskSeCd: $('#impltTaskSeCd').val(),
sggCd: $('#sggCd').val(),
impltBgngYmd: $('#impltBgngYmd').val().replace(/\D/g, ''), // 숫자만 추출 (YYYYMMDD 형태로)
impltEndYmd: $('#impltEndYmd').val().replace(/\D/g, ''), // 숫자만 추출 (YYYYMMDD 형태로)
impltDaysCnt: $('#impltDaysCnt').val()
};
},
/**
* 그리드에서 선택된 이행 대상자 정보 수집
* 중요한 로직 주석: 체크박스가 선택된 행의 데이터를 수집하여 이행 대상자 정보 배열을 생성합니다.
*/
collectSelectedTrprInfo: function() {
var selectedTrprInfoList = [];
var checkedRowKeys = this.grid.instance.getCheckedRowKeys();
if (checkedRowKeys && checkedRowKeys.length > 0) {
for (var i = 0; i < checkedRowKeys.length; i++) {
var rowKey = checkedRowKeys[i];
var rowData = this.grid.instance.getRow(rowKey);
if (rowData) {
// 이행 대상자 정보 객체 생성
var trprInfo = {
ownrActrInfoId: rowData.ownrActrInfoId,
impltTrprSeCd: rowData.impltTrprSeCd || '1', // 1:소유자, 2:행위자 (기본값: 소유자)
impltTrprFlnm: rowData.impltTrprFlnm,
impltTrprZip: rowData.impltTrprZip,
impltTrprAddr: rowData.impltTrprAddr,
impltTrprDaddr: rowData.impltTrprDaddr,
actNo: rowData.actNo,
actTypeCd: rowData.actTypeCd,
lotnoMno: rowData.lotnoMno,
lotnoSno: rowData.lotnoSno
};
selectedTrprInfoList.push(trprInfo);
}
}
}
return selectedTrprInfoList;
},
/**
* 폼 유효성 검증
*/

Loading…
Cancel
Save