Index: ssts-web/src/test/java/test/forgon/disinfectsystem/invoicemanager/service/TestPDAForeignProxyTousseGoodsInvoiceManager.java =================================================================== diff -u -r13055 -r16743 --- ssts-web/src/test/java/test/forgon/disinfectsystem/invoicemanager/service/TestPDAForeignProxyTousseGoodsInvoiceManager.java (.../TestPDAForeignProxyTousseGoodsInvoiceManager.java) (revision 13055) +++ ssts-web/src/test/java/test/forgon/disinfectsystem/invoicemanager/service/TestPDAForeignProxyTousseGoodsInvoiceManager.java (.../TestPDAForeignProxyTousseGoodsInvoiceManager.java) (revision 16743) @@ -15,6 +15,7 @@ import com.forgon.disinfectsystem.entity.assestmanagement.TousseStock; import com.forgon.disinfectsystem.entity.basedatamanager.toussedefinition.TousseDefinition; import com.forgon.disinfectsystem.entity.basedatamanager.toussedefinition.TousseInstance; +import com.forgon.disinfectsystem.entity.basedatamanager.warehouse.WareHouse; import com.forgon.disinfectsystem.entity.invoicemanager.Invoice; import com.forgon.disinfectsystem.entity.invoicemanager.InvoicePlan; import com.forgon.disinfectsystem.entity.sterilizationmanager.foreignproxydisinfection.ForeignProxyDisinfection; @@ -33,10 +34,12 @@ private String [] barcodeArray1 = {"201410170001","201410170002","201410170003"}; ForeignProxyDisinfection foreignProxyDisinfection = null; + /** - * 创建一张外部代理灭菌申请单,申请数量为3个test121#压力蒸汽灭菌包 + * 创建外部代理灭菌器械包实例 */ - private void createForeignProxyTousseGoodsApplication(){ + private void createForeignProxyTousseGoodsInstance(){ +// createSimpleTousseInstanceByParam(barcodeArray1, "test121#压力蒸汽灭菌包", TousseDefinition.PACKAGE_TYPE_FOREIGNPROXY, Constants.ORG_UNIT_NAME_OR, Constants.ORG_UNIT_CODE_OR, 6.00); foreignProxyDisinfection = new ForeignProxyDisinfection(); foreignProxyDisinfection.setApplicant("林倩"); foreignProxyDisinfection.setApplicationTime(new Date()); @@ -48,71 +51,147 @@ foreignProxyDisinfection.setSerialNumber("2014101700001"); foreignProxyDisinfection.setSettleAccountsDepart(Constants.ORG_UNIT_NAME_OR); foreignProxyDisinfection.setSettleAccountsDepartCoding(Constants.ORG_UNIT_CODE_OR); - objectDao.saveOrUpdate(foreignProxyDisinfection); - List foreignProxyItems = new ArrayList(); - ForeignProxyItem foreignProxyItem = new ForeignProxyItem(); - foreignProxyItem.setTousseName("test121#压力蒸汽灭菌包"); - foreignProxyItem.setInvoicePlanID(foreignProxyDisinfection.getId()); - foreignProxyItem.setPackageType("棉布"); - foreignProxyItem.setCount(3); - foreignProxyItem.setForeignProxyDisinfection(foreignProxyDisinfection); - objectDao.saveOrUpdate(foreignProxyItem); - for(String barcode : barcodeArray1){ - TousseInstance instance = tousseInstanceManager.getTousseInstanceByBarcode(barcode); - instance.setForeignProxyItem_id(foreignProxyItem.getId()); - objectDao.saveOrUpdate(instance); - } - List list = new ArrayList(); - for(String barcode : barcodeArray1){ - TousseInstance instance = tousseInstanceManager.getTousseInstanceByBarcode(barcode); - instance.setForeignProxyItem_id(foreignProxyItem.getId()); - TousseItem item = new TousseItem(); - item.setTousseName("test121#压力蒸汽灭菌包"); - item.setInvoicePlanID(foreignProxyDisinfection.getId()); - item.setAmount(1); - item.setDiposable("否"); - item.setInvoicePlan(foreignProxyDisinfection); - list.add(item); - tousseItemManager.saveOrUpdate(item); - } - foreignProxyItems.add(foreignProxyItem); - foreignProxyDisinfection.setForeignProxyItems(foreignProxyItems); - foreignProxyDisinfection.setApplicationItems(list); - foreignProxyDisinfectionManager.saveOrUpdate(foreignProxyDisinfection); + JSONObject params = new JSONObject(); + JSONArray itemInfoList = new JSONArray(); + JSONObject itemInfo = new JSONObject(); + + itemInfo.put("id", null); + itemInfo.put("packageType", "棉布"); + itemInfo.put("count", 3); + + itemInfo.put("tousseName", "test121#压力蒸汽灭菌包"); + itemInfo.put("tousseType", null); + itemInfo.put("sterilingType", "低温灭菌"); + itemInfo.put("sterileStartDate", null); + itemInfo.put("basketName", null); + itemInfo.put("basketBarcode", null); + itemInfoList.add(itemInfo); + params.put("itemInfoList", itemInfoList); + + params.put("applicationTimeStr", com.forgon.Constants.SIMPLEDATEFORMAT_YYYYMMDDHHMM.format(new Date())); + params.put("arrivedTimeStr", com.forgon.Constants.SIMPLEDATEFORMAT_YYYYMMDDHHMM.format(new Date())); + params.put("scheduleTimeStr", com.forgon.Constants.SIMPLEDATEFORMAT_YYYYMMDDHHMM.format(new Date())); + + foreignProxyDisinfectionManager.packForeignProxyDisinfection(foreignProxyDisinfection, params); } - - /** - * 创建外部代理灭菌器械包实例 - */ - private void createForeignProxyTousseGoodsInstance(){ - createSimpleTousseInstanceByParam(barcodeArray1, "test121#压力蒸汽灭菌包", TousseDefinition.PACKAGE_TYPE_FOREIGNPROXY, Constants.ORG_UNIT_NAME_OR, Constants.ORG_UNIT_CODE_OR, 6.00); - } /* * 测试外部代理灭菌器械包全部发货 */ @Test public void testSendAllForeignProxyTousseGoods(){ - map.clear(); - for(String barcode :barcodeArray1){ - map.put(barcode, 1); + + prepareData(); + + assertNotNull(foreignProxyDisinfection.getId()); + List tousseList = foreignProxyDisinfection.getTousseInstanceList(objectDao); + assertNotNull(tousseList); + assertEquals(tousseList.size(), 3); + // 设置为已灭菌状态 + for (TousseInstance tousseInstance : tousseList) { + tousseInstance.setStatus(TousseInstance.STATUS_STERILED); } - map.put("departCode", Constants.ORG_UNIT_CODE_OR); - String jsonStr = createSendOutParam(map); - SendForeignProxyTousseGoods(jsonStr, testAll); + //运行前对全局变量清空,以防止影响下一个用例的运行结果 + WareHouse wareHouse_CSSD = wareHouseManager.getDefaultWareHouseByUnitCode(Constants.ORG_UNIT_CODE_CSSD); + assertNotNull(wareHouse_CSSD); + JSONObject params = new JSONObject(); + JSONArray invoiceItems1 = new JSONArray(); + + for(TousseInstance tousseInstance :tousseList){ + JSONObject invoiceItems1_1 = new JSONObject(); + invoiceItems1_1.put("barcode", tousseInstance.getBarcode()); + invoiceItems1_1.put("sendAmount", 1); + invoiceItems1_1.put("isRoutine", TousseInstance.ROUTINE_YES); + invoiceItems1.add(invoiceItems1_1); + } + params.put("mode", "depart"); + params.put("departCode", Constants.ORG_UNIT_CODE_OR); + params.put("assistantSender", "朱广兴"); + params.put("sender", "朱广兴"); + params.put("invoiceItems", invoiceItems1); + params.put("sourceWarehouseId", wareHouse_CSSD.getId()); + params.put("sourceWarehouseName", wareHouse_CSSD.getName()); + + webServiceManager.submitInvoicePlans(params.toString()); + //发货单 + Invoice invoice = (Invoice)objectDao.getByProperty(Invoice.class.getSimpleName(), "invoicePlan.serialNumber", foreignProxyDisinfection.getSerialNumber()); + assertNotNull(invoice); + + //全部发货 + //断言发货单关联的包实例为3个 + List tousseInstanceList = invoice.getTousseInstances(objectDao); + assertNotNull(tousseInstanceList); + assertEquals(tousseInstanceList.size(), 3); + for (TousseInstance tousseInstance : tousseInstanceList) { + //断言发货状态为已发货 + assertEquals(TousseInstance.STATUS_SHIPPED , tousseInstance.getStatus()); + } + + //断言申请单状态为已发货 + assertEquals(InvoicePlan.DELIVERSTATUS_DELIVERED , invoice.getInvoicePlan().getDeliverStatus()); + + //断言发货单金额 TODO } /* * 测试外部代理灭菌器械包部分发货 */ @Test public void testSendPartForeignProxyTousseGoods(){ - map.clear(); - map.put("201410170001", 1); - map.put("201410170002", 1); - map.put("departCode", Constants.ORG_UNIT_CODE_OR); - String jsonStr = createSendOutParam(map); - SendForeignProxyTousseGoods(jsonStr, testPart); + + prepareData(); + + assertNotNull(foreignProxyDisinfection.getId()); + List tousseList = foreignProxyDisinfection.getTousseInstanceList(objectDao); + assertNotNull(tousseList); + assertEquals(tousseList.size(), 3); + // 设置为已灭菌状态 + for (TousseInstance tousseInstance : tousseList) { + tousseInstance.setStatus(TousseInstance.STATUS_STERILED); + } + //运行前对全局变量清空,以防止影响下一个用例的运行结果 + WareHouse wareHouse_CSSD = wareHouseManager.getDefaultWareHouseByUnitCode(Constants.ORG_UNIT_CODE_CSSD); + assertNotNull(wareHouse_CSSD); + JSONObject params = new JSONObject(); + JSONArray invoiceItems1 = new JSONArray(); + + List invoiceTousseList = new ArrayList(2); + invoiceTousseList.add(tousseList.get(0)); + invoiceTousseList.add(tousseList.get(1)); + for(TousseInstance tousseInstance :invoiceTousseList){ + JSONObject invoiceItems1_1 = new JSONObject(); + invoiceItems1_1.put("barcode", tousseInstance.getBarcode()); + invoiceItems1_1.put("sendAmount", 1); + invoiceItems1_1.put("isRoutine", TousseInstance.ROUTINE_YES); + invoiceItems1.add(invoiceItems1_1); + } + params.put("mode", "depart"); + params.put("departCode", Constants.ORG_UNIT_CODE_OR); + params.put("assistantSender", "朱广兴"); + params.put("sender", "朱广兴"); + params.put("invoiceItems", invoiceItems1); + params.put("sourceWarehouseId", wareHouse_CSSD.getId()); + params.put("sourceWarehouseName", wareHouse_CSSD.getName()); + + webServiceManager.submitInvoicePlans(params.toString()); + //发货单 + Invoice invoice = (Invoice)objectDao.getByProperty(Invoice.class.getSimpleName(), "invoicePlan.serialNumber", foreignProxyDisinfection.getSerialNumber()); + assertNotNull(invoice); + + //全部发货 + //断言发货单关联的包实例为2个 + List tousseInstanceList = invoice.getTousseInstances(objectDao); + assertNotNull(tousseInstanceList); + assertEquals(tousseInstanceList.size(), 2); + for (TousseInstance tousseInstance : tousseInstanceList) { + // 断言发货状态为已发货 + assertEquals(TousseInstance.STATUS_SHIPPED , tousseInstance.getStatus()); + } + + // 断言申请单状态为部分发货 + assertEquals(InvoicePlan.DELIVERSTATUS_PARTDELIVERED , invoice.getInvoicePlan().getDeliverStatus()); + + //断言发货单金额 TODO } public void SendForeignProxyTousseGoods(String jsonStr, String type){ @@ -177,8 +256,6 @@ initBasicData(); //创建消毒物品器械包并增加库存 createForeignProxyTousseGoodsInstance(); - //创建消毒物品申请单 - createForeignProxyTousseGoodsApplication(); } }