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