Index: ssts-web/src/test/java/test/forgon/disinfectsystem/AbstractCSSDTest.java =================================================================== diff -u -r16755 -r16759 --- ssts-web/src/test/java/test/forgon/disinfectsystem/AbstractCSSDTest.java (.../AbstractCSSDTest.java) (revision 16755) +++ ssts-web/src/test/java/test/forgon/disinfectsystem/AbstractCSSDTest.java (.../AbstractCSSDTest.java) (revision 16759) @@ -978,6 +978,7 @@ wareHouse1.setOrgUnitName(Constants.ORG_UNIT_NAME_CSSD); wareHouse1.setBarcode("010009001"); wareHouse1.setType(BarcodeDevice.BARCODE_TYPE_WAREHOUSE); + wareHouse1.setSequence(1L); objectDao.save(wareHouse1); WareHouse wareHouse2 = new WareHouse(); @@ -989,6 +990,7 @@ wareHouse2.setOrgUnitName(Constants.ORG_UNIT_NAME_OR); wareHouse2.setBarcode("010009002"); wareHouse2.setType(BarcodeDevice.BARCODE_TYPE_WAREHOUSE); + wareHouse2.setSequence(1L); objectDao.save(wareHouse2); WareHouse wareHouse3 = new WareHouse(); @@ -1000,6 +1002,7 @@ wareHouse3.setOrgUnitName("测试内科"); wareHouse3.setBarcode("010009003"); wareHouse3.setType(BarcodeDevice.BARCODE_TYPE_WAREHOUSE); + wareHouse3.setSequence(1L); objectDao.save(wareHouse3); WareHouse wareHouse4 = new WareHouse(); @@ -1011,6 +1014,7 @@ wareHouse4.setOrgUnitName("测试外科"); wareHouse4.setBarcode("010009004"); wareHouse4.setType(BarcodeDevice.BARCODE_TYPE_WAREHOUSE); + wareHouse4.setSequence(1L); objectDao.save(wareHouse4); Container container1 = new Container(); Index: ssts-web/src/test/java/test/forgon/disinfectsystem/invoicemanager/service/TestPDABorrowTousseGoodsInvoiceManager.java =================================================================== diff -u -r15035 -r16759 --- ssts-web/src/test/java/test/forgon/disinfectsystem/invoicemanager/service/TestPDABorrowTousseGoodsInvoiceManager.java (.../TestPDABorrowTousseGoodsInvoiceManager.java) (revision 15035) +++ ssts-web/src/test/java/test/forgon/disinfectsystem/invoicemanager/service/TestPDABorrowTousseGoodsInvoiceManager.java (.../TestPDABorrowTousseGoodsInvoiceManager.java) (revision 16759) @@ -3,22 +3,32 @@ import java.util.Date; import java.util.HashMap; +import java.util.List; import java.util.Map; +import org.apache.commons.collections4.CollectionUtils; +import org.apache.commons.lang3.ArrayUtils; import org.testng.annotations.Test; import net.sf.json.JSONArray; import net.sf.json.JSONObject; import test.forgon.constant.Constants; import test.forgon.disinfectsystem.AbstractCSSDTest; +import test.forgon.disinfectsystem.invoicemanager.model.InvoiceInfo; import com.forgon.directory.model.BarcodeDevice; import com.forgon.disinfectsystem.entity.assestmanagement.TousseStock; import com.forgon.disinfectsystem.entity.basedatamanager.toussedefinition.TousseInstance; +import com.forgon.disinfectsystem.entity.basedatamanager.warehouse.WareHouse; import com.forgon.disinfectsystem.entity.departmentstock.DepartmentStock; +import com.forgon.disinfectsystem.entity.goodsstock.GoodsStock; import com.forgon.disinfectsystem.entity.invoicemanager.Invoice; import com.forgon.disinfectsystem.entity.invoicemanager.InvoicePlan; import com.forgon.disinfectsystem.entity.recyclingapplication.RecyclingApplication; +import com.forgon.tools.db.DatabaseUtil; +import com.sun.xml.internal.bind.v2.runtime.unmarshaller.XsiNilLoader.Array; + +import edu.emory.mathcs.backport.java.util.Arrays; /** * PDA借物单发货测试用例 * @author LiuJie @@ -49,23 +59,32 @@ initCSSDData(); initBasicData(); makeActiveUser("admin"); + //仓库仓库 + createWareHouse(); //创建包实例 createTousseInstance(); //创建借物单 createBorrowTousseApplication(); } + private void createWareHouse(){ + //消毒供应室的仓库 + createWareHouse(Constants.ORG_UNIT_CODE_DISINFECT); + //二级手术室的仓库 +// createWareHouse(Constants.ORG_UNIT_CODE_OR); + } /** * 测试借物单全部发货 */ @Test public void testSendAllGoods(){ - //运行前对全局变量清空,以防止影响下一个用例的运行结果 - map.clear(); - for(String barcode :barcodeArray1){ - map.put(barcode, 1); - } - map.put("departCode", Constants.ORG_UNIT_CODE_OR); - String jsonStr = createSendOutParam(map); + prepareData(); + List tousses = tousseInstanceManager.getCollection("barcode", Arrays.asList(barcodeArray1)); + System.out.println(tousses); + WareHouse wareHouse_CSSD = wareHouseManager.getDefaultWareHouseByUnitCode(Constants.ORG_UNIT_CODE_DISINFECT); + InvoiceInfo ii = InvoiceInfo.getDepartInvoiceParam(Constants.ORG_UNIT_CODE_OR, "朱广兴", "朱广兴", + wareHouse_CSSD.getId(), barcodeArray1); + + String jsonStr = JSONObject.fromObject(ii).toString(); sendOutGoods(jsonStr, testAll); } @@ -74,34 +93,41 @@ */ @Test public void testSendPartGoods(){ - //运行前对全局变量清空,以防止影响下一个用例的运行结果 - map.clear(); - map.put("201410200001", 1); - map.put("201410200002", 1); - map.put("departCode", Constants.ORG_UNIT_CODE_OR); - String jsonStr = createSendOutParam(map); + prepareData(); + String[] barcodes = new String[]{barcodeArray1[0],barcodeArray1[1]}; + WareHouse wareHouse_CSSD = wareHouseManager.getDefaultWareHouseByUnitCode(Constants.ORG_UNIT_CODE_DISINFECT); + InvoiceInfo ii = InvoiceInfo.getDepartInvoiceParam(Constants.ORG_UNIT_CODE_OR, "朱广兴", "朱广兴", + wareHouse_CSSD.getId(), barcodes); + + String jsonStr = JSONObject.fromObject(ii).toString(); sendOutGoods(jsonStr, testPart); } public void sendOutGoods(String jsonStr,String type){ - prepareData(); //浮动价格 double tousseFluctionPrice = supplyRoomConfigManager.getTousseFluctuationPercent(); - //发货前的器械包二级库存 - DepartmentStock departmentStock = departmentStockManager.getByDepartCodingAndTousseName(Constants.ORG_UNIT_CODE_OR, "Test开胸包"); - int departmentStockBeforeInvoice = 0; - if(departmentStock != null){ - departmentStockBeforeInvoice = departmentStock.getAmount(); - } - //发货前的库存量 - TousseStock stock_beforeInvoce = tousseStockManager.getTousseStockByTousseName("Test开胸包"); - int stockBeforeInvoice = 0; - if(stock_beforeInvoce != null){ - stockBeforeInvoice = stock_beforeInvoce.getTousseAmount(); - //断言发货前的科室器械包库存为3个 - assertEquals(3 , stockBeforeInvoice); - } + //发货前的器械包库存 + WareHouse wareHouse_CSSD = wareHouseManager.getDefaultWareHouseByUnitCode(Constants.ORG_UNIT_CODE_DISINFECT); + WareHouse wareHouse_clinic = wareHouseManager.getDefaultWareHouseByUnitCode(Constants.ORG_UNIT_CODE_OR); + Long tdAcestorId = tousseDefinitionManager.getTousseDefinitionByName("Test开胸包").getAncestorID(); + assertNotNull(wareHouse_CSSD); + assertNotNull(wareHouse_clinic); + assertTrue(DatabaseUtil.isPoIdValid(tdAcestorId)); + + List cssdGoodsStockBefore = goodsStockManager.getTousseStock(wareHouse_CSSD.getId(), tdAcestorId); + //断言是有库存的 + assertNotNull(cssdGoodsStockBefore); + //测试只有一条库存记录 + assertEquals(cssdGoodsStockBefore.size(), 1); + int cssdGoodsAmoutBefore = cssdGoodsStockBefore.get(0).getAmount(); + //断言库存数量为3 + assertEquals(cssdGoodsAmoutBefore, 3); + + List goodsStockClinicBefore = goodsStockManager.getTousseStock(wareHouse_clinic.getId(), tdAcestorId); + //断言没有库存的。这里得看之前的数据准备。如果这个仓库下没有入过库,肯定是没有库存的。但是如果有库存,则应该是对应的库存数量 + assertTrue(CollectionUtils.isEmpty(goodsStockClinicBefore)); + webServiceManager.submitInvoicePlans(jsonStr); //发货单 @@ -110,10 +136,19 @@ //借物单 RecyclingApplication borrowApplication = recyclingApplicationManager.getRecyclingApplicationById(invoice.getInvoicePlan().getId().toString()); //发货后的库存量 - TousseStock stock_afterInvoice = tousseStockManager.getTousseStockByTousseName("Test开胸包"); - objectDao.getHibernateSession().refresh(stock_afterInvoice); - //发货后的部门二级库存量 - DepartmentStock departmentStock2 = departmentStockManager.getByDepartCodingAndTousseName(Constants.ORG_UNIT_CODE_OR, "Test开胸包"); + List cssdGoodsStockAfter = goodsStockManager.getTousseStock(wareHouse_CSSD.getId(), tdAcestorId); + //断言是有库存的 + assertNotNull(cssdGoodsStockAfter); + //测试只有一条库存记录 + assertEquals(cssdGoodsStockAfter.size(), 1); + + //发货后的库存量 + List goodsStockClinicAfter = goodsStockManager.getTousseStock(wareHouse_clinic.getId(), tdAcestorId); + //断言是有库存的 + assertNotNull(goodsStockClinicAfter); + //测试只有一条库存记录 + assertEquals(goodsStockClinicAfter.size(), 1); + //断言借物单的归还状态为未归还 assertEquals(InvoicePlan.RETURN_STATUS_UNRETURNED, borrowApplication.getReturnStatus()); if(type.equals(testAll)){ @@ -126,10 +161,12 @@ TousseInstance tousseInstance = tousseInstanceManager.getTousseInstanceByBarcode(barcode); assertEquals(tousseInstance.getStatus(), TousseInstance.STATUS_SHIPPED); } - //断言发货后的库存量与发货前的库存量相同 - if(stock_afterInvoice !=null){ - assertEquals(3 , stockBeforeInvoice - stock_afterInvoice.getTousseAmount().intValue()); - } + //供应室的库存数量减少3个,临床科室增加3个 + assertEquals(cssdGoodsStockAfter.get(0).getAmount()-cssdGoodsAmoutBefore, -3); + //供应室库存数量为0个 + assertEquals(cssdGoodsStockAfter.get(0).getAmount().intValue(), 0); + //这里需要根据先前的库存数量进行断言.因为之前数量为0,现在库存数量为3 + assertEquals(goodsStockClinicAfter.get(0).getAmount().intValue(), 3); //断言申请单状态为已发货 assertEquals(InvoicePlan.DELIVERSTATUS_DELIVERED , invoice.getInvoicePlan().getDeliverStatus()); @@ -138,10 +175,6 @@ //断言发货单金额 assertEquals( 3.14*3 *tousseFluctionPrice , invoice.getTotalPrice()); - //断言发货后的二级库存量与发货前的二级库存量多3个 - if(departmentStock2 != null){ - assertEquals(3 , departmentStock2.getAmount().intValue()-departmentStockBeforeInvoice); - } }else if(type.equals(testPart)){ //部分发货 //发货单关联的包实例是否正确 @@ -159,16 +192,14 @@ assertEquals(InvoicePlan.DELIVERSTATUS_PARTDELIVERED , invoice.getInvoicePlan().getDeliverStatus()); //断言借物单状态为已发货 assertEquals(InvoicePlan.DELIVERSTATUS_PARTDELIVERED , borrowApplication.getDeliverStatus()); - //断言发货后的库存量与发货前的库存量少2个 - if(stock_afterInvoice !=null){ - assertEquals(2 , stockBeforeInvoice - stock_afterInvoice.getTousseAmount().intValue()); - } + //供应室的库存数量减少2个,手术室增加2个 + assertEquals(cssdGoodsStockAfter.get(0).getAmount()-cssdGoodsAmoutBefore, -2); + //供应室库存数量为1个 + assertEquals(cssdGoodsStockAfter.get(0).getAmount().intValue(), 1); + //这里需要根据先前的库存数量进行断言.因为之前数量为0,现在库存数量为2 + assertEquals(goodsStockClinicAfter.get(0).getAmount().intValue(), 2); //断言发货单金额 assertEquals(3.14*2*tousseFluctionPrice , invoice.getTotalPrice()); - //断言发货后的二级库存量与发货前的二级库存量多2个 - if(departmentStock2 != null){ - assertEquals(2 , departmentStock2.getAmount().intValue()-departmentStockBeforeInvoice); - } } } Index: ssts-web/src/test/java/test/forgon/disinfectsystem/invoicemanager/service/TestPDATousseInvoiceManager.java =================================================================== diff -u -r16753 -r16759 --- ssts-web/src/test/java/test/forgon/disinfectsystem/invoicemanager/service/TestPDATousseInvoiceManager.java (.../TestPDATousseInvoiceManager.java) (revision 16753) +++ ssts-web/src/test/java/test/forgon/disinfectsystem/invoicemanager/service/TestPDATousseInvoiceManager.java (.../TestPDATousseInvoiceManager.java) (revision 16759) @@ -93,9 +93,9 @@ //断言库存数量为3 assertEquals(cssdGoodsAmoutBefore, 3); - List goodsStock3266Before = goodsStockManager.getTousseStock(wareHouse_clinic.getId(), tdAcestorId); + List goodsStockClinicBefore = goodsStockManager.getTousseStock(wareHouse_clinic.getId(), tdAcestorId); //断言没有库存的。这里得看之前的数据准备。如果这个仓库下没有入过库,肯定是没有库存的。但是如果有库存,则应该是对应的库存数量 - assertTrue(CollectionUtils.isEmpty(goodsStock3266Before)); + assertTrue(CollectionUtils.isEmpty(goodsStockClinicBefore)); webServiceManager.submitInvoicePlans(jsonStr); @@ -107,18 +107,18 @@ assertEquals(cssdGoodsStockAfter.size(), 1); //发货后的库存量 - List goodsStock3266After = goodsStockManager.getTousseStock(wareHouse_clinic.getId(), tdAcestorId); + List goodsStockClinicAfter = goodsStockManager.getTousseStock(wareHouse_clinic.getId(), tdAcestorId); //断言是有库存的 - assertNotNull(goodsStock3266After); + assertNotNull(goodsStockClinicAfter); //测试只有一条库存记录 - assertEquals(goodsStock3266After.size(), 1); + assertEquals(goodsStockClinicAfter.size(), 1); //供应室的库存数量减少3个,临床科室增加3个 assertEquals(cssdGoodsStockAfter.get(0).getAmount()-cssdGoodsAmoutBefore, -3); //供应室库存数量为0个 assertEquals(cssdGoodsStockAfter.get(0).getAmount().intValue(), 0); //这里需要根据先前的库存数量进行断言.因为之前数量为0,现在库存数量为3 - assertEquals(goodsStock3266After.get(0).getAmount().intValue(), 3); + assertEquals(goodsStockClinicAfter.get(0).getAmount().intValue(), 3); Invoice invoice = (Invoice)objectDao.getByProperty(Invoice.class.getSimpleName(), "invoicePlan.serialNumber", "2014021100001"); assertNotNull(invoice);