|
|
@@ -136,6 +136,23 @@ public class SettlementServiceImpl extends ServiceImpl<SettlementMapper, Settlem
|
|
|
}
|
|
|
|
|
|
}
|
|
|
+ //验证结算总金额是否超限
|
|
|
+ if(settlementDTO.getBillType().equals("收费")||settlementDTO.getBillType().equals("付费"))
|
|
|
+ {
|
|
|
+ //查询账单明细 已结算金额, 累计是否大于原订单的总金额
|
|
|
+ LambdaQueryWrapper<Acc> accLambdaQueryWrapper=new LambdaQueryWrapper<>();
|
|
|
+ accLambdaQueryWrapper.eq(Acc::getAccSysNo,settlementDTO.getSrcOrderno()).eq(Acc::getTenantId,AuthUtil.getTenantId());
|
|
|
+ List<Acc> accs = accMapper.selectList(accLambdaQueryWrapper);
|
|
|
+ if(CollectionUtils.isNotEmpty(accs))
|
|
|
+ {
|
|
|
+ BigDecimal total = accs.stream().filter(e -> e.getSettlementAmount() != null).map(Acc::getSettlementAmount).reduce(BigDecimal.ZERO, BigDecimal::add);
|
|
|
+ Settlement settlement = baseMapper.selectById(model.getId());
|
|
|
+ if(total.compareTo(settlement.getAmount())>1)
|
|
|
+ {
|
|
|
+ throw new SecurityException("订单号:"+settlement.getSrcOrderno()+",结算总金额大于原单据的总金额,--原单号金额为:"+settlement.getAmount()+",--当前结算总金额为:"+total);
|
|
|
+ }
|
|
|
+ }
|
|
|
+ }
|
|
|
|
|
|
|
|
|
}
|
|
|
@@ -155,7 +172,7 @@ public class SettlementServiceImpl extends ServiceImpl<SettlementMapper, Settlem
|
|
|
|
|
|
@Override
|
|
|
@Transactional
|
|
|
- public void apply(List<Items> itemsList, String billType)
|
|
|
+ public Settlement apply(List<Items> itemsList, String billType)
|
|
|
{
|
|
|
BigDecimal total = itemsList.stream().filter(e -> e.getAmount() != null).map(Items::getAmount).reduce(BigDecimal.ZERO, BigDecimal::add);
|
|
|
Settlement settlement=new Settlement();
|
|
|
@@ -179,6 +196,7 @@ public class SettlementServiceImpl extends ServiceImpl<SettlementMapper, Settlem
|
|
|
e.setCreateUser(AuthUtil.getUserId());
|
|
|
itemsMapper.insert(e);
|
|
|
});
|
|
|
+ return settlement;
|
|
|
|
|
|
}
|
|
|
|