wangzhuo vor 3 Jahren
Ursprung
Commit
03d6cc92d5

+ 18 - 1
blade-service/blade-project/src/main/java/org/springblade/project/service/impl/ServiceProjectServiceImpl.java

@@ -245,7 +245,8 @@ public class ServiceProjectServiceImpl extends ServiceImpl<ServiceProjectMapper,
 		}
 		//检查明细总金额是否超过主表总金额
 		LambdaQueryWrapper<ServiceProjectItem> itemLambdaQueryWrapper = new LambdaQueryWrapper();
-		itemLambdaQueryWrapper.eq(ServiceProjectItem::getPId, serviceProject.getId()).eq(ServiceProjectItem::getBranch,"N");
+		itemLambdaQueryWrapper.eq(ServiceProjectItem::getPId, serviceProject.getId())
+			.eq(ServiceProjectItem::getBranch,"N");
 		List<ServiceProjectItem> serviceProjectItems = serviceProjectItemMapper.selectList(itemLambdaQueryWrapper);
 		//检查金额是否超额
 		//checkMoney(serviceProject.getId(),serviceProjectItems);
@@ -258,6 +259,22 @@ public class ServiceProjectServiceImpl extends ServiceImpl<ServiceProjectMapper,
 		serviceProject.setMatMoney(totalMatMoney);
 		serviceProject.setCostReturn(totalCostReturn);
 		serviceProject.setSuperaddition(superaddition);
+		//更新未结算的金额
+		LambdaQueryWrapper<ServiceProjectItem> itemBalanceAmountWrapper = new LambdaQueryWrapper();
+		itemBalanceAmountWrapper.eq(ServiceProjectItem::getPId, serviceProject.getId())
+			.eq(ServiceProjectItem::getBranch,"N")
+			.eq(ServiceProjectItem::getStatus, 4);
+		List<ServiceProjectItem> itemBalanceAmount = serviceProjectItemMapper.selectList(itemBalanceAmountWrapper);
+		serviceProject.setBalanceAmount(itemBalanceAmount.stream().map(d -> d.getAmount() == null ? BigDecimal.ZERO : d.getAmount())
+			.reduce(BigDecimal.ZERO, BigDecimal::add));
+		//更新已结算的金额
+		LambdaQueryWrapper<ServiceProjectItem> itemSettlmentAmountWrapper = new LambdaQueryWrapper();
+		itemSettlmentAmountWrapper.eq(ServiceProjectItem::getPId, serviceProject.getId())
+			.eq(ServiceProjectItem::getBranch,"N")
+			.eq(ServiceProjectItem::getStatus, 5);
+		List<ServiceProjectItem> itemSettlmentAmount = serviceProjectItemMapper.selectList(itemSettlmentAmountWrapper);
+		serviceProject.setSettlmentAmount(itemSettlmentAmount.stream().map(item -> item.getAmount() == null ? BigDecimal.ZERO : item.getAmount())
+			.reduce(BigDecimal.ZERO, BigDecimal::add));
 		serviceProjectMapper.updateById(serviceProject);
 	}