Index: forgon-tools/src/main/java/com/forgon/tools/util/BaseUtils.java =================================================================== diff -u -r13173 -r25874 --- forgon-tools/src/main/java/com/forgon/tools/util/BaseUtils.java (.../BaseUtils.java) (revision 13173) +++ forgon-tools/src/main/java/com/forgon/tools/util/BaseUtils.java (.../BaseUtils.java) (revision 25874) @@ -1,5 +1,7 @@ package com.forgon.tools.util; +import java.util.Map; + /** * 对java内置类型的对象进行操作的工具类,不引用自定义类 * @author kzh @@ -39,4 +41,17 @@ } return false; } + /** + * 向map添加元素,如果key已经存在,则值相加 + * @param map 添加元素的map + * @param key map的key + * @param value map的value + */ + public static void putMap(Map map,String key, Integer value){ + if(map.containsKey(key)){ + map.put(key, map.get(key) + value); + }else{ + map.put(key, value); + } + } } Index: ssts-reports/src/main/java/com/forgon/disinfectsystem/jasperreports/service/dataindex/WorkQualityCollectionDataIndex.java =================================================================== diff -u -r25397 -r25874 --- ssts-reports/src/main/java/com/forgon/disinfectsystem/jasperreports/service/dataindex/WorkQualityCollectionDataIndex.java (.../WorkQualityCollectionDataIndex.java) (revision 25397) +++ ssts-reports/src/main/java/com/forgon/disinfectsystem/jasperreports/service/dataindex/WorkQualityCollectionDataIndex.java (.../WorkQualityCollectionDataIndex.java) (revision 25874) @@ -7,15 +7,14 @@ import java.sql.ResultSet; import java.sql.SQLException; import java.text.ParseException; +import java.util.ArrayList; import java.util.HashMap; import java.util.List; import java.util.Map; - import org.apache.commons.lang.StringUtils; import org.apache.log4j.Logger; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Component; - import com.forgon.databaseadapter.service.DateQueryAdapter; import com.forgon.databaseadapter.service.SqlFunctionsAdapter; import com.forgon.directory.service.OrgUnitManager; @@ -44,6 +43,7 @@ import com.forgon.tools.db.DatabaseUtil; import com.forgon.tools.db.InitDbConnection; import com.forgon.tools.hibernate.ObjectDao; +import com.forgon.tools.util.BaseUtils; import com.forgon.tools.util.SqlUtils; /** @@ -155,14 +155,20 @@ reportParams.monthlyStr = dateQueryAdapter.dateConverAdapter3("wr.endDate","mm"); // 清洗总数的Map Map washAmountMap = getWashAmountByMaterialMap(reportParams); - + Integer thisYearAmount = 0; for (Map.Entry entry : washAmountMap.entrySet()) { String key = entry.getKey(); Integer amount = entry.getValue(); + if(amount != null && amount > 0){ + thisYearAmount += amount; + } dataIndex.setWorkQualityBeanAmount(bean, key, amount); } + if(thisYearAmount > 0){ + dataIndex.setWorkQualityBeanAmount(bean, "今年", thisYearAmount); + } list.add(bean); } @@ -382,6 +388,7 @@ bean.setTitle("处理敷料总件数"); String key = ""; Integer amount = 0; + Integer thisYearAmount = 0; try { while (result.next()) { key = result.getString(1); @@ -390,8 +397,14 @@ key = Integer.valueOf(key).toString(); } amount = result.getInt(2); + if(amount > 0){ + thisYearAmount += amount; + } dataIndex.setWorkQualityBeanAmount(bean, key, amount); } + if(thisYearAmount > 0){ + dataIndex.setWorkQualityBeanAmount(bean, "今年", thisYearAmount); + } } catch (SQLException e) { e.printStackTrace(); }finally { @@ -448,10 +461,10 @@ public void getWashForeignMaterialAmountAllYear( List list,ReportQueryParams reportParams) throws SQLException { WorkQualityCollection bean = new WorkQualityCollection(); - reportParams.monthlyStr = dateQueryAdapter.dateConverAdapter3("wr.endDate","mm"); - + String isDisableIDCardSqlWithAliasOfTousseDefinitionIsTd = dataIndex.getIsDisableIDCardFilterSQL("是"); reportParams.tousseTypes = TousseDefinition.PACKAGE_TYPE_FOREIGN; + reportParams.isDisableIDCardSqlWithAliasOfTousseDefinitionIsTd = isDisableIDCardSqlWithAliasOfTousseDefinitionIsTd; reportParams.tousseTypeAndPackageSizeSql = DataIndex .getTousseTypesAndPackageSizesFilterSQL( TousseDefinition.PACKAGE_TYPE_FOREIGN, null); @@ -464,16 +477,27 @@ bean.setTitle("外来器械清洗总件数"); String key = ""; Integer amount = 0; + Integer thisYearAmount = 0; try { + Map map = new HashMap(); while (result.next()) { key = result.getString(1); // 月份以0开头的,去掉0 if(key.length() > 1 && Integer.valueOf(key) < 10){ key = Integer.valueOf(key).toString(); } amount = result.getInt(2); + thisYearAmount += amount; + Integer existAmount = map.get(key); + if (existAmount != null){ + amount += existAmount; + } + map.put(key, amount); dataIndex.setWorkQualityBeanAmount(bean, key, amount); } + if(thisYearAmount > 0){ + dataIndex.setWorkQualityBeanAmount(bean, "今年", thisYearAmount); + } } catch (SQLException e) { e.printStackTrace(); }finally { @@ -487,6 +511,7 @@ List list,String querySupplyRoom) throws ParseException, SQLException { WorkQualityCollection bean = new WorkQualityCollection(); + Integer sum = 0; for (String key : startAndEndDays.keySet()) { String startDay = null; String endDay = null; @@ -507,7 +532,7 @@ TousseDefinition.PACKAGE_TYPE_DISINFECTION, null); String sql = String.format("select sum(tl.amount) amount from (" - +dataIndex.getWorkAmountByMaterialSQL("配包数量", params) + +dataIndex.getWorkAmountByMaterialSQL("发货数量", params) + ") tl "); bean.setTitle("消毒物品工作量统计"); @@ -517,6 +542,9 @@ try { while (rs.next()) { amount = rs.getInt(1); + if(amount > 0){ + sum += amount; + } dataIndex.setWorkQualityBeanAmount(bean, key, amount); } } catch (SQLException e) { @@ -550,6 +578,7 @@ bean.setTitle("消毒物品工作量统计"); String key = ""; Integer amount = 0; + Integer thisYearAmount = 0; try { while (result.next()) { key = result.getString(1); @@ -558,8 +587,14 @@ key = Integer.valueOf(key).toString(); } amount = result.getInt(2); + if(amount != null & amount >0){ + thisYearAmount += amount; + } dataIndex.setWorkQualityBeanAmount(bean, key, amount); } + if(thisYearAmount > 0){ + dataIndex.setWorkQualityBeanAmount(bean, "今年", thisYearAmount); + } } catch (SQLException e) { e.printStackTrace(); }finally { @@ -628,6 +663,7 @@ bean.setTitle("CSSD包装物品总包数"); String key = ""; Integer amount = 0; + Integer thisYearAmount = 0; try { while (result.next()) { key = result.getString(1); @@ -636,8 +672,14 @@ key = Integer.valueOf(key).toString(); } amount = result.getInt(2); + if(amount != null & amount >0){ + thisYearAmount += amount; + } dataIndex.setWorkQualityBeanAmount(bean, key, amount); } + if(thisYearAmount > 0){ + dataIndex.setWorkQualityBeanAmount(bean, "今年", thisYearAmount); + } } catch (SQLException e) { e.printStackTrace(); }finally { @@ -707,6 +749,7 @@ bean.setTitle("CSSD包装物品总件数"); String key = ""; Integer amount = 0; + Integer thisYearAmount = 0; try { while (result.next()) { key = result.getString(1); @@ -715,8 +758,14 @@ key = Integer.valueOf(key).toString(); } amount = result.getInt(2); + if(amount != null & amount >0){ + thisYearAmount += amount; + } dataIndex.setWorkQualityBeanAmount(bean, key, amount); } + if(thisYearAmount > 0){ + dataIndex.setWorkQualityBeanAmount(bean, "今年", thisYearAmount); + } } catch (SQLException e) { e.printStackTrace(); }finally { @@ -800,15 +849,22 @@ String key = ""; Integer amount = 0; try { + Integer thisYearAmount = 0; while (result.next()) { key = result.getString(1); // 月份以0开头的,去掉0 if(key.length() > 1 && Integer.valueOf(key) < 10){ key = Integer.valueOf(key).toString(); } amount = result.getInt(2); + if(amount != null & amount >0){ + thisYearAmount += amount; + } dataIndex.setWorkQualityBeanAmount(bean, key, amount); } + if(thisYearAmount > 0){ + dataIndex.setWorkQualityBeanAmount(bean, "今年", thisYearAmount); + } } catch (SQLException e) { e.printStackTrace(); }finally { @@ -840,34 +896,50 @@ startDay = keyOfInnerMap; endDay = innerMap.get(keyOfInnerMap); } - String sql = "select sum(s.tousseAmount+s.dressingTousseAmount),sum(s.proxyTousseAmount)," - + "sum(s.foreignTousseAmount) from sterilizationrecord s " - + " where s.endDate >= " - + dateQueryAdapter.dateAdapter(startDay) - + " and s.endDate <= " - + dateQueryAdapter.dateAdapter(endDay) - + SqlUtils.get_InSql_Extra("s.orgUnitCoding", querySupplyRoom) - + " and s.status = '灭菌完成'"; - + ReportQueryParams reportParams = new ReportQueryParams(); + //数据库计算字符串长度的函数名 + String sqlLengthFunctionName = DatabaseUtil.getSqlLengthFunctionName(dbConnection); + reportParams.extraQuery = " and ti.proxyDisinfection_id is null "; + reportParams.betweenSql = String.format(" between %s and %s ", dateQueryAdapter.dateAdapter(startDay),dateQueryAdapter.dateAdapter(endDay)); + reportParams.querySupplyRoom = querySupplyRoom; + reportParams.isDisableIDCardSqlWithAliasOfTousseDefinitionIsTd = ""; + reportParams.taskGroupSqlWithAliasOfTousseDefinitionIsTd = ""; + reportParams.tousseGroupSqlWithAliasOfTousseDefinitionIsTd = ""; + reportParams.sqlLengthFunctionName = sqlLengthFunctionName; + reportParams.extraJoinCondition = " inner join SterilizationRecord sr on sr.id = ti.sterilizationRecord_id "; + reportParams.extraGroupBy = " group by td.toussetype "; + reportParams.extraSelectColumns = " ,td.tousseType tousseType "; + String sql = dataIndex.getWorkAmountByPackageSQL("灭菌数量", reportParams); + reportParams.extraGroupBy = ""; + reportParams.extraSelectColumns = " ,'代理灭菌' "; + reportParams.extraQuery = " and ti.proxyDisinfection_id is not null "; + String sql2 = dataIndex.getWorkAmountByPackageSQL("灭菌数量", reportParams); + sql = sql + " union all " + sql2; tousseBean.setRowNum(list.size()+1); + tousseBean.setTitle("灭菌物品总包数(普通灭菌)"); proxyTousseBean.setRowNum(list.size()+2); foreignTousseBean.setRowNum(list.size()+3); - tousseBean.setTitle("灭菌物品总包数(普通灭菌)"); proxyTousseBean.setTitle("灭菌物品总包数(代理灭菌)"); foreignTousseBean.setTitle("灭菌物品总包数(外来器械灭菌)"); - Integer amount = 0; - Integer proxyamount = 0; - Integer foreignamount = 0; ResultSet rs = objectDao.executeSql(sql); + int tousseAmount = 0; + int proxyTousseAmount = 0; + int foreignTousAmount = 0; try { while (rs.next()) { - amount = rs.getInt(1); - proxyamount = rs.getInt(2); - foreignamount = rs.getInt(3); - dataIndex.setWorkQualityBeanAmount(tousseBean, key, amount); - dataIndex.setWorkQualityBeanAmount(proxyTousseBean, key, proxyamount); - dataIndex.setWorkQualityBeanAmount(foreignTousseBean, key, foreignamount); + int amount = rs.getInt("amount"); + String toussetype = rs.getString("toussetype"); + if("器械包".equals(toussetype) || "敷料包".equals(toussetype) || "消毒物品".equals(toussetype) || "自定义器械包".equals(toussetype)){ + tousseAmount += amount; + }else if("外部代理灭菌".equals(toussetype) || "代理灭菌".equals(toussetype)){//代理灭菌只是查询列的别名,并不一定有代理灭菌这个器械包类型 + proxyTousseAmount += amount; + }else if("外来器械包".equals(toussetype) || "外来器械拆分小包".equals(toussetype)){ + foreignTousAmount += amount; + } } + dataIndex.setWorkQualityBeanAmount(tousseBean, key, tousseAmount); + dataIndex.setWorkQualityBeanAmount(proxyTousseBean, key, proxyTousseAmount); + dataIndex.setWorkQualityBeanAmount(foreignTousseBean, key, foreignTousAmount); } catch (SQLException e) { e.printStackTrace(); }finally { @@ -881,7 +953,6 @@ } } - /** * 灭菌物品总包数(按灭菌炉分组的统计)的统计,全年数据. * @param year @@ -1025,15 +1096,18 @@ String key = ""; Integer amount = 0; try { + Integer thisYearAmount = 0; while (result.next()) { key = result.getString(1); // 月份以0开头的,去掉0 if(key.length() > 1 && Integer.valueOf(key) < 10){ key = Integer.valueOf(key).toString(); } amount = result.getInt(2); + thisYearAmount += amount; dataIndex.setWorkQualityBeanAmount(bean, key, amount); } + dataIndex.setWorkQualityBeanAmount(bean, "今年", thisYearAmount); } catch (SQLException e) { e.printStackTrace(); }finally { @@ -1120,15 +1194,22 @@ String key = ""; Integer amount = 0; try { + Integer thisYearAmount = 0; while (result.next()) { key = result.getString(1); // 月份以0开头的,去掉0 if(key.length() > 1 && Integer.valueOf(key) < 10){ key = Integer.valueOf(key).toString(); } amount = result.getInt(2); + if(amount != null && amount > 0){ + thisYearAmount += amount; + } dataIndex.setWorkQualityBeanAmount(bean, key, amount); } + if(thisYearAmount > 0){ + dataIndex.setWorkQualityBeanAmount(bean, "今年", thisYearAmount); + } } catch (SQLException e) { e.printStackTrace(); }finally { @@ -1167,35 +1248,46 @@ Integer amount = 0; Map map = new HashMap(); try { + Integer thisYearAmount = 0; while (result.next()) { key = result.getString(1); // 月份以0开头的,去掉0 if(key.length() > 1 && Integer.valueOf(key) < 10){ key = Integer.valueOf(key).toString(); } amount = result.getInt(2); + thisYearAmount += amount; map.put(key,amount); dataIndex.setWorkQualityBeanAmount(bean, key, amount); } + if(thisYearAmount > 0){ + dataIndex.setWorkQualityBeanAmount(bean, "今年", thisYearAmount); + } } catch (SQLException e) { e.printStackTrace(); }finally { DatabaseUtil.closeResultSetAndStatement(result); } // 遍历结果集 设置百分比 if(washAmountMap != null){ + Integer sumAmount = 0; + Integer sumAmount2 = 0; for(Map.Entry entry:washAmountMap.entrySet()){ key = entry.getKey(); amount = map.get(key); // 总数 - int amount2 = entry.getValue(); - if(amount2 > 0 && amount != null){ - double percentage = new BigDecimal(amount).divide( - new BigDecimal(amount2), 4, BigDecimal.ROUND_HALF_UP) - .doubleValue(); - percentage = new BigDecimal(percentage).multiply( - new BigDecimal(100)).doubleValue(); - dataIndex.setWorkQualityBeanPercentage(bean, key, percentage); + Integer amount2 = entry.getValue(); + if(amount2 != null && amount2 > 0){ + sumAmount2 += amount2; + if(amount != null){ + sumAmount += amount; + double percentage = new BigDecimal(amount).divide( + new BigDecimal(amount2), 4, BigDecimal.ROUND_HALF_UP) + .doubleValue(); + percentage = new BigDecimal(percentage).multiply( + new BigDecimal(100)).doubleValue(); + dataIndex.setWorkQualityBeanPercentage(bean, key, percentage); + } } if(isHidePartOfWorkQualityCollection == true && amount2 > 0){ dataIndex.setWorkQualityBeanAmount(bean, key, amount2); @@ -1206,12 +1298,22 @@ } } } + if(sumAmount2 > 0){ + double percentage = new BigDecimal(sumAmount).divide( + new BigDecimal(sumAmount2), 4, BigDecimal.ROUND_HALF_UP) + .doubleValue(); + percentage = new BigDecimal(percentage).multiply( + new BigDecimal(100)).doubleValue(); + dataIndex.setWorkQualityBeanPercentage(bean, "今年", percentage); + if(isHidePartOfWorkQualityCollection == true){ + dataIndex.setWorkQualityBeanAmount(bean, "今年", sumAmount2); + dataIndex.setWorkQualityBeanUnQualityAmount(bean, "今年", sumAmount); + } + } } list.add(bean); } - - /** * 灭菌物品总包数(普通灭菌、代理灭菌、外来器械灭菌)的统计,全年数据. * @param year @@ -1242,87 +1344,166 @@ String sqlLengthFunctionName = DatabaseUtil.getSqlLengthFunctionName(dbConnection); ReportQueryParams reportParams = new ReportQueryParams(); + reportParams.extraQuery =" and ti.proxyDisinfection_id is null "; reportParams.betweenSql = betweenSql; reportParams.querySupplyRoom = querySupplyRoom; reportParams.isDisableIDCardSqlWithAliasOfTousseDefinitionIsTd = ""; reportParams.taskGroupSqlWithAliasOfTousseDefinitionIsTd = ""; reportParams.tousseGroupSqlWithAliasOfTousseDefinitionIsTd = ""; reportParams.sqlLengthFunctionName = sqlLengthFunctionName; - - // 查询普通器械包、敷料包、自定义器械包 - reportParams.tousseTypeAndPackageSizeSql = DataIndex - .getTousseTypesAndPackageSizesFilterSQL( - TousseDefinition.PACKAGE_TYPE_INSIDE + "," - + TousseDefinition.PACKAGE_TYPE_DRESSING + "," - + TousseDefinition.PACKAGE_TYPE_DISINFECTION - + "," + TousseDefinition.PACKAGE_TYPE_CUSTOM, - null); - - reportParams.monthlyStr = dateQueryAdapter.dateConverAdapter3(dateQueryAdapter.stringFieldToDate("ti.sterileEndTime"),"mm"); - + reportParams.extraGroupBy = " ,td.tousseType, s.owngroup "; + reportParams.extraSelectColumns = " ,td.tousseType tousseType, s.owngroup owngroup "; reportParams.extraJoinCondition = " inner join SterilizationRecord sr on sr.id = ti.sterilizationRecord_id " - + "inner join Sterilizer s on s.id = sr.sterilizer_id "; + + "inner join Sterilizer s on s.id = sr.sterilizer_id"; - String sql = "select monthstr,sum(tl.amount) from (" + //查询月份 ,灭菌总数,器械包类型,灭菌炉分组 + String sql1 = "select monthstr,sum(tl.amount) amount,tl.tousseType tousseType, tl.owngroup owngroup from (" + dataIndex.getWorkAmountByPackageSQL("灭菌数量", - reportParams) + ") tl group by monthstr "; - - Map map = getMonthAmountMapBySql(sql); + reportParams) + ") tl group by monthstr, tl.tousseType, tl.owngroup "; + reportParams.extraQuery = " and ti.proxyDisinfection_id is not null "; + reportParams.extraSelectColumns = " ,'代理灭菌包' tousseType, s.owngroup owngroup"; + String sql2 = "select monthstr,sum(tl.amount) amount,tl.tousseType tousseType, tl.owngroup owngroup from (" + + dataIndex.getWorkAmountByPackageSQL("灭菌数量", + reportParams) + ") tl group by monthstr, tl.tousseType, tl.owngroup "; + String sql = sql1 + " union all " + sql2; + Map tousseMap = new HashMap(); + Map proxyTousseMap = new HashMap(); + Map foreignTousseMap = new HashMap(); + List sterilerGroupList = httpOptionManager.getHttpOptionListById("sterilerGroup"); + List> tousseList = new ArrayList>();//普通灭菌按任务组划分的list,map存放月份和数量 + List> proxyTousseList = new ArrayList>();//代理灭菌按任务组划分的list,map存放月份和数量 + if(sterilerGroupList!= null && sterilerGroupList.size()>0){ + for (int i = 0; i < sterilerGroupList.size(); i++) { + Map tousseListMap = new HashMap(); + tousseList.add(tousseListMap); + Map proxyTousseListMap = new HashMap(); + proxyTousseList.add(proxyTousseListMap); + } + } + ResultSet rs = null; + try { + rs = objectDao.executeSql(sql); + Map tousseOwngroup = new HashMap(); + List owngroupList = new ArrayList(); + while (rs.next()) { + String monthstr = rs.getString("monthstr"); + // 月份以0开头的,去掉0 + if(monthstr.length() > 1 && Integer.valueOf(monthstr) < 10){ + monthstr = Integer.valueOf(monthstr).toString(); + } + Integer amount = rs.getInt("amount"); + String tousseType = rs.getString("tousseType"); + String owngroup = rs.getString("owngroup"); + if(!owngroupList.contains(owngroup)){ + owngroupList.add(owngroup); + } + + if(TousseDefinition.PACKAGE_TYPE_INSIDE.equals(tousseType) + || TousseDefinition.PACKAGE_TYPE_DRESSING.equals(tousseType) + || TousseDefinition.PACKAGE_TYPE_DISINFECTION.equals(tousseType) + || TousseDefinition.PACKAGE_TYPE_CUSTOM.equals(tousseType)){ + BaseUtils.putMap(tousseMap, monthstr, amount); + if(tousseList.size() > 0){ + for (int i = 0; i < sterilerGroupList.size(); i++) { + if(owngroup.equals(sterilerGroupList.get(i).getOptionText())){ + BaseUtils.putMap(tousseList.get(i), monthstr, amount); + } + } + } + }else if(TousseDefinition.PACKAGE_TYPE_FOREIGNPROXY.equals(tousseType) + || TousseDefinition.PACKAGE_TYPE_PROXY.equals(tousseType)){ + BaseUtils.putMap(proxyTousseMap, monthstr, amount); + if(proxyTousseList.size() > 0){ + for (int i = 0; i < sterilerGroupList.size(); i++) { + if(owngroup.equals(sterilerGroupList.get(i).getOptionText())){ + BaseUtils.putMap(proxyTousseList.get(i), monthstr, amount); + } + } + } + }else if(TousseDefinition.PACKAGE_TYPE_FOREIGN.equals(tousseType) + || TousseDefinition.PACKAGE_TYPE_SPLIT.equals(tousseType)){ + BaseUtils.putMap(foreignTousseMap, monthstr, amount); + } + } + } catch (Exception e) { + e.printStackTrace(); + } finally { + DatabaseUtil.closeResultSetAndStatement(rs); + } + Integer thisYearAmount = 0; // 遍历12个月的数据,给rowBow的对应属性赋值 - for (Map.Entry entry : map.entrySet()){ + for (Map.Entry entry : tousseMap.entrySet()){ String month = entry.getKey(); Integer value = entry.getValue(); + if(value != null && value > 0){ + thisYearAmount += value; + } DataIndex.setWorkQualityBeanAmount(tousseBean, month, value); } + DataIndex.setWorkQualityBeanAmount(tousseBean, "今年", thisYearAmount); list.add(tousseBean); + //细分普通灭菌总包数 + splitSterilizationAmount("普通灭菌",tousseList, list, sterilerGroupList); - // 查询代理灭菌包 - reportParams.tousseTypeAndPackageSizeSql = DataIndex - .getTousseTypesAndPackageSizesFilterSQL( - TousseDefinition.PACKAGE_TYPE_PROXY + "," - + TousseDefinition.PACKAGE_TYPE_FOREIGNPROXY, - null); - - - sql = "select monthstr,sum(tl.amount) from (" - + dataIndex.getWorkAmountByPackageSQL("灭菌数量", - reportParams) + ") tl group by monthstr "; - - map = getMonthAmountMapBySql(sql); - // 遍历12个月的数据,给rowBow的对应属性赋值 - for (Map.Entry entry : map.entrySet()){ + Integer proxyThisYearAmount = 0; + for (Map.Entry entry : proxyTousseMap.entrySet()){ String month = entry.getKey(); Integer value = entry.getValue(); + if(value != null){ + proxyThisYearAmount += value; + } DataIndex.setWorkQualityBeanAmount(proxyTousseBean, month, value); } + DataIndex.setWorkQualityBeanAmount(proxyTousseBean, "今年", proxyThisYearAmount); list.add(proxyTousseBean); + //细分代理灭菌总包数 + splitSterilizationAmount("代理灭菌",proxyTousseList, list, sterilerGroupList); - - // 查询外来器械灭菌包 - reportParams.tousseTypeAndPackageSizeSql = DataIndex - .getTousseTypesAndPackageSizesFilterSQL( - TousseDefinition.PACKAGE_TYPE_FOREIGN + "," - + TousseDefinition.PACKAGE_TYPE_SPLIT, null); - - - sql = "select monthstr,sum(tl.amount) from (" - + dataIndex.getWorkAmountByPackageSQL("灭菌数量", - reportParams) + ") tl group by monthstr "; - - map = getMonthAmountMapBySql(sql); - // 遍历12个月的数据,给rowBow的对应属性赋值 - for (Map.Entry entry : map.entrySet()){ + Integer foreignThisYear = 0; + for (Map.Entry entry : foreignTousseMap.entrySet()){ String month = entry.getKey(); Integer value = entry.getValue(); + if(value != null){ + foreignThisYear += value; + } DataIndex.setWorkQualityBeanAmount(foreignTousseBean, month, value); } + DataIndex.setWorkQualityBeanAmount(foreignTousseBean, "今年", foreignThisYear); list.add(foreignTousseBean); } + /** + * 按灭菌炉分组拆分普通灭菌总数,代理灭菌总数,外来器械灭菌总数,创建新bean加入到list + * @param splistType 拆分的类型 用作列头显示 + * @param tousseList 要拆分的灭菌总数列表 + * @param list 工作质量收集统计Bean列表 + * @param sterilerGroupList 灭菌炉分组 + */ + public void splitSterilizationAmount(String splistType, List> tousseList ,List list, List sterilerGroupList){ + //细分灭菌总包数 + for (int i = 0; i < tousseList.size(); i++) { + Integer splitTousseAmount = 0; + WorkQualityCollection spiltBean = new WorkQualityCollection(); + String optionText = sterilerGroupList.get(i).getOptionText(); + spiltBean.setRowNum(list.size()+1); + spiltBean.setTitle("灭菌物品包数(" + splistType + "/"+ optionText +")"); + for (Map.Entry entry : tousseList.get(i).entrySet()){ + String month = entry.getKey(); + Integer value = entry.getValue(); + if(value != null){ + splitTousseAmount += value; + } + DataIndex.setWorkQualityBeanAmount(spiltBean, month, value); + } + DataIndex.setWorkQualityBeanAmount(spiltBean, "今年", splitTousseAmount); + list.add(spiltBean); + } + } + public void getMaterialWashUnqualifiedAmount( Map> startAndEndDays, List list,String querySupplyRoom, @@ -1504,13 +1685,15 @@ bean.initAmountSpace(); } try { + Integer thisYearAmount = 0; while (result.next()) { key = result.getString(1); // 月份以0开头的,去掉0 if(key.length() > 1 && Integer.valueOf(key) < 10){ key = Integer.valueOf(key).toString(); } amount = result.getInt(2); + thisYearAmount += amount; map.put(key,amount); if(isHidePartOfWorkQualityCollection == true){ // 设置发生数 @@ -1519,33 +1702,61 @@ dataIndex.setWorkQualityBeanAmount(bean, key, amount); } } + if(thisYearAmount > 0){ + if(isHidePartOfWorkQualityCollection == true){ + // 设置发生数 + dataIndex.setWorkQualityBeanUnQualityAmount(bean, "今年", thisYearAmount); + }else{ + dataIndex.setWorkQualityBeanAmount(bean, "今年", thisYearAmount); + } + } } catch (SQLException e) { e.printStackTrace(); }finally { DatabaseUtil.closeResultSetAndStatement(result); } // 遍历结果集 设置百分比 - if(packAmountMap != null && isHidePartOfWorkQualityCollection == true){ + if(packAmountMap != null){ + Integer sumAmount = 0; + Integer sumAmount2 = 0; for(Map.Entry entry:packAmountMap.entrySet()){ - key = entry.getKey(); - amount = map.get(key); - // 总数 - int amount2 = entry.getValue(); - if(amount2 > 0 && amount != null){ - double percentage = new BigDecimal(amount).divide( - new BigDecimal(amount2), 4, BigDecimal.ROUND_HALF_UP) - .doubleValue(); - percentage = new BigDecimal(percentage).multiply( - new BigDecimal(100)).doubleValue(); - dataIndex.setWorkQualityBeanPercentage(bean, key, percentage); - } - if(isHidePartOfWorkQualityCollection == true && amount2 > 0){ - dataIndex.setWorkQualityBeanAmount(bean, key, amount2); - if(amount == null){ - dataIndex.setWorkQualityBeanUnQualityAmount(bean, key, 0); - }else { - dataIndex.setWorkQualityBeanUnQualityAmount(bean, key, amount); + key = entry.getKey(); + amount = map.get(key); + // 总数 + Integer amount2 = entry.getValue(); + if(amount2 != null && amount2 > 0){ + sumAmount2 += amount2; + if(amount != null){ + sumAmount += amount; + if(isHidePartOfWorkQualityCollection == true){ + double percentage = new BigDecimal(amount).divide( + new BigDecimal(amount2), 4, BigDecimal.ROUND_HALF_UP) + .doubleValue(); + percentage = new BigDecimal(percentage).multiply( + new BigDecimal(100)).doubleValue(); + dataIndex.setWorkQualityBeanPercentage(bean, key, percentage); + } + } } + if(isHidePartOfWorkQualityCollection == true && amount2 > 0){ + dataIndex.setWorkQualityBeanAmount(bean, key, amount2); + if(amount == null){ + dataIndex.setWorkQualityBeanUnQualityAmount(bean, key, 0); + }else { + dataIndex.setWorkQualityBeanUnQualityAmount(bean, key, amount); + } + } + } + if(sumAmount2 > 0){ + double percentage = new BigDecimal(sumAmount).divide( + new BigDecimal(sumAmount2), 4, BigDecimal.ROUND_HALF_UP) + .doubleValue(); + percentage = new BigDecimal(percentage).multiply( + new BigDecimal(100)).doubleValue(); + dataIndex.setWorkQualityBeanPercentage(bean, "今年", percentage); + if(isHidePartOfWorkQualityCollection == true){ + dataIndex.setWorkQualityBeanAmount(bean, "今年", sumAmount2); + dataIndex.setWorkQualityBeanUnQualityAmount(bean, "今年", sumAmount); } } } @@ -1625,35 +1836,46 @@ Integer amount = 0; Map map = new HashMap(); try { + Integer thisYearAmount = 0; while (result.next()) { key = result.getString(1); // 月份以0开头的,去掉0 if(key.length() > 1 && Integer.valueOf(key) < 10){ key = Integer.valueOf(key).toString(); } amount = result.getInt(2); + if(amount > 0){ + thisYearAmount += amount; + } map.put(key,amount); dataIndex.setWorkQualityBeanAmount(bean, key, amount); } + dataIndex.setWorkQualityBeanAmount(bean, "今年", thisYearAmount); } catch (SQLException e) { e.printStackTrace(); }finally { DatabaseUtil.closeResultSetAndStatement(result); } // 遍历结果集 设置百分比 if(packAmountMap != null){ + Integer sumAmount = 0; + Integer sumAmount2 = 0; for(Map.Entry entry:packAmountMap.entrySet()){ key = entry.getKey(); amount = map.get(key); // 总数 - int amount2 = entry.getValue(); - if(amount2 > 0 && amount != null){ - double percentage = new BigDecimal(amount).divide( - new BigDecimal(amount2), 4, BigDecimal.ROUND_HALF_UP) - .doubleValue(); - percentage = new BigDecimal(percentage).multiply( - new BigDecimal(100)).doubleValue(); - dataIndex.setWorkQualityBeanPercentage(bean, key, percentage); + Integer amount2 = entry.getValue(); + if(amount2 != null && amount2 > 0){ + sumAmount2 += amount2; + if(amount != null){ + sumAmount += amount; + double percentage = new BigDecimal(amount).divide( + new BigDecimal(amount2), 4, BigDecimal.ROUND_HALF_UP) + .doubleValue(); + percentage = new BigDecimal(percentage).multiply( + new BigDecimal(100)).doubleValue(); + dataIndex.setWorkQualityBeanPercentage(bean, key, percentage); + } } if(isHidePartOfWorkQualityCollection == true && amount2 > 0){ dataIndex.setWorkQualityBeanAmount(bean, key, amount2); @@ -1664,6 +1886,18 @@ } } } + if(sumAmount2 > 0){ + double percentage = new BigDecimal(sumAmount).divide( + new BigDecimal(sumAmount2), 4, BigDecimal.ROUND_HALF_UP) + .doubleValue(); + percentage = new BigDecimal(percentage).multiply( + new BigDecimal(100)).doubleValue(); + dataIndex.setWorkQualityBeanPercentage(bean, "今年", percentage); + if(isHidePartOfWorkQualityCollection == true){ + dataIndex.setWorkQualityBeanAmount(bean, "今年", sumAmount2); + dataIndex.setWorkQualityBeanUnQualityAmount(bean, "今年", sumAmount); + } + } } list.add(bean); } @@ -1696,12 +1930,14 @@ + dateQueryAdapter.dateAdapter(endDay) + " and i.status != '未发货'"; - String totalSql = "select count(*) from invoice i,tousseinstance t where i.id=t.invoice_id " - + " and i.sendTime >= " + String totalSql = "select count(*) from invoiceplan p ,invoice i,tousseinstance t where p.id = i.invoiceplan_id and t.invoice_id = i.id " + + SqlUtils.get_InSql_Extra("i.orgUnitCoding", querySupplyRoom) + + " and p.depart = '手术室' " + + "and p.applicationTime >= " + dateQueryAdapter.dateAdapter(startDay) - + " and i.sendTime <= " + + " and p.applicationTime <= " + dateQueryAdapter.dateAdapter(endDay) - + " and i.depart = '" + "手术室" + "'"; + + " and i.status != '未发货'"; bean.setRowNum(list.size()+1);; bean.setTitle("手术包次日下送件数"); @@ -1769,13 +2005,17 @@ } Map map = new HashMap(); try { + Integer thisYearAmount = 0; while (result.next()) { key = result.getString(1); // 月份以0开头的,去掉0 if(key.length() > 1 && Integer.valueOf(key) < 10){ key = Integer.valueOf(key).toString(); } amount = result.getInt(2); + if(amount > 0){ + thisYearAmount += amount; + } map.put(key,amount); if(isHidePartOfWorkQualityCollection == true){ // 设置发生数 @@ -1784,39 +2024,87 @@ dataIndex.setWorkQualityBeanAmount(bean, key, amount); } } + if(isHidePartOfWorkQualityCollection == true){ + // 设置发生数 + dataIndex.setWorkQualityBeanUnQualityAmount(bean, "今年", thisYearAmount); + }else{ + dataIndex.setWorkQualityBeanAmount(bean, "今年", thisYearAmount); + } } catch (SQLException e) { e.printStackTrace(); }finally { DatabaseUtil.closeResultSetAndStatement(result); } + String totalSql = "select " + dateQueryAdapter.dateConverAdapter3("p.applicationTime","mm") + + " monthstr, count(*) amount from invoiceplan p ,invoice i,tousseinstance t where p.id = i.invoiceplan_id and t.invoice_id = i.id " + + SqlUtils.get_InSql_Extra("i.orgUnitCoding", querySupplyRoom) + + " and p.depart = '手术室' " + + "and p.applicationTime >= " + + dateQueryAdapter.dateAdapter(queryYear) + + " and p.applicationTime <= " + + dateQueryAdapter.dateAdapter(nextYear) + + " and i.status != '未发货'" + + " group by " + dateQueryAdapter.dateConverAdapter3("p.applicationTime","mm"); // 遍历结果集 设置百分比 - if(invoiceOperateAmountMap != null){ - for(Map.Entry entry:invoiceOperateAmountMap.entrySet()){ - key = entry.getKey(); - amount = map.get(key); -// if(amount == null || amount <= 0){ -// continue; -// } - // 总数 - int amount2 = entry.getValue(); - if(amount2 > 0 && amount != null){ + Integer thisYearUnQualityAmount = 0; + Integer sumAmount = 0; + Integer sumAmount2 =0; + ResultSet taotalRs = objectDao.executeSql(totalSql); + Map toatlMap = new HashMap(); + try { + while (taotalRs.next()) { + key = taotalRs.getString("monthstr"); + // 月份以0开头的,去掉0 + if(key.length() > 1 && Integer.valueOf(key) < 10){ + key = Integer.valueOf(key).toString(); + } + int mouthAmount = taotalRs.getInt("amount"); + toatlMap.put(key,mouthAmount); + } + } catch (SQLException e) { + e.printStackTrace(); + }finally { + DatabaseUtil.closeResultSetAndStatement(taotalRs); + } + + for(Map.Entry entry:toatlMap.entrySet()){ + key = entry.getKey(); + amount = map.get(key); + // 总数 + Integer amount2 = entry.getValue(); + if(amount2 != null && amount2 > 0){ + sumAmount2+=amount2; + if(amount != null){ + sumAmount+=amount; double percentage = new BigDecimal(amount).divide( new BigDecimal(amount2), 4, BigDecimal.ROUND_HALF_UP) .doubleValue(); percentage = new BigDecimal(percentage).multiply( new BigDecimal(100)).doubleValue(); dataIndex.setWorkQualityBeanPercentage(bean, key, percentage); } - if(isHidePartOfWorkQualityCollection == true && amount2 > 0){ - dataIndex.setWorkQualityBeanAmount(bean, key, amount2); - if(amount == null){ - dataIndex.setWorkQualityBeanUnQualityAmount(bean, key, 0); - }else { - dataIndex.setWorkQualityBeanUnQualityAmount(bean, key, amount); - } + } + if(isHidePartOfWorkQualityCollection == true && amount2 > 0){ + dataIndex.setWorkQualityBeanAmount(bean, key, amount2); + if(amount == null){ + dataIndex.setWorkQualityBeanUnQualityAmount(bean, key, 0); + }else { + dataIndex.setWorkQualityBeanUnQualityAmount(bean, key, amount); } } } + if(sumAmount2 > 0){ + double percentage = new BigDecimal(sumAmount).divide( + new BigDecimal(sumAmount2), 4, BigDecimal.ROUND_HALF_UP) + .doubleValue(); + percentage = new BigDecimal(percentage).multiply( + new BigDecimal(100)).doubleValue(); + dataIndex.setWorkQualityBeanPercentage(bean, "今年", percentage); + if(isHidePartOfWorkQualityCollection == true){ + dataIndex.setWorkQualityBeanAmount(bean, "今年", sumAmount2); + dataIndex.setWorkQualityBeanUnQualityAmount(bean, "今年", sumAmount); + } + } list.add(bean); } @@ -1919,13 +2207,17 @@ } Map map = new HashMap(); try { + Integer thisYearAmount = 0; while (result.next()) { key = result.getString(1); // 月份以0开头的,去掉0 if(key.length() > 1 && Integer.valueOf(key) < 10){ key = Integer.valueOf(key).toString(); } amount = result.getInt(2); + if(amount > 0){ + thisYearAmount += amount; + } map.put(key,amount); if(isHidePartOfWorkQualityCollection == true){ // 设置发生数 @@ -1934,25 +2226,63 @@ dataIndex.setWorkQualityBeanAmount(bean, key, amount); } } + if(isHidePartOfWorkQualityCollection == true){ + // 设置发生数 + dataIndex.setWorkQualityBeanUnQualityAmount(bean, "今年", thisYearAmount); + }else{ + dataIndex.setWorkQualityBeanAmount(bean, "今年", thisYearAmount); + } } catch (SQLException e) { e.printStackTrace(); }finally { DatabaseUtil.closeResultSetAndStatement(result); } // 遍历结果集 设置百分比 + Integer sumAmount = 0; + Integer sumAmount2 = 0; + if(sterilizationRecordAmountMap != null){ + for(Map.Entry entry:sterilizationRecordAmountMap.entrySet()){ + key = entry.getKey(); + amount = map.get(key); + if(amount != null && amount > 0){ + sumAmount += amount; + } + // 总数 + Integer amount2 = entry.getValue(); + if(amount2 != null && amount2 > 0){ + sumAmount2 += amount2; + } + } + if(sumAmount2 > 0){ + double percentage = new BigDecimal(sumAmount).divide( + new BigDecimal(sumAmount2), 4, BigDecimal.ROUND_HALF_UP) + .doubleValue(); + percentage = new BigDecimal(percentage).multiply( + new BigDecimal(100)).doubleValue(); + dataIndex.setWorkQualityBeanPercentage(bean, "今年", percentage); + if(isHidePartOfWorkQualityCollection == true){ + dataIndex.setWorkQualityBeanAmount(bean, "今年", sumAmount2); + dataIndex.setWorkQualityBeanUnQualityAmount(bean, "今年", sumAmount); + } + } + } if(sterilizationRecordAmountMap != null && isHidePartOfWorkQualityCollection == true){ for(Map.Entry entry:sterilizationRecordAmountMap.entrySet()){ key = entry.getKey(); amount = map.get(key); // 总数 - int amount2 = entry.getValue(); - if(amount2 > 0 && amount != null){ - double percentage = new BigDecimal(amount).divide( - new BigDecimal(amount2), 4, BigDecimal.ROUND_HALF_UP) - .doubleValue(); - percentage = new BigDecimal(percentage).multiply( - new BigDecimal(100)).doubleValue(); - dataIndex.setWorkQualityBeanPercentage(bean, key, percentage); + Integer amount2 = entry.getValue(); + if(amount2 != null && amount2 > 0l){ + sumAmount2 += amount2; + if(amount != null){ + sumAmount += amount; + double percentage = new BigDecimal(amount).divide( + new BigDecimal(amount2), 4, BigDecimal.ROUND_HALF_UP) + .doubleValue(); + percentage = new BigDecimal(percentage).multiply( + new BigDecimal(100)).doubleValue(); + dataIndex.setWorkQualityBeanPercentage(bean, key, percentage); + } } if(isHidePartOfWorkQualityCollection == true && amount2 > 0){ dataIndex.setWorkQualityBeanAmount(bean, key, amount2); @@ -2038,35 +2368,44 @@ Integer amount = 0; Map map = new HashMap(); try { + Integer thisYearAmount = 0; while (result.next()) { key = result.getString(1); // 月份以0开头的,去掉0 if(key.length() > 1 && Integer.valueOf(key) < 10){ key = Integer.valueOf(key).toString(); } amount = result.getInt(2); + thisYearAmount += amount; map.put(key,amount); dataIndex.setWorkQualityBeanAmount(bean, key, amount); } + dataIndex.setWorkQualityBeanAmount(bean, "今年", thisYearAmount); } catch (SQLException e) { e.printStackTrace(); }finally { DatabaseUtil.closeResultSetAndStatement(result); } // 遍历结果集 设置百分比 if(packAmountMap != null){ + Integer sumAmount = 0; + Integer sumAmount2 = 0; for(Map.Entry entry:packAmountMap.entrySet()){ key = entry.getKey(); amount = map.get(key); // 总数 - int amount2 = entry.getValue(); - if(amount2 > 0 && amount != null){ - double percentage = new BigDecimal(amount).divide( - new BigDecimal(amount2), 4, BigDecimal.ROUND_HALF_UP) - .doubleValue(); - percentage = new BigDecimal(percentage).multiply( - new BigDecimal(100)).doubleValue(); - dataIndex.setWorkQualityBeanPercentage(bean, key, percentage); + Integer amount2 = entry.getValue(); + if(amount2 != null && amount2 > 0){ + sumAmount2 += amount2; + if(amount != null){ + sumAmount += amount; + double percentage = new BigDecimal(amount).divide( + new BigDecimal(amount2), 4, BigDecimal.ROUND_HALF_UP) + .doubleValue(); + percentage = new BigDecimal(percentage).multiply( + new BigDecimal(100)).doubleValue(); + dataIndex.setWorkQualityBeanPercentage(bean, key, percentage); + } } if(isHidePartOfWorkQualityCollection == true && amount2 > 0){ dataIndex.setWorkQualityBeanAmount(bean, key, amount2); @@ -2077,6 +2416,18 @@ } } } + if(sumAmount2 > 0){ + double percentage = new BigDecimal(sumAmount).divide( + new BigDecimal(sumAmount2), 4, BigDecimal.ROUND_HALF_UP) + .doubleValue(); + percentage = new BigDecimal(percentage).multiply( + new BigDecimal(100)).doubleValue(); + dataIndex.setWorkQualityBeanPercentage(bean, "今年", percentage); + if(isHidePartOfWorkQualityCollection == true){ + dataIndex.setWorkQualityBeanAmount(bean, "今年", sumAmount2); + dataIndex.setWorkQualityBeanUnQualityAmount(bean, "今年", sumAmount); + } + } } list.add(bean); } @@ -2164,6 +2515,7 @@ bean.setTitle("无菌物品发放错误发生数"); String key = ""; Integer amount = 0; + Integer thisYearAmount = 0; if(isHidePartOfWorkQualityCollection == true){ bean.initAmountSpace(); } @@ -2176,6 +2528,9 @@ key = Integer.valueOf(key).toString(); } amount = result.getInt(2); + if(amount > 0){ + thisYearAmount += amount; + } map.put(key,amount); if(isHidePartOfWorkQualityCollection == true){ // 设置发生数 @@ -2184,25 +2539,40 @@ dataIndex.setWorkQualityBeanAmount(bean, key, amount); } } + if(isHidePartOfWorkQualityCollection == true){ + // 设置今年发生数 + dataIndex.setWorkQualityBeanUnQualityAmount(bean, "今年", thisYearAmount); + }else{ + dataIndex.setWorkQualityBeanAmount(bean, "今年", thisYearAmount); + } } catch (SQLException e) { e.printStackTrace(); }finally { DatabaseUtil.closeResultSetAndStatement(result); } // 遍历结果集 设置百分比 - if(invoiceAmountMap != null && isHidePartOfWorkQualityCollection == true){ + if(invoiceAmountMap != null){ + int sumAmount = 0; + int sumAmount2 = 0; for(Map.Entry entry:invoiceAmountMap.entrySet()){ key = entry.getKey(); amount = map.get(key); // 总数 - int amount2 = entry.getValue(); - if(amount2 > 0 && amount != null){ - double percentage = new BigDecimal(amount).divide( - new BigDecimal(amount2), 4, BigDecimal.ROUND_HALF_UP) - .doubleValue(); - percentage = new BigDecimal(percentage).multiply( - new BigDecimal(100)).doubleValue(); - dataIndex.setWorkQualityBeanPercentage(bean, key, percentage); + Integer amount2 = entry.getValue(); + if(amount2 != null && amount2 > 0){ + sumAmount2 += amount2; + if(amount != null){ + sumAmount += amount; + if(isHidePartOfWorkQualityCollection == true){ + double percentage = new BigDecimal(amount).divide( + new BigDecimal(amount2), 4, BigDecimal.ROUND_HALF_UP) + .doubleValue(); + percentage = new BigDecimal(percentage).multiply( + new BigDecimal(100)).doubleValue(); + dataIndex.setWorkQualityBeanPercentage(bean, key, percentage); + } + } + } if(isHidePartOfWorkQualityCollection == true && amount2 > 0){ dataIndex.setWorkQualityBeanAmount(bean, key, amount2); @@ -2213,6 +2583,18 @@ } } } + if(sumAmount2 > 0 && isHidePartOfWorkQualityCollection == true){ + double thisYearPercentage = new BigDecimal(sumAmount).divide( + new BigDecimal(sumAmount2), 4, BigDecimal.ROUND_HALF_UP) + .doubleValue(); + thisYearPercentage = new BigDecimal(thisYearPercentage).multiply( + new BigDecimal(100)).doubleValue(); + dataIndex.setWorkQualityBeanPercentage(bean, "今年", thisYearPercentage); + if(isHidePartOfWorkQualityCollection == true){ + dataIndex.setWorkQualityBeanAmount(bean, "今年", sumAmount2); + dataIndex.setWorkQualityBeanUnQualityAmount(bean, "今年", sumAmount); + } + } } list.add(bean); } @@ -2306,13 +2688,15 @@ bean.initAmountSpace(); } try { + Integer thisYearAmount = 0; while (result.next()) { key = result.getString(1); // 月份以0开头的,去掉0 if(key.length() > 1 && Integer.valueOf(key) < 10){ key = Integer.valueOf(key).toString(); } amount = result.getInt(2); + thisYearAmount += amount; map.put(key,amount); if(isHidePartOfWorkQualityCollection == true){ // 设置发生数 @@ -2321,25 +2705,41 @@ dataIndex.setWorkQualityBeanAmount(bean, key, amount); } } + if(thisYearAmount > 0){ + if(isHidePartOfWorkQualityCollection == true){ + // 设置发生数 + dataIndex.setWorkQualityBeanUnQualityAmount(bean, "今年", thisYearAmount); + }else{ + dataIndex.setWorkQualityBeanAmount(bean, "今年", thisYearAmount); + } + } } catch (SQLException e) { e.printStackTrace(); }finally { DatabaseUtil.closeResultSetAndStatement(result); } // 遍历结果集 设置百分比 - if(washAmountMap != null && isHidePartOfWorkQualityCollection == true){ + if(washAmountMap != null){ + Integer sumAmount = 0; + Integer sumAmount2 = 0; for(Map.Entry entry:washAmountMap.entrySet()){ key = entry.getKey(); amount = map.get(key); // 总数 - int amount2 = entry.getValue(); - if(amount2 > 0 && amount != null){ - double percentage = new BigDecimal(amount).divide( - new BigDecimal(amount2), 4, BigDecimal.ROUND_HALF_UP) - .doubleValue(); - percentage = new BigDecimal(percentage).multiply( - new BigDecimal(100)).doubleValue(); - dataIndex.setWorkQualityBeanPercentage(bean, key, percentage); + Integer amount2 = entry.getValue(); + if(amount2 != null && amount2 > 0){ + sumAmount2 += amount2; + if(amount != null){ + sumAmount += amount; + if(isHidePartOfWorkQualityCollection == true){ + double percentage = new BigDecimal(amount).divide( + new BigDecimal(amount2), 4, BigDecimal.ROUND_HALF_UP) + .doubleValue(); + percentage = new BigDecimal(percentage).multiply( + new BigDecimal(100)).doubleValue(); + dataIndex.setWorkQualityBeanPercentage(bean, key, percentage); + } + } } if(isHidePartOfWorkQualityCollection == true && amount2 > 0){ dataIndex.setWorkQualityBeanAmount(bean, key, amount2); @@ -2350,6 +2750,18 @@ } } } + if(sumAmount2 > 0){ + double percentage = new BigDecimal(sumAmount).divide( + new BigDecimal(sumAmount2), 4, BigDecimal.ROUND_HALF_UP) + .doubleValue(); + percentage = new BigDecimal(percentage).multiply( + new BigDecimal(100)).doubleValue(); + dataIndex.setWorkQualityBeanPercentage(bean, "今年", percentage); + if(isHidePartOfWorkQualityCollection == true){ + dataIndex.setWorkQualityBeanAmount(bean, "今年", sumAmount2); + dataIndex.setWorkQualityBeanUnQualityAmount(bean, "今年", sumAmount); + } + } } list.add(bean); } @@ -2380,35 +2792,44 @@ Integer amount = 0; Map map = new HashMap(); try { + Integer thisYearAmount = 0; while (result.next()) { key = result.getString(1); // 月份以0开头的,去掉0 if(key.length() > 1 && Integer.valueOf(key) < 10){ key = Integer.valueOf(key).toString(); } amount = result.getInt(2); + thisYearAmount += amount; map.put(key,amount); dataIndex.setWorkQualityBeanAmount(bean, key, amount); } + dataIndex.setWorkQualityBeanAmount(bean, "今年", thisYearAmount); } catch (SQLException e) { e.printStackTrace(); }finally { DatabaseUtil.closeResultSetAndStatement(result); } // 遍历结果集 设置百分比 if(packAmountMap != null){ + Integer sumAmount = 0; + Integer sumAmount2 = 0; for(Map.Entry entry:packAmountMap.entrySet()){ key = entry.getKey(); amount = map.get(key); // 总数 - int amount2 = entry.getValue(); - if(amount2 > 0 && amount != null){ - double percentage = new BigDecimal(amount).divide( - new BigDecimal(amount2), 4, BigDecimal.ROUND_HALF_UP) - .doubleValue(); - percentage = new BigDecimal(percentage).multiply( - new BigDecimal(100)).doubleValue(); - dataIndex.setWorkQualityBeanPercentage(bean, key, percentage); + Integer amount2 = entry.getValue(); + if(amount2 != null && amount2 > 0){ + sumAmount2 += amount2; + if(amount != null){ + sumAmount += amount; + double percentage = new BigDecimal(amount).divide( + new BigDecimal(amount2), 4, BigDecimal.ROUND_HALF_UP) + .doubleValue(); + percentage = new BigDecimal(percentage).multiply( + new BigDecimal(100)).doubleValue(); + dataIndex.setWorkQualityBeanPercentage(bean, key, percentage); + } } if(isHidePartOfWorkQualityCollection == true && amount2 > 0){ dataIndex.setWorkQualityBeanAmount(bean, key, amount2); @@ -2419,6 +2840,18 @@ } } } + if(sumAmount2 > 0){ + double percentage = new BigDecimal(sumAmount).divide( + new BigDecimal(sumAmount2), 4, BigDecimal.ROUND_HALF_UP) + .doubleValue(); + percentage = new BigDecimal(percentage).multiply( + new BigDecimal(100)).doubleValue(); + dataIndex.setWorkQualityBeanPercentage(bean, "今年", percentage); + if(isHidePartOfWorkQualityCollection == true){ + dataIndex.setWorkQualityBeanAmount(bean, "今年", sumAmount2); + dataIndex.setWorkQualityBeanUnQualityAmount(bean, "今年", sumAmount); + } + } } list.add(bean); } @@ -2497,35 +2930,46 @@ Integer amount = 0; Map map = new HashMap(); try { + Integer thisYearAmount = 0; while (result.next()) { key = result.getString(1); // 月份以0开头的,去掉0 if(key.length() > 1 && Integer.valueOf(key) < 10){ key = Integer.valueOf(key).toString(); } amount = result.getInt(2); + if(amount > 0){ + thisYearAmount += amount; + } map.put(key,amount); dataIndex.setWorkQualityBeanAmount(bean, key, amount); } + dataIndex.setWorkQualityBeanAmount(bean, "今年", thisYearAmount); } catch (SQLException e) { e.printStackTrace(); }finally { DatabaseUtil.closeResultSetAndStatement(result); } // 遍历结果集 设置百分比 if(packAmountMap != null){ + Integer sumAmount = 0; + Integer sumAmount2 = 0; for(Map.Entry entry:packAmountMap.entrySet()){ key = entry.getKey(); amount = map.get(key); // 总数 - int amount2 = entry.getValue(); - if(amount2 > 0 && amount != null){ - double percentage = new BigDecimal(amount).divide( - new BigDecimal(amount2), 4, BigDecimal.ROUND_HALF_UP) - .doubleValue(); - percentage = new BigDecimal(percentage).multiply( - new BigDecimal(100)).doubleValue(); - dataIndex.setWorkQualityBeanPercentage(bean, key, percentage); + Integer amount2 = entry.getValue(); + if(amount2 != null && amount2 > 0){ + sumAmount2 += amount2; + if(amount != null){ + sumAmount += amount; + double percentage = new BigDecimal(amount).divide( + new BigDecimal(amount2), 4, BigDecimal.ROUND_HALF_UP) + .doubleValue(); + percentage = new BigDecimal(percentage).multiply( + new BigDecimal(100)).doubleValue(); + dataIndex.setWorkQualityBeanPercentage(bean, key, percentage); + } } if(isHidePartOfWorkQualityCollection == true && amount2 > 0){ dataIndex.setWorkQualityBeanAmount(bean, key, amount2); @@ -2536,6 +2980,18 @@ } } } + if(sumAmount2 > 0){ + double percentage = new BigDecimal(sumAmount).divide( + new BigDecimal(sumAmount2), 4, BigDecimal.ROUND_HALF_UP) + .doubleValue(); + percentage = new BigDecimal(percentage).multiply( + new BigDecimal(100)).doubleValue(); + dataIndex.setWorkQualityBeanPercentage(bean, "今年", percentage); + if(isHidePartOfWorkQualityCollection == true){ + dataIndex.setWorkQualityBeanAmount(bean, "今年", sumAmount2); + dataIndex.setWorkQualityBeanUnQualityAmount(bean, "今年", sumAmount); + } + } } list.add(bean); } @@ -2614,35 +3070,46 @@ Integer amount = 0; Map map = new HashMap(); try { + Integer thisYearAmount = 0; while (result.next()) { key = result.getString(1); // 月份以0开头的,去掉0 if(key.length() > 1 && Integer.valueOf(key) < 10){ key = Integer.valueOf(key).toString(); } amount = result.getInt(2); + if(amount > 0){ + thisYearAmount += amount; + } map.put(key,amount); dataIndex.setWorkQualityBeanAmount(bean, key, amount); } + dataIndex.setWorkQualityBeanAmount(bean, "今年", thisYearAmount); } catch (SQLException e) { e.printStackTrace(); }finally { DatabaseUtil.closeResultSetAndStatement(result); } // 遍历结果集 设置百分比 if(packAmountMap != null){ + Integer sumAmount = 0; + Integer sumAmount2 = 0; for(Map.Entry entry:packAmountMap.entrySet()){ key = entry.getKey(); amount = map.get(key); // 总数 - int amount2 = entry.getValue(); - if(amount2 > 0 && amount != null){ - double percentage = new BigDecimal(amount).divide( - new BigDecimal(amount2), 4, BigDecimal.ROUND_HALF_UP) - .doubleValue(); - percentage = new BigDecimal(percentage).multiply( - new BigDecimal(100)).doubleValue(); - dataIndex.setWorkQualityBeanPercentage(bean, key, percentage); + Integer amount2 = entry.getValue(); + if(amount2 != null && amount2 > 0){ + sumAmount2 += amount2; + if(amount != null){ + sumAmount += amount; + double percentage = new BigDecimal(amount).divide( + new BigDecimal(amount2), 4, BigDecimal.ROUND_HALF_UP) + .doubleValue(); + percentage = new BigDecimal(percentage).multiply( + new BigDecimal(100)).doubleValue(); + dataIndex.setWorkQualityBeanPercentage(bean, key, percentage); + } } if(isHidePartOfWorkQualityCollection == true && amount2 > 0){ dataIndex.setWorkQualityBeanAmount(bean, key, amount2); @@ -2653,6 +3120,18 @@ } } } + if(sumAmount2 > 0){ + double percentage = new BigDecimal(sumAmount).divide( + new BigDecimal(sumAmount2), 4, BigDecimal.ROUND_HALF_UP) + .doubleValue(); + percentage = new BigDecimal(percentage).multiply( + new BigDecimal(100)).doubleValue(); + dataIndex.setWorkQualityBeanPercentage(bean, "今年", percentage); + if(isHidePartOfWorkQualityCollection == true){ + dataIndex.setWorkQualityBeanAmount(bean, "今年", sumAmount2); + dataIndex.setWorkQualityBeanUnQualityAmount(bean, "今年", sumAmount); + } + } } list.add(bean); } @@ -2730,35 +3209,46 @@ Integer amount = 0; Map map = new HashMap(); try { + Integer thisYearAmount = 0; while (result.next()) { key = result.getString(1); // 月份以0开头的,去掉0 if(key.length() > 1 && Integer.valueOf(key) < 10){ key = Integer.valueOf(key).toString(); } amount = result.getInt(2); + if(amount > 0){ + thisYearAmount += amount; + } map.put(key,amount); dataIndex.setWorkQualityBeanAmount(bean, key, amount); } + dataIndex.setWorkQualityBeanAmount(bean, "今年", thisYearAmount); } catch (SQLException e) { e.printStackTrace(); }finally { DatabaseUtil.closeResultSetAndStatement(result); } // 遍历结果集 设置百分比 if(packAmountMap != null){ + Integer sumAmount = 0; + Integer sumAmount2 = 0; for(Map.Entry entry:packAmountMap.entrySet()){ key = entry.getKey(); amount = map.get(key); // 总数 - int amount2 = entry.getValue(); - if(amount2 > 0 && amount != null){ - double percentage = new BigDecimal(amount).divide( - new BigDecimal(amount2), 4, BigDecimal.ROUND_HALF_UP) - .doubleValue(); - percentage = new BigDecimal(percentage).multiply( - new BigDecimal(100)).doubleValue(); - dataIndex.setWorkQualityBeanPercentage(bean, key, percentage); + Integer amount2 = entry.getValue(); + if(amount2 != null && amount2 > 0){ + sumAmount2 += amount2; + if(amount != null){ + sumAmount += amount; + double percentage = new BigDecimal(amount).divide( + new BigDecimal(amount2), 4, BigDecimal.ROUND_HALF_UP) + .doubleValue(); + percentage = new BigDecimal(percentage).multiply( + new BigDecimal(100)).doubleValue(); + dataIndex.setWorkQualityBeanPercentage(bean, key, percentage); + } } if(isHidePartOfWorkQualityCollection == true && amount2 > 0){ dataIndex.setWorkQualityBeanAmount(bean, key, amount2); @@ -2769,6 +3259,18 @@ } } } + if(sumAmount2 > 0){ + double percentage = new BigDecimal(sumAmount).divide( + new BigDecimal(sumAmount2), 4, BigDecimal.ROUND_HALF_UP) + .doubleValue(); + percentage = new BigDecimal(percentage).multiply( + new BigDecimal(100)).doubleValue(); + dataIndex.setWorkQualityBeanPercentage(bean, "今年", percentage); + if(isHidePartOfWorkQualityCollection == true){ + dataIndex.setWorkQualityBeanAmount(bean, "今年", sumAmount2); + dataIndex.setWorkQualityBeanUnQualityAmount(bean, "今年", sumAmount); + } + } } list.add(bean); } @@ -2848,35 +3350,46 @@ Integer amount = 0; Map map = new HashMap(); try { + Integer thisYearAmount = 0; while (result.next()) { key = result.getString(1); // 月份以0开头的,去掉0 if(key.length() > 1 && Integer.valueOf(key) < 10){ key = Integer.valueOf(key).toString(); } amount = result.getInt(2); + if(amount > 0){ + thisYearAmount += amount; + } map.put(key,amount); dataIndex.setWorkQualityBeanAmount(bean, key, amount); } + dataIndex.setWorkQualityBeanAmount(bean, "今年", thisYearAmount); } catch (SQLException e) { e.printStackTrace(); }finally { DatabaseUtil.closeResultSetAndStatement(result); } // 遍历结果集 设置百分比 if(packAmountMap != null){ + Integer sumAmount = 0; + Integer sumAmount2 = 0; for(Map.Entry entry:packAmountMap.entrySet()){ key = entry.getKey(); amount = map.get(key); // 总数 - int amount2 = entry.getValue(); - if(amount2 > 0 && amount != null){ - double percentage = new BigDecimal(amount).divide( - new BigDecimal(amount2), 4, BigDecimal.ROUND_HALF_UP) - .doubleValue(); - percentage = new BigDecimal(percentage).multiply( - new BigDecimal(100)).doubleValue(); - dataIndex.setWorkQualityBeanPercentage(bean, key, percentage); + Integer amount2 = entry.getValue(); + if(amount2 != null && amount2 > 0){ + sumAmount2 += amount2; + if(amount != null){ + sumAmount += amount; + double percentage = new BigDecimal(amount).divide( + new BigDecimal(amount2), 4, BigDecimal.ROUND_HALF_UP) + .doubleValue(); + percentage = new BigDecimal(percentage).multiply( + new BigDecimal(100)).doubleValue(); + dataIndex.setWorkQualityBeanPercentage(bean, key, percentage); + } } if(isHidePartOfWorkQualityCollection == true && amount2 > 0){ dataIndex.setWorkQualityBeanAmount(bean, key, amount2); @@ -2887,6 +3400,18 @@ } } } + if(sumAmount2 > 0){ + double percentage = new BigDecimal(sumAmount).divide( + new BigDecimal(sumAmount2), 4, BigDecimal.ROUND_HALF_UP) + .doubleValue(); + percentage = new BigDecimal(percentage).multiply( + new BigDecimal(100)).doubleValue(); + dataIndex.setWorkQualityBeanPercentage(bean, "今年", percentage); + if(isHidePartOfWorkQualityCollection == true){ + dataIndex.setWorkQualityBeanAmount(bean, "今年", sumAmount2); + dataIndex.setWorkQualityBeanUnQualityAmount(bean, "今年", sumAmount); + } + } } list.add(bean); } @@ -2966,35 +3491,46 @@ Integer amount = 0; Map map = new HashMap(); try { + Integer thisYearAmount = 0; while (result.next()) { key = result.getString(1); // 月份以0开头的,去掉0 if(key.length() > 1 && Integer.valueOf(key) < 10){ key = Integer.valueOf(key).toString(); } amount = result.getInt(2); + if(amount > 0){ + thisYearAmount += amount; + } map.put(key,amount); dataIndex.setWorkQualityBeanAmount(bean, key, amount); } + dataIndex.setWorkQualityBeanAmount(bean, "今年", thisYearAmount); } catch (SQLException e) { e.printStackTrace(); }finally { DatabaseUtil.closeResultSetAndStatement(result); } // 遍历结果集 设置百分比 if(sterilizationAmountMap != null){ + Integer sumAmount = 0; + Integer sumAmount2 = 0; for(Map.Entry entry:sterilizationAmountMap.entrySet()){ key = entry.getKey(); amount = map.get(key); // 总数 - int amount2 = entry.getValue(); - if(amount2 > 0 && amount != null){ - double percentage = new BigDecimal(amount).divide( - new BigDecimal(amount2), 4, BigDecimal.ROUND_HALF_UP) - .doubleValue(); - percentage = new BigDecimal(percentage).multiply( - new BigDecimal(100)).doubleValue(); - dataIndex.setWorkQualityBeanPercentage(bean, key, percentage); + Integer amount2 = entry.getValue(); + if(amount2 != null && amount2 > 0){ + sumAmount2 += amount2; + if(amount != null){ + sumAmount += amount; + double percentage = new BigDecimal(amount).divide( + new BigDecimal(amount2), 4, BigDecimal.ROUND_HALF_UP) + .doubleValue(); + percentage = new BigDecimal(percentage).multiply( + new BigDecimal(100)).doubleValue(); + dataIndex.setWorkQualityBeanPercentage(bean, key, percentage); + } } if(isHidePartOfWorkQualityCollection == true && amount2 > 0){ dataIndex.setWorkQualityBeanAmount(bean, key, amount2); @@ -3005,6 +3541,18 @@ } } } + if(sumAmount2 > 0){ + double percentage = new BigDecimal(sumAmount).divide( + new BigDecimal(sumAmount2), 4, BigDecimal.ROUND_HALF_UP) + .doubleValue(); + percentage = new BigDecimal(percentage).multiply( + new BigDecimal(100)).doubleValue(); + dataIndex.setWorkQualityBeanPercentage(bean, "今年", percentage); + if(isHidePartOfWorkQualityCollection == true){ + dataIndex.setWorkQualityBeanAmount(bean, "今年", sumAmount2); + dataIndex.setWorkQualityBeanUnQualityAmount(bean, "今年", sumAmount); + } + } } list.add(bean); } @@ -3086,35 +3634,47 @@ Integer amount = 0; Map map = new HashMap(); try { + Integer thisYearAmount = 0; while (result.next()) { key = result.getString(1); // 月份以0开头的,去掉0 if(key.length() > 1 && Integer.valueOf(key) < 10){ key = Integer.valueOf(key).toString(); } amount = result.getInt(2); + if(amount > 0){ + thisYearAmount += amount; + } map.put(key,amount); dataIndex.setWorkQualityBeanAmount(bean, key, amount); } + dataIndex.setWorkQualityBeanAmount(bean, "今年", thisYearAmount); } catch (SQLException e) { e.printStackTrace(); }finally { DatabaseUtil.closeResultSetAndStatement(result); } // 遍历结果集 设置百分比 if(sterilizationAmountMap != null){ + Integer sumAmount = 0; + Integer sumAmount2 = 0; for(Map.Entry entry:sterilizationAmountMap.entrySet()){ key = entry.getKey(); amount = map.get(key); // 总数 - int amount2 = entry.getValue(); - if(amount2 > 0 && amount != null){ - double percentage = new BigDecimal(amount).divide( - new BigDecimal(amount2), 4, BigDecimal.ROUND_HALF_UP) - .doubleValue(); - percentage = new BigDecimal(percentage).multiply( - new BigDecimal(100)).doubleValue(); - dataIndex.setWorkQualityBeanPercentage(bean, key, percentage); + Integer amount2 = entry.getValue(); + + if(amount2 != null && amount2 > 0){ + sumAmount2 += amount2; + if(amount != null){ + sumAmount += amount; + double percentage = new BigDecimal(amount).divide( + new BigDecimal(amount2), 4, BigDecimal.ROUND_HALF_UP) + .doubleValue(); + percentage = new BigDecimal(percentage).multiply( + new BigDecimal(100)).doubleValue(); + dataIndex.setWorkQualityBeanPercentage(bean, key, percentage); + } } if(isHidePartOfWorkQualityCollection == true && amount2 > 0){ dataIndex.setWorkQualityBeanAmount(bean, key, amount2); @@ -3125,6 +3685,18 @@ } } } + if(sumAmount2 > 0){ + double percentage = new BigDecimal(sumAmount).divide( + new BigDecimal(sumAmount2), 4, BigDecimal.ROUND_HALF_UP) + .doubleValue(); + percentage = new BigDecimal(percentage).multiply( + new BigDecimal(100)).doubleValue(); + dataIndex.setWorkQualityBeanPercentage(bean, "今年", percentage); + if(isHidePartOfWorkQualityCollection == true){ + dataIndex.setWorkQualityBeanAmount(bean, "今年", sumAmount2); + dataIndex.setWorkQualityBeanUnQualityAmount(bean, "今年", sumAmount); + } + } } list.add(bean); } @@ -3145,8 +3717,10 @@ endDay = innerMap.get(keyOfInnerMap); } String sql = "select count(*) from QualityMonitoringInstance qi ,FormInstance fi," - + "FormDefinition fd where qi.id = fi.id and fi.formDefinition_id = fd.id and " - + "fd.formName like '%灭菌失败事件%' " + + "FormDefinition fd, FormInstanceItem fii, FormDefinitionItem fdi where qi.id = fi.id and fi.formDefinition_id = fd.id and " + + " fi.id = fii.formInstance_id and fii.formDefinitionItem_id = fdi.id and " + + " fd.formName like '%灭菌失败事件%' and " + + " fdi.name = '灭菌方式选择不正确' and fii.answer is not null " + "and qi.dateTime >= " + dateQueryAdapter.dateAdapter(startDay) + " and qi.dateTime <= " @@ -3254,7 +3828,9 @@ } } - // 灭菌方式选择不正确发生数 全年数据 + /* + * 灭菌方式选择不正确发生数 全年; 统计监测项名字包含"灭菌失败事件"和监测细则名称为"灭菌方式选择不正确"的质量监测记录填写的数量之和 + */ public void getSterilizationTypeChooserWrongAllYear( String year, List list,String querySupplyRoom, @@ -3286,6 +3862,7 @@ bean.initAmountSpace(); } try { + Integer thisYearAmount = 0; while (result.next()) { key = result.getString(1); // 月份以0开头的,去掉0 @@ -3294,32 +3871,49 @@ } amount = result.getInt(2); map.put(key,amount); + if(amount > 0){ + thisYearAmount += amount; + } if(isHidePartOfWorkQualityCollection == true){ // 设置发生数 dataIndex.setWorkQualityBeanUnQualityAmount(bean, key, amount); }else{ dataIndex.setWorkQualityBeanAmount(bean, key, amount); } } + if(thisYearAmount > 0){ + if(isHidePartOfWorkQualityCollection == true){ + // 设置发生数 + dataIndex.setWorkQualityBeanUnQualityAmount(bean, "今年", thisYearAmount); + }else{ + dataIndex.setWorkQualityBeanAmount(bean, "今年", thisYearAmount); + } + } } catch (SQLException e) { e.printStackTrace(); }finally { DatabaseUtil.closeResultSetAndStatement(result); } // 遍历结果集 设置百分比 if(packAmountMap != null || isHidePartOfWorkQualityCollection == true){ + Integer sumAmount2 = 0; + Integer sumAmount = 0; for(Map.Entry entry:packAmountMap.entrySet()){ key = entry.getKey(); amount = map.get(key); // 总数 - int amount2 = entry.getValue(); - if(amount2 > 0 && amount != null){ - double percentage = new BigDecimal(amount).divide( - new BigDecimal(amount2), 4, BigDecimal.ROUND_HALF_UP) - .doubleValue(); - percentage = new BigDecimal(percentage).multiply( - new BigDecimal(100)).doubleValue(); - dataIndex.setWorkQualityBeanPercentage(bean, key, percentage); + Integer amount2 = entry.getValue(); + if(amount2 != null && amount2 > 0){ + sumAmount2 += amount2; + if(amount != null){ + sumAmount += amount; + double percentage = new BigDecimal(amount).divide( + new BigDecimal(amount2), 4, BigDecimal.ROUND_HALF_UP) + .doubleValue(); + percentage = new BigDecimal(percentage).multiply( + new BigDecimal(100)).doubleValue(); + dataIndex.setWorkQualityBeanPercentage(bean, key, percentage); + } } if(isHidePartOfWorkQualityCollection == true && amount2 > 0){ dataIndex.setWorkQualityBeanAmount(bean, key, amount2); @@ -3330,6 +3924,18 @@ } } } + if(sumAmount2 > 0){ + double percentage = new BigDecimal(sumAmount).divide( + new BigDecimal(sumAmount2), 4, BigDecimal.ROUND_HALF_UP) + .doubleValue(); + percentage = new BigDecimal(percentage).multiply( + new BigDecimal(100)).doubleValue(); + dataIndex.setWorkQualityBeanPercentage(bean, "今年", percentage); + if(isHidePartOfWorkQualityCollection == true){ + dataIndex.setWorkQualityBeanAmount(bean, "今年", sumAmount2); + dataIndex.setWorkQualityBeanUnQualityAmount(bean, "今年", sumAmount); + } + } } list.add(bean); } @@ -3391,20 +3997,30 @@ bean.initAmountSpace(); } try { + Integer thisYearAmount =0 ; while (result.next()) { key = result.getString(1); // 月份以0开头的,去掉0 if(key.length() > 1 && Integer.valueOf(key) < 10){ key = Integer.valueOf(key).toString(); } amount = result.getInt(2); + if(amount > 0){ + thisYearAmount += amount; + } if(isHidePartOfWorkQualityCollection == true){ // 设置发生数 dataIndex.setWorkQualityBeanUnQualityAmount(bean, key, amount); }else{ dataIndex.setWorkQualityBeanAmount(bean, key, amount); } } + if(isHidePartOfWorkQualityCollection == true){ + // 设置发生数 + dataIndex.setWorkQualityBeanUnQualityAmount(bean, "今年", thisYearAmount); + }else{ + dataIndex.setWorkQualityBeanAmount(bean, "今年", thisYearAmount); + } } catch (SQLException e) { e.printStackTrace(); }finally { @@ -3483,13 +4099,17 @@ Integer amount = 0; Map map = new HashMap(); try { + Integer thisYearInteger = 0; while (result.next()) { key = result.getString(1); // 月份以0开头的,去掉0 if(key.length() > 1 && Integer.valueOf(key) < 10){ key = Integer.valueOf(key).toString(); } amount = result.getInt(2); + if(amount > 0){ + thisYearInteger += amount; + } map.put(key,amount); dataIndex.setWorkQualityBeanAmount(bean, key, amount); } @@ -3500,18 +4120,24 @@ } // 遍历结果集 设置百分比 if(packAmountMap != null){ + Integer sumAmount = 0; + Integer sumAmount2 = 0; for(Map.Entry entry:packAmountMap.entrySet()){ key = entry.getKey(); amount = map.get(key); // 总数 - int amount2 = entry.getValue(); - if(amount2 > 0 && amount != null){ - double percentage = new BigDecimal(amount).divide( - new BigDecimal(amount2), 4, BigDecimal.ROUND_HALF_UP) - .doubleValue(); - percentage = new BigDecimal(percentage).multiply( - new BigDecimal(100)).doubleValue(); - dataIndex.setWorkQualityBeanPercentage(bean, key, percentage); + Integer amount2 = entry.getValue(); + if(amount2 != null && amount2 > 0){ + sumAmount2 += amount2; + if(amount != null){ + sumAmount += amount; + double percentage = new BigDecimal(amount).divide( + new BigDecimal(amount2), 4, BigDecimal.ROUND_HALF_UP) + .doubleValue(); + percentage = new BigDecimal(percentage).multiply( + new BigDecimal(100)).doubleValue(); + dataIndex.setWorkQualityBeanPercentage(bean, key, percentage); + } } if(isHidePartOfWorkQualityCollection == true && amount2 > 0){ dataIndex.setWorkQualityBeanAmount(bean, key, amount2); @@ -3522,6 +4148,18 @@ } } } + if(sumAmount2 > 0){ + double percentage = new BigDecimal(sumAmount).divide( + new BigDecimal(sumAmount2), 4, BigDecimal.ROUND_HALF_UP) + .doubleValue(); + percentage = new BigDecimal(percentage).multiply( + new BigDecimal(100)).doubleValue(); + dataIndex.setWorkQualityBeanPercentage(bean, "今年", percentage); + if(isHidePartOfWorkQualityCollection == true){ + dataIndex.setWorkQualityBeanAmount(bean, "今年", sumAmount2); + dataIndex.setWorkQualityBeanUnQualityAmount(bean, "今年", sumAmount); + } + } } list.add(bean); } @@ -3612,35 +4250,46 @@ Integer amount = 0; Map map = new HashMap(); try { + Integer thisYearAmount = 0; while (result.next()) { key = result.getString(1); // 月份以0开头的,去掉0 if(key.length() > 1 && Integer.valueOf(key) < 10){ key = Integer.valueOf(key).toString(); } amount = result.getInt(2); + if(amount > 0){ + thisYearAmount += amount; + } map.put(key,amount); dataIndex.setWorkQualityBeanAmount(bean, key, amount); } + dataIndex.setWorkQualityBeanAmount(bean, "今年", thisYearAmount); } catch (SQLException e) { e.printStackTrace(); }finally { DatabaseUtil.closeResultSetAndStatement(result); } // 遍历结果集 设置百分比 if(packAmountMap != null){ + Integer sumAmount = 0; + Integer sumAmount2 = 0; for(Map.Entry entry:packAmountMap.entrySet()){ key = entry.getKey(); amount = map.get(key); // 总数 - int amount2 = entry.getValue(); - if(amount2 > 0 && amount != null){ - double percentage = new BigDecimal(amount).divide( - new BigDecimal(amount2), 4, BigDecimal.ROUND_HALF_UP) - .doubleValue(); - percentage = new BigDecimal(percentage).multiply( - new BigDecimal(100)).doubleValue(); - dataIndex.setWorkQualityBeanPercentage(bean, key, percentage); + Integer amount2 = entry.getValue(); + if(amount2 != null && amount2 > 0){ + sumAmount2 += amount2; + if(amount != null){ + sumAmount += amount; + double percentage = new BigDecimal(amount).divide( + new BigDecimal(amount2), 4, BigDecimal.ROUND_HALF_UP) + .doubleValue(); + percentage = new BigDecimal(percentage).multiply( + new BigDecimal(100)).doubleValue(); + dataIndex.setWorkQualityBeanPercentage(bean, key, percentage); + } } if(isHidePartOfWorkQualityCollection == true && amount2 > 0){ dataIndex.setWorkQualityBeanAmount(bean, key, amount2); @@ -3651,6 +4300,18 @@ } } } + if(sumAmount2 >0){ + double percentage = new BigDecimal(sumAmount).divide( + new BigDecimal(sumAmount2), 4, BigDecimal.ROUND_HALF_UP) + .doubleValue(); + percentage = new BigDecimal(percentage).multiply( + new BigDecimal(100)).doubleValue(); + dataIndex.setWorkQualityBeanPercentage(bean, "今年", percentage); + if(isHidePartOfWorkQualityCollection == true){ + dataIndex.setWorkQualityBeanAmount(bean, "今年", sumAmount2); + dataIndex.setWorkQualityBeanUnQualityAmount(bean, "今年", sumAmount); + } + } } list.add(bean); } @@ -3725,35 +4386,46 @@ Integer amount = 0; Map map = new HashMap(); try { + Integer thisYearAmount = 0; while (result.next()) { key = result.getString(1); // 月份以0开头的,去掉0 if(key.length() > 1 && Integer.valueOf(key) < 10){ key = Integer.valueOf(key).toString(); } amount = result.getInt(2); + if(amount > 0){ + thisYearAmount += amount; + } map.put(key,amount); dataIndex.setWorkQualityBeanAmount(bean, key, amount); } + dataIndex.setWorkQualityBeanAmount(bean, "今年", thisYearAmount); } catch (SQLException e) { e.printStackTrace(); }finally { DatabaseUtil.closeResultSetAndStatement(result); } // 遍历结果集 设置百分比 if(packAmountMap != null){ + Integer sumAmount = 0; + Integer sumAmount2 = 0; for(Map.Entry entry:packAmountMap.entrySet()){ key = entry.getKey(); amount = map.get(key); // 总数 - int amount2 = entry.getValue(); - if(amount2 > 0 && amount != null){ - double percentage = new BigDecimal(amount).divide( - new BigDecimal(amount2), 4, BigDecimal.ROUND_HALF_UP) - .doubleValue(); - percentage = new BigDecimal(percentage).multiply( - new BigDecimal(100)).doubleValue(); - dataIndex.setWorkQualityBeanPercentage(bean, key, percentage); + Integer amount2 = entry.getValue(); + if(amount2 != null && amount2 > 0){ + sumAmount2 += amount2; + if(amount != null){ + sumAmount += amount; + double percentage = new BigDecimal(amount).divide( + new BigDecimal(amount2), 4, BigDecimal.ROUND_HALF_UP) + .doubleValue(); + percentage = new BigDecimal(percentage).multiply( + new BigDecimal(100)).doubleValue(); + dataIndex.setWorkQualityBeanPercentage(bean, key, percentage); + } } if(isHidePartOfWorkQualityCollection == true && amount2 > 0){ dataIndex.setWorkQualityBeanAmount(bean, key, amount2); @@ -3764,6 +4436,18 @@ } } } + if(sumAmount2 > 0){ + double percentage = new BigDecimal(sumAmount).divide( + new BigDecimal(sumAmount2), 4, BigDecimal.ROUND_HALF_UP) + .doubleValue(); + percentage = new BigDecimal(percentage).multiply( + new BigDecimal(100)).doubleValue(); + dataIndex.setWorkQualityBeanPercentage(bean, "今年", percentage); + if(isHidePartOfWorkQualityCollection == true){ + dataIndex.setWorkQualityBeanAmount(bean, "今年", sumAmount2); + dataIndex.setWorkQualityBeanUnQualityAmount(bean, "今年", sumAmount); + } + } } list.add(bean); } Index: ssts-web/src/main/webapp/jasperRtp/workQualityCollection.jrxml =================================================================== diff -u -r25235 -r25874 --- ssts-web/src/main/webapp/jasperRtp/workQualityCollection.jrxml (.../workQualityCollection.jrxml) (revision 25235) +++ ssts-web/src/main/webapp/jasperRtp/workQualityCollection.jrxml (.../workQualityCollection.jrxml) (revision 25874) @@ -1,7 +1,7 @@ - +