@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;
}
查询表数据如果数据不足所需数据则以下一条数据开始补充直到满足所需数据为止
最新推荐文章于 2022-05-30 18:14:57 发布