Browse Source

上级资金执行率导出测试

master
gjh 3 days ago
parent
commit
c318df86e2
  1. 10
      huzhou/src/main/java/com/easy/admin/modules/huzhou/dto/HuzhouProjectinfoExportDTO.java
  2. 2
      huzhou/src/main/java/com/easy/admin/modules/huzhou/entity/HuzhouProjectinfo.java
  3. 21
      huzhou/src/main/java/com/easy/admin/modules/huzhou/service/impl/HuzhouProjectinfoServiceImpl.java

10
huzhou/src/main/java/com/easy/admin/modules/huzhou/dto/HuzhouProjectinfoExportDTO.java

@ -1,6 +1,8 @@
package com.easy.admin.modules.huzhou.dto; package com.easy.admin.modules.huzhou.dto;
import com.alibaba.excel.annotation.ExcelProperty; import com.alibaba.excel.annotation.ExcelProperty;
import com.alibaba.excel.annotation.format.NumberFormat;
import com.alibaba.excel.annotation.write.style.HeadStyle; import com.alibaba.excel.annotation.write.style.HeadStyle;
import lombok.Data; import lombok.Data;
@HeadStyle(fillForegroundColor = 44) @HeadStyle(fillForegroundColor = 44)
@ -9,10 +11,12 @@ public class HuzhouProjectinfoExportDTO {
@ExcelProperty("项目名称") @ExcelProperty("项目名称")
private String projectName; private String projectName;
@ExcelProperty("上级资金执行率")
private String superiorFundPayRate;
public HuzhouProjectinfoExportDTO(String projectName, String superiorFundPayRate) { //@NumberFormat("0.00%")
@ExcelProperty("上级资金执行率%")
private Double superiorFundPayRate;
public HuzhouProjectinfoExportDTO(String projectName, Double superiorFundPayRate) {
this.projectName = projectName; this.projectName = projectName;
this.superiorFundPayRate = superiorFundPayRate; this.superiorFundPayRate = superiorFundPayRate;
} }

2
huzhou/src/main/java/com/easy/admin/modules/huzhou/entity/HuzhouProjectinfo.java

@ -180,7 +180,7 @@ public class HuzhouProjectinfo extends BaseEntity {
* 上级资金中央资金+省级资金使用率 * 上级资金中央资金+省级资金使用率
*/ */
@TableField(exist = false) @TableField(exist = false)
String superiorFundPayRate; Double superiorFundPayRate;
/** /**
* 项目计划修改表示: 只允许修改一次 * 项目计划修改表示: 只允许修改一次

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

@ -2659,7 +2659,7 @@ public class HuzhouProjectinfoServiceImpl extends ServiceImpl<HuzhouProjectinfoM
// 获取资金信息 // 获取资金信息
HuzhouProjectinfoMoney huzhouProjectinfoMoney = projectinfoMoneyMapper.selectById(projectId); HuzhouProjectinfoMoney huzhouProjectinfoMoney = projectinfoMoneyMapper.selectById(projectId);
if (huzhouProjectinfoMoney == null || !hasActualContracts(projectId)) { if (huzhouProjectinfoMoney == null || !hasActualContracts(projectId)) {
projectInfoOV.setSuperiorFundPayRate("0%"); projectInfoOV.setSuperiorFundPayRate(0.0);
return projectInfoOV; return projectInfoOV;
} }
@ -2675,14 +2675,14 @@ public class HuzhouProjectinfoServiceImpl extends ServiceImpl<HuzhouProjectinfoM
log.info("查询到合同签订阶段:中央资金{},省级资金{}", contractCentralMoney, contractProvincialMoney); log.info("查询到合同签订阶段:中央资金{},省级资金{}", contractCentralMoney, contractProvincialMoney);
log.info("总计实际支付资金为:中央资金{},省级资金{}", centralMoney, provincialMoney); log.info("总计实际支付资金为:中央资金{},省级资金{}", centralMoney, provincialMoney);
// 计算并设置上级资金支付率 // 计算并设置上级资金支付率
if (contractCentralMoney != null && contractProvincialMoney != null) { if (contractCentralMoney != null && contractProvincialMoney != null) {
Double rate = (centralMoney + provincialMoney) / (contractCentralMoney + contractProvincialMoney); Double rate = (centralMoney + provincialMoney) / (contractCentralMoney + contractProvincialMoney);
String percentRate = String.format("%.0f%%", rate * 100); String percentRate = String.format("%.0f%%", rate * 100);
log.info("上级资金支付率为:{}", percentRate); log.info("上级资金支付率为:{}", percentRate);
projectInfoOV.setSuperiorFundPayRate(percentRate); projectInfoOV.setSuperiorFundPayRate(rate);
} else { } else {
projectInfoOV.setSuperiorFundPayRate("0%"); projectInfoOV.setSuperiorFundPayRate(0.0);
} }
return projectInfoOV; return projectInfoOV;
@ -2699,7 +2699,7 @@ public class HuzhouProjectinfoServiceImpl extends ServiceImpl<HuzhouProjectinfoM
.map(projectInfo -> new HuzhouProjectinfoExportDTO(projectInfo.getProjectName(), projectInfo.getSuperiorFundPayRate() )) .map(projectInfo -> new HuzhouProjectinfoExportDTO(projectInfo.getProjectName(), projectInfo.getSuperiorFundPayRate() ))
.collect(Collectors.toList()); .collect(Collectors.toList());
for (HuzhouProjectinfoExportDTO huzhouProjectinfoExportDTO : dtoList) { for (HuzhouProjectinfoExportDTO huzhouProjectinfoExportDTO : dtoList) {
log.info("项目名称:{}--->上级资金执行率为:{}", huzhouProjectinfoExportDTO.getProjectName(),huzhouProjectinfoExportDTO.getSuperiorFundPayRate()); log.info("项目名称:{}--->上级资金执行率为:{}", huzhouProjectinfoExportDTO.getProjectName(),String.format("%.0f%%", huzhouProjectinfoExportDTO.getSuperiorFundPayRate()));
} }
return projectInfoList; return projectInfoList;
} }
@ -2708,7 +2708,8 @@ public class HuzhouProjectinfoServiceImpl extends ServiceImpl<HuzhouProjectinfoM
String projectId = projectInfo.getId(); String projectId = projectInfo.getId();
HuzhouProjectinfoMoney huzhouProjectinfoMoney = projectinfoMoneyMapper.selectById(projectId); HuzhouProjectinfoMoney huzhouProjectinfoMoney = projectinfoMoneyMapper.selectById(projectId);
if (huzhouProjectinfoMoney == null || !hasActualContracts(projectId)) { if (huzhouProjectinfoMoney == null || !hasActualContracts(projectId)) {
projectInfo.setSuperiorFundPayRate("0%"); Double rate = 0.0;
projectInfo.setSuperiorFundPayRate(rate);
}else { }else {
// 获取合同签订阶段填写的资金 // 获取合同签订阶段填写的资金
Double contractCentralMoney = projectinfoMoneyMapper.selectById(projectId).getContractCentralMoney(); Double contractCentralMoney = projectinfoMoneyMapper.selectById(projectId).getContractCentralMoney();
@ -2719,9 +2720,15 @@ public class HuzhouProjectinfoServiceImpl extends ServiceImpl<HuzhouProjectinfoM
Double provincialMoney = actualFunds.get("provincialMoney"); Double provincialMoney = actualFunds.get("provincialMoney");
// 计算并设置上级资金支付率 // 计算并设置上级资金支付率
Double rate = (centralMoney + provincialMoney) / (contractCentralMoney + contractProvincialMoney); Double rate = (centralMoney + provincialMoney) / (contractCentralMoney + contractProvincialMoney);
BigDecimal bd = new BigDecimal(Double.toString(rate));
bd = bd.setScale(2, RoundingMode.HALF_UP);
double formattedRate = bd.doubleValue();
// 转换为百分比形式
int percentageRate = (int)(formattedRate * 100);
// 日志校验
String percentRate = String.format("%.0f%%", rate * 100); String percentRate = String.format("%.0f%%", rate * 100);
log.info("项目名称:{}----上级资金支付率为:{}", projectInfo.getProjectName(), percentRate); log.info("项目名称:{}----上级资金支付率为:{}", projectInfo.getProjectName(), percentRate);
projectInfo.setSuperiorFundPayRate(percentRate); projectInfo.setSuperiorFundPayRate((double) percentageRate);
} }
} }

Loading…
Cancel
Save