Index: ssts-reports/src/main/java/com/forgon/disinfectsystem/jasperreports/instrumentrepairreport/handler/InstrumentRepairBarChartReportHandler.java =================================================================== diff -u -r41564 -r41566 --- ssts-reports/src/main/java/com/forgon/disinfectsystem/jasperreports/instrumentrepairreport/handler/InstrumentRepairBarChartReportHandler.java (.../InstrumentRepairBarChartReportHandler.java) (revision 41564) +++ ssts-reports/src/main/java/com/forgon/disinfectsystem/jasperreports/instrumentrepairreport/handler/InstrumentRepairBarChartReportHandler.java (.../InstrumentRepairBarChartReportHandler.java) (revision 41566) @@ -15,12 +15,21 @@ import com.forgon.Constants; import com.forgon.databaseadapter.service.DateQueryAdapter; +import com.forgon.disinfectsystem.entity.basedatamanager.instrumentrepair.InstrumentRepair; +import com.forgon.disinfectsystem.entity.basedatamanager.instrumentrepair.InstrumentRepairGoods; +import com.forgon.disinfectsystem.entity.basedatamanager.materialdefinition.MaterialDefinition; +import com.forgon.disinfectsystem.entity.basedatamanager.toussedefinition.TousseDefinition; import com.forgon.disinfectsystem.jasperreports.ReportsConstant; import com.forgon.disinfectsystem.jasperreports.service.JasperReportsHandler; +import com.forgon.systemsetting.model.HttpOption; import com.forgon.tools.StrutsParamUtils; import com.forgon.tools.db.InitDbConnection; import com.forgon.tools.hibernate.ObjectDao; import com.forgon.tools.util.SqlUtils; +/** + * 器械维修记录报表柱状图 + * + */ @Service public class InstrumentRepairBarChartReportHandler implements JasperReportsHandler{ @Autowired @@ -95,6 +104,11 @@ System.out.println(JSONObject.fromObject(parameterMap)); return new JSONArray(); } + /** + * 构建分组数据 + * @param sql + * @return + */ private Map> buildOptionTextMap(String sql) { Map> resultMap = new HashMap<>(); try (ResultSet rs = objectDao.executeSql(sql)){ @@ -112,36 +126,56 @@ } return resultMap; } + /** + * 创建查询器械类型语句 + * @param generalQueryConditions 查询条件 + * @param ymSql 时间分组 + * @return + */ private String createDeviceTypeSql(String generalQueryConditions, String ymSql){ - String sql = "select sum(g.amount) amount " - + ",deviceTypeho.optionText ,"+ ymSql +" yyyymm " - + "from " - + "InstrumentRepair" + String sql = "select sum(g.amount) amount,deviceTypeho.optionText ," + + ymSql + +" yyyymm from " + + InstrumentRepair.class.getSimpleName() + " i join " - + "InstrumentRepairGoods" + + InstrumentRepairGoods.class.getSimpleName() + " g on i.id=g.instrumentRepair_ID join " - + "HttpOption" - + " deviceTypeho on deviceTypeho.id=g.deviceTypeHttpOptionId " - + "left join TousseDefinition td on td.id=g.toussedefinitionId " - + "left join MaterialDefinition md on md.id=g.materialDefinitionID where " + + HttpOption.class.getSimpleName() + + " deviceTypeho on deviceTypeho.id=g.deviceTypeHttpOptionId left join " + + TousseDefinition.class.getSimpleName() + + " td on td.id=g.toussedefinitionId left join " + + MaterialDefinition.class.getSimpleName() + + " md on md.id=g.materialDefinitionID where " + generalQueryConditions - + "group by "+ ymSql +",deviceTypeho.optionText"; + + " group by " + + ymSql + +",deviceTypeho.optionText"; return sql; } + /** + * 创建查询故障部位语句 + * @param generalQueryConditions 查询条件 + * @param ymSql 时间分组 + * @return + */ private String createFaultLocationSql(String generalQueryConditions, String ymSql){ - String sql = "select sum(g.amount) amount " - + ",faultLocationho.optionText,"+ ymSql +" yyyymm " - + "from " - + "InstrumentRepair" + String sql = "select sum(g.amount) amount,faultLocationho.optionText," + + ymSql + +" yyyymm from " + + InstrumentRepair.class.getSimpleName() + " i join " - + "InstrumentRepairGoods" + + InstrumentRepairGoods.class.getSimpleName() + " g on i.id=g.instrumentRepair_ID join " - + "HttpOption" - + " faultLocationho on faultLocationho.id=g.faultLocationHttpOptionId " - + "left join TousseDefinition td on td.id=g.toussedefinitionId " - + "left join MaterialDefinition md on md.id=g.materialDefinitionID where " + + HttpOption.class.getSimpleName() + + " faultLocationho on faultLocationho.id=g.faultLocationHttpOptionId left join " + +TousseDefinition.class.getSimpleName() + +" td on td.id=g.toussedefinitionId left join " + + MaterialDefinition.class.getSimpleName() + + " md on md.id=g.materialDefinitionID where " + generalQueryConditions - + "group by "+ ymSql +",faultLocationho.optionText"; + + " group by " + + ymSql + +",faultLocationho.optionText"; return sql; } }