Index: ssts-web/src/test/java/test/forgon/disinfectsystem/tousseInstanceManager/AllTests.java =================================================================== diff -u --- ssts-web/src/test/java/test/forgon/disinfectsystem/tousseInstanceManager/AllTests.java (revision 0) +++ ssts-web/src/test/java/test/forgon/disinfectsystem/tousseInstanceManager/AllTests.java (revision 38505) @@ -0,0 +1,11 @@ +package test.forgon.disinfectsystem.tousseInstanceManager; + +import org.junit.runner.RunWith; +import org.junit.runners.Suite; +import org.junit.runners.Suite.SuiteClasses; + +@RunWith(Suite.class) +@SuiteClasses({ TousseInstanceManagerTests.class}) +public class AllTests { + +} Index: ssts-web/src/test/java/test/forgon/disinfectsystem/tousseInstanceManager/TousseInstanceManagerTests.java =================================================================== diff -u --- ssts-web/src/test/java/test/forgon/disinfectsystem/tousseInstanceManager/TousseInstanceManagerTests.java (revision 0) +++ ssts-web/src/test/java/test/forgon/disinfectsystem/tousseInstanceManager/TousseInstanceManagerTests.java (revision 38505) @@ -0,0 +1,215 @@ +package test.forgon.disinfectsystem.tousseInstanceManager; + +import static org.junit.Assert.assertEquals; + +import org.apache.commons.lang3.StringUtils; +import org.junit.Test; + +import static org.junit.Assert.*; + +import com.forgon.directory.acegi.tools.AcegiHelper; +import com.forgon.disinfectsystem.entity.basedatamanager.container.Container; +import com.forgon.disinfectsystem.entity.basedatamanager.toussedefinition.TousseDefinition; +import com.forgon.disinfectsystem.entity.basedatamanager.toussedefinition.TousseInstance; +import com.forgon.disinfectsystem.entity.packing.ReviewedBasket; +import com.forgon.disinfectsystem.entity.sterilizationTransition.SterilizationTransition; +import com.forgon.disinfectsystem.entity.sterilizationTransition.SterilizationTransitionItem; +import com.forgon.disinfectsystem.entity.sterilizationTransition.SterilizationTransitionItemVO; +import com.forgon.serialnumber.model.SerialNum; + +import test.forgon.disinfectsystem.AbstractCSSDTest; + +public class TousseInstanceManagerTests extends AbstractCSSDTest { + /** + * 验证灭菌交接扫描器械包条码,验证灭菌方式是否一致 + */ + @Test + public void TestLoadTousseInstanceByBarcodeforSterilizationTransition(){ + makeActiveUser("cssduser1"); + //当前登录用户不能代理灭菌自己科室处理的包 + String orgUnitCoding = AcegiHelper.getLoginUser().getOrgUnitCodingFromSupplyRoomConfig(); + String orgUnitCodingOther = orgUnitCoding+"1"; + //方法所属参数 + Long sterilizationTransitionId = null; + String barcode = null; + String oldSterilizationMode = null; + boolean checkSterilizationMode = true; + //构建场景数据 + + SterilizationTransition sterilizationTransition = new SterilizationTransition(); + objectDao.saveOrUpdate(sterilizationTransition); + sterilizationTransitionId = sterilizationTransition.getId(); + + TousseDefinition td1 = new TousseDefinition(); + td1.setTousseType(TousseDefinition.PACKAGE_TYPE_INSIDE); + td1.setName("测试灭菌交接扫描条码场景的包1"); + td1.setTousseType(TousseDefinition.PACKAGE_TYPE_INSIDE); + //td1.setTaskGroup("任务组1"); + objectDao.saveOrUpdate(td1); + + TousseInstance ti1 = new TousseInstance(); + ti1.setTousseFixedBarcode(false); + ti1.setTousseDefinition(td1); + ti1.setOrgUnitCoding(orgUnitCodingOther); + ti1.setBarcode(serialNumManager.getSerialNumberStr(SerialNum.TYPE_BARCODE)); + ti1.setSterilingMode("灭菌方式1"); + ti1.setTousseName(td1.getName()); + ti1.setStatus(TousseInstance.STATUS_REVIEWED); + objectDao.saveOrUpdate(ti1); + oldSterilizationMode = ti1.getSterilingMode(); + + TousseInstance ti2 = new TousseInstance(); + ti2.setTousseFixedBarcode(false); + ti2.setTousseDefinition(td1); + ti2.setOrgUnitCoding(orgUnitCodingOther); + ti2.setBarcode(serialNumManager.getSerialNumberStr(SerialNum.TYPE_BARCODE)); + ti2.setSterilingMode("灭菌方式2"); + ti2.setTousseName(td1.getName()); + ti2.setStatus(TousseInstance.STATUS_REVIEWED); + objectDao.saveOrUpdate(ti2); + barcode = ti2.getBarcode(); + + + SterilizationTransitionItem item1 = new SterilizationTransitionItem(); + item1.setTousseDefinitionId(td1.getId()); + item1.setSterilizationTransition(sterilizationTransition); + item1.setTousseInstanceId(ti1.getId()); + item1.setTousseInstanceBarcode(ti1.getBarcode()); + objectDao.saveOrUpdate(item1); + String msg = null; + //灭菌交接中已经录入了灭菌方式为灭菌方式1的ti1,然后扫灭菌方式为灭菌方式2的ti2的条码,必须拦截 + try { + tousseInstanceManager.loadTousseInstanceByBarcodeforSterilizationTransition(barcode, sterilizationTransitionId, oldSterilizationMode, checkSterilizationMode); + } catch (Exception e) { + msg = e.getMessage(); + } + String tiSterilingModeMessage = ""; + if(StringUtils.isNotBlank(ti2.getSterilingMode())){ + tiSterilingModeMessage = "属于【" + ti2.getSterilingMode() + "】物品"; + } + String oldSterilingModeMessage = ""; + if(StringUtils.isNotBlank(oldSterilizationMode)){ + oldSterilingModeMessage = "【" + oldSterilizationMode + "】"; + } + assertEquals(msg, "【" + ti2.getTousseName() + "】" + tiSterilingModeMessage + "与原有" + oldSterilingModeMessage + "物品的灭菌方式不一致,不能录入。"); + //灭菌交接中已经录入了灭菌方式为灭菌方式1的ti1,然后扫灭菌方式为灭菌方式1的ti2的条码,可以通过 + ti2.setSterilingMode(ti1.getSterilingMode()); + objectDao.saveOrUpdate(ti2); + SterilizationTransitionItemVO vo = null; + try { + vo = tousseInstanceManager.loadTousseInstanceByBarcodeforSterilizationTransition(barcode, sterilizationTransitionId, oldSterilizationMode, checkSterilizationMode); + } catch (Exception e) { + msg = e.getMessage(); + } + assertNotNull(vo); + assertEquals(vo.getTousseInstanceId(), ti2.getId()); + } + /** + * 验证灭菌交接扫描篮筐时,验证灭菌方式是否一致 + */ + @Test + public void TestCheckSterilizationMode(){ + makeActiveUser("cssduser1"); + String orgUnitCoding = AcegiHelper.getLoginUser().getOrgUnitCodingFromSupplyRoomConfig(); + //当前登录用户不能代理灭菌自己科室处理的包 + String orgUnitCodingOther = orgUnitCoding+"1"; + //方法所属参数 + String containerBarcode = null; + Long sterilizationTransitionId = null; + String oldSterilizationMode = null; + //构建场景数据 + Container container = new Container(); + container.setBarcode(serialNumManager.getSerialNumberStr(SerialNum.TYPE_BARCODE)); + objectDao.saveOrUpdate(container); + containerBarcode = container.getBarcode(); + ReviewedBasket rb = new ReviewedBasket(); + rb.setContainer(container); + objectDao.saveOrUpdate(rb); + + SterilizationTransition sterilizationTransition = new SterilizationTransition(); + objectDao.saveOrUpdate(sterilizationTransition); + sterilizationTransitionId = sterilizationTransition.getId(); + + TousseDefinition td1 = new TousseDefinition(); + td1.setTousseType(TousseDefinition.PACKAGE_TYPE_INSIDE); + td1.setName("测试灭菌交接扫描条码场景的包1"); + td1.setTousseType(TousseDefinition.PACKAGE_TYPE_INSIDE); + objectDao.saveOrUpdate(td1); + + TousseInstance ti1 = new TousseInstance(); + ti1.setTousseFixedBarcode(false); + ti1.setTousseDefinition(td1); + ti1.setBarcode(serialNumManager.getSerialNumberStr(SerialNum.TYPE_BARCODE)); + ti1.setSterilingMode("灭菌方式1"); + ti1.setTousseName(td1.getName()); + ti1.setStatus(TousseInstance.STATUS_REVIEWED); + ti1.setOrgUnitCoding(orgUnitCodingOther); + objectDao.saveOrUpdate(ti1); + oldSterilizationMode = ti1.getSterilingMode(); + + TousseInstance ti2 = new TousseInstance(); + ti2.setTousseFixedBarcode(false); + ti2.setTousseDefinition(td1); + ti2.setBarcode(serialNumManager.getSerialNumberStr(SerialNum.TYPE_BARCODE)); + ti2.setSterilingMode("灭菌方式2"); + ti2.setTousseName(td1.getName()); + ti2.setStatus(TousseInstance.STATUS_REVIEWED); + ti2.setReviewBasket_id(rb.getId()); + ti2.setOrgUnitCoding(orgUnitCodingOther); + objectDao.saveOrUpdate(ti2); + + + SterilizationTransitionItem item1 = new SterilizationTransitionItem(); + item1.setTousseDefinitionId(td1.getId()); + item1.setSterilizationTransition(sterilizationTransition); + item1.setTousseInstanceId(ti1.getId()); + item1.setTousseInstanceBarcode(ti1.getBarcode()); + objectDao.saveOrUpdate(item1); + + String msg = null; + //灭菌交接中已经录入了灭菌方式为灭菌方式1的ti1,然后扫篮筐内有灭菌方式为灭菌方式2的篮筐的条码,拦截 + try { + tousseInstanceManager.checkSterilizationMode(containerBarcode, sterilizationTransitionId, oldSterilizationMode); + } catch (Exception e) { + msg = e.getMessage(); + } + String tiSterilingModeMessage = ""; + if(StringUtils.isNotBlank(ti2.getSterilingMode())){ + tiSterilingModeMessage = "属于【" + ti2.getSterilingMode() + "】物品"; + } + String oldSterilingModeMessage = ""; + if(StringUtils.isNotBlank(oldSterilizationMode)){ + oldSterilingModeMessage = "【" + oldSterilizationMode + "】"; + } + assertEquals(msg, "【" + ti2.getTousseName() + "】" + tiSterilingModeMessage + "与原有" + oldSterilingModeMessage + "物品的灭菌方式不一致,不能录入。"); + + //灭菌交接中已经录入了灭菌方式为灭菌方式1的ti1,然后扫篮筐内有灭菌方式为灭菌方式1的篮筐的条码,通过 + ti2.setSterilingMode(ti1.getSterilingMode()); + objectDao.saveOrUpdate(ti2); + msg = ""; + try { + tousseInstanceManager.checkSterilizationMode(containerBarcode, sterilizationTransitionId, oldSterilizationMode); + } catch (Exception e) { + msg = e.getMessage(); + } + assertEquals(msg,""); + + TousseInstance ti3 = new TousseInstance(); + ti3.setTousseFixedBarcode(false); + ti3.setTousseDefinition(td1); + ti3.setBarcode(serialNumManager.getSerialNumberStr(SerialNum.TYPE_BARCODE)); + ti3.setSterilingMode("灭菌方式3"); + ti3.setTousseName(td1.getName()); + ti3.setStatus(TousseInstance.STATUS_REVIEWED); + ti3.setReviewBasket_id(rb.getId()); + ti3.setOrgUnitCoding(orgUnitCodingOther); + objectDao.saveOrUpdate(ti3); + //灭菌交接中已经录入了灭菌方式为灭菌方式1的ti1,然后扫篮筐内有灭菌方式为灭菌方式1和3的篮筐的条码,拦截 + try { + tousseInstanceManager.checkSterilizationMode(containerBarcode, sterilizationTransitionId, oldSterilizationMode); + } catch (Exception e) { + msg = e.getMessage(); + } + assertEquals(msg,"该篮筐有多种不同灭菌方式的物品,不能装载物品,请先将筐内灭菌方式不同的物品移除"); + } +}