Index: ssts-web/src/test/java/test/forgon/disinfectsystem/packing/SterilizationRecordManagerTestsForCompleteSterileRecord.java =================================================================== diff -u -r17679 -r17842 --- ssts-web/src/test/java/test/forgon/disinfectsystem/packing/SterilizationRecordManagerTestsForCompleteSterileRecord.java (.../SterilizationRecordManagerTestsForCompleteSterileRecord.java) (revision 17679) +++ ssts-web/src/test/java/test/forgon/disinfectsystem/packing/SterilizationRecordManagerTestsForCompleteSterileRecord.java (.../SterilizationRecordManagerTestsForCompleteSterileRecord.java) (revision 17842) @@ -28,7 +28,6 @@ import com.forgon.disinfectsystem.sterilizationmanager.sterilizationrecord.service.SterilizationRecordManager; import com.forgon.disinfectsystem.tousse.toussedefinition.service.TousseInstanceManager; import com.forgon.runwithtrans.model.RunWithTransNewTask; -import com.forgon.serialnumber.model.SerialNum; /** * 灭菌记录完成灭菌的测试用例 @@ -54,23 +53,32 @@ String orgUnitCode = AcegiHelper.getLoginUser() .getOrgUnitCodingFromSupplyRoomConfig(); WareHouse wareHouse = wareHouseManager.getDefaultWareHouseByUnitCode(orgUnitCode); - int count = 1000; + int count = 100; List barcodes = new ArrayList<>(); - SterilizationRecord sterilizationRecord = prepareTousse(orgUnitCode, 1, count,barcodes); - assertEquals(barcodes.size(), 1000); + + final SterilizationRecord sterilizationRecord1 = new SterilizationRecord(); + runWithTransNewManager.runWith_TRANS_NEW(new RunWithTransNewTask() { + @Override + public void runTask() { + SterilizationRecord sterilizationRecord2 = prepareTousse(orgUnitCode, 1, count,barcodes); + sterilizationRecord1.setId(sterilizationRecord2.getId()); + } + }); + assertEquals(barcodes.size(), count); TousseInstance tousseInstance = tousseInstanceManager.getFirst("barcode", barcodes.get(0)); String sql = String.format("wareHouseId=%d and tousseDefinitionId=%d", wareHouse.getId(),tousseInstance.getTousseDefinition().getAncestorID()); List goodsStocks = goodsStockManager.getByHql(sql); int beforeStocks = goodsStockManager.calculateTotalAmount(goodsStocks); List rids = new ArrayList(); - rids.add(sterilizationRecord.getId()); + rids.add(sterilizationRecord1.getId()); long b = Calendar.getInstance().getTimeInMillis(); sterilizationRecordManager.completeSterilization(rids, orgUnitCode, AcegiHelper.getLoginUser().getUserName(), "", false); long a = Calendar.getInstance().getTimeInMillis(); System.out.println("time:" + (a - b)); + SterilizationRecord sterilizationRecord = sterilizationRecordManager.getSterilizationRecordById(sterilizationRecord1.getId()); assertEquals(sterilizationRecord.getStatus(), SterilizationRecord.STERILIZATION_STATUS_END); for(String barcode : barcodes){ @@ -90,19 +98,28 @@ public void testCompleteSterilizationDifferentTousseDefinition(){ //1.初始化基础数据 initCSSDData(); + int tousseAmount = 100; String orgUnitCode = AcegiHelper.getLoginUser() .getOrgUnitCodingFromSupplyRoomConfig(); WareHouse wareHouse = wareHouseManager.getDefaultWareHouseByUnitCode(orgUnitCode); List barcodes = new ArrayList<>(); - SterilizationRecord sterilizationRecord = prepareTousse(orgUnitCode, 1000, 1,barcodes); - assertEquals(barcodes.size(), 1000); + final SterilizationRecord sterilizationRecord1 = new SterilizationRecord(); + runWithTransNewManager.runWith_TRANS_NEW(new RunWithTransNewTask() { + @Override + public void runTask() { + SterilizationRecord sterilizationRecord2 = prepareTousse(orgUnitCode, tousseAmount, 1,barcodes); + sterilizationRecord1.setId(sterilizationRecord2.getId()); + } + }); + assertEquals(barcodes.size(), tousseAmount); List rids = new ArrayList(); - rids.add(sterilizationRecord.getId()); + rids.add(sterilizationRecord1.getId()); long b = Calendar.getInstance().getTimeInMillis(); sterilizationRecordManager.completeSterilization(rids, orgUnitCode, AcegiHelper.getLoginUser().getUserName(), "", false); long a = Calendar.getInstance().getTimeInMillis(); + SterilizationRecord sterilizationRecord = sterilizationRecordManager.getSterilizationRecordById(sterilizationRecord1.getId()); System.out.println("time:" + (a - b)); assertEquals(sterilizationRecord.getStatus(), SterilizationRecord.STERILIZATION_STATUS_END); @@ -129,16 +146,30 @@ .getOrgUnitCodingFromSupplyRoomConfig(); WareHouse wareHouse = wareHouseManager.getDefaultWareHouseByUnitCode(orgUnitCode); List barcodes = new ArrayList<>(); - SterilizationRecord sterilizationRecord = prepareTousse(orgUnitCode,20,50,barcodes); - assertEquals(barcodes.size(), 1000); + //包定义数量 + int tousseDefinitionCount = 20; + //每个包定义的包实例数量 + int tousseInstanceCountPerTd = 5; + + final SterilizationRecord sterilizationRecord1 = new SterilizationRecord(); + runWithTransNewManager.runWith_TRANS_NEW(new RunWithTransNewTask() { + @Override + public void runTask() { + SterilizationRecord sterilizationRecord2 = prepareTousse(orgUnitCode,tousseDefinitionCount,tousseInstanceCountPerTd,barcodes); + sterilizationRecord1.setId(sterilizationRecord2.getId()); + } + }); + + assertEquals(barcodes.size(), tousseDefinitionCount * tousseInstanceCountPerTd); List rids = new ArrayList(); - rids.add(sterilizationRecord.getId()); + rids.add(sterilizationRecord1.getId()); long b = Calendar.getInstance().getTimeInMillis(); sterilizationRecordManager.completeSterilization(rids, AcegiHelper.getLoginUser().getOrgUnitCodingFromSupplyRoomConfig(), AcegiHelper.getLoginUser().getUserName(), "", false); long a = Calendar.getInstance().getTimeInMillis(); System.out.println("time:" + (a - b)); + SterilizationRecord sterilizationRecord = sterilizationRecordManager.getSterilizationRecordById(sterilizationRecord1.getId()); assertEquals(sterilizationRecord.getStatus(), SterilizationRecord.STERILIZATION_STATUS_END); for(String barcode : barcodes){ @@ -149,7 +180,7 @@ List goodsStocks = goodsStockManager.getByHql(sql); assertEquals(goodsStocks.size(), 1); int newStocks = goodsStockManager.calculateTotalAmount(goodsStocks); - assertEquals(newStocks, 50); + assertEquals(newStocks, tousseInstanceCountPerTd); } } /** @@ -199,11 +230,11 @@ } allTousseInstanceBarcode.addAll(thisAddBarcodes); - while(true){ + /*while(true){ //模拟一个新的事务 success = safelyRunWithTransNew(new RunWithTransNewTask() { @Override - public void runTask() { + public void runTask() {*/ long b = Calendar.getInstance().getTimeInMillis(); sterilizationRecordManager.completeSterilization(rids, orgUnitCode, @@ -216,13 +247,13 @@ assertEquals(record.getStatus(), SterilizationRecord.STERILIZATION_STATUS_END); } } - }); + /*}); if(success){ break; } } - } + }*/ } Thread t1 = new Thread(new ThreadRoute()); @@ -342,10 +373,11 @@ tousseInstance2.setVirtualBasketSeqNum("001"); tousseInstance2.setBarcode(getBarcode()); addBarcodes.add(tousseInstance2.getBarcode()); - tousseInstanceManager.saveOrUpdate(tousseInstance2); tousseInstances.add(tousseInstance2); + tousseInstanceManager.saveOrUpdate(tousseInstance2); } } + sterilizationRecordManager.saveOrUpdate(sterilizationRecord); return sterilizationRecord; }