Index: ssts-diposablegoods/src/main/java/com/forgon/disinfectsystem/diposablegoods/service/GodownEntryManagerImpl.java =================================================================== diff -u -r13538 -r13550 --- ssts-diposablegoods/src/main/java/com/forgon/disinfectsystem/diposablegoods/service/GodownEntryManagerImpl.java (.../GodownEntryManagerImpl.java) (revision 13538) +++ ssts-diposablegoods/src/main/java/com/forgon/disinfectsystem/diposablegoods/service/GodownEntryManagerImpl.java (.../GodownEntryManagerImpl.java) (revision 13550) @@ -504,26 +504,30 @@ warehousingByGodownEntryItemModifyOnlyAmount(entry, warehouseID, warehouseName, idToDisposableGoodsMap, idToDisposableGoodsStockMap, idToBatchStockMap, godownEntryItem); - //根据条码设置高值耗所属仓库 - setExpensiveGoodsWarehouse(godownEntryItem.getBarcode() , warehouseID, warehouseName); objectDao.update(godownEntryItem);// 更新item } } /** - * 根据条码设置高值耗所属仓库 + * 根据条码设置高值耗所属仓库及一次性物品定义、批次定义、库存、批次库存id * @param barcode * @param warehouseID * @param warehouseName + * @param disposableGoodsStockID + * @param disposableGoodsBatchID + * @param disposableGoodsBatchStock */ - private void setExpensiveGoodsWarehouse(String barcode , Long warehouseID,String warehouseName){ + private void setExpensiveGoodsWarehouse(String barcode , Long warehouseID,String warehouseName,Long disposableGoodsStockID,Long disposableGoodsBatchID,DisposableGoodsBatchStock disposableGoodsBatchStock){ if(StringUtils.isNotBlank(barcode)){ BarcodeDevice bd = barcodeManager.getBarcodeByBarcode(barcode); if (bd != null && bd instanceof ExpensiveDisposablegoods) { // 高值耗材 ExpensiveDisposablegoods expensiveDisposablegoods = (ExpensiveDisposablegoods) bd; expensiveDisposablegoods.setWarehouseID(warehouseID); expensiveDisposablegoods.setWarehouseName(warehouseName); + expensiveDisposablegoods.setDisposableGoodsStockID(disposableGoodsStockID); + expensiveDisposablegoods.setDisposableGoodsBatchID(disposableGoodsBatchID); + expensiveDisposablegoods.setDisposableGoodsBatchStock(disposableGoodsBatchStock); objectDao.saveOrUpdate(expensiveDisposablegoods); } } @@ -689,22 +693,36 @@ newBatch = true; idToDisposableGoodsBatchStockMap.put(disposableGoodsBatchStock.getId(), disposableGoodsBatchStock); } - // 新建标识号对象 - DisposableGoodsIdentification identification = newIdentificationOfDisposableGoods( + + if(DisposableGoods.TYPE_EXPENSIVEDIPOSABLEGOODS.equals(disposableGoods.getGoodsType())){ + //根据条码设置高值耗所属仓库及一次性物品定义、批次定义、库存、批次库存id + setExpensiveGoodsWarehouse(godownEntryItem.getBarcode() , warehouseID, warehouseName , disposableGoodsStock.getId(),disposableGoodsBatch.getId(),disposableGoodsBatchStock); + disposableGoodsBatchStock.adjustAmount(1);//数量加1 + }else{ + + // 新建标识号对象 + DisposableGoodsIdentification identification = newIdentificationOfDisposableGoods( entry, godownEntryItem, disposableGoodsID, disposableGoodsStock, disposableGoodsBatch, disposableGoodsBatchStock); - objectDao.save(identification); - + objectDao.save(identification); + godownEntryItem.setIdentificationID(identification.getId()); + } godownEntryItem.setNewBatch(newBatch); // 设置godownEntryItem和批次,标识号关联的信息 godownEntryItem.setDisposableGoodsID(disposableGoodsID); godownEntryItem.setDisposableGoodsStockID(disposableGoodsStock.getId()); godownEntryItem.setDisposableGoodsBatchID(disposableGoodsBatch.getId()); godownEntryItem.setDisposableGoodsBatchStockID(disposableGoodsBatchStock.getId()); - godownEntryItem.setIdentificationID(identification.getId()); godownEntryItem.setDiposableGoods(disposableGoodsStock); - if(!godownEntryItem.isAssociatedInfoValidForInEntry()){ + if(!DatabaseUtil.isPoIdValid(disposableGoodsID) + || !DatabaseUtil.isPoIdValid(disposableGoodsStock.getId()) + || !DatabaseUtil.isPoIdValid(disposableGoodsBatch.getId()) + || !DatabaseUtil.isPoIdValid(disposableGoodsBatchStock.getId()) + || godownEntryItem.getGodownEntry() == null + || godownEntryItem.getGodownEntry().getId() == null + || disposableGoods == null + || !DatabaseUtil.isPoIdValid(disposableGoods.getId())){ throw new RuntimeException("关联信息不正确!"); } objectDao.update(disposableGoods);