记得上下班打卡 | git大法好,push需谨慎

Commit f7f4de03 authored by 胡佳晨's avatar 胡佳晨

提交 接口 同步 spu库存

parent 11d55689
......@@ -18,9 +18,11 @@ import com.liquidnet.service.goblin.mapper.GoblinGoodsSkuMapper;
import com.liquidnet.service.goblin.service.IGoblinErpService;
import com.liquidnet.service.platform.utils.GoblinRedisUtils;
import com.liquidnet.service.platform.utils.QueueUtils;
import com.mongodb.BasicDBObject;
import lombok.extern.slf4j.Slf4j;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.data.mongodb.core.MongoTemplate;
import org.springframework.data.mongodb.core.convert.MongoConverter;
import org.springframework.data.mongodb.core.query.Criteria;
import org.springframework.data.mongodb.core.query.Query;
import org.springframework.stereotype.Service;
......@@ -50,6 +52,8 @@ public class WdtServiceImpl implements IGoblinErpService {
@Autowired
MongoTemplate mongoTemplate;
@Autowired
MongoConverter mongoConverter;
@Autowired
QueueUtils queueUtils;
@Override
......@@ -99,10 +103,10 @@ public class WdtServiceImpl implements IGoblinErpService {
List<StockQueryVo> stockQueryVos = data.getStocks();
for (StockQueryVo stockQueryVo : stockQueryVos) {
try {
BigDecimal avaliableNum = stockQueryVo.getAvaliable_num();//可发库存
BigDecimal stockNum = stockQueryVo.getStock_num();//可发库存
SyncStockVo vo = SyncStockVo.getNew();
vo.setSpecNo(stockQueryVo.getSpec_no());
vo.setStockErpNum(avaliableNum);
vo.setStockErpNum(stockNum);
vo.setWarehouseNo(stockQueryVo.getWarehouse_no());
stockMap.add(vo);
} catch (Exception e) {
......@@ -122,14 +126,29 @@ public class WdtServiceImpl implements IGoblinErpService {
String skuId = "";
try {
GoblinGoodsSkuInfoVo skuInfoVo = mongoTemplate.findOne(Query.query(Criteria.where("skuErpCode").is(vo.getSpecNo()).and("erpWarehouseNo").is(vo.getWarehouseNo())), GoblinGoodsSkuInfoVo.class, GoblinGoodsSkuInfoVo.class.getSimpleName());
int changeStock = vo.getStockNum().subtract(BigDecimal.valueOf(skuInfoVo.getSkuStock())).intValue();
int changeStock = vo.getStockErpNum().subtract(BigDecimal.valueOf(skuInfoVo.getSkuStock())).intValue();
skuId = skuInfoVo.getSkuId();
//mongo修改
HashMap<String, Object> map = new HashMap<>();
map.put("stock", vo.getStockErpNum());
map.put("skuStock", vo.getStockErpNum());
BasicDBObject obj = new BasicDBObject("$set", mongoConverter.convertToMongoType(map));
mongoTemplate.getCollection(GoblinGoodsSkuInfoVo.class.getSimpleName()).updateOne(
Query.query(Criteria.where("skuId").is(skuId)).getQueryObject(),
obj);
//sql 当前库存 增加changeStock
queueUtils.sendMsgByGoblinRedis(MQConst.GoblinQueue.GOBLIN_ORDER_CLOSE.getKey(),
SqlMapping.get("goblin_sku.stock", vo.getStockNum().intValue(), LocalDateTime.now(), vo.getSpecNo(), vo.getWarehouseNo()));
SqlMapping.get("goblin_sku.stock", vo.getStockErpNum().intValue(), vo.getStockErpNum().intValue(), LocalDateTime.now(), vo.getSpecNo(), vo.getWarehouseNo()));
//redis incr 增加changeStock
goblinRedisUtils.incrSkuStock(null, skuId, changeStock);
int stock = 0;
if (changeStock > 0) {
stock = goblinRedisUtils.incrSkuStock(null, skuId, changeStock);
} else if (changeStock < 0) {
stock = goblinRedisUtils.decrSkuStock(null, skuId, Math.abs(changeStock));
}
log.info("skuId:{},库存:{}", skuId, stock);
} catch (Exception e) {
e.printStackTrace();
log.error("同步库存失败 skuId:{},erpSpecNo:{},warehouseNo:{}", skuId, vo.getSpecNo(), vo.getWarehouseNo());
}
}
......
......@@ -2,4 +2,4 @@ spring:
application:
name: liquidnet-service-platform
profiles:
active: dev
active: test
......@@ -4,4 +4,4 @@ goblin_order.close.sku=UPDATE goblin_order_sku SET status = ? ,updated_at = ? WH
# ------------------------????----------------------------
kylin_camera_record.insert=INSERT INTO kylin_camera_record (camera_record_id, camera_id, person_num) VALUES (?,?,?)
goblin_sku.stock=UPDATE goblin_goods_sku SET sku_stock = ? ,updated_at = ? WHERE sku_erp_code = ? and erp_warehouse_no = ?
goblin_sku.stock=UPDATE goblin_goods_sku SET sku_stock = ? , stock = ?, updated_at = ? WHERE sku_erp_code = ? and erp_warehouse_no = ?
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment