商品库存预警值发送MQ消息
This commit is contained in:
parent
a38dc8eab4
commit
a953146806
|
|
@ -5,6 +5,7 @@ import cn.hutool.core.collection.CollUtil;
|
|||
import cn.hutool.core.convert.Convert;
|
||||
import cn.hutool.core.thread.ThreadUtil;
|
||||
import cn.hutool.core.util.NumberUtil;
|
||||
import cn.hutool.core.util.ObjUtil;
|
||||
import cn.hutool.core.util.StrUtil;
|
||||
import com.czg.config.RabbitPublisher;
|
||||
import com.czg.enums.YesNoEnum;
|
||||
|
|
@ -70,7 +71,7 @@ public class ProductRpcServiceImpl implements ProductRpcService {
|
|||
if (CollUtil.isEmpty(list)) {
|
||||
return;
|
||||
}
|
||||
boolean isHasStockChangeToZero = false;
|
||||
boolean isLowWarnLine = false;
|
||||
for (ProductStockSubtractDTO dto : list) {
|
||||
Product product = productMapper.selectOneById(dto.getProductId());
|
||||
if (product == null) {
|
||||
|
|
@ -97,8 +98,9 @@ public class ProductRpcServiceImpl implements ProductRpcService {
|
|||
productStockFlowService.saveFlow(flow);
|
||||
cleanCategoryProduct(shopId, product.getCategoryId());
|
||||
refreshRedisProdStock(shopId, product.getId(), flow.getAfterNumber());
|
||||
if (!isHasStockChangeToZero && NumberUtil.isLessOrEqual(flow.getAfterNumber(), BigDecimal.ZERO)) {
|
||||
isHasStockChangeToZero = true;
|
||||
Integer warnLine = ObjUtil.defaultIfNull(product.getWarnLine(), 10);
|
||||
if (!isLowWarnLine && NumberUtil.isLess(flow.getAfterNumber(), Convert.toBigDecimal(warnLine))) {
|
||||
isLowWarnLine = true;
|
||||
}
|
||||
// 查询商品绑定耗材信息
|
||||
List<ProdConsRelation> relationList = prodConsRelationMapper.selectListByQuery(QueryWrapper.create().eq(ProdConsRelation::getProductId, dto.getProductId()));
|
||||
|
|
@ -143,7 +145,7 @@ public class ProductRpcServiceImpl implements ProductRpcService {
|
|||
consStockFlowService.saveFlow(consStockFlow);
|
||||
}
|
||||
}
|
||||
if (isHasStockChangeToZero) {
|
||||
if (isLowWarnLine) {
|
||||
ThreadUtil.execAsync(() -> rabbitPublisher.sendProductInfoChangeMsg(Convert.toStr(shopId)));
|
||||
}
|
||||
log.info("ProductService.--------------------------------------------库存更新成功");
|
||||
|
|
@ -157,7 +159,7 @@ public class ProductRpcServiceImpl implements ProductRpcService {
|
|||
if (CollUtil.isEmpty(list)) {
|
||||
return;
|
||||
}
|
||||
boolean isHasStockChangeToZero = false;
|
||||
boolean isLowWarnLine = false;
|
||||
for (ProductStockSubtractDTO dto : list) {
|
||||
Product product = productMapper.selectOneById(dto.getProductId());
|
||||
productMapper.updateProductStockNum(dto.getProductId(), dto.getShopId(), "add", dto.getNum());
|
||||
|
|
@ -177,8 +179,9 @@ public class ProductRpcServiceImpl implements ProductRpcService {
|
|||
flow.setOrderId(orderId);
|
||||
productStockFlowService.saveFlow(flow);
|
||||
refreshRedisProdStock(shopId, product.getId(), flow.getAfterNumber());
|
||||
if (!isHasStockChangeToZero && (NumberUtil.isLessOrEqual(flow.getBeforeNumber(), BigDecimal.ZERO) || NumberUtil.isLessOrEqual(flow.getAfterNumber(), BigDecimal.ZERO))) {
|
||||
isHasStockChangeToZero = true;
|
||||
Integer warnLine = ObjUtil.defaultIfNull(product.getWarnLine(), 10);
|
||||
if (!isLowWarnLine && (NumberUtil.isLessOrEqual(flow.getBeforeNumber(), BigDecimal.ZERO) || NumberUtil.isLess(flow.getAfterNumber(), Convert.toBigDecimal(warnLine)))) {
|
||||
isLowWarnLine = true;
|
||||
}
|
||||
// 查询商品绑定耗材信息
|
||||
List<ProdConsRelation> relationList = prodConsRelationMapper.selectListByQuery(QueryWrapper.create().eq(ProdConsRelation::getProductId, dto.getProductId()));
|
||||
|
|
@ -223,7 +226,7 @@ public class ProductRpcServiceImpl implements ProductRpcService {
|
|||
consStockFlowService.saveFlow(consStockFlow);
|
||||
}
|
||||
}
|
||||
if (isHasStockChangeToZero) {
|
||||
if (isLowWarnLine) {
|
||||
ThreadUtil.execAsync(() -> rabbitPublisher.sendProductInfoChangeMsg(Convert.toStr(shopId)));
|
||||
}
|
||||
log.info("ProductService.--------------------------------------------库存更新成功");
|
||||
|
|
@ -237,7 +240,7 @@ public class ProductRpcServiceImpl implements ProductRpcService {
|
|||
return;
|
||||
}
|
||||
log.info(">>>>>>>>>>>>>>>>>:入参1:{}", list.size());
|
||||
boolean isHasStockChangeToZero = false;
|
||||
boolean isLowWarnLine = false;
|
||||
for (ProductStockSubtractDTO dto : list) {
|
||||
Product product = productMapper.selectOneById(dto.getProductId());
|
||||
log.info(">>>>>>>>>>>>>>>>>:入参2:{}", product.getName());
|
||||
|
|
@ -270,8 +273,9 @@ public class ProductRpcServiceImpl implements ProductRpcService {
|
|||
log.info(">>>>>>>>>>>>>>>>>:入参4:{}", redisService.get(key));
|
||||
refreshRedisProdStock(shopId, product.getId(), flow.getAfterNumber());
|
||||
log.info(">>>>>>>>>>>>>>>>>:入参5:{}", redisService.get(key));
|
||||
if (!isHasStockChangeToZero && (NumberUtil.isLessOrEqual(flow.getBeforeNumber(), BigDecimal.ZERO) || NumberUtil.isLessOrEqual(flow.getAfterNumber(), BigDecimal.ZERO))) {
|
||||
isHasStockChangeToZero = true;
|
||||
Integer warnLine = ObjUtil.defaultIfNull(product.getWarnLine(), 10);
|
||||
if (!isLowWarnLine && (NumberUtil.isLessOrEqual(flow.getBeforeNumber(), BigDecimal.ZERO) || NumberUtil.isLess(flow.getAfterNumber(), Convert.toBigDecimal(warnLine)))) {
|
||||
isLowWarnLine = true;
|
||||
}
|
||||
// 查询商品绑定耗材信息
|
||||
List<ProdConsRelation> relationList = prodConsRelationMapper.selectListByQuery(QueryWrapper.create().eq(ProdConsRelation::getProductId, dto.getProductId()));
|
||||
|
|
@ -316,7 +320,7 @@ public class ProductRpcServiceImpl implements ProductRpcService {
|
|||
consStockFlowService.saveFlow(consStockFlow);
|
||||
}
|
||||
}
|
||||
if (isHasStockChangeToZero) {
|
||||
if (isLowWarnLine) {
|
||||
ThreadUtil.execAsync(() -> rabbitPublisher.sendProductInfoChangeMsg(Convert.toStr(shopId)));
|
||||
}
|
||||
log.info("ProductService.--------------------------------------------库存更新成功");
|
||||
|
|
|
|||
Loading…
Reference in New Issue