Index: ssts-diposablegoods/src/main/java/com/forgon/disinfectsystem/diposablegoods/service/GodownEntryManagerImpl.java =================================================================== diff -u -r12806 -r12820 --- ssts-diposablegoods/src/main/java/com/forgon/disinfectsystem/diposablegoods/service/GodownEntryManagerImpl.java (.../GodownEntryManagerImpl.java) (revision 12806) +++ ssts-diposablegoods/src/main/java/com/forgon/disinfectsystem/diposablegoods/service/GodownEntryManagerImpl.java (.../GodownEntryManagerImpl.java) (revision 12820) @@ -937,8 +937,15 @@ Long disposableGoodsID = entry.getKey(); DisposableGoods disposableGoods = entry.getValue(); if(!disposableGoodsIDToDisposableGoodsStockMap.containsKey(disposableGoodsID)){ + // 根据仓库id和一次性物品定义id查找库存对象 + DisposableGoodsStock disposableGoodsStock = diposableGoodsManager.getDisposableGoodsStockByDisposableGoodsID(warehouseID, disposableGoodsID); // 新增物品库存 - DisposableGoodsStock disposableGoodsStock = diposableGoodsManager.createDisposableGoodsStock(warehouseID, warehouseName, disposableGoods); + if(disposableGoodsStock == null){ + disposableGoodsStock = diposableGoodsManager.createDisposableGoodsStock(warehouseID, warehouseName, disposableGoods); + } + if(disposableGoodsStock == null){ + throw new RuntimeException("创建物品库存失败!"); + } idToDisposableGoodsStockMap.put(disposableGoodsStock.getId(), disposableGoodsStock); disposableGoodsIDToDisposableGoodsStockMap.put(disposableGoodsStock.getDisposableGoodsID(), disposableGoodsStock); } @@ -963,20 +970,21 @@ for (DisposableGoods disposableGoods : disposableGoodsList) { idToDiposableGoodsMap.put(disposableGoods.getId(), disposableGoods); } - // 获取物品库存 - List disposableGoodsStockList = diposableGoodsManager.getDisposableGoodsStockByDisposableGoodsStockIDs(diposableGoodsStockIDsSet); - if(diposableGoodsStockIDsSet.size() > 0){ - if (disposableGoodsStockList == null - || disposableGoodsStockList.size() != diposableGoodsStockIDsSet.size()) { - throw new RuntimeException("某些物品已被删除!"); - } - } - if(disposableGoodsStockList != null){ - for (DisposableGoodsStock disposableGoodsStock : disposableGoodsStockList) { + // 可以直接根据物品定义和仓库获取仓库下面对应的所有物品库存对象 + List disposableGoodsStocks = diposableGoodsManager.getDisposableGoodsStockByDisposableGoodsIDs(warehouseID.toString(),diposableGoodsIDsSet); + if(disposableGoodsStocks != null){ + for (DisposableGoodsStock disposableGoodsStock : disposableGoodsStocks) { idToDisposableGoodsStockMap.put(disposableGoodsStock.getId(), disposableGoodsStock); disposableGoodsIDToDisposableGoodsStockMap.put(disposableGoodsStock.getDisposableGoodsID(), disposableGoodsStock); } } +// List disposableGoodsStockList = diposableGoodsManager.getDisposableGoodsStockByDisposableGoodsStockIDs(diposableGoodsStockIDsSet); +// if(diposableGoodsStockIDsSet.size() > 0){ +// if (disposableGoodsStockList == null +// || disposableGoodsStockList.size() != diposableGoodsStockIDsSet.size()) { +// throw new RuntimeException("某些物品已被删除!"); +// } +// } // 加载所有的批次定义 String getDisposableGoodsBatchSql = String.format(" where %s ", @@ -987,16 +995,6 @@ idToDisposableGoodsBatchMap.put(disposableGoodsBatch.getId(), disposableGoodsBatch); } } - // 获取仓库下面对应的物品库存对象 -// String getDisposableGoodsStockSql = String.format(" where %s and po.warehouseID=%s", -// SqlUtils.getStringFieldInCollectionsPredicate("po.disposableGoodsID", diposableGoodsIDsSet),warehouseID); -// List disposableGoodsStocks = objectDao.findBySql(DisposableGoodsStock.class.getSimpleName(),getDisposableGoodsStockSql); -// if(disposableGoodsStocks != null){ -// for (DisposableGoodsStock disposableGoodsStock : disposableGoodsStocks) { -// idToDisposableGoodsStockMap.put(disposableGoodsStock.getId(), disposableGoodsStock); -// disposableGoodsIDToDisposableGoodsStockMap.put(disposableGoodsStock.getDisposableGoodsID(), disposableGoodsStock); -// } -// } // 获取相关批次和标识号 List batchStocks = null; @@ -1048,9 +1046,10 @@ for (GodownEntryItem godownEntryItem : itemList) { Long disposableGoodsID = godownEntryItem.getDisposableGoodsID(); Long disposableGoodsStockID = godownEntryItem.getDisposableGoodsStockID(); - if(disposableGoodsID != null){ - disposableGoodsIDsSet.add(disposableGoodsID); + if(disposableGoodsID == null){ + throw new RuntimeException("物品定义的id不能为空!"); } + disposableGoodsIDsSet.add(disposableGoodsID); if(disposableGoodsStockID != null){ disposableGoodsStockIDsSet.add(disposableGoodsStockID); } @@ -1604,17 +1603,18 @@ } private void summaryDiposableGoodsInfoForGodownOutEntry(GodownEntry entry,Set disposableGoodsIDsSet, - Set diposableGoodsIDsSet, Set disposableGoodsBatchIDsSet,Set disposableGoodsBatchStockIDSet, + Set disposableGoodsStockIDsSet, Set disposableGoodsBatchIDsSet,Set disposableGoodsBatchStockIDSet, Set batchNumbersSet, Set identificationIdsSet) { List itemList = entry.getItemsList(); for (GodownEntryItem godownEntryItem : itemList) { Long disposableGoodsID = godownEntryItem.getDisposableGoodsID(); - Long diposableGoodsID = godownEntryItem.getDisposableGoodsStockID(); - if(disposableGoodsID != null){ - disposableGoodsIDsSet.add(disposableGoodsID); + Long disposableGoodsStockID = godownEntryItem.getDisposableGoodsStockID(); + if(disposableGoodsID == null){ + throw new RuntimeException("物品定义的id不能为空!"); } - if (diposableGoodsID != null) { - diposableGoodsIDsSet.add(diposableGoodsID); + disposableGoodsIDsSet.add(disposableGoodsID); + if (disposableGoodsStockID != null) { + disposableGoodsStockIDsSet.add(disposableGoodsStockID); } Long disposableGoodsBatchID = godownEntryItem.getDisposableGoodsBatchID(); Long disposableGoodsBatchStockID = godownEntryItem.getDisposableGoodsBatchStockID();