Index: ssts-basedata/src/main/java/com/forgon/disinfectsystem/basedatamanager/goodsstock/service/GoodsStockManagerImpl.java =================================================================== diff -u -r16861 -r16942 --- ssts-basedata/src/main/java/com/forgon/disinfectsystem/basedatamanager/goodsstock/service/GoodsStockManagerImpl.java (.../GoodsStockManagerImpl.java) (revision 16861) +++ ssts-basedata/src/main/java/com/forgon/disinfectsystem/basedatamanager/goodsstock/service/GoodsStockManagerImpl.java (.../GoodsStockManagerImpl.java) (revision 16942) @@ -12,6 +12,7 @@ import org.apache.commons.collections4.CollectionUtils; import org.apache.commons.collections4.Predicate; +import org.apache.commons.lang3.StringUtils; import com.forgon.disinfectsystem.entity.basedatamanager.toussedefinition.TousseDefinition; import com.forgon.disinfectsystem.entity.basedatamanager.toussedefinition.TousseInstance; @@ -172,8 +173,13 @@ Set goodsNames = new HashSet(); Set materialDefIds = new HashSet(); for(GoodsStock gs : goodsStockList){ - wareHouseIds.add(gs.getWareHouseId()); - goodsNames.add(gs.getName()); + if(DatabaseUtil.isPoIdValid(gs.getWareHouseId())){ + wareHouseIds.add(gs.getWareHouseId()); + } + if(StringUtils.isNotBlank(gs.getName())){ + goodsNames.add(gs.getName()); + } + if(DatabaseUtil.isPoIdValid(gs.getTousseDefinitionId())){ tousseDefIds.add(gs.getTousseDefinitionId()); } @@ -197,7 +203,9 @@ GoodsStock goodsStock = CollectionUtils.find(toussedefGoodsStockListInDb,new Predicate(){ @Override public boolean evaluate(GoodsStock goodsStock) { - return goodsStockTemp.getWareHouseId().equals(goodsStock.getWareHouseId()) + //goodsStock的wareHouseId有可能会为null,所以在equals前需要加上判断不为空 + return goodsStockTemp.getWareHouseId() != null && goodsStock.getWareHouseId() != null + && goodsStockTemp.getWareHouseId().equals(goodsStock.getWareHouseId()) && goodsStockTemp.getTousseDefinitionId().equals(goodsStock.getTousseDefinitionId()); }}); //判断库存数量是否大于退/出库数量