| | |
| | | String startTime = (String)query.get("startTime"); |
| | | String endTime = (String)query.get("endTime"); |
| | | if(StringUtils.isBlank(startTime) && StringUtils.isBlank(endTime)){ |
| | | Date dayAfter = DateUtils.getDayAfter(new Date(), -3); |
| | | Date dayAfter = DateUtils.getDayAfter(new Date(), -2); |
| | | SimpleDateFormat dateFormat = new SimpleDateFormat("yyyy-MM-dd"); |
| | | dateFormat.setTimeZone(TimeZone.getTimeZone("Asia/Shanghai"));// 设置北京时区 |
| | | query.put("startTime",dateFormat.format(dayAfter)); |
| | |
| | | String currentDateStr = DateUtils.getCurrentDateStr(); |
| | | query.put("endTime",currentDateStr); |
| | | } |
| | | |
| | | List<Map<String, Object>> equipmentList = faultIntervalTimeService.getEquipmentList(query); |
| | | List<FaultIntervalTime> faultIntervalTimeList = new ArrayList<>(); |
| | | for (Map<String, Object> map : equipmentList) { |
| | |
| | | faultIntervalTime.setFaultTime(equipmentMTBF.get(0).get("faultTime").toString()); |
| | | faultIntervalTime.setFaultNumber(equipmentMTBF.get(0).get("faultNumber").toString()); |
| | | faultIntervalTime.setRepairTime(equipmentMTBF.get(0).get("repairTime").toString()); |
| | | //计算mttr MTTR:故障修复时间/故障次数 |
| | | BigDecimal repairTime = new BigDecimal(equipmentMTBF.get(0).get("repairTime").toString()); |
| | | BigDecimal faultNumber = new BigDecimal(equipmentMTBF.get(0).get("faultNumber").toString()); |
| | | BigDecimal averageRepairTime; |
| | | if(new BigDecimal(0).compareTo(faultNumber) == 0){ |
| | | averageRepairTime = new BigDecimal(0); |
| | | }else{ |
| | | averageRepairTime = repairTime.divide(faultNumber, 2, RoundingMode.HALF_UP); |
| | | } |
| | | //计算mtbf |
| | | //MTBF:无故障时间/故障次数 |
| | | BigDecimal averageFaultIntervalTime; |
| | | BigDecimal totalAvailableTime = new BigDecimal(equipmentMTBF.get(0).get("totalAvailableTime").toString()); |
| | | BigDecimal faultTime = new BigDecimal(equipmentMTBF.get(0).get("faultTime").toString()); |
| | | BigDecimal noFaultTime = new BigDecimal(equipmentMTBF.get(0).get("noFaultTime").toString()); |
| | | if(new BigDecimal(0).compareTo(faultNumber) == 0){ |
| | | averageFaultIntervalTime = new BigDecimal(0); |
| | | }else{ |
| | | // averageFaultIntervalTime = (noFaultTime.subtract(faultTime)).divide(faultNumber, 2, BigDecimal.ROUND_HALF_EVEN); |
| | | averageFaultIntervalTime = noFaultTime.divide(faultNumber, 2, RoundingMode.HALF_UP); |
| | | } |
| | | //计算完好率 完好率:无故障时间/总可利用时间 |
| | | // BigDecimal totalDay = new BigDecimal(equipmentMTBF.get(0).get("totalDay").toString()); |
| | | // BigDecimal repairDay = new BigDecimal(equipmentMTBF.get(0).get("repairDay").toString()); |
| | | |
| | | // BigDecimal serviceabilityRate = noFaultTime.divide(totalAvailableTime,2, RoundingMode.HALF_UP).multiply(new BigDecimal(100)); |
| | | BigDecimal serviceabilityRate = noFaultTime.divide(totalAvailableTime,2,RoundingMode.HALF_EVEN).multiply(new BigDecimal(100));; |
| | | //故障率 |
| | | // BigDecimal totalAvailableTime = new BigDecimal(equipmentMTBF.get(0).get("totalAvailableTime").toString()); |
| | | // BigDecimal repairTime = new BigDecimal(equipmentMTBF.get(0).get("repairTime").toString()); |
| | | BigDecimal startRate = faultTime.divide(totalAvailableTime,2, RoundingMode.HALF_UP).multiply(new BigDecimal(100)); |
| | | |
| | | |
| | | faultIntervalTime.setAverageRepairTime(averageRepairTime.toString()); |
| | | faultIntervalTime.setAverageFaultIntervalTime(averageFaultIntervalTime.toString()); |
| | | faultIntervalTime.setServiceabilityRate(serviceabilityRate+"%"); |
| | | faultIntervalTime.setStartRate(startRate+"%"); |
| | | faultIntervalTime.setAverageRepairTime(equipmentMTBF.get(0).get("mttr").toString()); |
| | | faultIntervalTime.setAverageFaultIntervalTime(equipmentMTBF.get(0).get("mtbf").toString()); |
| | | faultIntervalTime.setServiceabilityRate(equipmentMTBF.get(0).get("serviceabilityRate").toString()+"%"); |
| | | faultIntervalTime.setStartRate(equipmentMTBF.get(0).get("startRate").toString()+"%"); |
| | | faultIntervalTimeList.add(faultIntervalTime); |
| | | }else{ |
| | | List<Map<String, Object>> mtbfTotalAvailableTime = faultIntervalTimeService.getMTBFTotalAvailableTime(query); |