Index: ssts-web/src/test/java/test/forgon/disinfectsystem/invoicemanager/service/TestPDAReturnGoodReInvoiceManager.java =================================================================== diff -u -r15035 -r16755 --- ssts-web/src/test/java/test/forgon/disinfectsystem/invoicemanager/service/TestPDAReturnGoodReInvoiceManager.java (.../TestPDAReturnGoodReInvoiceManager.java) (revision 15035) +++ ssts-web/src/test/java/test/forgon/disinfectsystem/invoicemanager/service/TestPDAReturnGoodReInvoiceManager.java (.../TestPDAReturnGoodReInvoiceManager.java) (revision 16755) @@ -5,18 +5,23 @@ import java.math.BigDecimal; import java.math.RoundingMode; import java.text.ParseException; +import java.text.SimpleDateFormat; import java.util.ArrayList; import java.util.Date; import java.util.HashMap; import java.util.List; import java.util.Map; +import net.sf.json.JSONArray; +import net.sf.json.JSONObject; + import org.testng.annotations.Test; import test.forgon.constant.Constants; import test.forgon.disinfectsystem.AbstractCSSDTest; import com.forgon.directory.model.BarcodeDevice; +import com.forgon.disinfectsystem.entity.assestmanagement.DisposableGoods; import com.forgon.disinfectsystem.entity.assestmanagement.DisposableGoodsBatchStock; import com.forgon.disinfectsystem.entity.assestmanagement.TousseStock; import com.forgon.disinfectsystem.entity.basedatamanager.toussedefinition.TousseDefinition; @@ -28,6 +33,7 @@ import com.forgon.disinfectsystem.entity.recyclingapplication.RecyclingApplication; import com.forgon.disinfectsystem.entity.returngoodsrecord.ReturnGoodsItem; import com.forgon.disinfectsystem.entity.returngoodsrecord.ReturnGoodsRecord; +import com.forgon.disinfectsystem.entity.tousseitem.TousseItem; /** * PDA端退货重发测试用例 * @author LiuJie @@ -47,32 +53,62 @@ private void createTousseApplication(){ Map appMap = new HashMap(); appMap.put("Test开胸包", 3); - createSimpleTousseOrDiposableGoodsApplicationByParam("2014102100001", InvoicePlan.TYPE_TOUSSE_APPLICATION_FORM, "外六科护士站18B", "3266", new Date(), appMap); -// RecyclingApplication application1 = new RecyclingApplication(); -// application1.setSerialNumber("2014102100001"); -// application1.setApplicant("吴启华"); -// application1.setDepartCoding("3266"); -// application1.setDepart("外六科护士站18B"); -// application1.setDeliverStatus(InvoicePlan.DELIVERSTATUS_AWAITDELIVER); -// application1.setType(InvoicePlan.TYPE_TOUSSE_APPLICATION_FORM); -// List list = new ArrayList(); -// TousseItem item1 = new TousseItem(); -// item1.setTousseName("Test开胸包"); -// item1.setAmount(3); -// item1.setDiposable("否"); -// item1.setInvoicePlan(application1); -// list.add(item1); -// tousseItemManager.saveOrUpdate(item1); -// application1.setApplicationItems(list); -// objectDao.saveOrUpdate(application1); + TousseDefinition tousseDefinition_Test开胸包 = tousseDefinitionManager.getTousseDefinitionByName("Test开胸包"); +// createSimpleTousseOrDiposableGoodsApplicationByParam("2014102100001", InvoicePlan.TYPE_TOUSSE_APPLICATION_FORM, "外六科护士站18B", "3266", new Date(), appMap); + RecyclingApplication application1 = new RecyclingApplication(); + application1.setSerialNumber("2014102100001"); + application1.setApplicant("吴启华"); + application1.setDepartCoding("3266"); + application1.setDepart("外六科护士站18B"); + application1.setHandleDepart(Constants.ORG_UNIT_NAME_CSSD); + application1.setHandleDepartCoding(Constants.ORG_UNIT_CODE_CSSD); + application1.setDeliverStatus(InvoicePlan.DELIVERSTATUS_AWAITDELIVER); + application1.setType(InvoicePlan.TYPE_TOUSSE_APPLICATION_FORM); + List list = new ArrayList(); + TousseItem item1 = new TousseItem(); + item1.setTousseName(tousseDefinition_Test开胸包.getName()); + item1.setTousseDefinitionId(tousseDefinition_Test开胸包.getId()); + item1.setAmount(3); + item1.setDiposable("否"); + item1.setInvoicePlan(application1); + list.add(item1); + tousseItemManager.saveOrUpdate(item1); + application1.setApplicationItems(list); + objectDao.saveOrUpdate(application1); } /** * 创建器械包实例,并增加一级库存 * @throws ParseException */ private void createTousseInstanceAndUpdateStock(){ - createSimpleTousseInstanceByParam(barcodeArray1, "Test开胸包", BarcodeDevice.BARCODE_TYPE_PACKAGE, Constants.ORG_UNIT_NAME_DISINFECT, Constants.ORG_UNIT_CODE_DISINFECT, 3.14); +// createSimpleTousseInstanceByParam(barcodeArray1, "Test开胸包", BarcodeDevice.BARCODE_TYPE_PACKAGE, Constants.ORG_UNIT_NAME_DISINFECT, Constants.ORG_UNIT_CODE_DISINFECT, 3.14); + // 器械包 + TousseDefinition tousseDefinition1 = tousseDefinitionManager.getTousseDefinitionByName("Test开胸包"); + for (String barcode : barcodeArray1) { + TousseInstance tousseInstance1 = new TousseInstance(); + tousseInstance1.setTousseDefinition(tousseDefinition1); + tousseInstance1.setTousseName("Test开胸包"); + tousseInstance1.setBarcode(barcode); + tousseInstance1.setType(BarcodeDevice.BARCODE_TYPE_PACKAGE); + tousseInstance1.setStatus(TousseInstance.STATUS_STERILED); + tousseInstance1.setPrice(3.14); + tousseInstance1.setFluctuationPrice(3.14); + tousseInstance1.setSterilingType("P1"); + tousseInstance1.setOrgUnitCoding(Constants.ORG_UNIT_CODE_DISINFECT); + tousseInstance1.setOrgUnitName(Constants.ORG_UNIT_NAME_DISINFECT); + tousseInstance1.setStatisticsAmount(1); + Date date = null; + try { + date = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss").parse("2030-10-20 13:00:00"); + } catch (ParseException e) { + e.printStackTrace(); + } + tousseInstance1.setValidUntil(date); + tousseInstanceManager.setToDefaultWareHouse(tousseInstance1, Constants.ORG_UNIT_CODE_OR); + tousseInstanceManager.saveOrUpdate(tousseInstance1); + tousseStockManager.increaseStockByTousseName(tousseInstance1.getTousseName()); + } } private void prepareData(String type){ @@ -100,16 +136,45 @@ private void createDiposableGoodsApplication() { Map appMap = new HashMap(); appMap.put("test10ml注射器[小号]", 700); - createSimpleTousseOrDiposableGoodsApplicationByParam("2014102100001", InvoicePlan.TYPE_DIPOSABLE_GOODS_APPLICATION_FORM, "外六科护士站18B", "3266", new Date(), appMap); +// createSimpleTousseOrDiposableGoodsApplicationByParam("2014102100001", InvoicePlan.TYPE_DIPOSABLE_GOODS_APPLICATION_FORM, "外六科护士站18B", "3266", new Date(), appMap); + DisposableGoods disposableGoods = diposableGoodsManager.getDisposableGoodsByName("test10ml注射器", "小号"); + + RecyclingApplication application = new RecyclingApplication(); + application.setSerialNumber("2014102100001"); + application.setApplicant("吴启华"); + application.setDepartCoding("3266"); + application.setDepart("外六科护士站18B"); + application.setSettleAccountsDepartCoding("3266"); + application.setSettleAccountsDepart("外六科护士站18B"); + application.setHandleDepart(Constants.ORG_UNIT_NAME_CSSD); + application.setHandleDepartCoding(Constants.ORG_UNIT_CODE_CSSD); + application.setApplicationTime(new Date()); + application.setCommittedStatus(true); + application.setDeliverStatus(InvoicePlan.DELIVERSTATUS_AWAITDELIVER); + application.setType(InvoicePlan.TYPE_DIPOSABLE_GOODS_APPLICATION_FORM); + List items = new ArrayList(); + TousseItem item = new TousseItem(); + item.setTousseName(disposableGoods.getShowName()); + item.setDisposableGoodsId(disposableGoods.getId()); + item.setAmount(700); + + //item.setTousseType(tousseType); + item.setDiposable("是"); + item.setTousseType(TousseItem.TYPE_DIPOSABLE_GOODS); + item.setInvoicePlan(application); + items.add(item); + tousseItemManager.saveOrUpdate(item); + application.setApplicationItems(items); + objectDao.saveOrUpdate(application); } /** * 生成退货重发申请单 * @throws Exception */ private void createReturnGoodsApplication(String type) throws Exception{ - WareHouse wareHouse1 = wareHouseManager.getDefaultWareHouseByUnitCode(Constants.ORG_UNIT_CODE_CSSD); - assertNotNull(wareHouse1); + WareHouse wareHouse_CSSD = wareHouseManager.getDefaultWareHouseByUnitCode(Constants.ORG_UNIT_CODE_CSSD); + assertNotNull(wareHouse_CSSD); if(type.equals(testTousse)){ TousseDefinition tousseDefinition = tousseDefinitionManager.getTousseDefinitionByName("Test开胸包"); ReturnGoodsRecord returnGoodsRecord = new ReturnGoodsRecord(); @@ -139,10 +204,13 @@ returnGoodsRecordManager.checkAndSaveForReturnTousse(returnGoodsRecord); assertNotNull(returnGoodsRecord.getRecyclingApplicationId()); }else if(type.equals(testDiposableGoods)){ - DisposableGoodsBatchStock disposableGoodsBatchStock = diposableGoodBatchStockManager.getByBarcode("201410150001",wareHouse1.getId().toString()); + DisposableGoods disposableGoods = diposableGoodsManager.getDisposableGoodsByName("test10ml注射器", "小号"); + DisposableGoodsBatchStock disposableGoodsBatchStock = diposableGoodBatchStockManager.getByBarcode("201410150001",wareHouse_CSSD.getId().toString()); ReturnGoodsRecord returnGoodsRecord = new ReturnGoodsRecord(); returnGoodsRecord.setDepart("外六科护士站18B"); returnGoodsRecord.setDepartCoding("3266"); + returnGoodsRecord.setWarehouseID(wareHouse_CSSD.getId()); + returnGoodsRecord.setWarehouseName(wareHouse_CSSD.getName()); returnGoodsRecord.setOperator("朱广兴"); returnGoodsRecord.setReturnOfPeople("朱广兴"); returnGoodsRecord.setReturnTime(new Date()); @@ -158,7 +226,9 @@ returnGoodsItem.setTousseName(disposableGoodsBatchStock.getDiposableGoods().getName()); returnGoodsItem.setBatchNumber(disposableGoodsBatchStock.getBatchNumber()); returnGoodsItem.setDisposableGoodsBatchStockID(disposableGoodsBatchStock.getId()); - returnGoodsItem.setDisposableGoodsID(disposableGoodsBatchStock.getDiposableGoods().getId()); + returnGoodsItem.setDisposableGoodsID(disposableGoodsBatchStock.getDisposableGoodsId()); + returnGoodsItem.setDisposableGoodsBatchID(disposableGoodsBatchStock.getDisposableGoodsBatchId()); + returnGoodsItem.setDisposableGoodsStockID(disposableGoodsBatchStock.getDiposableGoods().getId()); returnGoodsItem.setBarcode(disposableGoodsBatchStock.getBarcode()); List items = new ArrayList(); items.add(returnGoodsItem); @@ -172,14 +242,32 @@ */ @Test public void testReturnTousseGoods() throws Exception{ - //运行前对全局变量清空,以防止影响下一个用例的运行结果 - map.clear(); - for(String barcode :barcodeArray1){ - map.put(barcode, 1); + + prepareData(testTousse); + WareHouse wareHouse_CSSD = wareHouseManager.getDefaultWareHouseByUnitCode(Constants.ORG_UNIT_CODE_CSSD); + assertNotNull(wareHouse_CSSD); + + JSONObject params = new JSONObject(); + JSONArray invoiceItems1 = new JSONArray(); + + //发普通器械包 + for(String barcode : barcodeArray1){ + JSONObject invoiceItems1_1 = new JSONObject(); + invoiceItems1_1.put("barcode", barcode); + invoiceItems1_1.put("sendAmount", 1); + invoiceItems1_1.put("isRoutine", TousseInstance.ROUTINE_YES); + invoiceItems1.add(invoiceItems1_1); } - map.put("departCode", "3266"); - String jsonStr = createSendOutParam(map); - sendOutGoods(jsonStr , testTousse); + + params.put("mode", "depart"); + params.put("departCode", "3266"); + params.put("assistantSender", "朱广兴"); + params.put("sender", "朱广兴"); + params.put("invoiceItems", invoiceItems1); + params.put("sourceWarehouseId", wareHouse_CSSD.getId()); + params.put("sourceWarehouseName", wareHouse_CSSD.getName()); + + sendOutGoods(params.toString() , testTousse); } /** @@ -188,51 +276,43 @@ */ @Test public void testReturnDiposableGoods() throws Exception{ - //运行前对全局变量清空,以防止影响下一个用例的运行结果 - map.clear(); - map.put("201410150001", 700); - map.put("departCode", "3266"); - String jsonStr = createSendOutParam(map); - sendOutGoods(jsonStr , testDiposableGoods); + prepareData(testDiposableGoods); + WareHouse wareHouse_CSSD = wareHouseManager.getDefaultWareHouseByUnitCode(Constants.ORG_UNIT_CODE_CSSD); + assertNotNull(wareHouse_CSSD); + JSONObject params = new JSONObject(); + JSONArray invoiceItems1 = new JSONArray(); + + String barcode = "201410150001"; + JSONObject invoiceItems1_1 = buildDisposableGoodsInvoiceItem(wareHouse_CSSD, + barcode,700); + invoiceItems1.add(invoiceItems1_1); + + params.put("mode", "depart"); + params.put("departCode", "3266"); + params.put("assistantSender", "朱广兴"); + params.put("sender", "朱广兴"); + params.put("invoiceItems", invoiceItems1); + params.put("sourceWarehouseId", wareHouse_CSSD.getId()); + params.put("sourceWarehouseName", wareHouse_CSSD.getName()); + + sendOutGoods(params.toString() , testDiposableGoods); + } private void sendOutGoods(String jsonStr, String type) throws Exception{ - prepareData(type); WareHouse wareHouse1 = wareHouseManager.getDefaultWareHouseByUnitCode(Constants.ORG_UNIT_CODE_CSSD); assertNotNull(wareHouse1); //器械包浮动价格 double tousseFluctionPrice = supplyRoomConfigManager.getTousseFluctuationPercent(); //一次性物品浮动价格 double diposableGoodsFluctionPrice = supplyRoomConfigManager.getDisposableGoodsFluctuationPercent(); - //发货前的器械包二级库存 - DepartmentStock departmentStock = departmentStockManager.getByDepartCodingAndTousseName("3266", "Test开胸包"); - int departmentStockBeforeInvoice = 0; - if(departmentStock != null){ - departmentStockBeforeInvoice = departmentStock.getAmount(); - } - //发货前的库存量 - TousseStock stock_beforeInvoce = tousseStockManager.getTousseStockByTousseName("Test开胸包"); - int stockBeforeInvoice = 0; - if(stock_beforeInvoce != null){ - stockBeforeInvoice = stock_beforeInvoce.getTousseAmount(); - assertEquals(3,stockBeforeInvoice); - } webServiceManager.submitInvoicePlans(jsonStr); //器械包发货单 Invoice invoice = (Invoice)objectDao.getByProperty(Invoice.class.getSimpleName(), "invoicePlan.serialNumber", "2014102100001"); - //发货后的库存量 - TousseStock stock_afterInvoice = tousseStockManager.getTousseStockByTousseName("Test开胸包"); - if(stock_afterInvoice != null){ - objectDao.getHibernateSession().refresh(stock_afterInvoice); - } - - //发货后的部门二级库存量 - DepartmentStock departmentStock2 = departmentStockManager.getByDepartCodingAndTousseName("3266", "Test开胸包"); - if(type.equals(testTousse)){ //器械包退货重发 //断言发货单关联的包实例为3个 @@ -243,21 +323,12 @@ TousseInstance tousseInstance = tousseInstanceManager.getTousseInstanceByBarcode(barcode); assertEquals(tousseInstance.getStatus(), TousseInstance.STATUS_SHIPPED); } - //断言发货后的库存量与发货前的库存量相同 - if(stock_afterInvoice !=null){ - assertEquals(0,stock_afterInvoice.getTousseAmount().intValue()); - assertEquals(3 , stockBeforeInvoice - stock_afterInvoice.getTousseAmount().intValue()); - } //断言申请单状态为已发货 assertEquals(InvoicePlan.DELIVERSTATUS_DELIVERED , invoice.getInvoicePlan().getDeliverStatus()); //断言发货单金额 assertEquals( 3.14*3 *tousseFluctionPrice , invoice.getTotalPrice()); - //断言发货后的二级库存量与发货前的二级库存量多3个 - if(departmentStock2 != null){ - assertEquals(3 , departmentStock2.getAmount().intValue()-departmentStockBeforeInvoice); - } //创建器械包的退货记录 createReturnGoodsApplication(testTousse); //退货后断言器械包状态为已灭菌 Index: ssts-web/src/test/java/test/forgon/disinfectsystem/invoicemanager/service/TestPDADiposableGoodsInvoiceManager.java =================================================================== diff -u -r16751 -r16755 --- ssts-web/src/test/java/test/forgon/disinfectsystem/invoicemanager/service/TestPDADiposableGoodsInvoiceManager.java (.../TestPDADiposableGoodsInvoiceManager.java) (revision 16751) +++ ssts-web/src/test/java/test/forgon/disinfectsystem/invoicemanager/service/TestPDADiposableGoodsInvoiceManager.java (.../TestPDADiposableGoodsInvoiceManager.java) (revision 16755) @@ -177,31 +177,8 @@ sendDiposableGoodsForPDA(params.toString(),testPart); } + /** - * @param wareHouse_CSSD - * @param barcode - * @return - */ - private JSONObject buildDisposableGoodsInvoiceItem(WareHouse wareHouse_CSSD, - String barcode,Integer amount) { - JSONObject invoiceItems1_1 = new JSONObject(); - invoiceItems1_1.put("barcode", barcode); - invoiceItems1_1.put("tousseType", DisposableGoods.TYPE_NAME); - - JSONObject typeInfoOnScanned = new JSONObject(); - - DisposableGoodsBatchStock disposableGoodsBatchStock = diposableGoodsManager.getByWarehouseIDAndBarcode(wareHouse_CSSD.getId(), barcode); - /// - typeInfoOnScanned.put("disposableGoodsId", disposableGoodsBatchStock.getDisposableGoodsId()); - typeInfoOnScanned.put("disposableGoodsStockId", disposableGoodsBatchStock.getDisposableGoodsStockId()); - typeInfoOnScanned.put("disposableGoodsBatchId", disposableGoodsBatchStock.getDisposableGoodsBatchId()); - typeInfoOnScanned.put("disposableGoodsBatchStockId", disposableGoodsBatchStock.getId()); - invoiceItems1_1.put("sendAmount", amount); - invoiceItems1_1.put("isRoutine", TousseInstance.ROUTINE_YES); - invoiceItems1_1.put("typeInfoOnScanned", typeInfoOnScanned); - return invoiceItems1_1; - } - /** * 测试一次性物品库存不足发货 * 201410150003 对应的批次库存为0 ,发货 */ Index: ssts-web/src/test/java/test/forgon/disinfectsystem/AbstractCSSDTest.java =================================================================== diff -u -r16752 -r16755 --- ssts-web/src/test/java/test/forgon/disinfectsystem/AbstractCSSDTest.java (.../AbstractCSSDTest.java) (revision 16752) +++ ssts-web/src/test/java/test/forgon/disinfectsystem/AbstractCSSDTest.java (.../AbstractCSSDTest.java) (revision 16755) @@ -2642,7 +2642,32 @@ e.printStackTrace(); } } + /** + * @param wareHouse_CSSD + * @param barcode + * @return + */ + public JSONObject buildDisposableGoodsInvoiceItem(WareHouse wareHouse_CSSD, + String barcode,Integer amount) { + JSONObject invoiceItems1_1 = new JSONObject(); + invoiceItems1_1.put("barcode", barcode); + invoiceItems1_1.put("tousseType", DisposableGoods.TYPE_NAME); + + JSONObject typeInfoOnScanned = new JSONObject(); + + DisposableGoodsBatchStock disposableGoodsBatchStock = diposableGoodsManager.getByWarehouseIDAndBarcode(wareHouse_CSSD.getId(), barcode); + /// + typeInfoOnScanned.put("disposableGoodsId", disposableGoodsBatchStock.getDisposableGoodsId()); + typeInfoOnScanned.put("disposableGoodsStockId", disposableGoodsBatchStock.getDisposableGoodsStockId()); + typeInfoOnScanned.put("disposableGoodsBatchId", disposableGoodsBatchStock.getDisposableGoodsBatchId()); + typeInfoOnScanned.put("disposableGoodsBatchStockId", disposableGoodsBatchStock.getId()); + invoiceItems1_1.put("sendAmount", amount); + invoiceItems1_1.put("isRoutine", TousseInstance.ROUTINE_YES); + invoiceItems1_1.put("typeInfoOnScanned", typeInfoOnScanned); + return invoiceItems1_1; + } + /** * 默认回滚数据 */ // @Override