Index: ssts-reports/src/main/java/com/forgon/disinfectsystem/jasperreports/service/JasperReportManagerImpl.java =================================================================== diff -u -r21046 -r21057 --- ssts-reports/src/main/java/com/forgon/disinfectsystem/jasperreports/service/JasperReportManagerImpl.java (.../JasperReportManagerImpl.java) (revision 21046) +++ ssts-reports/src/main/java/com/forgon/disinfectsystem/jasperreports/service/JasperReportManagerImpl.java (.../JasperReportManagerImpl.java) (revision 21057) @@ -11571,17 +11571,29 @@ String tempSql = ""; //如果goodsId不为空则则按照goodsId查,否则查全部的一次性物品和全部的器械包,此时不显示同单明细,否则有交叉 if (DatabaseUtil.isPoIdValid(goodsId)) { - if (StringTools.equals("一次性物品", goodsType)) { + //1、一次性物品 + if (StringTools.equals(DisposableGoods.TYPE_NAME, goodsType)) { if(showOther){ //显示同单的其他物品,则需要查出所有使用记录的id,找出每一个使用记录的所有物品(一次性物品和器械包) String useRecordIds = "select distinct userecord_id from useDiposableGoodsItem where disposableGoodsId=" + goodsId; - disposableGoodsSql += "and ur.id in(" + useRecordIds + ") "; + disposableGoodsSql += " and ur.id in(" + useRecordIds + ") "; disposableGoodsSql += " union all " + tousseInstanceSql + " and ur.id in (" + useRecordIds + ") "; disposableGoodsSql += " union all " + expensiveGoodsSql + " and ur.id in (" + useRecordIds + ") "; }else{ disposableGoodsSql += "and udgi.disposableGoodsId=" + goodsId; - disposableGoodsSql += " union all " + expensiveGoodsSql + " and eg.id=" + goodsId;; } tempSql = disposableGoodsSql; + //2、高值耗材 + } else if (StringTools.equals(ExpensiveGoods.TYPE_NAME, goodsType)) { + if(showOther){ //显示同单的其他物品,则需要查出所有使用记录的id,找出每一个使用记录的所有物品(一次性物品和器械包) + String useRecordIds = "select distinct egi.userecordId from ExpensiveGoodsInstance egi join ExpensiveGoods eg on eg.id=egi.expensiveGoods_id where eg.id=" + goodsId; + expensiveGoodsSql += " and ur.id in(" + useRecordIds + ") "; + expensiveGoodsSql += " union all " + tousseInstanceSql + " and ur.id in (" + useRecordIds + ") "; + expensiveGoodsSql += " union all " + disposableGoodsSql + " and ur.id in (" + useRecordIds + ") "; + }else{ + expensiveGoodsSql += " and eg.id=" + goodsId;; + } + tempSql = expensiveGoodsSql; + //3、器械包 } else { //由于器械包的包定义的id,有可能是由其他包定义生成的(消毒物品\自定义器械包),而goodsId是祖先id,所以要先查出goodsId的后代id String toussedefIds = "select id from tousseDefinition where ancestorID=" + goodsId; Index: ssts-web/src/main/webapp/disinfectsystem/reportforms/useRecordItemView.js =================================================================== diff -u -r17582 -r21057 --- ssts-web/src/main/webapp/disinfectsystem/reportforms/useRecordItemView.js (.../useRecordItemView.js) (revision 17582) +++ ssts-web/src/main/webapp/disinfectsystem/reportforms/useRecordItemView.js (.../useRecordItemView.js) (revision 21057) @@ -81,15 +81,13 @@ var comboGoodsRecord = Ext.data.Record.create([ {name : 'id',mapping : 'id'}, - {name : 'tousseDefinitionID'}, {name : 'type',mapping : 'type'}, - {name : 'tousseType',mapping : 'tousseType'}, {name : 'name',mapping : 'name'} ]); //物品选择下拉框Store var comboGoodsStore = new Ext.data.Store({ proxy : new Ext.data.HttpProxy({ - url : WWWROOT + '/disinfectSystem/baseData/tousseDefinitionAction!searchComboGoodsData.do' + url : WWWROOT + '/disinfectSystem/baseData/tousseDefinitionAction!searchTousseAndDisposableGoodsAndExpensiveGoods.do' }), reader : new Ext.data.JsonReader({ root : 'data'