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()){