Index: ssts-datasync-default-impl/src/main/java/com/forgon/disinfectsystem/inventorymanagement/service/InventoryManagerImpl.java =================================================================== diff -u -r14216 -r14375 --- ssts-datasync-default-impl/src/main/java/com/forgon/disinfectsystem/inventorymanagement/service/InventoryManagerImpl.java (.../InventoryManagerImpl.java) (revision 14216) +++ ssts-datasync-default-impl/src/main/java/com/forgon/disinfectsystem/inventorymanagement/service/InventoryManagerImpl.java (.../InventoryManagerImpl.java) (revision 14375) @@ -1009,6 +1009,19 @@ .getDisposableGoods(); // 可能是新的一次性物品,需保存一次性物品定义 if (disposableGoods.getId() == null) { + //其次再根据名称和规格判断是否已经存在 + if(StringUtils.isNotBlank(disposableGoods.getInventorySerialNumber())){ + disposableGoods = diposableGoodsManager.getDisposableGoodsByInventorySerialNumber(disposableGoods.getInventorySerialNumber()); + if(disposableGoods == null){ + disposableGoods = diposableGoodsManager.getDisposableGoodsByName(item.getInventory().getName(), item.getInventory().getSpecification()); + } + }else{ + //最后再根据名称和规格判断是否已经存在 + disposableGoods = diposableGoodsManager.getDisposableGoodsByName(disposableGoods.getName(), disposableGoods.getSpecification()); + } + } + if (disposableGoods == null || disposableGoods.getId() == null) { + disposableGoods = item.getInventory().getDisposableGoods(); diposableGoodsManager.saveOrUpdate(disposableGoods);// 首先保存一次性物品 } GodownEntryItem godownEntryItem = new GodownEntryItem(); @@ -1023,7 +1036,7 @@ godownEntryItem.setSterileBatchNumber(item.getSterileBatchNumber()); godownEntryItem.setSupplierName(item.getSupplierName()); godownEntryItem.setGodownEntry(godownEntry);// 和退库单关联 - godownEntryItem.setDisposableGoodsStockID(disposableGoods.getId());// 和一次性物品ID关联 + //godownEntryItem.setDisposableGoodsStockID(disposableGoods.getId());// 和一次性物品ID关联 } godownEntrys.add(godownEntry); }