Index: ssts-reports/src/main/java/com/forgon/disinfectsystem/jasperreports/service/JasperReportManagerImpl.java =================================================================== diff -u -r19798 -r19864 --- ssts-reports/src/main/java/com/forgon/disinfectsystem/jasperreports/service/JasperReportManagerImpl.java (.../JasperReportManagerImpl.java) (revision 19798) +++ ssts-reports/src/main/java/com/forgon/disinfectsystem/jasperreports/service/JasperReportManagerImpl.java (.../JasperReportManagerImpl.java) (revision 19864) @@ -8684,15 +8684,15 @@ String tousseMaterialAmount = " select ctd.id, sum(cmi.count) as mcount from TousseDefinition ctd inner join MaterialInstance cmi on ctd.id = cmi.tousse_id group by ctd.id "; String cumstomTousseAmount = showCustonTousseAmount?" 1 ":" m.mcount "; String tousseAmount = " case td.toussetype when '"+TousseDefinition.PACKAGE_TYPE_CUSTOM+"' then " + cumstomTousseAmount - + " when '"+TousseDefinition.PACKAGE_TYPE_DISINFECTION+"' then m.mcount else 1 end "; + + " when '"+TousseDefinition.PACKAGE_TYPE_DISINFECTION+"' then case when m.mcount is null then 1 else m.mcount end else 1 end "; String sql = " "; String tousseSql = "select '器械包' as type,po.orgUnitCoding,po.settleAccountsDepart,po.depart,do.barcode,bo.tousseName as name," + tousseAmount + " as amount,bo.price as totalPrice,po.sendTime,po.applicant,'' as batch,'' as externalCode,po.remark as remark,bo.sterileEndTime as sterileEndTime," + "bo.sterilizerName as sterilizerName,bo.sterileFrequency as sterileFrequency,po.hospitalNumber as hospitalNumber,po.sender,po.assistantSender,bo.validUntil as expDate from " + Invoice.class.getSimpleName() + " po inner join " + TousseInstance.class.getSimpleName() + " bo on po.id = bo.invoice_id " + " inner join " + BarcodeDevice.class.getSimpleName()+ " do on bo.id = do.id" + " inner join " + TousseDefinition.class.getSimpleName() + " td on bo.tousseDefinition_id=td.id " - + " inner join (" + tousseMaterialAmount + " ) m on m.id = td.id" + + " left join (" + tousseMaterialAmount + " ) m on m.id = td.id" +" where 1=1 " + remarkCondition + hospitalNumberSql + " and " + tousseTypeSql; String diposableSql = "select '一次性物品' as type,po.orgUnitCoding, po.settleAccountsDepart,po.depart,case when bo.expensiveDGBarcode is null then bo.barcode else bo.expensiveDGBarcode end barcode,bo.name,bo.amount,bo.price*bo.amount as totalPrice," + "po.sendTime,po.applicant,bo.batch,dg.externalCode,po.remark as remark,'' as sterileEndTime,'' as sterilizerName,'' as sterileFrequency,"