Index: ssts-web/src/test/java/test/forgon/disinfectsystem/disinfectgoods/TestDisinfectGoodsSteriliManager.java =================================================================== diff -u -r14716 -r16780 --- ssts-web/src/test/java/test/forgon/disinfectsystem/disinfectgoods/TestDisinfectGoodsSteriliManager.java (.../TestDisinfectGoodsSteriliManager.java) (revision 14716) +++ ssts-web/src/test/java/test/forgon/disinfectsystem/disinfectgoods/TestDisinfectGoodsSteriliManager.java (.../TestDisinfectGoodsSteriliManager.java) (revision 16780) @@ -1,4 +1,5 @@ package test.forgon.disinfectsystem.disinfectgoods; + import static org.testng.Assert.assertEquals; import static org.testng.Assert.assertNotNull; import static org.testng.Assert.assertNull; @@ -13,20 +14,21 @@ import javax.servlet.http.HttpSession; +import net.sf.json.JSONArray; import net.sf.json.JSONObject; import org.apache.commons.lang.StringUtils; -import org.hibernate.engine.transaction.jta.platform.internal.JOnASJtaPlatform; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.test.annotation.Rollback; import org.testng.annotations.Test; import test.forgon.constant.Constants; import test.forgon.disinfectsystem.AbstractCSSDTest; -import com.alibaba.fastjson.JSONArray; import com.forgon.disinfectsystem.basedatamanager.container.service.ReviewedBasketManager; +import com.forgon.disinfectsystem.common.CssdUtils; import com.forgon.disinfectsystem.entity.basedatamanager.container.Container; +import com.forgon.disinfectsystem.entity.basedatamanager.materialinstance.MaterialInstance; import com.forgon.disinfectsystem.entity.basedatamanager.sterilizer.Sterilizer; import com.forgon.disinfectsystem.entity.basedatamanager.toussedefinition.TousseDefinition; import com.forgon.disinfectsystem.entity.basedatamanager.toussedefinition.TousseInstance; @@ -85,23 +87,49 @@ application.setSerialNumber("89012000001"); application.setDepartCoding("3266"); application.setSettleAccountsDepartCoding("3266"); + application.setHandleDepart(Constants.ORG_UNIT_NAME_CSSD); + application.setHandleDepartCoding(Constants.ORG_UNIT_CODE_CSSD); objectDao.saveOrUpdate(application); + /* + TousseDefinition zxdTD = tousseDefinitionManager.getTousseDefinitionByName("test止血带"); + if(zxdTD == null){ + assertEquals(true, false); + } - TousseItem ti4 = new TousseItem(); - ti4.setTousseType(TousseDefinition.PACKAGE_TYPE_DISINFECTION); - ti4.setTousseName("test止血带_" + application.getId()); - ti4.setAmount(10); - ti4.setDiposable("否"); - ti4.setRecyclingAmount(null); - ti4.setSendOutAmount(0); - ti4.setInvoicePlan(application); - application.setApplicationItems(Collections.singletonList(ti4)); + TousseItem ti = new TousseItem(); + ti.setTousseType(TousseDefinition.PACKAGE_TYPE_DISINFECTION); + ti.setTousseName("test止血带"); + ti.setAmount(10); + ti.setDiposable("否"); + ti.setRecyclingAmount(null); + ti.setSendOutAmount(0); + ti.setTousseType(zxdTD.getTousseType()); + ti.setTousseDefinitionId(zxdTD.getId()); + ti.setInvoicePlan(application); + List items = new ArrayList(); + items.add(ti); + application.setApplicationItems(items); -// recyclingApplicationManager.saveDisinfectionRecyclingApplication(application, "#,test止血带#,10#, "); + JSONArray array = new JSONArray(); + JSONObject obj = new JSONObject(); + obj.put("tousseDefinitionId", zxdTD.getId()); + obj.put("tousseName", "test止血带"); + obj.put("amount", 10); - /*Map tousseItemMap = new HashMap(); - tousseItemMap.put("test止血带", 10); - recyclingApplicationManager.createRecyclingApplicationByTousse(tousseItemMap , "test20160118");*/ + JSONArray materialArray = new JSONArray(); + List msList = zxdTD.getMaterialInstances(); + if(msList != null){ + for (MaterialInstance materialInstance : msList) { + JSONObject materialJson = new JSONObject(); + materialJson.put("name", CssdUtils.getMaterialName(materialInstance.getMaterialDefinition())); + materialJson.put("type", "器械"); + materialJson.put("count", materialInstance.getCount()); + materialArray.add(materialJson); + } + } + obj.put("materials", materialArray.toString()); + array.add(obj); + recyclingApplicationManager.saveDisinfectionRecyclingApplication(application, array);*/ } /** @@ -179,36 +207,44 @@ public void test1(){ initData(TousseDefinition.STR_NO,TousseDefinition.STR_NO, TousseDefinition.STR_NO,TousseDefinition.STR_NO,TousseDefinition.STR_NO); - //String tousseInstanceInfos = "[{\"id\":0,\"tousseName\":\"test止血带\",\"amount\":10,\"price\":20,\"rowPrice\":20,\"diposable\":\"否\",\"tousseType\":\"消毒物品\",\"unit\":\" \",\"disinfectMaterilas\":[{\"name\":\"\\u6b62\\u8840\\u5e26\",\"count\":10,\"tousseType\":\"\\u5668\\u68b0\",\"groupNum\":\"\"}]}]"; TousseDefinition td_test止血带 = tousseDefinitionManager.getTousseDefinitionByNameForDisplay("test止血带"); - JSONArray jarr = new JSONArray(); - JSONObject jobj = new JSONObject(); - jobj.put("id", 0); - jobj.put("tousseName", "test止血带"); - jobj.put("tousseDefinitionID", td_test止血带.getId()); - jobj.put("amount", 10); - jobj.put("price", 20); - jobj.put("rowPrice", 20); - jobj.put("diposable", "否"); - jobj.put("tousseType", "消毒物品"); - jobj.put("unit", ""); - jarr.add(jobj); -// String tousseInstanceInfos = "[{\"id\":0,\"tousseName\":\"test止血带\",\"amount\":10,\"price\":20,\"rowPrice\":20,\"diposable\":\"否\",\"tousseType\":\"消毒物品\",\"unit\":\" \"}]"; - String tousseInstanceInfos = jarr.toString(); - List tousses = new Gson().fromJson(tousseInstanceInfos, new TypeToken>(){}.getType()); - recyclingApplicationManager.saveRecyclingApplication(application, tousses, - true); + List tousses = new ArrayList(); + TousseItemVo vo = new TousseItemVo(); + vo.setId(0L); + vo.setTousseName("test止血带"); + vo.setTousseDefinitionID(td_test止血带.getId()); + vo.setAmount(10); + vo.setPrice(20D); + vo.setRowPrice(20D); + vo.setDiposable("否"); + vo.setTousseType("消毒物品"); + vo.setUnit(""); + tousses.add(vo); + recyclingApplicationManager.saveRecyclingApplication(application, tousses,true); String sql = String.format(" where po.tousseName='test止血带' and po.invoicePlanID=%s", application.getId()); - List tousseInstanceList = -// objectDao.findByProperty("TousseInstance", "tousseName", "test止血带_" + application.getId()); - objectDao.findBySql("TousseInstance", sql); + List tousseInstanceList = objectDao.findBySql(TousseInstance.class.getSimpleName(), sql); assertNotNull(tousseInstanceList); assertEquals(10, tousseInstanceList.size()); for(TousseInstance tousseInstance : tousseInstanceList){ assertEquals(tousseInstance.getStatus(), TousseInstance.STATUS_DISINFECTED); } } + public void setDisinfectMaterials(TousseDefinition ancestorTD,TousseItemVo vo){ + JSONArray materialArray = new JSONArray(); + List msList = ancestorTD.getMaterialInstances(); + if(msList != null){ + for (MaterialInstance materialInstance : msList) { + JSONObject materialJson = new JSONObject(); + materialJson.put("name", CssdUtils.getMaterialName(materialInstance.getMaterialDefinition())); + materialJson.put("type", "器械"); + materialJson.put("count", materialInstance.getCount()); + materialArray.add(materialJson); + } + } + vo.setDisinfectMaterilas(materialArray.toString()); + } + /** * 是否回收、是否装配、是否追溯、是否审核、是否灭菌 * 用例场景:回收、不装配、不追溯、不审核、不灭菌 @@ -220,36 +256,25 @@ initData(TousseDefinition.STR_YES,TousseDefinition.STR_NO, TousseDefinition.STR_NO,TousseDefinition.STR_NO,TousseDefinition.STR_NO); TousseDefinition td_test止血带 = tousseDefinitionManager.getTousseDefinitionByNameForDisplay("test止血带"); - JSONArray jarr = new JSONArray(); - JSONObject jobj = new JSONObject(); - jobj.put("id", 0); - jobj.put("tousseName", "test止血带"); - jobj.put("tousseDefinitionID", td_test止血带.getId()); - jobj.put("amount", 10); - jobj.put("price", 20); - jobj.put("rowPrice", 20); - jobj.put("diposable", "否"); - jobj.put("tousseType", "消毒物品"); - jobj.put("unit", ""); - jarr.add(jobj); - String tousseInstanceInfos = jarr.toString(); - List tousses = new Gson().fromJson(tousseInstanceInfos, new TypeToken>(){}.getType()); - recyclingApplicationManager.saveRecyclingApplication(application, tousses, - true); + List tousses = new ArrayList(); + TousseItemVo vo = new TousseItemVo(); + vo.setId(0L); + vo.setTousseName("test止血带"); + vo.setTousseDefinitionID(td_test止血带.getId()); + vo.setAmount(10); + vo.setPrice(20D); + vo.setRowPrice(20D); + vo.setDiposable("否"); + vo.setTousseType("消毒物品"); + vo.setUnit(""); + setDisinfectMaterials(td_test止血带,vo); + tousses.add(vo); + recyclingApplicationManager.saveRecyclingApplication(application, tousses,true); String sql = String.format(" where po.tousseName='test止血带' and po.invoicePlanID=%s", application.getId()); - List tousseInstanceList = - objectDao.findBySql("TousseInstance", sql); + List tousseInstanceList = objectDao.findBySql("TousseInstance", sql); assertNotNull(tousseInstanceList); - assertEquals(10, tousseInstanceList.size()); - for(TousseInstance tousseInstance : tousseInstanceList){ - //System.out.println("tousseInstance.getStatus():" + tousseInstance.getStatus()); - assertEquals(tousseInstance.getStatus(), TousseInstance.STATUS_DISINFECTED); - assertNull(tousseInstance.getOrgUnitName()); - PackingTask packingTask = - (PackingTask)objectDao.getBySql("PackingTask", " where taskType='" + - PackingTask.TASK_APPLICATION + "' and sourceId="+application.getId()); - assertEquals(packingTask, null); - } + //现在的代码,需要回收的话在回收的时候创建包实例 + assertEquals(0, tousseInstanceList.size()); //调用回收 RecyclingRecord recyclingRecord = new RecyclingRecord(); recyclingRecord.setRecyclingApplication(application); @@ -286,8 +311,12 @@ //断言回收单状态 assertEquals(application.getRecyclingStatus() , InvoicePlan.RECYCLINGSTATUS_RECYCLED); + List tousseInstanceList2 = objectDao.findBySql("TousseInstance", sql); + assertNotNull(tousseInstanceList2); + //现在的代码,需要回收的话在回收的时候创建包实例 + assertEquals(10, tousseInstanceList2.size()); + for(TousseInstance tousseInstance : tousseInstanceList){ - //System.out.println("tousseInstance.getStatus():" + tousseInstance.getStatus()); assertEquals(tousseInstance.getStatus(), TousseInstance.STATUS_DISINFECTED); assertEquals(tousseInstance.getOrgUnitName() , application.getDepart()); PackingTask packingTask = @@ -311,25 +340,23 @@ initData(TousseDefinition.STR_YES,TousseDefinition.STR_YES, TousseDefinition.STR_NO,TousseDefinition.STR_NO,TousseDefinition.STR_NO); TousseDefinition td_test止血带 = tousseDefinitionManager.getTousseDefinitionByNameForDisplay("test止血带"); - JSONArray jarr = new JSONArray(); - JSONObject jobj = new JSONObject(); - jobj.put("id", 0); - jobj.put("tousseName", "test止血带"); - jobj.put("tousseDefinitionID", td_test止血带.getId()); - jobj.put("amount", 10); - jobj.put("price", 20); - jobj.put("rowPrice", 20); - jobj.put("diposable", "否"); - jobj.put("tousseType", "消毒物品"); - jobj.put("unit", ""); - jarr.add(jobj); - String tousseInstanceInfos = jarr.toString(); - List tousses = new Gson().fromJson(tousseInstanceInfos, new TypeToken>(){}.getType()); + List tousses = new ArrayList(); + TousseItemVo vo = new TousseItemVo(); + vo.setId(0L); + vo.setTousseName("test止血带"); + vo.setTousseDefinitionID(td_test止血带.getId()); + vo.setAmount(10); + vo.setPrice(20D); + vo.setRowPrice(20D); + vo.setDiposable("否"); + vo.setTousseType("消毒物品"); + vo.setUnit(""); + setDisinfectMaterials(td_test止血带,vo); + tousses.add(vo); //调用创建申请单 - recyclingApplicationManager.saveRecyclingApplication(application, tousses, - true); - List tousseInstanceList = - objectDao.findByProperty("TousseInstance", "tousseName", "test止血带_" + application.getId()); + recyclingApplicationManager.saveRecyclingApplication(application, tousses,true); + String sql12 = String.format(" where po.tousseName='test止血带' and po.invoicePlanID=%s", application.getId()); + List tousseInstanceList = objectDao.findBySql("TousseInstance", sql12); assertNotNull(tousseInstanceList); assertEquals(0, tousseInstanceList.size()); //调用回收 @@ -470,25 +497,23 @@ initData(TousseDefinition.STR_YES,TousseDefinition.STR_YES, TousseDefinition.STR_YES,TousseDefinition.STR_NO,TousseDefinition.STR_NO); TousseDefinition td_test止血带 = tousseDefinitionManager.getTousseDefinitionByNameForDisplay("test止血带"); - JSONArray jarr = new JSONArray(); - JSONObject jobj = new JSONObject(); - jobj.put("id", 0); - jobj.put("tousseName", "test止血带"); - jobj.put("tousseDefinitionID", td_test止血带.getId()); - jobj.put("amount", 10); - jobj.put("price", 20); - jobj.put("rowPrice", 20); - jobj.put("diposable", "否"); - jobj.put("tousseType", "消毒物品"); - jobj.put("unit", ""); - jarr.add(jobj); - String tousseInstanceInfos = jarr.toString(); - List tousses = new Gson().fromJson(tousseInstanceInfos, new TypeToken>(){}.getType()); + List tousses = new ArrayList(); + TousseItemVo vo = new TousseItemVo(); + vo.setId(0L); + vo.setTousseName("test止血带"); + vo.setTousseDefinitionID(td_test止血带.getId()); + vo.setAmount(10); + vo.setPrice(20D); + vo.setRowPrice(20D); + vo.setDiposable("否"); + vo.setTousseType("消毒物品"); + vo.setUnit(""); + setDisinfectMaterials(td_test止血带,vo); + tousses.add(vo); //调用创建申请单 - recyclingApplicationManager.saveRecyclingApplication(application, tousses, - true); - List tousseInstanceList = - objectDao.findByProperty("TousseInstance", "tousseName", "test止血带_" + application.getId()); + recyclingApplicationManager.saveRecyclingApplication(application, tousses,true); + String sql = String.format(" where po.tousseName='test止血带' and po.invoicePlanID=%s", application.getId()); + List tousseInstanceList = objectDao.findBySql("TousseInstance", sql); assertNotNull(tousseInstanceList); assertEquals(0, tousseInstanceList.size()); //调用回收 @@ -525,9 +550,9 @@ //断言回收单状态 assertEquals(application.getRecyclingStatus() , InvoicePlan.RECYCLINGSTATUS_RECYCLED); - String sql = String.format(" where po.tousseName='test止血带' and po.invoicePlanID=%s", application.getId()); + String sql2 = String.format(" where po.tousseName='test止血带' and po.invoicePlanID=%s", application.getId()); tousseInstanceList = - objectDao.findBySql("TousseInstance", sql); + objectDao.findBySql("TousseInstance", sql2); assertEquals(0, tousseInstanceList.size()); PackingTask packingTask = @@ -628,21 +653,19 @@ initData(TousseDefinition.STR_YES,TousseDefinition.STR_YES, TousseDefinition.STR_YES,TousseDefinition.STR_YES,TousseDefinition.STR_NO); TousseDefinition td_test止血带 = tousseDefinitionManager.getTousseDefinitionByNameForDisplay("test止血带"); - JSONArray jarr = new JSONArray(); - JSONObject jobj = new JSONObject(); - jobj.put("id", 0); - jobj.put("tousseName", "test止血带"); - jobj.put("tousseDefinitionID", td_test止血带.getId()); - jobj.put("amount", 10); - jobj.put("price", 20); - jobj.put("rowPrice", 20); - jobj.put("diposable", "否"); - jobj.put("tousseType", "消毒物品"); - jobj.put("unit", ""); - jarr.add(jobj); - String tousseInstanceInfos = jarr.toString(); - List tousses = new Gson().fromJson(tousseInstanceInfos, new TypeToken>(){}.getType()); - //调用创建申请单 + List tousses = new ArrayList(); + TousseItemVo vo = new TousseItemVo(); + vo.setId(0L); + vo.setTousseName("test止血带"); + vo.setTousseDefinitionID(td_test止血带.getId()); + vo.setAmount(10); + vo.setPrice(20D); + vo.setRowPrice(20D); + vo.setDiposable("否"); + vo.setTousseType("消毒物品"); + vo.setUnit(""); + setDisinfectMaterials(td_test止血带,vo); + tousses.add(vo);//调用创建申请单 recyclingApplicationManager.saveRecyclingApplication(application, tousses, true); String sql = String.format(" where po.tousseName='test止血带' and po.invoicePlanID=%s", application.getId()); @@ -801,20 +824,19 @@ initData(TousseDefinition.STR_YES,TousseDefinition.STR_YES, TousseDefinition.STR_YES,TousseDefinition.STR_YES,TousseDefinition.STR_YES); TousseDefinition td_test止血带 = tousseDefinitionManager.getTousseDefinitionByNameForDisplay("test止血带"); - JSONArray jarr = new JSONArray(); - JSONObject jobj = new JSONObject(); - jobj.put("id", 0); - jobj.put("tousseName", "test止血带"); - jobj.put("tousseDefinitionID", td_test止血带.getId()); - jobj.put("amount", 10); - jobj.put("price", 20); - jobj.put("rowPrice", 20); - jobj.put("diposable", "否"); - jobj.put("tousseType", "消毒物品"); - jobj.put("unit", ""); - jarr.add(jobj); - String tousseInstanceInfos = jarr.toString(); - List tousses = new Gson().fromJson(tousseInstanceInfos, new TypeToken>(){}.getType()); + List tousses = new ArrayList(); + TousseItemVo vo = new TousseItemVo(); + vo.setId(0L); + vo.setTousseName("test止血带"); + vo.setTousseDefinitionID(td_test止血带.getId()); + vo.setAmount(10); + vo.setPrice(20D); + vo.setRowPrice(20D); + vo.setDiposable("否"); + vo.setTousseType("消毒物品"); + vo.setUnit(""); + setDisinfectMaterials(td_test止血带,vo); + tousses.add(vo); //调用创建申请单 recyclingApplicationManager.saveRecyclingApplication(application, tousses, true); @@ -1032,51 +1054,6 @@ //灭菌失败 // sterilizationRecordManager.updateFailureSterilizedRecordStatus(sterilizationRecordIds); - //发货 - JSONObject params = new JSONObject(); - params.put("mode", "depart"); - params.put("departCode", application.getDepartCoding()); - params.put("assistantSender", "cssduser1"); - params.put("sender", "cssduser1"); - String invoiceBarcode1 = tousseInstanceList.get(0).getBarcode(); - String invoiceBarcode2 = tousseInstanceList.get(1).getBarcode(); - String sendOutGoodsStoreData = invoiceBarcode1 + "#&" + 1 + "#@" + invoiceBarcode2 + "#&" + 1; - List goodsList = new ArrayList(); - String[] sendOutGoodsArray = StringUtils.splitByWholeSeparator(sendOutGoodsStoreData, "#@");; - for (int i = 0; i < sendOutGoodsArray.length; i++) { - String[] goodsItems = StringUtils.splitByWholeSeparator(sendOutGoodsArray[i],"#&"); - ScanGoodsVo vo = new ScanGoodsVo(); - goodsList.add(vo); - vo.setBarcode(goodsItems[0]); - vo.setSendAmount(Integer.parseInt(goodsItems[1])); - - } - params.put("invoiceItems", goodsList); - - params.put("mode", "invoicePlan"); - params.put("invoicePlanId", application.getId()); - invoiceManager.submitInvoice(params); - - //断言发货单、发货项、器械包状态、申请单状态等 - Invoice invoice = (Invoice)objectDao.getByProperty("Invoice", "invoicePlan.id", application.getId()); - assertNotNull(invoice); - assertEquals(invoice.getStatus() , Invoice.STATUS_DELIVERED); - assertNotNull(invoice.getInvoiceItem()); - assertEquals(invoice.getInvoiceItem().size() , 1); - for(InvoiceItem invoiceItem : invoice.getInvoiceItem()){ - assertEquals(invoiceItem.getAmount().intValue() , 2); - } - - for(TousseInstance tousseInstance : tousseInstanceList){ - if(invoiceBarcode1.equals(tousseInstance.getBarcode()) || invoiceBarcode2.equals(tousseInstance.getBarcode())){ - assertEquals(tousseInstance.getStatus(), TousseInstance.STATUS_SHIPPED); - }else{ - assertEquals(tousseInstance.getStatus(), TousseInstance.STATUS_DISINFECTED); - } - } - //重新查询加载数据 - application = (RecyclingApplication)objectDao.getByProperty("InvoicePlan", "id", application.getId()); - assertEquals(application.getDeliverStatus() , InvoicePlan.DELIVERSTATUS_PARTDELIVERED); } }