From 078e94627c72eb6cada22a6e5478b003cff57f4c Mon Sep 17 00:00:00 2001 From: Lius <Lius2225@163.com> Date: 星期二, 31 十二月 2024 11:11:24 +0800 Subject: [PATCH] update --- lxzn-module-mdc/src/main/java/org/jeecg/modules/mdc/service/impl/MdcOverallEquipmentEfficiencyServiceImpl.java | 51 +++++++++++++++++++++++++++++++++++++++------------ 1 files changed, 39 insertions(+), 12 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 10f3bdf..441a6a1 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 @@ -18,6 +18,7 @@ import org.jeecg.modules.system.entity.MdcProduction; import org.jeecg.modules.system.service.IMdcProductionService; import org.springframework.stereotype.Service; +import org.springframework.transaction.annotation.Transactional; import javax.annotation.Resource; import javax.servlet.http.HttpServletRequest; @@ -73,6 +74,7 @@ * 璁$畻璁惧缁煎悎鏁堢巼OEE */ @Override + @Transactional(rollbackFor = Exception.class) public void runningOverallEquipmentEfficiency(String dateTime) { /* OEE = 鏃堕棿寮�鍔ㄧ巼 脳 鎬ц兘寮�鍔ㄧ巼 脳 鍚堟牸鍝佺巼 @@ -89,14 +91,11 @@ String validDate = YearMonth.now().minusMonths(1).toString(); if (StringUtils.isNotBlank(dateTime)) { validDate = DateUtils.format(DateUtils.toDate(dateTime, "yyyyMM"), DateUtils.STR_YEAR_MONTH); - try { - if (validDate != null) { - this.remove(new LambdaQueryWrapper<MdcOverallEquipmentEfficiency>(). - eq(MdcOverallEquipmentEfficiency::getValidDate, validDate)); - } - } catch (Exception e) { - log.error("鍙傛暟鏍煎紡涓嶅", e); - } + } + try { + this.remove(new LambdaQueryWrapper<MdcOverallEquipmentEfficiency>().eq(MdcOverallEquipmentEfficiency::getValidDate, validDate)); + } catch (Exception e) { + log.error("鍙傛暟鏍煎紡涓嶅", e); } // 鑾峰彇璁惧鍒楄〃 List<MdcEquipment> equipmentList = mdcEquipmentService.list(); @@ -135,8 +134,11 @@ BigDecimal actualWorkDayCount = mdcDeviceCalendarService.computeActualWorkDayCount(equipmentId, validDate); mdcOverallEquipmentEfficiency.setActualWorkDayCount(actualWorkDayCount); + // 璁$畻鐝鏁伴噺 + BigDecimal shiftSubCount = mdcDeviceCalendarService.computeShiftTimeCount(equipmentId, validDate); + // 鏈堝害瀹為檯鐝骇鎬绘椂闂�(鍒嗛挓) - mdcOverallEquipmentEfficiency.setMonthActualWorkDayTimeCount(mdcOverallEquipmentEfficiency.getShiftTimeCount().multiply(actualWorkDayCount).multiply(new BigDecimal("60")).add(overtime)); + mdcOverallEquipmentEfficiency.setMonthActualWorkDayTimeCount(mdcOverallEquipmentEfficiency.getShiftTimeCount().multiply(shiftSubCount).multiply(new BigDecimal("60")).add(overtime)); // 鏁呴殰鍋滄満鏃堕暱缁熻(鍒嗛挓) BigDecimal breakdownDownDuration = mdcNoplanCloseService.findNoplanTimeDuration(equipmentId, validDate, MdcConstant.BREAKDOWN_DOWN); @@ -172,7 +174,7 @@ */ // mdcOverallEquipmentEfficiency.getShiftTimeCount() - plannedMaintenanceDuration - conferenceTrainingDuration - otherRestDuration // 璐熻嵎鏃堕棿(鍒嗛挓) - BigDecimal loadTime = mdcOverallEquipmentEfficiency.getMonthActualWorkDayTimeCount().subtract(plannedMaintenanceDuration).subtract(conferenceTrainingDuration).subtract(otherRestDuration).add(overtime); + BigDecimal loadTime = mdcOverallEquipmentEfficiency.getMonthActualWorkDayTimeCount().subtract(plannedMaintenanceDuration).subtract(conferenceTrainingDuration).subtract(otherRestDuration); if (loadTime.compareTo(BigDecimal.ZERO) < 0) { loadTime = BigDecimal.ZERO; } @@ -311,6 +313,17 @@ if (StringUtils.isNotEmpty(mdcOverallEquipmentEfficiencyVo.getDriveType())) { mdcOverallEquipmentEfficiencyVo.setDriveTypeList(Arrays.asList(mdcOverallEquipmentEfficiencyVo.getDriveType().split(","))); } + if (StringUtils.isNotEmpty(mdcOverallEquipmentEfficiencyVo.getPercentageLevel())) { + List<BigDecimal> stringList = new ArrayList<>(); + String[] strings = mdcOverallEquipmentEfficiencyVo.getPercentageLevel().split(","); + for (String string : strings) { + for (String s : string.split("-")) { + stringList.add(new BigDecimal(s).divide(new BigDecimal("100"), 2, RoundingMode.HALF_UP)); + } + } + mdcOverallEquipmentEfficiencyVo.setMax(stringList.stream().max(BigDecimal::compareTo).get().toString()); + mdcOverallEquipmentEfficiencyVo.setMin(stringList.stream().min(BigDecimal::compareTo).get().toString()); + } IPage<MdcOverallEquipmentEfficiency> mdcOverallEquipmentEfficiencyIPage = this.baseMapper.pageList(page, mdcOverallEquipmentEfficiencyVo); // List<MdcOverallEquipmentEfficiency> list = mdcOverallEquipmentEfficiencyIPage.getRecords(); for (MdcOverallEquipmentEfficiency mdcOverallEquipmentEfficiency : mdcOverallEquipmentEfficiencyIPage.getRecords()) { @@ -334,6 +347,7 @@ if (mdcProductionList != null && !mdcProductionList.isEmpty()) { for (MdcProduction mdcProduction : mdcProductionList) { OeeStatisticsVo oeeStatisticsVo = new OeeStatisticsVo(); + oeeStatisticsVo.setProductionId(mdcProduction.getId()); oeeStatisticsVo.setProductionName(mdcProduction.getProductionName()); List<MdcOverallEquipmentEfficiency> mdcOverallEquipmentEfficiencyList = this.baseMapper.findOeeByDate(date, mdcProduction.getId()); if (mdcOverallEquipmentEfficiencyList != null && !mdcOverallEquipmentEfficiencyList.isEmpty()) { @@ -354,6 +368,15 @@ } result.add(oeeStatisticsVo); } + OeeStatisticsVo oeeStatisticsVo = new OeeStatisticsVo(); + oeeStatisticsVo.setProductionId(UUID.randomUUID().toString()); + oeeStatisticsVo.setProductionName("鍚堣"); + oeeStatisticsVo.setLevel1(result.stream().mapToInt(OeeStatisticsVo::getLevel1).sum()); + oeeStatisticsVo.setLevel2(result.stream().mapToInt(OeeStatisticsVo::getLevel2).sum()); + oeeStatisticsVo.setLevel3(result.stream().mapToInt(OeeStatisticsVo::getLevel3).sum()); + oeeStatisticsVo.setLevel4(result.stream().mapToInt(OeeStatisticsVo::getLevel4).sum()); + oeeStatisticsVo.setLevel5(result.stream().mapToInt(OeeStatisticsVo::getLevel5).sum()); + result.add(oeeStatisticsVo); } return result; } @@ -370,14 +393,18 @@ if (StringUtils.isEmpty(date)) { date = DateTimeFormatter.ofPattern("yyyy-MM").format(LocalDate.now().plusMonths(-1)); } + List<String> equipmentTypeList = new ArrayList<>(); + if (StringUtils.isNotEmpty(equipmentType)) { + equipmentTypeList = Arrays.asList(equipmentType.split(",")); + } List<MdcProduction> mdcProductionList = mdcProductionService.list(new LambdaQueryWrapper<MdcProduction>().eq(MdcProduction::getOrgType, 2).eq(MdcProduction::getDelFlag, CommonConstant.DEL_FLAG_0)); if (mdcProductionList != null && !mdcProductionList.isEmpty()) { for (MdcProduction mdcProduction : mdcProductionList) { OeeStatisticsChartVo oeeStatisticsChartVo = new OeeStatisticsChartVo(); oeeStatisticsChartVo.setKey(mdcProduction.getProductionName()); - BigDecimal oee = this.baseMapper.findAvgOee(date, equipmentType, mdcProduction.getId()); + BigDecimal oee = this.baseMapper.findAvgOee(date, equipmentTypeList, mdcProduction.getId()); if (oee != null) { - oeeStatisticsChartVo.setValue(oee); + oeeStatisticsChartVo.setValue(oee.multiply(new BigDecimal("100")).setScale(2, RoundingMode.HALF_UP)); } result.add(oeeStatisticsChartVo); } -- Gitblit v1.9.3