Browse Source

修改事务管理bug, 增加财务结算金额验证判断

1021934019@qq.com 4 years ago
parent
commit
a7a77feef2

+ 1 - 0
blade-service/blade-client/src/main/java/org/springblade/client/affairs/controller/AffairsController.java

@@ -59,6 +59,7 @@ public class AffairsController extends BladeController {
 	@ApiOperation(value = "分页", notes = "传入goodsDesc")
 	public R<IPage<GoodsDesc>> list(GoodsDescVO goodsDesc, Query query) {
 		LambdaQueryWrapper<GoodsDesc> queryWrapper = new LambdaQueryWrapper<>();
+		queryWrapper.eq(StringUtils.isNotBlank(goodsDesc.getGoodsTypeId()),GoodsDesc::getGoodsTypeId,goodsDesc.getGoodsTypeId());
 		queryWrapper.like(StringUtils.isNotBlank(goodsDesc.getCname()),GoodsDesc::getCname,goodsDesc.getCname());
 		queryWrapper.like(StringUtils.isNotBlank(goodsDesc.getCode()),GoodsDesc::getCode,goodsDesc.getCode());
 		queryWrapper.eq(GoodsDesc::getTenantId,AuthUtil.getTenantId());

+ 2 - 2
blade-service/trade-finance/src/main/java/com/trade/finance/controller/SettlementController.java

@@ -184,8 +184,8 @@ public class SettlementController extends BladeController {
           {
           	throw new SecurityException("传入数据不能为空");
 		  }
-		  settlementService.apply(dto.getItemsList(),dto.getBillType());
-          return R.success("操作成功");
+		  ;
+          return R.data(settlementService.apply(dto.getItemsList(),dto.getBillType()));
 	}
 
 

+ 1 - 1
blade-service/trade-finance/src/main/java/com/trade/finance/service/ISettlementService.java

@@ -46,7 +46,7 @@ public interface ISettlementService extends IService<Settlement> {
 	/**修改新增收付款信息 */
 	void modify(SettlementDTO settlementDTO);
 
-	void apply(List<Items> itemsList,String billType);
+	Settlement apply(List<Items> itemsList,String billType);
 
 	void check(Settlement settlement);
 

+ 19 - 1
blade-service/trade-finance/src/main/java/com/trade/finance/service/impl/SettlementServiceImpl.java

@@ -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;
 
 	}