| | |
| | | import io.swagger.annotations.Api; |
| | | import io.swagger.annotations.ApiOperation; |
| | | import lombok.extern.slf4j.Slf4j; |
| | | import org.apache.poi.hssf.record.DVALRecord; |
| | | import org.jeecg.common.api.vo.Result; |
| | | import org.jeecg.common.aspect.annotation.AutoLog; |
| | | import org.jeecg.common.constant.CommonConstant; |
| | |
| | | |
| | | import javax.servlet.http.HttpServletRequest; |
| | | import javax.servlet.http.HttpServletResponse; |
| | | import java.math.BigDecimal; |
| | | import java.math.RoundingMode; |
| | | import java.text.ParseException; |
| | | import java.util.*; |
| | | |
| | |
| | | faultIntervalTime.setNoFaultTime(equipmentMTBF.get(0).get("noFaultTime").toString()); |
| | | faultIntervalTime.setFaultTime(equipmentMTBF.get(0).get("faultTime").toString()); |
| | | faultIntervalTime.setFaultNumber(equipmentMTBF.get(0).get("faultNumber").toString()); |
| | | faultIntervalTime.setAverageRepairTime(equipmentMTBF.get(0).get("averageRepairTime").toString()); |
| | | faultIntervalTime.setAverageFaultIntervalTime(equipmentMTBF.get(0).get("averageFaultIntervalTime").toString()); |
| | | faultIntervalTime.setRepairTime(equipmentMTBF.get(0).get("repairTime").toString()); |
| | | //计算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.00).setScale(2, RoundingMode.HALF_UP); |
| | | }else{ |
| | | averageRepairTime = repairTime.divide(faultNumber, 2, BigDecimal.ROUND_HALF_EVEN); |
| | | } |
| | | //计算mtbf |
| | | //当有故障时间时MTBF:(总可利用时间-总故障时间)/(总故障次数+1) |
| | | //当无故障时间时MTBF:MTBF=总可利用时间 |
| | | BigDecimal averageFaultIntervalTime; |
| | | BigDecimal totalAvailableTime = new BigDecimal(equipmentMTBF.get(0).get("totalAvailableTime").toString()); |
| | | BigDecimal faultTime = new BigDecimal(equipmentMTBF.get(0).get("faultTime").toString()); |
| | | if(new BigDecimal(0).compareTo(faultNumber) == 0){ |
| | | averageFaultIntervalTime = new BigDecimal(totalAvailableTime + ".00").setScale(2, RoundingMode.HALF_UP);; |
| | | }else{ |
| | | averageFaultIntervalTime = (totalAvailableTime.subtract(faultTime)).divide(faultNumber, 2, BigDecimal.ROUND_HALF_EVEN); |
| | | } |
| | | //计算完好率 可开动率 |
| | | BigDecimal totalDay = new BigDecimal(equipmentMTBF.get(0).get("totalDay").toString()); |
| | | BigDecimal repairDay = new BigDecimal(equipmentMTBF.get(0).get("repairDay").toString()); |
| | | BigDecimal serviceabilityRate = (totalDay.subtract(repairDay)).divide(totalDay,2, BigDecimal.ROUND_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 = (totalAvailableTime.subtract(repairTime)).divide(totalAvailableTime,2, BigDecimal.ROUND_HALF_EVEN).multiply(new BigDecimal(100)); |
| | | |
| | | faultIntervalTime.setAverageRepairTime(averageRepairTime.toString()); |
| | | faultIntervalTime.setAverageFaultIntervalTime(averageFaultIntervalTime.toString()); |
| | | faultIntervalTime.setServiceabilityRate(serviceabilityRate+"%"); |
| | | faultIntervalTime.setStartRate(startRate+"%"); |
| | | faultIntervalTimeList.add(faultIntervalTime); |
| | | }else{ |
| | | List<Map<String, Object>> mtbfTotalAvailableTime = faultIntervalTimeService.getMTBFTotalAvailableTime(query); |
| | |
| | | }else{ |
| | | faultIntervalTime.setTotalAvailableTime("0"); |
| | | faultIntervalTime.setNoFaultTime("0"); |
| | | faultIntervalTime.setAverageFaultIntervalTime("0"); |
| | | faultIntervalTime.setAverageFaultIntervalTime("0.00"); |
| | | } |
| | | faultIntervalTime.setFaultTime("0"); |
| | | faultIntervalTime.setFaultNumber("0"); |
| | | faultIntervalTime.setAverageRepairTime("0"); |
| | | faultIntervalTime.setAverageRepairTime("0.00"); |
| | | faultIntervalTime.setRepairTime("0"); |
| | | faultIntervalTime.setServiceabilityRate("0.00%"); |
| | | faultIntervalTime.setStartRate("0.00%"); |
| | | faultIntervalTimeList.add(faultIntervalTime); |
| | | } |
| | | |
| | |
| | | faultIntervalTime.setNoFaultTime(equipmentMTBF.get(0).get("noFaultTime").toString()); |
| | | faultIntervalTime.setFaultTime(equipmentMTBF.get(0).get("faultTime").toString()); |
| | | faultIntervalTime.setFaultNumber(equipmentMTBF.get(0).get("faultNumber").toString()); |
| | | faultIntervalTime.setAverageRepairTime(equipmentMTBF.get(0).get("averageRepairTime").toString()); |
| | | faultIntervalTime.setAverageFaultIntervalTime(equipmentMTBF.get(0).get("averageFaultIntervalTime").toString()); |
| | | faultIntervalTime.setRepairTime(equipmentMTBF.get(0).get("repairTime").toString()); |
| | | faultIntervalTime.setEquipmentNumer(equipmentMTBF.get(0).get("equipmentNumer").toString()); |
| | | |
| | | BigDecimal repairTime = new BigDecimal(equipmentMTBF.get(0).get("repairTime").toString()); |
| | | BigDecimal faultNumber = new BigDecimal(equipmentMTBF.get(0).get("faultNumber").toString()); |
| | | BigDecimal totalAvailableTime = new BigDecimal(equipmentMTBF.get(0).get("totalAvailableTime").toString()); |
| | | BigDecimal faultTime = new BigDecimal(equipmentMTBF.get(0).get("faultTime").toString()); |
| | | BigDecimal equipmentNumer = new BigDecimal(equipmentMTBF.get(0).get("equipmentNumer").toString()); |
| | | BigDecimal totalDay = new BigDecimal(equipmentMTBF.get(0).get("totalDay").toString()); |
| | | BigDecimal repairDay = new BigDecimal(equipmentMTBF.get(0).get("repairDay").toString()); |
| | | //计算mttr 修复时间/故障次数 |
| | | BigDecimal averageRepairTime = repairTime.divide(faultNumber, 2, BigDecimal.ROUND_HALF_EVEN); |
| | | //计算mtbf (总可利用时间-故障时间)/故障次数 |
| | | BigDecimal averageFaultIntervalTime; |
| | | if(new BigDecimal(0).compareTo(faultNumber)==0){ |
| | | averageFaultIntervalTime = new BigDecimal("0.00").setScale(2, RoundingMode.HALF_UP); |
| | | }else{ |
| | | averageFaultIntervalTime = (totalAvailableTime.subtract(faultTime)).divide(faultNumber, 2, BigDecimal.ROUND_HALF_EVEN); |
| | | } |
| | | //完好率 (统计天数*设备数量-故障天数)/(统计天数*设备数量) |
| | | BigDecimal serviceabilityRate = ((totalDay.multiply(equipmentNumer)).subtract(repairDay)).divide((totalDay.multiply(equipmentNumer)), 2, BigDecimal.ROUND_HALF_EVEN).multiply(new BigDecimal(100)); |
| | | //开动率 (总可利用时间-故障时间)/总可利用时间 |
| | | BigDecimal startRate = (totalAvailableTime.subtract(faultTime)).divide(totalAvailableTime, 2, BigDecimal.ROUND_HALF_EVEN).multiply(new BigDecimal(100)); |
| | | |
| | | faultIntervalTime.setAverageRepairTime(averageRepairTime.toString()); |
| | | faultIntervalTime.setAverageFaultIntervalTime(averageFaultIntervalTime.toString()); |
| | | faultIntervalTime.setServiceabilityRate(serviceabilityRate+"%"); |
| | | faultIntervalTime.setStartRate(startRate+"%"); |
| | | faultIntervalTimeList.add(faultIntervalTime); |
| | | }else{ |
| | | List<Map<String, Object>> mtbfTotalAvailableTime = faultIntervalTimeService.getCenterMTBFTotalAvailableTime(query); |
| | | if(query.get("startTime") != "" && query.get("endTime") != ""){ |
| | | faultIntervalTime.setTotalAvailableTime(mtbfTotalAvailableTime.get(0).get("totalAvailableTime").toString()); |
| | | faultIntervalTime.setNoFaultTime(mtbfTotalAvailableTime.get(0).get("totalAvailableTime").toString()); |
| | | faultIntervalTime.setAverageFaultIntervalTime(mtbfTotalAvailableTime.get(0).get("totalAvailableTime").toString()); |
| | | faultIntervalTime.setAverageFaultIntervalTime("0.00"); |
| | | }else{ |
| | | faultIntervalTime.setTotalAvailableTime("0"); |
| | | faultIntervalTime.setNoFaultTime("0"); |
| | | faultIntervalTime.setAverageFaultIntervalTime("0"); |
| | | faultIntervalTime.setAverageFaultIntervalTime("0.00"); |
| | | } |
| | | faultIntervalTime.setFaultTime("0"); |
| | | faultIntervalTime.setFaultNumber("0"); |
| | | faultIntervalTime.setAverageRepairTime("0"); |
| | | faultIntervalTime.setEquipmentNumer("0"); |
| | | faultIntervalTime.setAverageRepairTime("0.00"); |
| | | faultIntervalTime.setRepairTime("0"); |
| | | faultIntervalTime.setServiceabilityRate("0.00%"); |
| | | faultIntervalTime.setStartRate("0.00%"); |
| | | faultIntervalTime.setStartTime("0"); |
| | | faultIntervalTimeList.add(faultIntervalTime); |
| | | } |
| | | |
| | |
| | | } |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | } |