From ad2dc8af7b4159fdd663d60bc15107f20259c356 Mon Sep 17 00:00:00 2001
From: Lius <Lius2225@163.com>
Date: 星期二, 08 十月 2024 09:19:21 +0800
Subject: [PATCH] update

---
 lxzn-module-mdc/src/main/java/org/jeecg/modules/mdc/mapper/xml/MdcOverallEquipmentEfficiencyMapper.xml         |   10 ++++++++--
 lxzn-module-mdc/src/main/java/org/jeecg/modules/mdc/vo/MdcOverallEquipmentEfficiencyVo.java                    |    4 ++++
 lxzn-module-mdc/src/main/java/org/jeecg/modules/mdc/mapper/MdcOverallEquipmentEfficiencyMapper.java            |    2 +-
 lxzn-module-mdc/src/main/java/org/jeecg/modules/mdc/service/impl/MdcOverallEquipmentEfficiencyServiceImpl.java |   26 +++++++++++++++++++++++++-
 4 files changed, 38 insertions(+), 4 deletions(-)

diff --git a/lxzn-module-mdc/src/main/java/org/jeecg/modules/mdc/mapper/MdcOverallEquipmentEfficiencyMapper.java b/lxzn-module-mdc/src/main/java/org/jeecg/modules/mdc/mapper/MdcOverallEquipmentEfficiencyMapper.java
index 8fef015..7d02d42 100644
--- a/lxzn-module-mdc/src/main/java/org/jeecg/modules/mdc/mapper/MdcOverallEquipmentEfficiencyMapper.java
+++ b/lxzn-module-mdc/src/main/java/org/jeecg/modules/mdc/mapper/MdcOverallEquipmentEfficiencyMapper.java
@@ -27,5 +27,5 @@
 
     List<MdcOverallEquipmentEfficiency> findOeeByDate(@Param("date") String date, @Param("productionId") String id);
 
-    BigDecimal findAvgOee(@Param("date") String date, @Param("equipmentType") String equipmentType, @Param("productionId") String id);
+    BigDecimal findAvgOee(@Param("date") String date, @Param("equipmentTypeList") List<String> equipmentTypeList, @Param("productionId") String id);
 }
diff --git a/lxzn-module-mdc/src/main/java/org/jeecg/modules/mdc/mapper/xml/MdcOverallEquipmentEfficiencyMapper.xml b/lxzn-module-mdc/src/main/java/org/jeecg/modules/mdc/mapper/xml/MdcOverallEquipmentEfficiencyMapper.xml
index 801e2da..d7f45f9 100644
--- a/lxzn-module-mdc/src/main/java/org/jeecg/modules/mdc/mapper/xml/MdcOverallEquipmentEfficiencyMapper.xml
+++ b/lxzn-module-mdc/src/main/java/org/jeecg/modules/mdc/mapper/xml/MdcOverallEquipmentEfficiencyMapper.xml
@@ -76,6 +76,9 @@
             <if test="mdcOverallEquipmentEfficiency.deviceImportanceLevel != null and mdcOverallEquipmentEfficiency.deviceImportanceLevel != '' ">
                 AND t2.device_importance_level = #{mdcOverallEquipmentEfficiency.deviceImportanceLevel}
             </if>
+            <if test="mdcOverallEquipmentEfficiency.max != null and mdcOverallEquipmentEfficiency.max != '' and mdcOverallEquipmentEfficiency.min != null and mdcOverallEquipmentEfficiency.min!= ''">
+                AND t1.overall_equipment_efficiency BETWEEN #{mdcOverallEquipmentEfficiency.min} AND #{mdcOverallEquipmentEfficiency.max}
+            </if>
             AND t2.device_abnormal_status = 1
         </where>
     </select>
