Index: ssts-reports/src/main/java/com/forgon/disinfectsystem/jasperreports/service/JasperReportManagerImpl.java =================================================================== diff -u -r29428 -r29430 --- ssts-reports/src/main/java/com/forgon/disinfectsystem/jasperreports/service/JasperReportManagerImpl.java (.../JasperReportManagerImpl.java) (revision 29428) +++ ssts-reports/src/main/java/com/forgon/disinfectsystem/jasperreports/service/JasperReportManagerImpl.java (.../JasperReportManagerImpl.java) (revision 29430) @@ -5567,32 +5567,38 @@ String type = dmi.getType(); if (TousseDefinition.PACKAGE_TYPE_DISINFECTION.equals(type) || TousseDefinition.PACKAGE_TYPE_CUSTOM.equals(type)) { - DepartmentMonthDetailItem item = tmpMap.get(tousseName); - if(item == null){ + DepartmentMonthDetailItem item = null; + if(tmpMap.containsKey(tousseName)){ + item = tmpMap.get(tousseName); + item.setAmount(item.getAmount()+dmi.getAmount()); + if(StringUtils.isBlank(item.getBatchNumber()) && StringUtils.isNotBlank(dmi.getBatchNumber()) + || StringUtils.isNotBlank(item.getBatchNumber()) && StringUtils.isBlank(dmi.getBatchNumber()) + || !item.getBatchNumber().equals(dmi.getBatchNumber())){ + item.setBatchNumber(null);//多种批次号 + } + item.setSettlementPrice(item.getSettlementPrice() + dmi.getSettlementPrice() * dmi.getAmount()); + item.setSettlementDiscountPrice(MathTools.add(item.getSettlementDiscountPrice(), dmi.getSettlementDiscountPrice() * dmi.getAmount()).doubleValue()); + double price = item.getAmount() == 0?dmi.getPrice(): item.getSettlementPrice() / item.getAmount(); + item.setPrice(price); + }else{ item = new DepartmentMonthDetailItem(); - item.setAmount(0); - item.setPrice(0d); - item.setSettlementPrice(0d); - item.setSettlementDiscountPrice(0d); + item.setAmount(dmi.getAmount()); + item.setBatchNumber(dmi.getBatchNumber()); + item.setPrice(dmi.getPrice()); + item.setSettlementPrice(dmi.getSettlementPrice() * dmi.getAmount()); + item.setSettlementDiscountPrice(dmi.getSettlementDiscountPrice() * dmi.getAmount()); item.setExternalCode(tousseExternalCodeMap.get(tousseName)); + item.setGoodsName(tousseName); tmpMap.put(tousseName, item); } - item.setAmount(item.getAmount()+dmi.getAmount()); - item.setBatchNumber(dmi.getBatchNumber()); item.setDiposable(dmi.getDiposable()); item.setExpDate(dmi.getExpDate()); - item.setGoodsName(tousseName); item.setManufacturer(dmi.getManufacturer()); - item.setSettlementPrice(item.getSettlementPrice() + dmi.getSettlementPrice()); - item.setSettlementDiscountPrice(MathTools.add(item.getSettlementDiscountPrice(), dmi.getSettlementDiscountPrice()).doubleValue()); item.setType(type); - item.setExternalCode(item.getExternalCode()); - double price = item.getAmount() == 0?dmi.getPrice(): item.getSettlementPrice() / item.getAmount(); - item.setPrice(price); removeItems.add(dmi); } - totalPrice += dmi.getSettlementPrice(); - totalPriceDiscount += dmi.getSettlementDiscountPrice(); + totalPrice += dmi.getSettlementPrice() * dmi.getAmount(); + totalPriceDiscount += dmi.getSettlementDiscountPrice() * dmi.getAmount(); } list.removeAll(removeItems); Iterator itr2 = tmpMap.keySet().iterator();