lius
2023-06-30 c87b6be5af5aff05a9a2448cfba57adb00531d07
利用率报表接口
已修改2个文件
74 ■■■■ 文件已修改
lxzn-module-mdc/src/main/java/org/jeecg/modules/mdc/controller/MdcEfficiencyReportController.java 10 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
lxzn-module-mdc/src/main/java/org/jeecg/modules/mdc/service/impl/MdcEfficiencyReportServiceImpl.java 64 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
lxzn-module-mdc/src/main/java/org/jeecg/modules/mdc/controller/MdcEfficiencyReportController.java
@@ -39,4 +39,14 @@
        return Result.OK(result);
    }
    @AutoLog(value = "设备效率报表-班次利用率列表查询")
    @ApiOperation(value = "设备效率报表-班次利用率列表查询", notes = "设备效率报表-班次利用率列表查询")
    @GetMapping("/shiftEfficiencyList")
    public Result shiftEfficiencyList(MdcEfficiencyReportQueryVo vo) {
        LoginUser user = (LoginUser) SecurityUtils.getSubject().getPrincipal();
        String userId = user.getId();
        MdcEfficiencyVo result = mdcEfficiencyReportService.efficiencyList(userId, vo);
        return Result.OK(result);
    }
}
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;
    }