Index: ssts-web/src/test/java/test/forgon/disinfectsystem/AbstractCSSDTest.java =================================================================== diff -u -r16791 -r16811 --- ssts-web/src/test/java/test/forgon/disinfectsystem/AbstractCSSDTest.java (.../AbstractCSSDTest.java) (revision 16791) +++ ssts-web/src/test/java/test/forgon/disinfectsystem/AbstractCSSDTest.java (.../AbstractCSSDTest.java) (revision 16811) @@ -531,7 +531,6 @@ objectDao.saveOrUpdate(materialInstance2); tousseDefinitionManager.saveOrUpdate(tousseDefinition); } - /** * 创建一个用于测试的普通器械包定义:
*
  • Test开胸包

    @@ -2696,6 +2695,23 @@ return invoiceItems1_1; } /** + * 设置申请单的信息 + * @param invoicePlan + * @param departCoding 申请科室编码 + * @param handleDepartCoding 处理科室编码 + * @param deliverStatus 发货状态 + * @param recyclingStatus 回收状态 + * @param committedStatus 是否提交 + */ + protected void setInvoicePlanInfo(InvoicePlan invoicePlan,String departCoding,String handleDepartCoding, + String deliverStatus,String recyclingStatus,Boolean committedStatus){ + invoicePlan.setCommittedStatus(committedStatus); + invoicePlan.setDeliverStatus(deliverStatus); + invoicePlan.setDepartCoding(departCoding); + invoicePlan.setHandleDepartCoding(handleDepartCoding); + invoicePlan.setRecyclingStatus(recyclingStatus); + } + /** * 默认回滚数据 */ // @Override Index: ssts-web/src/test/java/test/forgon/disinfectsystem/invoicemanager/service/InvoiceManagerForProxyDisinfectionTest.java =================================================================== diff -u --- ssts-web/src/test/java/test/forgon/disinfectsystem/invoicemanager/service/InvoiceManagerForProxyDisinfectionTest.java (revision 0) +++ ssts-web/src/test/java/test/forgon/disinfectsystem/invoicemanager/service/InvoiceManagerForProxyDisinfectionTest.java (revision 16811) @@ -0,0 +1,107 @@ +package test.forgon.disinfectsystem.invoicemanager.service; + +import java.util.ArrayList; +import java.util.Collection; +import java.util.Date; +import java.util.List; + +import org.apache.commons.collections4.CollectionUtils; +import org.testng.annotations.Test; + +import com.forgon.disinfectsystem.entity.basedatamanager.supplyroomconfig.SupplyRoomConfig; +import com.forgon.disinfectsystem.entity.basedatamanager.toussedefinition.TousseDefinition; +import com.forgon.disinfectsystem.entity.invoicemanager.InvoicePlan; +import com.forgon.disinfectsystem.entity.sterilizationmanager.proxydisinfection.ProxyDisinfection; +import com.forgon.disinfectsystem.entity.tousseitem.TousseItem; +import com.forgon.disinfectsystem.recyclingapplication.vo.ApplicationGoodsVo; + +import static org.testng.Assert.*; +import test.forgon.constant.Constants; +import test.forgon.disinfectsystem.AbstractCSSDTest; + +/** + * 代理灭菌发货的测试用例 + * @author kzh + * + */ +public class InvoiceManagerForProxyDisinfectionTest extends AbstractCSSDTest { + /** + * 包定义是需要回收,回收后发货,但是是代理灭菌单。这种情况下,之前的代码会有申请单在列表中出现,但是打开单却看不到物品。 + * 现跟小周确认,对代理灭菌单和外部代理灭菌单,无论包定义是否回收都用申请数量 + */ + @Test + public void testLoadWaitDeliverGoodsOfRecycleDeliverAndTousseNeedRecycle() throws Exception{ + initCSSDData(); + initBasicData(); + makeActiveUser("cssduser1"); + objectDao.flush(); + + prepareTousseDefinitionAndSystemSetting(); + prepareProxyDisinfection(); + + List proxyDisinfections = proxyDisinfectionManager.getProxyDisinfectionBySql("where po.serialNumber='2017011700001'"); + Collection collection = invoiceManager.getWaitDeliverGoods(proxyDisinfections.get(0).getId(), null, ""); + assertTrue(CollectionUtils.isNotEmpty(collection)); + assertEquals(collection.size(),1); + for(ApplicationGoodsVo vo : collection){ + assertEquals(vo.getCount(),3); + assertEquals(vo.getApplicationAmount(), 3); + assertEquals(vo.getGoodsType(), "器械包"); + assertEquals(vo.getInvoicePlanType(), InvoicePlan.TYPE_PROXYDISINFECTION); + assertEquals(vo.getDiposable(),com.forgon.Constants.STR_NO); + assertTrue(vo.getInvoicePlanIDList().contains(proxyDisinfections.get(0).getId())); + assertEquals(vo.getName(),"Test开胸包"); + assertEquals(vo.getShowTousseName(), "Test开胸包"); + } + } + /** + * 准备包定义和系统设置 + */ + void prepareTousseDefinitionAndSystemSetting(){ + TousseDefinition td = tousseDefinitionManager.getFirst("name", "Test开胸包"); + assertNotNull(td); + //设置为要回收 + td.setIsRecycling("是"); + 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); + } + /** + * 创建外部代理灭菌申请单 + */ + void prepareProxyDisinfection(){ + TousseDefinition td = tousseDefinitionManager.getFirst("name", "Test开胸包"); + //包定义是要回收 + assertEquals(td.getIsRecycling(),com.forgon.Constants.STR_YES); + ProxyDisinfection pd = new ProxyDisinfection(); + pd.setApplicant("张三"); + pd.setApplicationTime(new Date()); + pd.setSerialNumber("2017011700001"); + setInvoicePlanInfo(pd, Constants.ORG_UNIT_CODE_OR, Constants.ORG_UNIT_CODE_CSSD, InvoicePlan.DELIVERSTATUS_AWAITDELIVER, + null, true); + List items = new ArrayList(); + pd.setApplicationItems(items); + pd.setType(InvoicePlan.TYPE_PROXYDISINFECTION); + proxyDisinfectionManager.saveOrUpdate(pd); + + TousseItem ii = new TousseItem(); + ii.setAmount(3); + ii.setDiposable(com.forgon.Constants.STR_NO); + ii.setInvoicePlanID(pd.getId()); + ii.setTousseDefinitionId(td.getId()); + ii.setTousseType(td.getTousseType()); + ii.setTousseName(td.getName()); + items.add(ii); + + proxyDisinfectionManager.saveOrUpdate(pd); + } +} Index: ssts-web/src/test/java/test/forgon/disinfectsystem/invoicemanager/service/AllTests.xml =================================================================== diff -u -r16776 -r16811 --- ssts-web/src/test/java/test/forgon/disinfectsystem/invoicemanager/service/AllTests.xml (.../AllTests.xml) (revision 16776) +++ ssts-web/src/test/java/test/forgon/disinfectsystem/invoicemanager/service/AllTests.xml (.../AllTests.xml) (revision 16811) @@ -18,6 +18,8 @@ + + \ No newline at end of file Index: ssts-invoice/src/main/java/com/forgon/disinfectsystem/invoicemanager/service/InvoiceManagerImpl.java =================================================================== diff -u -r16727 -r16811 --- ssts-invoice/src/main/java/com/forgon/disinfectsystem/invoicemanager/service/InvoiceManagerImpl.java (.../InvoiceManagerImpl.java) (revision 16727) +++ ssts-invoice/src/main/java/com/forgon/disinfectsystem/invoicemanager/service/InvoiceManagerImpl.java (.../InvoiceManagerImpl.java) (revision 16811) @@ -89,6 +89,7 @@ import com.forgon.disinfectsystem.entity.packing.ReviewedBasket; import com.forgon.disinfectsystem.entity.printinvoiceconfig.PrintInvoiceConfig; import com.forgon.disinfectsystem.entity.recyclingapplication.RecyclingApplication; +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.sterilizationmanager.sterilizationrecord.SterilizationRecord; @@ -4533,7 +4534,9 @@ } } int appAmount = 0; - if(invoicePlan.isOperationReservationApplication()){ + if(invoicePlan.isOperationReservationApplication() + || invoicePlan instanceof ProxyDisinfection + || invoicePlan instanceof ForeignProxyDisinfection){ appAmount = applicationItem.getAmount(); }else{ appAmount = CssdUtils.getWaitDeliverAmount(applicationItem, @@ -4593,7 +4596,7 @@ } vo.setUrgentAmount(vo.getUrgentAmount() + applicationItem.getUrgentAmount()); - vo.setApplicationAmount(vo.getCount() + notSendAmount); + vo.setApplicationAmount(vo.getApplicationAmount() + notSendAmount); vo.setBeforeToday(vo.isBeforeToday() || beforeToday); // 设置是否含有今天前申请的物品 if(applicationItem.isDisinfection()){