From 454545bd4207d99d153e263c68f821f856f0e884 Mon Sep 17 00:00:00 2001
From: qushaowei <qushaowei@163.com>
Date: 星期日, 29 九月 2024 09:47:20 +0800
Subject: [PATCH] 430最终问题项修改

---
 lxzn-module-eam/src/main/java/org/jeecg/modules/eam/controller/FaultIntervalTimeController.java |   87 +++++++++++++++++++++++++++++++++++++++----
 1 files changed, 78 insertions(+), 9 deletions(-)

diff --git a/lxzn-module-eam/src/main/java/org/jeecg/modules/eam/controller/FaultIntervalTimeController.java b/lxzn-module-eam/src/main/java/org/jeecg/modules/eam/controller/FaultIntervalTimeController.java
index db85b64..f395efd 100644
--- a/lxzn-module-eam/src/main/java/org/jeecg/modules/eam/controller/FaultIntervalTimeController.java
+++ b/lxzn-module-eam/src/main/java/org/jeecg/modules/eam/controller/FaultIntervalTimeController.java
@@ -7,6 +7,7 @@
 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;
@@ -24,6 +25,8 @@
 
 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.*;
 
@@ -209,9 +212,41 @@
 				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
+				//褰撴湁鏁呴殰鏃堕棿鏃禡TBF锛氾紙鎬诲彲鍒╃敤鏃堕棿-鎬绘晠闅滄椂闂达級/锛堟�绘晠闅滄鏁�+1锛�
+				//褰撴棤鏁呴殰鏃堕棿鏃禡TBF锛歁TBF=鎬诲彲鍒╃敤鏃堕棿
+				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);
@@ -222,12 +257,14 @@
 				}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);
 			}
 
@@ -375,25 +412,54 @@
 				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);
 			}
 
@@ -464,4 +530,7 @@
 	}
 
 
+
+
+
 }

--
Gitblit v1.9.3