old mode 100644
new mode 100755
| | |
| | | package com.java110.report.smo.impl; |
| | | |
| | | import com.alibaba.fastjson.JSON; |
| | | import com.alibaba.fastjson.JSONObject; |
| | | import com.java110.core.factory.GenerateCodeFactory; |
| | | import com.java110.core.smo.IComputeFeeSMO; |
| | |
| | | import com.java110.report.dao.IReportCommunityServiceDao; |
| | | import com.java110.report.dao.IReportFeeMonthStatisticsServiceDao; |
| | | import com.java110.report.dao.IReportFeeServiceDao; |
| | | import com.java110.utils.util.*; |
| | | import com.java110.utils.util.Assert; |
| | | import com.java110.utils.util.BeanConvertUtil; |
| | | import com.java110.utils.util.DateUtil; |
| | | import com.java110.utils.util.ListUtil; |
| | | import com.java110.utils.util.StringUtil; |
| | | import org.slf4j.Logger; |
| | | import org.slf4j.LoggerFactory; |
| | | import org.springframework.beans.factory.annotation.Autowired; |
| | |
| | | import org.springframework.web.bind.annotation.RestController; |
| | | |
| | | import java.math.BigDecimal; |
| | | import java.util.*; |
| | | import java.util.Calendar; |
| | | import java.util.Date; |
| | | import java.util.HashMap; |
| | | import java.util.List; |
| | | import java.util.Map; |
| | | |
| | | /** |
| | | * @ClassName GeneratorFeeMonthStatisticsInnerServiceSMOImpl |
| | |
| | | ReportFeeDto reportFeeDto = new ReportFeeDto(); |
| | | reportFeeDto.setPayerObjId(tmpReportCarDto.getCarId()); |
| | | reportFeeDto.setPayerObjType(FeeDto.PAYER_OBJ_TYPE_CAR); |
| | | reportFeeDto.setState(FeeDto.STATE_DOING); |
| | | //reportFeeDto.setState(FeeDto.STATE_DOING); |
| | | List<ReportFeeDto> feeDtos = reportFeeServiceDaoImpl.getFees(reportFeeDto); |
| | | |
| | | if (feeDtos == null || feeDtos.size() < 1) { |
| | |
| | | |
| | | private void doDealCarFee(ReportCarDto tmpReportCarDto, ReportFeeDto tmpReportFeeDto) { |
| | | |
| | | //费用已经结束 并且当月实收为0 那就是 之前就结束了 无需处理 && ListUtil.isNull(statistics) |
| | | if (FeeDto.STATE_FINISH.equals(tmpReportFeeDto.getState()) |
| | | && getCurFeeReceivedAmount(tmpReportFeeDto) == 0) { |
| | | return; |
| | | } |
| | | ReportFeeMonthStatisticsDto reportFeeMonthStatisticsDto = new ReportFeeMonthStatisticsDto(); |
| | | reportFeeMonthStatisticsDto.setCommunityId(tmpReportCarDto.getCommunityId()); |
| | | reportFeeMonthStatisticsDto.setConfigId(tmpReportFeeDto.getConfigId()); |
| | | reportFeeMonthStatisticsDto.setObjId(tmpReportFeeDto.getPayerObjId()); |
| | | reportFeeMonthStatisticsDto.setFeeId(tmpReportFeeDto.getFeeId()); |
| | | //reportFeeMonthStatisticsDto.setFeeId(tmpReportFeeDto.getFeeId()); |
| | | reportFeeMonthStatisticsDto.setObjType(tmpReportFeeDto.getPayerObjType()); |
| | | reportFeeMonthStatisticsDto.setFeeYear(DateUtil.getYear() + ""); |
| | | reportFeeMonthStatisticsDto.setFeeMonth(DateUtil.getMonth() + ""); |
| | |
| | | ReportFeeMonthStatisticsDto.class); |
| | | |
| | | double receivedAmount = getReceivedAmount(tmpReportFeeDto); //实收 |
| | | //费用已经结束 并且当月实收为0 那就是 之前就结束了 无需处理 && ListUtil.isNull(statistics) |
| | | if (FeeDto.STATE_FINISH.equals(tmpReportFeeDto.getState()) |
| | | && receivedAmount == 0) { |
| | | return; |
| | | } |
| | | double receivableAmount = getReceivableAmountByCar(tmpReportFeeDto, null, tmpReportCarDto); //应收 |
| | | |
| | | dealBeforeUploadCarFee(tmpReportFeeDto, tmpReportCarDto); |
| | | double oweAmount = getOweAmount(tmpReportFeeDto, receivableAmount, receivedAmount); //欠费 |
| | | FeeDto feeDto = BeanConvertUtil.covertBean(tmpReportFeeDto, FeeDto.class); |
| | | OwnerCarDto ownerCarDto = BeanConvertUtil.covertBean(tmpReportCarDto, OwnerCarDto.class); |
| | | Map<String, Object> targetEndDateAndOweMonth = computeFeeSMOImpl.getTargetEndDateAndOweMonth(feeDto, ownerCarDto); |
| | | |
| | | Date targetEndDate = (Date) targetEndDateAndOweMonth.get("targetEndDate"); |
| | | tmpReportFeeDto.setDeadlineTime(targetEndDate); |
| | | double oweAmount = getOweAmountByCar(tmpReportFeeDto, null, tmpReportCarDto); //应收 |
| | | |
| | | dealBeforeUploadCarFee(tmpReportFeeDto, tmpReportCarDto); |
| | | double receivableAmount = getReceivableAmount(tmpReportFeeDto,receivedAmount); //欠费 |
| | | |
| | | |
| | | ReportFeeMonthStatisticsPo reportFeeMonthStatisticsPo = new ReportFeeMonthStatisticsPo(); |
| | | reportFeeMonthStatisticsPo.setDeadlineTime(DateUtil.getFormatTimeString(targetEndDate, DateUtil.DATE_FORMATE_STRING_A)); |
| | |
| | | reportFeeMonthStatisticsPo.setFeeId(tmpReportFeeDto.getFeeId()); |
| | | reportFeeMonthStatisticsPo.setFeeMonth(DateUtil.getMonth() + ""); |
| | | reportFeeMonthStatisticsPo.setFeeYear(DateUtil.getYear() + ""); |
| | | reportFeeMonthStatisticsPo.setCurMaxTime(DateUtil.getNextMonthFirstDay(DateUtil.DATE_FORMATE_STRING_A)); |
| | | reportFeeMonthStatisticsPo.setObjId(tmpReportCarDto.getCarId()); |
| | | reportFeeMonthStatisticsPo.setObjType(FeeDto.PAYER_OBJ_TYPE_CAR); |
| | | reportFeeMonthStatisticsPo.setFeeName(tmpReportFeeDto.getFeeName()); |
| | | reportFeeMonthStatisticsPo.setObjName(tmpReportCarDto.getCarNum() + "(" + tmpReportCarDto.getAreaNum() + "停车场" + tmpReportCarDto.getNum() + "车位"); |
| | | reportFeeMonthStatisticsPo.setObjName(tmpReportCarDto.getCarNum() + "(" + tmpReportCarDto.getAreaNum() + "停车场" + tmpReportCarDto.getNum() + "车位)"); |
| | | reportFeeMonthStatisticsPo.setUpdateTime(DateUtil.getNow(DateUtil.DATE_FORMATE_STRING_A)); |
| | | reportFeeMonthStatisticsServiceDaoImpl.saveReportFeeMonthStatisticsInfo(BeanConvertUtil.beanCovertMap(reportFeeMonthStatisticsPo)); |
| | | } |
| | |
| | | |
| | | ReportFeeMonthStatisticsPo tmpReportFeeMonthStatisticsPo = new ReportFeeMonthStatisticsPo(); |
| | | tmpReportFeeMonthStatisticsPo.setFeeId(tmpReportFeeDto.getFeeId()); |
| | | tmpReportFeeMonthStatisticsPo.setFeeYear(year + ""); |
| | | tmpReportFeeMonthStatisticsPo.setFeeMonth(month + ""); |
| | | tmpReportFeeMonthStatisticsPo.setCurMaxTime(DateUtil.getFormatTimeString(endTime,DateUtil.DATE_FORMATE_STRING_A)); |
| | | tmpReportFeeMonthStatisticsPo.setOweAmount("0"); |
| | | reportFeeMonthStatisticsServiceDaoImpl.updateReportFeeMonthStatisticsOwe(BeanConvertUtil.beanCovertMap(tmpReportFeeMonthStatisticsPo)); |
| | | } |
| | |
| | | reportFeeMonthStatisticsServiceDaoImpl.getReportFeeMonthStatisticsInfo(BeanConvertUtil.beanCovertMap(reportFeeMonthStatisticsDto)), |
| | | ReportFeeMonthStatisticsDto.class); |
| | | //上个月有数据 不处理 |
| | | if (statistics != null || statistics.size() > 1) { |
| | | if (statistics != null && statistics.size() > 0) { |
| | | return; |
| | | } |
| | | |
| | | if (tmpReportFeeDto.getDeadlineTime().getTime() < curMonthDate.getTime().getTime()) { |
| | | curMonthDate.setTime(tmpReportFeeDto.getDeadlineTime()); |
| | | } |
| | | |
| | | double receivableAmount = 0.0; |
| | | if (FeeDto.FEE_FLAG_ONCE.equals(tmpReportFeeDto.getFeeFlag())) { |
| | | receivableAmount = tmpReportFeeDto.getFeePrice(); |
| | |
| | | reportFeeMonthStatisticsPo.setFeeId(tmpReportFeeDto.getFeeId()); |
| | | reportFeeMonthStatisticsPo.setFeeMonth((preMonthDate.get(Calendar.MONTH) + 1) + ""); |
| | | reportFeeMonthStatisticsPo.setFeeYear(preMonthDate.get(Calendar.YEAR) + ""); |
| | | reportFeeMonthStatisticsPo.setCurMaxTime(DateUtil.getFormatTimeString(DateUtil.getFirstDate(),DateUtil.DATE_FORMATE_STRING_A)); |
| | | reportFeeMonthStatisticsPo.setObjId(tmpReportCarDto.getCarId()); |
| | | reportFeeMonthStatisticsPo.setObjType(FeeDto.PAYER_OBJ_TYPE_CAR); |
| | | reportFeeMonthStatisticsPo.setFeeName(tmpReportFeeDto.getFeeName()); |
| | | reportFeeMonthStatisticsPo.setObjName(tmpReportCarDto.getCarNum() + "(" + tmpReportCarDto.getAreaNum() + "停车场" + tmpReportCarDto.getNum() + "车位"); |
| | | reportFeeMonthStatisticsPo.setObjName(tmpReportCarDto.getCarNum() + "(" + tmpReportCarDto.getAreaNum() + "停车场" + tmpReportCarDto.getNum() + "车位)"); |
| | | reportFeeMonthStatisticsPo.setUpdateTime(DateUtil.getNow(DateUtil.DATE_FORMATE_STRING_A)); |
| | | reportFeeMonthStatisticsServiceDaoImpl.saveReportFeeMonthStatisticsInfo(BeanConvertUtil.beanCovertMap(reportFeeMonthStatisticsPo)); |
| | | |
| | |
| | | ReportFeeDto reportFeeDto = new ReportFeeDto(); |
| | | reportFeeDto.setPayerObjId(reportRoomDto.getRoomId()); |
| | | reportFeeDto.setPayerObjType(FeeDto.PAYER_OBJ_TYPE_ROOM); |
| | | reportFeeDto.setState(FeeDto.STATE_DOING); |
| | | //reportFeeDto.setState(FeeDto.STATE_DOING); |
| | | List<ReportFeeDto> feeDtos = reportFeeServiceDaoImpl.getFees(reportFeeDto); |
| | | |
| | | if (feeDtos == null || feeDtos.size() < 1) { |
| | |
| | | |
| | | private void doDealRoomFee(ReportRoomDto reportRoomDto, ReportFeeDto tmpReportFeeDto) { |
| | | |
| | | //费用已经结束 并且当月实收为0 那就是 之前就结束了 无需处理 && ListUtil.isNull(statistics) |
| | | if (FeeDto.STATE_FINISH.equals(tmpReportFeeDto.getState()) |
| | | && getCurFeeReceivedAmount(tmpReportFeeDto) == 0) { |
| | | return; |
| | | } |
| | | |
| | | ReportFeeMonthStatisticsDto reportFeeMonthStatisticsDto = new ReportFeeMonthStatisticsDto(); |
| | | reportFeeMonthStatisticsDto.setCommunityId(reportRoomDto.getCommunityId()); |
| | | reportFeeMonthStatisticsDto.setConfigId(tmpReportFeeDto.getConfigId()); |
| | | reportFeeMonthStatisticsDto.setObjId(tmpReportFeeDto.getPayerObjId()); |
| | | reportFeeMonthStatisticsDto.setFeeId(tmpReportFeeDto.getFeeId()); |
| | | //reportFeeMonthStatisticsDto.setFeeId(tmpReportFeeDto.getFeeId()); |
| | | reportFeeMonthStatisticsDto.setObjType(tmpReportFeeDto.getPayerObjType()); |
| | | reportFeeMonthStatisticsDto.setFeeYear(DateUtil.getYear() + ""); |
| | | reportFeeMonthStatisticsDto.setFeeMonth(DateUtil.getMonth() + ""); |
| | |
| | | |
| | | |
| | | double receivedAmount = getReceivedAmount(tmpReportFeeDto); //实收 |
| | | //费用已经结束 并且当月实收为0 那就是 之前就结束了 无需处理 && ListUtil.isNull(statistics) |
| | | if (FeeDto.STATE_FINISH.equals(tmpReportFeeDto.getState()) |
| | | && receivedAmount == 0) { |
| | | return; |
| | | } |
| | | double receivableAmount = getReceivableAmount(tmpReportFeeDto, reportRoomDto, null); //应收 |
| | | |
| | | //解决上线时 之前欠费没有刷入导致费用金额对不上问题处理 |
| | | dealBeforeUploadRoomFee(reportRoomDto, tmpReportFeeDto, receivableAmount); |
| | | |
| | | double oweAmount = getOweAmount(tmpReportFeeDto, receivableAmount, receivedAmount); //欠费 |
| | | FeeDto feeDto = BeanConvertUtil.covertBean(tmpReportFeeDto, FeeDto.class); |
| | | Map<String, Object> targetEndDateAndOweMonth = computeFeeSMOImpl.getTargetEndDateAndOweMonth(feeDto, null); |
| | | |
| | | Date targetEndDate = (Date) targetEndDateAndOweMonth.get("targetEndDate"); |
| | | tmpReportFeeDto.setDeadlineTime(targetEndDate); |
| | | double oweAmount = getOweAmount(tmpReportFeeDto, reportRoomDto, null); //欠费 |
| | | |
| | | double receivableAmount = getReceivableAmount(tmpReportFeeDto, receivedAmount); //应收 |
| | | //解决上线时 之前欠费没有刷入导致费用金额对不上问题处理 |
| | | dealBeforeUploadRoomFee(reportRoomDto, tmpReportFeeDto, receivableAmount); |
| | | |
| | | |
| | | |
| | | ReportFeeMonthStatisticsPo reportFeeMonthStatisticsPo = new ReportFeeMonthStatisticsPo(); |
| | | reportFeeMonthStatisticsPo.setDeadlineTime(DateUtil.getFormatTimeString(targetEndDate, DateUtil.DATE_FORMATE_STRING_A)); |
| | |
| | | //reportFeeMonthStatisticsPo.setReceivableAmount(receivableAmount + ""); |
| | | reportFeeMonthStatisticsPo.setReceivedAmount(receivedAmount + ""); |
| | | reportFeeMonthStatisticsPo.setOweAmount(oweAmount + ""); |
| | | reportFeeMonthStatisticsPo.setFeeId(tmpReportFeeDto.getFeeId()); |
| | | reportFeeMonthStatisticsPo.setUpdateTime(DateUtil.getNow(DateUtil.DATE_FORMATE_STRING_A)); |
| | | reportFeeMonthStatisticsPo.setFeeName(StringUtil.isEmpty(tmpReportFeeDto.getImportFeeName()) ? tmpReportFeeDto.getFeeName() : tmpReportFeeDto.getImportFeeName()); |
| | | reportFeeMonthStatisticsServiceDaoImpl.updateReportFeeMonthStatisticsInfo(BeanConvertUtil.beanCovertMap(reportFeeMonthStatisticsPo)); |
| | |
| | | reportFeeMonthStatisticsPo.setFeeId(tmpReportFeeDto.getFeeId()); |
| | | reportFeeMonthStatisticsPo.setFeeMonth(DateUtil.getMonth() + ""); |
| | | reportFeeMonthStatisticsPo.setFeeYear(DateUtil.getYear() + ""); |
| | | reportFeeMonthStatisticsPo.setCurMaxTime(DateUtil.getNextMonthFirstDay(DateUtil.DATE_FORMATE_STRING_A)); |
| | | reportFeeMonthStatisticsPo.setObjId(reportRoomDto.getRoomId()); |
| | | reportFeeMonthStatisticsPo.setObjType(FeeDto.PAYER_OBJ_TYPE_ROOM); |
| | | reportFeeMonthStatisticsPo.setFeeName(StringUtil.isEmpty(tmpReportFeeDto.getImportFeeName()) ? tmpReportFeeDto.getFeeName() : tmpReportFeeDto.getImportFeeName()); |
| | |
| | | //将缴费 到期时间之前得欠费刷为0 |
| | | Date endTime = tmpReportFeeDto.getEndTime(); |
| | | |
| | | Calendar calender = Calendar.getInstance(); |
| | | calender.setTime(endTime); |
| | | int year = calender.get(Calendar.YEAR); |
| | | int month = calender.get(Calendar.MONTH); |
| | | |
| | | ReportFeeMonthStatisticsPo tmpReportFeeMonthStatisticsPo = new ReportFeeMonthStatisticsPo(); |
| | | tmpReportFeeMonthStatisticsPo.setFeeId(tmpReportFeeDto.getFeeId()); |
| | | tmpReportFeeMonthStatisticsPo.setFeeYear(year + ""); |
| | | tmpReportFeeMonthStatisticsPo.setFeeMonth(month + ""); |
| | | tmpReportFeeMonthStatisticsPo.setCurMaxTime(DateUtil.getFormatTimeString(endTime,DateUtil.DATE_FORMATE_STRING_A)); |
| | | tmpReportFeeMonthStatisticsPo.setOweAmount("0"); |
| | | reportFeeMonthStatisticsServiceDaoImpl.updateReportFeeMonthStatisticsOwe(BeanConvertUtil.beanCovertMap(tmpReportFeeMonthStatisticsPo)); |
| | | } |
| | | |
| | | public static void main(String[] args) { |
| | | Calendar c = Calendar.getInstance(); |
| | | c.set(Calendar.DAY_OF_MONTH, 1); |
| | | c.add(Calendar.DAY_OF_MONTH, -1); |
| | | ReportFeeDetailDto feeDetailDto = new ReportFeeDetailDto(); |
| | | feeDetailDto.setStartTime(DateUtil.getFormatTimeString(DateUtil.getFirstDate(), DateUtil.DATE_FORMATE_STRING_A)); |
| | | feeDetailDto.setEndTime(DateUtil.getFormatTimeString(DateUtil.getNextMonthFirstDate(), DateUtil.DATE_FORMATE_STRING_A)); |
| | | |
| | | System.out.println(DateUtil.getFormatTimeString(c.getTime(), DateUtil.DATE_FORMATE_STRING_A)); |
| | | System.out.println(JSONObject.toJSONString(feeDetailDto)); |
| | | } |
| | | |
| | | /** |
| | |
| | | return; |
| | | } |
| | | |
| | | if (tmpReportFeeDto.getDeadlineTime().getTime() < curMonthDate.getTime().getTime()) { |
| | | curMonthDate.setTime(tmpReportFeeDto.getDeadlineTime()); |
| | | } |
| | | |
| | | ReportFeeMonthStatisticsDto reportFeeMonthStatisticsDto = new ReportFeeMonthStatisticsDto(); |
| | | reportFeeMonthStatisticsDto.setCommunityId(reportRoomDto.getCommunityId()); |
| | | reportFeeMonthStatisticsDto.setConfigId(tmpReportFeeDto.getConfigId()); |
| | |
| | | reportFeeMonthStatisticsServiceDaoImpl.getReportFeeMonthStatisticsInfo(BeanConvertUtil.beanCovertMap(reportFeeMonthStatisticsDto)), |
| | | ReportFeeMonthStatisticsDto.class); |
| | | //上个月有数据 不处理 |
| | | if (statistics != null || statistics.size() > 1) { |
| | | if (statistics != null && statistics.size() > 0) { |
| | | return; |
| | | } |
| | | |
| | |
| | | reportFeeMonthStatisticsPo.setFeeId(tmpReportFeeDto.getFeeId()); |
| | | reportFeeMonthStatisticsPo.setFeeMonth((preMonthDate.get(Calendar.MONTH) + 1) + ""); |
| | | reportFeeMonthStatisticsPo.setFeeYear(preMonthDate.get(Calendar.YEAR) + ""); |
| | | reportFeeMonthStatisticsPo.setCurMaxTime(DateUtil.getFormatTimeString(DateUtil.getFirstDate(),DateUtil.DATE_FORMATE_STRING_A)); |
| | | |
| | | reportFeeMonthStatisticsPo.setObjId(reportRoomDto.getRoomId()); |
| | | reportFeeMonthStatisticsPo.setObjType(FeeDto.PAYER_OBJ_TYPE_ROOM); |
| | | reportFeeMonthStatisticsPo.setFeeName(StringUtil.isEmpty(tmpReportFeeDto.getImportFeeName()) ? tmpReportFeeDto.getFeeName() : tmpReportFeeDto.getImportFeeName()); |
| | |
| | | * 当月欠费 |
| | | * |
| | | * @param tmpReportFeeDto |
| | | * @param receivableAmount |
| | | * @param receivedAmount |
| | | * @return |
| | | */ |
| | | private double getOweAmount(ReportFeeDto tmpReportFeeDto, double receivableAmount, double receivedAmount) { |
| | | private double getReceivableAmount(ReportFeeDto tmpReportFeeDto, double receivedAmount) { |
| | | |
| | | //一次性费用 除以月份 平均 |
| | | if (FeeDto.FEE_FLAG_ONCE.equals(tmpReportFeeDto.getFeeFlag())) { |
| | | return computeOnceFee(tmpReportFeeDto); |
| | | } |
| | | return tmpReportFeeDto.getFeePrice(); |
| | | |
| | | return receivableAmount; |
| | | } |
| | | |
| | | /** |
| | | * 获取当月实收 |
| | | * |
| | | * @param tmpReportFeeDto |
| | | * @return |
| | | */ |
| | | private double getCurFeeReceivedAmount(ReportFeeDto tmpReportFeeDto) { |
| | | ReportFeeDetailDto feeDetailDto = new ReportFeeDetailDto(); |
| | | feeDetailDto.setStartTime(DateUtil.getFormatTimeString(DateUtil.getFirstDate(), DateUtil.DATE_FORMATE_STRING_A)); |
| | | feeDetailDto.setEndTime(DateUtil.getFormatTimeString(DateUtil.getNextMonthFirstDate(), DateUtil.DATE_FORMATE_STRING_A)); |
| | | feeDetailDto.setFeeId(tmpReportFeeDto.getFeeId()); |
| | | |
| | | double receivedAmount = reportFeeServiceDaoImpl.getFeeReceivedAmount(feeDetailDto); |
| | | |
| | | return receivedAmount; |
| | | } |
| | | |
| | | /** |
| | |
| | | ReportFeeDetailDto feeDetailDto = new ReportFeeDetailDto(); |
| | | feeDetailDto.setStartTime(DateUtil.getFormatTimeString(DateUtil.getFirstDate(), DateUtil.DATE_FORMATE_STRING_A)); |
| | | feeDetailDto.setEndTime(DateUtil.getFormatTimeString(DateUtil.getNextMonthFirstDate(), DateUtil.DATE_FORMATE_STRING_A)); |
| | | feeDetailDto.setFeeId(tmpReportFeeDto.getFeeId()); |
| | | feeDetailDto.setConfigId(tmpReportFeeDto.getConfigId()); |
| | | feeDetailDto.setPayerObjId(tmpReportFeeDto.getPayerObjId()); |
| | | |
| | | double receivedAmount = reportFeeServiceDaoImpl.getFeeReceivedAmount(feeDetailDto); |
| | | |
| | | return receivedAmount; |
| | |
| | | * @param tmpReportFeeDto |
| | | * @return |
| | | */ |
| | | private double getReceivableAmountByCar(ReportFeeDto tmpReportFeeDto, ReportRoomDto reportRoomDto, ReportCarDto reportCarDto) { |
| | | private double getOweAmountByCar(ReportFeeDto tmpReportFeeDto, ReportRoomDto reportRoomDto, ReportCarDto reportCarDto) { |
| | | |
| | | double feePrice = computeFeeSMOImpl.getReportFeePrice(tmpReportFeeDto, reportRoomDto, reportCarDto); |
| | | tmpReportFeeDto.setFeePrice(feePrice); |
| | |
| | | } |
| | | |
| | | if (FeeDto.FEE_FLAG_ONCE.equals(tmpReportFeeDto.getFeeFlag())) { |
| | | return feePrice; |
| | | return computeOnceFee(tmpReportFeeDto); |
| | | } |
| | | OwnerCarDto ownerCarDto = new OwnerCarDto(); |
| | | ownerCarDto.setCommunityId(tmpReportFeeDto.getCommunityId()); |
| | |
| | | return 0.0; |
| | | } |
| | | |
| | | private double computeOnceFee(ReportFeeDto tmpReportFeeDto) { |
| | | Date nowTime = DateUtil.getCurrentDate(); |
| | | if (tmpReportFeeDto.getEndTime().getTime() > nowTime.getTime() |
| | | || tmpReportFeeDto.getDeadlineTime().getTime() < nowTime.getTime()) { |
| | | return 0.0; |
| | | } |
| | | double month = computeFeeSMOImpl.dayCompare(tmpReportFeeDto.getDeadlineTime(), tmpReportFeeDto.getEndTime()); |
| | | month = Math.ceil(month); |
| | | |
| | | BigDecimal feePriceDec = new BigDecimal(tmpReportFeeDto.getFeePrice()); |
| | | double money = feePriceDec.divide(new BigDecimal(month),2, BigDecimal.ROUND_HALF_EVEN).doubleValue(); |
| | | return money; |
| | | } |
| | | |
| | | /** |
| | | * 获取当月应收 |
| | | * |
| | | * @param tmpReportFeeDto |
| | | * @return |
| | | */ |
| | | private double getReceivableAmount(ReportFeeDto tmpReportFeeDto, ReportRoomDto reportRoomDto, ReportCarDto reportCarDto) { |
| | | private double getOweAmount(ReportFeeDto tmpReportFeeDto, ReportRoomDto reportRoomDto, ReportCarDto reportCarDto) { |
| | | |
| | | double feePrice = computeFeeSMOImpl.getReportFeePrice(tmpReportFeeDto, reportRoomDto, reportCarDto); |
| | | tmpReportFeeDto.setFeePrice(feePrice); |
| | |
| | | } |
| | | |
| | | if (FeeDto.FEE_FLAG_ONCE.equals(tmpReportFeeDto.getFeeFlag())) { |
| | | return feePrice; |
| | | return computeOnceFee(tmpReportFeeDto); |
| | | } |
| | | |
| | | //1.0 费用到期时间和费用结束时间 都不在当月 |