From c8673cbde4538b109e43042dc93cf33c46dca37e Mon Sep 17 00:00:00 2001
From: Lius <Lius2225@163.com>
Date: 星期二, 31 十二月 2024 10:56:57 +0800
Subject: [PATCH] 每日排产计划修改

---
 lxzn-module-mdc/src/main/java/org/jeecg/modules/mdc/service/impl/MdcOeeInfoServiceImpl.java |   24 ++++++++++++++----------
 1 files changed, 14 insertions(+), 10 deletions(-)

diff --git a/lxzn-module-mdc/src/main/java/org/jeecg/modules/mdc/service/impl/MdcOeeInfoServiceImpl.java b/lxzn-module-mdc/src/main/java/org/jeecg/modules/mdc/service/impl/MdcOeeInfoServiceImpl.java
index d9ef6a6..8408f2a 100644
--- a/lxzn-module-mdc/src/main/java/org/jeecg/modules/mdc/service/impl/MdcOeeInfoServiceImpl.java
+++ b/lxzn-module-mdc/src/main/java/org/jeecg/modules/mdc/service/impl/MdcOeeInfoServiceImpl.java
@@ -105,6 +105,9 @@
             }
             queryWrapper.orderByAsc(MdcEquipment::getEquipmentName);
             List<MdcEquipment> equipmentList = mdcEquipmentService.list(queryWrapper);
+
+            vo.setStartTime(DateUtils.format(DateUtils.toDate(vo.getStartTime(), DateUtils.STRDATE), DateUtils.STR_DATE));
+            vo.setEndTime(DateUtils.format(DateUtils.toDate(vo.getEndTime(), DateUtils.STRDATE), DateUtils.STR_DATE));
             //鏌ヨoee鏁版嵁
             List<MdcOeeInfo> oeeList = this.baseMapper.oeeList(vo);
             //鏁版嵁澶勭悊
@@ -134,7 +137,7 @@
                     BigDecimal oeeRate = BigDecimal.ZERO;
                     if (!mdcOeeInfoList.isEmpty()) {
                         BigDecimal count = mdcOeeInfoList.stream().map(MdcOeeInfo::getOeeRate).reduce(BigDecimal.ZERO, BigDecimal::add);
-                        oeeRate = count.divide(new BigDecimal(mdcOeeInfoList.size()), 2, RoundingMode.HALF_UP);
+                        oeeRate = count.divide(new BigDecimal(mdcOeeInfoList.size()), 4, RoundingMode.HALF_UP);
                         mdcOeeResultDto.setOeeRate(oeeRate);
                     }
                     long rate = oeeRate.multiply(new BigDecimal("100")).longValue();
@@ -190,8 +193,8 @@
                     .eq(MdcProductDayschedule::getEquipmentId, equipment.getEquipmentid()));
             if (productDayScheduleList != null && !productDayScheduleList.isEmpty()) {
                 MdcProductDayschedule mdcProductDayschedule;
-                MdcOeeInfo mdcOeeInfo = new MdcOeeInfo();
                 for (MdcShiftSub mdcShiftSub : mdcShiftSubList) {
+                    MdcOeeInfo mdcOeeInfo = new MdcOeeInfo();
                     String id = mdcShiftSub.getId();
                     if (productDayScheduleList.stream().anyMatch(productDayschedule -> productDayschedule.getOrderId().substring(8, 10).equals(id))) {
                         mdcOeeInfo.setEquipmentId(equipment.getEquipmentid());
@@ -204,7 +207,7 @@
                         //鑾峰彇璁惧杩愯鏁版嵁
                         MdcEquipmentStatisticalShiftInfo mdcEquipmentStatisticalShiftInfo = mdcEquipmentStatisticalShiftInfoService.getOne(new LambdaQueryWrapper<MdcEquipmentStatisticalShiftInfo>()
                                 .eq(MdcEquipmentStatisticalShiftInfo::getEquipmentId, equipment.getEquipmentid())
-                                .eq(MdcEquipmentStatisticalShiftInfo::getTheDate, validDate)
+                                .eq(MdcEquipmentStatisticalShiftInfo::getTheDate, validDate.replaceAll("-", ""))
                                 .eq(MdcEquipmentStatisticalShiftInfo::getShiftSubId, id));
                         if (mdcEquipmentStatisticalShiftInfo == null) {
                             continue;
@@ -214,7 +217,7 @@
                         mdcOeeInfo.setOpenLong(mdcEquipmentStatisticalShiftInfo.getOpenLong());
                         mdcOeeInfo.setCloseLong(mdcEquipmentStatisticalShiftInfo.getCloseLong());
                         //鑾峰彇璁惧鐢熶骇璁″垝
-                        mdcProductDayschedule = productDayScheduleList.stream().filter(productDayschedule -> productDayschedule.getOrderId().substring(8, 10).equals(id)).findAny().orElse(null);
+                        mdcProductDayschedule = productDayScheduleList.stream().filter(productDayschedule -> productDayschedule.getOrderId().substring(productDayschedule.getOrderId().length() - 5, productDayschedule.getOrderId().length() - 3).equals(id)).findAny().orElse(null);
                         if (mdcProductDayschedule == null) {
                             continue;
                         }
@@ -241,11 +244,13 @@
                             continue;
                         }
                         mdcOeeInfo.setScheduleNum(mdcComponentInfo.getScheduleNum());
-
-                        BigDecimal oeeRate = mdcOeeInfo.getProcessLong().multiply(new BigDecimal(mdcOeeInfo.getPlanNum())).multiply(new BigDecimal(mdcOeeInfo.getQualityNum()))
-                                        .divide(mdcEquipmentStatisticalShiftInfo.getTotalLong(), 2, RoundingMode.HALF_UP)
-                                        .divide(new BigDecimal(mdcOeeInfo.getScheduleNum()), 2, RoundingMode.HALF_UP)
-                                        .divide(new BigDecimal(mdcOeeInfo.getCompleteNum()), 2, RoundingMode.HALF_UP);
+                        BigDecimal oeeRate = BigDecimal.ZERO;
+                        if (!mdcOeeInfo.getCompleteNum().equals(0)) {
+                            oeeRate = mdcOeeInfo.getProcessLong().multiply(new BigDecimal(mdcOeeInfo.getPlanNum())).multiply(new BigDecimal(mdcOeeInfo.getQualityNum()))
+                                    .divide(mdcEquipmentStatisticalShiftInfo.getTotalLong(), 4, RoundingMode.HALF_UP)
+                                    .divide(new BigDecimal(mdcOeeInfo.getScheduleNum()), 4, RoundingMode.HALF_UP)
+                                    .divide(new BigDecimal(mdcOeeInfo.getCompleteNum()), 4, RoundingMode.HALF_UP);
+                        }
                         mdcOeeInfo.setOeeRate(oeeRate);
                         result.add(mdcOeeInfo);
                     }
@@ -256,5 +261,4 @@
             this.saveBatch(result);
         }
     }
-
 }

--
Gitblit v1.9.3