Index: ssts-web/src/main/webapp/disinfectsystem/reportforms/departmentMonthlyView.js =================================================================== diff -u -r14891 -r15054 --- ssts-web/src/main/webapp/disinfectsystem/reportforms/departmentMonthlyView.js (.../departmentMonthlyView.js) (revision 14891) +++ ssts-web/src/main/webapp/disinfectsystem/reportforms/departmentMonthlyView.js (.../departmentMonthlyView.js) (revision 15054) @@ -8,7 +8,7 @@ //物品类型store var tousseTypeStore = new Ext.data.SimpleStore( { fields : ['value'], - data : [ ['全部'],['全部器械包'],['器械包'],['消毒物品'],['外来器械包'],['自定义器械包'],['外部代理灭菌包'],['一次性物品'],['器械材料'] ] + data : [ ['全部'],['全部器械包'],['器械包'],['敷料包'],['消毒物品'],['外来器械包'],['自定义器械包'],['外部代理灭菌包'],['一次性物品'],['器械材料'] ] }); var diposableGooodsStore = new Ext.data.JsonStore({ Index: ssts-reports/src/main/java/com/forgon/disinfectsystem/jasperreports/service/JasperReportManagerImpl.java =================================================================== diff -u -r15052 -r15054 --- ssts-reports/src/main/java/com/forgon/disinfectsystem/jasperreports/service/JasperReportManagerImpl.java (.../JasperReportManagerImpl.java) (revision 15052) +++ ssts-reports/src/main/java/com/forgon/disinfectsystem/jasperreports/service/JasperReportManagerImpl.java (.../JasperReportManagerImpl.java) (revision 15054) @@ -167,6 +167,7 @@ import com.forgon.tools.db.InitDbConnection; import com.forgon.tools.hibernate.ObjectDao; import com.forgon.tools.string.StringTools; +import com.forgon.tools.util.SqlUtils; /** * @author wangyi 2012-08-15 上午12:04 报表服务类 @@ -3893,8 +3894,32 @@ } return handleDeptCodeSql; } - /** + * 根据页面传递的物品类型,获取对应的器械包类型 + * @param tousseType 页面传递的物品类型,如果为空,则跟全部器械包一样,返回所有器械包类型的集合 + * @return + */ + private List getTousseTypes(String tousseType){ + List allType = new LinkedList(); + if("全部器械包".equals(tousseType) || StringTools.isBlank(tousseType)){ + allType.add(TousseDefinition.PACKAGE_TYPE_CUSTOM); + allType.add(TousseDefinition.PACKAGE_TYPE_DISINFECTION); + allType.add(TousseDefinition.PACKAGE_TYPE_DRESSING); + allType.add(TousseDefinition.PACKAGE_TYPE_FOREIGN); + allType.add(TousseDefinition.PACKAGE_TYPE_FOREIGNPROXY); + allType.add(TousseDefinition.PACKAGE_TYPE_INSIDE); + allType.add(TousseDefinition.PACKAGE_TYPE_SPLIT); + }else if("外来器械包".equals(tousseType)){ + allType.add(TousseDefinition.PACKAGE_TYPE_FOREIGN); + allType.add(TousseDefinition.PACKAGE_TYPE_SPLIT); + }else if("外部代理灭菌包".equals(tousseType)){ + allType.add(TousseDefinition.PACKAGE_TYPE_FOREIGNPROXY); + }else if(StringTools.isNotBlank(tousseType)){ + allType.add(tousseType); + } + return allType; + } + /** * 核算月报查询 */ @Override @@ -3926,7 +3951,7 @@ String receiveRecordItemPredicate = "1=1"; String outEntryPredicate = "1=1"; String packingDisposableGoodsTypePredicate = "1=1"; - + List allTousseType = getTousseTypes(tousseType); String disposableGoodsIdSql = ""; if(StringUtils.isNotBlank(disposableGoodsType)){ disposableGoodsIdSql = String.format(" select id from DisposableGoods where type='%s' ", disposableGoodsType); @@ -3941,11 +3966,11 @@ String tousseTypeInvoiceSql = ""; String tousseTypeReturnSql = ""; if(StringUtils.isNotBlank(tousseType)){ - tousseTypeInvoiceSql = String.format(" and ii.tousseType='%s' ", tousseType); + tousseTypeInvoiceSql = String.format(" and %s ", SqlUtils.getStringFieldInCollectionsPredicate("ii.tousseType", allTousseType)); if(TousseItem.TYPE_DIPOSABLE_GOODS.equals(tousseType)){ tousseTypeReturnSql = " and i.disposableGoodsId in (select id from DisposableGoods) "; }else{ - tousseTypeReturnSql = String.format(" and i.tousseDefinition_id in (select id from TousseDefinition where tousseType in ('%s')) ", tousseType); + tousseTypeReturnSql = String.format(" and i.tousseDefinition_id in (select id from TousseDefinition where %s) ", SqlUtils.getStringFieldInCollectionsPredicate("tousseType", allTousseType)); } } @@ -4280,7 +4305,8 @@ String invoiceAmountSql = "select '' as coding,i.settleAccountsDepart " + "as depart,ii.amount,ii.tousseType,ii.tousseName,ii.invoicePlanID 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 and ii.tousseType!='一次性物品') "// 限制为只查包含器械包(含消毒物品、敷料包等)数量的 + + " and (ii.amount is not null and ii.amount>0) "// 限制为只查包含器械包(含消毒物品、敷料包等)数量的 + + " and " + SqlUtils.getStringFieldInCollectionsPredicate("ii.tousseType", allTousseType) + " and (i.status ='收货签收' or i.status = '已发货') " + invoiceWheresql; ResultSet rs2 = objectDao.executeSql(invoiceAmountSql);