Index: ssts-recyclingapplication/src/main/java/com/forgon/disinfectsystem/recyclingapplication/action/InvoicePlanAction.java =================================================================== diff -u -r26304 -r26515 --- ssts-recyclingapplication/src/main/java/com/forgon/disinfectsystem/recyclingapplication/action/InvoicePlanAction.java (.../InvoicePlanAction.java) (revision 26304) +++ ssts-recyclingapplication/src/main/java/com/forgon/disinfectsystem/recyclingapplication/action/InvoicePlanAction.java (.../InvoicePlanAction.java) (revision 26515) @@ -816,9 +816,12 @@ * 查询高值耗材申请单 */ public void getExpensiveGoodsInvoicePlans(){ - String invoicePlanId = StrutsParamUtils.getPraramValue("invoicePlanId", ""); + long startTime = System.currentTimeMillis(); + logger.debug("getExpensiveGoodsInvoicePlans start=" + System.currentTimeMillis()); + Long invoicePlanId = StrutsParamUtils.getPraramLongValue("invoicePlanId", null); List> list = invoicePlanManager.getExpensiveGoodsInvoicePlans(invoicePlanId); PageUtil.outPutResult(PageUtil.getPagePara(), list); + logger.debug("getExpensiveGoodsInvoicePlans end=" + (System.currentTimeMillis() - startTime)); } /** Index: ssts-recyclingapplication/src/main/java/com/forgon/disinfectsystem/recyclingapplication/service/InvoicePlanManager.java =================================================================== diff -u -r26500 -r26515 --- ssts-recyclingapplication/src/main/java/com/forgon/disinfectsystem/recyclingapplication/service/InvoicePlanManager.java (.../InvoicePlanManager.java) (revision 26500) +++ ssts-recyclingapplication/src/main/java/com/forgon/disinfectsystem/recyclingapplication/service/InvoicePlanManager.java (.../InvoicePlanManager.java) (revision 26515) @@ -302,12 +302,15 @@ /** * 获得高值耗材入库可绑定的申请单 + * 1.1.如果传的申请单id为不空,则根据id查询申请单 + * 1.2.如果传的申请单id为空,则查询单类型为高值耗材申请单、审核状态为已结束、未终止的申请单的申请单 + * 2.并且对应的高值耗材实例即未录入使用记录、也无对应发票信息 * 说明: * 若有绑定的申请单id则只需按id查询申请单 * @param invoicePlanId 申请单id * @return */ - public List> getExpensiveGoodsInvoicePlans(String invoicePlanId); + public List> getExpensiveGoodsInvoicePlans(Long invoicePlanId); /** * 根据申请单id获得高值耗材申请单详细 Index: ssts-recyclingapplication/src/main/java/com/forgon/disinfectsystem/recyclingapplication/service/InvoicePlanManagerImpl.java =================================================================== diff -u -r26500 -r26515 --- ssts-recyclingapplication/src/main/java/com/forgon/disinfectsystem/recyclingapplication/service/InvoicePlanManagerImpl.java (.../InvoicePlanManagerImpl.java) (revision 26500) +++ ssts-recyclingapplication/src/main/java/com/forgon/disinfectsystem/recyclingapplication/service/InvoicePlanManagerImpl.java (.../InvoicePlanManagerImpl.java) (revision 26515) @@ -3519,8 +3519,8 @@ } @SuppressWarnings("unchecked") - @Override - public List> getExpensiveGoodsInvoicePlans(String invoicePlanId) { + @Deprecated + public List> getExpensiveGoodsInvoicePlansOld(String invoicePlanId) { //若有绑定的申请单id则只需按id查询 List invoicePlanList = new ArrayList(); if(DatabaseUtil.isPoIdValid(invoicePlanId)){ @@ -3570,7 +3570,41 @@ return null; } + @SuppressWarnings("unchecked") @Override + public List> getExpensiveGoodsInvoicePlans(Long invoicePlanId) { + String condition = " where 1=1 "; + if(DatabaseUtil.isPoIdValid(invoicePlanId)){ + condition += String.format(" and po.id = %s", invoicePlanId); + }else{ + //获得类型为高值耗材且审核结束且不为已终止的申请单 + condition += String.format(" and po.type = '%s' and po.processStatus = '%s' and (po.endStatus <> '%s' or po.endStatus is null) ", + InvoicePlan.TYPE_EXPENSIVEGOODS_FORM,InvoicePlan.PROCESSSTATUS_BE_THROUGH_WITH,InvoicePlan.STATUS_END); + } + condition += " and po.id in (select egi.invoicePlanId from "+ ExpensiveGoodsInstance.class.getSimpleName() +" egi where egi.expensiveGoodsBill is null and egi.useRecord is null)"; + String orderSql = " order by applicationTime desc"; + List invoicePlanList = objectDao.findBySql(InvoicePlan.class.getSimpleName(),condition + orderSql); + List> list = new ArrayList>(); + if(CollectionUtils.isNotEmpty(invoicePlanList)){ + for (InvoicePlan invoicePlan : invoicePlanList) { + String showDatail = "单号:"+invoicePlan.getSerialNumber(); + if(StringUtils.isNotEmpty(invoicePlan.getPatient())){ + showDatail +=" 病人:"+invoicePlan.getPatient(); + } + if(StringUtils.isNotEmpty(invoicePlan.getDepart())){ + showDatail +=" 申请科室:"+invoicePlan.getDepart(); + } + Map map = new HashMap(); + map.put("invoicePlanId", invoicePlan.getId()); + map.put("showDetail",showDatail ); + list.add(map); + } + return list; + } + return null; + } + + @Override public JSONArray getExpensiveGoodsInvoicePlansDetailById(String id) { if(!DatabaseUtil.isPoIdValid(id)){ return null;