Index: ssts-web/src/test/java/test/forgon/disinfectsystem/invoicemanager/service/TestPDAProxyTousseGoodsInvoiceManager.java =================================================================== diff -u -r16776 -r16825 --- ssts-web/src/test/java/test/forgon/disinfectsystem/invoicemanager/service/TestPDAProxyTousseGoodsInvoiceManager.java (.../TestPDAProxyTousseGoodsInvoiceManager.java) (revision 16776) +++ ssts-web/src/test/java/test/forgon/disinfectsystem/invoicemanager/service/TestPDAProxyTousseGoodsInvoiceManager.java (.../TestPDAProxyTousseGoodsInvoiceManager.java) (revision 16825) @@ -13,6 +13,7 @@ import test.forgon.disinfectsystem.AbstractCSSDTest; import com.forgon.disinfectsystem.entity.assestmanagement.TousseStock; +import com.forgon.disinfectsystem.entity.basedatamanager.supplyroomconfig.SupplyRoomConfig; import com.forgon.disinfectsystem.entity.basedatamanager.toussedefinition.TousseDefinition; import com.forgon.disinfectsystem.entity.basedatamanager.toussedefinition.TousseInstance; import com.forgon.disinfectsystem.entity.basedatamanager.warehouse.WareHouse; @@ -65,6 +66,7 @@ item.setAmount(3); item.setDiposable("否"); item.setInvoicePlan(proxyDisinfection); + item.setTousseType(tousseDefinition1.getTousseType()); list.add(item); tousseItemManager.saveOrUpdate(item); for(String barcode : barcodeArray1){ @@ -233,17 +235,71 @@ foreignTousseApplication.setApplicationItems(list); foreignTousseApplicationManager.saveOrUpdate(foreignTousseApplication); } - - /* - * 测试代理灭菌普通器械包全部发货 + /** + * 回收后发货,依据回收单,发送所有器械包 */ @Test + public void testSendAllProxyTousseGoodsWithAfterRecycleDeliver(){ + prepareData(testAll); + setInvoiceParam(true, SupplyRoomConfig.INVOICE_ORIGIN_RECYCLING); + WareHouse wareHouse_CSSD = wareHouseManager.getDefaultWareHouseByUnitCode(Constants.ORG_UNIT_CODE_CSSD); + assertNotNull(wareHouse_CSSD); + + JSONObject params = buildSendAllProxyTousseGoods(wareHouse_CSSD); + + sendProxyTousseGoods(params.toString(), testAll); + } + /** + * 测试代理灭菌普通器械包全部发货。回收后发货为false,依据申请单 + */ + @Test public void testSendAllProxyTousseGoods(){ - prepareData(testAll); + setInvoiceParam(false, SupplyRoomConfig.INVOICE_ORIGIN_APPLICATION); WareHouse wareHouse_CSSD = wareHouseManager.getDefaultWareHouseByUnitCode(Constants.ORG_UNIT_CODE_CSSD); assertNotNull(wareHouse_CSSD); + JSONObject params = buildSendAllProxyTousseGoods(wareHouse_CSSD); + + sendProxyTousseGoods(params.toString(), testAll); + } + + /** + * 测试代理灭菌普通器械包部分发货.回收后发货为false,依据申请单 + */ + @Test + public void testSendPartProxyTousseGoods(){ + prepareData(testPart); + setInvoiceParam(false, SupplyRoomConfig.INVOICE_ORIGIN_APPLICATION); + WareHouse wareHouse_CSSD = wareHouseManager.getDefaultWareHouseByUnitCode(Constants.ORG_UNIT_CODE_CSSD); + assertNotNull(wareHouse_CSSD); + + JSONObject params = buildSendPartProxyTousseParam(wareHouse_CSSD); + + sendProxyTousseGoods(params.toString(), testPart); + } + + /** + * 测试代理灭菌普通器械包部分发货.回收后发货为true,依据回收单 + */ + @Test + public void testSendPartProxyTousseGoodsWithAfterRecycleDeliver(){ + prepareData(testPart); + setInvoiceParam(true, SupplyRoomConfig.INVOICE_ORIGIN_RECYCLING); + WareHouse wareHouse_CSSD = wareHouseManager.getDefaultWareHouseByUnitCode(Constants.ORG_UNIT_CODE_CSSD); + assertNotNull(wareHouse_CSSD); + + JSONObject params = buildSendPartProxyTousseParam(wareHouse_CSSD); + + sendProxyTousseGoods(params.toString(), testPart); + } + + /** + * 代理灭菌全部发货的器械包发货参数 + * @param wareHouse_CSSD + * @return + */ + private JSONObject buildSendAllProxyTousseGoods(WareHouse wareHouse_CSSD) { JSONObject params = new JSONObject(); JSONArray invoiceItems1 = new JSONArray(); @@ -263,19 +319,15 @@ params.put("invoiceItems", invoiceItems1); params.put("sourceWarehouseId", wareHouse_CSSD.getId()); params.put("sourceWarehouseName", wareHouse_CSSD.getName()); - - sendProxyTousseGoods(params.toString(), testAll); + return params; } - /* - * 测试代理灭菌普通器械包部分发货 + /** + * 代理灭菌部分器械包发货的发货参数 + * @param wareHouse_CSSD + * @return */ - @Test - public void testSendPartProxyTousseGoods(){ - prepareData(testPart); - WareHouse wareHouse_CSSD = wareHouseManager.getDefaultWareHouseByUnitCode(Constants.ORG_UNIT_CODE_CSSD); - assertNotNull(wareHouse_CSSD); - + private JSONObject buildSendPartProxyTousseParam(WareHouse wareHouse_CSSD) { JSONObject params = new JSONObject(); JSONArray invoiceItems1 = new JSONArray(); @@ -299,8 +351,7 @@ params.put("invoiceItems", invoiceItems1); params.put("sourceWarehouseId", wareHouse_CSSD.getId()); params.put("sourceWarehouseName", wareHouse_CSSD.getName()); - - sendProxyTousseGoods(params.toString(), testPart); + return params; } /* @@ -312,30 +363,8 @@ WareHouse wareHouse_CSSD = wareHouseManager.getDefaultWareHouseByUnitCode(Constants.ORG_UNIT_CODE_CSSD); assertNotNull(wareHouse_CSSD); - JSONObject params = new JSONObject(); - JSONArray invoiceItems1 = new JSONArray(); + JSONObject params = buildSendPartProxyTousseParam(wareHouse_CSSD); - //发普通器械包 - JSONObject invoiceItems1_1 = new JSONObject(); - invoiceItems1_1.put("barcode", "201410180001"); - 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", "201410180002"); - invoiceItems1_2.put("sendAmount", 1); - invoiceItems1_2.put("isRoutine", TousseInstance.ROUTINE_YES); - invoiceItems1.add(invoiceItems1_2); - - 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()); - sendProxyTousseGoods(params.toString(), testPart); } @@ -477,7 +506,7 @@ assertEquals(TousseInstance.STATUS_SHIPPED , instance.getStatus()); } //断言申请单状态为已发货 - assertEquals(InvoicePlan.DELIVERSTATUS_DELIVERED , invoice.getInvoicePlan().getDeliverStatus()); + assertEquals(invoice.getInvoicePlan().getDeliverStatus(),InvoicePlan.DELIVERSTATUS_DELIVERED); //断言发货单金额 assertEquals(3 *6.50 , invoice.getTotalPrice()); Index: ssts-invoice/src/main/java/com/forgon/disinfectsystem/invoicemanager/service/InvoiceManagerImpl.java =================================================================== diff -u -r16811 -r16825 --- ssts-invoice/src/main/java/com/forgon/disinfectsystem/invoicemanager/service/InvoiceManagerImpl.java (.../InvoiceManagerImpl.java) (revision 16811) +++ ssts-invoice/src/main/java/com/forgon/disinfectsystem/invoicemanager/service/InvoiceManagerImpl.java (.../InvoiceManagerImpl.java) (revision 16825) @@ -4534,9 +4534,7 @@ } } int appAmount = 0; - if(invoicePlan.isOperationReservationApplication() - || invoicePlan instanceof ProxyDisinfection - || invoicePlan instanceof ForeignProxyDisinfection){ + if(invoicePlan.isOperationReservationApplication()){ appAmount = applicationItem.getAmount(); }else{ appAmount = CssdUtils.getWaitDeliverAmount(applicationItem, Index: ssts-basedata/src/main/java/com/forgon/disinfectsystem/common/CssdUtils.java =================================================================== diff -u -r16802 -r16825 --- ssts-basedata/src/main/java/com/forgon/disinfectsystem/common/CssdUtils.java (.../CssdUtils.java) (revision 16802) +++ ssts-basedata/src/main/java/com/forgon/disinfectsystem/common/CssdUtils.java (.../CssdUtils.java) (revision 16825) @@ -50,6 +50,8 @@ import com.forgon.disinfectsystem.entity.recyclingdamagerecord.RecyclingDamageItem; import com.forgon.disinfectsystem.entity.recyclingerror.RecyclingError; import com.forgon.disinfectsystem.entity.recyclingrecord.RecyclingRecord; +import com.forgon.disinfectsystem.entity.sterilizationmanager.foreignproxydisinfection.ForeignProxyDisinfection; +import com.forgon.disinfectsystem.entity.sterilizationmanager.proxydisinfection.ProxyDisinfection; import com.forgon.disinfectsystem.entity.tousseitem.TousseItem; import com.forgon.disinfectsystem.vo.TousseItemVo; import com.forgon.serialnumber.model.SerialNum; @@ -323,7 +325,7 @@ } /** * 获取发货单待发货物品数量(申请数量还是回收数量) - * + * 如果是手术预约申请单或者是代理灭菌申请单及外部代理灭菌申请单,则都是申请数量 * @param tousseItem * @param invoiceOrigin * 发货来源 @@ -332,7 +334,9 @@ public static int getWaitDeliverAmount(TousseItem tousseItem, String invoiceOrigin, boolean afterRecyclingTousseDeliver, InvoicePlan invoicePlan, ObjectDao objectDao) { - if(invoicePlan.isOperationReservationApplication()){ + if(invoicePlan.isOperationReservationApplication() + || invoicePlan instanceof ProxyDisinfection + || invoicePlan instanceof ForeignProxyDisinfection){ Integer appAmount = tousseItem.getAmount(); if (appAmount == null) { appAmount = 0; Index: ssts-web/src/test/java/test/forgon/disinfectsystem/AbstractCSSDTest.java =================================================================== diff -u -r16811 -r16825 --- ssts-web/src/test/java/test/forgon/disinfectsystem/AbstractCSSDTest.java (.../AbstractCSSDTest.java) (revision 16811) +++ ssts-web/src/test/java/test/forgon/disinfectsystem/AbstractCSSDTest.java (.../AbstractCSSDTest.java) (revision 16825) @@ -51,6 +51,7 @@ import com.forgon.disinfectsystem.common.CssdUtils; import com.forgon.disinfectsystem.diposablegoods.service.DiposableGoodBatchStockManager; import com.forgon.disinfectsystem.diposablegoods.service.DiposableGoodsManager; +import com.forgon.disinfectsystem.diposablegoods.service.DisposableGoodsBatchManager; import com.forgon.disinfectsystem.diposablegoods.service.GodownEntryManager; import com.forgon.disinfectsystem.diposablegoods.service.IdentificationOfDiposableGoodsManager; import com.forgon.disinfectsystem.entity.assestmanagement.DiposableGoodsInstance; @@ -164,6 +165,8 @@ @Autowired protected DiposableGoodsManager diposableGoodsManager; @Autowired + protected DisposableGoodsBatchManager disposableGoodsBatchManager; + @Autowired protected SerialNumManager serialNumManager; @Autowired protected TousseItemManager tousseItemManager; @@ -2718,4 +2721,20 @@ // protected boolean isDefaultRollback() { // return false; // } + /** + * 修改发货的系统参数设置 + * @param afterRecyclingTousseDeliver 是否回收后发货 + * @param invoiceOrigin 发货数量依据 + */ + protected void setInvoiceParam(boolean afterRecyclingTousseDeliver, String invoiceOrigin) { + SupplyRoomConfig supplyRoomConfig = supplyRoomConfigManager.getSystemParamsObj(); + supplyRoomConfig.setAfterRecyclingTousseDeliver(afterRecyclingTousseDeliver); + supplyRoomConfig.setInvoiceOrigin(invoiceOrigin); +// supplyRoomConfigManager.saveOrUpdate(supplyRoomConfig); + + supplyRoomConfig = supplyRoomConfigManager.getSystemParamsObj(); + assertEquals(supplyRoomConfig.getAfterRecyclingTousseDeliver(),afterRecyclingTousseDeliver); + + assertEquals(supplyRoomConfig.getInvoiceOrigin(),invoiceOrigin); + } } Index: ssts-web/src/test/java/test/forgon/disinfectsystem/invoicemanager/service/InvoiceManagerForProxyDisinfectionTest.java =================================================================== diff -u -r16811 -r16825 --- ssts-web/src/test/java/test/forgon/disinfectsystem/invoicemanager/service/InvoiceManagerForProxyDisinfectionTest.java (.../InvoiceManagerForProxyDisinfectionTest.java) (revision 16811) +++ ssts-web/src/test/java/test/forgon/disinfectsystem/invoicemanager/service/InvoiceManagerForProxyDisinfectionTest.java (.../InvoiceManagerForProxyDisinfectionTest.java) (revision 16825) @@ -65,15 +65,7 @@ tousseDefinitionManager.saveOrUpdate(td); //改为回收后发货,发货依据回收单 - SupplyRoomConfig supplyRoomConfig = supplyRoomConfigManager.getSystemParamsObj(); - supplyRoomConfig.setAfterRecyclingTousseDeliver(true); - supplyRoomConfig.setInvoiceOrigin(SupplyRoomConfig.INVOICE_ORIGIN_RECYCLING); - supplyRoomConfigManager.saveOrUpdate(supplyRoomConfig); - - supplyRoomConfig = supplyRoomConfigManager.getSystemParamsObj(); - assertTrue(supplyRoomConfig.getAfterRecyclingTousseDeliver()); - - assertEquals(supplyRoomConfig.getInvoiceOrigin(),SupplyRoomConfig.INVOICE_ORIGIN_RECYCLING); + setInvoiceParam(true,SupplyRoomConfig.INVOICE_ORIGIN_RECYCLING); } /** * 创建外部代理灭菌申请单