Index: ssts-diposablegoods/src/main/java/com/forgon/disinfectsystem/diposablegoods/service/DiposableGoodBatchStockManager.java =================================================================== diff -u -r13008 -r13023 --- ssts-diposablegoods/src/main/java/com/forgon/disinfectsystem/diposablegoods/service/DiposableGoodBatchStockManager.java (.../DiposableGoodBatchStockManager.java) (revision 13008) +++ ssts-diposablegoods/src/main/java/com/forgon/disinfectsystem/diposablegoods/service/DiposableGoodBatchStockManager.java (.../DiposableGoodBatchStockManager.java) (revision 13023) @@ -22,15 +22,14 @@ public void saveOrUpdate(DisposableGoodsBatchStock diposableGoodBatchStock); public DisposableGoodsBatchStock getDiposableGoodBatchStock( - String diposableGoodId, String batchNumber); + String disposableGoodsStockId, String batchNumber); - public DisposableGoodsBatchStock getDiposableGoodBatchStockByNameAndBatchNum( - String diposablegoodName, String specification, String batchNumber); - public String getDiposableGoodBatchByName(String goodsName, String expDate); public DisposableGoodsBatchStock getDiposableGoodBatchStockById(String id); + public DisposableGoodsBatchStock getDisposableGoodsBatchStockByNameAndBatchNumber(Long warehouseId, + String disposableGoodsName, String specification, String batchNumber); /** * 条码不能唯一确定一条批次记录,因为有多个仓库 * @param barcode 条码 Index: ssts-diposablegoods/src/main/java/com/forgon/disinfectsystem/diposablegoods/action/DiposableGoodsAction.java =================================================================== diff -u -r13020 -r13023 --- ssts-diposablegoods/src/main/java/com/forgon/disinfectsystem/diposablegoods/action/DiposableGoodsAction.java (.../DiposableGoodsAction.java) (revision 13020) +++ ssts-diposablegoods/src/main/java/com/forgon/disinfectsystem/diposablegoods/action/DiposableGoodsAction.java (.../DiposableGoodsAction.java) (revision 13023) @@ -495,6 +495,8 @@ public String getDiposableGoodBatchStockByNameAndBatchNumber() { String diposableGoodsName = StrutsParamUtils.getPraramValue( "diposableGoodsName", ""); + String warehouseId = StrutsParamUtils.getPraramValue( + "warehouseId", ""); String batchNumber = StrutsParamUtils.getPraramValue("batchNumber", ""); String diposableGoodsStr = null; String specification = null; @@ -508,7 +510,7 @@ } DisposableGoodsBatchStock disposableGoodsBatchStock = diposableGoodBatchStockManager - .getDiposableGoodBatchStockByNameAndBatchNum( + .getDisposableGoodsBatchStockByNameAndBatchNumber(Long.valueOf(warehouseId), diposableGoodsName, specification, batchNumber); if (disposableGoodsBatchStock != null) { diposableGoodsStr = "{id:" + disposableGoodsBatchStock.getId() Index: ssts-web/src/test/java/test/forgon/disinfectsystem/invoicemanager/service/TestPDADiposableGoodsInvoiceManager.java =================================================================== diff -u -r13008 -r13023 --- ssts-web/src/test/java/test/forgon/disinfectsystem/invoicemanager/service/TestPDADiposableGoodsInvoiceManager.java (.../TestPDADiposableGoodsInvoiceManager.java) (revision 13008) +++ ssts-web/src/test/java/test/forgon/disinfectsystem/invoicemanager/service/TestPDADiposableGoodsInvoiceManager.java (.../TestPDADiposableGoodsInvoiceManager.java) (revision 13023) @@ -143,9 +143,9 @@ //测试库存 DisposableGoodsBatchStock batchStock = diposableGoodBatchStockManager - .getDiposableGoodBatchStockByNameAndBatchNum("test10ml注射器","小号","1402180001"); + .getDisposableGoodsBatchStockByNameAndBatchNumber(wareHouse1.getId(),"test10ml注射器","小号","1402180001"); DisposableGoodsBatchStock batchStock2 = diposableGoodBatchStockManager - .getDiposableGoodBatchStockByNameAndBatchNum("test10ml注射器","小号","1402180002"); + .getDisposableGoodsBatchStockByNameAndBatchNumber(wareHouse1.getId(),"test10ml注射器","小号","1402180002"); //00001标识号 IdentificationOfDisposableGoods identificationOfDiposableGoods0001 = identificationOfDiposableGoodsManager .getIdentificationOfDiposableGoodsByIdentification(wareHouse1.getId(),"test10ml注射器", "小号", "1402180001", "00001"); Index: ssts-diposablegoods/src/main/java/com/forgon/disinfectsystem/diposablegoods/action/DisposableGoodsStockAction.java =================================================================== diff -u -r13019 -r13023 --- ssts-diposablegoods/src/main/java/com/forgon/disinfectsystem/diposablegoods/action/DisposableGoodsStockAction.java (.../DisposableGoodsStockAction.java) (revision 13019) +++ ssts-diposablegoods/src/main/java/com/forgon/disinfectsystem/diposablegoods/action/DisposableGoodsStockAction.java (.../DisposableGoodsStockAction.java) (revision 13023) @@ -366,9 +366,12 @@ public String getDiposableGoodBatchStockByNameAndBatchNumber() { String diposableGoodsName = StrutsParamUtils.getPraramValue( "diposableGoodsName", ""); + String warehouseId = StrutsParamUtils.getPraramValue( + "warehouseId", ""); String batchNumber = StrutsParamUtils.getPraramValue("batchNumber", ""); String diposableGoodsStr = null; String specification = null; + if (StringUtils.isNotBlank(diposableGoodsName) && diposableGoodsName.lastIndexOf("[") != -1) { specification = diposableGoodsName.substring( @@ -379,7 +382,7 @@ } DisposableGoodsBatchStock disposableGoodsBatchStock = diposableGoodBatchStockManager - .getDiposableGoodBatchStockByNameAndBatchNum( + .getDisposableGoodsBatchStockByNameAndBatchNumber(Long.valueOf(warehouseId), diposableGoodsName, specification, batchNumber); if (disposableGoodsBatchStock != null) { diposableGoodsStr = "{id:" + disposableGoodsBatchStock.getId() Index: ssts-returngoods/src/main/java/com/forgon/disinfectsystem/returngoodsrecord/action/ReturnGoodsRecordAction.java =================================================================== diff -u -r12915 -r13023 --- ssts-returngoods/src/main/java/com/forgon/disinfectsystem/returngoodsrecord/action/ReturnGoodsRecordAction.java (.../ReturnGoodsRecordAction.java) (revision 12915) +++ ssts-returngoods/src/main/java/com/forgon/disinfectsystem/returngoodsrecord/action/ReturnGoodsRecordAction.java (.../ReturnGoodsRecordAction.java) (revision 13023) @@ -449,7 +449,7 @@ } DisposableGoodsBatchStock disposableGoodsBatchStock = diposableGoodBatchStockManager - .getDiposableGoodBatchStockByNameAndBatchNum( + .getDisposableGoodsBatchStockByNameAndBatchNumber(Long.valueOf(warehouseID), diposableGoodsName, specification, batchNumber); if (disposableGoodsBatchStock != null) { returnMsg.put("success", true); Index: ssts-web/src/test/java/test/forgon/disinfectsystem/invoicemanager/service/PDAAssembleSendGoodsInvoiceManagerTests.java =================================================================== diff -u -r13019 -r13023 --- ssts-web/src/test/java/test/forgon/disinfectsystem/invoicemanager/service/PDAAssembleSendGoodsInvoiceManagerTests.java (.../PDAAssembleSendGoodsInvoiceManagerTests.java) (revision 13019) +++ ssts-web/src/test/java/test/forgon/disinfectsystem/invoicemanager/service/PDAAssembleSendGoodsInvoiceManagerTests.java (.../PDAAssembleSendGoodsInvoiceManagerTests.java) (revision 13023) @@ -80,9 +80,9 @@ } //测试库存 DisposableGoodsBatchStock batchStock = diposableGoodBatchStockManager - .getDiposableGoodBatchStockByNameAndBatchNum("test10ml注射器","小号","1402180001"); + .getDisposableGoodsBatchStockByNameAndBatchNumber(wareHouse1.getId(),"test10ml注射器","小号","1402180001"); DisposableGoodsBatchStock batchStock2 = diposableGoodBatchStockManager - .getDiposableGoodBatchStockByNameAndBatchNum("test10ml注射器","小号","1402180002"); + .getDisposableGoodsBatchStockByNameAndBatchNumber(wareHouse1.getId(),"test10ml注射器","小号","1402180002"); //00001标识号 IdentificationOfDisposableGoods identificationOfDiposableGoods0001 = identificationOfDiposableGoodsManager .getIdentificationOfDiposableGoodsByIdentification(wareHouse1.getId(),"test10ml注射器", "小号", "1402180001", "00001"); Index: ssts-diposablegoods/src/main/java/com/forgon/disinfectsystem/diposablegoods/service/DiposableGoodBatchStockManagerImpl.java =================================================================== diff -u -r13008 -r13023 --- ssts-diposablegoods/src/main/java/com/forgon/disinfectsystem/diposablegoods/service/DiposableGoodBatchStockManagerImpl.java (.../DiposableGoodBatchStockManagerImpl.java) (revision 13008) +++ ssts-diposablegoods/src/main/java/com/forgon/disinfectsystem/diposablegoods/service/DiposableGoodBatchStockManagerImpl.java (.../DiposableGoodBatchStockManagerImpl.java) (revision 13023) @@ -6,30 +6,26 @@ import java.sql.ResultSet; import java.sql.SQLException; import java.util.ArrayList; -import java.util.Date; import java.util.List; import java.util.Set; import org.apache.commons.collections4.CollectionUtils; import org.apache.commons.lang.StringUtils; import org.apache.log4j.Logger; -import org.springframework.transaction.interceptor.TransactionAspectSupport; import com.forgon.databaseadapter.service.DateQueryAdapter; -import com.forgon.directory.model.BarcodeDevice; import com.forgon.disinfectsystem.barcode.service.BarcodeManager; +import com.forgon.disinfectsystem.entity.assestmanagement.DisposableGoods; import com.forgon.disinfectsystem.entity.assestmanagement.DisposableGoodsBatchStock; import com.forgon.disinfectsystem.entity.assestmanagement.DisposableGoodsStock; import com.forgon.disinfectsystem.entity.assestmanagement.IdentificationOfDisposableGoods; -import com.forgon.disinfectsystem.exception.RecyclingRecordException; import com.forgon.disinfectsystem.vo.DiposableGoodsStorageVo; -import com.forgon.serialnumber.model.SerialNum; import com.forgon.serialnumber.service.SerialNumManager; -import com.forgon.tools.date.DateTools; import com.forgon.tools.db.DatabaseUtil; import com.forgon.tools.db.InitDbConnection; import com.forgon.tools.hibernate.ObjectDao; import com.forgon.tools.string.StringTools; +import com.forgon.tools.util.SqlUtils; /** * @author JamZhou @@ -94,39 +90,45 @@ */ @Override public DisposableGoodsBatchStock getDiposableGoodBatchStock( - String diposableGoodId, String batchNumber) { - try { - String sql = " where po.diposableGoods = " + diposableGoodId - + " and po.batchNumber = '" + batchNumber + "'"; - DisposableGoodsBatchStock disposableGoodsBatchStock = (DisposableGoodsBatchStock) objectDao - .getBySql(DisposableGoodsBatchStock.class.getSimpleName(), - sql); - return disposableGoodsBatchStock; - } catch (Exception e) { - e.printStackTrace(); - return null; - } + String disposableGoodsStockId, String batchNumber) { + String sql = " where po.diposableGoods.id = " + disposableGoodsStockId + + " and po.batchNumber = '" + batchNumber + "'"; + DisposableGoodsBatchStock disposableGoodsBatchStock = (DisposableGoodsBatchStock) objectDao + .getBySql(DisposableGoodsBatchStock.class.getSimpleName(), sql); + return disposableGoodsBatchStock; } /** * 通过一次性物品名和批号获得库存 * - * @param diposablegoodName + * @param disposableGoodsName * @param batchNumber * @return */ @Override - public DisposableGoodsBatchStock getDiposableGoodBatchStockByNameAndBatchNum( - String diposablegoodName, String specification, String batchNumber) { - String sql = " where po.diposableGoods.name = '" - + diposablegoodName.trim() + "' and po.batchNumber = '" - + batchNumber.trim() + "'"; - if (StringUtils.isNotBlank(specification)) { - sql += " and po.diposableGoods.specification = '" - + specification.trim() + "'"; - } else { - sql += " and po.diposableGoods.specification is null"; + public DisposableGoodsBatchStock getDisposableGoodsBatchStockByNameAndBatchNumber( + Long warehouseId, String disposableGoodsName, String specification, + String batchNumber) { + if (!DatabaseUtil.isPoIdValid(warehouseId)) { + return null; } + if (StringUtils.isBlank(disposableGoodsName) + || StringUtils.isBlank(batchNumber)) { + return null; + } + String disposableGoodsSql = String + .format(" select d.id from %s d where %s and %s", + DisposableGoods.class.getSimpleName(), SqlUtils + .getStringFieldPredicate("d.name", + disposableGoodsName), SqlUtils + .getStringFieldPredicateWithBlankHandling( + "d.specification", specification)); + String sql = String.format(" where %s and %s and %s ", SqlUtils + .getLongFieldPredicate("po.warehouseID", warehouseId), SqlUtils + .getNonStringFieldPredicate("po.disposableGoodsID", + disposableGoodsSql), SqlUtils + .getNonStringFieldPredicate("po.batchNumber", + batchNumber.trim())); DisposableGoodsBatchStock disposableGoodsBatchStock = (DisposableGoodsBatchStock) objectDao .getBySql(DisposableGoodsBatchStock.class.getSimpleName(), sql); return disposableGoodsBatchStock;