Index: ssts-reports/src/main/java/com/forgon/disinfectsystem/jasperreports/util/DeviceMaintenanceHelper.java =================================================================== diff -u --- ssts-reports/src/main/java/com/forgon/disinfectsystem/jasperreports/util/DeviceMaintenanceHelper.java (revision 0) +++ ssts-reports/src/main/java/com/forgon/disinfectsystem/jasperreports/util/DeviceMaintenanceHelper.java (revision 35808) @@ -0,0 +1,256 @@ +package com.forgon.disinfectsystem.jasperreports.util; + +import java.text.DateFormat; +import java.util.ArrayList; +import java.util.Date; +import java.util.HashMap; +import java.util.List; +import java.util.Map; +import java.util.Map.Entry; + +import org.apache.commons.lang.StringUtils; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.stereotype.Component; + +import com.forgon.disinfectsystem.basedatamanager.rinser.service.RinserManager; +import com.forgon.disinfectsystem.basedatamanager.sterilizer.service.SterilizerManager; +import com.forgon.disinfectsystem.entity.basedatamanager.rinser.Rinser; +import com.forgon.disinfectsystem.entity.basedatamanager.sterilizer.ConsumptiveConfig; +import com.forgon.disinfectsystem.entity.basedatamanager.sterilizer.ConsumptiveInstance; +import com.forgon.disinfectsystem.entity.basedatamanager.sterilizer.DetectionItem; +import com.forgon.disinfectsystem.entity.basedatamanager.sterilizer.Sterilizer; +import com.forgon.disinfectsystem.entity.devicemaintenance.DeviceMaintenance; +import com.forgon.disinfectsystem.entity.devicemonitoring.DeviceMonitoring; +import com.forgon.disinfectsystem.jasperreports.javabeansource.DeviceMaintenanceBean; +import com.forgon.tools.MathTools; +import com.forgon.tools.date.DateTools; +/** + * + * 各种设备维护报表 + * + */ +@Component +public class DeviceMaintenanceHelper extends ReportHelper{ + @Autowired + private SterilizerManager sterilizerManager; + @Autowired + private RinserManager rinserManager; + /** + * 设备维护报表 + * @param startDate + * @param endDate + * @param querySupplyRoom 供应室 + * @return + */ + public List getDeviceMaintenanceSource( + String startDate, String endDate,String querySupplyRoom) { + List returnList = new ArrayList(); + // 排序 + if (StringUtils.isNotBlank(startDate) + && StringUtils.isNotBlank(endDate)) { + Map sourceSortMap = new HashMap(); + sourceSortMap.put("价格", 1); + sourceSortMap.put("数量", 2); + sourceSortMap.put("维护/故障时间", 3); + sourceSortMap.put("故障情况", 4); + sourceSortMap.put("处理", 5); + sourceSortMap.put("消毒员", 6); + sourceSortMap.put("维护员", 7); + sourceSortMap.put("项目名称", 8); + startDate += " 00:00:00"; + endDate += " 23:59:59"; + String sql = " where po.deviceDepartCoding = '"+querySupplyRoom+"'" + + " and po.maintenanceTime between " + + dateQueryAdapter.dateAdapter(startDate) + " and " + + dateQueryAdapter.dateAdapter(endDate); + @SuppressWarnings("unchecked") + List list = objectDao.findBySql( + DeviceMaintenance.class.getSimpleName(), sql); + DateFormat ymdhm = DateTools.YMDHMFORMAT.get(); + DateFormat ymdhms = DateTools.YMDHMSFORMAT.get(); + for (DeviceMaintenance deviceMaintenance : list) { + Map resultMap = new HashMap(); + Date dt = deviceMaintenance.getBreakdownTime(); + resultMap.put("维护/故障时间", dt == null ? "" + : ymdhm.format(dt)); + resultMap.put("故障情况", + deviceMaintenance.getBreakdownDescribeInfo()); + resultMap.put("处理", deviceMaintenance.getRemark()); + resultMap.put("消毒员", deviceMaintenance.getRegistrant()); + resultMap.put("维护员", deviceMaintenance.getMaintenanceMan()); + resultMap.put("项目名称", deviceMaintenance.getProjectName()); + String totalPriceStr = "0"; + if( deviceMaintenance.getTotalPrice() != null){ + totalPriceStr = deviceMaintenance.getTotalPrice().toString(); + } + for (ConsumptiveInstance consumptiveInstance : deviceMaintenance + .getConsumptiveInstances()) { + ConsumptiveConfig cconfig = consumptiveInstance.getConConfig(); + if(isDeviceHaveConsumptiveConfig(deviceMaintenance.getDeviceName(),cconfig) ){ + for(Entry entry : sourceSortMap.entrySet()){ + String title = entry.getKey(); + Integer sort = entry.getValue(); + DeviceMaintenanceBean bean = new DeviceMaintenanceBean(); + Date date = deviceMaintenance.getMaintenanceTime(); + String dateStr = ymdhms.format(date); + bean.setDate(dateStr); + bean.setDeviceName(deviceMaintenance.getDeviceName()); + bean.setTotalPrice(totalPriceStr); + if(consumptiveInstance.getConConfig() != null){ + bean.setMaterialName(consumptiveInstance.getConConfig().getMaterialName()); + } + if("价格".equals(title)){ + String priceStr = "0"; + if(consumptiveInstance.getPrice() != null){ + priceStr = consumptiveInstance.getPrice().toString(); + } + bean.setResult(priceStr); + }else if("数量".equals(title)){ + String amountStr = "0"; + if(consumptiveInstance.getAmount() != null){ + amountStr = consumptiveInstance.getAmount().toString(); + } + bean.setResult(amountStr); + }else{ + bean.setResult(resultMap.get(title)); + } + bean.setTitle(title); + bean.setTitleSort("" + sort); + returnList.add(bean); + } + } + } + if (deviceMaintenance.getConsumptiveInstances() == null + || deviceMaintenance.getConsumptiveInstances().size() <= 0) { + for(Entry entry : sourceSortMap.entrySet()){ + String title = entry.getKey(); + Integer sort = entry.getValue(); + DeviceMaintenanceBean bean = new DeviceMaintenanceBean(); + Date date = deviceMaintenance.getMaintenanceTime(); + String dateStr = ymdhms.format(date); + bean.setDate(dateStr); + bean.setDeviceName(deviceMaintenance.getDeviceName()); + bean.setMaterialName(""); + bean.setResult(resultMap.get(title)); + bean.setTitle(title); + bean.setTitleSort("" + sort); + returnList.add(bean); + } + } + } + } + return returnList; + } + /** + * 设备是否有耗材的配置 + * @param deviceName + * @param conConfig + * @return + */ + private boolean isDeviceHaveConsumptiveConfig(String deviceName,ConsumptiveConfig conConfig){ + boolean ret = false; + if(StringUtils.isBlank(deviceName) || conConfig == null){ + return ret; + } + Sterilizer sterilizer = sterilizerManager.getSterilizerByName(deviceName); + if(sterilizer != null){ + List configList = sterilizer.getConsumptives(); + for (int i = 0 ; i < configList.size() ; i++) { + Long id = configList.get(i).getId(); + if(MathTools.equals(id,conConfig.getId())){ + ret = true; + } + } + }else{ + Rinser rinser= rinserManager.getRinserByName(deviceName); + if(rinser != null){ + List configList = rinser.getConsumptives(); + for (int i = 0 ; i < configList.size() ; i++) { + Long id = configList.get(i).getId(); + if(MathTools.equals(id,conConfig.getId())){ + ret = true; + } + } + } + } + return ret; + } + /** + * 获取设备监测报表数据源 + * @param startDate + * @param endDate + * @return + */ + public List getDeviceMonitoringSource( + String startDate, String endDate) { + List returnList = new ArrayList(); + // 排序 + if (StringUtils.isNotBlank(startDate) + && StringUtils.isNotBlank(endDate)) { + Map sourceSortMap = new HashMap(); + sourceSortMap.put("故障时间", 1); + sourceSortMap.put("故障情况", 2); + sourceSortMap.put("处理", 3); + sourceSortMap.put("消毒员", 4); + sourceSortMap.put("工程师维护记录", 5); + sourceSortMap.put("录工程师签名", 6); + startDate += " 00:00:00"; + endDate += " 23:59:59"; + String sql = " where po.time between " + + dateQueryAdapter.dateAdapter(startDate) + " and " + + dateQueryAdapter.dateAdapter(endDate); + @SuppressWarnings("unchecked") + List list = objectDao.findBySql( + DeviceMonitoring.class.getSimpleName(), sql); + DateFormat ymd = DateTools.YMDFORMAT.get(); + DateFormat ymdhm = DateTools.YMDHMFORMAT.get(); + for (DeviceMonitoring deviceMonitoring : list) { + Map resultMap = new HashMap(); + Date dt = deviceMonitoring.getBreakdownTime(); + resultMap.put("故障时间", dt == null ? "" : ymdhm.format(dt)); + resultMap.put("故障情况", + deviceMonitoring.getBreakdownDescribeInfo()); + resultMap.put("处理", deviceMonitoring.getResult()); + resultMap.put("消毒员", deviceMonitoring.getRegistrant()); + resultMap.put("工程师维护记录", ""); + resultMap.put("录工程师签名", ""); + for (DetectionItem detectionItem : deviceMonitoring + .getDetectionItems()) { + for(Entry entry : sourceSortMap.entrySet()){ + String title = entry.getKey(); + Integer sort = entry.getValue(); + DeviceMaintenanceBean bean = new DeviceMaintenanceBean(); + Date date = deviceMonitoring.getTime(); + String dateStr = ymd.format(date); + bean.setDate(dateStr); + bean.setDeviceName(deviceMonitoring.getDeviceName()); + bean.setMaterialName(detectionItem + .getDetectionItemName()); + bean.setResult(resultMap.get(title)); + bean.setTitle(title); + bean.setTitleSort("" + sort); + returnList.add(bean); + } + } + if (deviceMonitoring.getDetectionItems() == null + || deviceMonitoring.getDetectionItems().size() <= 0) { + for(Entry entry : sourceSortMap.entrySet()){ + String title = entry.getKey(); + Integer sort = entry.getValue(); + DeviceMaintenanceBean bean = new DeviceMaintenanceBean(); + Date date = deviceMonitoring.getTime(); + String dateStr = ymd.format(date); + bean.setDate(dateStr); + bean.setDeviceName(deviceMonitoring.getDeviceName()); + bean.setMaterialName(""); + bean.setResult(resultMap.get(title)); + bean.setTitle(title); + bean.setTitleSort("" + sort); + returnList.add(bean); + } + } + } + } + return returnList; + } +} Index: ssts-reports/src/main/java/com/forgon/disinfectsystem/jasperreports/service/JasperReportManagerImpl.java =================================================================== diff -u -r35806 -r35808 --- ssts-reports/src/main/java/com/forgon/disinfectsystem/jasperreports/service/JasperReportManagerImpl.java (.../JasperReportManagerImpl.java) (revision 35806) +++ ssts-reports/src/main/java/com/forgon/disinfectsystem/jasperreports/service/JasperReportManagerImpl.java (.../JasperReportManagerImpl.java) (revision 35808) @@ -179,6 +179,7 @@ import com.forgon.disinfectsystem.jasperreports.util.DepartSatisfyReportHelper; import com.forgon.disinfectsystem.jasperreports.util.DepartmentMonthDetailHelper; import com.forgon.disinfectsystem.jasperreports.util.DeviceMaintenanceCusDataSourceHelper; +import com.forgon.disinfectsystem.jasperreports.util.DeviceMaintenanceHelper; import com.forgon.disinfectsystem.jasperreports.util.EighteenQuotaBeanHelper; import com.forgon.disinfectsystem.jasperreports.util.ForeignTousseApplicationReportHelper; import com.forgon.disinfectsystem.jasperreports.util.FormDefinitionHelper; @@ -366,6 +367,8 @@ private QualityMonitoringHelper qualityMonitoringHelper; @Autowired private QualityMonitoringReportTaskGroupReportHelper qualityMonitoringReportTaskGroupReportHelper; + @Autowired + private DeviceMaintenanceHelper deviceMaintenanceHelper; public void setPackingManager(PackingManager packingManager) { this.packingManager = packingManager; } @@ -565,75 +568,7 @@ @Override public List getdeviceMonitoringSource( String startDate, String endDate) { - List returnList = new ArrayList(); - // 排序 - if (StringUtils.isNotBlank(startDate) - && StringUtils.isNotBlank(endDate)) { - Map sourceSortMap = new HashMap(); - sourceSortMap.put("故障时间", 1); - sourceSortMap.put("故障情况", 2); - sourceSortMap.put("处理", 3); - sourceSortMap.put("消毒员", 4); - sourceSortMap.put("工程师维护记录", 5); - sourceSortMap.put("录工程师签名", 6); - startDate += " 00:00:00"; - endDate += " 23:59:59"; - String sql = " where po.time between " - + dateQueryAdapter.dateAdapter(startDate) + " and " - + dateQueryAdapter.dateAdapter(endDate); - @SuppressWarnings("unchecked") - List list = objectDao.findBySql( - DeviceMonitoring.class.getSimpleName(), sql); - DateFormat ymd = DateTools.YMDFORMAT.get(); - DateFormat ymdhm = DateTools.YMDHMFORMAT.get(); - for (DeviceMonitoring deviceMonitoring : list) { - Map resultMap = new HashMap(); - Date dt = deviceMonitoring.getBreakdownTime(); - resultMap.put("故障时间", dt == null ? "" : ymdhm.format(dt)); - resultMap.put("故障情况", - deviceMonitoring.getBreakdownDescribeInfo()); - resultMap.put("处理", deviceMonitoring.getResult()); - resultMap.put("消毒员", deviceMonitoring.getRegistrant()); - resultMap.put("工程师维护记录", ""); - resultMap.put("录工程师签名", ""); - for (DetectionItem detectionItem : deviceMonitoring - .getDetectionItems()) { - for(Entry entry : sourceSortMap.entrySet()){ - String title = entry.getKey(); - Integer sort = entry.getValue(); - DeviceMaintenanceBean bean = new DeviceMaintenanceBean(); - Date date = deviceMonitoring.getTime(); - String dateStr = ymd.format(date); - bean.setDate(dateStr); - bean.setDeviceName(deviceMonitoring.getDeviceName()); - bean.setMaterialName(detectionItem - .getDetectionItemName()); - bean.setResult(resultMap.get(title)); - bean.setTitle(title); - bean.setTitleSort("" + sort); - returnList.add(bean); - } - } - if (deviceMonitoring.getDetectionItems() == null - || deviceMonitoring.getDetectionItems().size() <= 0) { - for(Entry entry : sourceSortMap.entrySet()){ - String title = entry.getKey(); - Integer sort = entry.getValue(); - DeviceMaintenanceBean bean = new DeviceMaintenanceBean(); - Date date = deviceMonitoring.getTime(); - String dateStr = ymd.format(date); - bean.setDate(dateStr); - bean.setDeviceName(deviceMonitoring.getDeviceName()); - bean.setMaterialName(""); - bean.setResult(resultMap.get(title)); - bean.setTitle(title); - bean.setTitleSort("" + sort); - returnList.add(bean); - } - } - } - } - return returnList; + return deviceMaintenanceHelper.getDeviceMonitoringSource(startDate, endDate); } /** @@ -642,137 +577,9 @@ @Override public List getDeviceMaintenanceSource( String startDate, String endDate,String querySupplyRoom) { - List returnList = new ArrayList(); - // 排序 - if (StringUtils.isNotBlank(startDate) - && StringUtils.isNotBlank(endDate)) { - Map sourceSortMap = new HashMap(); - sourceSortMap.put("价格", 1); - sourceSortMap.put("数量", 2); - sourceSortMap.put("维护/故障时间", 3); - sourceSortMap.put("故障情况", 4); - sourceSortMap.put("处理", 5); - sourceSortMap.put("消毒员", 6); - sourceSortMap.put("维护员", 7); - sourceSortMap.put("项目名称", 8); - startDate += " 00:00:00"; - endDate += " 23:59:59"; - String sql = " where po.deviceDepartCoding = '"+querySupplyRoom+"'" - + " and po.maintenanceTime between " - + dateQueryAdapter.dateAdapter(startDate) + " and " - + dateQueryAdapter.dateAdapter(endDate); - @SuppressWarnings("unchecked") - List list = objectDao.findBySql( - DeviceMaintenance.class.getSimpleName(), sql); - DateFormat ymdhm = DateTools.YMDHMFORMAT.get(); - DateFormat ymdhms = DateTools.YMDHMSFORMAT.get(); - for (DeviceMaintenance deviceMaintenance : list) { - Map resultMap = new HashMap(); - Date dt = deviceMaintenance.getBreakdownTime(); - resultMap.put("维护/故障时间", dt == null ? "" - : ymdhm.format(dt)); - resultMap.put("故障情况", - deviceMaintenance.getBreakdownDescribeInfo()); - resultMap.put("处理", deviceMaintenance.getRemark()); - resultMap.put("消毒员", deviceMaintenance.getRegistrant()); - resultMap.put("维护员", deviceMaintenance.getMaintenanceMan()); - resultMap.put("项目名称", deviceMaintenance.getProjectName()); - String totalPriceStr = "0"; - if( deviceMaintenance.getTotalPrice() != null){ - totalPriceStr = deviceMaintenance.getTotalPrice().toString(); - } - for (ConsumptiveInstance consumptiveInstance : deviceMaintenance - .getConsumptiveInstances()) { - ConsumptiveConfig cconfig = consumptiveInstance.getConConfig(); - if( isDeviceHaveConsumptiveConfig(deviceMaintenance.getDeviceName(),cconfig) ){ - for(Entry entry : sourceSortMap.entrySet()){ - String title = entry.getKey(); - Integer sort = entry.getValue(); - DeviceMaintenanceBean bean = new DeviceMaintenanceBean(); - Date date = deviceMaintenance.getMaintenanceTime(); - String dateStr = ymdhms.format(date); - bean.setDate(dateStr); - bean.setDeviceName(deviceMaintenance.getDeviceName()); - bean.setTotalPrice(totalPriceStr); - if(consumptiveInstance.getConConfig() != null){ - bean.setMaterialName(consumptiveInstance.getConConfig().getMaterialName()); - } - if("价格".equals(title)){ - String priceStr = "0"; - if(consumptiveInstance.getPrice() != null){ - priceStr = consumptiveInstance.getPrice().toString(); - } - bean.setResult(priceStr); - }else if("数量".equals(title)){ - String amountStr = "0"; - if(consumptiveInstance.getAmount() != null){ - amountStr = consumptiveInstance.getAmount().toString(); - } - bean.setResult(amountStr); - }else{ - bean.setResult(resultMap.get(title)); - } - bean.setTitle(title); - bean.setTitleSort("" + sort); - returnList.add(bean); - } - } - } - if (deviceMaintenance.getConsumptiveInstances() == null - || deviceMaintenance.getConsumptiveInstances().size() <= 0) { - for(Entry entry : sourceSortMap.entrySet()){ - String title = entry.getKey(); - Integer sort = entry.getValue(); - DeviceMaintenanceBean bean = new DeviceMaintenanceBean(); - Date date = deviceMaintenance.getMaintenanceTime(); - String dateStr = ymdhms.format(date); - bean.setDate(dateStr); - bean.setDeviceName(deviceMaintenance.getDeviceName()); - bean.setMaterialName(""); - bean.setResult(resultMap.get(title)); - bean.setTitle(title); - bean.setTitleSort("" + sort); - returnList.add(bean); - } - } - } - } - return returnList; + return deviceMaintenanceHelper.getDeviceMaintenanceSource(startDate, endDate, querySupplyRoom); } - /** - * 设备是否有耗材的配置 - * @param deviceName - * @param conConfig - * @return - */ - private boolean isDeviceHaveConsumptiveConfig(String deviceName,ConsumptiveConfig conConfig){ - boolean ret = false; - if(StringUtils.isBlank(deviceName) || conConfig == null){ - return ret; - } - Sterilizer sterilizer = sterilizerManager.getSterilizerByName(deviceName); - if(sterilizer != null){ - List configList = sterilizer.getConsumptives(); - for (int i = 0 ; i < configList.size() ; i++) { - Long id = configList.get(i).getId(); - if(MathTools.equals(id,conConfig.getId())){ - ret = true; - } - } - }else{ - Rinser rinser= rinserManager.getRinserByName(deviceName); - if(rinser != null){ - List configList = rinser.getConsumptives(); - for (int i = 0 ; i < configList.size() ; i++) { - Long id = configList.get(i).getId(); - if(MathTools.equals(id,conConfig.getId())){ - ret = true; - } - } - } - } - return ret; - } + @Override public List getPackingFDSource(String startTime, String endTime,String querySupplyRoom,boolean isHideDisinfection, String taskGroup, String queryDateType) { return packingUnqualifieReportHelper.getPackingFDSource(startTime, endTime, querySupplyRoom, isHideDisinfection, taskGroup, queryDateType);