Browse Source

编辑金额-金额校验

master
gjh 2 months ago
parent
commit
9de61d2e62
  1. 61
      huzhou/src/main/java/com/easy/admin/modules/huzhou/service/impl/HuzhouFieldchangehistoryServiceImpl.java

61
huzhou/src/main/java/com/easy/admin/modules/huzhou/service/impl/HuzhouFieldchangehistoryServiceImpl.java

@ -31,6 +31,7 @@ import org.springframework.stereotype.Service;
import org.springframework.transaction.annotation.Transactional; import org.springframework.transaction.annotation.Transactional;
import org.springframework.web.multipart.MultipartFile; import org.springframework.web.multipart.MultipartFile;
import java.math.BigDecimal;
import java.util.*; import java.util.*;
import java.util.stream.Collectors; import java.util.stream.Collectors;
@ -82,6 +83,9 @@ public class HuzhouFieldchangehistoryServiceImpl extends ServiceImpl<HuzhouField
String projectid, String projectid,
String fieldValue, String fieldValue,
HuzhouProjectinfo newProjectinfo) throws Exception { HuzhouProjectinfo newProjectinfo) throws Exception {
if (fieldValue.equals("Money")){
checkMoney(newProjectinfo);
}
String id = UUID.randomUUID().toString().replace("-",""); String id = UUID.randomUUID().toString().replace("-","");
String groupid = UUID.randomUUID().toString().replace("-",""); String groupid = UUID.randomUUID().toString().replace("-","");
String newValue = ""; String newValue = "";
@ -315,6 +319,60 @@ public class HuzhouFieldchangehistoryServiceImpl extends ServiceImpl<HuzhouField
} }
} }
private void checkMoney(HuzhouProjectinfo projectInfo) {
BigDecimal totalMoney = Optional.ofNullable(projectInfo.getTotalMoney())
.map(BigDecimal::new)
.orElse(null);
BigDecimal centralMoney = Optional.ofNullable(projectInfo.getCentralMoney())
.map(BigDecimal::new)
.orElse(null);
BigDecimal provincialMoney = Optional.ofNullable(projectInfo.getProvincialMoney())
.map(BigDecimal::new)
.orElse(null);
BigDecimal cityMoney = Optional.ofNullable(projectInfo.getCityMoney())
.map(BigDecimal::new)
.orElse(null);
BigDecimal countyMoney = Optional.ofNullable(projectInfo.getCountyMoney())
.map(BigDecimal::new)
.orElse(null);
BigDecimal selfMoney = Optional.ofNullable(projectInfo.getSelfMoney())
.map(BigDecimal::new)
.orElse(null);
BigDecimal payamount2023Money = Optional.ofNullable(projectInfo.getPayamount2023Money())
.map(BigDecimal::new)
.orElse(null);
BigDecimal payamount2024Money = Optional.ofNullable(projectInfo.getPayamount2024Money())
.map(BigDecimal::new)
.orElse(null);
BigDecimal payamount2025Money = Optional.ofNullable(projectInfo.getPayamount2025Money())
.map(BigDecimal::new)
.orElse(null);
// 检查是否有任何一个金额为null,如果是,则不进行校验
if (totalMoney == null || centralMoney == null || provincialMoney == null ||
cityMoney == null || countyMoney == null || selfMoney == null ||
payamount2023Money == null || payamount2024Money == null || payamount2025Money == null) {
// 如果有任何一个金额为null,则直接返回,不进行校验
return;
}
// 计算总和并进行比较
BigDecimal sum1 = centralMoney.add(provincialMoney).add(cityMoney).add(countyMoney).add(selfMoney);
BigDecimal sum2 = payamount2023Money.add(payamount2024Money).add(payamount2025Money);
if (totalMoney.compareTo(sum1) != 0) {
throw new EasyException("项目总金额与各个阶段的金额之和不相等");
}
if (totalMoney.compareTo(sum2) != 0) {
throw new EasyException("项目总金额与各个年份所需支付金额之和不相等");
}
log.info("金额校验成功!");
}
@Override @Override
public List<HuzhouUploadfileinfo> getFieldchangeFileinfoList(String fieldChangeGroupid) { public List<HuzhouUploadfileinfo> getFieldchangeFileinfoList(String fieldChangeGroupid) {
LambdaQueryWrapper<HuzhouUploadfileinfo> queryWrapper = new LambdaQueryWrapper<>(); LambdaQueryWrapper<HuzhouUploadfileinfo> queryWrapper = new LambdaQueryWrapper<>();
@ -328,6 +386,9 @@ public class HuzhouFieldchangehistoryServiceImpl extends ServiceImpl<HuzhouField
@Override @Override
public void approvalFieldchange(MultipartFile[] file, String taskId, String flag, String fieldChangeGroupid, String comment, String isEdit, HuzhouProjectinfo newProjectinfo) throws Exception { public void approvalFieldchange(MultipartFile[] file, String taskId, String flag, String fieldChangeGroupid, String comment, String isEdit, HuzhouProjectinfo newProjectinfo) throws Exception {
//金额校验
checkMoney(newProjectinfo);
WorkFlow workFlow = workflowService.approveProjectInfo(taskId, flag, comment); WorkFlow workFlow = workflowService.approveProjectInfo(taskId, flag, comment);
List<HuzhouFieldchangehistory> list = getFieldchangeByGroupid(fieldChangeGroupid); List<HuzhouFieldchangehistory> list = getFieldchangeByGroupid(fieldChangeGroupid);
if ("1".equals(isEdit) && "1".equals(flag)) { if ("1".equals(isEdit) && "1".equals(flag)) {

Loading…
Cancel
Save