Index: ssts-web/src/test/java/test/forgon/disinfectsystem/invoicemanager/service/InvoicePlanManagerTest.java =================================================================== diff -u -r17353 -r17513 --- ssts-web/src/test/java/test/forgon/disinfectsystem/invoicemanager/service/InvoicePlanManagerTest.java (.../InvoicePlanManagerTest.java) (revision 17353) +++ ssts-web/src/test/java/test/forgon/disinfectsystem/invoicemanager/service/InvoicePlanManagerTest.java (.../InvoicePlanManagerTest.java) (revision 17513) @@ -4,22 +4,29 @@ import java.text.ParseException; import java.text.SimpleDateFormat; import java.util.ArrayList; +import java.util.Arrays; import java.util.Collection; +import java.util.LinkedList; import java.util.List; import net.sf.json.JSONArray; import net.sf.json.JSONObject; +import org.apache.commons.lang3.StringUtils; 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.basedatamanager.toussedefinition.TousseInstance; import com.forgon.disinfectsystem.entity.basedatamanager.warehouse.WareHouse; import com.forgon.disinfectsystem.entity.invoicemanager.InvoicePlan; +import com.forgon.disinfectsystem.entity.invoicemanager.TimeQuantum; import com.forgon.disinfectsystem.entity.recyclingapplication.RecyclingApplication; import com.forgon.disinfectsystem.entity.tousseitem.TousseItem; import com.forgon.disinfectsystem.recyclingapplication.vo.ApplicationGoodsVo; +import com.forgon.disinfectsystem.recyclingapplication.vo.InvoicePlanVo; +import com.forgon.tools.StrutsParamUtils; +import com.forgon.tools.StrutsResponseUtils; import test.forgon.constant.Constants; import test.forgon.disinfectsystem.AbstractCSSDTest; @@ -942,4 +949,401 @@ } + /** + * 测试获取发货计划列表,根据科室 + */ + @Test + public void test_getDepartInvoiePlansByDepartCodes_departCodes(){ + prepareData(); + SupplyRoomConfig config = supplyRoomConfigManager.getSystemParamsObj(); + config.setAfterRecyclingTousseDeliver(true); + supplyRoomConfigManager.saveOrUpdate(config); + + { + // 根据科室过滤 + { + // 1个物品需要回收,1个不需要回收, + TousseDefinition td = tousseDefinitionManager.getTousseDefinitionByName("Test开胸包"); + RecyclingApplication application1 = new RecyclingApplication(); + application1.setSerialNumber("201504280001"); + application1.setApplicant("吴启华"); + application1.setDepartCoding("3266"); + application1.setIncludeInvoiceItems(InvoicePlan.SIGNED_TRUE); + application1.setSettleAccountsDepartCoding("3266"); + application1.setDepart("外六科护士站18B"); + String applicationTime1 = "2015-04-28 09:00"; + try { + application1.setApplicationTime(new SimpleDateFormat( + "yyyy-MM-dd HH:mm").parse(applicationTime1)); + } catch (ParseException e) { + } + application1.setIncludeInvoiceItems(1); + application1.setCommittedStatus(true); + application1.setRecyclingStatus("待回收"); + application1.setDeliverStatus(InvoicePlan.DELIVERSTATUS_AWAITDELIVER); + application1.setType(InvoicePlan.TYPE_COMBO_FORM); + application1.setHandleDepart(Constants.ORG_UNIT_NAME_CSSD); + application1.setHandleDepartCoding(Constants.ORG_UNIT_CODE_CSSD); + List itemList1 = new ArrayList(); + TousseItem item1 = new TousseItem(); + item1.setTousseName("Test开胸包"); + item1.setAmount(2); + item1.setRecyclingAmount(null); + item1.setTousseType(TousseDefinition.PACKAGE_TYPE_INSIDE); + item1.setDiposable("否"); + item1.setInvoicePlan(application1); + item1.setTousseDefinitionId(td.getId()); + itemList1.add(item1); + + application1.setApplicationItems(itemList1); +// objectDao.saveOrUpdate(application1); + + invoicePlanManager.computeAndSetInvoiceStatus(application1); + + } + { + // 1个物品需要回收,1个不需要回收, + TousseDefinition td = tousseDefinitionManager.getTousseDefinitionByName("Test开胸包"); + RecyclingApplication application1 = new RecyclingApplication(); + application1.setSerialNumber("201504280002"); + application1.setApplicant("吴启华"); + application1.setDepartCoding("3266"); + application1.setIncludeInvoiceItems(InvoicePlan.SIGNED_TRUE); + application1.setSettleAccountsDepartCoding("3277"); + application1.setDepart("外六科护士站19B"); + String applicationTime1 = "2015-04-28 09:00"; + try { + application1.setApplicationTime(new SimpleDateFormat( + "yyyy-MM-dd HH:mm").parse(applicationTime1)); + } catch (ParseException e) { + } + application1.setIncludeInvoiceItems(1); + application1.setCommittedStatus(true); + application1.setRecyclingStatus("待回收"); + application1.setDeliverStatus(InvoicePlan.DELIVERSTATUS_AWAITDELIVER); + application1.setType(InvoicePlan.TYPE_COMBO_FORM); + application1.setHandleDepart(Constants.ORG_UNIT_NAME_CSSD); + application1.setHandleDepartCoding(Constants.ORG_UNIT_CODE_CSSD); + List itemList1 = new ArrayList(); + TousseItem item1 = new TousseItem(); + item1.setTousseName("Test开胸包"); + item1.setAmount(2); + item1.setRecyclingAmount(null); + item1.setTousseType(TousseDefinition.PACKAGE_TYPE_INSIDE); + item1.setDiposable("否"); + item1.setInvoicePlan(application1); + item1.setTousseDefinitionId(td.getId()); + itemList1.add(item1); + + application1.setApplicationItems(itemList1); + objectDao.saveOrUpdate(application1); + + } + { + List departCodes = new LinkedList(); + departCodes.add("3266"); + Collection vos = invoicePlanManager + .getDepartInvoicePlan(departCodes,null ,null , TimeQuantum.All); + assertEquals(vos.size(), 1); + } + } + } + /** + * 测试获取发货计划列表,根据时间 + */ + @Test + public void test_getDepartInvoiePlansByDepartCodes_applyDate(){ + prepareData(); + SupplyRoomConfig config = supplyRoomConfigManager.getSystemParamsObj(); + config.setAfterRecyclingTousseDeliver(true); + supplyRoomConfigManager.saveOrUpdate(config); + +// { +// // 根据时间过滤,暂时有问题,因为需要从config.js读取配置 +// { +// // 1个物品需要回收,1个不需要回收, +// TousseDefinition td = tousseDefinitionManager.getTousseDefinitionByName("Test开胸包"); +// RecyclingApplication application1 = new RecyclingApplication(); +// application1.setSerialNumber("201504280001"); +// application1.setApplicant("吴启华"); +// application1.setDepartCoding("3266"); +// application1.setIncludeInvoiceItems(InvoicePlan.SIGNED_TRUE); +// application1.setSettleAccountsDepartCoding("3266"); +// application1.setDepart("外六科护士站18B"); +// String applicationTime1 = "2015-04-28 09:00"; +// try { +// application1.setApplicationTime(new SimpleDateFormat( +// "yyyy-MM-dd HH:mm").parse(applicationTime1)); +// } catch (ParseException e) { +// } +// application1.setIncludeInvoiceItems(1); +// application1.setCommittedStatus(true); +// application1.setRecyclingStatus("待回收"); +// application1.setDeliverStatus(InvoicePlan.DELIVERSTATUS_AWAITDELIVER); +// application1.setType(InvoicePlan.TYPE_COMBO_FORM); +// application1.setHandleDepart(Constants.ORG_UNIT_NAME_CSSD); +// application1.setHandleDepartCoding(Constants.ORG_UNIT_CODE_CSSD); +// List itemList1 = new ArrayList(); +// TousseItem item1 = new TousseItem(); +// item1.setTousseName("Test开胸包"); +// item1.setAmount(2); +// item1.setRecyclingAmount(null); +// item1.setTousseType(TousseDefinition.PACKAGE_TYPE_INSIDE); +// item1.setDiposable("否"); +// item1.setInvoicePlan(application1); +// item1.setTousseDefinitionId(td.getId()); +// itemList1.add(item1); +// +// application1.setApplicationItems(itemList1); +//// objectDao.saveOrUpdate(application1); +// +// invoicePlanManager.computeAndSetInvoiceStatus(application1); +// +// } +// { +// // 1个物品需要回收,1个不需要回收, +// TousseDefinition td = tousseDefinitionManager.getTousseDefinitionByName("Test开胸包"); +// RecyclingApplication application1 = new RecyclingApplication(); +// application1.setSerialNumber("201504280002"); +// application1.setApplicant("吴启华"); +// application1.setDepartCoding("3266"); +// application1.setIncludeInvoiceItems(InvoicePlan.SIGNED_TRUE); +// application1.setSettleAccountsDepartCoding("3277"); +// application1.setDepart("外六科护士站19B"); +// String applicationTime1 = "2015-04-28 09:01"; +// try { +// application1.setApplicationTime(new SimpleDateFormat( +// "yyyy-MM-dd HH:mm").parse(applicationTime1)); +// } catch (ParseException e) { +// } +// application1.setIncludeInvoiceItems(1); +// application1.setCommittedStatus(true); +// application1.setRecyclingStatus("待回收"); +// application1.setDeliverStatus(InvoicePlan.DELIVERSTATUS_AWAITDELIVER); +// application1.setType(InvoicePlan.TYPE_COMBO_FORM); +// application1.setHandleDepart(Constants.ORG_UNIT_NAME_CSSD); +// application1.setHandleDepartCoding(Constants.ORG_UNIT_CODE_CSSD); +// List itemList1 = new ArrayList(); +// TousseItem item1 = new TousseItem(); +// item1.setTousseName("Test开胸包"); +// item1.setAmount(2); +// item1.setRecyclingAmount(null); +// item1.setTousseType(TousseDefinition.PACKAGE_TYPE_INSIDE); +// item1.setDiposable("否"); +// item1.setInvoicePlan(application1); +// item1.setTousseDefinitionId(td.getId()); +// itemList1.add(item1); +// +// application1.setApplicationItems(itemList1); +// objectDao.saveOrUpdate(application1); +// +// } +// { +// // 1个物品需要回收,1个不需要回收, +// TousseDefinition td = tousseDefinitionManager.getTousseDefinitionByName("Test开胸包"); +// RecyclingApplication application1 = new RecyclingApplication(); +// application1.setSerialNumber("201504280002"); +// application1.setApplicant("吴启华"); +// application1.setDepartCoding("3266"); +// application1.setIncludeInvoiceItems(InvoicePlan.SIGNED_TRUE); +// application1.setSettleAccountsDepartCoding("3277"); +// application1.setDepart("外六科护士站19B"); +// String applicationTime1 = "2015-04-29 00:00"; +// try { +// application1.setApplicationTime(new SimpleDateFormat( +// "yyyy-MM-dd HH:mm").parse(applicationTime1)); +// } catch (ParseException e) { +// } +// application1.setIncludeInvoiceItems(1); +// application1.setCommittedStatus(true); +// application1.setRecyclingStatus("待回收"); +// application1.setDeliverStatus(InvoicePlan.DELIVERSTATUS_AWAITDELIVER); +// application1.setType(InvoicePlan.TYPE_COMBO_FORM); +// application1.setHandleDepart(Constants.ORG_UNIT_NAME_CSSD); +// application1.setHandleDepartCoding(Constants.ORG_UNIT_CODE_CSSD); +// List itemList1 = new ArrayList(); +// TousseItem item1 = new TousseItem(); +// item1.setTousseName("Test开胸包"); +// item1.setAmount(2); +// item1.setRecyclingAmount(null); +// item1.setTousseType(TousseDefinition.PACKAGE_TYPE_INSIDE); +// item1.setDiposable("否"); +// item1.setInvoicePlan(application1); +// item1.setTousseDefinitionId(td.getId()); +// itemList1.add(item1); +// +// application1.setApplicationItems(itemList1); +// objectDao.saveOrUpdate(application1); +// +// } +// { +// List departCodes = new LinkedList(); +// Collection vos = invoicePlanManager +// .getDepartInvoicePlan(departCodes,null ,null , TimeQuantum.All); +// assertEquals(vos.size(), 1); +// } +// } + } + /** + * 测试获取发货计划列表,根据器械包类型 + */ + @Test + public void test_getDepartInvoiePlansByDepartCodes_tousseType(){ + prepareData(); + SupplyRoomConfig config = supplyRoomConfigManager.getSystemParamsObj(); + config.setAfterRecyclingTousseDeliver(true); + supplyRoomConfigManager.saveOrUpdate(config); + + { + // 根据物品类型过滤 + { + TousseDefinition td = tousseDefinitionManager.getTousseDefinitionByName("Test开胸包"); + RecyclingApplication application1 = new RecyclingApplication(); + application1.setSerialNumber("201504280001"); + application1.setApplicant("吴启华"); + application1.setDepartCoding("3266"); + application1.setIncludeInvoiceItems(InvoicePlan.SIGNED_TRUE); + application1.setSettleAccountsDepartCoding("3266"); + application1.setDepart("外六科护士站18B"); + String applicationTime1 = "2015-04-28 09:00"; + try { + application1.setApplicationTime(new SimpleDateFormat( + "yyyy-MM-dd HH:mm").parse(applicationTime1)); + } catch (ParseException e) { + } + application1.setIncludeInvoiceItems(1); + application1.setCommittedStatus(true); + application1.setRecyclingStatus("待回收"); + application1.setDeliverStatus(InvoicePlan.DELIVERSTATUS_AWAITDELIVER); + application1.setType(InvoicePlan.TYPE_COMBO_FORM); + application1.setHandleDepart(Constants.ORG_UNIT_NAME_CSSD); + application1.setHandleDepartCoding(Constants.ORG_UNIT_CODE_CSSD); + List itemList1 = new ArrayList(); + TousseItem item1 = new TousseItem(); + item1.setTousseName("Test开胸包"); + item1.setAmount(2); + item1.setRecyclingAmount(null); + item1.setIsRecycling(TousseDefinition.STR_NO); + item1.setTousseType(TousseDefinition.PACKAGE_TYPE_INSIDE); + item1.setDiposable("否"); + item1.setInvoicePlan(application1); + item1.setTousseDefinitionId(td.getId()); + itemList1.add(item1); + + application1.setApplicationItems(itemList1); + objectDao.saveOrUpdate(application1); + + } + { + // 1个物品需要回收,1个不需要回收, + TousseDefinition td = tousseDefinitionManager.getTousseDefinitionByName("Test开胸包"); + RecyclingApplication application1 = new RecyclingApplication(); + application1.setSerialNumber("201504280002"); + application1.setApplicant("吴启华"); + application1.setDepartCoding("3267"); + application1.setIncludeInvoiceItems(InvoicePlan.SIGNED_TRUE); + application1.setSettleAccountsDepartCoding("3277"); + application1.setDepart("外六科护士站19B"); + String applicationTime1 = "2015-04-28 09:00"; + try { + application1.setApplicationTime(new SimpleDateFormat( + "yyyy-MM-dd HH:mm").parse(applicationTime1)); + } catch (ParseException e) { + } + application1.setIncludeInvoiceItems(1); + application1.setCommittedStatus(true); + application1.setRecyclingStatus("待回收"); + application1.setDeliverStatus(InvoicePlan.DELIVERSTATUS_AWAITDELIVER); + application1.setType(InvoicePlan.TYPE_COMBO_FORM); + application1.setHandleDepart(Constants.ORG_UNIT_NAME_CSSD); + application1.setHandleDepartCoding(Constants.ORG_UNIT_CODE_CSSD); + List itemList1 = new ArrayList(); + TousseItem item1 = new TousseItem(); + item1.setTousseName("Test开胸包"); + item1.setAmount(2); + item1.setRecyclingAmount(null); + item1.setIsRecycling(TousseDefinition.STR_NO); + item1.setTousseType(TousseDefinition.PACKAGE_TYPE_INSIDE); + item1.setDiposable("否"); + item1.setInvoicePlan(application1); + item1.setTousseDefinitionId(td.getId()); + itemList1.add(item1); + + TousseItem item2 = new TousseItem(); + item2.setTousseName("一次性物品"); + item2.setAmount(2); + item2.setRecyclingAmount(null); + item2.setTousseType(TousseItem.TYPE_DIPOSABLE_GOODS); + item2.setDiposable("是"); + item2.setSendOutAmount(0); + item2.setIsRecycling(TousseDefinition.STR_NO); + item2.setInvoicePlan(application1); + item2.setTousseDefinitionId(td.getId()); + itemList1.add(item2); + + application1.setApplicationItems(itemList1); + objectDao.saveOrUpdate(application1); + + } + { + // 1个物品需要回收,1个不需要回收, + TousseDefinition td = tousseDefinitionManager.getTousseDefinitionByName("Test开胸包"); + RecyclingApplication application1 = new RecyclingApplication(); + application1.setSerialNumber("201504280002"); + application1.setApplicant("吴启华"); + application1.setDepartCoding("3268"); + application1.setIncludeInvoiceItems(InvoicePlan.SIGNED_TRUE); + application1.setSettleAccountsDepartCoding("3277"); + application1.setDepart("外六科护士站19B"); + String applicationTime1 = "2015-04-28 09:00"; + try { + application1.setApplicationTime(new SimpleDateFormat( + "yyyy-MM-dd HH:mm").parse(applicationTime1)); + } catch (ParseException e) { + } + application1.setIncludeInvoiceItems(1); + application1.setCommittedStatus(true); + application1.setRecyclingStatus("待回收"); + application1.setDeliverStatus(InvoicePlan.DELIVERSTATUS_AWAITDELIVER); + application1.setType(InvoicePlan.TYPE_COMBO_FORM); + application1.setHandleDepart(Constants.ORG_UNIT_NAME_CSSD); + application1.setHandleDepartCoding(Constants.ORG_UNIT_CODE_CSSD); + List itemList1 = new ArrayList(); + + TousseItem item2 = new TousseItem(); + item2.setTousseName("一次性物品"); + item2.setAmount(2); + item2.setRecyclingAmount(null); + item2.setTousseType(TousseItem.TYPE_DIPOSABLE_GOODS); + item2.setDiposable("是"); + item2.setSendOutAmount(0); + item2.setIsRecycling(TousseDefinition.STR_NO); + item2.setInvoicePlan(application1); + item2.setTousseDefinitionId(td.getId()); + itemList1.add(item2); + + application1.setApplicationItems(itemList1); + objectDao.saveOrUpdate(application1); + + } + { + List departCodes = new LinkedList(); + Collection vos = invoicePlanManager + .getDepartInvoicePlan(departCodes,null ,null, TimeQuantum.All); + assertEquals(vos.size(), 3); + } + { + List departCodes = new LinkedList(); + Collection vos = invoicePlanManager + .getDepartInvoicePlan(departCodes,null ,"一次性物品" , TimeQuantum.All); + assertEquals(vos.size(), 2); + } + { + List departCodes = new LinkedList(); + Collection vos = invoicePlanManager + .getDepartInvoicePlan(departCodes,null ,"普通器械包" , TimeQuantum.All); + assertEquals(vos.size(), 2); + } + } + } }