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();