Index: ssts-web/src/test/java/test/forgon/disinfectsystem/invoicemanager/service/TestPDADisinfectGoodsInvoiceManager.java =================================================================== diff -u -r15035 -r16709 --- ssts-web/src/test/java/test/forgon/disinfectsystem/invoicemanager/service/TestPDADisinfectGoodsInvoiceManager.java (.../TestPDADisinfectGoodsInvoiceManager.java) (revision 15035) +++ ssts-web/src/test/java/test/forgon/disinfectsystem/invoicemanager/service/TestPDADisinfectGoodsInvoiceManager.java (.../TestPDADisinfectGoodsInvoiceManager.java) (revision 16709) @@ -5,13 +5,19 @@ import java.util.HashMap; 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.disinfectsystem.entity.assestmanagement.DisposableGoods; +import com.forgon.disinfectsystem.entity.assestmanagement.DisposableGoodsBatchStock; 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; @@ -56,14 +62,53 @@ @Test public void testSendAllDisifectGoods(){ + prepareData(); + /// + 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 = new JSONObject(); + invoiceItems1_1.put("barcode", barcode); + invoiceItems1_1.put("sendAmount", 1); + invoiceItems1_1.put("isRoutine", TousseInstance.ROUTINE_YES); + + 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()); +// if(StringUtils.equals(tousseType,DisposableGoods.TYPE_EXPENSIVEDIPOSABLEGOODS)){ +// typeInfoOnScanned.put("expensiveDisposablegoodsId", null); +// } + invoiceItems1_1.put("sendAmount", 500); + invoiceItems1_1.put("isRoutine", TousseInstance.ROUTINE_YES); + invoiceItems1_1.put("typeInfoOnScanned", typeInfoOnScanned); + invoiceItems1.add(invoiceItems1_1); + } +// map.put("201410150001" , 500);//一次性物品发500个 + + 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()); + /// map.put("201410160001", 3); map.put("departCode", "3266"); String jsonStr = createSendOutParam(map); - SendDisifectGoods(jsonStr, testAll); - } - - public void SendDisifectGoods(String jsonStr, String type){ - prepareData(); +// SendDisifectGoods(jsonStr, testAll); //浮动价格 double tousseFluctionPrice = supplyRoomConfigManager.getTousseFluctuationPercent(); @@ -72,24 +117,24 @@ //发货单 Invoice invoice = (Invoice)objectDao.getByProperty(Invoice.class.getSimpleName(), "invoicePlan.serialNumber", "2014101600001"); - if(type.equals(testAll)){ - //全部发货 - - //断言发货单关联的包实例为3个 - assertEquals(1 , invoice.getTousseInstances(objectDao).size()); - - TousseInstance instance = tousseInstanceManager.getTousseInstanceByBarcode(barcodeArray1[0]); - //断言发货状态为已发货 - assertEquals(TousseInstance.STATUS_SHIPPED , instance.getStatus()); - - //断言申请单状态为部分发货(因为申请项为三个不同条码的物品,而发货只发其中一个条码) - assertEquals(InvoicePlan.DELIVERSTATUS_PARTDELIVERED , invoice.getInvoicePlan().getDeliverStatus()); - - //断言发货单金额 - assertEquals( 3.5 *tousseFluctionPrice , invoice.getTotalPrice()); - } + //全部发货 + //断言发货单关联的包实例为3个 + assertEquals(1 , invoice.getTousseInstances(objectDao).size()); + + TousseInstance instance = tousseInstanceManager.getTousseInstanceByBarcode(barcodeArray1[0]); + //断言发货状态为已发货 + assertEquals(TousseInstance.STATUS_SHIPPED , instance.getStatus()); + + //断言申请单状态为部分发货(因为申请项为三个不同条码的物品,而发货只发其中一个条码) + assertEquals(InvoicePlan.DELIVERSTATUS_PARTDELIVERED , invoice.getInvoicePlan().getDeliverStatus()); + + //断言发货单金额 + assertEquals( 3.5 *tousseFluctionPrice , invoice.getTotalPrice()); + + } + private void prepareData(){ initCSSDData(); makeActiveUser("admin"); Index: ssts-web/src/test/java/test/forgon/disinfectsystem/invoicemanager/service/TestPDATousseInvoiceManager.java =================================================================== diff -u -r15035 -r16709 --- ssts-web/src/test/java/test/forgon/disinfectsystem/invoicemanager/service/TestPDATousseInvoiceManager.java (.../TestPDATousseInvoiceManager.java) (revision 15035) +++ ssts-web/src/test/java/test/forgon/disinfectsystem/invoicemanager/service/TestPDATousseInvoiceManager.java (.../TestPDATousseInvoiceManager.java) (revision 16709) @@ -13,8 +13,11 @@ 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.TousseInstance; +import com.forgon.disinfectsystem.entity.basedatamanager.warehouse.WareHouse; import com.forgon.disinfectsystem.entity.departmentstock.DepartmentStock; import com.forgon.disinfectsystem.entity.invoicemanager.Invoice; import com.forgon.disinfectsystem.entity.invoicemanager.InvoicePlan; @@ -152,13 +155,86 @@ */ @Test public void testSendOutPartlyTousseForPDA(){ + + prepareData(); //运行前对全局变量清空,以防止影响下一个用例的运行结果 - map.clear(); - map.put("201410260001", 1); - map.put("201410260002", 1); - map.put("departCode", "3266"); - String jsonStr = createSendOutParam(map); - sendOutTousseAssertment(jsonStr, testPart); + WareHouse wareHouse_CSSD = wareHouseManager.getDefaultWareHouseByUnitCode(Constants.ORG_UNIT_CODE_CSSD); + assertNotNull(wareHouse_CSSD); + JSONObject params = new JSONObject(); + JSONArray invoiceItems1 = new JSONArray(); + + JSONObject invoiceItems1_1 = new JSONObject(); + invoiceItems1_1.put("barcode", "201410260001"); + invoiceItems1_1.put("sendAmount", 1); + invoiceItems1_1.put("isRoutine", TousseInstance.ROUTINE_YES); + invoiceItems1.add(invoiceItems1_1); + + JSONObject invoiceItems1_2 = new JSONObject(); + invoiceItems1_2.put("barcode", "201410260002"); + invoiceItems1_2.put("sendAmount", 1); + invoiceItems1_2.put("isRoutine", TousseInstance.ROUTINE_YES); + invoiceItems1.add(invoiceItems1_2); + + 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()); + + //浮动价格 + double tousseFluctionPrice = supplyRoomConfigManager.getTousseFluctuationPercent(); + //发货前的器械包二级库存 + 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(params.toString()); + + //发货单 + Invoice invoice = (Invoice)objectDao.getByProperty(Invoice.class.getSimpleName(), "invoicePlan.serialNumber", "2014021100001"); + assertNotNull(invoice); + //发货后的库存量 + TousseStock stock_afterInvoice = tousseStockManager.getTousseStockByTousseName("Test开胸包"); + objectDao.getHibernateSession().refresh(stock_afterInvoice); + //发货后的部门二级库存量 + DepartmentStock departmentStock2 = departmentStockManager.getByDepartCodingAndTousseName("3266", "Test开胸包"); + + + //部分发货 + //发货单关联的包实例是否正确 + assertEquals(2 , invoice.getTousseInstances(objectDao).size()); + + JSONArray jsonArray = params.getJSONArray("invoiceItems"); + for(int i =0 ;i itemList1 = new ArrayList(); TousseItem item1 = new TousseItem(); item1.setTousseName("Test开胸包"); @@ -57,6 +66,7 @@ item1.setTousseType(TousseDefinition.PACKAGE_TYPE_INSIDE); item1.setDiposable("否"); item1.setInvoicePlan(application1); + item1.setTousseDefinitionId(td.getId()); itemList1.add(item1); application1.setApplicationItems(itemList1); objectDao.saveOrUpdate(application1); @@ -79,6 +89,8 @@ application2.setRecyclingStatus(recyclingStatusArray[1]); application2.setDeliverStatus(InvoicePlan.DELIVERSTATUS_AWAITDELIVER); application2.setType(InvoicePlan.TYPE_COMBO_FORM); + application2.setHandleDepart(Constants.ORG_UNIT_NAME_CSSD); + application2.setHandleDepartCoding(Constants.ORG_UNIT_CODE_CSSD); List itemsList2 = new ArrayList(); TousseItem item2 = new TousseItem(); item2.setTousseName("Test开胸包"); @@ -87,6 +99,7 @@ item2.setTousseType(TousseDefinition.PACKAGE_TYPE_INSIDE); item2.setDiposable("否"); item2.setInvoicePlan(application2); + item2.setTousseDefinitionId(td.getId()); itemsList2.add(item2); application2.setApplicationItems(itemsList2); objectDao.saveOrUpdate(application2); @@ -109,6 +122,8 @@ application3.setRecyclingStatus(recyclingStatusArray[2]); application3.setDeliverStatus(InvoicePlan.DELIVERSTATUS_AWAITDELIVER); application3.setType(InvoicePlan.TYPE_COMBO_FORM); + application3.setHandleDepart(Constants.ORG_UNIT_NAME_CSSD); + application3.setHandleDepartCoding(Constants.ORG_UNIT_CODE_CSSD); List itemsList3 = new ArrayList(); TousseItem item3 = new TousseItem(); item3.setTousseName("Test开胸包"); @@ -117,6 +132,7 @@ item3.setTousseType(TousseDefinition.PACKAGE_TYPE_INSIDE); item3.setDiposable("否"); item3.setInvoicePlan(application3); + item3.setTousseDefinitionId(td.getId()); itemsList3.add(item3); application3.setApplicationItems(itemsList3); objectDao.saveOrUpdate(application3); @@ -167,8 +183,38 @@ Integer[] recyclingAmountArray = {2,null,null}; createInvoicePlan(recyclingStatus,recyclingAmountArray); createTousseInstance(); - String jsonParam = "{departCode:'3266',sender:'张华',invoiceItems:[{barcode:'020000100',sendAmount:1},{barcode:'020000200',sendAmount:1},{barcode:'020000300',sendAmount:1}]}"; - webServiceManager.submitInvoicePlans(jsonParam); + /// + WareHouse wareHouse_CSSD = wareHouseManager.getDefaultWareHouseByUnitCode(Constants.ORG_UNIT_CODE_CSSD); + assertNotNull(wareHouse_CSSD); + JSONObject params = new JSONObject(); + JSONArray invoiceItems1 = new JSONArray(); + JSONObject invoiceItems1_1 = new JSONObject(); + invoiceItems1_1.put("barcode", "020000100"); + invoiceItems1_1.put("sendAmount", 1); + invoiceItems1_1.put("isRoutine", TousseInstance.ROUTINE_YES); + invoiceItems1.add(invoiceItems1_1); + JSONObject invoiceItems1_2 = new JSONObject(); + invoiceItems1_2.put("barcode", "020000200"); + invoiceItems1_2.put("sendAmount", 1); + invoiceItems1_2.put("isRoutine", TousseInstance.ROUTINE_YES); + invoiceItems1.add(invoiceItems1_2); + JSONObject invoiceItems1_3 = new JSONObject(); + invoiceItems1_3.put("barcode", "020000300"); + invoiceItems1_3.put("sendAmount", 1); + invoiceItems1_3.put("isRoutine", TousseInstance.ROUTINE_YES); + invoiceItems1.add(invoiceItems1_3); + + 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()); + invoiceManager.submitInvoice(params); + /// +// String jsonParam = "{departCode:'3266',sender:'张华',invoiceItems:[{barcode:'020000100',sendAmount:1},{barcode:'020000200',sendAmount:1},{barcode:'020000300',sendAmount:1}]}"; +// webServiceManager.submitInvoicePlans(jsonParam); objectDao.flush(); InvoicePlan invoicePlan = (InvoicePlan) objectDao.getByProperty( @@ -222,8 +268,37 @@ Integer[] recyclingAmountArray = {null,2,2}; createInvoicePlan(recyclingStatus,recyclingAmountArray); createTousseInstance(); - String jsonParam = "{departCode:'3266',sender:'张华',invoiceItems:[{barcode:'020000100',sendAmount:1},{barcode:'020000200',sendAmount:1},{barcode:'020000300',sendAmount:1}]}"; - webServiceManager.submitInvoicePlans(jsonParam); + WareHouse wareHouse_CSSD = wareHouseManager.getDefaultWareHouseByUnitCode(Constants.ORG_UNIT_CODE_CSSD); + assertNotNull(wareHouse_CSSD); + JSONObject params = new JSONObject(); + JSONArray invoiceItems1 = new JSONArray(); + JSONObject invoiceItems1_1 = new JSONObject(); + invoiceItems1_1.put("barcode", "020000100"); + invoiceItems1_1.put("sendAmount", 1); + invoiceItems1_1.put("isRoutine", TousseInstance.ROUTINE_YES); + invoiceItems1.add(invoiceItems1_1); + JSONObject invoiceItems1_2 = new JSONObject(); + invoiceItems1_2.put("barcode", "020000200"); + invoiceItems1_2.put("sendAmount", 1); + invoiceItems1_2.put("isRoutine", TousseInstance.ROUTINE_YES); + invoiceItems1.add(invoiceItems1_2); + JSONObject invoiceItems1_3 = new JSONObject(); + invoiceItems1_3.put("barcode", "020000300"); + invoiceItems1_3.put("sendAmount", 1); + invoiceItems1_3.put("isRoutine", TousseInstance.ROUTINE_YES); + invoiceItems1.add(invoiceItems1_3); + + 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()); + invoiceManager.submitInvoice(params); + +// String jsonParam = "{departCode:'3266',sender:'张华',invoiceItems:[{barcode:'020000100',sendAmount:1},{barcode:'020000200',sendAmount:1},{barcode:'020000300',sendAmount:1}]}"; +// webServiceManager.submitInvoicePlans(jsonParam); objectDao.flush(); InvoicePlan invoicePlan = (InvoicePlan) objectDao.getByProperty( @@ -275,8 +350,36 @@ Integer[] recyclingAmountArray = {null,2,2}; createInvoicePlan(recyclingStatus,recyclingAmountArray); createTousseInstance(); - String jsonParam = "{departCode:'3266',sender:'张华',invoiceItems:[{barcode:'020000100',sendAmount:1},{barcode:'020000200',sendAmount:1},{barcode:'020000300',sendAmount:1}]}"; - webServiceManager.submitInvoicePlans(jsonParam); + WareHouse wareHouse_CSSD = wareHouseManager.getDefaultWareHouseByUnitCode(Constants.ORG_UNIT_CODE_CSSD); + assertNotNull(wareHouse_CSSD); + JSONObject params = new JSONObject(); + JSONArray invoiceItems1 = new JSONArray(); + JSONObject invoiceItems1_1 = new JSONObject(); + invoiceItems1_1.put("barcode", "020000100"); + invoiceItems1_1.put("sendAmount", 1); + invoiceItems1_1.put("isRoutine", TousseInstance.ROUTINE_YES); + invoiceItems1.add(invoiceItems1_1); + JSONObject invoiceItems1_2 = new JSONObject(); + invoiceItems1_2.put("barcode", "020000200"); + invoiceItems1_2.put("sendAmount", 1); + invoiceItems1_2.put("isRoutine", TousseInstance.ROUTINE_YES); + invoiceItems1.add(invoiceItems1_2); + JSONObject invoiceItems1_3 = new JSONObject(); + invoiceItems1_3.put("barcode", "020000300"); + invoiceItems1_3.put("sendAmount", 1); + invoiceItems1_3.put("isRoutine", TousseInstance.ROUTINE_YES); + invoiceItems1.add(invoiceItems1_3); + + 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()); + invoiceManager.submitInvoice(params); +// String jsonParam = "{departCode:'3266',sender:'张华',invoiceItems:[{barcode:'020000100',sendAmount:1},{barcode:'020000200',sendAmount:1},{barcode:'020000300',sendAmount:1}]}"; +// webServiceManager.submitInvoicePlans(jsonParam); objectDao.flush(); InvoicePlan invoicePlan = (InvoicePlan) objectDao.getByProperty( Index: ssts-web/src/test/java/test/forgon/disinfectsystem/invoicemanager/service/PDAAssembleSendGoodsInvoiceManagerTests.java =================================================================== diff -u -r15035 -r16709 --- ssts-web/src/test/java/test/forgon/disinfectsystem/invoicemanager/service/PDAAssembleSendGoodsInvoiceManagerTests.java (.../PDAAssembleSendGoodsInvoiceManagerTests.java) (revision 15035) +++ ssts-web/src/test/java/test/forgon/disinfectsystem/invoicemanager/service/PDAAssembleSendGoodsInvoiceManagerTests.java (.../PDAAssembleSendGoodsInvoiceManagerTests.java) (revision 16709) @@ -10,12 +10,16 @@ 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.DisposableGoodsIdentification; import com.forgon.disinfectsystem.entity.assestmanagement.DisposableGoodsStock; @@ -45,22 +49,65 @@ @Test public void testSendoutAssembledGoodsApplication(){ prepareData(); - WareHouse wareHouse1 = wareHouseManager.getDefaultWareHouseByUnitCode(Constants.ORG_UNIT_CODE_CSSD); - assertNotNull(wareHouse1); - map.put("departCode", "3266"); + WareHouse wareHouse_CSSD = wareHouseManager.getDefaultWareHouseByUnitCode(Constants.ORG_UNIT_CODE_CSSD); + assertNotNull(wareHouse_CSSD); + JSONObject params = new JSONObject(); + JSONArray invoiceItems1 = new JSONArray(); //发消毒物品 for(String barcode : disinfectionGoodsBarcodeArray){ - map.put(barcode , 1); + 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); } //发普通器械包 for(String barcode : simpleTousseBarcodeArray){ - map.put(barcode , 1); + 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("201410150001" , 500);//一次性物品发500个 - DisposableGoodsStock goods = diposableGoodsManager.getDisposableGoodsStockByName(wareHouse1.getId(),"test10ml注射器", "小号"); + { + String barcode = "201410150001"; + JSONObject invoiceItems1_1 = new JSONObject(); + invoiceItems1_1.put("barcode", barcode); + invoiceItems1_1.put("sendAmount", 1); + invoiceItems1_1.put("isRoutine", TousseInstance.ROUTINE_YES); + + 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()); +// if(StringUtils.equals(tousseType,DisposableGoods.TYPE_EXPENSIVEDIPOSABLEGOODS)){ +// typeInfoOnScanned.put("expensiveDisposablegoodsId", null); +// } + invoiceItems1_1.put("sendAmount", 500); + invoiceItems1_1.put("isRoutine", TousseInstance.ROUTINE_YES); + invoiceItems1_1.put("typeInfoOnScanned", typeInfoOnScanned); + invoiceItems1.add(invoiceItems1_1); + } +// map.put("201410150001" , 500);//一次性物品发500个 + + 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()); + + + DisposableGoodsStock goods = diposableGoodsManager.getDisposableGoodsStockByName(wareHouse_CSSD.getId(),"test10ml注射器", "小号"); assertNotNull(goods); - String paramsStr = createSendOutParam(map); //浮动价格 double tousseFluctionPrice = supplyRoomConfigManager.getTousseFluctuationPercent(); //一次性物品的浮动价格 @@ -80,18 +127,18 @@ } //测试库存 DisposableGoodsBatchStock batchStock = diposableGoodBatchStockManager - .getDisposableGoodsBatchStockByNameAndBatchNumber(wareHouse1.getId(),"test10ml注射器","小号","1402180001"); + .getDisposableGoodsBatchStockByNameAndBatchNumber(wareHouse_CSSD.getId(),"test10ml注射器","小号","1402180001"); DisposableGoodsBatchStock batchStock2 = diposableGoodBatchStockManager - .getDisposableGoodsBatchStockByNameAndBatchNumber(wareHouse1.getId(),"test10ml注射器","小号","1402180002"); + .getDisposableGoodsBatchStockByNameAndBatchNumber(wareHouse_CSSD.getId(),"test10ml注射器","小号","1402180002"); //00001标识号 DisposableGoodsIdentification identificationOfDiposableGoods0001 = identificationOfDiposableGoodsManager - .getIdentificationOfDiposableGoodsByIdentification(wareHouse1.getId(),"test10ml注射器", "小号", "1402180001", "00001"); + .getIdentificationOfDiposableGoodsByIdentification(wareHouse_CSSD.getId(),"test10ml注射器", "小号", "1402180001", "00001"); //00002标识号 DisposableGoodsIdentification identificationOfDiposableGoods0002 = identificationOfDiposableGoodsManager - .getIdentificationOfDiposableGoodsByIdentification(wareHouse1.getId(),"test10ml注射器", "小号", "1402180002", "00002"); + .getIdentificationOfDiposableGoodsByIdentification(wareHouse_CSSD.getId(),"test10ml注射器", "小号", "1402180002", "00002"); - webServiceManager.submitInvoicePlans(paramsStr); + invoiceManager.submitInvoice(params); objectDao.flush(); //一次性物品的发货单 @@ -192,8 +239,36 @@ */ private void createDiposableGoodsApplication(){ Map appMap = new HashMap(); - appMap.put("test10ml注射器[小号]", 500); createSimpleTousseOrDiposableGoodsApplicationByParam("2014021800001", InvoicePlan.TYPE_DIPOSABLE_GOODS_APPLICATION_FORM, "外六科护士站18B", "3266", new Date(), appMap); + DisposableGoods disposableGoods = diposableGoodsManager.getDisposableGoodsByName("test10ml注射器", "小号"); + RecyclingApplication application = new RecyclingApplication(); + application.setSerialNumber("2014021800001"); + 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(500); + //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); } /** * 创建消毒物品申请单(由于带下划线的器械会在发货的处理中出现问题,所以下) @@ -220,6 +295,8 @@ application.setApplicant("吴启华"); application.setDepartCoding(departCode); application.setDepart(depart); + application.setHandleDepart(Constants.ORG_UNIT_NAME_CSSD); + application.setHandleDepartCoding(Constants.ORG_UNIT_CODE_CSSD); application.setApplicationTime(appTime); application.setCommittedStatus(true); application.setDeliverStatus(InvoicePlan.DELIVERSTATUS_AWAITDELIVER); @@ -273,7 +350,10 @@ disinfectionTousse.setIsReview("否"); disinfectionTousse.setIsDisableIDCard("否"); + disinfectionTousse.setMaterialsMD5("testMD5"); objectDao.save(disinfectionTousse); + disinfectionTousse.setAncestorID(disinfectionTousse.getId()); + objectDao.saveOrUpdate(disinfectionTousse); for(String barcode : disinfectionGoodsBarcodeArray){ TousseInstance tousseInstance = new TousseInstance(); Index: ssts-web/src/main/java/test/forgon/disinfectsystem/invoicemanager/service/DataGenerater.java =================================================================== diff -u -r13424 -r16709 --- ssts-web/src/main/java/test/forgon/disinfectsystem/invoicemanager/service/DataGenerater.java (.../DataGenerater.java) (revision 13424) +++ ssts-web/src/main/java/test/forgon/disinfectsystem/invoicemanager/service/DataGenerater.java (.../DataGenerater.java) (revision 16709) @@ -18,9 +18,12 @@ import org.junit.Assert; import com.forgon.disinfectsystem.diposablegoods.service.DiposableGoodBatchStockManager; +import com.forgon.disinfectsystem.entity.assestmanagement.DisposableGoods; +import com.forgon.disinfectsystem.entity.assestmanagement.DisposableGoodsBatch; import com.forgon.disinfectsystem.entity.assestmanagement.DisposableGoodsBatchStock; import com.forgon.disinfectsystem.entity.assestmanagement.DisposableGoodsIdentification; import com.forgon.disinfectsystem.entity.assestmanagement.DisposableGoodsStock; +import com.forgon.disinfectsystem.entity.basedatamanager.warehouse.WareHouse; import com.forgon.tools.hibernate.ObjectDao; public class DataGenerater { @@ -81,7 +84,7 @@ * cost: 1.2, expDate:'2015-09-20 00:00:00', identifications: [ { * identifyCode: '00003', amount: 0, price: 1.2 } ] } ] } */ - public void createTestDataByType(String dataType) { + public void createTestDataByType(String dataType,WareHouse wareHouse) { String jsonStr = null; try { jsonStr = readFileToJson(dataType); @@ -106,15 +109,24 @@ specification = tempName.substring(index + 1, index2); realName = tempName.substring(0, index); } + // 定义 + DisposableGoods disposableGoods = new DisposableGoods(); + disposableGoods.setName(realName); + disposableGoods.setSpecification(specification); + disposableGoods.setReferencePrice(referencePrice); + objectDao.saveOrUpdate(disposableGoods); // 一次性物品 - DisposableGoodsStock diposableGoods = new DisposableGoodsStock(); - diposableGoods.setName(realName); - diposableGoods.setSpecification(specification); - diposableGoods.setReferencePrice(referencePrice); + DisposableGoodsStock disposableGoodsStock = new DisposableGoodsStock(); + disposableGoodsStock.setName(realName); + disposableGoodsStock.setDisposableGoodsID(disposableGoods.getId()); + disposableGoodsStock.setWarehouseID(wareHouse.getId()); + disposableGoodsStock.setWarehouseName(wareHouse.getName()); + disposableGoodsStock.setSpecification(specification); + disposableGoodsStock.setReferencePrice(referencePrice); JSONArray batchesArray = jsonObject.getJSONArray("batches"); // 批次 - Set batchList = new HashSet(); + Set disposableGoodsBatchStockList = new HashSet(); if (batchesArray.isArray() && !batchesArray.isEmpty()) { for (int i = 0; i < batchesArray.size(); i++) { JSONObject batchObject = batchesArray @@ -124,25 +136,38 @@ Long storage = batchObject.getLong("storage"); Double cost = batchObject.getDouble("cost"); String expDate = batchObject.getString("expDate"); - // 批次 - DisposableGoodsBatchStock batch = new DisposableGoodsBatchStock(); - batch.setDiposableGoods(diposableGoods); - batch.setBatchNumber(batchNum); -// batch.setType(BarcodeDevice.BARCODE_TYPE_DIPOSABLEGOODS); - batch.setBarcode(barcode); - batch.setStorage(storage); - batch.setCost(cost); Date date = null; try { date = new SimpleDateFormat( "yyyy-MM-dd HH:mm:ss").parse(expDate); } catch (ParseException e) { e.printStackTrace(); } - batch.setExpDate(date); - batchList.add(batch); + // 批次定义 + DisposableGoodsBatch disposableGoodsBatch = new DisposableGoodsBatch(); + disposableGoodsBatch.setDiposableGoods(disposableGoods); + disposableGoodsBatch.setBatchNumber(batchNum); + disposableGoodsBatch.setBarcode(barcode); + disposableGoodsBatch.setCost(cost); + disposableGoodsBatch.setExpDate(date); + objectDao.saveOrUpdate(disposableGoodsBatch); + // 批次库存 + DisposableGoodsBatchStock disposableGoodsBatchStock = new DisposableGoodsBatchStock(); + disposableGoodsBatchStock.setDiposableGoods(disposableGoodsStock); + disposableGoodsBatchStock.setDisposableGoodsBatchId(disposableGoodsBatch.getId()); + disposableGoodsBatchStock.setDisposableGoodsId(disposableGoods.getId()); + disposableGoodsBatchStock.setDisposableGoodsStockId(disposableGoodsStock.getId()); + disposableGoodsBatchStock.setWarehouseID(wareHouse.getId()); + disposableGoodsBatchStock.setWarehouseName(wareHouse.getName()); + disposableGoodsBatchStock.setBatchNumber(batchNum); + disposableGoodsBatchStock.setBarcode(barcode); + disposableGoodsBatchStock.setStorage(storage); + disposableGoodsBatchStock.setCost(cost); + + disposableGoodsBatchStock.setExpDate(date); + disposableGoodsBatchStockList.add(disposableGoodsBatchStock); // 标识号 - List list = new ArrayList(); + List identificationList = new ArrayList(); JSONArray identificationArray = batchObject .getJSONArray("identifications"); if (identificationArray.isArray() @@ -159,19 +184,24 @@ DisposableGoodsIdentification identification = new DisposableGoodsIdentification(); identification .setAmount(identificationAmount); - identification.setBatchStock(batch); + identification.setBatchStock(disposableGoodsBatchStock); + identification.setDisposableGoodsBatchID(disposableGoodsBatch.getId()); + identification.setDisposableGoodsID(disposableGoods.getId()); + identification.setDisposableGoodsStockID(disposableGoodsStock.getId()); + identification.setWarehouseID(wareHouse.getId()); + identification.setWarehouseName(wareHouse.getName()); identification .setIdentification(identificationCode); identification.setPrice(price); identification.setEntryDate(date); - list.add(identification); - batch.setIdentifications(list); + identificationList.add(identification); + disposableGoodsBatchStock.setIdentifications(identificationList); } } - diposableGoods.setGoodsBatchs(batchList); + disposableGoodsStock.setGoodsBatchs(disposableGoodsBatchStockList); Assert.assertNotNull(objectDao); - diposableGoods.recalculateAmount(); - objectDao.saveOrUpdate(diposableGoods); + disposableGoodsStock.recalculateAmount(); + objectDao.saveOrUpdate(disposableGoodsStock); } } } else if (type.equals("器械包")) { Index: ssts-web/src/test/java/test/forgon/disinfectsystem/AbstractCSSDTest.java =================================================================== diff -u -r16699 -r16709 --- ssts-web/src/test/java/test/forgon/disinfectsystem/AbstractCSSDTest.java (.../AbstractCSSDTest.java) (revision 16699) +++ ssts-web/src/test/java/test/forgon/disinfectsystem/AbstractCSSDTest.java (.../AbstractCSSDTest.java) (revision 16709) @@ -242,7 +242,8 @@ * --00003标识号 0个
*/ protected void createDiposableGoods() { - dataGenerater.createTestDataByType("一次性物品"); + WareHouse wareHouse1 = wareHouseManager.getDefaultWareHouseByUnitCode(Constants.ORG_UNIT_CODE_CSSD); + dataGenerater.createTestDataByType("一次性物品", wareHouse1); } /** @@ -1934,7 +1935,7 @@ tousseInstance1.setPackageType("纸塑"); Date date = null; try { - date = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss").parse("2015-10-20 13:00:00"); + date = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss").parse("2030-10-20 13:00:00"); } catch (ParseException e) { e.printStackTrace(); } @@ -1973,6 +1974,8 @@ application.setDepart(depart); application.setSettleAccountsDepartCoding(departCode); application.setSettleAccountsDepart(depart); + application.setHandleDepart(Constants.ORG_UNIT_NAME_CSSD); + application.setHandleDepartCoding(Constants.ORG_UNIT_CODE_CSSD); application.setApplicationTime(appTime); application.setCommittedStatus(true); application.setDeliverStatus(InvoicePlan.DELIVERSTATUS_AWAITDELIVER); Index: ssts-web/src/test/java/test/forgon/disinfectsystem/invoicemanager/service/PDAORInvoiceManagerTests.java =================================================================== diff -u -r13055 -r16709 --- ssts-web/src/test/java/test/forgon/disinfectsystem/invoicemanager/service/PDAORInvoiceManagerTests.java (.../PDAORInvoiceManagerTests.java) (revision 13055) +++ ssts-web/src/test/java/test/forgon/disinfectsystem/invoicemanager/service/PDAORInvoiceManagerTests.java (.../PDAORInvoiceManagerTests.java) (revision 16709) @@ -5,18 +5,26 @@ import java.util.Date; import java.util.List; +import net.sf.json.JSONArray; +import net.sf.json.JSONObject; + import org.testng.annotations.Test; +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; import com.forgon.disinfectsystem.entity.basedatamanager.toussedefinition.TousseInstance; +import com.forgon.disinfectsystem.entity.basedatamanager.warehouse.WareHouse; import com.forgon.disinfectsystem.entity.foreigntousseapplication.ForeignTousseApplication; import com.forgon.disinfectsystem.entity.invoicemanager.Invoice; import com.forgon.disinfectsystem.entity.invoicemanager.InvoicePlan; import com.forgon.disinfectsystem.entity.sterilizationmanager.foreignproxydisinfection.ForeignProxyDisinfection; import com.forgon.disinfectsystem.entity.sterilizationmanager.foreignproxydisinfection.ForeignProxyItem; import com.forgon.disinfectsystem.entity.sterilizationmanager.proxydisinfection.ProxyDisinfection; import com.forgon.disinfectsystem.entity.tousseitem.TousseItem; +import com.google.gson.JsonObject; +import com.google.gson.JsonParser; import test.forgon.constant.Constants; import test.forgon.disinfectsystem.AbstractCSSDTest; @@ -45,6 +53,8 @@ foreignTousseApplication.setDeliverStatus(InvoicePlan.DELIVERSTATUS_AWAITDELIVER); foreignTousseApplication.setDepart(Constants.ORG_UNIT_NAME_OR); foreignTousseApplication.setDepartCoding(Constants.ORG_UNIT_CODE_OR); + foreignTousseApplication.setHandleDepart(Constants.ORG_UNIT_NAME_CSSD); + foreignTousseApplication.setHandleDepartCoding(Constants.ORG_UNIT_CODE_CSSD); foreignTousseApplication.setRecyclingStatus(InvoicePlan.RECYCLINGSTATUS_AWAITRECYCLE); foreignTousseApplication.setType(InvoicePlan.TYPE_FOREIGNTOUSSEAPPLIACTION); foreignTousseApplication.setSerialNumber("2014101700001"); @@ -116,6 +126,8 @@ proxyDisinfection.setType(InvoicePlan.TYPE_PROXYDISINFECTION); proxyDisinfection.setSettleAccountsDepart(Constants.ORG_UNIT_NAME_OR); proxyDisinfection.setSettleAccountsDepartCoding(Constants.ORG_UNIT_CODE_OR); + proxyDisinfection.setHandleDepart(Constants.ORG_UNIT_NAME_CSSD); + proxyDisinfection.setHandleDepartCoding(Constants.ORG_UNIT_CODE_CSSD); proxyDisinfection.setTotalAmountOfTousses(1); proxyDisinfection.setSerialNumber("2014101700002"); List items = new ArrayList(); @@ -169,6 +181,8 @@ foreignProxyDisinfection.setDeliverStatus(InvoicePlan.DELIVERSTATUS_AWAITDELIVER); foreignProxyDisinfection.setDepart(Constants.ORG_UNIT_NAME_OR); foreignProxyDisinfection.setDepartCoding(Constants.ORG_UNIT_CODE_OR); + foreignProxyDisinfection.setHandleDepart(Constants.ORG_UNIT_NAME_CSSD); + foreignProxyDisinfection.setHandleDepartCoding(Constants.ORG_UNIT_CODE_CSSD); foreignProxyDisinfection.setType(InvoicePlan.TYPE_FOREIGNPROXYDISINFECTION); foreignProxyDisinfection.setSerialNumber("2014101700001"); foreignProxyDisinfection.setSettleAccountsDepart(Constants.ORG_UNIT_NAME_OR); @@ -188,6 +202,7 @@ foreignProxyItem.setPackageType("棉布"); foreignProxyItem.setCount(3); foreignProxyItem.setForeignProxyDisinfection(foreignProxyDisinfection); + objectDao.saveOrUpdate(foreignProxyItem);//必须先持久化,否则后面的包实例无关联到该实体对象 List list = new ArrayList(); for(String barcode : foreignProxyTousseBarcodeArray){ @@ -207,6 +222,7 @@ foreignProxyDisinfection.setForeignProxyItems(foreignProxyItems); foreignProxyDisinfection.setApplicationItems(list); foreignProxyDisinfectionManager.saveOrUpdate(foreignProxyDisinfection); + } private void prepareData(){ @@ -234,24 +250,47 @@ */ @Test public void testSendOutAllGoods(){ - for(String barcode :simpleTousseBarcodeArray){ - map.put(barcode, 1); + prepareData(); + WareHouse wareHouse_CSSD = wareHouseManager.getDefaultWareHouseByUnitCode(Constants.ORG_UNIT_CODE_CSSD); + assertNotNull(wareHouse_CSSD); + JSONObject params = new JSONObject(); + JSONArray invoiceItems1 = new JSONArray(); + //发普通器械包 + for(String barcode : simpleTousseBarcodeArray){ + 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); } for(String barcode : foreignTousseBarcodeArray){ - map.put(barcode, 1); + 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); } for(String barcode : foreignProxyTousseBarcodeArray){ - map.put(barcode, 1); + 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",Constants.ORG_UNIT_CODE_OR); - String jsonParam = createSendOutParam(map); - sendOutGoods(jsonParam); - } - - private void sendOutGoods(String jsonParam){ - prepareData(); - webServiceManager.submitInvoicePlans(jsonParam); + 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()); + + String resultStr = webServiceManager.submitInvoicePlans(params.toString()); + JsonParser jsonParser = new JsonParser(); + JsonObject result1 = jsonParser.parse(resultStr).getAsJsonObject(); + + assertTrue(result1.get("success").getAsBoolean()); //外部代理灭菌发货单 Invoice foreignProxyInvoice = (Invoice) objectDao.getByProperty(Invoice.class.getSimpleName(), "invoicePlan.serialNumber", "2014101700001"); assertNotNull(foreignProxyInvoice); @@ -309,8 +348,7 @@ assertEquals(InvoicePlan.DELIVERSTATUS_DELIVERED , app.getDeliverStatus()); } //发货单总价 - assertEquals(3*6.50 + 3*6.50 , proxyInvoice.getTotalPrice()); - + assertEquals(3*6.50 + 3*6.50 , proxyInvoice.getTotalPrice()); } }