Index: ssts-reports/src/main/java/com/forgon/disinfectsystem/jasperreports/util/DepartmentMonthDetailHelper.java =================================================================== diff -u -r38105 -r38335 --- ssts-reports/src/main/java/com/forgon/disinfectsystem/jasperreports/util/DepartmentMonthDetailHelper.java (.../DepartmentMonthDetailHelper.java) (revision 38105) +++ ssts-reports/src/main/java/com/forgon/disinfectsystem/jasperreports/util/DepartmentMonthDetailHelper.java (.../DepartmentMonthDetailHelper.java) (revision 38335) @@ -687,6 +687,13 @@ } String comboSql = ""; if(haveCombo){ + if("2".equals(comboTousseSendByWrapperTousse)){ + priceSql = ",(select sum(price) from TousseInstance where comboTousseInstanceId=ti.id) as settlementprice " + + ",(select sum(discountPrice) from TousseInstance where comboTousseInstanceId=ti.id) as settlementDiscountPrice "; + } else { + priceSql = ", sum(ti.price) as settlementprice " + + ", sum(ti.discountPrice) as settlementDiscountPrice "; + } groupBySqlOfT+=",comboTousseInstanceId "; comboSql = " union all select " + tousseInstanceMaterialAmountSql @@ -695,13 +702,14 @@ + iSendTime + tousseDefinitionOfSupplierNameSql + integralOftousseDefinitionSql - +",td.name,count(*) as amount," - +"sum(ti.price) as settlementprice,sum(ti.discountPrice) as settlementDiscountPrice,td.tousseType as type" + +",td.name,count(*) as amount" + + priceSql + + ",td.tousseType as type" + unitSqlOftousseDefinitionSql + ",'' as batchNumber,null as expDate,td.id as tousseDefinitionId" + tdcTousseGroupNameSQL + fluctuationPriceOfTi - + ",ii.comboTousseInstanceId from Invoice i join InvoiceItem ii on ii.invoice_id=i.id " + + ",ti.id comboTousseInstanceId from Invoice i join InvoiceItem ii on ii.invoice_id=i.id " + " join TousseInstance ti on ti.id=ii.comboTousseInstanceId " + tousseInstanceJoinTousseDefinitionSql + " where td.tousseType='"+ TousseDefinition.PACKAGE_TYPE_COMBO +"' and " @@ -715,7 +723,7 @@ + urgentSql + instrumentSetTypesSql + " and i.settleaccountsdepart is not null " - + groupBySql+",ii.comboTousseInstanceId "; + + groupBySql+",ti.id "; } tousseSql = " select "+ sumMaterialAmountSql +"depart,settleAccountsDepart" + showTimeOfT @@ -742,7 +750,7 @@ + ",null comboTousseInstanceId from invoice i " + "join TousseInstance ti on ti.invoice_id=i.id " + tousseInstanceJoinTousseDefinitionSql - + " where ti.comboTousseInstanceId is null and ti.comboTousseDefinitionId is null and " + + " where 1=1 and " + getHandleDeptCodeSql("i.orgUnitCoding", isSupplyRoomUserOrIsExpensiveGoodsSupplyRoomUser, orgUnitCoding) + monthFilterSql + iDepartCodingSql @@ -753,6 +761,8 @@ + urgentSql + instrumentSetTypesSql + " and i.settleaccountsdepart is not null " + //按大包发货的聚合包内器械包不算 + + " and not exists (select 1 from InvoiceItem ii where ii.invoice_id=ti.invoice_id and ii.tousseDefinitionId=ti.tousseDefinition_id and ii.comboTousseInstanceId is not null) " + groupBySql + comboSql; tousseSql += " union all " @@ -772,7 +782,7 @@ + ",null comboTousseInstanceId from invoice i " + "join TousseInstance ti on ti.invoice2_id=i.id " + tousseInstanceJoinTousseDefinitionSql - + " where ti.comboTousseInstanceId is null and ti.comboTousseDefinitionId is null and " + + " where 1=1 and " + getHandleDeptCodeSql("i.orgUnitCoding", isSupplyRoomUserOrIsExpensiveGoodsSupplyRoomUser, orgUnitCoding) + monthFilterSql + iDepartCodingSql @@ -783,6 +793,7 @@ + urgentSql + instrumentSetTypesSql + " and i.settleaccountsdepart is not null " + + " and not exists (select 1 from InvoiceItem ii where ii.invoice_id=ti.invoice_id and ii.tousseDefinitionId=ti.tousseDefinition_id and ii.comboTousseInstanceId is not null) " + groupBySql + ") t " + groupBySqlOfT;