Index: ssts-web/src/test/java/test/forgon/disinfectsystem/packing/SterilizationRecordManagerTestsForCompleteSterileRecord.java =================================================================== diff -u -r17672 -r17679 --- ssts-web/src/test/java/test/forgon/disinfectsystem/packing/SterilizationRecordManagerTestsForCompleteSterileRecord.java (.../SterilizationRecordManagerTestsForCompleteSterileRecord.java) (revision 17672) +++ ssts-web/src/test/java/test/forgon/disinfectsystem/packing/SterilizationRecordManagerTestsForCompleteSterileRecord.java (.../SterilizationRecordManagerTestsForCompleteSterileRecord.java) (revision 17679) @@ -7,11 +7,7 @@ import java.util.Date; import java.util.List; -import org.hibernate.exception.GenericJDBCException; import org.springframework.beans.factory.annotation.Autowired; -import org.springframework.dao.CannotAcquireLockException; -import org.springframework.orm.hibernate4.HibernateJdbcException; -import org.springframework.orm.hibernate4.HibernateSystemException; import org.testng.annotations.Test; import test.forgon.constant.Constants; @@ -156,25 +152,6 @@ assertEquals(newStocks, 50); } } - private boolean safelyRunWithTransNew(RunWithTransNewTask task){ - boolean success = false; - try{ - runWithTransNewManager.runWith_TRANS_NEW(task); - success = true; - }catch(HibernateJdbcException e){ - success = false; - }catch(GenericJDBCException e){ - success = false; - }catch(HibernateSystemException e){ - success = false; - }catch(CannotAcquireLockException e){ - success = false; - } - if(!success){ - System.out.println(Thread.currentThread().getName() + "超时,重试"); - } - return success; - } /** * 多线程处理,共5个线程,每个线程创建10种包定义(分5张灭菌单,一张单2种包定义),每个包定义20个包实例。 * @throws InterruptedException Index: ssts-web/src/main/java/test/forgon/disinfectsystem/AbstractCSSDTest.java =================================================================== diff -u -r17678 -r17679 --- ssts-web/src/main/java/test/forgon/disinfectsystem/AbstractCSSDTest.java (.../AbstractCSSDTest.java) (revision 17678) +++ ssts-web/src/main/java/test/forgon/disinfectsystem/AbstractCSSDTest.java (.../AbstractCSSDTest.java) (revision 17679) @@ -23,7 +23,11 @@ import org.apache.commons.collections4.CollectionUtils; import org.apache.commons.lang.StringUtils; +import org.hibernate.exception.GenericJDBCException; import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.dao.CannotAcquireLockException; +import org.springframework.orm.hibernate4.HibernateJdbcException; +import org.springframework.orm.hibernate4.HibernateSystemException; import org.springframework.security.authentication.UsernamePasswordAuthenticationToken; import org.springframework.security.core.Authentication; import org.springframework.security.core.GrantedAuthority; @@ -3889,4 +3893,23 @@ assertEquals(supplyRoomConfig.getInvoiceOrigin(),invoiceOrigin); } + protected boolean safelyRunWithTransNew(RunWithTransNewTask task){ + boolean success = false; + try{ + runWithTransNewManager.runWith_TRANS_NEW(task); + success = true; + }catch(HibernateJdbcException e){ + success = false; + }catch(GenericJDBCException e){ + success = false; + }catch(HibernateSystemException e){ + success = false; + }catch(CannotAcquireLockException e){ + success = false; + } + if(!success){ + System.out.println(Thread.currentThread().getName() + "超时,重试"); + } + return success; + } } Index: ssts-web/src/test/java/test/forgon/disinfectsystem/packing/SterilizationRecordManagerTestsForSaveOrUpdateSterilizationRecord.java =================================================================== diff -u -r17673 -r17679 --- ssts-web/src/test/java/test/forgon/disinfectsystem/packing/SterilizationRecordManagerTestsForSaveOrUpdateSterilizationRecord.java (.../SterilizationRecordManagerTestsForSaveOrUpdateSterilizationRecord.java) (revision 17673) +++ ssts-web/src/test/java/test/forgon/disinfectsystem/packing/SterilizationRecordManagerTestsForSaveOrUpdateSterilizationRecord.java (.../SterilizationRecordManagerTestsForSaveOrUpdateSterilizationRecord.java) (revision 17679) @@ -16,6 +16,7 @@ import com.forgon.directory.acegi.tools.AcegiHelper; import com.forgon.directory.model.BarcodeDevice; +import com.forgon.directory.model.OrgUnit; import com.forgon.disinfectsystem.basedatamanager.container.service.ReviewedBasketManager; import com.forgon.disinfectsystem.basedatamanager.sterilisation.service.SterilisationManager; import com.forgon.disinfectsystem.entity.basedatamanager.container.Container; @@ -114,10 +115,14 @@ @Override public void runTask() { initMyData(basketCount); + initSterilizer(5); + String orgUnitCode = AcegiHelper.getLoginUser() + .getOrgUnitCodingFromSupplyRoomConfig(); + List sterilizers = sterilizerManager.getSterilizerByDepartCoding(orgUnitCode); for(int i = 0;i < 5;++i){ - SterilizationRecord sterilizationRecord1 = prepareTousse(1, 200); - sterilizationRecords.add(sterilizationRecord1); + SterilizationRecord sterilizationRecord = prepareTousse(1, 200,sterilizers.get(i)); + sterilizationRecords.add(sterilizationRecord); List tousseInstanceBarcodes1 = new ArrayList<>(); List containerBarcodes1 = new ArrayList<>(); @@ -127,6 +132,24 @@ containerBarcodesList.add(containerBarcodes1); } } + + private void initSterilizer(int count) { + String orgUnitCode = AcegiHelper.getLoginUser() + .getOrgUnitCodingFromSupplyRoomConfig(); + for(int i = 0;i < count;++i){ + Sterilizer sterilizer = new Sterilizer(); + sterilizer.setName((10+i) + "号高温蒸汽灭菌炉"); + sterilizer.setBarcode(serialNumManager.getSerialNumberStr("条码")); + sterilizer.setOwnGroup("低温等离子"); + OrgUnit orDept = orgUnitManager.getByCode(orgUnitCode); + assertNotNull(orDept); + + sterilizer.setDepartment(orDept.getName()); + sterilizer.setOrgUnitCoding(orDept.getOrgUnitCoding()); + + objectDao.save(sterilizer); + } + } }); class ThreadRoute implements Runnable{ @@ -140,18 +163,21 @@ } @Override public void run() { - runWithTransNewManager.runWith_TRANS_NEW(new RunWithTransNewTask() { - @Override - public void runTask() { - long b = Calendar.getInstance().getTimeInMillis(); - Map result = sterilizationRecordManager.saveOrUpdateSterilizationRecord(sterilizationRecord, tousseInstanceBarcodes, containerBarcodes, null); - boolean success = (boolean) result.get("success"); - assertEquals(success, true,(String)result.get("message")); - long a = Calendar.getInstance().getTimeInMillis(); - System.out.println("time:" + (a - b)); - assertEquals(sterilizationRecord.getStatus(), SterilizationRecord.STERILIZATION_STATUS_BEGIN); - } - }); + boolean success = false; + while(!success){ + success = safelyRunWithTransNew(new RunWithTransNewTask() { + @Override + public void runTask() { + long b = Calendar.getInstance().getTimeInMillis(); + Map result = sterilizationRecordManager.saveOrUpdateSterilizationRecord(sterilizationRecord, tousseInstanceBarcodes, containerBarcodes, null); + boolean success = (boolean) result.get("success"); + assertEquals(success, true,(String)result.get("message")); + long a = Calendar.getInstance().getTimeInMillis(); + System.out.println("time:" + (a - b)); + assertEquals(sterilizationRecord.getStatus(), SterilizationRecord.STERILIZATION_STATUS_BEGIN); + } + }); + } } } @@ -294,8 +320,12 @@ private SterilizationRecord prepareTousse(int toussedefCount,int tousseInstanceCount) { String orgUnitCode = AcegiHelper.getLoginUser() .getOrgUnitCodingFromSupplyRoomConfig(); - Sterilizer s = sterilizerManager.getSterilizerByDepartCoding(orgUnitCode).get(0); + return prepareTousse(toussedefCount,tousseInstanceCount,s); + } + private SterilizationRecord prepareTousse(int toussedefCount,int tousseInstanceCount,Sterilizer s) { + String orgUnitCode = AcegiHelper.getLoginUser() + .getOrgUnitCodingFromSupplyRoomConfig(); SterilizationRecord sterilizationRecord = new SterilizationRecord(); sterilizationRecord.setSterilizer(s);