Index: ssts-reports/src/main/java/com/forgon/disinfectsystem/jasperreports/javabeansource/QualityControlFirstVo.java =================================================================== diff -u --- ssts-reports/src/main/java/com/forgon/disinfectsystem/jasperreports/javabeansource/QualityControlFirstVo.java (revision 0) +++ ssts-reports/src/main/java/com/forgon/disinfectsystem/jasperreports/javabeansource/QualityControlFirstVo.java (revision 40975) @@ -0,0 +1,63 @@ +package com.forgon.disinfectsystem.jasperreports.javabeansource; + +import java.util.ArrayList; +import java.util.List; + +import com.forgon.tools.MathTools; +/** + * 消毒供应中心护理质量质控指标报表一级vo + * FSEYEQ-22 + */ +public class QualityControlFirstVo { + /** + * 质检指标 + */ + private String qtName; + /** + * 目标值 + */ + private String targetValue; + /** + * 总计 + */ + private Integer totalAmount; + private List qualityControlSecondVoList; + + + public QualityControlFirstVo(String qtName, String targetValue) { + this.qtName = qtName; + this.targetValue = targetValue; + this.qualityControlSecondVoList = new ArrayList<>(); + } + // 添加二级数据的方法 + public void addSecondLevel(QualityControlSecondVo qualityControlSecondVo) { + this.qualityControlSecondVoList.add(qualityControlSecondVo); + } + /** + * 累加总数 + * @param amount + */ + public void addTotalAmount(Integer amount) { + this.totalAmount = MathTools.add(amount, this.totalAmount).intValue(); + } + // getter和setter + public String getQtName() { return qtName; } + public void setQtName(String qtName) { this.qtName = qtName; } + public String getTargetValue() { return targetValue; } + public void setTargetValue(String targetValue) { this.targetValue = targetValue; } + public List getQualityControlSecondVoList() { + return qualityControlSecondVoList; + } + public void setQualityControlSecondVoList( + List qualityControlSecondVoList) { + this.qualityControlSecondVoList = qualityControlSecondVoList; + } + public Integer getTotalAmount() { + return totalAmount; + } + public void setTotalAmount(Integer totalAmount) { + this.totalAmount = totalAmount; + } + + +} Index: ssts-reports/src/main/java/com/forgon/disinfectsystem/jasperreports/javabeansource/MonitoringItemBean.java =================================================================== diff -u -r40327 -r40975 --- ssts-reports/src/main/java/com/forgon/disinfectsystem/jasperreports/javabeansource/MonitoringItemBean.java (.../MonitoringItemBean.java) (revision 40327) +++ ssts-reports/src/main/java/com/forgon/disinfectsystem/jasperreports/javabeansource/MonitoringItemBean.java (.../MonitoringItemBean.java) (revision 40975) @@ -113,6 +113,12 @@ * 材料定义类型 */ private String mdType; + /** + * 填写数量 + * 设置为“是“时,在填写质量监测记录时,此选项后方追加一个文本框,用于填写数量,该文本框仅允许填写整数。 + * FSEYEQ-22 + */ + private String fillQuantity; public Long getId() { return id; } @@ -369,4 +375,14 @@ public void setMdType(String mdType) { this.mdType = mdType; } + + public String getFillQuantity() { + return fillQuantity; + } + + public void setFillQuantity(String fillQuantity) { + this.fillQuantity = fillQuantity; + } + + } Index: ssts-reports/src/main/java/com/forgon/disinfectsystem/jasperreports/util/QualityControlHelper.java =================================================================== diff -u --- ssts-reports/src/main/java/com/forgon/disinfectsystem/jasperreports/util/QualityControlHelper.java (revision 0) +++ ssts-reports/src/main/java/com/forgon/disinfectsystem/jasperreports/util/QualityControlHelper.java (revision 40975) @@ -0,0 +1,151 @@ +package com.forgon.disinfectsystem.jasperreports.util; + +import java.sql.ResultSet; +import java.sql.SQLException; +import java.util.ArrayList; +import java.util.HashMap; +import java.util.List; +import java.util.Map; + +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.stereotype.Component; + +import com.forgon.databaseadapter.service.DateQueryAdapter; +import com.forgon.directory.acegi.tools.AcegiHelper; +import com.forgon.disinfectsystem.entity.customform.formdefinition.FormDefinitionItem; +import com.forgon.disinfectsystem.entity.customform.formdefinition.FormDefinitionItemOption; +import com.forgon.disinfectsystem.entity.customform.forminstance.FormInstance; +import com.forgon.disinfectsystem.entity.customform.forminstance.FormInstanceItem; +import com.forgon.disinfectsystem.entity.customform.forminstance.FormInstanceOptionValue; +import com.forgon.disinfectsystem.entity.qualitymonitoringmanager.qualitymonitoring.QualityMonitoringInstance; +import com.forgon.disinfectsystem.entity.qualitymonitoringmanager.qualitymonitoringconfig.QualityControlIndicatorType; +import com.forgon.disinfectsystem.entity.qualitymonitoringmanager.qualitymonitoringconfig.QualityControlItemParameter; +import com.forgon.disinfectsystem.entity.qualitymonitoringmanager.qualitymonitoringconfig.QualityMonitoringDefinition; +import com.forgon.disinfectsystem.jasperreports.javabeansource.QualityControlFirstVo; +import com.forgon.disinfectsystem.jasperreports.javabeansource.QualityControlSecondVo; +import com.forgon.tools.Constants; +import com.forgon.tools.StrutsParamUtils; +import com.forgon.tools.db.DatabaseUtil; +import com.forgon.tools.hibernate.ObjectDao; +import com.forgon.tools.util.SqlUtils; +/** + * 消毒供应中心护理质量质控指标报表 + * + */ +@Component +public class QualityControlHelper { + @Autowired + protected DateQueryAdapter dateQueryAdapter; + @Autowired + protected ObjectDao objectDao; + public List getQualityControlReportData(Map requestParameters, Map parametMap){ + String queryType = StrutsParamUtils.getPraramValue("queryType", "按年份"); // 按年份 按季度 默认值为按年份 + String year = StrutsParamUtils.getPraramValue("year", ""); + String qualityControlItemParameterNames = StrutsParamUtils.getPraramValue("qualityControlItemParameterNames", ""); + String startDate = null; + String endDate = null; + String title = "消毒供应中心护理质量质控指标报表"; + // 根据传参获取startDate和endDate + if ("按季度".equals(queryType)) { + String quarter = StrutsParamUtils.getPraramValue("quarter", "第1季度"); // 选项为“第1季度”、“第2季度”、“第3季度”、“第4季度”;默认值为“第1季度” + + // 设置季度对应的起止日期 + switch (quarter) { + case "第1季度": + startDate = year + "-01-01 00:00:00"; + endDate = year + "-03-31 23:59:59"; + title += "(1季度)"; + break; + case "第2季度": + startDate = year + "-04-01 00:00:00"; + endDate = year + "-06-30 23:59:59"; + title += "(2季度)"; + break; + case "第3季度": + startDate = year + "-07-01 00:00:00"; + endDate = year + "-09-30 23:59:59"; + title += "(3季度)"; + break; + case "第4季度": + startDate = year + "-10-01 00:00:00"; + endDate = year + "-12-31 23:59:59"; + title += "(4季度)"; + break; + default: + // 默认按第一季度处理 + startDate = year + "-01-01 00:00:00"; + endDate = year + "-03-31 23:59:59"; + title += "(1季度)"; + break; + } + } else { // 按年份 + startDate = year + "-01-01 00:00:00"; + endDate = year + "-12-31 23:59:59"; + title += "("+ year +"年)"; + } + parametMap.put("title", title); + String sql = "select sum(fiov.quantity) sumQuantity,q.name qName,qt.name qtName,qt.targetValue from " + + QualityMonitoringInstance.class.getSimpleName() + + " qmi join " + + FormInstance.class.getSimpleName() + + " fi on fi.id=qmi.id join " + + QualityMonitoringDefinition.class.getSimpleName() + + " qmdf on qmdf.id=fi.formDefinition_id join " + + FormInstanceItem.class.getSimpleName() + + " fii on fii.formInstance_id=qmi.id join " + + FormDefinitionItem.class.getSimpleName() + + " fdi on fdi.id=fii.formDefinitionItem_id join " + + FormInstanceOptionValue.class.getSimpleName() + + " fiov on fiov.formInstanceItem_id=fii.id join " + + FormDefinitionItemOption.class.getSimpleName() + + " fido on fido.id=fiov.definitionItemOption_id join " + + QualityControlItemParameter.class.getSimpleName() + + " q on q.id=fido.qcItemParameter_id join " + + QualityControlIndicatorType.class.getSimpleName() + + " qt on qt.id=q.qcIndicatorType_id " + + " where qmi.dateTime between " + + dateQueryAdapter.dateAdapter(startDate) + + " and " + "" + + dateQueryAdapter.dateAdapter(endDate) + + SqlUtils.getInStringListSql("qt.name", SqlUtils.splitStringToSet(qualityControlItemParameterNames, Constants.IDS_SEPARATOR)) + + " and fiov.quantity > 0 " + + SqlUtils.getHandleDepartCodingOfQualityMonitoringDefinitionSql(AcegiHelper.getCurrentOrgUnitCode()) + + " group by q.name ,qt.name ,qt.targetValue,qt.sequence " + + " order by qt.sequence asc "; + ResultSet rs = null; + //qtName targetValue 是一级 ;qName是二级 sumQuantity是qName的数量 + List resultList = new ArrayList<>(); + Map firstLevelMap = new HashMap<>(); + try { + rs = objectDao.executeSql(sql); + while (rs.next()) { + int sumQuantity = rs.getInt("sumQuantity"); + String qName = rs.getString("qName"); + String qtName = rs.getString("qtName"); + String targetValue = rs.getString("targetValue"); + + // 构建一级数据的key(qtName + targetValue 组合作为唯一标识) + String firstLevelKey = qtName + "_" + targetValue; + + // 检查一级数据是否已存在 + QualityControlFirstVo firstLevel = firstLevelMap.get(firstLevelKey); + if (firstLevel == null) { + // 创建新的一级数据 + firstLevel = new QualityControlFirstVo(qtName, targetValue); + firstLevelMap.put(firstLevelKey, firstLevel); + resultList.add(firstLevel); + } + + // 创建并添加二级数据 + QualityControlSecondVo secondLevel = new QualityControlSecondVo(qName, sumQuantity); + firstLevel.addTotalAmount(sumQuantity); + firstLevel.addSecondLevel(secondLevel); + } + } catch (SQLException e) { + e.printStackTrace(); + }finally { + DatabaseUtil.closeResultSetAndStatement(rs); + } + return resultList; + } +} Index: ssts-reports/src/main/java/com/forgon/disinfectsystem/jasperreports/javabeansource/QualityControlSecondVo.java =================================================================== diff -u --- ssts-reports/src/main/java/com/forgon/disinfectsystem/jasperreports/javabeansource/QualityControlSecondVo.java (revision 0) +++ ssts-reports/src/main/java/com/forgon/disinfectsystem/jasperreports/javabeansource/QualityControlSecondVo.java (revision 40975) @@ -0,0 +1,26 @@ +package com.forgon.disinfectsystem.jasperreports.javabeansource; +/** + * 消毒供应中心护理质量质控指标报表二级vo + * FSEYEQ-22 + */ +public class QualityControlSecondVo { + /** + * 质控项目 + */ + private String qName; + /** + * 例数 + */ + private int sumQuantity; + + // 构造方法、getter、setter + public QualityControlSecondVo(String qName, int sumQuantity) { + this.qName = qName; + this.sumQuantity = sumQuantity; + } + + public String getQName() { return qName; } + public void setQName(String qName) { this.qName = qName; } + public int getSumQuantity() { return sumQuantity; } + public void setSumQuantity(int sumQuantity) { this.sumQuantity = sumQuantity; } +} Index: ssts-reports/src/main/java/com/forgon/disinfectsystem/jasperreports/util/QualityMonitoringHelper.java =================================================================== diff -u -r40483 -r40975 --- ssts-reports/src/main/java/com/forgon/disinfectsystem/jasperreports/util/QualityMonitoringHelper.java (.../QualityMonitoringHelper.java) (revision 40483) +++ ssts-reports/src/main/java/com/forgon/disinfectsystem/jasperreports/util/QualityMonitoringHelper.java (.../QualityMonitoringHelper.java) (revision 40975) @@ -655,13 +655,14 @@ } requestParameters.put("subTableInfos", subTableInfos.toString()); } + boolean enableCSSDNursingQualityControlReport = CssdUtils.getSystemSetConfigByNameBool("enableCSSDNursingQualityControlReport",false); String sql = " select * from (select " + dataSql + " dateStr," + " qmd.tousseName toussName,qmd.material material,qmd.amount amount,qmi.id qmiId,qmi.positionMsg positionMsg," + " fdi.name fdiName, fdi.orderNumber orderNum"+ fdioValueSql +",fiov.id,"+ fomgAMountSql +" fi.createUserName,fi.remark,qmi.isQualified,fdio.orderNumber,qmd.orderNumber qmdOrderNumber,qmd.id qmdid " + materialAmountSql + extraQuery + querySubTableAttributeSql - + ",fdio.recordMaterialDetails " + + ",fdio.recordMaterialDetails,fiov.quantity,fdio.fillQuantity " + " from QualityMonitoringInstance qmi join FormInstance fi on qmi.id=fi.id join FormDefinition fd on fi.formDefinition_id=fd.id " + " join QualityMonitoringDefinition qmdf on qmdf.id=fd.id join FormInstanceItem fiItem on qmi.id=fiItem.formInstance_id join FormDefinitionItem fdi on fiItem.formDefinitionItem_id=fdi.id" + " join FormDefinitionItemOption fdio on fdi.id=fdio.formDefinitionItem_id join QualityMonitoringGoods qmd on qmi.id=qmd.qualityMonitoringInstance_id " @@ -681,7 +682,7 @@ + materialAmountSql + extraQuery + querySubTableAttributeSql - + " ,'否' recordMaterialDetails" + + " ,'否' recordMaterialDetails,null quantity, null fillQuantity " + " from QualityMonitoringInstance qmi join FormInstance fi on qmi.id=fi.id join FormDefinition fd on fi.formDefinition_id=fd.id " + " join QualityMonitoringDefinition qmdf on qmdf.id=fd.id join FormInstanceItem fiItem on qmi.id=fiItem.formInstance_id join FormDefinitionItem fdi on fiItem.formDefinitionItem_id=fdi.id" + " left join FormDefinitionItemOption fdio on fdi.id=fdio.formDefinitionItem_id join QualityMonitoringGoods qmd on qmi.id=qmd.qualityMonitoringInstance_id " @@ -709,12 +710,13 @@ + recordTypeSql + "and (fdi.type = '" + FormDefinitionItem.TYPE_RADIO + "' or fdi.type ='" + FormDefinitionItem.TYPE_CHECK + "')" + " and " + whereSql + tousseNameSql + "))temp " + tempOrderBySql; - addMonitoringItemBeanOptionRadioAndCHeck(list,sql,showSterilizationInfo, materialAndTousse); + addMonitoringItemBeanOptionRadioAndCHeck(list,sql,showSterilizationInfo, materialAndTousse, enableCSSDNursingQualityControlReport); // 没有录入材料和包,有配了多选的细则的项 sql = " select " + dataSql + " dateStr," + " qmi.id qmiId,qmi.positionMsg positionMsg," + " fdi.name fdiName, fdi.orderNumber orderNum"+ fdioValueSql +",fiov.id,fi.createUserName,fi.remark,qmi.isQualified " + extraQuery + + ",fiov.quantity,fdio.fillQuantity " + " from QualityMonitoringInstance qmi join FormInstance fi on qmi.id=fi.id join FormDefinition fd on fi.formDefinition_id=fd.id " + " join QualityMonitoringDefinition qmdf on qmdf.id=fd.id join FormInstanceItem fiItem on qmi.id=fiItem.formInstance_id join FormDefinitionItem fdi on fiItem.formDefinitionItem_id=fdi.id" + " join FormDefinitionItemOption fdio on fdi.id=fdio.formDefinitionItem_id " @@ -730,6 +732,7 @@ + " qmi.id qmiId,qmi.positionMsg positionMsg," + " '' fdiName, null orderNum,'' value,null id,fi.createUserName,fi.remark,qmi.isQualified " + extraQuery + + ",null quantity,null fillQuantity" + " from QualityMonitoringInstance qmi join FormInstance fi on qmi.id=fi.id join FormDefinition fd on fi.formDefinition_id=fd.id " + " join QualityMonitoringDefinition qmdf on qmdf.id=fd.id join FormInstanceItem fiItem on qmi.id=fiItem.formInstance_id join FormDefinitionItem fdi on fiItem.formDefinitionItem_id=fdi.id" + " join FormDefinitionItemOption fdio on fdi.id=fdio.formDefinitionItem_id " @@ -755,7 +758,7 @@ + " and (fdi.type = '" + FormDefinitionItem.TYPE_RADIO + "' or fdi.type ='" + FormDefinitionItem.TYPE_CHECK + "')" + " and " + whereSql + " and qmi.id in ( select qmi.id from QualityMonitoringInstance qmi left join QualityMonitoringGoods qmd on qmi.id=qmd.qualityMonitoringInstance_id where qmd.id is null)" + ")"; - addMonitoringItemBeanOptionRadioAndCHeckWithoutMaterial(list,sql,showSterilizationInfo); + addMonitoringItemBeanOptionRadioAndCHeckWithoutMaterial(list,sql,showSterilizationInfo, enableCSSDNursingQualityControlReport); sql = " select " + dataSql + " dateStr," + " qmd.tousseName toussName,qmd.material material,qmd.amount amount,qmi.id qmiId,qmi.positionMsg positionMsg," + " fdi.name fdiName, fdi.orderNumber orderNum,fiItem.answer amswer,fi.createUserName,fi.remark,qmi.isQualified,qmd.orderNumber qmdOrderNumber,qmd.id qmdid " @@ -1382,7 +1385,7 @@ * @param list * @param sql */ - private void addMonitoringItemBeanOptionRadioAndCHeck(List list,String sql, boolean isCustomADJAndIsFormNameIsADJ, boolean washScope){ + private void addMonitoringItemBeanOptionRadioAndCHeck(List list,String sql, boolean isCustomADJAndIsFormNameIsADJ, boolean washScope, boolean enableCSSDNursingQualityControlReport){ if(StringUtils.isBlank(sql)){ return ; } @@ -1442,7 +1445,8 @@ lastMonitoringItemBean.getCleanMethod(), lastMonitoringItemBean.getTousseGroupName(), lastMonitoringItemBean.getMdType(), - lastMonitoringItemBean.getWashClassifyType()); + lastMonitoringItemBean.getWashClassifyType(), + lastMonitoringItemBean.getFillQuantity()); } lastMonitoringItemBean = null; } @@ -1454,12 +1458,24 @@ long fiovId = rs.getLong("id"); String createUserName = rs.getString("createUserName"); String remark = rs.getString("remark"); - String isQualified = rs.getString("isQualified"); + String isQualified = null; String answer = null; String recordMaterialDetails = rs.getString("recordMaterialDetails"); + String fillQuantity = rs.getString("fillQuantity"); if(enableRecordMaterialDetailsOfQualityMonitoring && queryFomgAMount && "是".equals(recordMaterialDetails)){ int fomgAMount = rs.getInt("fomgAMount")+ rs.getInt("fomgAMount2"); answer = fomgAMount + ""; + }else if(enableCSSDNursingQualityControlReport){ + int quantity = rs.getInt("quantity"); + if(quantity > 0){ + answer = quantity + ""; + isQualified = Constants.STR_YES; + }else if(fiovId > 0){ + answer = "1"; + isQualified = Constants.STR_YES; + }else{ + answer = ""; + } }else{ answer = (fiovId > 0) ? "√" : ""; } @@ -1568,7 +1584,8 @@ lastMonitoringItemBean.getCleanMethod(), lastMonitoringItemBean.getTousseGroupName(), lastMonitoringItemBean.getMdType(), - lastMonitoringItemBean.getWashClassifyType()); + lastMonitoringItemBean.getWashClassifyType(), + lastMonitoringItemBean.getFillQuantity()); lastMonitoringItemBean = null; } lastMonitoringItemBean = new MonitoringItemBean(); @@ -1604,6 +1621,7 @@ lastMonitoringItemBean.setTousseGroupName(tousseGroupName); lastMonitoringItemBean.setMdType(mdType); lastMonitoringItemBean.setWashClassifyType(washClassifyType); + lastMonitoringItemBean.setFillQuantity(fillQuantity); continue; } lastMonitoringItemBean = null; @@ -1637,7 +1655,7 @@ amount = 0; } newMonitoringItem(list, registerMaterialAmount,amount,tousseName,materialName,qmiId,positionMsg, - dataStr, orderNum, questionName,optionStr, answer,frequency,sterilizerName,isCustomADJAndIsFormNameIsADJ,createUserName,remark,isQualified, qmdid, materialAmount, taskGroup, packageType, assetsBelongName, tousseType, sterilingMethod, cleanMethod, tousseGroupName, mdType, washClassifyType); + dataStr, orderNum, questionName,optionStr, answer,frequency,sterilizerName,isCustomADJAndIsFormNameIsADJ,createUserName,remark,isQualified, qmdid, materialAmount, taskGroup, packageType, assetsBelongName, tousseType, sterilingMethod, cleanMethod, tousseGroupName, mdType, washClassifyType, fillQuantity); } if(lastMonitoringItemBean != null){ newMonitoringItem(list, lastMonitoringItemBean.getRegisterMaterialAmount(),lastMonitoringItemBean.getAmount(), @@ -1665,7 +1683,8 @@ lastMonitoringItemBean.getCleanMethod(), lastMonitoringItemBean.getTousseGroupName(), lastMonitoringItemBean.getMdType(), - lastMonitoringItemBean.getWashClassifyType()); + lastMonitoringItemBean.getWashClassifyType(), + lastMonitoringItemBean.getFillQuantity()); } } catch (SQLException e) { e.printStackTrace(); @@ -1678,7 +1697,7 @@ * @param list * @param sql */ - private void addMonitoringItemBeanOptionRadioAndCHeckWithoutMaterial(List list,String sql, boolean addMonitoringItemBeanOptionSingleResult){ + private void addMonitoringItemBeanOptionRadioAndCHeckWithoutMaterial(List list,String sql, boolean addMonitoringItemBeanOptionSingleResult, boolean enableCSSDNursingQualityControlReport){ if(StringUtils.isBlank(sql)){ return ; } @@ -1696,8 +1715,23 @@ Long fiovId = rs.getLong("id"); String createUserName = rs.getString("createUserName"); String remark = rs.getString("remark"); - String isQualified = rs.getString("isQualified"); - String answer = (fiovId > 0) ? "√" : ""; + String isQualified = null; + String fillQuantity = rs.getString("fillQuantity"); + String answer = null; + if(enableCSSDNursingQualityControlReport){ + int quantity = rs.getInt("quantity"); + if(quantity > 0){ + answer = quantity + ""; + isQualified = Constants.STR_YES; + }else if(fiovId > 0){ + answer = "1"; + isQualified = Constants.STR_YES; + }else{ + answer = ""; + } + }else{ + answer = (fiovId > 0) ? "√" : ""; + } Integer frequency = null; String sterilizerName = null; if(addMonitoringItemBeanOptionSingleResult){ @@ -1711,7 +1745,7 @@ dataStr = rs.getString("dateStr"); } newMonitoringItem(list, 0, 0,"","",qmiId,positionMsg, - dataStr, orderNum, questionName,optionStr, answer, frequency, sterilizerName, addMonitoringItemBeanOptionSingleResult,createUserName,remark,isQualified, null, 0, null, null , null, null , null , null, null, null, null); + dataStr, orderNum, questionName,optionStr, answer, frequency, sterilizerName, addMonitoringItemBeanOptionSingleResult,createUserName,remark,isQualified, null, 0, null, null , null, null , null , null, null, null, null, fillQuantity); } } catch (SQLException e) { e.printStackTrace(); @@ -1781,7 +1815,8 @@ lastMonitoringItemBean.getCleanMethod(), lastMonitoringItemBean.getTousseGroupName(), lastMonitoringItemBean.getMdType(), - lastMonitoringItemBean.getWashClassifyType()); + lastMonitoringItemBean.getWashClassifyType(), + lastMonitoringItemBean.getFillQuantity()); } lastMonitoringItemBean = null; } @@ -1899,7 +1934,8 @@ lastMonitoringItemBean.getCleanMethod(), lastMonitoringItemBean.getTousseGroupName(), lastMonitoringItemBean.getMdType(), - lastMonitoringItemBean.getWashClassifyType()); + lastMonitoringItemBean.getWashClassifyType(), + lastMonitoringItemBean.getFillQuantity()); lastMonitoringItemBean = null; } lastMonitoringItemBean = new MonitoringItemBean(); @@ -1968,7 +2004,7 @@ amount = 0; } newMonitoringItem(list, registerMaterialAmount,amount,tousseName,materialName,qmiId,positionMsg, - dataStr, orderNum,questionName, "-", answer, frequency, sterilizerName, addMonitoringItemBeanOptionSingleResult,createUserName,remark,isQualified, qmdid, materialAmount, taskGroup, packageType, assetsBelongName, tousseType, sterilingMethod, cleanMethod, tousseGroupName, mdType, washClassifyType); + dataStr, orderNum,questionName, "-", answer, frequency, sterilizerName, addMonitoringItemBeanOptionSingleResult,createUserName,remark,isQualified, qmdid, materialAmount, taskGroup, packageType, assetsBelongName, tousseType, sterilingMethod, cleanMethod, tousseGroupName, mdType, washClassifyType, null); } if(lastMonitoringItemBean != null){ newMonitoringItem(list, lastMonitoringItemBean.getRegisterMaterialAmount(),lastMonitoringItemBean.getAmount(), @@ -1996,7 +2032,8 @@ lastMonitoringItemBean.getCleanMethod(), lastMonitoringItemBean.getTousseGroupName(), lastMonitoringItemBean.getMdType(), - lastMonitoringItemBean.getWashClassifyType()); + lastMonitoringItemBean.getWashClassifyType(), + lastMonitoringItemBean.getFillQuantity()); } } catch (SQLException e) { e.printStackTrace(); @@ -2035,7 +2072,7 @@ dataStr = rs.getString("dateStr"); } newMonitoringItem(list, 0 ,0,"","",qmiId,positionMsg, - dataStr, orderNum, questionName,"-", answer ,frequency ,sterilizerName, addMonitoringItemBeanOptionSingleResultWithoutMaterial,createUserName,remark,isQualified, null, 0, null, null, null, null , null , null, null, null, null); + dataStr, orderNum, questionName,"-", answer ,frequency ,sterilizerName, addMonitoringItemBeanOptionSingleResultWithoutMaterial,createUserName,remark,isQualified, null, 0, null, null, null, null , null , null, null, null, null, null); } } catch (SQLException e) { e.printStackTrace(); @@ -2094,7 +2131,7 @@ materialAmount = rs.getInt("materialAmount"); } newMonitoringItem(list,registerMaterialAmount, amount,tousseName,materialName,qmiId,positionMsg, - dataStr, 1, "-","-", "", frequency, sterilizerName, addMonitoringItemBeanQualityMonitoring,createUserName,remark,isQualified, null, materialAmount, null, null, null, null , null , null, null, null, null); + dataStr, 1, "-","-", "", frequency, sterilizerName, addMonitoringItemBeanQualityMonitoring,createUserName,remark,isQualified, null, materialAmount, null, null, null, null , null , null, null, null, null,null); } } catch (SQLException e) { e.printStackTrace(); @@ -2259,7 +2296,7 @@ } } newMonitoringItem(list, null,amount,tousseName,materialName,qmiId,positionMsg, - dataStr, 100, "-","监测结果", result, frequency, sterilizerName, addMonitoringItemBeanRountineMonitoring,createUserName,remark,isQualified, null, 0, null, null, null, null , null , null, null, null, null); + dataStr, 100, "-","监测结果", result, frequency, sterilizerName, addMonitoringItemBeanRountineMonitoring,createUserName,remark,isQualified, null, 0, null, null, null, null , null , null, null, null, null, null); } isQualifiedAmount.put("合格", qualifiedAmount); isQualifiedAmount.put("不合格", unQualifiedAmount); @@ -2307,7 +2344,7 @@ String key = option + "-_-" + questionName; // 统计项有值才添加 if(StringUtils.isNotBlank(answer)){ - if(numNames.contains(questionName) || "-".equals(questionName) && numNames.contains(option)){ + if(numNames.contains(questionName) || "-".equals(questionName) && numNames.contains(option) || Constants.STR_YES.equals(mt.getFillQuantity())){ if(StringUtils.isNotBlank(answer) && StringUtils.isNumeric(answer)){ Integer amount = Integer.valueOf(answer); if( !map.containsKey(key) ){ @@ -2407,7 +2444,7 @@ map.put(key, value); } //指定的元素也添加(比如数字) - }else if(numNames.contains(questionName) || "-".equals(questionName) && numNames.contains(option)){ + }else if(numNames.contains(questionName) || "-".equals(questionName) && numNames.contains(option) || Constants.STR_YES.equals(mt.getFillQuantity())){ if(StringUtils.isNotBlank(answer) && StringUtils.isNumeric(answer)){ Integer amount = Integer.valueOf(answer); if( !map.containsKey(key) ){ @@ -2453,7 +2490,7 @@ Long qmiId,String positoinMsg,String dateStr, Integer orderNum,String questionName,String option,String answer,Integer frequency, String sterilizerName, boolean isCustomADJAndIsFormNameIsADJ, String createUserName, String remark, String isQualified, Long qmdId, Integer materialAmount, String taskGroup, String packageType - ,String assetsBelongName, String tousseType, String sterilingMethod, String cleanMethod, String tousseGroupName, String mdType, String washClassifyType) { + ,String assetsBelongName, String tousseType, String sterilingMethod, String cleanMethod, String tousseGroupName, String mdType, String washClassifyType, String fillQuantity) { MonitoringItemBean bean = new MonitoringItemBean(); bean.setAmount(amount); bean.setRegisterMaterialAmount(registerMaterialAmount); @@ -2489,6 +2526,7 @@ bean.setTousseGroupName(tousseGroupName); bean.setMdType(mdType); bean.setWashClassifyType(washClassifyType); + bean.setFillQuantity(fillQuantity); list.add(bean); } /** Index: ssts-reports/src/main/java/com/forgon/disinfectsystem/jasperreports/action/JasperreportsAction.java =================================================================== diff -u -r40948 -r40975 --- ssts-reports/src/main/java/com/forgon/disinfectsystem/jasperreports/action/JasperreportsAction.java (.../JasperreportsAction.java) (revision 40948) +++ ssts-reports/src/main/java/com/forgon/disinfectsystem/jasperreports/action/JasperreportsAction.java (.../JasperreportsAction.java) (revision 40975) @@ -115,6 +115,7 @@ import com.forgon.disinfectsystem.jasperreports.util.MonthReportHelper; import com.forgon.disinfectsystem.jasperreports.util.OperationTousseOperationRepartHelper; import com.forgon.disinfectsystem.jasperreports.util.PackingFailureRateReportChartHelper; +import com.forgon.disinfectsystem.jasperreports.util.QualityControlHelper; import com.forgon.disinfectsystem.jasperreports.util.RealTimeBulletinBoardWorkloadHelper; import com.forgon.disinfectsystem.jasperreports.util.SterilizationFailureRateReportChartHelper; import com.forgon.disinfectsystem.jasperreports.util.TousseDeliverDetailReportHelper; @@ -213,6 +214,11 @@ private LineGraphReportOfWorkloadByTimePeriodHelper lineGraphReportOfWorkloadByTimePeriodHelper; + private QualityControlHelper qualityControlHelper; + public void setQualityControlHelper( + QualityControlHelper qualityControlHelper) { + this.qualityControlHelper = qualityControlHelper; + } private TousseWorkLoadHelper tousseWorkLoadHelper; public void setTousseWorkLoadHelper( TousseWorkLoadHelper tousseWorkLoadHelper) { @@ -1095,7 +1101,7 @@ String year = StrutsParamUtils.getPraramValue("year", null); // type为报表类型,包括全年、上下半年对比、今年与去年对比三种类型 String type = StrutsParamUtils.getPraramValue("type", null); - + qualityControlHelper.getQualityControlReportData(requestParameters, parametMap); if (StringUtils.isNotBlank(year)) { // 判断是否为中大附一的持续收集统计报表 @@ -1139,6 +1145,8 @@ } } + }else if("qualityControlReport".equals(reportName)){ + return qualityControlHelper.getQualityControlReportData(requestParameters, parametMap); } else if (reportName.equals("workQualityCollectionPicChart")) {// 工作质量持续收集饼状图统计报表 String month = StrutsParamUtils.getPraramValue("month", null); if(StringUtils.isBlank(month)){