From 4b08cf21713bf8301b3de8aff399b986f1bf7651 Mon Sep 17 00:00:00 2001 From: peihao <1280253838@qq.com> Date: Wed, 24 Nov 2021 10:49:22 +0800 Subject: [PATCH] =?UTF-8?q?2.0.0=20=E4=BF=AE=E6=94=B9=E6=8A=A5=E8=A1=A8?= =?UTF-8?q?=E5=AF=BC=E5=85=A5=E6=8F=90=E7=A4=BA?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../service/impl/LandListedServiceImpl.java | 90 ++++++++++--------- .../main/java/com/air/utils/ExcelUtil.java | 2 +- 2 files changed, 48 insertions(+), 44 deletions(-) diff --git a/air/src/main/java/com/air/land/service/impl/LandListedServiceImpl.java b/air/src/main/java/com/air/land/service/impl/LandListedServiceImpl.java index 8b7156b..834edff 100644 --- a/air/src/main/java/com/air/land/service/impl/LandListedServiceImpl.java +++ b/air/src/main/java/com/air/land/service/impl/LandListedServiceImpl.java @@ -112,55 +112,59 @@ public class LandListedServiceImpl extends ServiceImpl { - landListed.setLandListedId(DateUtil.landListedIdfromDate(LocalDateTime.now(), "yyyyMMdd", this.selectId())); - //土地出让面积,计算土地出让面积(亩)(出让面积/2000*3) - BigDecimal landTransferSquare = landListed.getLandTransferSquare(); - if (landTransferSquare != null) { - landListed.setLandTransferMu(landTransferSquare.divide(new BigDecimal(2000), 4, BigDecimal.ROUND_HALF_UP).multiply(new BigDecimal(3)).setScale(0, BigDecimal.ROUND_HALF_UP)); - } - //总建筑面积 - BigDecimal totalConsArea = landListed.getTotalConsArea(); - //成交价(万元) - BigDecimal dealPrice = null; - //出让价款起始价(万元) - BigDecimal transferPrice = null; - if (totalConsArea != null) { - //计算容积率(总建筑面积/土地出让面积) + try { + dataList.forEach(landListed -> { + landListed.setLandListedId(DateUtil.landListedIdfromDate(LocalDateTime.now(), "yyyyMMdd", this.selectId())); + //土地出让面积,计算土地出让面积(亩)(出让面积/2000*3) + BigDecimal landTransferSquare = landListed.getLandTransferSquare(); if (landTransferSquare != null) { - landListed.setPlotRatio(totalConsArea.doubleValue() == 0 ? new BigDecimal(0) : totalConsArea.divide(landTransferSquare, 2, BigDecimal.ROUND_HALF_UP)); + landListed.setLandTransferMu(landTransferSquare.divide(new BigDecimal(2000), 4, BigDecimal.ROUND_HALF_UP).multiply(new BigDecimal(3)).setScale(0, BigDecimal.ROUND_HALF_UP)); } - //出让价款起始价(万元),计算起始楼面价(元/㎡) (出让价款起始价/总建筑面积*10000) - transferPrice = landListed.getTransferPrice(); - if (transferPrice != null) { - landListed.setStartingFloorPrice((transferPrice.doubleValue() == 0 || totalConsArea.doubleValue() == 0) - ? new BigDecimal(0) : transferPrice.divide(totalConsArea, 4, BigDecimal.ROUND_HALF_UP) - .multiply(new BigDecimal(10000)).setScale(0, BigDecimal.ROUND_HALF_UP)); + //总建筑面积 + BigDecimal totalConsArea = landListed.getTotalConsArea(); + //成交价(万元) + BigDecimal dealPrice = null; + //出让价款起始价(万元) + BigDecimal transferPrice = null; + if (totalConsArea != null) { + //计算容积率(总建筑面积/土地出让面积) + if (landTransferSquare != null) { + landListed.setPlotRatio(totalConsArea.doubleValue() == 0 ? new BigDecimal(0) : totalConsArea.divide(landTransferSquare, 2, BigDecimal.ROUND_HALF_UP)); + } + //出让价款起始价(万元),计算起始楼面价(元/㎡) (出让价款起始价/总建筑面积*10000) + transferPrice = landListed.getTransferPrice(); + if (transferPrice != null) { + landListed.setStartingFloorPrice((transferPrice.doubleValue() == 0 || totalConsArea.doubleValue() == 0) + ? new BigDecimal(0) : transferPrice.divide(totalConsArea, 4, BigDecimal.ROUND_HALF_UP) + .multiply(new BigDecimal(10000)).setScale(0, BigDecimal.ROUND_HALF_UP)); + } + //商业面积,商务面积 + BigDecimal bizSpace = landListed.getBizSpace() == null ? new BigDecimal(0) : landListed.getBizSpace(); + BigDecimal commerceSpace = landListed.getCommerceSpace() == null ? new BigDecimal(0) : landListed.getCommerceSpace(); + //计算商业商务占比((商业面积+商务面积)/总建筑面积) + landListed.setBizCommerceRate(totalConsArea.doubleValue() == 0 ? new BigDecimal(0) : (bizSpace.add(commerceSpace)). + divide(totalConsArea, 4, BigDecimal.ROUND_HALF_UP).multiply(new BigDecimal(100)).setScale(2, BigDecimal.ROUND_HALF_UP)); + //成交价(万元),计算成交楼面价(元/㎡) (成交价/总建筑面积*10000) + dealPrice = landListed.getDealPrice(); + if (dealPrice != null) { + landListed.setDealFloorPrice((dealPrice.doubleValue() == 0 || totalConsArea.doubleValue() == 0) + ? new BigDecimal(0) : dealPrice.divide(totalConsArea, 4, BigDecimal.ROUND_HALF_UP) + .multiply(new BigDecimal(10000)).setScale(0, BigDecimal.ROUND_HALF_UP)); + } } - //商业面积,商务面积 - BigDecimal bizSpace = landListed.getBizSpace() == null ? new BigDecimal(0) : landListed.getBizSpace(); - BigDecimal commerceSpace = landListed.getCommerceSpace() == null ? new BigDecimal(0) : landListed.getCommerceSpace(); - //计算商业商务占比((商业面积+商务面积)/总建筑面积) - landListed.setBizCommerceRate(totalConsArea.doubleValue() == 0 ? new BigDecimal(0) : (bizSpace.add(commerceSpace)). - divide(totalConsArea, 4, BigDecimal.ROUND_HALF_UP).multiply(new BigDecimal(100)).setScale(2, BigDecimal.ROUND_HALF_UP)); - //成交价(万元),计算成交楼面价(元/㎡) (成交价/总建筑面积*10000) - dealPrice = landListed.getDealPrice(); - if (dealPrice != null) { - landListed.setDealFloorPrice((dealPrice.doubleValue() == 0 || totalConsArea.doubleValue() == 0) - ? new BigDecimal(0) : dealPrice.divide(totalConsArea, 4, BigDecimal.ROUND_HALF_UP) - .multiply(new BigDecimal(10000)).setScale(0, BigDecimal.ROUND_HALF_UP)); + //计算溢价率 + if (dealPrice != null && transferPrice != null) { + landListed.setPremiumRate((dealPrice.doubleValue() == 0 || transferPrice.doubleValue() == 0) + ? new BigDecimal(0) : (dealPrice.subtract(transferPrice)).divide(transferPrice, 4, BigDecimal.ROUND_HALF_UP) + .multiply(new BigDecimal(100)).setScale(2, BigDecimal.ROUND_HALF_UP)); } - } - //计算溢价率 - if (dealPrice != null && transferPrice != null) { - landListed.setPremiumRate((dealPrice.doubleValue() == 0 || transferPrice.doubleValue() == 0) - ? new BigDecimal(0) : (dealPrice.subtract(transferPrice)).divide(transferPrice, 4, BigDecimal.ROUND_HALF_UP) - .multiply(new BigDecimal(100)).setScale(2, BigDecimal.ROUND_HALF_UP)); - } - }); + }); + } catch (Exception e) { + log.error("数据计算出错:",e); + } } return this.saveBatch(dataList); } diff --git a/air/src/main/java/com/air/utils/ExcelUtil.java b/air/src/main/java/com/air/utils/ExcelUtil.java index 807b603..0647218 100644 --- a/air/src/main/java/com/air/utils/ExcelUtil.java +++ b/air/src/main/java/com/air/utils/ExcelUtil.java @@ -155,7 +155,7 @@ public class ExcelUtil { map.put(excelConfig.getFieldName(), value); } catch (Exception e) { log.error("解析出错:", e); - throw new BusinessException("第" + i + "行,第" + excelConfig.getFieldName() + "列数据解析出现错误"); + throw new BusinessException("第" + (i+1) + "行,第" + excelConfig.getTitleName() + "列数据解析出现错误"); } } mapList.add(map);