diff --git a/src/main/java/go/kr/project/crdn/crndRegistAndView/main/service/impl/CrdnImpltTaskServiceImpl.java b/src/main/java/go/kr/project/crdn/crndRegistAndView/main/service/impl/CrdnImpltTaskServiceImpl.java index be27448..f49fad9 100644 --- a/src/main/java/go/kr/project/crdn/crndRegistAndView/main/service/impl/CrdnImpltTaskServiceImpl.java +++ b/src/main/java/go/kr/project/crdn/crndRegistAndView/main/service/impl/CrdnImpltTaskServiceImpl.java @@ -117,22 +117,8 @@ public class CrdnImpltTaskServiceImpl extends EgovAbstractServiceImpl implements } } - CrdnRegistAndViewVO crdnRegistAndViewVO = new CrdnRegistAndViewVO(); - crdnRegistAndViewVO.setCrdnYr(vo.getCrdnYr()); - crdnRegistAndViewVO.setCrdnNo(vo.getCrdnNo()); - //사전처분 - 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 if( vo.getImpltTaskSeCd().equals(ImpltTaskSeConstants.IMPLT_TASK_SE_CD_4_LEVY_PRVNTC) ){ //부과예고 - crdnRegistAndViewVO.setCrdnPrcsSttsCd(CRDN_PRCS_STTS_CD_50_LEVY_PRVNTC); //단속 처리 상태 코드 - 50: 부과예고 - }else{ - throw new MessageException("이행정보 코드가 없습니다."); - } - crdnRegistAndViewMapper.updateStatus(crdnRegistAndViewVO); + // 중요로직: 이행정보에 따른 단속 처리 상태 업데이트 (신규 등록) + updateCrdnRegistAndViewStatus(vo, true); log.debug("이행정보 등록 완료 - ID: {}", impltInfoId); return result; @@ -176,24 +162,8 @@ public class CrdnImpltTaskServiceImpl extends EgovAbstractServiceImpl implements } } - CrdnRegistAndViewVO crdnRegistAndViewVO = new CrdnRegistAndViewVO(); - crdnRegistAndViewVO.setCrdnYr(vo.getCrdnYr()); - crdnRegistAndViewVO.setCrdnNo(vo.getCrdnNo()); - crdnRegistAndViewVO.setDspsBfhdBgngYmd(vo.getImpltBgngYmd()); - crdnRegistAndViewVO.setDspsBfhdEndYmd(vo.getImpltEndYmd()); - //사전처분 - 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 if( vo.getImpltTaskSeCd().equals(ImpltTaskSeConstants.IMPLT_TASK_SE_CD_4_LEVY_PRVNTC) ){ //부과예고 - crdnRegistAndViewVO.setCrdnPrcsSttsCd(CRDN_PRCS_STTS_CD_50_LEVY_PRVNTC); //단속 처리 상태 코드 - 50: 부과예고 - }else{ - throw new MessageException("이행정보 코드가 없습니다."); - } - crdnRegistAndViewMapper.updateOnlyDate(crdnRegistAndViewVO); + // 중요로직: 이행정보에 따른 단속 처리 상태 업데이트 (수정) + updateCrdnRegistAndViewStatus(vo, false); log.debug("이행정보 수정 완료 - ID: {}", vo.getImpltInfoId()); return result; @@ -350,4 +320,44 @@ public class CrdnImpltTaskServiceImpl extends EgovAbstractServiceImpl implements throw new MessageException("이행 시작일자는 종료일자보다 이전이어야 합니다."); } } + + /** + * 이행정보에 따른 단속 처리 상태 업데이트 + * 중요로직: 이행업무구분코드별로 해당하는 시작/종료일자와 처리상태코드를 설정하여 단속정보 상태를 업데이트합니다. + * @param vo 이행정보 VO + * @param isInsert 신규 등록 여부 (true: 신규 등록 시 updateStatus 사용, false: 수정 시 updateOnlyDate 사용) + */ + private void updateCrdnRegistAndViewStatus(CrdnImpltTaskVO vo, boolean isInsert) { + CrdnRegistAndViewVO crdnRegistAndViewVO = new CrdnRegistAndViewVO(); + crdnRegistAndViewVO.setCrdnYr(vo.getCrdnYr()); + crdnRegistAndViewVO.setCrdnNo(vo.getCrdnNo()); + + //사전처분 + if( vo.getImpltTaskSeCd().equals(ImpltTaskSeConstants.IMPLT_TASK_SE_CD_1_DSPS_BFHD) ){ + crdnRegistAndViewVO.setDspsBfhdBgngYmd(vo.getImpltBgngYmd()); + crdnRegistAndViewVO.setDspsBfhdEndYmd(vo.getImpltEndYmd()); + crdnRegistAndViewVO.setCrdnPrcsSttsCd(CRDN_PRCS_STTS_CD_20_DSPS_BFHD); //단속 처리 상태 코드 - 20: 처분사전 + }else if( vo.getImpltTaskSeCd().equals(ImpltTaskSeConstants.IMPLT_TASK_SE_CD_2_CRC_CMD) ){ //시정명령 + crdnRegistAndViewVO.setCrcCmdBgngYmd(vo.getImpltBgngYmd()); + crdnRegistAndViewVO.setCrcCmdEndYmd(vo.getImpltEndYmd()); + crdnRegistAndViewVO.setCrdnPrcsSttsCd(CRDN_PRCS_STTS_CD_30_CRC_CMD); //단속 처리 상태 코드 - 30: 시정명령 + }else if( vo.getImpltTaskSeCd().equals(ImpltTaskSeConstants.IMPLT_TASK_SE_CD_3_CRC_URG) ){ //시정촉구 + crdnRegistAndViewVO.setCrcUrgBgngYmd(vo.getImpltBgngYmd()); + crdnRegistAndViewVO.setCrcUrgEndYmd(vo.getImpltEndYmd()); + crdnRegistAndViewVO.setCrdnPrcsSttsCd(CRDN_PRCS_STTS_CD_40_CRC_URG); //단속 처리 상태 코드 - 40: 시정촉구 + }else if( vo.getImpltTaskSeCd().equals(ImpltTaskSeConstants.IMPLT_TASK_SE_CD_4_LEVY_PRVNTC) ){ //부과예고 + crdnRegistAndViewVO.setLevyPrvntcBgngYmd(vo.getImpltBgngYmd()); + crdnRegistAndViewVO.setLevyPrvntcEndYmd(vo.getImpltEndYmd()); + crdnRegistAndViewVO.setCrdnPrcsSttsCd(CRDN_PRCS_STTS_CD_50_LEVY_PRVNTC); //단속 처리 상태 코드 - 50: 부과예고 + }else{ + throw new MessageException("이행정보 코드가 없습니다."); + } + + // 신규 등록 시 상태 업데이트, 수정 시 날짜만 업데이트 + if (isInsert) { + crdnRegistAndViewMapper.updateStatus(crdnRegistAndViewVO); + } else { + crdnRegistAndViewMapper.updateOnlyDate(crdnRegistAndViewVO); + } + } } \ No newline at end of file