From 5d5606559262e4c6366cf059cda94d28159bbbe9 Mon Sep 17 00:00:00 2001 From: Lius <Lius2225@163.com> Date: 星期四, 24 七月 2025 13:56:27 +0800 Subject: [PATCH] OEE条件判断 --- lxzn-module-mdc/src/main/java/org/jeecg/modules/mdc/service/impl/MdcOeeInfoServiceImpl.java | 46 +++++++++++++++++++++++++--------------------- 1 files changed, 25 insertions(+), 21 deletions(-) diff --git a/lxzn-module-mdc/src/main/java/org/jeecg/modules/mdc/service/impl/MdcOeeInfoServiceImpl.java b/lxzn-module-mdc/src/main/java/org/jeecg/modules/mdc/service/impl/MdcOeeInfoServiceImpl.java index 6906dbc..c60c56d 100644 --- a/lxzn-module-mdc/src/main/java/org/jeecg/modules/mdc/service/impl/MdcOeeInfoServiceImpl.java +++ b/lxzn-module-mdc/src/main/java/org/jeecg/modules/mdc/service/impl/MdcOeeInfoServiceImpl.java @@ -204,39 +204,28 @@ int actuateLong = loadLong - noPlanCloseLong; mdcOeeInfo.setActuateLong(actuateLong); // 鏃堕棿寮�鍔ㄧ巼 --- 寮�鍔ㄦ椂闂�/璐熻嵎鏃堕棿 - BigDecimal timeActuationRate = new BigDecimal(actuateLong).divide(new BigDecimal(loadLong), 4, RoundingMode.HALF_UP).multiply(new BigDecimal("100")).setScale(2, RoundingMode.HALF_UP); - mdcOeeInfo.setTimeActuationRate(timeActuationRate); + BigDecimal timeActuationRate = BigDecimal.ZERO; + if (loadLong == 0) { + mdcOeeInfo.setTimeActuationRate(timeActuationRate); + } else { + timeActuationRate = new BigDecimal(actuateLong).divide(new BigDecimal(loadLong), 4, RoundingMode.HALF_UP).multiply(new BigDecimal("100")).setScale(2, RoundingMode.HALF_UP); + mdcOeeInfo.setTimeActuationRate(timeActuationRate.compareTo(new BigDecimal(100)) > 0 ? new BigDecimal(100) : timeActuationRate); + } // 鏈夋晥杩愯鏃堕棿 --- 鎸夐渶姹傜淮鎶ら浂浠跺姞宸ユ�绘椂闀縷|绯荤粺涓昏酱璐熻浇鏃堕棿 Integer effectiveRunLong = 0; -// Integer totalProcessLong = mdcPartProcessInfoService.selectTotalProcessLong(equipmentId, validDate); //鏌ヨ璁惧杩愯鏃堕棿 effectiveRunLong = mdcEquipmentStatisticalInfoService.selectProcessLong(equipmentId, validDate.replace("-", "")); if (effectiveRunLong == null) { effectiveRunLong = 0; } -// if (totalProcessLong == 0) { -// -// } else { -// effectiveRunLong = totalProcessLong; -// } mdcOeeInfo.setEffectiveRunLong(effectiveRunLong); // 鎬ц兘寮�鍔ㄧ巼 --- 鏈夋晥杩愯鏃堕棿/寮�鍔ㄦ椂闂� BigDecimal performanceRate = BigDecimal.ZERO; if (effectiveRunLong != 0 && actuateLong != 0) { performanceRate = new BigDecimal(effectiveRunLong).divide(new BigDecimal(actuateLong), 4, RoundingMode.HALF_UP).multiply(new BigDecimal("100")).setScale(2, RoundingMode.HALF_UP); } - mdcOeeInfo.setPerformanceRate(performanceRate); + mdcOeeInfo.setPerformanceRate(performanceRate.compareTo(new BigDecimal(100)) > 0 ? new BigDecimal(100) : performanceRate); // 鍔犲伐闆朵欢鏁伴噺 --- 鎸夌淮鎶ゆ暟鎹粺璁″綋澶� -// Integer processCount = mdcPartProcessInfoService.selectTotalProcessCount(equipmentId, validDate); -// mdcOeeInfo.setProcessCount(processCount); -// // 鍚堟牸闆朵欢鏁伴噺 --- 鎸夌淮鎶ゆ暟鎹粺璁″綋澶� -// Integer passCount = mdcPartProcessInfoService.selectTotalPassCount(equipmentId, validDate); -// mdcOeeInfo.setPassCount(passCount); -// // 鍚堟牸鐜� --- 鍚堟牸鏁�/鍔犲伐鏁� -// BigDecimal passRate = BigDecimal.ZERO; -// if (processCount != 0 && passCount != 0) { -// passRate = new BigDecimal(passCount).divide(new BigDecimal(processCount), 4, RoundingMode.HALF_UP).multiply(new BigDecimal("100")).setScale(2, RoundingMode.HALF_UP); -// } // 鍔犲伐闆朵欢鏁伴噺 Integer processCount = mdcJcRcJobreportService.selectTotalProcessCount(equipmentId, validDate); mdcOeeInfo.setProcessCount(processCount); @@ -248,13 +237,13 @@ if (processCount != 0 && passCount != 0) { passRate = new BigDecimal(passCount).divide(new BigDecimal(processCount), 4, RoundingMode.HALF_UP).multiply(new BigDecimal("100")).setScale(2, RoundingMode.HALF_UP); } - mdcOeeInfo.setPassRate(passRate); + mdcOeeInfo.setPassRate(passRate.compareTo(new BigDecimal(100)) > 0 ? new BigDecimal(100) : passRate); // OEE --- 鏃堕棿寮�鍔ㄧ巼 * 鎬ц兘寮�鍔ㄧ巼 * 涓�娆″悎鏍肩巼 BigDecimal oee = BigDecimal.ZERO; if (!timeActuationRate.equals(BigDecimal.ZERO) && !performanceRate.equals(BigDecimal.ZERO) && !passRate.equals(BigDecimal.ZERO)) { oee = timeActuationRate.multiply(performanceRate).multiply(passRate).divide(new BigDecimal("10000"), 4, RoundingMode.HALF_UP); } - mdcOeeInfo.setOee(oee); + mdcOeeInfo.setOee(oee.compareTo(new BigDecimal(100)) > 0 ? new BigDecimal(100) : oee); result.add(mdcOeeInfo); } } @@ -262,4 +251,19 @@ super.saveBatch(result); } + @Override + public List<MdcOeeInfo> findByEquIdsAndDate(List<String> equipmentIdList, String start, String end) { + return this.baseMapper.findByEquIdsAndDate(equipmentIdList, start, end); + } + + @Override + public List<MdcOeeInfo> findByEquIdAndDate(String equipmentId, String start, String end) { + return this.baseMapper.findByEquIdAndDate(equipmentId, start, end); + } + + @Override + public BigDecimal findByEquIdAndMonth(String equipmentId, String month) { + return this.baseMapper.findByEquIdAndMonth(equipmentId, month); + } + } -- Gitblit v1.9.3