부과예고 계산식 중간저장...

가감산시행령률 시작 전
dev
박성영 3 months ago
parent 6588677d80
commit 71686720c1

@ -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<CrdnCmpttnRt2VO> crdnCmpttnRt2List = crdnLevyPrvntcService.getAllCmpttnRt2( new CrdnCmpttnRt2VO() );
mav.addObject("crdnCmpttnRt2List", crdnCmpttnRt2List);
// 기초공사구분 코드
List<CodeDetailVO> bscsCstrnSeCdList = commonCodeService.selectCodeDetailListByGroupId("BSCS_CSTRN_SE_CD");
mav.addObject("bscsCstrnSeCdList", bscsCstrnSeCdList);

@ -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<LevyPrvntcActInfoVO> selectActInfoList(LevyPrvntcActInfoVO vo);
List<CrdnCmpttnRt2VO> getAllCmpttnRt2(CrdnCmpttnRt2VO vo);
}

@ -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;
}
}
}

@ -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;
}
}
}

@ -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<LevyPrvntcActInfoVO> selectActInfoList(LevyPrvntcActInfoVO vo);
List<CrdnCmpttnRt2VO> getAllCmpttnRt2(CrdnCmpttnRt2VO vo);
}

@ -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<CrdnCmpttnRt2VO> getAllCmpttnRt2(CrdnCmpttnRt2VO vo) {
return crdnLevyPrvntcMapper.getAllCmpttnRt2(vo);
}
}

@ -60,4 +60,17 @@
and t1.CRDN_NO = #{crdnNo}
</select>
<select id="getAllCmpttnRt2" parameterType="CrdnCmpttnRt2VO" resultType="CrdnCmpttnRt2VO">
select CMPTTN_RT_2_CD,
VLTN_MTTR,
CMPTTN_RT_2,
USE_YN,
REG_DT,
RGTR,
MDFCN_DT,
MDFR
from tb_cmpttn_rt_2
where USE_YN = 'Y'
</select>
</mapper>

@ -128,7 +128,7 @@
<div class="tabels cols2 no-info">
<table class="display">
<tr>
<th rowspan="3" style="width: 100px;">이행강제금산출</th>
<th rowspan="4" style="width: 100px;">이행강제금산출</th>
<th style="border-right: 0; border-bottom: 0;">시가표준액</th>
<th style="width: 23px; border-right: 0; border-bottom: 0;"></th>
<th style="border-right: 0; border-bottom: 0;">위반면적</th>
@ -151,16 +151,22 @@
</td>
<td rowspan="2" style="width: 23px; border-right: 0; border-bottom: 0;">X</td>
<td rowspan="2" style="border-right: 0; border-bottom: 0;">
<input type="text" class="input" value=""/>
<input type="text" class="input" id="" value="" readonly/>
</td>
<td rowspan="2" style="width: 23px; border-right: 0; border-bottom: 0;">X</td>
<td rowspan="2" style="border-right: 0; border-bottom: 0;">
<input type="text" class="input" value=""/>
<input type="text" class="input" id="cmpttnRt" value="" style="text-align: right;" readonly/>
<input type="hidden" class="input" id="cmpttnRtRate" value="" readonly/>
</td>
<td rowspan="2" style="width: 23px; border-right: 0; border-bottom: 0;">X</td>
<td style="border-right: 0; border-bottom: 0;">
<select id="" class="input">
<option></option>
<select id="cmpttnRt2Cd" class="input">
<option value="">선택하세요.</option>
<c:forEach var="code" items="${crdnCmpttnRt2List}">
<option value="${code.cmpttnRt2Cd}" rateValueAttribute="${code.cmpttnRt2} %" rateValueAttribute2="${code.cmpttnRt2Rate}" >
${code.vltnMttr}
</option>
</c:forEach>
</select>
</td>
<td rowspan="2" style="width: 23px; border-right: 0; border-bottom: 0;">=</td>
@ -168,11 +174,11 @@
</tr>
<tr>
<td style="border-top: 0; border-right: 0; border-bottom: 0;">
<input type="text" id="actCmpttnRt" class="input decimalMask" value=""/>
<input type="text" id="actCmpttnRt" class="input" style="text-align: right;" value="" readonly/>
</td>
</tr>
<tr>
<td colspan="12"><strong>부과총액 = 결과값</strong></td>
<td colspan="12" style="border-top: 0;"><strong>부과총액 = 결과값 계산로직 진행 중</strong></td>
</tr>
</table>
</div>
@ -207,10 +213,10 @@
<td rowspan="2" style="width: 23px; border-right: 0;">X</td>
<td style="border-right: 0; border-bottom: 0;"><input type="text" class="input numericMask" id="pstnIdx_nm" readonly/></td>
<td rowspan="2" style="width: 23px; border-right: 0;">X</td>
<td style="border-right: 0; border-bottom: 0;"><input type="text" class="input" id="elpsYrRdvlrt_yr" readonly/></td>
<td style="border-right: 0; border-bottom: 0;"><input type="text" class="input" style="text-align: right;" id="elpsYrRdvlrt_yr" readonly/></td>
<td rowspan="2" style="width: 23px; border-right: 0;">X</td>
<td style="border-right: 0; border-bottom: 0;">
<select id="bscsCstrnSeCd" name="bscsCstrnSeCd" class="input" style="width: 180px;" validation-check="required">
<select id="bscsCstrnSeCd" name="bscsCstrnSeCd" class="input" validation-check="required">
<option value="">선택하세요</option>
<c:forEach var="code" items="${bscsCstrnSeCdList}">
<option value="${code.cdId}">${code.cdNm}</option>
@ -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);

Loading…
Cancel
Save