|
|
@ -126,6 +126,8 @@ public class HuzhouProjectinfoServiceImpl extends ServiceImpl<HuzhouProjectinfoM |
|
|
|
@Autowired |
|
|
|
private ProjectScoreMapper projectScoreMapper; |
|
|
|
|
|
|
|
@Autowired |
|
|
|
private IHuzhouProjectinfoMoneyService huzhouProjectinfoMoneyService; |
|
|
|
|
|
|
|
@Autowired |
|
|
|
private StringRedisTemplate stringRedisTemplate; |
|
|
@ -2531,17 +2533,43 @@ public class HuzhouProjectinfoServiceImpl extends ServiceImpl<HuzhouProjectinfoM |
|
|
|
projectContactShouYeOV.setProjectTotalProgress("0"); |
|
|
|
} |
|
|
|
|
|
|
|
//获取项目合同信息
|
|
|
|
//获取项目合同信息 (实际)
|
|
|
|
Map<String, BigDecimal> totalMap = contractinfoMapper.getTotalByProjectIds(Arrays.asList(huzhouProjectinfoOV.getId())); |
|
|
|
//获取已支付金额
|
|
|
|
Map<String, BigDecimal> paymentsMap = contractinfoMapper.getPaymentsByProjectIds(Arrays.asList(huzhouProjectinfoOV.getId())); |
|
|
|
if(totalMap!=null&&paymentsMap!=null){ |
|
|
|
//获取:huzhou_projectinfo_money
|
|
|
|
HuzhouProjectinfoMoney projectinfoMoney = huzhouProjectinfoMoneyService.getById(huzhouProjectinfoOV.getId()); |
|
|
|
//Map<String, BigDecimal> 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"); |
|
|
|