From c87b6be5af5aff05a9a2448cfba57adb00531d07 Mon Sep 17 00:00:00 2001 From: lius <Lius2225@163.com> Date: 星期五, 30 六月 2023 15:42:06 +0800 Subject: [PATCH] 利用率报表接口 --- lxzn-module-mdc/src/main/java/org/jeecg/modules/mdc/service/impl/MdcEfficiencyReportServiceImpl.java | 64 +++++++++++++++++++++----------- 1 files changed, 42 insertions(+), 22 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 de8846c..c0857ab 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 @@ -1,5 +1,6 @@ package org.jeecg.modules.mdc.service.impl; +import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; import net.sf.saxon.expr.Component; import org.apache.commons.lang3.StringUtils; @@ -18,6 +19,7 @@ import org.springframework.stereotype.Service; import javax.annotation.Resource; +import java.math.BigDecimal; import java.util.*; import java.util.stream.Collectors; @@ -78,18 +80,18 @@ List<MdcUtilizationRate> mdcUtilizationRateList = mdcUtilizationRateService.listByType("lyl"); //灏佽缁撴灉 - List<MdcEfficiencyDto> equipmentList = efficiencyList.stream().collect(Collectors.collectingAndThen(Collectors.toCollection(() -> new TreeSet<>(Comparator.comparing(MdcEfficiencyDto::getEquipmentId))), ArrayList::new)); + List<MdcEquipment> equipmentList = mdcEquipmentService.list(new LambdaQueryWrapper<MdcEquipment>().in(MdcEquipment::getEquipmentId, vo.getEquipmentIdList())); List<String> dates = DateUtils.getDatesStringList2(DateUtils.getShortDate2(vo.getStartTime()), DateUtils.getShortDate2(vo.getEndTime())); - for (MdcEfficiencyDto mdcEfficiencyDto : equipmentList) { + for (MdcEquipment mdcEquipment : equipmentList) { MdcEfficiencyListDto mdcEfficiencyListDto = new MdcEfficiencyListDto(); - mdcEfficiencyListDto.setEquipmentId(mdcEfficiencyDto.getEquipmentId()); - mdcEfficiencyListDto.setEquipmentName(mdcEfficiencyDto.getEquipmentName()); - mdcEfficiencyListDto.setEquipmentType(mdcEfficiencyDto.getEquipmentType()); + mdcEfficiencyListDto.setEquipmentId(mdcEquipment.getEquipmentId()); + mdcEfficiencyListDto.setEquipmentName(mdcEquipment.getEquipmentName()); + mdcEfficiencyListDto.setEquipmentType(mdcEquipment.getEquipmentType()); List<MdcEfficiencyResultDto> list = new ArrayList<>(); for (String date : dates) { - list.add(this.efficiencyRate(efficiencyList, date, mdcEfficiencyDto, mdcUtilizationRateList)); + list.add(this.efficiencyRate(efficiencyList, date, mdcEquipment, mdcUtilizationRateList)); } mdcEfficiencyListDto.setList(list); listDtos.add(mdcEfficiencyListDto); @@ -101,27 +103,45 @@ return result; } - private MdcEfficiencyResultDto efficiencyRate(List<MdcEfficiencyDto> efficiencyList, String date, MdcEfficiencyDto mdcEfficiencyDto, List<MdcUtilizationRate> mdcUtilizationRateList) { + private MdcEfficiencyResultDto efficiencyRate(List<MdcEfficiencyDto> efficiencyList, String date, MdcEquipment mdcEquipment, List<MdcUtilizationRate> mdcUtilizationRateList) { MdcEfficiencyResultDto mdcEfficiencyResultDto = new MdcEfficiencyResultDto(); - for (MdcEfficiencyDto efficiencyDto : efficiencyList) { - if (date.equals(efficiencyDto.getTheDate()) && efficiencyDto.getEquipmentId().equals(mdcEfficiencyDto.getEquipmentId())) { - mdcEfficiencyResultDto.setTheDate(efficiencyDto.getTheDate()); - mdcEfficiencyResultDto.setProcessLong(efficiencyDto.getProcessLong()); - mdcEfficiencyResultDto.setUtilizationRate(efficiencyDto.getUtilizationRate()); - mdcEfficiencyResultDto.setStartRate(efficiencyDto.getStartRate()); - mdcEfficiencyResultDto.setStartRate(efficiencyDto.getStartRate()); - mdcEfficiencyResultDto.setOpenRate(efficiencyDto.getOpenRate()); - mdcEfficiencyResultDto.setOpenLong(efficiencyDto.getOpenLong()); - mdcEfficiencyResultDto.setWaitLong(efficiencyDto.getWaitLong()); - mdcEfficiencyResultDto.setCloseLong(efficiencyDto.getCloseLong()); - for (MdcUtilizationRate mdcUtilizationRate : mdcUtilizationRateList) { - if (efficiencyDto.getUtilizationRate().longValue() * 100 > mdcUtilizationRate.getMinimumRange() && efficiencyDto.getUtilizationRate().longValue() * 100 <= mdcUtilizationRate.getMaximumRange()) { - mdcEfficiencyResultDto.setColor(mdcUtilizationRate.getRateParameterColor()); + if (efficiencyList != null && !efficiencyList.isEmpty()) { + for (MdcEfficiencyDto efficiencyDto : efficiencyList) { + if (date.equals(efficiencyDto.getTheDate()) && efficiencyDto.getEquipmentId().equals(mdcEquipment.getEquipmentId())) { + mdcEfficiencyResultDto.setTheDate(efficiencyDto.getTheDate()); + mdcEfficiencyResultDto.setProcessLong(efficiencyDto.getProcessLong()); + mdcEfficiencyResultDto.setUtilizationRate(efficiencyDto.getUtilizationRate()); + mdcEfficiencyResultDto.setStartRate(efficiencyDto.getStartRate()); + mdcEfficiencyResultDto.setStartRate(efficiencyDto.getStartRate()); + mdcEfficiencyResultDto.setOpenRate(efficiencyDto.getOpenRate()); + mdcEfficiencyResultDto.setOpenLong(efficiencyDto.getOpenLong()); + mdcEfficiencyResultDto.setWaitLong(efficiencyDto.getWaitLong()); + mdcEfficiencyResultDto.setCloseLong(efficiencyDto.getCloseLong()); + for (MdcUtilizationRate mdcUtilizationRate : mdcUtilizationRateList) { + if (efficiencyDto.getUtilizationRate().longValue() * 100 >= mdcUtilizationRate.getMinimumRange() && efficiencyDto.getUtilizationRate().longValue() * 100 < mdcUtilizationRate.getMaximumRange()) { + mdcEfficiencyResultDto.setColor(mdcUtilizationRate.getRateParameterColor()); + } } - } + } + } + } else { + mdcEfficiencyResultDto.setTheDate(date); + mdcEfficiencyResultDto.setProcessLong(new BigDecimal("0")); + mdcEfficiencyResultDto.setUtilizationRate(new BigDecimal("0")); + mdcEfficiencyResultDto.setStartRate(new BigDecimal("0")); + mdcEfficiencyResultDto.setStartRate(new BigDecimal("0")); + mdcEfficiencyResultDto.setOpenRate(new BigDecimal("0")); + mdcEfficiencyResultDto.setOpenLong(new BigDecimal("0")); + mdcEfficiencyResultDto.setWaitLong(new BigDecimal("0")); + mdcEfficiencyResultDto.setCloseLong(new BigDecimal("0")); + for (MdcUtilizationRate mdcUtilizationRate : mdcUtilizationRateList) { + if (0 >= mdcUtilizationRate.getMinimumRange() && 0 < mdcUtilizationRate.getMaximumRange()) { + mdcEfficiencyResultDto.setColor(mdcUtilizationRate.getRateParameterColor()); + } } } + return mdcEfficiencyResultDto; } -- Gitblit v1.9.3