Index: ssts-userecord/src/main/java/com/forgon/disinfectsystem/useRecord/service/UseRecordManagerImpl.java =================================================================== diff -u -r20903 -r20983 --- ssts-userecord/src/main/java/com/forgon/disinfectsystem/useRecord/service/UseRecordManagerImpl.java (.../UseRecordManagerImpl.java) (revision 20903) +++ ssts-userecord/src/main/java/com/forgon/disinfectsystem/useRecord/service/UseRecordManagerImpl.java (.../UseRecordManagerImpl.java) (revision 20983) @@ -3566,24 +3566,36 @@ } @Override public int getDisposableGoodsAmount(String departCoding,String operator,String startDate,String endDate){ - String sql = "select sum(amount) from " + UseDiposableGoodsItem.class.getSimpleName() - + " udgi inner join useRecord r on udgi.useRecord_id = r.id "; - sql += "and r.departCoding = '"+departCoding+"' and r.operator = '" + operator + "' "; - sql += "and r.enteringDate between "+dateQueryAdapter.dateAdapter(startDate)+" " - + "and " + dateQueryAdapter.dateAdapter(endDate); + //按时间过滤 + String betweenSql = String.format(" and %s ", dateQueryAdapter.dateAreaSql("r.enteringDate", startDate, endDate)); + //按科室过滤 + String departCodingSql = String.format(" and r.departCoding='%s' ", departCoding); + //按录入人过滤 + String operatorSql = String.format(" and r.operator='%s' ", operator); + + String sql1 = String.format("select sum(udgi.amount) amount from UseDiposableGoodsItem udgi join useRecord r on udgi.useRecord_id = r.id " + + "where 1=1 %s %s %s", betweenSql, departCodingSql, operatorSql); + + String sql2 = String.format("select count(*) amount from UseRecord r join ExpensiveGoodsInstance egi on egi.userecordId=r.id " + + "where 1=1 %s %s %s", betweenSql, departCodingSql, operatorSql); + + String sql = String.format(" %s union all %s ", sql1, sql2); ResultSet rs = objectDao.executeSql(sql); - //System.out.println("sql:" + sql); + int amount = 0; try { while(rs.next()){ - return rs.getInt(1); + amount += rs.getInt(1); } } catch (SQLException e) { e.printStackTrace(); }finally { DatabaseUtil.closeResultSetAndStatement(rs); } - return 0; + return amount; } + + + public void setDateQueryAdapter(DateQueryAdapter dateQueryAdapter) { this.dateQueryAdapter = dateQueryAdapter; } Index: ssts-userecord/src/main/java/com/forgon/disinfectsystem/useRecord/service/UseRecordManager.java =================================================================== diff -u -r20735 -r20983 --- ssts-userecord/src/main/java/com/forgon/disinfectsystem/useRecord/service/UseRecordManager.java (.../UseRecordManager.java) (revision 20735) +++ ssts-userecord/src/main/java/com/forgon/disinfectsystem/useRecord/service/UseRecordManager.java (.../UseRecordManager.java) (revision 20983) @@ -53,11 +53,11 @@ */ public int getTousseAmountByDepartAndUserName(String departCoding,String userName, String startDate, String endDate); /** - * 获取某人在指定时间段内,录入的使用记录中,一次性物品的使用总数量 - * @param departCoding 科室编码 - * @param operator 录入人 - * @param startDate 开始时间(包括年月日时分秒) - * @param endDate 结束时间(包括年月日时分秒) + * 获取某科室某人在指定时间段内,录入的使用记录中,一次性物品和高值耗材的总数量. + * @param departCoding 科室编码 + * @param operator 录入人 + * @param startDate 开始时间(包括年月日时分秒) + * @param endDate 结束时间(包括年月日时分秒) * @return */ public int getDisposableGoodsAmount(String departCoding,String operator,String startDate,String endDate); Index: ssts-reports/src/main/java/com/forgon/disinfectsystem/jasperreports/javabeansource/UseRecordItemBean.java =================================================================== diff -u -r14163 -r20983 --- ssts-reports/src/main/java/com/forgon/disinfectsystem/jasperreports/javabeansource/UseRecordItemBean.java (.../UseRecordItemBean.java) (revision 14163) +++ ssts-reports/src/main/java/com/forgon/disinfectsystem/jasperreports/javabeansource/UseRecordItemBean.java (.../UseRecordItemBean.java) (revision 20983) @@ -7,10 +7,27 @@ * @author liujie */ public class UseRecordItemBean { + /** + * 用户名称 + */ private String userName; + + /** + * 记录条数 + */ private int recordAmount = 0 ; + + /** + * 器械包数量 + */ private int tousseAmount = 0 ; + + /** + * 一次性物品数量 + */ private int disposableGoodsAmount = 0; + + public String getUserName() { return userName; } Index: ssts-reports/src/main/java/com/forgon/disinfectsystem/jasperreports/service/JasperReportManagerImpl.java =================================================================== diff -u -r20953 -r20983 --- ssts-reports/src/main/java/com/forgon/disinfectsystem/jasperreports/service/JasperReportManagerImpl.java (.../JasperReportManagerImpl.java) (revision 20953) +++ ssts-reports/src/main/java/com/forgon/disinfectsystem/jasperreports/service/JasperReportManagerImpl.java (.../JasperReportManagerImpl.java) (revision 20983) @@ -65,6 +65,7 @@ import com.forgon.disinfectsystem.entity.assestmanagement.DisposableGoodsBatchStock; import com.forgon.disinfectsystem.entity.assestmanagement.DisposableGoodsStock; import com.forgon.disinfectsystem.entity.assestmanagement.ExpensiveDisposablegoods; +import com.forgon.disinfectsystem.entity.assestmanagement.ExpensiveGoodsInstance; import com.forgon.disinfectsystem.entity.assestmanagement.GodownEntry; import com.forgon.disinfectsystem.entity.assestmanagement.GodownEntryItem; import com.forgon.disinfectsystem.entity.basedatamanager.materialdefinition.MaterialDefinition; @@ -121,6 +122,7 @@ import com.forgon.disinfectsystem.entity.stocktakerecordmanager.StockIdentificationOfGoods; import com.forgon.disinfectsystem.entity.stocktakerecordmanager.StockTakeRecord; import com.forgon.disinfectsystem.entity.tousseitem.TousseItem; +import com.forgon.disinfectsystem.entity.useRecord.UseRecord; import com.forgon.disinfectsystem.entity.washanddisinfectmanager.washanddisinfectrecord.WashAndDisinfectRecord; import com.forgon.disinfectsystem.entity.washanddisinfectmanager.washanddisinfectrecord.WashAndDisinfectRecordMaterial; import com.forgon.disinfectsystem.foreigntousseapplication.service.ForeignTousseApplicationManager; @@ -11427,6 +11429,15 @@ + "inner join useDiposableGoodsItem udgi on udgi.userecord_id=ur.id " + "where 1=1 "; + String expensiveGoodsSql = + "select ur.id,ur.depart,ur.patientName,ur.hospitalNum,ur.treatmentNum,ur.operator,ur.enteringDate,ur.doctorName,ur.operation," + + "eg.name name,1 amount,bd.barcode barcode,'' idCardInstanceBarcode,0 useAmount " + + "from useRecord ur " + + "inner join ExpensiveGoodsInstance egi on egi.userecordId=ur.id " + + "inner join ExpensiveGoods eg on eg.id=egi.expensiveGoods_id " + + "inner join barcodeDevice bd on bd.id=egi.id " + + "where 1=1 "; + String tempSql = ""; //如果goodsId不为空则则按照goodsId查,否则查全部的一次性物品和全部的器械包,此时不显示同单明细,否则有交叉 if (DatabaseUtil.isPoIdValid(goodsId)) { @@ -11435,8 +11446,10 @@ String useRecordIds = "select distinct userecord_id from useDiposableGoodsItem where disposableGoodsId=" + goodsId; 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; } else { @@ -11446,13 +11459,14 @@ String useRecordIds = "select distinct useRecord_id from tousseInstance where tousseDefinition_id in (" + toussedefIds + ") "; tousseInstanceSql += " and ur.id in (" + useRecordIds + ") "; tousseInstanceSql += " union all " + disposableGoodsSql + " and ur.id in (" + useRecordIds + ") "; + tousseInstanceSql += " union all " + expensiveGoodsSql + " and ur.id in (" + useRecordIds + ") "; }else{ tousseInstanceSql += " and ti.tousseDefinition_id in ( " + toussedefIds + " ) "; } tempSql = tousseInstanceSql; } } else { - tempSql = tousseInstanceSql + " union all " + disposableGoodsSql; + tempSql = tousseInstanceSql + " union all " + disposableGoodsSql + " union all " + expensiveGoodsSql; } return tempSql; } @@ -11479,6 +11493,15 @@ + "inner join useDiposableGoodsItem udgi on udgi.userecord_id=ur.id " + "where 1=1 "; + String expensiveGoodsSql = + "select ur.id,ur.depart,ur.patientName,ur.hospitalNum,ur.treatmentNum,ur.operator,ur.enteringDate,ur.doctorName,ur.operation," + + "eg.name name,1 amount,bd.barcode barcode,'' idCardInstanceBarcode,0 useAmount " + + "from useRecord ur " + + "inner join ExpensiveGoodsInstance egi on egi.userecordId=ur.id " + + "inner join ExpensiveGoods eg on eg.id=egi.expensiveGoods_id " + + "inner join barcodeDevice bd on bd.id=egi.id " + + "where 1=1 "; + String tempSql = ""; BarcodeDevice barcodeDevice = barcodeManager.getBarcodeByBarcode(barcode); if (barcodeDevice instanceof IDCardInstance) { //是标识牌条码 @@ -11497,6 +11520,7 @@ String useRecordIds = String.format("select distinct useRecord_id from tousseInstance ti where %s", tousseInstanceIds); tousseInstanceSql += " and ur.id in(" + useRecordIds + ") "; tousseInstanceSql += " union all " + disposableGoodsSql + " and ur.id in(" + useRecordIds + ") "; + tousseInstanceSql += " union all " + expensiveGoodsSql + " and ur.id in(" + useRecordIds + ") "; } else { tousseInstanceSql += "and " + tousseInstanceIds; } @@ -11508,6 +11532,7 @@ if (useRecord_id != null) { tousseInstanceSql += " and ur.id=" + useRecord_id; tousseInstanceSql += " union all " + disposableGoodsSql + " and ur.id in(" + useRecord_id + ") "; + tousseInstanceSql += " union all " + expensiveGoodsSql + " and ur.id in(" + useRecord_id + ") "; } else { tousseInstanceSql += "and 0=1 "; } @@ -11521,10 +11546,27 @@ String useRecordId = "select udgi.userecord_id from UseDiposableGoodsItem udgi where udgi.barcode='" + barcode + "'"; disposableGoodsSql += " and ur.id in(" + useRecordId + ")"; disposableGoodsSql += " union all " + tousseInstanceSql + " and ur.id in(" + useRecordId + ")"; + disposableGoodsSql += " union all " + expensiveGoodsSql + " and ur.id in(" + useRecordId + ")"; } else { disposableGoodsSql += " and udgi.barcode='" + barcode + "' "; } tempSql = disposableGoodsSql; + } else if (barcodeDevice instanceof ExpensiveGoodsInstance) { + ExpensiveGoodsInstance egi = (ExpensiveGoodsInstance) barcodeDevice; + if (showOther) { //显示同单的 + UseRecord useRecord = egi.getUseRecord(); + if (useRecord != null) { + Long useRecord_id = useRecord.getId(); + expensiveGoodsSql += " and ur.id=" + useRecord_id; + expensiveGoodsSql += " union all " + tousseInstanceSql + " and ur.id in(" + useRecord_id + ") "; + expensiveGoodsSql += " union all " + disposableGoodsSql + " and ur.id in(" + useRecord_id + ") "; + } else { + expensiveGoodsSql += "and 0=1 "; + } + } else { + expensiveGoodsSql += " and egi.id=" + egi.getId(); + } + tempSql = expensiveGoodsSql; } else { tousseInstanceSql += " and 1=0 "; tempSql = tousseInstanceSql;