diff --git a/src/main/java/go/kr/project/crdn/crndRegistAndView/main/controller/CrdnImpltTaskController.java b/src/main/java/go/kr/project/crdn/crndRegistAndView/main/controller/CrdnImpltTaskController.java index e28178a..c9bda46 100644 --- a/src/main/java/go/kr/project/crdn/crndRegistAndView/main/controller/CrdnImpltTaskController.java +++ b/src/main/java/go/kr/project/crdn/crndRegistAndView/main/controller/CrdnImpltTaskController.java @@ -240,13 +240,15 @@ public class CrdnImpltTaskController { @Operation(summary = "소유자/행위자 정보 조회", description = "단속 정보에 해당하는 소유자/행위자 정보 목록을 조회합니다.") public ResponseEntity selectOwnrInfoList( @Parameter(description = "단속 연도") @RequestParam String crdnYr, - @Parameter(description = "단속 번호") @RequestParam String crdnNo) { + @Parameter(description = "단속 번호") @RequestParam String crdnNo, + @Parameter(description = "이행 정보 ID") @RequestParam(required = false) String impltInfoId) { - log.debug("소유자 정보 조회 요청 - 단속연도: {}, 단속번호: {}", crdnYr, crdnNo); + log.debug("소유자 정보 조회 요청 - 단속연도: {}, 단속번호: {}, 이행정보ID: {}", crdnYr, crdnNo, impltInfoId); CrdnImpltTaskVO paramVO = new CrdnImpltTaskVO(); paramVO.setCrdnYr(crdnYr); paramVO.setCrdnNo(crdnNo); + paramVO.setImpltInfoId(impltInfoId); List list = crdnImpltTaskService.getOwnrAndActrListWithAttributes(paramVO); diff --git a/src/main/java/go/kr/project/crdn/crndRegistAndView/main/service/impl/CrdnCrdnImpltTaskServiceImpl.java b/src/main/java/go/kr/project/crdn/crndRegistAndView/main/service/impl/CrdnCrdnImpltTaskServiceImpl.java index 9c82fc5..724a44d 100644 --- a/src/main/java/go/kr/project/crdn/crndRegistAndView/main/service/impl/CrdnCrdnImpltTaskServiceImpl.java +++ b/src/main/java/go/kr/project/crdn/crndRegistAndView/main/service/impl/CrdnCrdnImpltTaskServiceImpl.java @@ -1,5 +1,6 @@ package go.kr.project.crdn.crndRegistAndView.main.service.impl; +import egovframework.constant.ImpltTaskSeConstants; import egovframework.exception.MessageException; import egovframework.util.SessionUtil; import egovframework.util.StringUtil; @@ -24,7 +25,7 @@ import java.util.HashMap; import java.util.List; import java.util.Map; -import static egovframework.constant.CrdnPrcsSttsConstants.CRDN_PRCS_STTS_CD_20_DSPS_BFHD; +import static egovframework.constant.CrdnPrcsSttsConstants.*; /** * packageName : go.kr.project.crdn.crndRegistAndView.main.impltTask.service.impl @@ -119,7 +120,16 @@ public class CrdnCrdnImpltTaskServiceImpl extends EgovAbstractServiceImpl implem CrdnRegistAndViewVO crdnRegistAndViewVO = new CrdnRegistAndViewVO(); crdnRegistAndViewVO.setCrdnYr(vo.getCrdnYr()); crdnRegistAndViewVO.setCrdnNo(vo.getCrdnNo()); - crdnRegistAndViewVO.setCrdnPrcsSttsCd(CRDN_PRCS_STTS_CD_20_DSPS_BFHD); //단속 처리 상태 코드 - 20: 처분사전 + //사전처분 + if( vo.getImpltTaskSeCd().equals(ImpltTaskSeConstants.IMPLT_TASK_SE_CD_1_DSPS_BFHD) ){ + crdnRegistAndViewVO.setCrdnPrcsSttsCd(CRDN_PRCS_STTS_CD_20_DSPS_BFHD); //단속 처리 상태 코드 - 20: 처분사전 + }else if( vo.getImpltTaskSeCd().equals(ImpltTaskSeConstants.IMPLT_TASK_SE_CD_2_CRC_CMD) ){ //시정명령 + crdnRegistAndViewVO.setCrdnPrcsSttsCd(CRDN_PRCS_STTS_CD_30_CRC_CMD); //단속 처리 상태 코드 - 30: 시정명령 + }else if( vo.getImpltTaskSeCd().equals(ImpltTaskSeConstants.IMPLT_TASK_SE_CD_3_CRC_URG) ){ //시정촉구 + crdnRegistAndViewVO.setCrdnPrcsSttsCd(CRDN_PRCS_STTS_CD_40_CRC_URG); //단속 처리 상태 코드 - 40: 시정촉구 + }else{ + throw new MessageException("이행정보 코드가 없습니다."); + } crdnRegistAndViewMapper.updateStatus(crdnRegistAndViewVO); log.debug("이행정보 등록 완료 - ID: {}", impltInfoId); @@ -169,7 +179,16 @@ public class CrdnCrdnImpltTaskServiceImpl extends EgovAbstractServiceImpl implem crdnRegistAndViewVO.setCrdnNo(vo.getCrdnNo()); crdnRegistAndViewVO.setDspsBfhdBgngYmd(vo.getImpltBgngYmd()); crdnRegistAndViewVO.setDspsBfhdEndYmd(vo.getImpltEndYmd()); - crdnRegistAndViewVO.setCrdnPrcsSttsCd(CRDN_PRCS_STTS_CD_20_DSPS_BFHD); + //사전처분 + if( vo.getImpltTaskSeCd().equals(ImpltTaskSeConstants.IMPLT_TASK_SE_CD_1_DSPS_BFHD) ){ + crdnRegistAndViewVO.setCrdnPrcsSttsCd(CRDN_PRCS_STTS_CD_20_DSPS_BFHD); //단속 처리 상태 코드 - 20: 처분사전 + }else if( vo.getImpltTaskSeCd().equals(ImpltTaskSeConstants.IMPLT_TASK_SE_CD_2_CRC_CMD) ){ //시정명령 + crdnRegistAndViewVO.setCrdnPrcsSttsCd(CRDN_PRCS_STTS_CD_30_CRC_CMD); //단속 처리 상태 코드 - 30: 시정명령 + }else if( vo.getImpltTaskSeCd().equals(ImpltTaskSeConstants.IMPLT_TASK_SE_CD_3_CRC_URG) ){ //시정촉구 + crdnRegistAndViewVO.setCrdnPrcsSttsCd(CRDN_PRCS_STTS_CD_40_CRC_URG); //단속 처리 상태 코드 - 40: 시정촉구 + }else{ + throw new MessageException("이행정보 코드가 없습니다."); + } crdnRegistAndViewMapper.updateOnlyDate(crdnRegistAndViewVO); log.debug("이행정보 수정 완료 - ID: {}", vo.getImpltInfoId()); diff --git a/src/main/resources/mybatis/mapper/crdn/crndRegistAndView/main/CrdnImpltTaskMapper_maria.xml b/src/main/resources/mybatis/mapper/crdn/crndRegistAndView/main/CrdnImpltTaskMapper_maria.xml index 5bc242f..94ec864 100644 --- a/src/main/resources/mybatis/mapper/crdn/crndRegistAndView/main/CrdnImpltTaskMapper_maria.xml +++ b/src/main/resources/mybatis/mapper/crdn/crndRegistAndView/main/CrdnImpltTaskMapper_maria.xml @@ -205,7 +205,12 @@ o.LOTNO_SNO, '1' as impltTrprSeCd, impltTrprSe.CD_NM as impltTrprSeCdNm, - CASE WHEN (SELECT COUNT(*) FROM tb_implt_trpr_info WHERE OWNR_ACTR_INFO_ID = oi.OWNR_INFO_ID AND IMPLT_TRPR_SE_CD = '1' AND ACT_NO = aio.ACT_NO) > 0 THEN true ELSE false END as selected, + CASE WHEN (SELECT COUNT(*) FROM tb_implt_trpr_info + WHERE OWNR_ACTR_INFO_ID = oi.OWNR_INFO_ID + AND IMPLT_TRPR_SE_CD = '1' + AND ACT_NO = aio.ACT_NO + AND IMPLT_INFO_ID = #{impltInfoId} + ) > 0 THEN true ELSE false END as selected, aio.ACT_NO, aio.ACT_TYPE_CD, act.CD_NM AS ACT_TYPE_CD_NM @@ -232,7 +237,12 @@ o.LOTNO_SNO, '2' as impltTrprSeCd, impltTrprSe.CD_NM as impltTrprSeCdNm, - CASE WHEN (SELECT COUNT(*) FROM tb_implt_trpr_info WHERE OWNR_ACTR_INFO_ID = ai.ACTR_INFO_ID AND IMPLT_TRPR_SE_CD = '2' AND ACT_NO = aio.ACT_NO) > 0 THEN true ELSE false END as selected, + CASE WHEN (SELECT COUNT(*) FROM tb_implt_trpr_info + WHERE OWNR_ACTR_INFO_ID = ai.ACTR_INFO_ID + AND IMPLT_TRPR_SE_CD = '2' + AND ACT_NO = aio.ACT_NO + AND IMPLT_INFO_ID = #{impltInfoId} + ) > 0 THEN true ELSE false END as selected, aio.ACT_NO, aio.ACT_TYPE_CD, act.CD_NM AS ACT_TYPE_CD_NM diff --git a/src/main/webapp/WEB-INF/views/crdn/crndRegistAndView/main/crdnImpltTask/impltTaskPopup.jsp b/src/main/webapp/WEB-INF/views/crdn/crndRegistAndView/main/crdnImpltTask/impltTaskPopup.jsp index b210418..c67488b 100644 --- a/src/main/webapp/WEB-INF/views/crdn/crndRegistAndView/main/crdnImpltTask/impltTaskPopup.jsp +++ b/src/main/webapp/WEB-INF/views/crdn/crndRegistAndView/main/crdnImpltTask/impltTaskPopup.jsp @@ -77,7 +77,7 @@
@@ -191,7 +191,7 @@ initialRequest: false, // 초기 데이터 요청 여부 serializer: function(params) { var defaultParams = $.param(params); - var extra = $.param({ "crdnYr": ImpltTaskPopup.crdnYr, "crdnNo": ImpltTaskPopup.crdnNo }); + var extra = $.param({ "crdnYr": ImpltTaskPopup.crdnYr, "crdnNo": ImpltTaskPopup.crdnNo, "impltInfoId": $("#impltInfoId").val() }); return defaultParams + '&' + extra; } }; diff --git a/src/main/webapp/WEB-INF/views/crdn/crndRegistAndView/main/list.jsp b/src/main/webapp/WEB-INF/views/crdn/crndRegistAndView/main/list.jsp index ed3af0f..38581db 100644 --- a/src/main/webapp/WEB-INF/views/crdn/crndRegistAndView/main/list.jsp +++ b/src/main/webapp/WEB-INF/views/crdn/crndRegistAndView/main/list.jsp @@ -569,11 +569,25 @@ }); $("#btnCrcCmd").on('click', function() { - self.updateStatus('30', '시정명령'); + // 선택된 행 확인 + if (!self.selectedRow) { + alert('이행정보를 관리할 단속 건을 선택해주세요.'); + return; + } + + // 시정명령 팝업 열기 + self.openImpltTaskPopup(self.selectedRow.crdnYr, self.selectedRow.crdnNo, '2'); // 2: 시정명령 }); $("#btnCrcUrg").on('click', function() { - self.updateStatus('40', '시정촉구'); + // 선택된 행 확인 + if (!self.selectedRow) { + alert('이행정보를 관리할 단속 건을 선택해주세요.'); + return; + } + + // 시정촉구 팝업 열기 + self.openImpltTaskPopup(self.selectedRow.crdnYr, self.selectedRow.crdnNo, '3'); // 3: 시정촉구 }); $("#btnLevyPrvntc").on('click', function() {