Index: ssts-diposablegoods/src/main/java/com/forgon/disinfectsystem/diposablegoods/service/DiposableGoodsManagerImpl.java =================================================================== diff -u -r29375 -r29437 --- ssts-diposablegoods/src/main/java/com/forgon/disinfectsystem/diposablegoods/service/DiposableGoodsManagerImpl.java (.../DiposableGoodsManagerImpl.java) (revision 29375) +++ ssts-diposablegoods/src/main/java/com/forgon/disinfectsystem/diposablegoods/service/DiposableGoodsManagerImpl.java (.../DiposableGoodsManagerImpl.java) (revision 29437) @@ -3067,16 +3067,19 @@ String waitDeliverAmountSql = "0"; if (ObjectUtils.equals("true", CssdUtils.getSystemSetConfigByName("storageUseStorageSubtractWaitDeliver"))){ waitDeliverAmountSql = String.format("(select sum(ti.amount-ti.sendOutAmount) " - + "from TousseItem ti where ti.isTerminated is null and ti.disposableGoodsId=%s group by ti.disposableGoodsId) ", disposableGoods.getId()); + + "from %s ti join %s ip on ti.recyclingApplication_ID=ip.id " + + "where ip.handleDepartCoding='%s' and ti.isTerminated is null and ti.disposableGoodsId=%s and ti.amount > ti.sendOutAmount) ", + TousseItem.class.getSimpleName(),InvoicePlan.class.getSimpleName(),handleDepartCoding,disposableGoods.getId()); } - String storageSql = String.format("select (sum(dgs.amount)-%s) storage from WareHouse wh " - + "join DisposableGoodsStock dgs on dgs.warehouseID=wh.id " - + "where wh.orgUnitCode='%s' and dgs.disposableGoodsID=%s ", - waitDeliverAmountSql, handleDepartCoding, disposableGoods.getId()); + String storageSql = String.format("select (sum(dgs.amount)-%s) storage from %s wh " + + "join %s dgs on dgs.warehouseID=wh.id " + + "where wh.orgUnitCode='%s' and dgs.disposableGoodsID=%s group by dgs.disposableGoodsId ", + waitDeliverAmountSql,WareHouse.class.getSimpleName() ,DisposableGoodsStock.class.getSimpleName() , handleDepartCoding, disposableGoods.getId()); - ResultSet result = objectDao.executeSql(storageSql); + ResultSet result = null; try { + result = objectDao.executeSql(storageSql); if (result.next()){ storage = result.getInt("storage"); }