From 435c2e83b4caefee5676fedfd7a27d7b0362693d Mon Sep 17 00:00:00 2001
From: Lius <Lius2225@163.com>
Date: 星期五, 27 九月 2024 15:19:32 +0800
Subject: [PATCH] update

---
 lxzn-module-mdc/src/main/java/org/jeecg/modules/mdc/service/impl/MdcOverallEquipmentEfficiencyServiceImpl.java |   80 ++++++++++++++++++++++++++++++++++++++--
 1 files changed, 76 insertions(+), 4 deletions(-)

diff --git a/lxzn-module-mdc/src/main/java/org/jeecg/modules/mdc/service/impl/MdcOverallEquipmentEfficiencyServiceImpl.java b/lxzn-module-mdc/src/main/java/org/jeecg/modules/mdc/service/impl/MdcOverallEquipmentEfficiencyServiceImpl.java
index e7f137d..10f3bdf 100644
--- a/lxzn-module-mdc/src/main/java/org/jeecg/modules/mdc/service/impl/MdcOverallEquipmentEfficiencyServiceImpl.java
+++ b/lxzn-module-mdc/src/main/java/org/jeecg/modules/mdc/service/impl/MdcOverallEquipmentEfficiencyServiceImpl.java
@@ -5,6 +5,7 @@
 import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
 import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
 import org.apache.commons.lang3.StringUtils;
+import org.jeecg.common.constant.CommonConstant;
 import org.jeecg.modules.mdc.constant.MdcConstant;
 import org.jeecg.modules.mdc.entity.MdcEquipment;
 import org.jeecg.modules.mdc.entity.MdcOverallEquipmentEfficiency;
@@ -12,6 +13,8 @@
 import org.jeecg.modules.mdc.service.*;
 import org.jeecg.modules.mdc.util.DateUtils;
 import org.jeecg.modules.mdc.vo.MdcOverallEquipmentEfficiencyVo;
+import org.jeecg.modules.mdc.vo.OeeStatisticsChartVo;
+import org.jeecg.modules.mdc.vo.OeeStatisticsVo;
 import org.jeecg.modules.system.entity.MdcProduction;
 import org.jeecg.modules.system.service.IMdcProductionService;
 import org.springframework.stereotype.Service;
@@ -20,11 +23,11 @@
 import javax.servlet.http.HttpServletRequest;
 import java.math.BigDecimal;
 import java.math.RoundingMode;
+import java.time.LocalDate;
 import java.time.YearMonth;
-import java.util.ArrayList;
-import java.util.Arrays;
-import java.util.Collections;
-import java.util.List;
+import java.time.format.DateTimeFormatter;
+import java.util.*;
+import java.util.stream.Collectors;
 
 /**
  * @author: LiuS
@@ -316,6 +319,75 @@
         return mdcOverallEquipmentEfficiencyIPage;
     }
 
+    /**
+     *
+     * @param date
+     * @return
+     */
+    @Override
+    public List<OeeStatisticsVo> oeeStatisticsList(String date) {
+        List<OeeStatisticsVo> result = new ArrayList<>();
+        if (StringUtils.isEmpty(date)) {
+            date = DateTimeFormatter.ofPattern("yyyy-MM").format(LocalDate.now().plusMonths(-1));
+        }
+        List<MdcProduction> mdcProductionList = mdcProductionService.list(new LambdaQueryWrapper<MdcProduction>().eq(MdcProduction::getOrgType, 2).eq(MdcProduction::getDelFlag, CommonConstant.DEL_FLAG_0));
+        if (mdcProductionList != null && !mdcProductionList.isEmpty()) {
+            for (MdcProduction mdcProduction : mdcProductionList) {
+                OeeStatisticsVo oeeStatisticsVo = new OeeStatisticsVo();
+                oeeStatisticsVo.setProductionName(mdcProduction.getProductionName());
+                List<MdcOverallEquipmentEfficiency> mdcOverallEquipmentEfficiencyList = this.baseMapper.findOeeByDate(date, mdcProduction.getId());
+                if (mdcOverallEquipmentEfficiencyList != null && !mdcOverallEquipmentEfficiencyList.isEmpty()) {
+                    for (MdcOverallEquipmentEfficiency mdcOverallEquipmentEfficiency : mdcOverallEquipmentEfficiencyList) {
+                        int oee = mdcOverallEquipmentEfficiency.getOverallEquipmentEfficiency().multiply(new BigDecimal("10000")).intValue();
+                        if (oee < 500) {
+                            oeeStatisticsVo.setLevel1(oeeStatisticsVo.getLevel1() + 1);
+                        } else if (oee >= 500 && oee < 1000) {
+                            oeeStatisticsVo.setLevel2(oeeStatisticsVo.getLevel2() + 1);
+                        } else if (oee >= 1000 && oee <  3000) {
+                            oeeStatisticsVo.setLevel3(oeeStatisticsVo.getLevel3() + 1);
+                        } else if (oee >= 3000 && oee < 6000) {
+                            oeeStatisticsVo.setLevel4(oeeStatisticsVo.getLevel4() + 1);
+                        } else if (oee >= 6000) {
+                            oeeStatisticsVo.setLevel5(oeeStatisticsVo.getLevel5() + 1);
+                        }
+                    }
+                }
+                result.add(oeeStatisticsVo);
+            }
+        }
+        return result;
+    }
+
+    /**
+     *
+     * @param date
+     * @param equipmentType
+     * @return
+     */
+    @Override
+    public List<OeeStatisticsChartVo> oeeStatisticsChart(String date, String equipmentType) {
+        List<OeeStatisticsChartVo> result = new ArrayList<>();
+        if (StringUtils.isEmpty(date)) {
+            date = DateTimeFormatter.ofPattern("yyyy-MM").format(LocalDate.now().plusMonths(-1));
+        }
+        List<MdcProduction> mdcProductionList = mdcProductionService.list(new LambdaQueryWrapper<MdcProduction>().eq(MdcProduction::getOrgType, 2).eq(MdcProduction::getDelFlag, CommonConstant.DEL_FLAG_0));
+        if (mdcProductionList != null && !mdcProductionList.isEmpty()) {
+            for (MdcProduction mdcProduction : mdcProductionList) {
+                OeeStatisticsChartVo oeeStatisticsChartVo = new OeeStatisticsChartVo();
+                oeeStatisticsChartVo.setKey(mdcProduction.getProductionName());
+                BigDecimal oee = this.baseMapper.findAvgOee(date, equipmentType, mdcProduction.getId());
+                if (oee != null) {
+                    oeeStatisticsChartVo.setValue(oee);
+                }
+                result.add(oeeStatisticsChartVo);
+            }
+        }
+        if (!result.isEmpty()) {
+            result = result.stream().sorted(Comparator.comparing(OeeStatisticsChartVo::getValue)).collect(Collectors.toList());
+        }
+        return result;
+    }
+
 
     /**
      * 閫掑綊鏌ヨ璁惧杞﹂棿鍚嶇О

--
Gitblit v1.9.3