From 2b3d1af6c4d6a66c9df7c3a1796da084b4a09331 Mon Sep 17 00:00:00 2001
From: lius <Lius2225@163.com>
Date: 星期一, 03 七月 2023 11:20:07 +0800
Subject: [PATCH] 利用率接口update

---
 lxzn-module-mdc/src/main/java/org/jeecg/modules/mdc/service/impl/MdcEfficiencyReportServiceImpl.java |   81 +++++++++++++++++++++++++++-------------
 1 files changed, 54 insertions(+), 27 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..13d6e58 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;
 
@@ -70,7 +72,9 @@
                 equipmentIds = mdcEquipmentService.getEquipmentIdsProduction(userId, null);
             }
         }
-        vo.setEquipmentIdList(equipmentIds);
+        if (vo.getEquipmentIdList() == null || vo.getEquipmentIdList().isEmpty()) {
+            vo.setEquipmentIdList(equipmentIds);
+        }
 
         // 鏌ヨ鍒╃敤鐜囨暟鎹�
         List<MdcEfficiencyDto> efficiencyList = mdcEfficiencyReportMapper.efficiencyList(vo);
@@ -78,50 +82,73 @@
         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);
+            mdcEfficiencyListDto.setDataList(list);
             listDtos.add(mdcEfficiencyListDto);
         }
 
-        result.setLists(listDtos);
+        result.setMdcEfficiencyList(listDtos);
         result.setDates(dates);
 
         return result;
     }
 
-    private MdcEfficiencyResultDto efficiencyRate(List<MdcEfficiencyDto> efficiencyList, String date, MdcEfficiencyDto mdcEfficiencyDto, 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());
-                    }
-                }
+    @Override
+    public MdcEfficiencyVo shiftEfficiencyList(String userId, MdcEfficiencyReportQueryVo vo) {
+        return null;
+    }
 
+    private MdcEfficiencyResultDto efficiencyRate(List<MdcEfficiencyDto> efficiencyList, String date, MdcEquipment mdcEquipment, List<MdcUtilizationRate> mdcUtilizationRateList) {
+        MdcEfficiencyResultDto mdcEfficiencyResultDto = new MdcEfficiencyResultDto();
+        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