Index: ssts-reports/src/main/java/com/forgon/disinfectsystem/jasperreports/service/JasperReportManagerImpl.java =================================================================== diff -u -r29548 -r29571 --- ssts-reports/src/main/java/com/forgon/disinfectsystem/jasperreports/service/JasperReportManagerImpl.java (.../JasperReportManagerImpl.java) (revision 29548) +++ ssts-reports/src/main/java/com/forgon/disinfectsystem/jasperreports/service/JasperReportManagerImpl.java (.../JasperReportManagerImpl.java) (revision 29571) @@ -5567,37 +5567,31 @@ String type = dmi.getType(); if (TousseDefinition.PACKAGE_TYPE_DISINFECTION.equals(type) || TousseDefinition.PACKAGE_TYPE_CUSTOM.equals(type)) { - 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()).doubleValue()); - double price = item.getAmount() == 0?dmi.getPrice(): item.getSettlementPrice() / item.getAmount(); - item.setPrice(price); - }else{ + DepartmentMonthDetailItem item = tmpMap.get(tousseName); + if(item == null){ item = new DepartmentMonthDetailItem(); - item.setAmount(dmi.getAmount()); - item.setBatchNumber(dmi.getBatchNumber()); - item.setPrice(dmi.getPrice()); - item.setSettlementPrice(dmi.getSettlementPrice() * dmi.getAmount()); - item.setSettlementDiscountPrice(dmi.getSettlementDiscountPrice()); + item.setAmount(0); + item.setPrice(0d); + item.setSettlementPrice(0d); + item.setSettlementDiscountPrice(0d); 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() * dmi.getAmount(); + totalPrice += dmi.getSettlementPrice(); totalPriceDiscount += dmi.getSettlementDiscountPrice(); } list.removeAll(removeItems);