From 423c836f9a0b15033b048c9d2666d3440fecdca0 Mon Sep 17 00:00:00 2001 From: Lius <Lius2225@163.com> Date: 星期二, 18 三月 2025 16:05:40 +0800 Subject: [PATCH] 零件加工管理和OEE页面接口 --- lxzn-module-mdc/src/main/java/org/jeecg/modules/mdc/service/impl/MdcOeeInfoServiceImpl.java | 71 +++++++++++++++++------------------ 1 files changed, 34 insertions(+), 37 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 86f5b09..d166372 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 @@ -11,10 +11,7 @@ import org.jeecg.modules.mdc.entity.MdcEquipment; import org.jeecg.modules.mdc.entity.MdcOeeInfo; import org.jeecg.modules.mdc.mapper.MdcOeeInfoMapper; -import org.jeecg.modules.mdc.service.IMdcEquipmentService; -import org.jeecg.modules.mdc.service.IMdcEquipmentStatisticalInfoService; -import org.jeecg.modules.mdc.service.IMdcOeeInfoService; -import org.jeecg.modules.mdc.service.IMdcPlanCloseService; +import org.jeecg.modules.mdc.service.*; import org.jeecg.modules.mdc.util.DateUtils; import org.jeecg.modules.mdc.vo.MdcOeeComputeVo; import org.jeecg.modules.mdc.vo.MdcOeeInfoVo; @@ -46,10 +43,10 @@ private IMdcEquipmentService mdcEquipmentService; @Resource - private IMdcPlanCloseService mdcPlanCloseService; + private IMdcDowntimeService mdcDowntimeService; -// @Resource -// private IMdcPartProcessInfoService mdcPartProcessInfoService; + @Resource + private IMdcPartProcessInfoService mdcPartProcessInfoService; @Resource private IMdcEquipmentStatisticalInfoService mdcEquipmentStatisticalInfoService; @@ -191,53 +188,53 @@ // 宸ヤ綔鏃ュ巻鏃堕棿(min) --- 鎸夋瘡澶�24灏忔椂绠� mdcOeeInfo.setCalendarLong(1440); // 璁″垝鍋滄満鏃堕棿(min) --- 鎸夌淮鎶ゆ暟鎹粺璁″綋澶╂�绘椂闀� -// Integer planCloseLong = mdcPlanCloseService.findPlanTimeDuration(equipmentId, validDate, CommonConstant.CLOSE_TYPE_1); -// mdcOeeInfo.setPlanCloseLong(planCloseLong); + Integer planCloseLong = mdcDowntimeService.findPlanTimeDuration(equipmentId, validDate, CommonConstant.CLOSE_TYPE_0); + mdcOeeInfo.setPlanCloseLong(planCloseLong); // 璐熻嵎鏃堕棿(min) --- 鏃ュ巻宸ヤ綔鏃堕棿-璁″垝鍋滄満鏃堕棿 -// Integer loadLong = mdcOeeInfo.getCalendarLong() - planCloseLong; -// mdcOeeInfo.setLoadLong(loadLong); + Integer loadLong = mdcOeeInfo.getCalendarLong() - planCloseLong; + mdcOeeInfo.setLoadLong(loadLong); // 闈炶鍒掑仠鏈烘椂闂�(min) --- 鎸夌淮鎶ゆ暟鎹粺璁″綋澶╂�绘椂闀� -// Integer noPlanCloseLong = mdcPlanCloseService.findPlanTimeDuration(equipmentId, validDate, CommonConstant.CLOSE_TYPE_2); -// mdcOeeInfo.setNoplanCloseLong(noPlanCloseLong); + Integer noPlanCloseLong = mdcDowntimeService.findPlanTimeDuration(equipmentId, validDate, CommonConstant.CLOSE_TYPE_1); + mdcOeeInfo.setNoplanCloseLong(noPlanCloseLong); // 寮�鍔ㄦ椂闂�(min) --- 璐熻嵎鏃堕棿-闈炶鍒掑仠鏈烘椂闂� -// int actuateLong = loadLong - noPlanCloseLong; -// mdcOeeInfo.setActuateLong(actuateLong); + 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 = new BigDecimal(actuateLong).divide(new BigDecimal(loadLong), 4, RoundingMode.HALF_UP).multiply(new BigDecimal("100")).setScale(2, RoundingMode.HALF_UP); + mdcOeeInfo.setTimeActuationRate(timeActuationRate); // 鏈夋晥杩愯鏃堕棿 --- 鎸夐渶姹傜淮鎶ら浂浠跺姞宸ユ�绘椂闀縷|绯荤粺涓昏酱璐熻浇鏃堕棿 Integer effectiveRunLong = 0; -// Integer totalProcessLong = mdcPartProcessInfoService.selectTotalProcessLong(equipmentId, validDate); -// if (totalProcessLong == 0) { -// //鏌ヨ璁惧杩愯鏃堕棿 -// effectiveRunLong = mdcEquipmentStatisticalInfoService.selectProcessLong(equipmentId, validDate.replace("-", "")); -// } else { -// effectiveRunLong = totalProcessLong; -// } + Integer totalProcessLong = mdcPartProcessInfoService.selectTotalProcessLong(equipmentId, validDate); + if (totalProcessLong == 0) { + //鏌ヨ璁惧杩愯鏃堕棿 + effectiveRunLong = mdcEquipmentStatisticalInfoService.selectProcessLong(equipmentId, validDate.replace("-", "")); + } 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); -// } + 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); // 鍔犲伐闆朵欢鏁伴噺 --- 鎸夌淮鎶ゆ暟鎹粺璁″綋澶� -// Integer processCount = mdcPartProcessInfoService.selectTotalProcessCount(equipmentId, validDate); -// mdcOeeInfo.setProcessCount(processCount); + Integer processCount = mdcPartProcessInfoService.selectTotalProcessCount(equipmentId, validDate); + mdcOeeInfo.setProcessCount(processCount); // 鍚堟牸闆朵欢鏁伴噺 --- 鎸夌淮鎶ゆ暟鎹粺璁″綋澶� -// Integer passCount = mdcPartProcessInfoService.selectTotalPassCount(equipmentId, validDate); -// mdcOeeInfo.setPassCount(passCount); + 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); -// } + 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); // 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); -// } + 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); result.add(mdcOeeInfo); } -- Gitblit v1.9.3