From 4b27dd367eae2f24958c6bb857fb6959dcdb7a4a Mon Sep 17 00:00:00 2001
From: qushaowei <qushaowei@163.com>
Date: 星期五, 13 六月 2025 18:04:46 +0800
Subject: [PATCH] 报表提交

---
 lxzn-module-eam/src/main/java/org/jeecg/modules/eam/controller/FaultIntervalTimeController.java |  275 +++++++++++++++++++++++++++++++++++++++++++++++++++++++
 1 files changed, 275 insertions(+), 0 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 8acf2b2..ebdbb78 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,8 @@
 import io.swagger.annotations.Api;
 import io.swagger.annotations.ApiOperation;
 import lombok.extern.slf4j.Slf4j;
+import org.apache.commons.lang3.StringUtils;
+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,7 +26,10 @@
 
 import javax.servlet.http.HttpServletRequest;
 import javax.servlet.http.HttpServletResponse;
+import java.math.BigDecimal;
+import java.math.RoundingMode;
 import java.text.ParseException;
+import java.text.SimpleDateFormat;
 import java.util.*;
 
 /**
@@ -186,8 +191,81 @@
 		return jsonObject;
 	}
 
+	/**
+	 * 鐢熶骇璁惧骞冲潎鏁呴殰闂撮殧鏃堕棿MTBF
+	 */
 	@GetMapping("/get2MTBF")
 	public JSONObject get2MTBF(@RequestParam Map<String, Object> query) throws ParseException {
+		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(), -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) {
+			query.put("equipmentId",map.get("id"));
+
+			List<Map<String, Object>> equipmentMTBF = faultIntervalTimeService.getEquipmentMTBF(query);
+
+			FaultIntervalTime faultIntervalTime = new FaultIntervalTime();
+			faultIntervalTime.setEquipmentId((String)map.get("id"));
+			faultIntervalTime.setEquipmentNum((String)map.get("num"));
+			faultIntervalTime.setEquipmentName((String)map.get("name"));
+			faultIntervalTime.setEquipmentModel((String)map.get("model"));
+			faultIntervalTime.setUserDepart((String)map.get("departName"));
+			if(equipmentMTBF.size()>0){
+				faultIntervalTime.setTotalAvailableTime(equipmentMTBF.get(0).get("totalAvailableTime").toString());
+				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.setRepairTime(equipmentMTBF.get(0).get("repairTime").toString());
+				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);
+				if(query.get("startTime") != "" && query.get("endTime") != ""){
+					faultIntervalTime.setTotalAvailableTime(mtbfTotalAvailableTime.get(0).get("totalAvailableTime").toString());
+					faultIntervalTime.setNoFaultTime(mtbfTotalAvailableTime.get(0).get("totalAvailableTime").toString());
+				}else{
+					faultIntervalTime.setTotalAvailableTime("0");
+					faultIntervalTime.setNoFaultTime("0");
+				}
+				faultIntervalTime.setAverageFaultIntervalTime("0");
+				faultIntervalTime.setFaultTime("0");
+				faultIntervalTime.setFaultNumber("0");
+				faultIntervalTime.setAverageRepairTime("0");
+				faultIntervalTime.setRepairTime("0");
+				faultIntervalTime.setServiceabilityRate("100%");
+				faultIntervalTime.setStartRate("0.00%");
+				faultIntervalTimeList.add(faultIntervalTime);
+			}
+
+		}
+//		Map<String,Object> result= new HashMap<>();
+//		IPage<FaultIntervalTime> pageData = new Page<FaultIntervalTime>();
+//		List<FaultIntervalTime> list = faultIntervalTimeService.getMTBF(query);
+		JSONObject jsonObject = new JSONObject();
+		jsonObject.put("data",faultIntervalTimeList);
+		return jsonObject;
+	}
+
+
+	/**
+	 * A绫荤敓浜ц澶囧钩鍧囨晠闅滈棿闅旀椂闂碝TBF
+	 */
+	@GetMapping("/getAMTBF")
+	public JSONObject getAMTBF(@RequestParam Map<String, Object> query) throws ParseException {
+		query.put("abc","A");
 		List<Map<String, Object>> equipmentList = faultIntervalTimeService.getEquipmentList(query);
 		List<FaultIntervalTime> faultIntervalTimeList = new ArrayList<>();
 		for (Map<String, Object> map : equipmentList) {
@@ -238,6 +316,203 @@
 	}
 
 
+	/**
+	 * 鍏抽敭銆侀噸瑕佺敓浜ц澶囧钩鍧囨晠闅滈棿闅旀椂闂碝TBF
+	 */
+	@GetMapping("/getGJZYMTBF")
+	public JSONObject getGJZYMTBF(@RequestParam Map<String, Object> query) throws ParseException {
+		query.put("specificEquipment","true");
+		List<Map<String, Object>> equipmentList = faultIntervalTimeService.getEquipmentList(query);
+		List<FaultIntervalTime> faultIntervalTimeList = new ArrayList<>();
+		for (Map<String, Object> map : equipmentList) {
+			query.put("equipmentId",map.get("id"));
+
+			List<Map<String, Object>> equipmentMTBF = faultIntervalTimeService.getEquipmentMTBF(query);
+
+			FaultIntervalTime faultIntervalTime = new FaultIntervalTime();
+			faultIntervalTime.setEquipmentId((String)map.get("id"));
+			faultIntervalTime.setEquipmentNum((String)map.get("num"));
+			faultIntervalTime.setEquipmentName((String)map.get("name"));
+			faultIntervalTime.setEquipmentModel((String)map.get("model"));
+			faultIntervalTime.setUserDepart((String)map.get("departName"));
+			if(equipmentMTBF.size()>0){
+				faultIntervalTime.setTotalAvailableTime(equipmentMTBF.get(0).get("totalAvailableTime").toString());
+				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());
+				faultIntervalTimeList.add(faultIntervalTime);
+			}else{
+				List<Map<String, Object>> mtbfTotalAvailableTime = faultIntervalTimeService.getMTBFTotalAvailableTime(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());
+				}else{
+					faultIntervalTime.setTotalAvailableTime("0");
+					faultIntervalTime.setNoFaultTime("0");
+					faultIntervalTime.setAverageFaultIntervalTime("0");
+				}
+				faultIntervalTime.setFaultTime("0");
+				faultIntervalTime.setFaultNumber("0");
+				faultIntervalTime.setAverageRepairTime("0");
+				faultIntervalTime.setRepairTime("0");
+				faultIntervalTimeList.add(faultIntervalTime);
+			}
+
+		}
+//		Map<String,Object> result= new HashMap<>();
+//		IPage<FaultIntervalTime> pageData = new Page<FaultIntervalTime>();
+//		List<FaultIntervalTime> list = faultIntervalTimeService.getMTBF(query);
+		JSONObject jsonObject = new JSONObject();
+		jsonObject.put("data",faultIntervalTimeList);
+		return jsonObject;
+	}
+
+	/**
+	 * 鍚勭敓浜у崟浣� 鐢熶骇璁惧骞冲潎鏁呴殰闂撮殧鏃堕棿MTBF
+	 */
+	@GetMapping("/getCenterMTBF")
+	public JSONObject getCenterMTBF(@RequestParam Map<String, Object> query) throws ParseException {
+		List<Map<String, Object>> workCenterList = faultIntervalTimeService.getWorkCenterList(query);
+		List<FaultIntervalTime> faultIntervalTimeList = new ArrayList<>();
+		for (Map<String, Object> map : workCenterList) {
+			query.put("workCenterId",map.get("workCenterId"));
+
+			List<Map<String, Object>> equipmentMTBF = faultIntervalTimeService.getCenterEquipmentMTBF(query);
+
+			FaultIntervalTime faultIntervalTime = new FaultIntervalTime();
+//			faultIntervalTime.setEquipmentId((String)map.get("id"));
+//			faultIntervalTime.setEquipmentNum((String)map.get("num"));
+//			faultIntervalTime.setEquipmentName((String)map.get("name"));
+//			faultIntervalTime.setEquipmentModel((String)map.get("model"));
+			faultIntervalTime.setUserDepart((String)map.get("workCenterName"));
+			if(equipmentMTBF.size()>0){
+				faultIntervalTime.setTotalAvailableTime(equipmentMTBF.get(0).get("totalAvailableTime").toString());
+				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.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("0.00");
+				}else{
+					faultIntervalTime.setTotalAvailableTime("0");
+					faultIntervalTime.setNoFaultTime("0");
+					faultIntervalTime.setAverageFaultIntervalTime("0.00");
+				}
+				faultIntervalTime.setFaultTime("0");
+				faultIntervalTime.setFaultNumber("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);
+			}
+
+		}
+//		Map<String,Object> result= new HashMap<>();
+//		IPage<FaultIntervalTime> pageData = new Page<FaultIntervalTime>();
+//		List<FaultIntervalTime> list = faultIntervalTimeService.getMTBF(query);
+		JSONObject jsonObject = new JSONObject();
+		jsonObject.put("data",faultIntervalTimeList);
+		return jsonObject;
+	}
+
+
+
+	/**
+	 * 鍚勭敓浜у崟浣� A绫昏澶囧钩鍧囨晠闅滈棿闅旀椂闂碝TBF
+	 */
+	@GetMapping("/getCenterAMTBF")
+	public JSONObject getCenterAMTBF(@RequestParam Map<String, Object> query) throws ParseException {
+		query.put("abc","A");
+		List<Map<String, Object>> workCenterList = faultIntervalTimeService.getWorkCenterList(query);
+		List<FaultIntervalTime> faultIntervalTimeList = new ArrayList<>();
+		for (Map<String, Object> map : workCenterList) {
+			query.put("workCenterId",map.get("workCenterId"));
+
+			List<Map<String, Object>> equipmentMTBF = faultIntervalTimeService.getCenterEquipmentMTBF(query);
+
+			FaultIntervalTime faultIntervalTime = new FaultIntervalTime();
+//			faultIntervalTime.setEquipmentId((String)map.get("id"));
+//			faultIntervalTime.setEquipmentNum((String)map.get("num"));
+//			faultIntervalTime.setEquipmentName((String)map.get("name"));
+//			faultIntervalTime.setEquipmentModel((String)map.get("model"));
+			faultIntervalTime.setUserDepart((String)map.get("workCenterName"));
+			if(equipmentMTBF.size()>0){
+				faultIntervalTime.setTotalAvailableTime(equipmentMTBF.get(0).get("totalAvailableTime").toString());
+				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());
+				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());
+				}else{
+					faultIntervalTime.setTotalAvailableTime("0");
+					faultIntervalTime.setNoFaultTime("0");
+					faultIntervalTime.setAverageFaultIntervalTime("0");
+				}
+				faultIntervalTime.setFaultTime("0");
+				faultIntervalTime.setFaultNumber("0");
+				faultIntervalTime.setAverageRepairTime("0");
+				faultIntervalTime.setRepairTime("0");
+				faultIntervalTimeList.add(faultIntervalTime);
+			}
+
+		}
+//		Map<String,Object> result= new HashMap<>();
+//		IPage<FaultIntervalTime> pageData = new Page<FaultIntervalTime>();
+//		List<FaultIntervalTime> list = faultIntervalTimeService.getMTBF(query);
+		JSONObject jsonObject = new JSONObject();
+		jsonObject.put("data",faultIntervalTimeList);
+		return jsonObject;
+	}
+
+
+
 
 
 }

--
Gitblit v1.9.3