Index: ssts-reports/src/main/java/com/forgon/disinfectsystem/jasperreports/service/JasperReportManagerImpl.java =================================================================== diff -u -r16991 -r16999 --- ssts-reports/src/main/java/com/forgon/disinfectsystem/jasperreports/service/JasperReportManagerImpl.java (.../JasperReportManagerImpl.java) (revision 16991) +++ ssts-reports/src/main/java/com/forgon/disinfectsystem/jasperreports/service/JasperReportManagerImpl.java (.../JasperReportManagerImpl.java) (revision 16999) @@ -5619,10 +5619,10 @@ } } - String invoicePriceSql = "select '' as coding,min(i.settleAccountsDepart) " + String invoicePriceSql = "select i.settleAccountsDepartCoding as coding,i.settleAccountsDepart " + "as depart,sum(ii.settlementPrice) as price,ii.diposable from " + Invoice.class.getSimpleName() + " i," + InvoiceItem.class.getSimpleName() + " ii where i.id = ii.invoice_id and "+invoiceItemDisposableGoodsTypePredicate+" and " + getHandleDeptCodeSql("i.orgUnitCoding") + " and (i.status ='收货签收' or " - + "i.status = '已发货') " + invoiceWheresql + tousseTypeInvoiceSql + " group by i.settleAccountsDepart,ii.diposable"; + + "i.status = '已发货') " + invoiceWheresql + tousseTypeInvoiceSql + " group by i.settleAccountsDepartCoding,i.settleAccountsDepart,ii.diposable"; ResultSet rs = objectDao.executeSql(invoicePriceSql); try { while(rs.next()){ @@ -5645,7 +5645,7 @@ } if(!TYPE_AUTO_DEDUCTION.equals(tousseType)){ //退货统计(器械包或一次性物品) - String returnSql = "select r.type,(-i.settlementPrice),-i.amount,'',r.depart " + String returnSql = "select r.type,(-i.settlementPrice),-i.amount,r.departCoding,r.depart " + "from ReturnGoodsRecord r,ReturnGoodsItem i where r.id = i.returnGoodsRecord_ID" + " and "+returnGoodsItemPredicate+ tousseTypeReturnSql + " and "+getHandleDeptCodeSql("r.handleDepartCode")+" and r.returnTime " + betweenSql; if(StringUtils.isNotBlank(department)){ @@ -5677,9 +5677,9 @@ if(StringUtils.isBlank(tousseType) || "器械材料".equals(tousseType)){ // 材料发货价格 - String materialInvoicePriceSql = "select '' as coding,min(i.settleAccountsDepart) " + String materialInvoicePriceSql = "select i.departCoding as coding,i.depart " + "as depart,sum(ii.settlementPrice) as price from MaterialInvoice i," - + "MaterialInvoiceItem ii where i.id = ii.materialInvoice_id and " + getHandleDeptCodeSql("i.orgUnitCoding") + " " + invoiceWheresql + " group by i.settleAccountsDepart"; + + "MaterialInvoiceItem ii where i.id = ii.materialInvoice_id and " + getHandleDeptCodeSql("i.orgUnitCoding") + " " + invoiceWheresql + " group by i.departCoding,i.depart"; ResultSet materialInvoicePriceResultSet = objectDao.executeSql(materialInvoicePriceSql); try { while(materialInvoicePriceResultSet.next()){ @@ -5697,7 +5697,7 @@ } // 材料发货数量 - String materialInvoiceAmountSql = "select '' as coding,i.settleAccountsDepart " + String materialInvoiceAmountSql = "select i.departCoding as coding,i.depart " + "as depart,mi.amount from MaterialInvoice i inner join MaterialInvoiceItem mi on i.id=mi.materialInvoice_id " + "where " + getHandleDeptCodeSql("i.orgUnitCoding") + " " + " and (mi.amount is not null and mi.amount>0) " @@ -5778,7 +5778,7 @@ } // 材料退货 - String materialReturnSql = "select '',r.depart , (-i.settlementPrice),-i.amount " + String materialReturnSql = "select r.departCoding,r.depart , (-i.settlementPrice),-i.amount " + "from ReturnMaterialRecord r,ReturnMaterialItem i where r.id = i.returnMaterialRecord_ID" + " and "+getHandleDeptCodeSql("r.handleDepartCode")+" and r.returnTime " + betweenSql; if(StringUtils.isNotBlank(department)){ @@ -5808,7 +5808,7 @@ tousseTypeSql = String.format(" and ii.type='%s' ", InvoiceItem.TYPE_AUTO_DEDUCTION); } // 一次性发货数量统计 - String disposableGoodsInvoiceAmountSql = "select '' as coding,i.settleAccountsDepart " + String disposableGoodsInvoiceAmountSql = "select i.settleAccountsDepartCoding as coding,i.settleAccountsDepart " + "as depart,ii.amount from Invoice i inner join InvoiceItem ii on i.id = ii.invoice_id " + "where " + getHandleDeptCodeSql("i.orgUnitCoding") + " " +tousseTypeSql @@ -5958,7 +5958,7 @@ //器械包(含消毒物品、敷料包等)发货数量统计 if(StringUtils.isBlank(tousseType) || (!"器械材料".equals(tousseType) && !TousseItem.TYPE_DIPOSABLE_GOODS.equals(tousseType) && !TYPE_AUTO_DEDUCTION.equals(tousseType))){ - String invoiceAmountSql = "select '' as coding,i.settleAccountsDepart " + String invoiceAmountSql = "select i.settleAccountsDepartCoding as coding,i.settleAccountsDepart " + "as depart,ii.amount,ii.tousseType,ii.tousseName,ii.invoicePlanID,ii.tousseDefinitionId from Invoice i,InvoiceItem ii where i.id = ii.invoice_id " + " and " + getHandleDeptCodeSql("i.orgUnitCoding") + " " + " and (ii.amount is not null and ii.amount>0) "// 限制为只查包含器械包(含消毒物品、敷料包等)数量的