From 63a5530a85e6eaf7f8be733e87d32af2d16477a8 Mon Sep 17 00:00:00 2001
From: qushaowei <qushaowei@163.com>
Date: 星期日, 07 四月 2024 13:39:02 +0800
Subject: [PATCH] 设备管理 报表打印修改

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

diff --git a/lxzn-module-mdc/src/main/java/org/jeecg/modules/mdc/service/impl/IMdcHomeServiceImpl.java b/lxzn-module-mdc/src/main/java/org/jeecg/modules/mdc/service/impl/IMdcHomeServiceImpl.java
index df3abeb..9a9fe09 100644
--- a/lxzn-module-mdc/src/main/java/org/jeecg/modules/mdc/service/impl/IMdcHomeServiceImpl.java
+++ b/lxzn-module-mdc/src/main/java/org/jeecg/modules/mdc/service/impl/IMdcHomeServiceImpl.java
@@ -2,11 +2,14 @@
 
 import com.baomidou.mybatisplus.core.toolkit.StringUtils;
 import org.jeecg.modules.mdc.entity.EquipmentLog;
+import org.jeecg.modules.mdc.entity.MdcEquipmentStatisticalInfo;
+import org.jeecg.modules.mdc.entity.MdcOverallEquipmentEfficiency;
 import org.jeecg.modules.mdc.mapper.MdcHomeMapper;
 import org.jeecg.modules.mdc.service.IEquipmentLogService;
 import org.jeecg.modules.mdc.service.IMdcEquipmentService;
 import org.jeecg.modules.mdc.service.IMdcHomeService;
 import org.jeecg.modules.mdc.util.DateUtils;
+import org.jeecg.modules.mdc.vo.EquipmentDayUtilizationVo;
 import org.jeecg.modules.mdc.vo.MdcCommonVo;
 import org.jeecg.modules.mdc.vo.MdcEquipmentStatusVo;
 import org.jeecg.modules.system.entity.MdcProduction;
@@ -121,6 +124,7 @@
                 MdcCommonVo mdcCommonVo = new MdcCommonVo();
                 mdcCommonVo.setName(mdcProduction.getProductionName());
                 mdcCommonVo.setProductionCode(mdcProduction.getProductionCode());
+                mdcCommonVo.setProductionId(mdcProduction.getId());
                 //鑾峰彇姝ゅ眰绾т笅璁惧
                 List<String> equipmentIdList = mdcEquipmentService.getEquipmentIdsProduction(userId, mdcProduction.getId());
                 if (equipmentIdList == null || equipmentIdList.isEmpty()) {
@@ -131,7 +135,7 @@
                     if (processCount == null || processCount.compareTo(BigDecimal.ZERO) == 0) {
                         mdcCommonVo.setValue("0");
                     } else {
-                        mdcCommonVo.setValue(processCount.divide(new BigDecimal(86400).multiply(new BigDecimal(equipmentIdList.size())), 4, RoundingMode.HALF_UP).toString());
+                        mdcCommonVo.setValue(processCount.divide(new BigDecimal("86400").multiply(new BigDecimal(equipmentIdList.size())), 4, RoundingMode.HALF_UP).multiply(new BigDecimal("100")).setScale(2, RoundingMode.HALF_UP).toString());
                     }
                 }
                 result.add(mdcCommonVo);
@@ -163,7 +167,7 @@
                     if (oee == null || oee.compareTo(BigDecimal.ZERO) == 0) {
                         mdcCommonVo.setValue("0");
                     } else {
-                        mdcCommonVo.setValue(oee.divide(new BigDecimal(equipmentIdList.size()), 4, RoundingMode.HALF_UP).toString());
+                        mdcCommonVo.setValue(oee.divide(new BigDecimal(equipmentIdList.size()), 4, RoundingMode.HALF_UP).multiply(new BigDecimal("100")).setScale(2, RoundingMode.HALF_UP).toString());
                     }
                 }
                 result.add(mdcCommonVo);
@@ -206,7 +210,7 @@
                     if (processLong.compareTo(BigDecimal.ZERO) == 0) {
                         mdcCommonUtilizationVo.setValue("0");
                     } else {
-                        mdcCommonUtilizationVo.setValue(processLong.divide(processDay, 4, RoundingMode.HALF_UP).divide(new BigDecimal(equipmentIdList.size()), 4, RoundingMode.HALF_UP).toString());
+                        mdcCommonUtilizationVo.setValue(processLong.divide(processDay.multiply(new BigDecimal("86400")), 4, RoundingMode.HALF_UP).multiply(new BigDecimal("100")).setScale(2, RoundingMode.HALF_UP).toString());
                     }
                 } else {
                     mdcCommonUtilizationVo.setValue("0");
@@ -217,7 +221,7 @@
                 if (oee == null || oee.compareTo(BigDecimal.ZERO) == 0) {
                     mdcCommonOeeVo.setValue("0");
                 } else {
-                    mdcCommonOeeVo.setValue(oee.divide(new BigDecimal(equipmentIdList.size()), 4, RoundingMode.HALF_UP).toString());
+                    mdcCommonOeeVo.setValue(oee.divide(new BigDecimal(equipmentIdList.size()), 4, RoundingMode.HALF_UP).multiply(new BigDecimal("100")).setScale(2, RoundingMode.HALF_UP).toString());
                 }
             }
             utilizationList.add(mdcCommonUtilizationVo);
