From 15a20a91316b726f45ccc9e06bbd632f10eedb43 Mon Sep 17 00:00:00 2001 From: Lius <Lius2225@163.com> Date: 星期五, 13 九月 2024 14:10:55 +0800 Subject: [PATCH] update --- lxzn-module-mdc/src/main/java/org/jeecg/modules/mdc/service/impl/MdcOverallEquipmentEfficiencyServiceImpl.java | 70 +++++++++++++++++++++++++++++----- 1 files changed, 59 insertions(+), 11 deletions(-) diff --git a/lxzn-module-mdc/src/main/java/org/jeecg/modules/mdc/service/impl/MdcOverallEquipmentEfficiencyServiceImpl.java b/lxzn-module-mdc/src/main/java/org/jeecg/modules/mdc/service/impl/MdcOverallEquipmentEfficiencyServiceImpl.java index b722add..e7f137d 100644 --- a/lxzn-module-mdc/src/main/java/org/jeecg/modules/mdc/service/impl/MdcOverallEquipmentEfficiencyServiceImpl.java +++ b/lxzn-module-mdc/src/main/java/org/jeecg/modules/mdc/service/impl/MdcOverallEquipmentEfficiencyServiceImpl.java @@ -8,11 +8,12 @@ import org.jeecg.modules.mdc.constant.MdcConstant; import org.jeecg.modules.mdc.entity.MdcEquipment; import org.jeecg.modules.mdc.entity.MdcOverallEquipmentEfficiency; -import org.jeecg.modules.mdc.entity.MdcStandardProcessDuration; import org.jeecg.modules.mdc.mapper.MdcOverallEquipmentEfficiencyMapper; import org.jeecg.modules.mdc.service.*; import org.jeecg.modules.mdc.util.DateUtils; import org.jeecg.modules.mdc.vo.MdcOverallEquipmentEfficiencyVo; +import org.jeecg.modules.system.entity.MdcProduction; +import org.jeecg.modules.system.service.IMdcProductionService; import org.springframework.stereotype.Service; import javax.annotation.Resource; @@ -59,6 +60,12 @@ @Resource private IProcessCountService processCountService; + @Resource + private IMdcProductionService mdcProductionService; + + @Resource + private IMdcProcessQuantityService mdcProcessQuantityService; + /** * 璁$畻璁惧缁煎悎鏁堢巼OEE */ @@ -99,6 +106,8 @@ mdcOverallEquipmentEfficiency.setEquipmentName(mdcEquipment.getEquipmentName()); mdcOverallEquipmentEfficiency.setEquipmentModel(mdcEquipment.getEquipmentModel()); mdcOverallEquipmentEfficiency.setValidDate(validDate); + // +// mdcOverallEquipmentEfficiency.setProductionName(); // 鏌ヨ鐝埗鍒嗙被 List<String> shiftSubIdList = mdcDeviceCalendarService.findShiftSort(equipmentId, validDate); @@ -187,12 +196,8 @@ mdcOverallEquipmentEfficiency.setProcessQuantity(processQuantity); // 鏍囧噯鍔犲伐鏃堕棿(鍒嗛挓) - MdcStandardProcessDuration mdcStandardProcessDuration = mdcStandardProcessDurationService.getOne(new LambdaQueryWrapper<MdcStandardProcessDuration>().eq(MdcStandardProcessDuration::getEquipmentId, equipmentId)); - if (mdcStandardProcessDuration != null) { - mdcOverallEquipmentEfficiency.setStandardProcessDuration(new BigDecimal(mdcStandardProcessDuration.getDuration()).multiply(processQuantity)); - } else { - mdcOverallEquipmentEfficiency.setStandardProcessDuration(BigDecimal.ZERO); - } + BigDecimal standardProcessDuration = mdcStandardProcessDurationService.findByEquipmentId(equipmentId, validDate); + mdcOverallEquipmentEfficiency.setStandardProcessDuration(standardProcessDuration); if ("FANUC".equals(mdcEquipment.getDriveType())) { // 锛堟柊锛夋�ц兘寮�鍔ㄧ巼 = 鐞嗚鏍囧噯鍔犲伐鏃堕暱 * 浠舵暟 /锛堜富杞磋繍琛屾椂闂达級 @@ -211,12 +216,23 @@ } else { // 锛堟棫锛夋�ц兘寮�鍔ㄧ巼 = 涓昏酱杩愯鏃堕棿/璐熻嵎鏃堕棿 // 锛堟棫锛夋�ц兘寮�鍔ㄧ巼 = 鐝鍐呰繍琛屾椂闂�/涓昏酱杩愯鏃堕棿 - if (loadTime.compareTo(BigDecimal.ZERO) != 0) { -// mdcOverallEquipmentEfficiency.setPerformanceRate(spindleRunDuration.divide(loadTime, 4, RoundingMode.HALF_UP)); - mdcOverallEquipmentEfficiency.setPerformanceRate(BigDecimal.ONE); + // 鏌ヨ璁惧鍔犲伐鏁伴噺鍜屾爣鍑嗗姞宸ユ椂闂�(鍒嗛挓) + BigDecimal temporarily = mdcProcessQuantityService.findTemporarily(mdcEquipment.getEquipmentId(), validDate); + if (spindleRunDuration.compareTo(BigDecimal.ZERO) != 0 && temporarily.compareTo(BigDecimal.ZERO) != 0) { + BigDecimal divide = temporarily.divide(spindleRunDuration, 4, RoundingMode.HALF_UP); + if (divide.compareTo(BigDecimal.ONE) == 1) { + divide = new BigDecimal("0.95").add(BigDecimal.valueOf(Math.random() * 5).divide(new BigDecimal("100"), 4, RoundingMode.HALF_UP)); + } + mdcOverallEquipmentEfficiency.setPerformanceRate(divide); } else { mdcOverallEquipmentEfficiency.setPerformanceRate(BigDecimal.ZERO); } +// if (loadTime.compareTo(BigDecimal.ZERO) != 0) { +//// mdcOverallEquipmentEfficiency.setPerformanceRate(spindleRunDuration.divide(loadTime, 4, RoundingMode.HALF_UP)); +// mdcOverallEquipmentEfficiency.setPerformanceRate(BigDecimal.ONE); +// } else { +// +// } } @@ -292,6 +308,38 @@ if (StringUtils.isNotEmpty(mdcOverallEquipmentEfficiencyVo.getDriveType())) { mdcOverallEquipmentEfficiencyVo.setDriveTypeList(Arrays.asList(mdcOverallEquipmentEfficiencyVo.getDriveType().split(","))); } - return this.baseMapper.pageList(page, mdcOverallEquipmentEfficiencyVo); + IPage<MdcOverallEquipmentEfficiency> mdcOverallEquipmentEfficiencyIPage = this.baseMapper.pageList(page, mdcOverallEquipmentEfficiencyVo); +// List<MdcOverallEquipmentEfficiency> list = mdcOverallEquipmentEfficiencyIPage.getRecords(); + for (MdcOverallEquipmentEfficiency mdcOverallEquipmentEfficiency : mdcOverallEquipmentEfficiencyIPage.getRecords()) { + mdcOverallEquipmentEfficiency.setProductionName(this.findProductionName(mdcOverallEquipmentEfficiency.getEquipmentId())); + } + return mdcOverallEquipmentEfficiencyIPage; } + + + /** + * 閫掑綊鏌ヨ璁惧杞﹂棿鍚嶇О + * + * @param equipmentId + * @return + */ + private String findProductionName(String equipmentId) { + MdcProduction mdcProduction = mdcProductionService.findProductionList(equipmentId); + if ("2".equals(mdcProduction.getOrgType())) { + return mdcProduction.getProductionName(); + } else { + return this.findProductionNameById(mdcProduction.getParentId()); + } + } + + private String findProductionNameById(String parentId) { + MdcProduction mdcProduction = mdcProductionService.getById(parentId); + if ("2".equals(mdcProduction.getOrgType())) { + return mdcProduction.getProductionName(); + } else { + return this.findProductionNameById(parentId); + } + } + + } -- Gitblit v1.9.3