查询表数据如果数据不足所需数据则以下一条数据开始补充直到满足所需数据为止

@Transactional
    public Map<String,String> rationCardPwd(CardPwdDistributionRequest request) {
        Map<String,String> map=new HashMap<String,String>();
        try {
          //满足该商品的所有批次
          List<CommodityBuyLog> commodityBuyLogAll = commodityInfoMapper.queryCommodityBuyLogByCommId(request.getCommodityId());
          if (commodityBuyLogAll != null && commodityBuyLogAll.size()>0) {
              //需求库存
              int xqkc = request.getNum();
              for (CommodityBuyLog commodityBuyLog : commodityBuyLogAll) {
                  if(xqkc > 0){
                          //库存充足
                          if(commodityBuyLog.getLastNum() >= xqkc) {
                              //剩余库存
                              int RemainingNum=commodityBuyLog.getLastNum()-xqkc;
                              //更新数据表
                              commodityInfoMapper.updateCommodityDy(request.getInorderid(), request.getCommodityId(), commodityBuyLog.getId());
                              //更新数据库存表
                              commodityInfoMapper.updateCommodityBg(RemainingNum, commodityBuyLog.getId(), commodityBuyLog.getLastNum());
                              xqkc = 0;
                          }else {
                              xqkc = xqkc - commodityBuyLog.getLastNum();
                              //更新数据表
                              commodityInfoMapper.updateCommodityDy(request.getInorderid(), request.getCommodityId(), commodityBuyLog.getId());
                              //更新数据库存表
                              commodityInfoMapper.updateCommodityBg(0, commodityBuyLog.getId() , commodityBuyLog.getLastNum());
                          }
                          
                  }else {
                       break;
                  }
              }
          
              if(xqkc > 0 )
              {
                   map.put("errormsg", "库存数据不足"+xqkc);
                   throw new Exception("还剩xqkc条记录没有扣掉"+xqkc);
              }else {
                   map.put("code", "SUCCESS");
              }
          }else {
                   map.put("errormsg", "没有该商品的数据批次");  
          }
        } catch (Exception ex) {
            log.error("分配数据方法异常:" + ex.getMessage());
            map.put("errorcode", "分配数据方法异常"+ex.getMessage());
            throw new RuntimeException();
        }
        return map;
    }

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值