@@ -228,4 +232,77 @@
         result.put("oeeList", oeeList);
         return result;
     }
+
+    /**
+     * 宸ユ绾у墠涓冨ぉ鍒╃敤鐜囨姌绾垮浘
+     */
+    @Override
+    public Map<String, Object> getEquipmentDayUtilizationStatistics(String userId, String key) {
+        Map<String, Object> result = new HashMap<>();
+        List<String> equipmentIdList = mdcEquipmentService.getEquipmentIdsProduction(userId, key);
+        //鑾峰彇鍓嶄竷澶╂棩鏈熼泦鍚�
+        Date start = DateUtils.toDate(LocalDate.now().plusDays(-7).toString(), DateUtils.STR_DATE);
+        Date end = DateUtils.toDate(LocalDate.now().plusDays(-1).toString(), DateUtils.STR_DATE);
+        List<String> dayBetween = DateUtils.getDatesStringList2(start, end);
+        List<String> dateList = new ArrayList<>();
+        List<EquipmentDayUtilizationVo> dataList = new ArrayList<>();
+        for (String date : dayBetween) {
+            EquipmentDayUtilizationVo equipmentDayUtilizationVo = new EquipmentDayUtilizationVo();
+            String item = date.substring(4);
+            if (item.startsWith("0")) {
+                item = item.substring(1);
+                String sub = item.substring(1);
+                if (sub.startsWith("0")) {
+                    item = item.substring(0, 1) + "鏈�" + sub.substring(1) + "鏃�";
+                } else {
+                    item = item.substring(0, 1) + "鏈�" + item.substring(1) + "鏃�";
+                }
+            } else {
+                String sub = item.substring(2);
+                if (sub.startsWith("0")) {
+                    item = item.substring(0, 2) +  "鏈�" + sub.substring(2) + "鏃�";
+                } else {
+                    item = item.substring(0, 2) +  "鏈�" + item.substring(2) + "鏃�";
+                }
+            }
+            dateList.add(item);
+            equipmentDayUtilizationVo.setDate(item);
+            if (equipmentIdList != null && !equipmentIdList.isEmpty()) {
+                //鑾峰彇鍓嶄竷澶╁埄鐢ㄧ巼鏁版嵁
+                List<MdcEquipmentStatisticalInfo> mdcEquipmentStatisticalInfos = mdcHomeMapper.getEquipmentDayUtilizationStatistics(equipmentIdList, dayBetween);
+                if (mdcEquipmentStatisticalInfos != null && !mdcEquipmentStatisticalInfos.isEmpty()) {
+                    for (MdcEquipmentStatisticalInfo mdcEquipmentStatisticalInfo : mdcEquipmentStatisticalInfos) {
+                        if (mdcEquipmentStatisticalInfo.getTheDate().equals(date)) {
+                            equipmentDayUtilizationVo.setUtilizationRate(mdcEquipmentStatisticalInfo.getProcessLong().divide(new BigDecimal("864"), 4, RoundingMode.HALF_UP).divide(new BigDecimal(equipmentIdList.size()), 4, RoundingMode.HALF_UP).setScale(2, RoundingMode.HALF_UP));
+                            if (BigDecimal.ZERO.compareTo(mdcEquipmentStatisticalInfo.getOpenLong()) == -1) {
+                                equipmentDayUtilizationVo.setOpenRate(mdcEquipmentStatisticalInfo.getProcessLong().divide(mdcEquipmentStatisticalInfo.getOpenLong(), 4, RoundingMode.HALF_UP).multiply(new BigDecimal("100")).setScale(2, RoundingMode.HALF_UP));
+                                equipmentDayUtilizationVo.setStartRate(mdcEquipmentStatisticalInfo.getOpenLong().divide(new BigDecimal("864"), 4, RoundingMode.HALF_UP).divide(new BigDecimal(equipmentIdList.size()), 4, RoundingMode.HALF_UP).setScale(2, RoundingMode.HALF_UP));
+                            }
+                        }
+                    }
+                } else {
+                    dataList.add(equipmentDayUtilizationVo);
+                }
+            } else {
+                dataList.add(equipmentDayUtilizationVo);
+            }
+        }
+        result.put("dateList", dateList);
+        result.put("dataList", dataList);
+        return result;
+    }
+
+    /**
+     * 鏌ヨ璁惧涓婃湀OEE
+     */
+    @Override
+    public List<MdcOverallEquipmentEfficiency> getEquipmentOEEMonthStatistics(String userId, String key) {
+        List<MdcOverallEquipmentEfficiency> result = new ArrayList<>();
+        List<String> equipmentIdList = mdcEquipmentService.getEquipmentIdsProduction(userId, key);
+        if (equipmentIdList != null && !equipmentIdList.isEmpty()) {
+            String validDate = DateUtils.format(DateUtils.toDate(LocalDate.now().plusMonths(-1).toString(), DateUtils.STR_DATE), DateUtils.STR_YEAR_MONTH);
+            result = mdcHomeMapper.getEquipmentOEEMonthStatistics(validDate, equipmentIdList);
+        }
+        return result;
+    }
 }

--
Gitblit v1.9.3