解决excel导入商品的bug:如果匹配不到仓库会把之前导入的初始库存给置0
This commit is contained in:
@@ -609,9 +609,10 @@ public class MaterialService {
|
|||||||
m.setStockMap(getStockMapCache(src, depotCount, depotMap, i));
|
m.setStockMap(getStockMapCache(src, depotCount, depotMap, i));
|
||||||
mList.add(m);
|
mList.add(m);
|
||||||
}
|
}
|
||||||
List<Long> deleteStockMaterialIdList = new ArrayList<>();
|
List<Long> deleteInitialStockMaterialIdList = new ArrayList<>();
|
||||||
List<MaterialCurrentStock> insertCurrentStockMaterialList = new ArrayList<>();
|
List<Long> deleteCurrentStockMaterialIdList = new ArrayList<>();
|
||||||
List<MaterialInitialStock> insertInitialStockMaterialList = new ArrayList<>();
|
List<MaterialInitialStock> insertInitialStockMaterialList = new ArrayList<>();
|
||||||
|
List<MaterialCurrentStock> insertCurrentStockMaterialList = new ArrayList<>();
|
||||||
for(MaterialWithInitStock m: mList) {
|
for(MaterialWithInitStock m: mList) {
|
||||||
Long mId = 0L;
|
Long mId = 0L;
|
||||||
//判断该商品是否存在,如果不存在就新增,如果存在就更新
|
//判断该商品是否存在,如果不存在就新增,如果存在就更新
|
||||||
@@ -632,7 +633,6 @@ public class MaterialService {
|
|||||||
insertOrUpdateMaterialExtend(materialExObj, "basic", "1", mId, user);
|
insertOrUpdateMaterialExtend(materialExObj, "basic", "1", mId, user);
|
||||||
insertOrUpdateMaterialExtend(materialExObj, "other", "0", mId, user);
|
insertOrUpdateMaterialExtend(materialExObj, "other", "0", mId, user);
|
||||||
//给商品更新库存
|
//给商品更新库存
|
||||||
deleteStockMaterialIdList.add(mId);
|
|
||||||
Map<Long, BigDecimal> stockMap = m.getStockMap();
|
Map<Long, BigDecimal> stockMap = m.getStockMap();
|
||||||
for(Depot depot: depotList){
|
for(Depot depot: depotList){
|
||||||
Long depotId = depot.getId();
|
Long depotId = depot.getId();
|
||||||
@@ -644,6 +644,7 @@ public class MaterialService {
|
|||||||
materialInitialStock.setDepotId(depotId);
|
materialInitialStock.setDepotId(depotId);
|
||||||
materialInitialStock.setNumber(stock);
|
materialInitialStock.setNumber(stock);
|
||||||
insertInitialStockMaterialList.add(materialInitialStock);
|
insertInitialStockMaterialList.add(materialInitialStock);
|
||||||
|
deleteInitialStockMaterialIdList.add(mId);
|
||||||
}
|
}
|
||||||
//新增或更新当前库存
|
//新增或更新当前库存
|
||||||
Long billCount = depotItemService.getCountByMaterialAndDepot(mId, depotId);
|
Long billCount = depotItemService.getCountByMaterialAndDepot(mId, depotId);
|
||||||
@@ -654,6 +655,7 @@ public class MaterialService {
|
|||||||
materialCurrentStock.setDepotId(depotId);
|
materialCurrentStock.setDepotId(depotId);
|
||||||
materialCurrentStock.setCurrentNumber(stock);
|
materialCurrentStock.setCurrentNumber(stock);
|
||||||
insertCurrentStockMaterialList.add(materialCurrentStock);
|
insertCurrentStockMaterialList.add(materialCurrentStock);
|
||||||
|
deleteCurrentStockMaterialIdList.add(mId);
|
||||||
}
|
}
|
||||||
} else {
|
} else {
|
||||||
BigDecimal initStock = getInitStock(mId, depotId);
|
BigDecimal initStock = getInitStock(mId, depotId);
|
||||||
@@ -667,16 +669,17 @@ public class MaterialService {
|
|||||||
materialCurrentStock.setDepotId(depotId);
|
materialCurrentStock.setDepotId(depotId);
|
||||||
materialCurrentStock.setCurrentNumber(currentNumber);
|
materialCurrentStock.setCurrentNumber(currentNumber);
|
||||||
insertCurrentStockMaterialList.add(materialCurrentStock);
|
insertCurrentStockMaterialList.add(materialCurrentStock);
|
||||||
|
deleteCurrentStockMaterialIdList.add(mId);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
//批量更新库存
|
//批量更新库存,先删除后新增
|
||||||
batchDeleteInitialStockByMaterialList(deleteStockMaterialIdList);
|
|
||||||
if(insertInitialStockMaterialList.size()>0) {
|
if(insertInitialStockMaterialList.size()>0) {
|
||||||
|
batchDeleteInitialStockByMaterialList(deleteInitialStockMaterialIdList);
|
||||||
materialInitialStockMapperEx.batchInsert(insertInitialStockMaterialList);
|
materialInitialStockMapperEx.batchInsert(insertInitialStockMaterialList);
|
||||||
}
|
}
|
||||||
batchDeleteCurrentStockByMaterialList(deleteStockMaterialIdList);
|
|
||||||
if(insertCurrentStockMaterialList.size()>0) {
|
if(insertCurrentStockMaterialList.size()>0) {
|
||||||
|
batchDeleteCurrentStockByMaterialList(deleteCurrentStockMaterialIdList);
|
||||||
materialCurrentStockMapperEx.batchInsert(insertCurrentStockMaterialList);
|
materialCurrentStockMapperEx.batchInsert(insertCurrentStockMaterialList);
|
||||||
}
|
}
|
||||||
logService.insertLog("商品",
|
logService.insertLog("商品",
|
||||||
|
|||||||
Reference in New Issue
Block a user