@@ -105,8 +108,11 @@
         WHERE
             ( t4.id = #{productionId} OR t4.parent_id = #{productionId} )
           AND t1.valid_date = #{date}
-        <if test="equipmentType != null and equipmentType != ''">
-            AND t2.equipment_type = #{equipmentType}
+        <if test="equipmentTypeList != null and equipmentTypeList.size() > 0">
+            AND t2.equipment_type IN
+            <foreach collection="equipmentTypeList" item="equipmentType" index="index" open="(" close=")" separator=",">
+                #{equipmentType}
+            </foreach>
         </if>
     </select>
 </mapper>
\ No newline at end of file
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 79b37fa..7499f8d 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
@@ -311,6 +311,17 @@
         if (StringUtils.isNotEmpty(mdcOverallEquipmentEfficiencyVo.getDriveType())) {
             mdcOverallEquipmentEfficiencyVo.setDriveTypeList(Arrays.asList(mdcOverallEquipmentEfficiencyVo.getDriveType().split(",")));
         }
+        if (StringUtils.isNotEmpty(mdcOverallEquipmentEfficiencyVo.getPercentageLevel())) {
+            List<BigDecimal> stringList = new ArrayList<>();
+            String[] strings = mdcOverallEquipmentEfficiencyVo.getPercentageLevel().split(",");
+            for (String string : strings) {
+                for (String s : string.split("-")) {
+                    stringList.add(new BigDecimal(s).divide(new BigDecimal("100"), 2, RoundingMode.HALF_UP));
+                }
+            }
+            mdcOverallEquipmentEfficiencyVo.setMax(stringList.stream().max(BigDecimal::compareTo).get().toString());
+            mdcOverallEquipmentEfficiencyVo.setMin(stringList.stream().min(BigDecimal::compareTo).get().toString());
+        }
         IPage<MdcOverallEquipmentEfficiency> mdcOverallEquipmentEfficiencyIPage = this.baseMapper.pageList(page, mdcOverallEquipmentEfficiencyVo);
 //        List<MdcOverallEquipmentEfficiency> list = mdcOverallEquipmentEfficiencyIPage.getRecords();
         for (MdcOverallEquipmentEfficiency mdcOverallEquipmentEfficiency : mdcOverallEquipmentEfficiencyIPage.getRecords()) {
@@ -355,6 +366,15 @@
                 }
                 result.add(oeeStatisticsVo);
             }
+            OeeStatisticsVo oeeStatisticsVo = new OeeStatisticsVo();
+            oeeStatisticsVo.setProductionId(UUID.randomUUID().toString());
+            oeeStatisticsVo.setProductionName("鍚堣");
+            oeeStatisticsVo.setLevel1(result.stream().mapToInt(OeeStatisticsVo::getLevel1).sum());
+            oeeStatisticsVo.setLevel2(result.stream().mapToInt(OeeStatisticsVo::getLevel2).sum());
+            oeeStatisticsVo.setLevel3(result.stream().mapToInt(OeeStatisticsVo::getLevel3).sum());
+            oeeStatisticsVo.setLevel4(result.stream().mapToInt(OeeStatisticsVo::getLevel4).sum());
+            oeeStatisticsVo.setLevel5(result.stream().mapToInt(OeeStatisticsVo::getLevel5).sum());
+            result.add(oeeStatisticsVo);
         }
         return result;
     }
@@ -371,12 +391,16 @@
         if (StringUtils.isEmpty(date)) {
             date = DateTimeFormatter.ofPattern("yyyy-MM").format(LocalDate.now().plusMonths(-1));
         }
+        List<String> equipmentTypeList = new ArrayList<>();
+        if (StringUtils.isNotEmpty(equipmentType)) {
+            equipmentTypeList = Arrays.asList(equipmentType.split(","));
+        }
         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());
+                BigDecimal oee = this.baseMapper.findAvgOee(date, equipmentTypeList, mdcProduction.getId());
                 if (oee != null) {
                     oeeStatisticsChartVo.setValue(oee);
                 }
diff --git a/lxzn-module-mdc/src/main/java/org/jeecg/modules/mdc/vo/MdcOverallEquipmentEfficiencyVo.java b/lxzn-module-mdc/src/main/java/org/jeecg/modules/mdc/vo/MdcOverallEquipmentEfficiencyVo.java
index ce96c97..e747ef8 100644
--- a/lxzn-module-mdc/src/main/java/org/jeecg/modules/mdc/vo/MdcOverallEquipmentEfficiencyVo.java
+++ b/lxzn-module-mdc/src/main/java/org/jeecg/modules/mdc/vo/MdcOverallEquipmentEfficiencyVo.java
@@ -80,4 +80,8 @@
      */
     private String percentageLevel;
 
+    private String min;
+
+    private String max;
+
 }

--
Gitblit v1.9.3