From f69452a6d1afcb710880b6ad172663316e3b3610 Mon Sep 17 00:00:00 2001 From: Lius <Lius2225@163.com> Date: 星期二, 14 一月 2025 11:50:15 +0800 Subject: [PATCH] update --- lxzn-module-mdc/src/main/java/org/jeecg/modules/mdc/service/impl/MdcEfficiencyReportServiceImpl.java | 111 ++++++++++++++++++++++++++++++++++++++----------------- 1 files changed, 77 insertions(+), 34 deletions(-) diff --git a/lxzn-module-mdc/src/main/java/org/jeecg/modules/mdc/service/impl/MdcEfficiencyReportServiceImpl.java b/lxzn-module-mdc/src/main/java/org/jeecg/modules/mdc/service/impl/MdcEfficiencyReportServiceImpl.java index 5d64d87..f6a2e6d 100644 --- a/lxzn-module-mdc/src/main/java/org/jeecg/modules/mdc/service/impl/MdcEfficiencyReportServiceImpl.java +++ b/lxzn-module-mdc/src/main/java/org/jeecg/modules/mdc/service/impl/MdcEfficiencyReportServiceImpl.java @@ -54,6 +54,9 @@ @Resource private IMdcEquipmentRunningSectionService mdcEquipmentRunningSectionService; + @Resource + private IMdcEquipmentStatisticalInfoService mdcEquipmentStatisticalInfoService; + /** * 鍒╃敤鐜囨姤琛� * @@ -100,15 +103,15 @@ if (vo.getEquipmentIdList() == null || vo.getEquipmentIdList().isEmpty()) { result.setMdcEfficiencyList(listDtos); } else { - if (StringUtils.isNotEmpty(vo.getEquipmentType())) { - List<String> equipmentList = mdcEquipmentService.listEquipmentId(vo.getEquipmentType(), vo.getEquipmentIdList()); - if (equipmentList != null && !equipmentList.isEmpty()) { - vo.setEquipmentIdList(equipmentList); - } else { - result.setMdcEfficiencyList(listDtos); - return result; - } + + List<String> equipmentIdList = mdcEquipmentService.listEquipmentId(vo); + if (equipmentIdList != null && !equipmentIdList.isEmpty()) { + vo.setEquipmentIdList(equipmentIdList); + } else { + result.setMdcEfficiencyList(listDtos); + return result; } + // 鏌ヨ鍒╃敤鐜囨暟鎹� List<MdcEfficiencyDto> efficiencyList = mdcEfficiencyReportMapper.efficiencyList(vo); // 灏佽缁撴灉 @@ -123,6 +126,7 @@ mdcEfficiencyListDto.setEquipmentId(mdcEquDepDto.getEquipmentId()); mdcEfficiencyListDto.setEquipmentName(mdcEquDepDto.getEquipmentName()); mdcEfficiencyListDto.setEquipmentType(mdcEquDepDto.getEquipmentType()); + mdcEfficiencyListDto.setEquipmentModel(mdcEquDepDto.getEquipmentModel()); switch (mdcEquDepDto.getOrgType()) { case "1": mdcEfficiencyListDto.setLevel1(mdcEquDepDto.getDepartName()); @@ -212,6 +216,7 @@ mdcEfficiencyListDto.setEquipmentId(mdcEquProDto.getEquipmentId()); mdcEfficiencyListDto.setEquipmentName(mdcEquProDto.getEquipmentName()); mdcEfficiencyListDto.setEquipmentType(mdcEquProDto.getEquipmentType()); + mdcEfficiencyListDto.setEquipmentModel(mdcEquProDto.getEquipmentModel()); switch (mdcEquProDto.getOrgType()) { case "1": mdcEfficiencyListDto.setLevel1(mdcEquProDto.getProductionName()); @@ -448,14 +453,13 @@ if (vo.getEquipmentIdList() == null || vo.getEquipmentIdList().isEmpty()) { result.setMdcEfficiencyList(listDtos); } else { - if (StringUtils.isNotEmpty(vo.getEquipmentType())) { - List<String> equipmentList = mdcEquipmentService.listEquipmentId(vo.getEquipmentType(), vo.getEquipmentIdList()); - if (equipmentList != null && !equipmentList.isEmpty()) { - vo.setEquipmentIdList(equipmentList); - } else { - result.setMdcEfficiencyList(listDtos); - return result; - } + + List<String> equipmentIdList = mdcEquipmentService.listEquipmentId(vo); + if (equipmentIdList != null && !equipmentIdList.isEmpty()) { + vo.setEquipmentIdList(equipmentIdList); + } else { + result.setMdcEfficiencyList(listDtos); + return result; } // 鏌ヨ鍒╃敤鐜囨暟鎹� List<MdcEfficiencyDto> efficiencyList = mdcEfficiencyReportMapper.efficiencyPOList(vo); @@ -472,6 +476,7 @@ mdcEfficiencyListDto.setEquipmentId(mdcEquDepDto.getEquipmentId()); mdcEfficiencyListDto.setEquipmentName(mdcEquDepDto.getEquipmentName()); mdcEfficiencyListDto.setEquipmentType(mdcEquDepDto.getEquipmentType()); + mdcEfficiencyListDto.setEquipmentModel(mdcEquDepDto.getEquipmentModel()); switch (mdcEquDepDto.getOrgType()) { case "1": mdcEfficiencyListDto.setLevel1(mdcEquDepDto.getDepartName()); @@ -561,6 +566,7 @@ mdcEfficiencyListDto.setEquipmentId(mdcEquProDto.getEquipmentId()); mdcEfficiencyListDto.setEquipmentName(mdcEquProDto.getEquipmentName()); mdcEfficiencyListDto.setEquipmentType(mdcEquProDto.getEquipmentType()); + mdcEfficiencyListDto.setEquipmentModel(mdcEquProDto.getEquipmentModel()); switch (mdcEquProDto.getOrgType()) { case "1": mdcEfficiencyListDto.setLevel1(mdcEquProDto.getProductionName()); @@ -797,15 +803,15 @@ if (vo.getEquipmentIdList() == null || vo.getEquipmentIdList().isEmpty()) { result.setMdcEfficiencyList(listDtos); } else { - if (StringUtils.isNotEmpty(vo.getEquipmentType())) { - List<String> equipmentList = mdcEquipmentService.listEquipmentId(vo.getEquipmentType(), vo.getEquipmentIdList()); - if (equipmentList != null && !equipmentList.isEmpty()) { - vo.setEquipmentIdList(equipmentList); - } else { - result.setMdcEfficiencyList(listDtos); - return result; - } + + List<String> equipmentIdList = mdcEquipmentService.listEquipmentIdShift(vo); + if (equipmentIdList != null && !equipmentIdList.isEmpty()) { + vo.setEquipmentIdList(equipmentIdList); + } else { + result.setMdcEfficiencyList(listDtos); + return result; } + // 鐝鍒╃敤鐜囨暟鎹� List<MdcEquipmentStatisticalShiftInfo> mdcEquipmentStatisticalShiftInfoList = mdcEfficiencyReportMapper.efficiencyShiftSumList(vo); @@ -842,6 +848,7 @@ mdcEfficiencyShiftListDto.setEquipmentId(mdcEquDepDto.getEquipmentId()); mdcEfficiencyShiftListDto.setEquipmentName(mdcEquDepDto.getEquipmentName()); mdcEfficiencyShiftListDto.setEquipmentType(mdcEquDepDto.getEquipmentType()); + mdcEfficiencyShiftListDto.setEquipmentModel(mdcEquDepDto.getEquipmentModel()); mdcEfficiencyShiftListDto.setShiftSubName(shiftSubName); switch (mdcEquDepDto.getOrgType()) { case "1": @@ -953,6 +960,7 @@ mdcEfficiencyShiftListDto.setEquipmentId(mdcEquProDto.getEquipmentId()); mdcEfficiencyShiftListDto.setEquipmentName(mdcEquProDto.getEquipmentName()); mdcEfficiencyShiftListDto.setEquipmentType(mdcEquProDto.getEquipmentType()); + mdcEfficiencyShiftListDto.setEquipmentModel(mdcEquProDto.getEquipmentModel()); mdcEfficiencyShiftListDto.setShiftSubName(shiftSubName); switch (mdcEquProDto.getOrgType()) { case "1": @@ -1152,11 +1160,19 @@ if (date.equals(equipmentStatisticalShiftInfo.getTheDate()) && equipmentStatisticalShiftInfo.getEquipmentId().equals(equipmentId)) { mdcEfficiencyShiftResultDto.setTheDate(equipmentStatisticalShiftInfo.getTheDate()); mdcEfficiencyShiftResultDto.setProcessLong(equipmentStatisticalShiftInfo.getProcessLong()); - mdcEfficiencyShiftResultDto.setUtilizationRate(equipmentStatisticalShiftInfo.getProcessLong().divide(equipmentStatisticalShiftInfo.getTotalLong(), 6, BigDecimal.ROUND_HALF_UP)); + if (equipmentStatisticalShiftInfo.getTotalLong().compareTo(BigDecimal.ZERO) == 0) { + mdcEfficiencyShiftResultDto.setUtilizationRate(BigDecimal.ZERO); + } else { + mdcEfficiencyShiftResultDto.setUtilizationRate(equipmentStatisticalShiftInfo.getProcessLong().divide(equipmentStatisticalShiftInfo.getTotalLong(), 6, RoundingMode.HALF_UP)); + } mdcEfficiencyShiftResultDto.setCloseLong(equipmentStatisticalShiftInfo.getCloseLong()); mdcEfficiencyShiftResultDto.setOpenLong(equipmentStatisticalShiftInfo.getOpenLong()); mdcEfficiencyShiftResultDto.setWaitLong(equipmentStatisticalShiftInfo.getWaitLong()); - mdcEfficiencyShiftResultDto.setOpenRate(equipmentStatisticalShiftInfo.getOpenLong().divide(equipmentStatisticalShiftInfo.getTotalLong(), 6, BigDecimal.ROUND_HALF_UP)); + if (equipmentStatisticalShiftInfo.getTotalLong().compareTo(BigDecimal.ZERO) == 0) { + mdcEfficiencyShiftResultDto.setOpenRate(BigDecimal.ZERO); + } else { + mdcEfficiencyShiftResultDto.setOpenRate(equipmentStatisticalShiftInfo.getOpenLong().divide(equipmentStatisticalShiftInfo.getTotalLong(), 6, RoundingMode.HALF_UP)); + } long rate = mdcEfficiencyShiftResultDto.getUtilizationRate().multiply(new BigDecimal("100")).longValue(); for (MdcUtilizationRate mdcUtilizationRate : mdcUtilizationRateList) { if (rate >= mdcUtilizationRate.getMinimumRange() && rate < mdcUtilizationRate.getMaximumRange()) { @@ -1689,10 +1705,11 @@ List<MdcUtilizationResultDto> list = new ArrayList<>(); for (String date : dateList) { - Date startTime = DateUtils.toDate(date + " 00:00:00", DateUtils.STR_DATE_TIME_SMALL); - Date endTime = DateUtils.toDate(date + " 00:00:00", DateUtils.STR_DATE_TIME_SMALL); - endTime = DateUtils.addDays(endTime, 1); - list.add(this.utilizationRate(mdcEquDepDto.getEquipmentId(), mdcEquDepDto.getEquipmentName(), mdcEquDepDto.getEquipmentType(), startTime, endTime, date, mdcUtilizationRateList)); +// Date startTime = DateUtils.toDate(date + " 00:00:00", DateUtils.STR_DATE_TIME_SMALL); +// Date endTime = DateUtils.toDate(date + " 00:00:00", DateUtils.STR_DATE_TIME_SMALL); +// endTime = DateUtils.addDays(endTime, 1); +// list.add(this.utilizationRate(mdcEquDepDto.getEquipmentId(), mdcEquDepDto.getEquipmentName(), mdcEquDepDto.getEquipmentType(), startTime, endTime, date, mdcUtilizationRateList)); + list.add(this.utilizationRateTrend(mdcEquDepDto.getEquipmentId(), mdcEquDepDto.getEquipmentName(), mdcEquDepDto.getEquipmentType(), date, mdcUtilizationRateList)); } mdcEfficiencyListDto.setDataList(list); listDtos.add(mdcEfficiencyListDto); @@ -1709,10 +1726,7 @@ mdcEfficiencyListDto.setEquipmentType(mdcEquProDto.getEquipmentType()); List<MdcUtilizationResultDto> list = new ArrayList<>(); for (String date : dateList) { - Date startTime = DateUtils.toDate(date + " 00:00:00", DateUtils.STR_DATE_TIME_SMALL); - Date endTime = DateUtils.toDate(date + " 00:00:00", DateUtils.STR_DATE_TIME_SMALL); - endTime = DateUtils.addDays(endTime, 1); - list.add(this.utilizationRate(mdcEquProDto.getEquipmentId(), mdcEquProDto.getEquipmentName(), mdcEquProDto.getEquipmentType(), startTime, endTime, date, mdcUtilizationRateList)); + list.add(this.utilizationRateTrend(mdcEquProDto.getEquipmentId(), mdcEquProDto.getEquipmentName(), mdcEquProDto.getEquipmentType(), date, mdcUtilizationRateList)); } mdcEfficiencyListDto.setDataList(list); listDtos.add(mdcEfficiencyListDto); @@ -1724,6 +1738,35 @@ return result; } + private MdcUtilizationResultDto utilizationRateTrend(String equipmentId, String equipmentName, String equipmentType, String date, List<MdcUtilizationRate> mdcUtilizationRateList) { + MdcUtilizationResultDto dto = new MdcUtilizationResultDto(); + dto.setEquipmentId(equipmentId); + dto.setEquipmentName(equipmentName); + dto.setEquipmentType(equipmentType); + dto.setTheDate(date); + MdcEquipmentStatisticalInfo mdcEquipmentStatisticalInfo = mdcEquipmentStatisticalInfoService.findMdcEquipmentStatisticalInfo(equipmentId, date); + if (mdcEquipmentStatisticalInfo != null) { + dto.setUtilizationRate(mdcEquipmentStatisticalInfo.getProcessLong().divide(new BigDecimal("86400"), 6, RoundingMode.HALF_UP)); + } else { + dto.setUtilizationRate(new BigDecimal("0")); + } + long rate = dto.getUtilizationRate().multiply(new BigDecimal("100")).longValue(); + for (MdcUtilizationRate mdcUtilizationRate : mdcUtilizationRateList) { + if (rate >= mdcUtilizationRate.getMinimumRange() && rate < mdcUtilizationRate.getMaximumRange()) { + dto.setColor(mdcUtilizationRate.getRateParameterColor()); + } + } + if (StringUtils.isBlank(dto.getColor())) { + dto.setColor(mdcUtilizationRateList.get(mdcUtilizationRateList.size() - 1).getRateParameterColor()); + } + return dto; + } + + @Override + public List<BigDecimal> getEfficiencyRate(String equipmentId, String date) { + return mdcEfficiencyReportMapper.getEfficiencyRate(equipmentId, date); + } + private MdcUtilizationResultDto utilizationRate(String equipmentId, String equipmentName, String equipmentType, Date startTime, Date endTime, String date, List<MdcUtilizationRate> mdcUtilizationRateList) { MdcUtilizationResultDto dto = new MdcUtilizationResultDto(); dto.setEquipmentId(equipmentId); -- Gitblit v1.9.3