From 71686720c17781edd412021d49e311f5f5dd1380 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=EB=B0=95=EC=84=B1=EC=98=81?= Date: Fri, 19 Sep 2025 16:18:39 +0900 Subject: [PATCH] =?UTF-8?q?=EB=B6=80=EA=B3=BC=EC=98=88=EA=B3=A0=20?= =?UTF-8?q?=EA=B3=84=EC=82=B0=EC=8B=9D=20=EC=A4=91=EA=B0=84=EC=A0=80?= =?UTF-8?q?=EC=9E=A5...=20=EA=B0=80=EA=B0=90=EC=82=B0=EC=8B=9C=ED=96=89?= =?UTF-8?q?=EB=A0=B9=EB=A5=A0=20=EC=8B=9C=EC=9E=91=20=EC=A0=84?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../controller/CrdnLevyPrvntcController.java | 10 +-- .../main/mapper/CrdnLevyPrvntcMapper.java | 3 + .../main/model/CrdnCmpttnRt2VO.java | 69 +++++++++++++++++++ .../main/model/LevyPrvntcActInfoVO.java | 19 ++++- .../main/service/CrdnLevyPrvntcService.java | 3 + .../impl/CrdnLevyPrvntcServiceImpl.java | 6 ++ .../main/CrdnLevyPrvntcMapper_maria.xml | 13 ++++ .../main/crdnLevyPrvntc/levyPrvntcPopup.jsp | 39 +++++++---- 8 files changed, 145 insertions(+), 17 deletions(-) create mode 100644 src/main/java/go/kr/project/crdn/crndRegistAndView/main/model/CrdnCmpttnRt2VO.java diff --git a/src/main/java/go/kr/project/crdn/crndRegistAndView/main/controller/CrdnLevyPrvntcController.java b/src/main/java/go/kr/project/crdn/crndRegistAndView/main/controller/CrdnLevyPrvntcController.java index ba7684b..fe77832 100644 --- a/src/main/java/go/kr/project/crdn/crndRegistAndView/main/controller/CrdnLevyPrvntcController.java +++ b/src/main/java/go/kr/project/crdn/crndRegistAndView/main/controller/CrdnLevyPrvntcController.java @@ -10,10 +10,7 @@ import go.kr.project.crdn.crndRegistAndView.crdnActInfo.model.CrdnActInfoVO; import go.kr.project.crdn.crndRegistAndView.crdnActInfo.service.CrdnActInfoService; import go.kr.project.crdn.crndRegistAndView.crdnPstnInfo.model.CrdnPstnInfoVO; import go.kr.project.crdn.crndRegistAndView.crdnPstnInfo.service.CrdnPstnInfoService; -import go.kr.project.crdn.crndRegistAndView.main.model.CrdnImpltTaskVO; -import go.kr.project.crdn.crndRegistAndView.main.model.CrdnImpltTrprInfoVO; -import go.kr.project.crdn.crndRegistAndView.main.model.CrdnRegistAndViewVO; -import go.kr.project.crdn.crndRegistAndView.main.model.LevyPrvntcActInfoVO; +import go.kr.project.crdn.crndRegistAndView.main.model.*; import go.kr.project.crdn.crndRegistAndView.main.service.CrdnImpltTaskService; import go.kr.project.crdn.crndRegistAndView.main.service.CrdnLevyPrvntcService; import go.kr.project.crdn.crndRegistAndView.main.service.CrdnRegistAndViewService; @@ -115,6 +112,11 @@ public class CrdnLevyPrvntcController { CrdnRegistAndViewVO crdnData = crdnRegistAndViewService.selectOne(crdnParamVO); mav.addObject("crdnData", crdnData); + // 산정률2 + List crdnCmpttnRt2List = crdnLevyPrvntcService.getAllCmpttnRt2( new CrdnCmpttnRt2VO() ); + mav.addObject("crdnCmpttnRt2List", crdnCmpttnRt2List); + + // 기초공사구분 코드 List bscsCstrnSeCdList = commonCodeService.selectCodeDetailListByGroupId("BSCS_CSTRN_SE_CD"); mav.addObject("bscsCstrnSeCdList", bscsCstrnSeCdList); diff --git a/src/main/java/go/kr/project/crdn/crndRegistAndView/main/mapper/CrdnLevyPrvntcMapper.java b/src/main/java/go/kr/project/crdn/crndRegistAndView/main/mapper/CrdnLevyPrvntcMapper.java index 35bae33..f15de1f 100644 --- a/src/main/java/go/kr/project/crdn/crndRegistAndView/main/mapper/CrdnLevyPrvntcMapper.java +++ b/src/main/java/go/kr/project/crdn/crndRegistAndView/main/mapper/CrdnLevyPrvntcMapper.java @@ -1,5 +1,6 @@ package go.kr.project.crdn.crndRegistAndView.main.mapper; +import go.kr.project.crdn.crndRegistAndView.main.model.CrdnCmpttnRt2VO; import go.kr.project.crdn.crndRegistAndView.main.model.CrdnImpltTaskVO; import go.kr.project.crdn.crndRegistAndView.main.model.CrdnImpltTrprInfoVO; import go.kr.project.crdn.crndRegistAndView.main.model.LevyPrvntcActInfoVO; @@ -25,4 +26,6 @@ public interface CrdnLevyPrvntcMapper { List selectActInfoList(LevyPrvntcActInfoVO vo); + List getAllCmpttnRt2(CrdnCmpttnRt2VO vo); + } \ No newline at end of file diff --git a/src/main/java/go/kr/project/crdn/crndRegistAndView/main/model/CrdnCmpttnRt2VO.java b/src/main/java/go/kr/project/crdn/crndRegistAndView/main/model/CrdnCmpttnRt2VO.java new file mode 100644 index 0000000..119a9b2 --- /dev/null +++ b/src/main/java/go/kr/project/crdn/crndRegistAndView/main/model/CrdnCmpttnRt2VO.java @@ -0,0 +1,69 @@ +package go.kr.project.crdn.crndRegistAndView.main.model; + +import com.fasterxml.jackson.annotation.JsonFormat; +import go.kr.project.common.model.PagingVO; +import lombok.*; +import org.apache.poi.hpsf.Decimal; +import org.springframework.format.annotation.DateTimeFormat; + +import java.math.BigDecimal; +import java.time.LocalDateTime; + +/** + * packageName : go.kr.project.crdn.crndRegistAndView.main.model + * fileName : CrdnCmpttnRt2VO + * author : 박성영 + * date : 25. 9. 18. + * description : + * =========================================================== + * DATE AUTHOR NOTE + * ----------------------------------------------------------- + * 25. 9. 18. 박성영 최초 생성 + */ +@Data +@Builder +@AllArgsConstructor +@NoArgsConstructor +@ToString +public class CrdnCmpttnRt2VO { + + private String cmpttnRt2Cd; + private String vltnMttr; + private BigDecimal cmpttnRt2; + private BigDecimal cmpttnRt2Rate; + private String useYn; + + /** 등록 일시 */ + @DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss") + @JsonFormat(shape = JsonFormat.Shape.STRING, pattern = "yyyy-MM-dd HH:mm:ss", timezone = "Asia/Seoul") + private LocalDateTime regDt; + + /** 등록자 */ + private String rgtr; + + /** 수정 일시 */ + @DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss") + @JsonFormat(shape = JsonFormat.Shape.STRING, pattern = "yyyy-MM-dd HH:mm:ss", timezone = "Asia/Seoul") + private LocalDateTime mdfcnDt; + + /** 수정자 */ + private String mdfr; + + /** + * cmpttnRt2 값을 설정할 때, 100으로 나눈 비율 값을 cmpttnRt2Rate에 자동으로 설정합니다. + * @param cmpttnRt2 원본 비율 값 (예: 90, 70) + */ + public void setCmpttnRt2(BigDecimal cmpttnRt2) { + // 중요로직: cmpttnRt2(산정률)이 설정될 때, cmpttnRt2Rate(계산용 비율)을 자동으로 계산하여 설정합니다. + // 예를 들어 cmpttnRt2가 90이면, cmpttnRt2Rate는 0.90이 됩니다. + this.cmpttnRt2 = cmpttnRt2; + + if (cmpttnRt2 != null) { + // 100으로 나누고, 소수점 2자리까지 반올림하여 설정 + this.cmpttnRt2Rate = cmpttnRt2.divide(new BigDecimal("100"), 2, java.math.RoundingMode.HALF_UP); + } else { + this.cmpttnRt2Rate = null; + } + } + +} diff --git a/src/main/java/go/kr/project/crdn/crndRegistAndView/main/model/LevyPrvntcActInfoVO.java b/src/main/java/go/kr/project/crdn/crndRegistAndView/main/model/LevyPrvntcActInfoVO.java index c9b489b..5b724bd 100644 --- a/src/main/java/go/kr/project/crdn/crndRegistAndView/main/model/LevyPrvntcActInfoVO.java +++ b/src/main/java/go/kr/project/crdn/crndRegistAndView/main/model/LevyPrvntcActInfoVO.java @@ -35,7 +35,8 @@ public class LevyPrvntcActInfoVO extends PagingVO { private String actBgngYmd; //행위시작일자 private String actTypeCd; //행위유형코드 private String actTypeCdNm; //행위유형코드명 - private BigDecimal actCmpttnRt; //행위유형 산정률 (산정률-1) + private BigDecimal actCmpttnRt; //행위유형 산정률(%) (산정률-1) + private BigDecimal actCmpttnRtRate; //행위유형 산정률 / 100 실제 곱하기 계산값에 필요한 값 (산정률-1) private String vltnLwrgCd1; //위반법규코드 private String vltnLaw1; //위반법 private String crcLaw1; //시정법 @@ -67,4 +68,20 @@ public class LevyPrvntcActInfoVO extends PagingVO { private String crdnYr; //단속년도 private String crdnNo; //단속번호 + /** + * actCmpttnRt 값을 설정할 때, 100으로 나눈 비율 값을 actCmpttnRtRate에 자동으로 설정합니다. + * @param actCmpttnRt 원본 비율 값 (예: 50) + */ + public void setActCmpttnRt(BigDecimal actCmpttnRt) { + // 중요로직: actCmpttnRt(산정률)이 설정될 때, actCmpttnRtRate(계산용 비율)을 자동으로 계산하여 설정합니다. + this.actCmpttnRt = actCmpttnRt; + + if (actCmpttnRt != null) { + // 100으로 나누고, 소수점 2자리까지 반올림하여 설정 + this.actCmpttnRtRate = actCmpttnRt.divide(new BigDecimal("100"), 2, java.math.RoundingMode.HALF_UP); + } else { + this.actCmpttnRtRate = null; + } + } + } diff --git a/src/main/java/go/kr/project/crdn/crndRegistAndView/main/service/CrdnLevyPrvntcService.java b/src/main/java/go/kr/project/crdn/crndRegistAndView/main/service/CrdnLevyPrvntcService.java index e5f65cd..ce2318c 100644 --- a/src/main/java/go/kr/project/crdn/crndRegistAndView/main/service/CrdnLevyPrvntcService.java +++ b/src/main/java/go/kr/project/crdn/crndRegistAndView/main/service/CrdnLevyPrvntcService.java @@ -1,5 +1,6 @@ package go.kr.project.crdn.crndRegistAndView.main.service; +import go.kr.project.crdn.crndRegistAndView.main.model.CrdnCmpttnRt2VO; import go.kr.project.crdn.crndRegistAndView.main.model.CrdnImpltTaskVO; import go.kr.project.crdn.crndRegistAndView.main.model.CrdnImpltTrprInfoVO; import go.kr.project.crdn.crndRegistAndView.main.model.LevyPrvntcActInfoVO; @@ -25,4 +26,6 @@ public interface CrdnLevyPrvntcService { * */ List selectActInfoList(LevyPrvntcActInfoVO vo); + List getAllCmpttnRt2(CrdnCmpttnRt2VO vo); + } \ No newline at end of file diff --git a/src/main/java/go/kr/project/crdn/crndRegistAndView/main/service/impl/CrdnLevyPrvntcServiceImpl.java b/src/main/java/go/kr/project/crdn/crndRegistAndView/main/service/impl/CrdnLevyPrvntcServiceImpl.java index a42fcab..2eba206 100644 --- a/src/main/java/go/kr/project/crdn/crndRegistAndView/main/service/impl/CrdnLevyPrvntcServiceImpl.java +++ b/src/main/java/go/kr/project/crdn/crndRegistAndView/main/service/impl/CrdnLevyPrvntcServiceImpl.java @@ -2,6 +2,7 @@ package go.kr.project.crdn.crndRegistAndView.main.service.impl; import go.kr.project.crdn.crndRegistAndView.main.mapper.CrdnImpltTaskMapper; import go.kr.project.crdn.crndRegistAndView.main.mapper.CrdnLevyPrvntcMapper; +import go.kr.project.crdn.crndRegistAndView.main.model.CrdnCmpttnRt2VO; import go.kr.project.crdn.crndRegistAndView.main.model.CrdnRegistAndViewVO; import go.kr.project.crdn.crndRegistAndView.main.model.LevyPrvntcActInfoVO; import go.kr.project.crdn.crndRegistAndView.main.service.CrdnLevyPrvntcService; @@ -61,4 +62,9 @@ public class CrdnLevyPrvntcServiceImpl extends EgovAbstractServiceImpl implement return actInfoList; } + @Override + public List getAllCmpttnRt2(CrdnCmpttnRt2VO vo) { + return crdnLevyPrvntcMapper.getAllCmpttnRt2(vo); + } + } \ No newline at end of file diff --git a/src/main/resources/mybatis/mapper/crdn/crndRegistAndView/main/CrdnLevyPrvntcMapper_maria.xml b/src/main/resources/mybatis/mapper/crdn/crndRegistAndView/main/CrdnLevyPrvntcMapper_maria.xml index 52a7a17..06c67eb 100644 --- a/src/main/resources/mybatis/mapper/crdn/crndRegistAndView/main/CrdnLevyPrvntcMapper_maria.xml +++ b/src/main/resources/mybatis/mapper/crdn/crndRegistAndView/main/CrdnLevyPrvntcMapper_maria.xml @@ -60,4 +60,17 @@ and t1.CRDN_NO = #{crdnNo} + + \ No newline at end of file diff --git a/src/main/webapp/WEB-INF/views/crdn/crndRegistAndView/main/crdnLevyPrvntc/levyPrvntcPopup.jsp b/src/main/webapp/WEB-INF/views/crdn/crndRegistAndView/main/crdnLevyPrvntc/levyPrvntcPopup.jsp index 994f01d..742a42d 100644 --- a/src/main/webapp/WEB-INF/views/crdn/crndRegistAndView/main/crdnLevyPrvntc/levyPrvntcPopup.jsp +++ b/src/main/webapp/WEB-INF/views/crdn/crndRegistAndView/main/crdnLevyPrvntc/levyPrvntcPopup.jsp @@ -128,7 +128,7 @@
- + @@ -151,16 +151,22 @@ @@ -168,11 +174,11 @@ - +
이행강제금산출이행강제금산출 시가표준액 위반면적 X - + X - + + X - + + + + =
- +
부과총액 = 결과값부과총액 = 결과값 계산로직 진행 중
@@ -207,10 +213,10 @@ X X - + X - @@ -425,9 +431,11 @@ if (!rowData) return; var vltnArea = rowData.calcArea; // 면적 - 조치면적 : 위반면적 - $('#vltnArea').val(vltnArea); // 기초공사율 + $('#vltnArea').val(vltnArea); // 위반면적 - rowData.actCmpttnRt; // 행위유형에 따른 산정률1 + // 행위유형에 따른 산정률1 설정 + $('#cmpttnRt').val(rowData.actCmpttnRt+ ' %'); + $('#cmpttnRtRate').val(rowData.actCmpttnRtRate); $('#bscsCstrnRt').val(''); // 기초공사율 $('#bscsCstrnSeCd').val(''); // 기초공사구분 @@ -444,7 +452,7 @@ $('#pstnIdx_nm').val(rowData.oalp).trigger('focus'); // 위치지수(상단) $('#pstnIdx').val(rowData.pstnIdx); // 위치지수(하단) - $('#elpsYrRdvlrt_yr').val(rowData.elpsYrRdvlrtYr); // 경과년수별잔가율(상단) + $('#elpsYrRdvlrt_yr').val(rowData.elpsYrRdvlrtYr+' 년'); // 경과년수별잔가율(상단) $('#elpsYrRdvlrt').val(rowData.elpsYrRdvlrt); // 경과년수별잔가율(하단) $('#bscsCstrnSeCd').trigger('change'); // 기초공사구분 변경 이벤트 트리거 @@ -519,6 +527,13 @@ } }); + // 산정률2 선택 시 산정률2 input에 값 설정 + $('#cmpttnRt2Cd').on('change', function() { + var selectedOption = $(this).find('option:selected'); + var rateValue = selectedOption.attr('rateValueAttribute'); + $('#actCmpttnRt').val(rateValue || '').trigger('focus'); + }); + // 계산에 사용되는 입력 필드 변경 시 자동 계산 호출 var calculationInputs = '#bldgNewPrcCrtrAmt, #strctIdx, #usgIdx, #pstnIdx, #elpsYrRdvlrt'; $(document).on('change', calculationInputs, calculateAuto);