Index: ssts-web/src/test/java/test/forgon/disinfectsystem/diposablegoods/service/DiposableGoodsManagerTests.java =================================================================== diff -u -r25557 -r25612 --- ssts-web/src/test/java/test/forgon/disinfectsystem/diposablegoods/service/DiposableGoodsManagerTests.java (.../DiposableGoodsManagerTests.java) (revision 25557) +++ ssts-web/src/test/java/test/forgon/disinfectsystem/diposablegoods/service/DiposableGoodsManagerTests.java (.../DiposableGoodsManagerTests.java) (revision 25612) @@ -189,21 +189,33 @@ entry1.getItemsList().add(godownEntryItem1_1); godownEntryManager.saveGodownEntry_TRANS_REQUIRED(entry1, result); + try { + Thread.sleep(1000); + } catch (InterruptedException e) { + e.printStackTrace(); + } + // 一次性物品的库存 disposableGoodsStock = diposableGoodsManager.getDisposableGoodsStockByName(wareHouse1.getId(),"注射器", "1ML"); assertNotNull(disposableGoodsStock); + assertEquals(1.6, disposableGoodsStock.getReferencePrice()); + assertEquals(100, disposableGoodsStock.getAmount().intValue()); + // 一次性物品的某批次的库存 disposableGoodsBatchStock = diposableGoodBatchStockManager.getDiposableGoodBatchStock(disposableGoodsStock.getId().toString(), "20150704"); assertNotNull(disposableGoodsBatchStock); assertEquals(1.6, disposableGoodsBatchStock.getCost()); assertEquals(100, disposableGoodsBatchStock.getStorage().intValue()); - Set batchs = disposableGoodsStock.getGoodsBatchs(); + List batchs = diposableGoodBatchStockManager + .getDisposableGoodsBatchStockByDisposableGoodsId( + disposableGoods.getId().toString(), false); + assertNotNull(batchs); assertEquals(1, batchs.size()); - assertEquals(1.6, disposableGoodsStock.getReferencePrice()); - assertEquals(100, disposableGoodsStock.getAmount().intValue()); + - List identifications = batchs.iterator().next().getIdentifications(); + List identifications = diposableGoodBatchStockManager.getIdentificationsWithNoZeroStroge(batchs.get(0).getId()); + assertNotNull(identifications); assertEquals(1, identifications.size()); assertEquals(100, identifications.get(0).getAmount().intValue()); @@ -224,19 +236,31 @@ entry2.getItemsList().add(godownEntryItem2_1); godownEntryManager.saveGodownEntry_TRANS_REQUIRED(entry2, result); + try { + Thread.sleep(1000); + } catch (InterruptedException e) { + e.printStackTrace(); + } + disposableGoodsBatchStock = diposableGoodBatchStockManager.getDiposableGoodBatchStock(disposableGoodsStock.getId().toString(), "20150704"); disposableGoodsStock = diposableGoodsManager.getDisposableGoodsStockByName(wareHouse1.getId(),"注射器", "1ML"); assertEquals(1.71, disposableGoodsStock.getReferencePrice()); assertEquals(300, disposableGoodsStock.getAmount().intValue()); - batchs = disposableGoodsStock.getGoodsBatchs(); + batchs = diposableGoodBatchStockManager + .getDisposableGoodsBatchStockByDisposableGoodsId( + disposableGoods.getId().toString(), false); + assertNotNull(batchs); assertEquals(1, batchs.size()); assertEquals(1.71, disposableGoodsBatchStock.getCost()); assertEquals(300, disposableGoodsBatchStock.getStorage().intValue()); - identifications = batchs.iterator().next().getIdentifications(); + + + identifications = diposableGoodBatchStockManager.getIdentificationsWithNoZeroStroge(batchs.get(0).getId()); + assertNotNull(identifications); assertEquals(2, identifications.size()); @@ -292,20 +316,33 @@ entry1.getItemsList().add(godownEntryItem1_1); godownEntryManager.saveGodownEntry_TRANS_REQUIRED(entry1, result); + + try { + Thread.sleep(1000); + } catch (InterruptedException e1) { + e1.printStackTrace(); + } + disposableGoodsStock = diposableGoodsManager.getDisposableGoodsStockByName(wareHouse1.getId(),"注射器", "1ML"); disposableGoodsBatchStock = diposableGoodBatchStockManager.getDiposableGoodBatchStock(disposableGoodsStock.getId().toString(), "20150704"); assertNotNull(disposableGoodsBatchStock); disposableGoodsStock = diposableGoodsManager.getDisposableGoodsStockByName(wareHouse1.getId(),"注射器", "1ML"); - Set batchs = disposableGoodsStock.getGoodsBatchs(); + + List batchs = diposableGoodBatchStockManager + .getDisposableGoodsBatchStockByDisposableGoodsId( + disposableGoods.getId().toString(), false); + + + assertNotNull(batchs); assertEquals(1, batchs.size()); assertEquals(1.6, disposableGoodsStock.getReferencePrice()); assertEquals(100, disposableGoodsStock.getAmount().intValue()); - List identifications = batchs.iterator().next().getIdentifications(); + List identifications = diposableGoodBatchStockManager.getIdentificationsWithNoZeroStroge(batchs.get(0).getId()); assertNotNull(identifications); assertEquals(1, identifications.size()); @@ -325,19 +362,28 @@ entry2.getItemsList().add(godownEntryItem2_1); godownEntryManager.saveGodownEntry_TRANS_REQUIRED(entry2, result); + try { + Thread.sleep(1000); + } catch (InterruptedException e) { + e.printStackTrace(); + } + disposableGoodsStock = diposableGoodsManager.getDisposableGoodsStockByName(wareHouse1.getId(),"注射器", "1ML"); disposableGoodsBatchStock = diposableGoodBatchStockManager.getDiposableGoodBatchStock(disposableGoodsStock.getId().toString(), "20150704"); assertEquals(1.6, disposableGoodsStock.getReferencePrice()); assertEquals(300, disposableGoodsStock.getAmount().intValue()); - batchs = disposableGoodsStock.getGoodsBatchs(); + batchs = diposableGoodBatchStockManager + .getDisposableGoodsBatchStockByDisposableGoodsId( + disposableGoods.getId().toString(), false); + assertNotNull(batchs); assertEquals(1, batchs.size()); assertEquals(1.6, disposableGoodsBatchStock.getCost()); assertEquals(300, disposableGoodsBatchStock.getStorage().intValue()); - identifications = batchs.iterator().next().getIdentifications(); + identifications = diposableGoodBatchStockManager.getIdentificationsWithNoZeroStroge(batchs.get(0).getId()); assertNotNull(identifications); assertEquals(2, identifications.size()); @@ -346,6 +392,7 @@ assertEquals(1.6, identifications.get(1).getPrice()); assertEquals(200, identifications.get(1).getAmount().intValue()); + } private DisposableGoodsBatchStock findBatchByBatchNumber(Set batchs,String batchNumber){ @@ -401,7 +448,7 @@ godownEntryManager.saveGodownEntry_TRANS_REQUIRED(entry1, result); try { - Thread.sleep(1000); + Thread.sleep(800); } catch (InterruptedException e) { e.printStackTrace(); } @@ -445,7 +492,7 @@ entry2.getItemsList().add(godownEntryItem21); godownEntryManager.saveGodownEntry_TRANS_REQUIRED(entry2, result); try { - Thread.sleep(1000); + Thread.sleep(800); } catch (InterruptedException e) { e.printStackTrace(); } @@ -582,11 +629,15 @@ boolean needWriteBack = false; godownEntryManager.saveGodownOutEntry_TRANS_REQUIRED(entry1, result,needWriteBack); + // 休眠1秒钟,让后台线程处理 + Thread.sleep(1000); + } catch (Exception e) { e.printStackTrace(); // throw new ExpectedException(); } + goods = diposableGoodsManager.getDisposableGoodsStockByName(wareHouse1.getId(),"注射器", "5ML"); assertNotNull(goods); assertEquals(500, goods.getAmount().intValue()); Index: ssts-web/src/test/java/test/forgon/tools/util/SqlUtilsTest.java =================================================================== diff -u -r25293 -r25612 --- ssts-web/src/test/java/test/forgon/tools/util/SqlUtilsTest.java (.../SqlUtilsTest.java) (revision 25293) +++ ssts-web/src/test/java/test/forgon/tools/util/SqlUtilsTest.java (.../SqlUtilsTest.java) (revision 25612) @@ -34,11 +34,11 @@ public void testGet_InSql() { String field1 = "name"; String[] arr1 = {"张三", "李四"}; - assertEquals(SqlUtils.get_InSql(field1, arr1), " and (name='张三' or name='李四')"); + assertEquals(SqlUtils.get_InSql(field1, arr1), " and (name='张三' or name='李四') "); String field2 = "po.name"; String[] arr2 = {"张三", "李四"}; - assertEquals(SqlUtils.get_InSql(field2, arr2), " and (po.name='张三' or po.name='李四')"); + assertEquals(SqlUtils.get_InSql(field2, arr2), " and (po.name='张三' or po.name='李四') "); String field3 = ""; String[] arr3 = {"张三", "李四"}; @@ -53,11 +53,11 @@ public void testGet_LikeSql() { String field1 = "name"; String[] arr1 = {"张三", "李四"}; - assertEquals(SqlUtils.get_LikeSql(field1, arr1), " and (name like '%张三%' or name like '%李四%')"); + assertEquals(SqlUtils.get_LikeSql(field1, arr1), " and (name like '%张三%' or name like '%李四%') "); String field2 = "po.name"; String[] arr2 = {"张三", "李四"}; - assertEquals(SqlUtils.get_LikeSql(field2, arr2), " and (po.name like '%张三%' or po.name like '%李四%')"); + assertEquals(SqlUtils.get_LikeSql(field2, arr2), " and (po.name like '%张三%' or po.name like '%李四%') "); String field3 = ""; String[] arr3 = {"张三", "李四"}; Index: ssts-web/src/test/java/test/forgon/disinfectsystem/invoicemanager/service/PDAAssembleSendGoodsInvoiceManagerTests.java =================================================================== diff -u -r25321 -r25612 --- ssts-web/src/test/java/test/forgon/disinfectsystem/invoicemanager/service/PDAAssembleSendGoodsInvoiceManagerTests.java (.../PDAAssembleSendGoodsInvoiceManagerTests.java) (revision 25321) +++ ssts-web/src/test/java/test/forgon/disinfectsystem/invoicemanager/service/PDAAssembleSendGoodsInvoiceManagerTests.java (.../PDAAssembleSendGoodsInvoiceManagerTests.java) (revision 25612) @@ -13,6 +13,8 @@ import net.sf.json.JSONArray; import net.sf.json.JSONObject; +import org.springframework.transaction.annotation.Propagation; +import org.springframework.transaction.annotation.Transactional; import org.testng.annotations.Test; import test.forgon.constant.Constants; @@ -37,6 +39,7 @@ * @author LiuJie * */ +@Transactional(propagation=Propagation.NEVER) public class PDAAssembleSendGoodsInvoiceManagerTests extends AbstractCSSDTest { //普通器械包的条码 @@ -112,6 +115,15 @@ //一次性物品的浮动价格 double diposableGoodsFluctionPrice = supplyRoomConfigManager.getDisposableGoodsFluctuationPercent(); + invoiceManager.submitInvoice(params); + objectDao.flush(); + + try { + Thread.sleep(1000); + } catch (InterruptedException e) { + e.printStackTrace(); + } + //测试库存 DisposableGoodsBatchStock batchStock = diposableGoodBatchStockManager .getDisposableGoodsBatchStockByNameAndBatchNumber(wareHouse_CSSD.getId(),"test10ml注射器","小号","1402180001"); @@ -125,9 +137,6 @@ .getIdentificationOfDiposableGoodsByIdentification(wareHouse_CSSD.getId(),"test10ml注射器", "小号", "1402180002", "00002"); - invoiceManager.submitInvoice(params); - objectDao.flush(); - //一次性物品的发货单 Invoice diposableGoodsInvoice = (Invoice) objectDao.getByProperty(Invoice.class.getSimpleName(), "invoicePlan.serialNumber", "2014021800001"); assertNotNull(diposableGoodsInvoice); Index: ssts-web/src/test/java/test/forgon/disinfectsystem/application/TestRecyclingApplication.java =================================================================== diff -u -r24268 -r25612 --- ssts-web/src/test/java/test/forgon/disinfectsystem/application/TestRecyclingApplication.java (.../TestRecyclingApplication.java) (revision 24268) +++ ssts-web/src/test/java/test/forgon/disinfectsystem/application/TestRecyclingApplication.java (.../TestRecyclingApplication.java) (revision 25612) @@ -25,6 +25,7 @@ import com.forgon.disinfectsystem.diposablegoods.service.DiposableGoodsManager; import com.forgon.disinfectsystem.entity.assestmanagement.DiposableGoodsInstance; import com.forgon.disinfectsystem.entity.assestmanagement.DisposableGoods; +import com.forgon.disinfectsystem.entity.assestmanagement.DisposableGoodsBatch; import com.forgon.disinfectsystem.entity.assestmanagement.DisposableGoodsBatchStock; import com.forgon.disinfectsystem.entity.assestmanagement.DisposableGoodsIdentification; import com.forgon.disinfectsystem.entity.assestmanagement.DisposableGoodsStock; @@ -125,43 +126,71 @@ } - - String type = ""; + + // 获取一次性物品的定义 + DisposableGoods disposableGoods = diposableGoodsManager.get(tousseName, sp); + assertNotNull(disposableGoods); - DisposableGoodsStock diposableGoods = new DisposableGoodsStock(); - diposableGoods.setName(tousseName); - diposableGoods.setSpecification(sp); - diposableGoods.setReferencePrice(price); - diposableGoods.setType(type); - diposableGoods.setSpelling(GB2Alpha.string2Alpha(diposableGoods + DisposableGoodsStock diposableGoodsStock = new DisposableGoodsStock(); + diposableGoodsStock.setName(tousseName); + diposableGoodsStock.setSpecification(sp); + diposableGoodsStock.setReferencePrice(price); + diposableGoodsStock.setType(type); + diposableGoodsStock.setSpelling(GB2Alpha.string2Alpha(diposableGoodsStock .getName())); - diposableGoods.setWbCode(GB2WB.getWBCode(diposableGoods.getName())); + diposableGoodsStock.setWbCode(GB2WB.getWBCode(diposableGoodsStock.getName())); + + diposableGoodsStock.setDisposableGoodsID(disposableGoods.getId()); + objectDao.save(diposableGoodsStock); + + + // 一次性物品的批次 + DisposableGoodsBatch batch = new DisposableGoodsBatch(); + batch.setDiposableGoods(disposableGoods); + + String barcodeStr = serialNumManager + .getSerialNumberStr(SerialNum.TYPE_BARCODE); + + batch.setBarcode(barcodeStr); + batch.setBatchNumber(sn+""); + objectDao.save(batch); + + // 批次库存 Set goodsBatchs = new HashSet(); - DisposableGoodsBatchStock stock = new DisposableGoodsBatchStock(); - stock.setDiposableGoods(diposableGoods); + DisposableGoodsBatchStock batchStock = new DisposableGoodsBatchStock(); + batchStock.setDiposableGoods(diposableGoodsStock); + batchStock.setDisposableGoodsBatchId(batch.getId()); + // stock.setType(BarcodeDevice.BARCODE_TYPE_DIPOSABLEGOODS); - - - - stock.setBarcode(sn + ""); - stock.setBatchNumber(sn + ""); + batchStock.setBatchNumber(sn + ""); sn++ ; - stock.setCost(price); - + batchStock.setCost(price); + + + objectDao.save(batchStock); + + List identifications = new ArrayList(); DisposableGoodsIdentification ident = new DisposableGoodsIdentification(); - ident.setBatchStock(stock); + ident.setBatchStock(batchStock); ident.setIdentification("i-001"); ident.setAmount(2000L); ident.setPrice(price); identifications.add(ident); - stock.setIdentifications(identifications); - goodsBatchs.add(stock); - diposableGoods.setGoodsBatchs(goodsBatchs); - diposableGoodsManager.saveOrUpdate(diposableGoods); + batchStock.setIdentifications(identifications); + goodsBatchs.add(batchStock); + diposableGoodsStock.setGoodsBatchs(goodsBatchs); + + objectDao.save(ident); + + try { + Thread.sleep(1000); + } catch (InterruptedException e) { + e.printStackTrace(); + } } else{ Index: ssts-web/src/test/java/test/forgon/disinfectsystem/invoicemanager/service/TestPDAForeignTousseGoodsInvoiceManager.java =================================================================== diff -u -r22634 -r25612 --- ssts-web/src/test/java/test/forgon/disinfectsystem/invoicemanager/service/TestPDAForeignTousseGoodsInvoiceManager.java (.../TestPDAForeignTousseGoodsInvoiceManager.java) (revision 22634) +++ ssts-web/src/test/java/test/forgon/disinfectsystem/invoicemanager/service/TestPDAForeignTousseGoodsInvoiceManager.java (.../TestPDAForeignTousseGoodsInvoiceManager.java) (revision 25612) @@ -36,6 +36,9 @@ private void createForeignTousseGoodsApplication(){ TousseDefinition foreignTousseTousseDefinition = tousseDefinitionManager.getTousseDefinitionByName("test骨科外来器械包"); + + assertNotNull(foreignTousseTousseDefinition); + foreignTousseApplication = new ForeignTousseApplication(); foreignTousseApplication.setApplicant("林倩"); foreignTousseApplication.setApplicationTime(new Date()); Index: ssts-web/src/test/java/test/forgon/disinfectsystem/invoicemanager/service/DataGenerater.java =================================================================== diff -u -r25558 -r25612 --- ssts-web/src/test/java/test/forgon/disinfectsystem/invoicemanager/service/DataGenerater.java (.../DataGenerater.java) (revision 25558) +++ ssts-web/src/test/java/test/forgon/disinfectsystem/invoicemanager/service/DataGenerater.java (.../DataGenerater.java) (revision 25612) @@ -123,6 +123,7 @@ disposableGoodsStock.setWarehouseName(wareHouse.getName()); disposableGoodsStock.setSpecification(specification); disposableGoodsStock.setReferencePrice(referencePrice); + objectDao.save(disposableGoodsStock); JSONArray batchesArray = jsonObject.getJSONArray("batches"); // 批次 Index: ssts-web/src/test/java/test/forgon/disinfectsystem/CSSDTestDataProcess.java =================================================================== diff -u -r25131 -r25612 --- ssts-web/src/test/java/test/forgon/disinfectsystem/CSSDTestDataProcess.java (.../CSSDTestDataProcess.java) (revision 25131) +++ ssts-web/src/test/java/test/forgon/disinfectsystem/CSSDTestDataProcess.java (.../CSSDTestDataProcess.java) (revision 25612) @@ -1030,11 +1030,13 @@ /** - * 初始化4个仓库:
+ * 初始化5个仓库:
* 1、测试供应室仓库1(条码:010009001,所属科室:测试供应室)
* 2、测试手术室仓库1(条码:010009002,所属科室:测试手术室)
* 3、测试内科仓库1(条码:010009003,所属科室:测试内科)
* 4、测试外科仓库1(条码:010009004,所属科室:测试外科) + * 5、外六科护士站18B仓库1(条码:010009005,所属科室:外六科护士站18B) + * */ private void initWareHouse() { WareHouse wareHouse1 = new WareHouse(); @@ -1084,6 +1086,20 @@ wareHouse4.setType(BarcodeDevice.BARCODE_TYPE_WAREHOUSE); wareHouse4.setSequence(1L); objectDao.save(wareHouse4); + + + WareHouse wareHouse5 = new WareHouse(); + wareHouse5.setCreatedUserId(1l); + wareHouse5.setCreatedUserName("admin"); + wareHouse5.setCreateTime(new Date()); + wareHouse5.setName("外六科护士站18B仓库1"); + wareHouse5.setOrgUnitCode(Constants.ORG_UNIT_CODE_WLKHSZ18B); + wareHouse5.setOrgUnitName(Constants.ORG_UNIT_NAME_WLKHSZ18B); + wareHouse5.setBarcode("010009005"); + wareHouse5.setType(BarcodeDevice.BARCODE_TYPE_WAREHOUSE); + wareHouse5.setSequence(1L); + objectDao.save(wareHouse5); + } Index: ssts-web/src/test/java/test/forgon/disinfectsystem/application/TestDisposableGoodRecyclingApplication.java =================================================================== diff -u -r17749 -r25612 --- ssts-web/src/test/java/test/forgon/disinfectsystem/application/TestDisposableGoodRecyclingApplication.java (.../TestDisposableGoodRecyclingApplication.java) (revision 17749) +++ ssts-web/src/test/java/test/forgon/disinfectsystem/application/TestDisposableGoodRecyclingApplication.java (.../TestDisposableGoodRecyclingApplication.java) (revision 25612) @@ -1,13 +1,19 @@ package test.forgon.disinfectsystem.application; import com.forgon.disinfectsystem.entity.assestmanagement.DisposableGoods; +import com.forgon.disinfectsystem.entity.assestmanagement.DisposableGoodsBatch; +import com.forgon.disinfectsystem.entity.assestmanagement.DisposableGoodsBatchStock; +import com.forgon.disinfectsystem.entity.assestmanagement.DisposableGoodsIdentification; import com.forgon.disinfectsystem.entity.assestmanagement.DisposableGoodsStock; import com.forgon.disinfectsystem.entity.invoicemanager.InvoicePlan; import com.forgon.disinfectsystem.entity.recyclingapplication.RecyclingApplication; import com.forgon.disinfectsystem.entity.tousseitem.TousseItem; import com.forgon.disinfectsystem.vo.TousseItemVo; +import com.forgon.serialnumber.model.SerialNum; + import org.apache.commons.collections4.CollectionUtils; import org.testng.annotations.Test; + import test.forgon.disinfectsystem.AbstractCSSDTest; import test.forgon.disinfectsystem.application.assertThat.RecyclingApplicationAssert; import test.forgon.disinfectsystem.dataProvider.application.ApplicationDataProvider; @@ -58,6 +64,49 @@ Collection applyItemVos = this.appendGoodsMapToCollection(this.initGoodsMap); List disposableGoodsStocks = ApplicationDataProvider.initCustomDisGoods(applyItemVos); for (DisposableGoodsStock disposableGoodsStock : disposableGoodsStocks) { + + + String tousseName = disposableGoodsStock.getName(); + String sp = disposableGoodsStock.getSpecification(); + + // 获取一次性物品的定义 + DisposableGoods disposableGoods = diposableGoodsManager.get(tousseName, sp); + assertNotNull(disposableGoods); + + + // 一次性物品的批次 + DisposableGoodsBatch batch = new DisposableGoodsBatch(); + batch.setDiposableGoods(disposableGoods); + String barcodeStr = serialNumManager + .getSerialNumberStr(SerialNum.TYPE_BARCODE); + + batch.setBarcode(barcodeStr); + batch.setBatchNumber(barcodeStr); + objectDao.save(batch); + + + DisposableGoodsBatchStock batchStock = new DisposableGoodsBatchStock(); + batchStock.setDiposableGoods(disposableGoodsStock); + batchStock.setDisposableGoodsId(disposableGoods.getId()); + batchStock.setDisposableGoodsBatchId(batch.getId()); + + batchStock.setBatchNumber(barcodeStr); + batchStock.setCost(1.0); + + objectDao.save(batchStock); + + + List identifications = new ArrayList(); + DisposableGoodsIdentification ident = new DisposableGoodsIdentification(); + ident.setBatchStock(batchStock); + ident.setIdentification("i-001"); + ident.setAmount(2000L); + ident.setPrice(1.0); + identifications.add(ident); + batchStock.setIdentifications(identifications); + objectDao.save(ident); + + disposableGoodsStock.setDisposableGoodsID(disposableGoods.getId()); diposableGoodsManager.saveOrUpdate(disposableGoodsStock); } } Index: ssts-web/src/test/java/test/forgon/disinfectsystem/AbstractCSSDTest.java =================================================================== diff -u -r25321 -r25612 --- ssts-web/src/test/java/test/forgon/disinfectsystem/AbstractCSSDTest.java (.../AbstractCSSDTest.java) (revision 25321) +++ ssts-web/src/test/java/test/forgon/disinfectsystem/AbstractCSSDTest.java (.../AbstractCSSDTest.java) (revision 25612) @@ -118,7 +118,7 @@ /** * @author Angus * - * 通过classpath类路径下的:spring/test/applicationContext-test.xml文件,加载spring的配置文件。 + * 通过classpath类路径下的:beanRefContext-test.xml.xml文件,加载spring的配置文件。 * 读取jdbc.properties文件中project的配置,来决定相关项目的spring配置文件的加载。 * 采用了@TestPropertySource注解指定property文件 * Terry Kwan,2018-08-11 @@ -127,6 +127,9 @@ @WebAppConfiguration @ContextConfiguration(locations={"classpath:beanRefContext-test.xml"}) @TestPropertySource("classpath:jdbc.properties") +//@TransactionConfiguration(transactionManager="transactionManager", defaultRollback = true) +//@DirtiesContext(classMode = ClassMode.AFTER_EACH_TEST_METHOD) +//@TestExecutionListeners({DirtiesContextTestExecutionListener.class}) public class AbstractCSSDTest extends AbstractTransactionalTestNGSpringContextTests{ Index: ssts-web/src/test/java/test/forgon/disinfectsystem/borrow/BorrowApplicationTest.java =================================================================== diff -u -r24345 -r25612 --- ssts-web/src/test/java/test/forgon/disinfectsystem/borrow/BorrowApplicationTest.java (.../BorrowApplicationTest.java) (revision 24345) +++ ssts-web/src/test/java/test/forgon/disinfectsystem/borrow/BorrowApplicationTest.java (.../BorrowApplicationTest.java) (revision 25612) @@ -115,7 +115,7 @@ //断言转成申请的Test开胸包申请数量是2 assertEquals(tousseItems.get(0).getAmount().intValue(), 2); assertEquals(tousseItems.get(0).getTousseName(), "Test开胸包"); - Map canReturnAmount = recyclingApplicationManager.getCanReturnAmount(tousseApplication.getId()); + Map canReturnAmount = invoicePlanManager.getCanReturnAmount(tousseApplication.getId()); //目录使用记录转换申请单由代归还调整为不再代归还,所以这里断言待归还的数量还是1 assertEquals(canReturnAmount.size(), 1); } @@ -146,7 +146,7 @@ //断言转成申请的Test开胸包申请数量是1 assertEquals(tousseItems.get(0).getAmount().intValue(), 1); assertEquals(tousseItems.get(0).getTousseName(), "Test开胸包"); - Map canReturnAmount = recyclingApplicationManager.getCanReturnAmount(tousseApplication.getId()); + Map canReturnAmount = invoicePlanManager.getCanReturnAmount(tousseApplication.getId()); //因为只用了一个条码来转使用记录,所以待归还数量是1 assertEquals(canReturnAmount.size(), 1); TousseDefinition td = borrowBo.getTousseDefinition(); @@ -200,7 +200,7 @@ assertEquals(tousseItems.get(0).getAmount().intValue(), 2); assertEquals(tousseItems.get(0).getTousseName(), "Test开胸包"); Long borrowId = tousseApplication.getId(); - Map canReturnAmount = recyclingApplicationManager.getCanReturnAmount(borrowId); + Map canReturnAmount = invoicePlanManager.getCanReturnAmount(borrowId); //目录使用记录转换申请单由代归还调整为不再代归还,所以这里断言待归还的数量还是1 assertEquals(canReturnAmount.size(), 1); tousseApplication.setReturnStatus(InvoicePlan.RETURN_STATUS_PARTIALLY_RETURNED); Index: ssts-web/src/test/java/test/forgon/disinfectsystem/invoicemanager/service/TestPDADiposableGoodsInvoiceManager.java =================================================================== diff -u -r21798 -r25612 --- ssts-web/src/test/java/test/forgon/disinfectsystem/invoicemanager/service/TestPDADiposableGoodsInvoiceManager.java (.../TestPDADiposableGoodsInvoiceManager.java) (revision 21798) +++ ssts-web/src/test/java/test/forgon/disinfectsystem/invoicemanager/service/TestPDADiposableGoodsInvoiceManager.java (.../TestPDADiposableGoodsInvoiceManager.java) (revision 25612) @@ -16,6 +16,9 @@ import net.sf.json.JSONArray; import net.sf.json.JSONObject; +import org.springframework.transaction.UnexpectedRollbackException; +import org.springframework.transaction.annotation.Propagation; +import org.springframework.transaction.annotation.Transactional; import org.testng.annotations.Test; import test.forgon.constant.Constants; @@ -32,6 +35,7 @@ import com.forgon.disinfectsystem.entity.recyclingapplication.RecyclingApplication; import com.forgon.disinfectsystem.entity.tousseitem.TousseItem; +@Transactional(propagation=Propagation.NEVER) public class TestPDADiposableGoodsInvoiceManager extends AbstractCSSDTest { private static final String testAll = "TESTALL"; @@ -237,8 +241,12 @@ params.put("sourceWarehouseId", wareHouse_CSSD.getId()); params.put("sourceWarehouseName", wareHouse_CSSD.getName()); - webServiceManager.submitInvoicePlans(params.toString()); - + try{ + webServiceManager.submitInvoicePlans(params.toString()); + } + catch(UnexpectedRollbackException e){ + e.printStackTrace(); + } Invoice invoice = (Invoice)objectDao.getByProperty(Invoice.class.getSimpleName(), "invoicePlan.serialNumber", "2014021800001"); // 断言不生成发货单 assertNull(invoice); @@ -255,12 +263,14 @@ JSONObject params = new JSONObject(); JSONArray invoiceItems1 = new JSONArray(); - String barcode = "201410150001"; + String barcode1 = "201410150001"; + String barcode2 = "201410150002"; + JSONObject invoiceItems1_1 = buildDisposableGoodsInvoiceItem(wareHouse_CSSD, - barcode,700); + barcode1,700); invoiceItems1.add(invoiceItems1_1); JSONObject invoiceItems1_2 = buildDisposableGoodsInvoiceItem(wareHouse_CSSD, - "201410150002",400); + barcode2,400); invoiceItems1.add(invoiceItems1_2); params.put("mode", "depart"); @@ -279,9 +289,20 @@ private void sendDiposableGoodsForPDA(String jsonParam,String type){ WareHouse wareHouse1 = wareHouseManager.getDefaultWareHouseByUnitCode(Constants.ORG_UNIT_CODE_CSSD); - assertNotNull(wareHouse1); - webServiceManager.submitInvoicePlans(jsonParam); + assertNotNull(wareHouse1); + try{ + webServiceManager.submitInvoicePlans(jsonParam); + } + catch(UnexpectedRollbackException e){ + e.printStackTrace(); + } + try { + Thread.sleep(1000); + } catch (InterruptedException e) { + e.printStackTrace(); + } + //测试库存 DisposableGoodsBatchStock batchStock = diposableGoodBatchStockManager .getDisposableGoodsBatchStockByNameAndBatchNumber(wareHouse1.getId(),"test10ml注射器","小号","1402180001"); @@ -398,11 +419,16 @@ RecyclingApplication firstApplication = recyclingApplicationManager.findRecyclingApplicationBySql("where po.serialNumber='201410220101'"); //再次申请的申请单,申请时间大概在下15点 RecyclingApplication secondApplication = recyclingApplicationManager.findRecyclingApplicationBySql("where po.serialNumber='201410221100'"); - assertEquals(firstApplication , inv.getInvoicePlan()); + + assertEquals(firstApplication.getSerialNumber() , inv.getInvoicePlan().getSerialNumber()); + //断言第一张单的发货状态为部分发货 assertEquals( InvoicePlan.DELIVERSTATUS_DELIVERED, firstApplication.getDeliverStatus()); - assertNotNull(firstApplication.getApplicationItems()); - assertEquals(1000 , firstApplication.getApplicationItems().get(0).getSendOutAmount().intValue()); + + List applicationItems = recyclingApplicationManager.getApplicationItemByAppId(firstApplication.getId()); + + assertNotNull(applicationItems); + assertEquals(1000 , applicationItems.get(0).getSendOutAmount().intValue()); //断言第一张单的发货数量为700 assertEquals( InvoicePlan.DELIVERSTATUS_DELIVERED, firstApplication.getDeliverStatus()); //断言第二张单的发货状态为待发货 Index: ssts-web/src/test/java/test/forgon/disinfectsystem/invoicemanager/service/InvoiceManagerTests.java =================================================================== diff -u -r25146 -r25612 --- ssts-web/src/test/java/test/forgon/disinfectsystem/invoicemanager/service/InvoiceManagerTests.java (.../InvoiceManagerTests.java) (revision 25146) +++ ssts-web/src/test/java/test/forgon/disinfectsystem/invoicemanager/service/InvoiceManagerTests.java (.../InvoiceManagerTests.java) (revision 25612) @@ -271,6 +271,8 @@ disposableGoodsStock.setDisposableGoodsID(disposableGoods.getId()); disposableGoodsStock.setWarehouseID(wareHouse_CSSD.getId()); disposableGoodsStock.setWarehouseName(wareHouse_CSSD.getName()); + objectDao.saveOrUpdate(disposableGoodsStock); + //批次 Set batchList = new HashSet(); // 批次定义 Index: ssts-web/src/test/java/test/forgon/disinfectsystem/invoicemanager/service/InvoiceManagerForComboFormTests.java =================================================================== diff -u -r25321 -r25612 --- ssts-web/src/test/java/test/forgon/disinfectsystem/invoicemanager/service/InvoiceManagerForComboFormTests.java (.../InvoiceManagerForComboFormTests.java) (revision 25321) +++ ssts-web/src/test/java/test/forgon/disinfectsystem/invoicemanager/service/InvoiceManagerForComboFormTests.java (.../InvoiceManagerForComboFormTests.java) (revision 25612) @@ -18,6 +18,8 @@ import net.sf.json.JSONObject; import org.apache.commons.lang.StringUtils; +import org.springframework.transaction.annotation.Propagation; +import org.springframework.transaction.annotation.Transactional; import org.testng.annotations.Test; import test.forgon.constant.Constants; @@ -46,6 +48,7 @@ * @author WangYi * 2015-01-28 14:47 */ +@Transactional(propagation=Propagation.NEVER) public class InvoiceManagerForComboFormTests extends AbstractCSSDTest{ private ServiceManager serviceManager; @@ -285,6 +288,8 @@ disposableGoodsStock.setDisposableGoodsID(disposableGoods.getId()); disposableGoodsStock.setWarehouseID(wareHouse_CSSD.getId()); disposableGoodsStock.setWarehouseName(wareHouse_CSSD.getName()); + objectDao.saveOrUpdate(disposableGoodsStock); + //批次 Set batchList = new HashSet(); // 批次定义 @@ -391,9 +396,9 @@ identification.setAncestorId(identification.getId()); identification22.setAncestorId(identification22.getId()); identification2.setAncestorId(identification2.getId()); - objectDao.update(identification); - objectDao.update(identification22); - objectDao.update(identification2); + objectDao.saveOrUpdate(identification); + objectDao.saveOrUpdate(identification22); + objectDao.saveOrUpdate(identification2); } public void createInvoiceGoods(){} @@ -417,6 +422,9 @@ DisposableGoodsBatchStock disposableGoodsBatchStock = diposableGoodsManager.getByWarehouseIDAndBarcode(wareHouse_CSSD.getId(), barcode); /// + assertNotNull(disposableGoodsBatchStock); + assertNotNull(disposableGoodsBatchStock.getDisposableGoodsStockId()); + typeInfoOnScanned.put("disposableGoodsId", disposableGoodsBatchStock.getDisposableGoodsId()); typeInfoOnScanned.put("disposableGoodsStockId", disposableGoodsBatchStock.getDisposableGoodsStockId()); typeInfoOnScanned.put("disposableGoodsBatchId", disposableGoodsBatchStock.getDisposableGoodsBatchId()); @@ -490,6 +498,8 @@ invoiceManager.submitInvoice(params); objectDao.flush(); + Thread.sleep(1000); + String sql = " where po.invoicePlan.serialNumber = '89012000001'"; @SuppressWarnings("unchecked") List invoiceList = objectDao.findBySql(Invoice.class.getSimpleName(), sql); Index: ssts-web/src/test/java/test/forgon/disinfectsystem/invoicemanager/service/TestPDAReturnGoodReInvoiceManager.java =================================================================== diff -u -r22634 -r25612 --- ssts-web/src/test/java/test/forgon/disinfectsystem/invoicemanager/service/TestPDAReturnGoodReInvoiceManager.java (.../TestPDAReturnGoodReInvoiceManager.java) (revision 22634) +++ ssts-web/src/test/java/test/forgon/disinfectsystem/invoicemanager/service/TestPDAReturnGoodReInvoiceManager.java (.../TestPDAReturnGoodReInvoiceManager.java) (revision 25612) @@ -15,6 +15,9 @@ import net.sf.json.JSONArray; import net.sf.json.JSONObject; +import org.springframework.transaction.UnexpectedRollbackException; +import org.springframework.transaction.annotation.Propagation; +import org.springframework.transaction.annotation.Transactional; import org.testng.annotations.Test; import test.forgon.constant.Constants; @@ -37,6 +40,7 @@ * @author LiuJie * 思路:创建器械包定义-->创建器械包实例-->创建申请单-->发货-->退货 */ +@Transactional(propagation=Propagation.NEVER) public class TestPDAReturnGoodReInvoiceManager extends AbstractCSSDTest { private static final String testTousse = "testTousse";//测试器械包的退货重发 @@ -294,8 +298,15 @@ //一次性物品浮动价格 double diposableGoodsFluctionPrice = supplyRoomConfigManager.getDisposableGoodsFluctuationPercent(); - webServiceManager.submitInvoicePlans(jsonStr); + try{ + webServiceManager.submitInvoicePlans(jsonStr); + } + catch(UnexpectedRollbackException e){ + e.printStackTrace(); + } + Thread.sleep(1000); + //器械包发货单 Invoice invoice = (Invoice)objectDao.getByProperty(Invoice.class.getSimpleName(), "invoicePlan.serialNumber", "2014102100001"); @@ -335,10 +346,13 @@ assertEquals("外六科护士站18B",application.getDepart()); //断言新的申请单发货状态为待发货 assertEquals(InvoicePlan.DELIVERSTATUS_AWAITDELIVER , application.getDeliverStatus()); - assertNotNull(application.getApplicationItems()); - assertEquals(1, application.getApplicationItems().size()); - assertEquals(3,application.getApplicationItems().get(0).getAmount().intValue()); - assertEquals("Test开胸包",application.getApplicationItems().get(0).getTousseName()); + + List applicationItems = recyclingApplicationManager.getApplicationItemByAppId(application.getId()); + assertNotNull(applicationItems); + + assertEquals(1, applicationItems.size()); + assertEquals(3,applicationItems.get(0).getAmount().intValue()); + assertEquals("Test开胸包",applicationItems.get(0).getTousseName()); }else if(type.equals(testDiposableGoods)){ //一次性退货重发 assertEquals(700 , invoice.getDiposableGoodsAmount().intValue()); @@ -362,8 +376,12 @@ //创建一次性的退货记录 createReturnGoodsApplication(testDiposableGoods); + Thread.sleep(1000); + //第一批, 退货之后的库存量 DisposableGoodsBatchStock batchStock_after = diposableGoodBatchStockManager.getByBarcode("201410150001",wareHouse1.getId().toString()); +// objectDao.getHibernateSession().refresh(batchStock_after); + assertNotNull(batchStock_after); //第一批库存为空 assertEquals(700 , batchStock_after.getStorage().intValue()); @@ -385,10 +403,13 @@ assertEquals("外六科护士站18B",diposableGoodsApplication.getDepart()); //断言新的申请单发货状态为待发货 assertEquals(InvoicePlan.DELIVERSTATUS_AWAITDELIVER , diposableGoodsApplication.getDeliverStatus()); - assertNotNull(diposableGoodsApplication.getApplicationItems()); - assertEquals(1, diposableGoodsApplication.getApplicationItems().size()); - assertEquals(700,diposableGoodsApplication.getApplicationItems().get(0).getAmount().intValue()); - assertEquals("是",diposableGoodsApplication.getApplicationItems().get(0).getDiposable()); + + List applicationItems = recyclingApplicationManager.getApplicationItemByAppId(diposableGoodsApplication.getId()); + + assertNotNull(applicationItems); + assertEquals(1, applicationItems.size()); + assertEquals(700,applicationItems.get(0).getAmount().intValue()); + assertEquals("是",applicationItems.get(0).getDiposable()); } }