|
@@ -103,16 +103,18 @@ public class MaterialBatchServiceImpl extends ServiceImpl<MaterialBatchMapper,Ma
|
|
|
List<MaterialBatch> list = materialBatchMapper.getMaterialBatchByMaterialId(depotItem.getMaterialId(),depotItem.getDepotId());
|
|
|
//根据单据子表基础单位数量减去批次库存
|
|
|
BigDecimal basicNumber = depotItem.getBasicNumber();
|
|
|
- if (mis.getNumber() != null && mis.getNumber().compareTo(basicNumber) >= 0){
|
|
|
+ if (mis != null && mis.getNumber() != null && mis.getNumber().compareTo(basicNumber) >= 0){
|
|
|
//初期库存足够,扣除期初库存
|
|
|
BigDecimal inventory = mis.getNumber().subtract(basicNumber);
|
|
|
mis.setNumber(inventory);
|
|
|
materialInitialStockMapper.updateByPrimaryKeySelective(mis);
|
|
|
}else {
|
|
|
- //初期库存不足,先扣除期初,再从批次扣除
|
|
|
- basicNumber = basicNumber.subtract(mis.getNumber());
|
|
|
- mis.setNumber(BigDecimal.ZERO);
|
|
|
- materialInitialStockMapper.updateByPrimaryKeySelective(mis);
|
|
|
+ //初期库存不为空,先扣除期初,再从批次扣除
|
|
|
+ if (mis != null && mis.getNumber() != null){
|
|
|
+ basicNumber = basicNumber.subtract(mis.getNumber());
|
|
|
+ mis.setNumber(BigDecimal.ZERO);
|
|
|
+ materialInitialStockMapper.updateByPrimaryKeySelective(mis);
|
|
|
+ }
|
|
|
for (MaterialBatch materialBatch : list) {
|
|
|
if (materialBatch.getInventory().compareTo(basicNumber) >= 0){
|
|
|
//批次库存足够,扣除库存,结束循环
|