Index: ssts-web/src/test/resources/test/forgon/disinfectsystem/recyclingrecord/AllTests.xml =================================================================== diff -u -r16829 -r17164 --- ssts-web/src/test/resources/test/forgon/disinfectsystem/recyclingrecord/AllTests.xml (.../AllTests.xml) (revision 16829) +++ ssts-web/src/test/resources/test/forgon/disinfectsystem/recyclingrecord/AllTests.xml (.../AllTests.xml) (revision 17164) @@ -14,6 +14,7 @@ + \ No newline at end of file Index: ssts-web/src/test/java/test/forgon/disinfectsystem/recyclingrecord/service/ChangeBasketForRecyclingTests.java =================================================================== diff -u --- ssts-web/src/test/java/test/forgon/disinfectsystem/recyclingrecord/service/ChangeBasketForRecyclingTests.java (revision 0) +++ ssts-web/src/test/java/test/forgon/disinfectsystem/recyclingrecord/service/ChangeBasketForRecyclingTests.java (revision 17164) @@ -0,0 +1,305 @@ +package test.forgon.disinfectsystem.recyclingrecord.service; + +import static org.testng.Assert.assertEquals; +import static org.testng.Assert.assertNotNull; +import static org.testng.Assert.assertNull; + +import java.util.Date; +import java.util.List; + +import net.sf.json.JSONArray; +import net.sf.json.JSONObject; + +import org.springframework.beans.factory.annotation.Autowired; +import org.testng.annotations.Test; + +import test.forgon.constant.Constants; +import test.forgon.disinfectsystem.AbstractCSSDTest; + +import com.forgon.disinfectsystem.basedata.becleanitem.service.BeCleanItemManager; +import com.forgon.disinfectsystem.entity.basedatamanager.toussedefinition.TousseDefinition; +import com.forgon.disinfectsystem.entity.basedatamanager.toussedefinition.TousseInstance; +import com.forgon.disinfectsystem.entity.becleanitem.ClassifyBasket; +import com.forgon.disinfectsystem.entity.invoicemanager.InvoicePlan; +import com.forgon.disinfectsystem.entity.packing.PackingTask; +import com.forgon.disinfectsystem.entity.recyclingrecord.RecyclingRecord; +import com.forgon.disinfectsystem.entity.tousseitem.TousseItem; +import com.forgon.disinfectsystem.packing.service.PackingManager; +import com.forgon.disinfectsystem.recyclingapplication.service.InvoicePlanManager; +import com.forgon.disinfectsystem.recyclingrecord.service.RecyclingRecordManager; +import com.mchange.util.AssertException; + +/** + * @author WangYi + * 2017年2月27日 下午4:28:12 + * 回收切换篮筐测试 + * + * 篮筐 [019000001]、[019000002] + * + */ +public class ChangeBasketForRecyclingTests extends AbstractCSSDTest{ + + @Autowired + private RecyclingRecordManager recyclingRecordManager; + @Autowired + private InvoicePlanManager invoicePlanManager; + @Autowired + private PackingManager packingManager; + @Autowired + private BeCleanItemManager beCleanItemManager; + + + private void prepareData(){ + initCSSDData(); + makeActiveUser("cssduser1"); + } + + /** + * 普通器械包切换篮筐测试 + * 器械包[Test开胸包]、[Test开口包] + */ + @Test + public void testOrdinaryTousseChangeBasket(){ + prepareData(); + JSONArray jsonArray = new JSONArray(); + + TousseDefinition td_开胸包 = tousseDefinitionManager.getTousseDefinitionByName("Test开胸包"); + TousseDefinition td_开口包 = tousseDefinitionManager.getTousseDefinitionByName("Test开口包"); + + addRecyclingItem(jsonArray, "019000001", "0", td_开胸包.getName(), td_开胸包.getId(), 1, "器械包", "",0, ""); + addRecyclingItem(jsonArray, "019000002", "0", td_开胸包.getName(), td_开胸包.getId(), 2, "器械包", "",0, ""); + addRecyclingItem(jsonArray, "019000001", "0", td_开口包.getName(), td_开口包.getId(), 1, "器械包", "",0, ""); + + JSONObject params = new JSONObject(); + params.put("tousseJson", jsonArray); + + RecyclingRecord record = new RecyclingRecord(); + record.setOrgUnitCoding(Constants.ORG_UNIT_CODE_CSSD); + record.setDepart(Constants.ORG_UNIT_NAME_NEIKE); + record.setDepartCode(Constants.ORG_UNIT_CODE_NEIKE); + record.setRecyclingTime(new Date()); + record.setRecyclingApplication(null); + recyclingRecordManager.saveOrUpdate(record, params); + + objectDao.clearCache(); + + InvoicePlan invoicePlan = record.getRecyclingApplication(); + assertNotNull(invoicePlan); + InvoicePlan plan = invoicePlanManager.getInvoicePlanById("" + invoicePlan.getId()); + + List items = plan.getApplicationItems(); + assertNotNull(items); + assertEquals(items.size(), 2); + + Integer 开胸包_recyclingAmount = 0; + Integer 开口包_recyclingAmount = 0; + for (TousseItem tousseItem : items) { + if(td_开胸包.getName().equals(tousseItem.getTousseName())){ + 开胸包_recyclingAmount += tousseItem.getRecyclingAmount(); + assertEquals(tousseItem.getTousseDefinitionId(), td_开胸包.getId()); + }else if(td_开口包.getName().equals(tousseItem.getTousseName())){ + 开口包_recyclingAmount += tousseItem.getRecyclingAmount(); + assertEquals(tousseItem.getTousseDefinitionId(), td_开口包.getId()); + } + } + assertEquals(开胸包_recyclingAmount.intValue(), 3); + assertEquals(开口包_recyclingAmount.intValue(), 1); + + PackingTask task_开口包 = packingManager.getUnfinishedTask(record.getId(),"019000001", td_开口包.getId(), PackingTask.TASK_RECYCLINGRECORD); + assertNotNull(task_开口包); + assertEquals(task_开口包.getUnPackAmount().intValue(), 1); + PackingTask task_开胸包1 = packingManager.getUnfinishedTask(record.getId(),"019000001", td_开胸包.getId(), PackingTask.TASK_RECYCLINGRECORD); + assertNotNull(task_开胸包1); + assertEquals(task_开胸包1.getUnPackAmount().intValue(), 1); + PackingTask task_开胸包2 = packingManager.getUnfinishedTask(record.getId(),"019000002", td_开胸包.getId(), PackingTask.TASK_RECYCLINGRECORD); + assertNotNull(task_开胸包2); + assertEquals(task_开胸包2.getUnPackAmount().intValue(), 2); + + ClassifyBasket basket01 = beCleanItemManager.getClassifyBasket("019000001"); + ClassifyBasket basket02 = beCleanItemManager.getClassifyBasket("019000002"); + //切换篮筐 + JSONArray jsonArray2 = new JSONArray(); + addRecyclingItem(jsonArray2, "019000001", "" + basket01.getId(), td_开胸包.getName(), td_开胸包.getId(), 2, "器械包", "",0, ""); + addRecyclingItem(jsonArray2, "019000002", "" + basket02.getId(), td_开胸包.getName(), td_开胸包.getId(), -2, "器械包", "",0, ""); + JSONObject params2 = new JSONObject(); + params2.put("tousseJson", jsonArray2); + RecyclingRecord recyclingRecord = recyclingRecordManager.getRecyclingRecord("" + record.getId()); + recyclingRecordManager.saveOrUpdate(recyclingRecord, params2); + + objectDao.clearCache(); + + InvoicePlan plan2 = invoicePlanManager.getInvoicePlanById("" + invoicePlan.getId()); + + List items2 = plan2.getApplicationItems(); + assertNotNull(items2); + assertEquals(items2.size(), 2); + + Integer 开胸包_recyclingAmount2 = 0; + Integer 开口包_recyclingAmount2 = 0; + for (TousseItem tousseItem : items2) { + if(td_开胸包.getName().equals(tousseItem.getTousseName())){ + 开胸包_recyclingAmount2 += tousseItem.getRecyclingAmount(); + assertEquals(tousseItem.getTousseDefinitionId(), td_开胸包.getId()); + }else if(td_开口包.getName().equals(tousseItem.getTousseName())){ + 开口包_recyclingAmount2 += tousseItem.getRecyclingAmount(); + assertEquals(tousseItem.getTousseDefinitionId(), td_开口包.getId()); + } + } + assertEquals(开胸包_recyclingAmount2.intValue(), 3); + assertEquals(开口包_recyclingAmount2.intValue(), 1); + + PackingTask task_开口包2 = packingManager.getUnfinishedTask(record.getId(),"019000001", td_开口包.getId(), PackingTask.TASK_RECYCLINGRECORD); + assertNotNull(task_开口包2); + assertEquals(task_开口包2.getUnPackAmount().intValue(), 1); + PackingTask task_开胸包3 = packingManager.getUnfinishedTask(record.getId(),"019000001", td_开胸包.getId(), PackingTask.TASK_RECYCLINGRECORD); + assertNotNull(task_开胸包3); + assertEquals(task_开胸包3.getUnPackAmount().intValue(), 3); + } + + /** + * 消毒物品切换篮筐测试 + * + * Test雾化器 是否回收【是】,是否装配【是】 + * 止血带[100条/扎] 是否回收【是】,是否装配【否】 + */ + @Test + public void testDisinfectGoodsChangeBasket(){ + prepareData(); + + JSONArray jsonArray = new JSONArray(); + + TousseDefinition td_雾化器 = tousseDefinitionManager.getTousseDefinitionByNameForDisplay("Test雾化器"); + TousseDefinition td_止血带 = tousseDefinitionManager.getTousseDefinitionByNameForDisplay("止血带[100条/扎]"); + + addRecyclingItem(jsonArray, "019000001", "0", td_止血带.getName(), td_止血带.getId(), 1, "器械包", "",0, ""); + addRecyclingItem(jsonArray, "019000002", "0", td_止血带.getName(), td_止血带.getId(), 2, "器械包", "",0, ""); + addRecyclingItem(jsonArray, "019000001", "0", td_雾化器.getName(), td_雾化器.getId(), 1, "器械包", "",0, ""); + addRecyclingItem(jsonArray, "019000002", "0", td_雾化器.getName(), td_雾化器.getId(), 2, "器械包", "",0, ""); + + JSONObject params = new JSONObject(); + params.put("tousseJson", jsonArray); + + RecyclingRecord record = new RecyclingRecord(); + record.setOrgUnitCoding(Constants.ORG_UNIT_CODE_DISINFECT); + record.setDepart(Constants.ORG_UNIT_NAME_NEIKE); + record.setDepartCode(Constants.ORG_UNIT_CODE_NEIKE); + record.setRecyclingTime(new Date()); + record.setRecyclingApplication(null); + recyclingRecordManager.saveOrUpdate(record, params); + + objectDao.clearCache(); + + InvoicePlan invoicePlan = record.getRecyclingApplication(); + assertNotNull(invoicePlan); + InvoicePlan plan = invoicePlanManager.getInvoicePlanById("" + invoicePlan.getId()); + + List items = plan.getApplicationItems(); + assertNotNull(items); + assertEquals(items.size(), 2); + + Integer 止血带_recyclingAmount = 0; + Long 止血带_toussedefinitionId = 0l; + Integer 雾化器_recyclingAmount = 0; + Long 雾化器_toussedefinitionId = 0l; + for (TousseItem tousseItem : items) { + if(td_雾化器.getName().equals(tousseItem.getTousseName())){ + 雾化器_recyclingAmount += tousseItem.getRecyclingAmount(); + 雾化器_toussedefinitionId = tousseItem.getTousseDefinitionId(); + }else if(td_止血带.getName().equals(tousseItem.getTousseName())){ + 止血带_recyclingAmount += tousseItem.getRecyclingAmount(); + 止血带_toussedefinitionId = tousseItem.getTousseDefinitionId(); + } + } + assertEquals(雾化器_recyclingAmount.intValue(), 3); + assertEquals(止血带_recyclingAmount.intValue(), 3); + TousseDefinition td_app止血带 = tousseDefinitionManager.getTousseDefinitionByNameTypeAndAPPID(td_止血带.getName(), TousseDefinition.PACKAGE_TYPE_DISINFECTION, "" + plan.getId()); + TousseDefinition td_app雾化器 = tousseDefinitionManager.getTousseDefinitionByNameTypeAndAPPID(td_雾化器.getName(), TousseDefinition.PACKAGE_TYPE_DISINFECTION, "" + plan.getId()); + + assertNotNull(td_app止血带); + assertEquals(td_app止血带.getAncestorID().longValue(), td_止血带.getId().longValue()); + assertNotNull(td_app雾化器); + assertEquals(td_app雾化器.getAncestorID().longValue(), td_雾化器.getId().longValue()); + + assertEquals(雾化器_toussedefinitionId.longValue(), td_app雾化器.getId().longValue()); + assertEquals(止血带_toussedefinitionId.longValue(), td_app止血带.getId().longValue()); + + PackingTask task_雾化器 = packingManager.getUnfinishedTask(record.getId(),"019000001", 雾化器_toussedefinitionId, PackingTask.TASK_RECYCLINGRECORD); + PackingTask task_雾化器2 = packingManager.getUnfinishedTask(record.getId(),"019000002", 雾化器_toussedefinitionId, PackingTask.TASK_RECYCLINGRECORD); + assertNotNull(task_雾化器); + assertNotNull(task_雾化器2); + assertEquals(task_雾化器.getUnPackAmount().intValue(), 1); + assertEquals(task_雾化器2.getUnPackAmount().intValue(), 2); + + PackingTask task_止血带 = packingManager.getUnfinishedTask(record.getId(),"019000001", 止血带_toussedefinitionId, PackingTask.TASK_RECYCLINGRECORD); + PackingTask task_止血带2 = packingManager.getUnfinishedTask(record.getId(),"019000002", 止血带_toussedefinitionId, PackingTask.TASK_RECYCLINGRECORD); + assertNull(task_止血带); + assertNull(task_止血带2); + String sql = String.format("where po.tousseName = '%s' and po.tousseDefinition.id = %s", td_止血带.getName(),td_app止血带.getId()); + List instances = tousseInstanceManager.getBySql(sql); + assertNotNull(instances); + assertEquals(instances.size(), 3); + //切换篮筐 + ClassifyBasket basket01 = beCleanItemManager.getClassifyBasket("019000001"); + ClassifyBasket basket02 = beCleanItemManager.getClassifyBasket("019000002"); + JSONArray jsonArray2 = new JSONArray(); + addRecyclingItem(jsonArray2, "019000001", "" + basket01.getId(), td_雾化器.getName(), 雾化器_toussedefinitionId, 2, "器械包", "",0, ""); + addRecyclingItem(jsonArray2, "019000002", "" + basket02.getId(), td_雾化器.getName(), 雾化器_toussedefinitionId, -2, "器械包", "",0, ""); + addRecyclingItem(jsonArray2, "019000001", "" + basket01.getId(), td_止血带.getName(), 止血带_toussedefinitionId, 2, "器械包", "",0, ""); + addRecyclingItem(jsonArray2, "019000002", "" + basket02.getId(), td_止血带.getName(), 止血带_toussedefinitionId, -2, "器械包", "",0, ""); + JSONObject params2 = new JSONObject(); + params2.put("tousseJson", jsonArray2); + RecyclingRecord recyclingRecord = recyclingRecordManager.getRecyclingRecord("" + record.getId()); + recyclingRecordManager.saveOrUpdate(recyclingRecord, params2); + + objectDao.clearCache(); + + InvoicePlan plan2 = invoicePlanManager.getInvoicePlanById("" + invoicePlan.getId()); + + List items2 = plan2.getApplicationItems(); + assertNotNull(items2); + assertEquals(items2.size(), 2); + + Integer 止血带_recyclingAmount2 = 0; + Long 止血带_toussedefinitionId2 = 0l; + Integer 雾化器_recyclingAmount2 = 0; + Long 雾化器_toussedefinitionId2 = 0l; + for (TousseItem tousseItem : items2) { + if(td_雾化器.getName().equals(tousseItem.getTousseName())){ + 雾化器_recyclingAmount2 += tousseItem.getRecyclingAmount(); + 雾化器_toussedefinitionId2 = tousseItem.getTousseDefinitionId(); + }else if(td_止血带.getName().equals(tousseItem.getTousseName())){ + 止血带_recyclingAmount2 += tousseItem.getRecyclingAmount(); + 止血带_toussedefinitionId2 = tousseItem.getTousseDefinitionId(); + } + } + assertEquals(雾化器_recyclingAmount2.intValue(), 3); + assertEquals(止血带_recyclingAmount2.intValue(), 3); + TousseDefinition td_app止血带2 = tousseDefinitionManager.getTousseDefinitionByNameTypeAndAPPID(td_止血带.getName(), TousseDefinition.PACKAGE_TYPE_DISINFECTION, "" + plan2.getId()); + TousseDefinition td_app雾化器2 = tousseDefinitionManager.getTousseDefinitionByNameTypeAndAPPID(td_雾化器.getName(), TousseDefinition.PACKAGE_TYPE_DISINFECTION, "" + plan2.getId()); + + assertNotNull(td_app止血带2); + assertEquals(td_app止血带2.getAncestorID().longValue(), td_止血带.getId().longValue()); + assertNotNull(td_app雾化器2); + assertEquals(td_app雾化器2.getAncestorID().longValue(), td_雾化器.getId().longValue()); + + assertEquals(雾化器_toussedefinitionId2.longValue(), td_app雾化器2.getId().longValue()); + assertEquals(止血带_toussedefinitionId2.longValue(), td_app止血带2.getId().longValue()); + + PackingTask task_雾化器3 = packingManager.getUnfinishedTask(record.getId(),"019000001", 雾化器_toussedefinitionId2, PackingTask.TASK_RECYCLINGRECORD); + PackingTask task_雾化器22 = packingManager.getUnfinishedTask(record.getId(),"019000002", 雾化器_toussedefinitionId2, PackingTask.TASK_RECYCLINGRECORD); + assertNotNull(task_雾化器3); + assertNull(task_雾化器22); + assertEquals(task_雾化器3.getUnPackAmount().intValue(), 3); + + PackingTask task_止血带22 = packingManager.getUnfinishedTask(record.getId(),"019000001", 止血带_toussedefinitionId2, PackingTask.TASK_RECYCLINGRECORD); + PackingTask task_止血带33 = packingManager.getUnfinishedTask(record.getId(),"019000002", 止血带_toussedefinitionId2, PackingTask.TASK_RECYCLINGRECORD); + assertNull(task_止血带22); + assertNull(task_止血带33); + + String sql2 = String.format("where po.tousseName = '%s' and po.tousseDefinition.id = %s", td_止血带.getName(),td_app止血带.getId()); + List instances2 = tousseInstanceManager.getBySql(sql2); + assertNotNull(instances2); + assertEquals(instances2.size(), 3); + } + +} Index: ssts-web/src/test/java/test/forgon/disinfectsystem/AbstractCSSDTest.java =================================================================== diff -u -r17162 -r17164 --- ssts-web/src/test/java/test/forgon/disinfectsystem/AbstractCSSDTest.java (.../AbstractCSSDTest.java) (revision 17162) +++ ssts-web/src/test/java/test/forgon/disinfectsystem/AbstractCSSDTest.java (.../AbstractCSSDTest.java) (revision 17164) @@ -355,14 +355,15 @@ tousseDefinition1.setIsCleanedEntirely("是"); tousseDefinition1.setIsApplyEntireTousse("是"); tousseDefinition1.setIsRecycling(TousseDefinition.STR_YES); + tousseDefinition1.setIsPacking(TousseDefinition.STR_YES); tousseDefinition1.setIsTraceable(TousseDefinition.STR_NO); tousseDefinition1.setTaskGroup("器械组"); tousseDefinition1.setTousseType(TousseDefinition.PACKAGE_TYPE_DISINFECTION); - tousseDefinition1.setHandlerDepartCode(Constants.ORG_UNIT_CODE_DISINFECT); - tousseDefinition1.setHandlerDepartName(Constants.ORG_UNIT_NAME_DISINFECT); + tousseDefinition1.setHandlerDepartCode(Constants.ORG_UNIT_CODE_CSSD); + tousseDefinition1.setHandlerDepartName(Constants.ORG_UNIT_NAME_CSSD); + tousseDefinition1.setForDisplay(true); - objectDao.saveOrUpdate(materialInstance1); objectDao.saveOrUpdate(materialInstance11); @@ -398,11 +399,12 @@ tousseDefinition2.setIsCleanedEntirely("否"); tousseDefinition2.setIsApplyEntireTousse("是"); tousseDefinition2.setIsRecycling(TousseDefinition.STR_YES); + tousseDefinition2.setIsPacking(TousseDefinition.STR_NO); tousseDefinition2.setIsTraceable(TousseDefinition.STR_NO); tousseDefinition2.setTaskGroup("术科组"); tousseDefinition2.setTousseType(TousseDefinition.PACKAGE_TYPE_DISINFECTION); - tousseDefinition2.setHandlerDepartCode(Constants.ORG_UNIT_CODE_DISINFECT); - tousseDefinition2.setHandlerDepartName(Constants.ORG_UNIT_NAME_DISINFECT); + tousseDefinition2.setHandlerDepartCode(Constants.ORG_UNIT_CODE_CSSD); + tousseDefinition2.setHandlerDepartName(Constants.ORG_UNIT_NAME_CSSD); tousseDefinition2.setForDisplay(true); materialInstances = new ArrayList(); @@ -440,8 +442,8 @@ tousseDefinition3.setIsPacking(TousseDefinition.STR_YES); // 需要装配 tousseDefinition3.setTaskGroup("术科组"); tousseDefinition3.setTousseType(TousseDefinition.PACKAGE_TYPE_DISINFECTION); - tousseDefinition3.setHandlerDepartCode(Constants.ORG_UNIT_CODE_DISINFECT); - tousseDefinition3.setHandlerDepartName(Constants.ORG_UNIT_NAME_DISINFECT); + tousseDefinition3.setHandlerDepartCode(Constants.ORG_UNIT_CODE_CSSD); + tousseDefinition3.setHandlerDepartName(Constants.ORG_UNIT_NAME_CSSD); tousseDefinition3.setForDisplay(true); materialInstances = new ArrayList();