Index: ssts-receiverecord/src/main/java/com/forgon/disinfectsystem/receiverecord/service/ReceiveRecordManagerImpl.java =================================================================== diff -u -r13370 -r13383 --- ssts-receiverecord/src/main/java/com/forgon/disinfectsystem/receiverecord/service/ReceiveRecordManagerImpl.java (.../ReceiveRecordManagerImpl.java) (revision 13370) +++ ssts-receiverecord/src/main/java/com/forgon/disinfectsystem/receiverecord/service/ReceiveRecordManagerImpl.java (.../ReceiveRecordManagerImpl.java) (revision 13383) @@ -334,7 +334,7 @@ // if(diposableGoodsIDsSet.size() == 0){ // throw new RuntimeException("物品已被删除!"); // } - lockAndGetDiposableGoodsResources(diposableGoodsIDsSet, batchIdsSet, identificationIdsSet, idToDiposableGoodsMap, idToBatchStockMap, idToIdentificationMap); + lockAndGetDiposableGoodsResources(diposableGoodsIDsSet, batchIdsSet, identificationIdsSet, idToDiposableGoodsMap, idToBatchStockMap, idToIdentificationMap , record.getWarehouseId()); // 保存领用记录,后面需要绑定领用记录和itemID record.setDepartCoding(AcegiHelper.getLoginUser().getCurrentOrgUnitCode()); @@ -514,15 +514,15 @@ private void lockAndGetDiposableGoodsResources( Set diposableGoodsIDsSet, Set batchIdsSet,Set identificationIdsSet, Map idToDiposableGoodsMap, - Map idToBatchStockMap,Map idToIdentificationMap) { + Map idToBatchStockMap,Map idToIdentificationMap , Long warehouseId) { // 锁定一次性物品 String diposableGoodsIDsStr = SqlUtils .joinToWhereInConditionForNonStringProperties(diposableGoodsIDsSet); if (StringUtils.isBlank(diposableGoodsIDsStr)) { return; } - String diposableGoodsIDsSql = String.format(" where po.disposableGoodsID in (%s) ", - diposableGoodsIDsStr); + String diposableGoodsIDsSql = String.format(" where po.disposableGoodsID in (%s) and po.warehouseID=(%s) ", + diposableGoodsIDsStr,warehouseId); List allDiposableGoods = diposableGoodsManager .getDiposableGoodsBySql_ForUpdate(diposableGoodsIDsSql); if (CollectionUtils.isNotEmpty(allDiposableGoods)) { @@ -544,8 +544,8 @@ String batchIDsStr = SqlUtils .joinToWhereInConditionForNonStringProperties(batchIdsSet); if (StringUtils.isNotBlank(batchIDsStr)) { - String batchStockSql = String.format(" where po.disposableGoodsBatchID in (%s) ", - batchIDsStr); + String batchStockSql = String.format(" where po.disposableGoodsBatchID in (%s) and po.warehouseID=(%s) ", + batchIDsStr,warehouseId); batchStocks = (List) objectDao.findBySql( DisposableGoodsBatchStock.class.getSimpleName(), batchStockSql); @@ -625,7 +625,7 @@ // } lockAndGetDiposableGoodsResources(diposableGoodsIDsSet, batchIdsSet, identificationIdsSet, idToDiposableGoodsMap, idToBatchStockMap, - idToIdentificationMap); + idToIdentificationMap , record.getWarehouseId()); List originalItemList = original.getItems(); List itemList = record.getItems(); @@ -1094,7 +1094,7 @@ // 锁定并获取一次性物品 lockAndGetDiposableGoodsResources(diposableGoodsIDsSet, batchIdsSet, identificationIdsSet, idToDiposableGoodsMap, - idToBatchStockMap, idToIdentificationMap); + idToBatchStockMap, idToIdentificationMap , receiveRecord.getWarehouseId()); // //////// // 删除各个item List itemList = new ArrayList(