Browse Source

现用户所见的资金支付情况与中央资金支付需求

master
gjh 1 month ago
parent
commit
eec76a412e
  1. 4
      huzhou/src/main/java/com/easy/admin/modules/huzhou/dao/mapping/HuzhouContractinfoMapper.xml
  2. 44
      huzhou/src/main/java/com/easy/admin/modules/huzhou/service/impl/HuzhouProjectinfoServiceImpl.java

4
huzhou/src/main/java/com/easy/admin/modules/huzhou/dao/mapping/HuzhouContractinfoMapper.xml

@ -264,7 +264,7 @@
<foreach item="projectId" index="index" collection="projectIds" open="(" separator="," close=")"> <foreach item="projectId" index="index" collection="projectIds" open="(" separator="," close=")">
#{projectId} #{projectId}
</foreach> </foreach>
and b.isfinish = "2" and b.isfinish = "2" and a.flag = '实际'
</select> </select>
<select id="getTotalByProjectIds" resultType="map"> <select id="getTotalByProjectIds" resultType="map">
select sum(total_money) as totalAcount, select sum(total_money) as totalAcount,
@ -276,7 +276,7 @@
where project_id in where project_id in
<foreach item="projectId" index="index" collection="projectIds" open="(" separator="," close=")"> <foreach item="projectId" index="index" collection="projectIds" open="(" separator="," close=")">
#{projectId} #{projectId}
</foreach> </foreach> and flag = '实际'
</select> </select>

44
huzhou/src/main/java/com/easy/admin/modules/huzhou/service/impl/HuzhouProjectinfoServiceImpl.java

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

Loading…
Cancel
Save