diff --git a/huzhou/src/main/java/com/easy/admin/modules/huzhou/dao/mapping/HuzhouContractinfoMapper.xml b/huzhou/src/main/java/com/easy/admin/modules/huzhou/dao/mapping/HuzhouContractinfoMapper.xml index 334da1b..cd79116 100644 --- a/huzhou/src/main/java/com/easy/admin/modules/huzhou/dao/mapping/HuzhouContractinfoMapper.xml +++ b/huzhou/src/main/java/com/easy/admin/modules/huzhou/dao/mapping/HuzhouContractinfoMapper.xml @@ -264,7 +264,7 @@ #{projectId} - and b.isfinish = "2" + and b.isfinish = "2" and a.flag = '实际' diff --git a/huzhou/src/main/java/com/easy/admin/modules/huzhou/service/impl/HuzhouProjectinfoServiceImpl.java b/huzhou/src/main/java/com/easy/admin/modules/huzhou/service/impl/HuzhouProjectinfoServiceImpl.java index 2b963cb..1d51447 100644 --- a/huzhou/src/main/java/com/easy/admin/modules/huzhou/service/impl/HuzhouProjectinfoServiceImpl.java +++ b/huzhou/src/main/java/com/easy/admin/modules/huzhou/service/impl/HuzhouProjectinfoServiceImpl.java @@ -126,6 +126,8 @@ public class HuzhouProjectinfoServiceImpl extends ServiceImpl totalMap = contractinfoMapper.getTotalByProjectIds(Arrays.asList(huzhouProjectinfoOV.getId())); - //获取已支付金额 - Map paymentsMap = contractinfoMapper.getPaymentsByProjectIds(Arrays.asList(huzhouProjectinfoOV.getId())); - if(totalMap!=null&&paymentsMap!=null){ + //获取:huzhou_projectinfo_money + HuzhouProjectinfoMoney projectinfoMoney = huzhouProjectinfoMoneyService.getById(huzhouProjectinfoOV.getId()); + //Map paymentsMap = contractinfoMapper.getPaymentsByProjectIds(Arrays.asList(huzhouProjectinfoOV.getId())); + if(totalMap!=null&&projectinfoMoney!=null){ BigDecimal totalAcount = totalMap.get("totalAcount"); BigDecimal totalcentralAcount = totalMap.get("centralAcount"); - BigDecimal totalPayment = paymentsMap.get("totalPayment"); - BigDecimal centralPayment = paymentsMap.get("centralPayment"); - projectContactShouYeOV.setProjectFundPaymentProgress(totalPayment.divide(totalAcount, 4, BigDecimal.ROUND_HALF_UP).toString()); - projectContactShouYeOV.setCentralFundPaymentSituation(centralPayment.divide(totalcentralAcount, 4, BigDecimal.ROUND_HALF_UP).toString()); +// BigDecimal totalPayment = paymentsMap.get("totalPayment"); +// BigDecimal centralPayment = paymentsMap.get("centralPayment"); + Double contractTotalMoney = projectinfoMoney.getContractTotalMoney(); + Double contractCentralMoney = projectinfoMoney.getContractCentralMoney(); + BigDecimal totalPayment = (contractTotalMoney != null) ? new BigDecimal(contractTotalMoney.toString()) : BigDecimal.ZERO; + BigDecimal centralPayment = (contractCentralMoney != null) ? new BigDecimal(contractCentralMoney.toString()) : BigDecimal.ZERO; + // 默认值 + String projectFundPaymentProgress = "0"; + String centralFundPaymentSituation = "0"; + + // 判断除数是否为 0,再进行除法 + if (totalAcount != null && totalAcount.compareTo(BigDecimal.ZERO) != 0) { + projectFundPaymentProgress = totalAcount + .divide(totalPayment, 4, BigDecimal.ROUND_HALF_UP) + .multiply(new BigDecimal("100")) // ✅ 乘以 100 + .setScale(0, BigDecimal.ROUND_HALF_UP) // ✅ 四舍五入取整 + .toString(); + } + + if (totalcentralAcount != null && totalcentralAcount.compareTo(BigDecimal.ZERO) != 0) { + centralFundPaymentSituation = totalcentralAcount + .divide(centralPayment, 4, BigDecimal.ROUND_HALF_UP) + .multiply(new BigDecimal("100")) // ✅ 乘以 100 + .setScale(0, BigDecimal.ROUND_HALF_UP) // ✅ 四舍五入取整 + .toString(); + } + + projectContactShouYeOV.setProjectFundPaymentProgress(projectFundPaymentProgress); + projectContactShouYeOV.setCentralFundPaymentSituation(centralFundPaymentSituation); projectContactShouYeOVS.add(projectContactShouYeOV); }else{ projectContactShouYeOV.setProjectFundPaymentProgress("0");