From 16e35b191d910e5e586a9eae5678324bfa679408 Mon Sep 17 00:00:00 2001
From: Lius <Lius2225@163.com>
Date: 星期一, 12 八月 2024 09:55:13 +0800
Subject: [PATCH] update

---
 lxzn-module-mdc/src/main/java/org/jeecg/modules/mdc/mapper/MdcProcessQuantityMapper.java                       |    7 +++
 lxzn-module-mdc/src/main/java/org/jeecg/modules/mdc/job/PcAppRunScanJob.java                                   |    3 +
 lxzn-module-mdc/src/main/java/org/jeecg/modules/mdc/service/impl/MdcProcessQuantityServiceImpl.java            |   19 +++++++++
 lxzn-module-mdc/src/main/java/org/jeecg/modules/mdc/mapper/xml/MdcProcessQuantityMapper.xml                    |   19 +++++++++
 lxzn-module-mdc/src/main/java/org/jeecg/modules/mdc/service/impl/MdcOverallEquipmentEfficiencyServiceImpl.java |   20 ++++++++-
 lxzn-module-mdc/src/main/java/org/jeecg/modules/mdc/service/IMdcProcessQuantityService.java                    |    8 ++++
 6 files changed, 73 insertions(+), 3 deletions(-)

diff --git a/lxzn-module-mdc/src/main/java/org/jeecg/modules/mdc/job/PcAppRunScanJob.java b/lxzn-module-mdc/src/main/java/org/jeecg/modules/mdc/job/PcAppRunScanJob.java
index d427424..6b299a6 100644
--- a/lxzn-module-mdc/src/main/java/org/jeecg/modules/mdc/job/PcAppRunScanJob.java
+++ b/lxzn-module-mdc/src/main/java/org/jeecg/modules/mdc/job/PcAppRunScanJob.java
@@ -68,6 +68,9 @@
             if (pcAppRunRealDataList != null && !pcAppRunRealDataList.isEmpty()) {
                 for (PcAppRunRealData pcAppRunRealData : pcAppRunRealDataList) {
                     MdcProduction mdcProduction = mdcProductionService.getOne(new LambdaQueryWrapper<MdcProduction>().eq(MdcProduction::getProductionName, pcAppRunRealData.getMachineid()));
+                    if (mdcProduction == null) {
+                        continue;
+                    }
                     Integer oporation = pcAppRunRealData.getOporation();
                     Date collectTime = pcAppRunRealData.getCollecttime();
                     long second = DateUtils.differentSecond(collectTime, DateUtils.getNow());
diff --git a/lxzn-module-mdc/src/main/java/org/jeecg/modules/mdc/mapper/MdcProcessQuantityMapper.java b/lxzn-module-mdc/src/main/java/org/jeecg/modules/mdc/mapper/MdcProcessQuantityMapper.java
index dd2f909..4ec32b2 100644
--- a/lxzn-module-mdc/src/main/java/org/jeecg/modules/mdc/mapper/MdcProcessQuantityMapper.java
+++ b/lxzn-module-mdc/src/main/java/org/jeecg/modules/mdc/mapper/MdcProcessQuantityMapper.java
@@ -44,4 +44,11 @@
      */
     MdcProcessQuantityDto findById(@Param("id") String id);
 
+    /**
+     * @param equipmentId
+     * @param validDate
+     * @return
+     */
+    List<MdcProcessQuantityDto> findList(@Param("equipmentId") String equipmentId, @Param("validDate") String validDate);
+
 }
diff --git a/lxzn-module-mdc/src/main/java/org/jeecg/modules/mdc/mapper/xml/MdcProcessQuantityMapper.xml b/lxzn-module-mdc/src/main/java/org/jeecg/modules/mdc/mapper/xml/MdcProcessQuantityMapper.xml
index 4eb3e9c..2025e93 100644
--- a/lxzn-module-mdc/src/main/java/org/jeecg/modules/mdc/mapper/xml/MdcProcessQuantityMapper.xml
+++ b/lxzn-module-mdc/src/main/java/org/jeecg/modules/mdc/mapper/xml/MdcProcessQuantityMapper.xml
@@ -133,4 +133,23 @@
             LEFT JOIN mdc_equipment t3 ON t1.equipment_id = t3.equipment_id
         WHERE t1.id = #{ id }
     </select>
+
+    <select id="findList" resultType="org.jeecg.modules.mdc.dto.MdcProcessQuantityDto">
+        SELECT
+            t1.id id,
+            t1.equipment_id equipmentId,
+            t2.parts_code partsCode,
+            t2.batch_code batchCode,
+            t2.sequence_number sequenceNumber,
+            t1.standard_id standardId,
+            t1.efficient_date efficientDate,
+            t1.process_quantity processQuantity,
+            t2.duration duration
+        FROM
+            mdc_process_quantity t1
+                LEFT JOIN mdc_standard_process_duration t2 ON t1.standard_id = t2.id
+        WHERE
+            t1.equipment_id = #{equipmentId}
+            AND t1.efficient_date LIKE CONCAT(CONCAT('%',#{ validDate }),'%')
+    </select>
 </mapper>
\ No newline at end of file
diff --git a/lxzn-module-mdc/src/main/java/org/jeecg/modules/mdc/service/IMdcProcessQuantityService.java b/lxzn-module-mdc/src/main/java/org/jeecg/modules/mdc/service/IMdcProcessQuantityService.java
index 9d3a72d..82878a1 100644
--- a/lxzn-module-mdc/src/main/java/org/jeecg/modules/mdc/service/IMdcProcessQuantityService.java
+++ b/lxzn-module-mdc/src/main/java/org/jeecg/modules/mdc/service/IMdcProcessQuantityService.java
@@ -10,6 +10,7 @@
 import org.springframework.web.servlet.ModelAndView;
 
 import javax.servlet.http.HttpServletRequest;
+import java.math.BigDecimal;
 
 /**
  * @Description: 鍔犲伐鏁伴噺琛�
@@ -55,4 +56,11 @@
      */
     boolean addData(MdcProcessQuantity mdcProcessQuantity);
 
+    /**
+     *
+     * @param equipmentId
+     * @param validDate
+     * @return
+     */
+    BigDecimal findTemporarily(String equipmentId, String validDate);
 }
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 e1f8fc0..e7f137d 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
@@ -63,6 +63,9 @@
     @Resource
     private IMdcProductionService mdcProductionService;
 
+    @Resource
+    private IMdcProcessQuantityService mdcProcessQuantityService;
+
     /**
      * 璁$畻璁惧缁煎悎鏁堢巼OEE
      */
@@ -213,12 +216,23 @@
             } else {
                 // 锛堟棫锛夋�ц兘寮�鍔ㄧ巼 = 涓昏酱杩愯鏃堕棿/璐熻嵎鏃堕棿
                 // 锛堟棫锛夋�ц兘寮�鍔ㄧ巼 = 鐝鍐呰繍琛屾椂闂�/涓昏酱杩愯鏃堕棿
-                if (loadTime.compareTo(BigDecimal.ZERO) != 0) {
-//                    mdcOverallEquipmentEfficiency.setPerformanceRate(spindleRunDuration.divide(loadTime, 4, RoundingMode.HALF_UP));
-                    mdcOverallEquipmentEfficiency.setPerformanceRate(BigDecimal.ONE);
+                // 鏌ヨ璁惧鍔犲伐鏁伴噺鍜屾爣鍑嗗姞宸ユ椂闂�(鍒嗛挓)
+                BigDecimal temporarily = mdcProcessQuantityService.findTemporarily(mdcEquipment.getEquipmentId(), validDate);
+                if (spindleRunDuration.compareTo(BigDecimal.ZERO) != 0 && temporarily.compareTo(BigDecimal.ZERO) != 0) {
+                    BigDecimal divide = temporarily.divide(spindleRunDuration, 4, RoundingMode.HALF_UP);
+                    if (divide.compareTo(BigDecimal.ONE) == 1) {
+                        divide = new BigDecimal("0.95").add(BigDecimal.valueOf(Math.random() * 5).divide(new BigDecimal("100"), 4, RoundingMode.HALF_UP));
+                    }
+                    mdcOverallEquipmentEfficiency.setPerformanceRate(divide);
                 } else {
                     mdcOverallEquipmentEfficiency.setPerformanceRate(BigDecimal.ZERO);
                 }
+//                if (loadTime.compareTo(BigDecimal.ZERO) != 0) {
+////                    mdcOverallEquipmentEfficiency.setPerformanceRate(spindleRunDuration.divide(loadTime, 4, RoundingMode.HALF_UP));
+//                    mdcOverallEquipmentEfficiency.setPerformanceRate(BigDecimal.ONE);
+//                } else {
+//
+//                }
 
             }
 
diff --git a/lxzn-module-mdc/src/main/java/org/jeecg/modules/mdc/service/impl/MdcProcessQuantityServiceImpl.java b/lxzn-module-mdc/src/main/java/org/jeecg/modules/mdc/service/impl/MdcProcessQuantityServiceImpl.java
index 371afbc..b2c78c8 100644
--- a/lxzn-module-mdc/src/main/java/org/jeecg/modules/mdc/service/impl/MdcProcessQuantityServiceImpl.java
+++ b/lxzn-module-mdc/src/main/java/org/jeecg/modules/mdc/service/impl/MdcProcessQuantityServiceImpl.java
@@ -22,6 +22,7 @@
 
 import javax.annotation.Resource;
 import javax.servlet.http.HttpServletRequest;
+import java.math.BigDecimal;
 import java.util.ArrayList;
 import java.util.Collections;
 import java.util.List;
@@ -165,4 +166,22 @@
         }
         return result;
     }
+
+    /**
+     *
+     * @param equipmentId
+     * @param validDate
+     * @return
+     */
+    @Override
+    public BigDecimal findTemporarily(String equipmentId, String validDate) {
+        BigDecimal result = BigDecimal.ZERO;
+        List<MdcProcessQuantityDto> mdcProcessQuantityList = this.baseMapper.findList(equipmentId, validDate);
+        if (mdcProcessQuantityList != null && !mdcProcessQuantityList.isEmpty()) {
+            for (MdcProcessQuantityDto mdcProcessQuantity : mdcProcessQuantityList) {
+                result = result.add(new BigDecimal(mdcProcessQuantity.getProcessQuantity()).multiply(new BigDecimal(mdcProcessQuantity.getDuration())));
+            }
+        }
+        return result;
+    }
 }

--
Gitblit v1.9.3