Index: ssts-recyclingrecord/src/main/java/com/forgon/disinfectsystem/recyclingrecord/action/RecyclingRecordAction.java =================================================================== diff -u -r27363 -r27371 --- ssts-recyclingrecord/src/main/java/com/forgon/disinfectsystem/recyclingrecord/action/RecyclingRecordAction.java (.../RecyclingRecordAction.java) (revision 27363) +++ ssts-recyclingrecord/src/main/java/com/forgon/disinfectsystem/recyclingrecord/action/RecyclingRecordAction.java (.../RecyclingRecordAction.java) (revision 27371) @@ -3573,5 +3573,20 @@ } StrutsResponseUtils.output(result); } + + /** + * BJDXZLYY-4 科室申领中打印回收汇总单增加打印格式 + * 根据勾选的申请单,打印物品的申请数量,按物品名称汇总打印 + * @param recyclingRecordIds 申请单id,例如1,2,3 + */ + public void printInvoicePlanSummary() { + try{ + String recyclingRecordIds = StrutsParamUtils.getPraramValue("recyclingRecordIds", null); + JSONObject data = recyclingRecordManager.getTousseItemSummaryByInvoicePlanIds(recyclingRecordIds); + StrutsResponseUtils.output(data); + }catch(Exception e){ + exceptionHandler.handleException(StrutsParamUtils.getResponse(), e); + } + } } Index: ssts-recyclingrecord/src/main/java/com/forgon/disinfectsystem/recyclingrecord/service/RecyclingRecordManagerImpl.java =================================================================== diff -u -r27363 -r27371 --- ssts-recyclingrecord/src/main/java/com/forgon/disinfectsystem/recyclingrecord/service/RecyclingRecordManagerImpl.java (.../RecyclingRecordManagerImpl.java) (revision 27363) +++ ssts-recyclingrecord/src/main/java/com/forgon/disinfectsystem/recyclingrecord/service/RecyclingRecordManagerImpl.java (.../RecyclingRecordManagerImpl.java) (revision 27371) @@ -6054,4 +6054,47 @@ } } + @Override + @SuppressWarnings("unchecked") + public JSONObject getTousseItemSummaryByInvoicePlanIds( + String recyclingRecordIds) { + if(StringUtils.isBlank(recyclingRecordIds)){ + throw new SystemException("参数recyclingRecordIds的值不能为空"); + } + JSONArray items = new JSONArray(); + JSONObject data = JSONUtil.buildJsonObject(true, items); + List idList = (List) StringTools.parseToLongs(recyclingRecordIds, ","); + List invoicePlanList = objectDao.getCollection(InvoicePlan.class.getSimpleName(), "id", idList); + if(CollectionUtils.isEmpty(invoicePlanList)){ + return data; + } + Map nameToAmount = new HashMap(); + for (InvoicePlan ip : invoicePlanList) { + List tousseItems = ip.getApplicationItems(); + if(CollectionUtils.isNotEmpty(tousseItems)){ + for (TousseItem tousseItem : tousseItems) { + String tousseName = tousseItem.getTousseName(); + Integer amount = tousseItem.getAmount(); + Integer sum = nameToAmount.get(tousseName); + if (amount != null && amount > 0){ + if (sum == null) { + nameToAmount.put(tousseName, amount); + } else { + nameToAmount.put(tousseName, sum + amount); + } + } + } + } + } + Set> set = nameToAmount.entrySet(); + for (Entry entry : set) { + JSONObject json = new JSONObject(); + json.put("tosseName", entry.getKey()); + json.put("amount", entry.getValue()); + items.add(json); + } + data = JSONUtil.buildJsonObject(true, items); + return data; + } + } Index: ssts-recyclingrecord/src/main/java/com/forgon/disinfectsystem/recyclingrecord/service/RecyclingRecordManager.java =================================================================== diff -u -r27068 -r27371 --- ssts-recyclingrecord/src/main/java/com/forgon/disinfectsystem/recyclingrecord/service/RecyclingRecordManager.java (.../RecyclingRecordManager.java) (revision 27068) +++ ssts-recyclingrecord/src/main/java/com/forgon/disinfectsystem/recyclingrecord/service/RecyclingRecordManager.java (.../RecyclingRecordManager.java) (revision 27371) @@ -177,6 +177,13 @@ * @param videoRecordIds 视频记录id,json数组格式 */ public void addRecyclingRecordVideo(String recyclingRecordIds,String videoRecordIds); + + /** + * 根据申请单ID获取申请物品汇总表 + * @param recyclingRecordIds + * @return + */ + public JSONObject getTousseItemSummaryByInvoicePlanIds(String recyclingRecordIds); }