From 6eb74a8815cefd832fbef19c32fa772fa711e3b4 Mon Sep 17 00:00:00 2001
From: lius <Lius2225@163.com>
Date: 星期四, 31 八月 2023 14:26:58 +0800
Subject: [PATCH] 基础加班管理功能代码

---
 lxzn-module-mdc/src/main/java/org/jeecg/modules/mdc/service/impl/MdcEfficiencyReportServiceImpl.java |   68 ++++++++++++++++++---------------
 1 files changed, 37 insertions(+), 31 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 6bbaf58..c1803fa 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
@@ -657,23 +657,24 @@
                             mdcEfficiencyShiftResultDto.setColor(mdcUtilizationRate.getRateParameterColor());
                         }
                     }
-                } else {
-                    mdcEfficiencyShiftResultDto.setTheDate(date);
-                    mdcEfficiencyShiftResultDto.setProcessLong(new BigDecimal("0"));
-                    mdcEfficiencyShiftResultDto.setUtilizationRate(new BigDecimal("0"));
-                    mdcEfficiencyShiftResultDto.setStartRate(new BigDecimal("0"));
-                    mdcEfficiencyShiftResultDto.setOpenRate(new BigDecimal("0"));
-                    mdcEfficiencyShiftResultDto.setOpenLong(new BigDecimal("0"));
-                    mdcEfficiencyShiftResultDto.setWaitLong(new BigDecimal("0"));
-                    mdcEfficiencyShiftResultDto.setCloseLong(new BigDecimal("0"));
-                    for (MdcUtilizationRate mdcUtilizationRate : mdcUtilizationRateList) {
-                        if (0 >= mdcUtilizationRate.getMinimumRange() && 0 < mdcUtilizationRate.getMaximumRange()) {
-                            mdcEfficiencyShiftResultDto.setColor(mdcUtilizationRate.getRateParameterColor());
-                        }
-                    }
                 }
             }
         } else {
+            mdcEfficiencyShiftResultDto.setTheDate(date);
+            mdcEfficiencyShiftResultDto.setProcessLong(new BigDecimal("0"));
+            mdcEfficiencyShiftResultDto.setUtilizationRate(new BigDecimal("0"));
+            mdcEfficiencyShiftResultDto.setStartRate(new BigDecimal("0"));
+            mdcEfficiencyShiftResultDto.setOpenRate(new BigDecimal("0"));
+            mdcEfficiencyShiftResultDto.setOpenLong(new BigDecimal("0"));
+            mdcEfficiencyShiftResultDto.setWaitLong(new BigDecimal("0"));
+            mdcEfficiencyShiftResultDto.setCloseLong(new BigDecimal("0"));
+            for (MdcUtilizationRate mdcUtilizationRate : mdcUtilizationRateList) {
+                if (0 >= mdcUtilizationRate.getMinimumRange() && 0 < mdcUtilizationRate.getMaximumRange()) {
+                    mdcEfficiencyShiftResultDto.setColor(mdcUtilizationRate.getRateParameterColor());
+                }
+            }
+        }
+        if (StringUtils.isBlank(mdcEfficiencyShiftResultDto.getColor())) {
             mdcEfficiencyShiftResultDto.setTheDate(date);
             mdcEfficiencyShiftResultDto.setProcessLong(new BigDecimal("0"));
             mdcEfficiencyShiftResultDto.setUtilizationRate(new BigDecimal("0"));
@@ -768,10 +769,10 @@
         }
         result = this.efficiencyStatisticalRate(efficiencyList);
         if (result.getOpenRate().compareTo(new BigDecimal("0")) > 0) {
-            result.setOpenRate(result.getOpenRate().multiply(new BigDecimal("100")).divide(new BigDecimal(equipmentIds.size()), 2, BigDecimal.ROUND_HALF_UP));
+            result.setOpenRate(result.getOpenRate().multiply(new BigDecimal("100")).divide(new BigDecimal(vo.getEquipmentIdList().size()), 2, BigDecimal.ROUND_HALF_UP));
         }
         if (result.getUtilizationRate().compareTo(new BigDecimal("0")) > 0) {
-            result.setUtilizationRate(result.getUtilizationRate().multiply(new BigDecimal(100)).divide(new BigDecimal(equipmentIds.size()), 2, BigDecimal.ROUND_HALF_UP));
+            result.setUtilizationRate(result.getUtilizationRate().multiply(new BigDecimal(100)).divide(new BigDecimal(vo.getEquipmentIdList().size()), 2, BigDecimal.ROUND_HALF_UP));
         }
         if (result.getOpenLong().compareTo(new BigDecimal(0)) > 0 && result.getProcessLong().compareTo(new BigDecimal(0)) > 0) {
             result.setUsedOpenRate(result.getProcessLong().divide(result.getOpenLong(), 4, BigDecimal.ROUND_HALF_UP).multiply(new BigDecimal(100)));
@@ -1177,6 +1178,7 @@
                     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));
                     }
                     mdcEfficiencyListDto.setDataList(list);
@@ -1196,6 +1198,7 @@
                     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));
                     }
                     mdcEfficiencyListDto.setDataList(list);
@@ -1243,6 +1246,9 @@
                 dto.setColor(mdcUtilizationRate.getRateParameterColor());
             }
         }
+        if (StringUtils.isBlank(dto.getColor())) {
+            dto.setColor(mdcUtilizationRateList.get(mdcUtilizationRateList.size() - 1).getRateParameterColor());
+        }
         return dto;
     }
 
@@ -1278,20 +1284,6 @@
                             mdcEfficiencyResultDto.setColor(mdcUtilizationRate.getRateParameterColor());
                         }
                     }
-                } else {
-                    mdcEfficiencyResultDto.setTheDate(date);
-                    mdcEfficiencyResultDto.setProcessLong(new BigDecimal("0"));
-                    mdcEfficiencyResultDto.setUtilizationRate(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());
-                        }
-                    }
                 }
             }
         } else {
@@ -1309,7 +1301,21 @@
                 }
             }
         }
-
+        if (StringUtils.isBlank(mdcEfficiencyResultDto.getColor())) {
+            mdcEfficiencyResultDto.setTheDate(date);
+            mdcEfficiencyResultDto.setProcessLong(new BigDecimal("0"));
+            mdcEfficiencyResultDto.setUtilizationRate(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