From e26943154c5c1970114e22bb08c2b0cc3f5545d2 Mon Sep 17 00:00:00 2001
From: Lius <Lius2225@163.com>
Date: 星期二, 08 十月 2024 15:11:59 +0800
Subject: [PATCH] update

---
 lxzn-module-mdc/src/main/java/org/jeecg/modules/mdc/service/impl/MdcOverallEquipmentEfficiencyServiceImpl.java |   44 ++++++++++++++++++++++++++++++++++----------
 1 files changed, 34 insertions(+), 10 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 10f3bdf..08d1ab2 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
@@ -18,6 +18,7 @@
 import org.jeecg.modules.system.entity.MdcProduction;
 import org.jeecg.modules.system.service.IMdcProductionService;
 import org.springframework.stereotype.Service;
+import org.springframework.transaction.annotation.Transactional;
 
 import javax.annotation.Resource;
 import javax.servlet.http.HttpServletRequest;
@@ -73,6 +74,7 @@
      * 璁$畻璁惧缁煎悎鏁堢巼OEE
      */
     @Override
+    @Transactional(rollbackFor = Exception.class)
     public void runningOverallEquipmentEfficiency(String dateTime) {
         /*
             OEE = 鏃堕棿寮�鍔ㄧ巼 脳 鎬ц兘寮�鍔ㄧ巼 脳 鍚堟牸鍝佺巼
@@ -89,14 +91,11 @@
         String validDate = YearMonth.now().minusMonths(1).toString();
         if (StringUtils.isNotBlank(dateTime)) {
             validDate = DateUtils.format(DateUtils.toDate(dateTime, "yyyyMM"), DateUtils.STR_YEAR_MONTH);
-            try {
-                if (validDate != null) {
-                    this.remove(new LambdaQueryWrapper<MdcOverallEquipmentEfficiency>().
-                            eq(MdcOverallEquipmentEfficiency::getValidDate, validDate));
-                }
-            } catch (Exception e) {
-                log.error("鍙傛暟鏍煎紡涓嶅", e);
-            }
+        }
+        try {
+            this.remove(new LambdaQueryWrapper<MdcOverallEquipmentEfficiency>().eq(MdcOverallEquipmentEfficiency::getValidDate, validDate));
+        } catch (Exception e) {
+            log.error("鍙傛暟鏍煎紡涓嶅", e);
         }
         // 鑾峰彇璁惧鍒楄〃
         List<MdcEquipment> equipmentList = mdcEquipmentService.list();
@@ -311,6 +310,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()) {
@@ -334,6 +344,7 @@
         if (mdcProductionList != null && !mdcProductionList.isEmpty()) {
             for (MdcProduction mdcProduction : mdcProductionList) {
                 OeeStatisticsVo oeeStatisticsVo = new OeeStatisticsVo();
+                oeeStatisticsVo.setProductionId(mdcProduction.getId());
                 oeeStatisticsVo.setProductionName(mdcProduction.getProductionName());
                 List<MdcOverallEquipmentEfficiency> mdcOverallEquipmentEfficiencyList = this.baseMapper.findOeeByDate(date, mdcProduction.getId());
                 if (mdcOverallEquipmentEfficiencyList != null && !mdcOverallEquipmentEfficiencyList.isEmpty()) {
@@ -354,6 +365,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;
     }
@@ -370,14 +390,18 @@
         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);
+                    oeeStatisticsChartVo.setValue(oee.multiply(new BigDecimal("100")).setScale(2, RoundingMode.HALF_UP));
                 }
                 result.add(oeeStatisticsChartVo);
             }

--
Gitblit v1.9.3