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. 19
      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;
import com.alibaba.excel.annotation.ExcelProperty;
import com.alibaba.excel.annotation.format.NumberFormat;
import com.alibaba.excel.annotation.write.style.HeadStyle;
import lombok.Data;
@HeadStyle(fillForegroundColor = 44)
@ -9,10 +11,12 @@ public class HuzhouProjectinfoExportDTO {
@ExcelProperty("项目名称")
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.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)
String superiorFundPayRate;
Double superiorFundPayRate;
/**
* 项目计划修改表示: 只允许修改一次

19
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);
if (huzhouProjectinfoMoney == null || !hasActualContracts(projectId)) {
projectInfoOV.setSuperiorFundPayRate("0%");
projectInfoOV.setSuperiorFundPayRate(0.0);
return projectInfoOV;
}
@ -2680,9 +2680,9 @@ public class HuzhouProjectinfoServiceImpl extends ServiceImpl<HuzhouProjectinfoM
Double rate = (centralMoney + provincialMoney) / (contractCentralMoney + contractProvincialMoney);
String percentRate = String.format("%.0f%%", rate * 100);
log.info("上级资金支付率为:{}", percentRate);
projectInfoOV.setSuperiorFundPayRate(percentRate);
projectInfoOV.setSuperiorFundPayRate(rate);
} else {
projectInfoOV.setSuperiorFundPayRate("0%");
projectInfoOV.setSuperiorFundPayRate(0.0);
}
return projectInfoOV;
@ -2699,7 +2699,7 @@ public class HuzhouProjectinfoServiceImpl extends ServiceImpl<HuzhouProjectinfoM
.map(projectInfo -> new HuzhouProjectinfoExportDTO(projectInfo.getProjectName(), projectInfo.getSuperiorFundPayRate() ))
.collect(Collectors.toList());
for (HuzhouProjectinfoExportDTO huzhouProjectinfoExportDTO : dtoList) {
log.info("项目名称:{}--->上级资金执行率为:{}", huzhouProjectinfoExportDTO.getProjectName(),huzhouProjectinfoExportDTO.getSuperiorFundPayRate());
log.info("项目名称:{}--->上级资金执行率为:{}", huzhouProjectinfoExportDTO.getProjectName(),String.format("%.0f%%", huzhouProjectinfoExportDTO.getSuperiorFundPayRate()));
}
return projectInfoList;
}
@ -2708,7 +2708,8 @@ public class HuzhouProjectinfoServiceImpl extends ServiceImpl<HuzhouProjectinfoM
String projectId = projectInfo.getId();
HuzhouProjectinfoMoney huzhouProjectinfoMoney = projectinfoMoneyMapper.selectById(projectId);
if (huzhouProjectinfoMoney == null || !hasActualContracts(projectId)) {
projectInfo.setSuperiorFundPayRate("0%");
Double rate = 0.0;
projectInfo.setSuperiorFundPayRate(rate);
}else {
// 获取合同签订阶段填写的资金
Double contractCentralMoney = projectinfoMoneyMapper.selectById(projectId).getContractCentralMoney();
@ -2719,9 +2720,15 @@ public class HuzhouProjectinfoServiceImpl extends ServiceImpl<HuzhouProjectinfoM
Double provincialMoney = actualFunds.get("provincialMoney");
// 计算并设置上级资金支付率
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);
log.info("项目名称:{}----上级资金支付率为:{}", projectInfo.getProjectName(), percentRate);
projectInfo.setSuperiorFundPayRate(percentRate);
projectInfo.setSuperiorFundPayRate((double) percentageRate);
}
}

Loading…
Cancel
Save