1.增加库存记录mq处理
This commit is contained in:
@@ -14,6 +14,8 @@ public class RabbitConfig {
|
|||||||
public static final String ROUTING_STOCK_RECORD_SALE = "routing.stock.record.sale";
|
public static final String ROUTING_STOCK_RECORD_SALE = "routing.stock.record.sale";
|
||||||
|
|
||||||
public static final String QUEUE_STOCK_RECORD = "queue.stock.record";
|
public static final String QUEUE_STOCK_RECORD = "queue.stock.record";
|
||||||
|
public static final String ROUTING_STOCK_RECORD= "routing.stock.record";
|
||||||
|
|
||||||
|
|
||||||
@Bean
|
@Bean
|
||||||
Queue stockRecordSaleQueue() {
|
Queue stockRecordSaleQueue() {
|
||||||
@@ -29,4 +31,14 @@ public class RabbitConfig {
|
|||||||
Binding binding(Queue stockRecordSaleQueue, DirectExchange stockRecordExchange) {
|
Binding binding(Queue stockRecordSaleQueue, DirectExchange stockRecordExchange) {
|
||||||
return BindingBuilder.bind(stockRecordSaleQueue).to(stockRecordExchange).with(ROUTING_STOCK_RECORD_SALE);
|
return BindingBuilder.bind(stockRecordSaleQueue).to(stockRecordExchange).with(ROUTING_STOCK_RECORD_SALE);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@Bean
|
||||||
|
Queue stockRecordSaleQueue2() {
|
||||||
|
return new Queue(QUEUE_STOCK_RECORD);
|
||||||
|
}
|
||||||
|
|
||||||
|
@Bean
|
||||||
|
Binding binding2(Queue stockRecordSaleQueue2, DirectExchange stockRecordExchange) {
|
||||||
|
return BindingBuilder.bind(stockRecordSaleQueue2).to(stockRecordExchange).with(ROUTING_STOCK_RECORD);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -8,5 +8,6 @@ public class StockRecordMsg {
|
|||||||
private Integer skuId;
|
private Integer skuId;
|
||||||
private Integer productId;
|
private Integer productId;
|
||||||
private String type;
|
private String type;
|
||||||
private Integer currentNumber;
|
private Integer subType;
|
||||||
|
private Integer number;
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -40,17 +40,14 @@ public class StockListener {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
// @RabbitListener(queues = RabbitConfig.QUEUE_STOCK_RECORD_SALE)
|
@RabbitListener(queues = RabbitConfig.QUEUE_STOCK_RECORD)
|
||||||
public void recordStockHandler(String message) {
|
public void recordStockHandler(String message) {
|
||||||
log.info("接收到下单保存库存信息mq消息,消息内容: {}", message);
|
log.info("接收到下单保存库存信息mq消息,消息内容: {}", message);
|
||||||
|
|
||||||
if (StrUtil.isBlank(message)) {
|
if (StrUtil.isBlank(message)) {
|
||||||
log.warn("错误消息体");
|
log.warn("错误消息体");
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
StockRecordMsg stockRecordMsg = JSONObject.parseObject(message, StockRecordMsg.class);
|
StockRecordMsg stockRecordMsg = JSONObject.parseObject(message, StockRecordMsg.class);
|
||||||
|
|
||||||
try {
|
try {
|
||||||
productStockOperateService.addStockRecord(stockRecordMsg);
|
productStockOperateService.addStockRecord(stockRecordMsg);
|
||||||
}catch (Exception e) {
|
}catch (Exception e) {
|
||||||
|
|||||||
@@ -466,17 +466,14 @@ public class TbProductStockOperateServiceImpl implements TbProductStockOperateSe
|
|||||||
throw new BadRequestException("商品或sku不存在");
|
throw new BadRequestException("商品或sku不存在");
|
||||||
}
|
}
|
||||||
|
|
||||||
double difference = product.getIsDistribute().equals(1) ? stockRecordMsg.getCurrentNumber() - product.getStockNumber()
|
|
||||||
: stockRecordMsg.getCurrentNumber() - productSku.getStockNumber();
|
|
||||||
|
|
||||||
TbShopUnit tbShopUnit = shopUnitRepository.findById(product.getUnitId()).orElse(null);
|
TbShopUnit tbShopUnit = shopUnitRepository.findById(product.getUnitId()).orElse(null);
|
||||||
|
|
||||||
//增加操作日志
|
//增加操作日志
|
||||||
long times = Instant.now().toEpochMilli();
|
long times = Instant.now().toEpochMilli();
|
||||||
HashMap<String, Object> snapItem = new HashMap<>();
|
HashMap<String, Object> snapItem = new HashMap<>();
|
||||||
snapItem.put("stockNumber", product.getIsDistribute().equals(1) ? product.getStockNumber() : productSku.getStockNumber());
|
snapItem.put("stockNumber", product.getIsDistribute().equals(1) ? product.getStockNumber() - stockRecordMsg.getNumber() :
|
||||||
snapItem.put("number", product.getIsDistribute().equals(1) ? stockRecordMsg.getCurrentNumber() - product.getStockNumber()
|
productSku.getStockNumber() - stockRecordMsg.getNumber());
|
||||||
: stockRecordMsg.getCurrentNumber() - productSku.getStockNumber());
|
snapItem.put("number", stockRecordMsg.getSubType() == -1 ? -stockRecordMsg.getNumber() : stockRecordMsg.getNumber());
|
||||||
snapItem.put("coverImg", product.getCoverImg());
|
snapItem.put("coverImg", product.getCoverImg());
|
||||||
snapItem.put("productId", product.getId());
|
snapItem.put("productId", product.getId());
|
||||||
snapItem.put("name", product.getName());
|
snapItem.put("name", product.getName());
|
||||||
@@ -511,13 +508,13 @@ public class TbProductStockOperateServiceImpl implements TbProductStockOperateSe
|
|||||||
productStockDetail.setUnitName(tbShopUnit == null ? null : tbShopUnit.getName());
|
productStockDetail.setUnitName(tbShopUnit == null ? null : tbShopUnit.getName());
|
||||||
productStockDetail.setShopId(String.valueOf(stockRecordMsg.getShopId()));
|
productStockDetail.setShopId(String.valueOf(stockRecordMsg.getShopId()));
|
||||||
productStockDetail.setSkuId(String.valueOf(stockRecordMsg.getSkuId()));
|
productStockDetail.setSkuId(String.valueOf(stockRecordMsg.getSkuId()));
|
||||||
productStockDetail.setSubType(product.getIsDistribute().equals(1) ? stockRecordMsg.getCurrentNumber() - product.getStockNumber() > 0 ? 1 : -1
|
productStockDetail.setSubType(stockRecordMsg.getSubType());
|
||||||
: stockRecordMsg.getCurrentNumber() - productSku.getStockNumber() > 0 ? 1 : -1);
|
|
||||||
productStockDetail.setType(stockRecordMsg.getType());
|
productStockDetail.setType(stockRecordMsg.getType());
|
||||||
productStockDetail.setSpecSnap(productSku.getSpecSnap());
|
productStockDetail.setSpecSnap(productSku.getSpecSnap());
|
||||||
productStockDetail.setStockNumber(difference);
|
productStockDetail.setStockNumber(Double.valueOf(stockRecordMsg.getNumber()));
|
||||||
productStockDetail.setCostAmount(productSku.getSalePrice().multiply(BigDecimal.valueOf(Math.abs(difference))));
|
productStockDetail.setCostAmount(productSku.getSalePrice().multiply(BigDecimal.valueOf(Math.abs(stockRecordMsg.getNumber()))));
|
||||||
productStockDetail.setLeftNumber(product.getIsDistribute().equals(1) ? product.getStockNumber() : productSku.getStockNumber().intValue());
|
productStockDetail.setLeftNumber(product.getIsDistribute().equals(1) ? product.getStockNumber() - stockRecordMsg.getNumber()
|
||||||
|
: productSku.getStockNumber().intValue() - stockRecordMsg.getNumber());
|
||||||
productStockDetail.setRecordId(stockOperate.getId().toString());
|
productStockDetail.setRecordId(stockOperate.getId().toString());
|
||||||
productStockDetail.setStockSnap(JSONObject.toJSONString(snapItem));
|
productStockDetail.setStockSnap(JSONObject.toJSONString(snapItem));
|
||||||
productStockDetail.setSourcePath("NORMAL");
|
productStockDetail.setSourcePath("NORMAL");
|
||||||
|
|||||||
Reference in New Issue
Block a user