Index: ssts-reports/src/main/java/com/forgon/disinfectsystem/jasperreports/util/DamageErrorMonthViewHelper.java =================================================================== diff -u --- ssts-reports/src/main/java/com/forgon/disinfectsystem/jasperreports/util/DamageErrorMonthViewHelper.java (revision 0) +++ ssts-reports/src/main/java/com/forgon/disinfectsystem/jasperreports/util/DamageErrorMonthViewHelper.java (revision 35881) @@ -0,0 +1,144 @@ +package com.forgon.disinfectsystem.jasperreports.util; + +import java.sql.ResultSet; +import java.util.ArrayList; +import java.util.HashMap; +import java.util.List; +import java.util.Map; +import org.apache.commons.lang.StringUtils; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.stereotype.Component; +import com.forgon.databaseadapter.service.DateQueryAdapter; +import com.forgon.disinfectsystem.entity.materialerrordamage.MaterialErrorDamageDetail; +import com.forgon.disinfectsystem.jasperreports.javabeansource.DamageErrorMontBean; +import com.forgon.disinfectsystem.jasperreports.service.dataindex.DataIndex; +import com.forgon.tools.db.DatabaseUtil; +import com.forgon.tools.hibernate.ObjectDao; +import edu.emory.mathcs.backport.java.util.Arrays; +/** + * 器械丢失报损分类统计月报 + */ +@Component +public class DamageErrorMonthViewHelper { + @Autowired + private DateQueryAdapter dateQueryAdapter; + @Autowired + private ObjectDao objectDao; + /** + * 获取丢失报损类型月报数据 + * @param queryYear + * @param damageErrorType + * @param departType + * @return + */ + public List getDamageErrorMontSource(String queryYear,String damageErrorType,String departType){ + List list = new ArrayList(); + if(StringUtils.isNotBlank(queryYear)){ + String startYear = queryYear + "-01-01 00:00:00"; + String nextYear = DataIndex.getNextYear(queryYear) + " 00:00:00"; + String sql = ""; + if("丢失".equals(damageErrorType)){ + if(StringUtils.isBlank(departType)){ + sql = "select " + dateQueryAdapter.dateConverAdapter3("rError.operationTime","mm") +" monthstr,rError.damageErrorMaterialType,sum(rError.amount) count from MaterialErrorDamageDetail rError " + + " where rError.type = '"+MaterialErrorDamageDetail.TYPE_ERROR+"' and rError.operationTime between " + dateQueryAdapter.dateAdapter(startYear) + + "and "+dateQueryAdapter.dateAdapter(nextYear) + + " group by " + dateQueryAdapter.dateConverAdapter3("rError.operationTime","mm") + " ,rError.damageErrorMaterialType "; + }else{ + sql = "select " + dateQueryAdapter.dateConverAdapter3("rError.operationTime","mm") +" monthstr,rError.damageErrorMaterialType,sum(rError.amount) count from MaterialErrorDamageDetail rError " + + " where rError.type = '"+MaterialErrorDamageDetail.TYPE_ERROR+"' and rError.damageErrorDepartType = '" + departType + "'" + + " and rError.operationTime between " + dateQueryAdapter.dateAdapter(startYear) + + " and "+dateQueryAdapter.dateAdapter(nextYear) + + " group by " + dateQueryAdapter.dateConverAdapter3("rError.operationTime","mm") + " ,rError.damageErrorMaterialType "; + } + }else if("报损".equals(damageErrorType)){ + if(StringUtils.isBlank(departType)){ + sql = "select " + dateQueryAdapter.dateConverAdapter3("rd.operationTime","mm") +" monthstr,rd.damageErrorMaterialType,sum(rd.amount) count from MaterialErrorDamageDetail rd " + + " where rd.type = '"+MaterialErrorDamageDetail.TYPE_DAMAGE+"' and rd.operationTime between " + dateQueryAdapter.dateAdapter(startYear) + + "and "+dateQueryAdapter.dateAdapter(nextYear) + + " group by " + dateQueryAdapter.dateConverAdapter3("rd.operationTime","mm") + " ,rd.damageErrorMaterialType "; + }else{ + sql = "select " + dateQueryAdapter.dateConverAdapter3("rd.operationTime","mm") +" monthstr,rd.damageErrorMaterialType,sum(rd.amount) count from MaterialErrorDamageDetail rd " + + " where rd.type = '"+MaterialErrorDamageDetail.TYPE_DAMAGE+"' and rd.damageErrorDepartType = '" + departType + "' " + + " and rd.operationTime between " + dateQueryAdapter.dateAdapter(startYear) + + " and "+dateQueryAdapter.dateAdapter(nextYear) + + " group by " + dateQueryAdapter.dateConverAdapter3("rd.operationTime","mm") + " ,rd.damageErrorMaterialType "; + } + } + if(StringUtils.isNotBlank(sql)){ + ResultSet result = objectDao.executeSql(sql); + list = getDamageErrorMonthBeanByResult(result); + } + } + return list; + } + private List getDamageErrorMonthBeanByResult(ResultSet rs){ + Map map = new HashMap(); + try{ + if(rs != null){ + while (rs.next()) { + String month = rs.getString(1); + String materialTypeName = rs.getString(2); + int amount = rs.getInt(3); + if(StringUtils.isBlank(materialTypeName)){ + materialTypeName = "空"; + } + if(map.containsKey(materialTypeName)){ + DamageErrorMontBean bean = map.get(materialTypeName); + bean.setMaterialName(materialTypeName); + setMonthValueToBean(bean,month,amount); + map.put(materialTypeName,bean); + }else{ + DamageErrorMontBean bean = new DamageErrorMontBean(); + bean.setMaterialName(materialTypeName); + setMonthValueToBean(bean,month,amount); + map.put(materialTypeName, bean); + } + } + } + }catch(Exception e){ + e.printStackTrace(); + }finally{ + DatabaseUtil.closeResultSetAndStatement(rs); + } + return Arrays.asList(map.values().toArray()); + } + /** + * 设置丢失报损每月的数量 + * @param bean + * @param month + * @param amount + */ + private void setMonthValueToBean(DamageErrorMontBean bean,String month,int amount){ + if(bean == null || StringUtils.isBlank(month) ){ + return ; + } + if(StringUtils.isNumeric(month)){ + int mon = Integer.parseInt(month); + if(mon == 1){ + bean.setJanuaryBHGL(amount); + }else if(mon == 2){ + bean.setFebruaryBHGL(amount); + }else if(mon == 3){ + bean.setMarchBHGL(amount); + }else if(mon == 4){ + bean.setAprilBHGL(amount); + }else if(mon == 5){ + bean.setMayBHGL(amount); + }else if(mon == 6){ + bean.setJuneBHGL(amount); + }else if(mon == 7){ + bean.setJulyBHGL(amount); + }else if(mon == 8){ + bean.setAugustBHGL(amount); + }else if(mon == 9){ + bean.setSeptemberBHGL(amount); + }else if(mon == 10){ + bean.setOctoberBHGL(amount); + }else if(mon == 11){ + bean.setNovemberBHGL(amount); + }else if(mon == 12){ + bean.setDecemberBHGL(amount); + } + } + } +} Index: ssts-reports/src/main/java/com/forgon/disinfectsystem/jasperreports/service/JasperReportManagerImpl.java =================================================================== diff -u -r35880 -r35881 --- ssts-reports/src/main/java/com/forgon/disinfectsystem/jasperreports/service/JasperReportManagerImpl.java (.../JasperReportManagerImpl.java) (revision 35880) +++ ssts-reports/src/main/java/com/forgon/disinfectsystem/jasperreports/service/JasperReportManagerImpl.java (.../JasperReportManagerImpl.java) (revision 35881) @@ -164,6 +164,7 @@ import com.forgon.disinfectsystem.jasperreports.util.AmountContrastReportHelper; import com.forgon.disinfectsystem.jasperreports.util.CssdWorkloadReportForTangshanWorkersHospitalHelper; import com.forgon.disinfectsystem.jasperreports.util.CssdWorkloadReportHelper; +import com.forgon.disinfectsystem.jasperreports.util.DamageErrorMonthViewHelper; import com.forgon.disinfectsystem.jasperreports.util.DepartSatisfyReportHelper; import com.forgon.disinfectsystem.jasperreports.util.DepartmentMonthDetailHelper; import com.forgon.disinfectsystem.jasperreports.util.DeviceMaintenanceCusDataSourceHelper; @@ -415,6 +416,8 @@ private MaterialWashUnqualifiedReportHelper materialWashUnqualifiedReportHelper; @Autowired private MaterialErrorDamageReportHelper materialErrorDamageReportHelper; + @Autowired + private DamageErrorMonthViewHelper damageErrorMonthViewHelper; /** * 利用sql语句做数据源创建JasperPrint对象 * @param realPath 报表的jasper文件在服务器本地机子的全路径 @@ -4062,122 +4065,11 @@ String inspectDetail,String type,String responsibilityType){ return qualityMonitoringInspectMonthReportHelper.getQualityMonitoringInspectDayOfMonthParamet(queryYear, orgUnitCoding, queryMonth, monitoringType, inspectItem, inspectDetail, type, responsibilityType); } - /** - * 获取丢失报损月报数据 - */ @Override public List getDamageErrorMontSource(String queryYear,String damageErrorType,String departType){ - List list = new ArrayList(); - if(StringUtils.isNotBlank(queryYear)){ - String startYear = queryYear + "-01-01 00:00:00"; - String nextYear = DataIndex.getNextYear(queryYear) + " 00:00:00"; - String sql = ""; - if("丢失".equals(damageErrorType)){ - if(StringUtils.isBlank(departType)){ - sql = "select " + dateQueryAdapter.dateConverAdapter3("rError.operationTime","mm") +" monthstr,rError.damageErrorMaterialType,sum(rError.amount) count from MaterialErrorDamageDetail rError " - + " where rError.type = '"+MaterialErrorDamageDetail.TYPE_ERROR+"' and rError.operationTime between " + dateQueryAdapter.dateAdapter(startYear) - + "and "+dateQueryAdapter.dateAdapter(nextYear) - + " group by " + dateQueryAdapter.dateConverAdapter3("rError.operationTime","mm") + " ,rError.damageErrorMaterialType "; - }else{ - sql = "select " + dateQueryAdapter.dateConverAdapter3("rError.operationTime","mm") +" monthstr,rError.damageErrorMaterialType,sum(rError.amount) count from MaterialErrorDamageDetail rError " - + " where rError.type = '"+MaterialErrorDamageDetail.TYPE_ERROR+"' and rError.damageErrorDepartType = '" + departType + "'" - + " and rError.operationTime between " + dateQueryAdapter.dateAdapter(startYear) - + " and "+dateQueryAdapter.dateAdapter(nextYear) - + " group by " + dateQueryAdapter.dateConverAdapter3("rError.operationTime","mm") + " ,rError.damageErrorMaterialType "; - } - }else if("报损".equals(damageErrorType)){ - if(StringUtils.isBlank(departType)){ - sql = "select " + dateQueryAdapter.dateConverAdapter3("rd.operationTime","mm") +" monthstr,rd.damageErrorMaterialType,sum(rd.amount) count from MaterialErrorDamageDetail rd " - + " where rd.type = '"+MaterialErrorDamageDetail.TYPE_DAMAGE+"' and rd.operationTime between " + dateQueryAdapter.dateAdapter(startYear) - + "and "+dateQueryAdapter.dateAdapter(nextYear) - + " group by " + dateQueryAdapter.dateConverAdapter3("rd.operationTime","mm") + " ,rd.damageErrorMaterialType "; - }else{ - sql = "select " + dateQueryAdapter.dateConverAdapter3("rd.operationTime","mm") +" monthstr,rd.damageErrorMaterialType,sum(rd.amount) count from MaterialErrorDamageDetail rd " - + " where rd.type = '"+MaterialErrorDamageDetail.TYPE_DAMAGE+"' and rd.damageErrorDepartType = '" + departType + "' " - + " and rd.operationTime between " + dateQueryAdapter.dateAdapter(startYear) - + " and "+dateQueryAdapter.dateAdapter(nextYear) - + " group by " + dateQueryAdapter.dateConverAdapter3("rd.operationTime","mm") + " ,rd.damageErrorMaterialType "; - } - } - if(StringUtils.isNotBlank(sql)){ - ResultSet result = objectDao.executeSql(sql); - list = getDamageErrorMonthBeanByResult(result); - } - } - return list; + return damageErrorMonthViewHelper.getDamageErrorMontSource(queryYear, damageErrorType, departType); } - private List getDamageErrorMonthBeanByResult(ResultSet rs){ - Map map = new HashMap(); - try{ - if(rs != null){ - while (rs.next()) { - String month = rs.getString(1); - String materialTypeName = rs.getString(2); - int amount = rs.getInt(3); - if(StringUtils.isBlank(materialTypeName)){ - materialTypeName = "空"; - } - if(map.containsKey(materialTypeName)){ - DamageErrorMontBean bean = map.get(materialTypeName); - bean.setMaterialName(materialTypeName); - setMonthValueToBean(bean,month,amount); - map.put(materialTypeName,bean); - }else{ - DamageErrorMontBean bean = new DamageErrorMontBean(); - bean.setMaterialName(materialTypeName); - setMonthValueToBean(bean,month,amount); - map.put(materialTypeName, bean); - } - } - } - }catch(Exception e){ - e.printStackTrace(); - }finally{ - DatabaseUtil.closeResultSetAndStatement(rs); - } - return Arrays.asList(map.values().toArray()); - } /** - * 设置丢失报损每月的数量 - * @param bean - * @param month - * @param amount - */ - private void setMonthValueToBean(DamageErrorMontBean bean,String month,int amount){ - if(bean == null || StringUtils.isBlank(month) ){ - return ; - } - if(StringUtils.isNumeric(month)){ - int mon = Integer.parseInt(month); - if(mon == 1){ - bean.setJanuaryBHGL(amount); - }else if(mon == 2){ - bean.setFebruaryBHGL(amount); - }else if(mon == 3){ - bean.setMarchBHGL(amount); - }else if(mon == 4){ - bean.setAprilBHGL(amount); - }else if(mon == 5){ - bean.setMayBHGL(amount); - }else if(mon == 6){ - bean.setJuneBHGL(amount); - }else if(mon == 7){ - bean.setJulyBHGL(amount); - }else if(mon == 8){ - bean.setAugustBHGL(amount); - }else if(mon == 9){ - bean.setSeptemberBHGL(amount); - }else if(mon == 10){ - bean.setOctoberBHGL(amount); - }else if(mon == 11){ - bean.setNovemberBHGL(amount); - }else if(mon == 12){ - bean.setDecemberBHGL(amount); - } - } - } - - /** * 获取回收器械材料明细 */ @Override