From efc5dece153d8e51f9e18e136a35558c4ae8a894 Mon Sep 17 00:00:00 2001
From: Lius <Lius2225@163.com>
Date: 星期四, 09 五月 2024 14:47:33 +0800
Subject: [PATCH] update

---
 lxzn-module-mdc/src/main/java/org/jeecg/modules/mdc/mapper/EquipmentWorklineMapper.java                           |    7 +
 lxzn-module-mdc/src/main/java/org/jeecg/modules/mdc/mapper/xml/EquipmentWorklineMapper.xml                        |   10 +
 lxzn-module-mdc/src/main/java/org/jeecg/modules/mdc/service/impl/MdcEquipmentStatisticalShiftInfoServiceImpl.java |    2 
 lxzn-module-mdc/src/main/java/org/jeecg/modules/mdc/service/impl/EquipmentWorkLineServiceImpl.java                |   16 +++-
 lxzn-module-mdc/src/main/java/org/jeecg/modules/mdc/mapper/xml/MdcDeviceCalendarMapper.xml                        |   31 +++++++
 lxzn-module-mdc/src/main/java/org/jeecg/modules/mdc/service/IEquipmentWorkLineService.java                        |   15 ++-
 lxzn-module-mdc/src/main/java/org/jeecg/modules/mdc/dto/EquipmentMachingDto.java                                  |    1 
 lxzn-module-mdc/src/main/java/org/jeecg/modules/mdc/job/RunningOvertimeDurationJob.java                           |    2 
 lxzn-module-mdc/src/main/java/org/jeecg/modules/mdc/mapper/MdcDeviceCalendarMapper.java                           |    2 
 lxzn-module-mdc/src/main/java/org/jeecg/modules/mdc/service/impl/MdcDeviceCalendarServiceImpl.java                |   15 +--
 lxzn-module-mdc/src/main/java/org/jeecg/modules/mdc/service/impl/ProcessCountServiceImpl.java                     |  106 ++++++++++++++++----------
 11 files changed, 141 insertions(+), 66 deletions(-)

diff --git a/lxzn-module-mdc/src/main/java/org/jeecg/modules/mdc/dto/EquipmentMachingDto.java b/lxzn-module-mdc/src/main/java/org/jeecg/modules/mdc/dto/EquipmentMachingDto.java
index 2c1b4ef..d4d641c 100644
--- a/lxzn-module-mdc/src/main/java/org/jeecg/modules/mdc/dto/EquipmentMachingDto.java
+++ b/lxzn-module-mdc/src/main/java/org/jeecg/modules/mdc/dto/EquipmentMachingDto.java
@@ -77,6 +77,7 @@
     private String ALRMstate;
     //宸ヤ欢鍚嶇О
     private String ProductName;
+    private String ProductCount;
     //鏈哄簥X杞村潗鏍�
     private String Xmachine;
     //鏈哄簥Y杞村潗鏍�
diff --git a/lxzn-module-mdc/src/main/java/org/jeecg/modules/mdc/job/RunningOvertimeDurationJob.java b/lxzn-module-mdc/src/main/java/org/jeecg/modules/mdc/job/RunningOvertimeDurationJob.java
index 32f01e6..d8e71b2 100644
--- a/lxzn-module-mdc/src/main/java/org/jeecg/modules/mdc/job/RunningOvertimeDurationJob.java
+++ b/lxzn-module-mdc/src/main/java/org/jeecg/modules/mdc/job/RunningOvertimeDurationJob.java
@@ -128,7 +128,7 @@
                 } else {
                     // 娌℃湁鐝閰嶇疆锛岃绠楀叏澶╃殑璁惧鍔犲伐鐘舵��
                     Date startDate = DateUtils.toDate(date + " " + value, DateUtils.STR_DATE_TIME_SMALL);
-                    Date endDate = DateUtils.plusTime(startDate, 1);
+                    Date endDate = DateUtils.plusTime(startDate, 1);    
                     List<MdcEquipmentRunningSection> equipmentRunningSectionList = mdcEquipmentRunningSectionService.selectRunningData(mdcEquipment.getEquipmentId(), startDate, endDate);
                     if (equipmentRunningSectionList != null && !equipmentRunningSectionList.isEmpty()) {
                         // 鏃堕棿淇
diff --git a/lxzn-module-mdc/src/main/java/org/jeecg/modules/mdc/mapper/EquipmentWorklineMapper.java b/lxzn-module-mdc/src/main/java/org/jeecg/modules/mdc/mapper/EquipmentWorklineMapper.java
index 3919d8c..6b3546c 100644
--- a/lxzn-module-mdc/src/main/java/org/jeecg/modules/mdc/mapper/EquipmentWorklineMapper.java
+++ b/lxzn-module-mdc/src/main/java/org/jeecg/modules/mdc/mapper/EquipmentWorklineMapper.java
@@ -39,11 +39,14 @@
     Integer isTableExist(@Param("tableName") String tableName);
 
     @InterceptorIgnore(tenantLine = "1")
-    List<Map<String, Object>> findRunningData(@Param("tableName") String saveTableName, @Param("startTime") Date startTime, @Param("endTime") Date endTime);
+    List<String> findRunningData(@Param("tableName") String saveTableName, @Param("startTime") Date startTime, @Param("endTime") Date endTime);
 
     @InterceptorIgnore(tenantLine = "1")
     List<EquipmentMachingDto> getEquipProgramNum(@Param("tableName") String saveTableName, @Param("startTime") Date startTime, @Param("endTime") Date endTime);
 
     @InterceptorIgnore(tenantLine = "1")
-    List<MdcEquipmentDto> findProductCountStartTime(@Param("tableName") String saveTableName, @Param("productCount") String productCount);
+    MdcEquipmentDto findProductCountStartTime(@Param("tableName") String saveTableName, @Param("productCount") String productCount, @Param("startTime") Date startTime, @Param("endTime") Date endTime);
+
+    @InterceptorIgnore(tenantLine = "1")
+    MdcEquipmentDto findProductCountEndTime(@Param("tableName") String saveTableName, @Param("productCount") String productCount, @Param("startTime") Date startTime, @Param("endTime") Date endTime);
 }
diff --git a/lxzn-module-mdc/src/main/java/org/jeecg/modules/mdc/mapper/MdcDeviceCalendarMapper.java b/lxzn-module-mdc/src/main/java/org/jeecg/modules/mdc/mapper/MdcDeviceCalendarMapper.java
index f98536f..ba443bd 100644
--- a/lxzn-module-mdc/src/main/java/org/jeecg/modules/mdc/mapper/MdcDeviceCalendarMapper.java
+++ b/lxzn-module-mdc/src/main/java/org/jeecg/modules/mdc/mapper/MdcDeviceCalendarMapper.java
@@ -31,4 +31,6 @@
 
     MdcDeviceCalendar getFirstData(@Param("equipmentId") String equipmentId);
 
+    List<MdcDeviceCalendarVo> listByEquipmentAndDates(@Param("equipmentId") String equipmentId, @Param("stringDates") List<String> stringDates);
+
 }
diff --git a/lxzn-module-mdc/src/main/java/org/jeecg/modules/mdc/mapper/xml/EquipmentWorklineMapper.xml b/lxzn-module-mdc/src/main/java/org/jeecg/modules/mdc/mapper/xml/EquipmentWorklineMapper.xml
index 8dd9029..74b4eb2 100644
--- a/lxzn-module-mdc/src/main/java/org/jeecg/modules/mdc/mapper/xml/EquipmentWorklineMapper.xml
+++ b/lxzn-module-mdc/src/main/java/org/jeecg/modules/mdc/mapper/xml/EquipmentWorklineMapper.xml
@@ -6,8 +6,8 @@
         select top 1 [${tableName}].* from [${tableName}] order by CollectTime  desc
     </select>
 
-    <select id="findRunningData" resultType="java.util.Map">
-        select [${tableName}].* from [${tableName}] where ProductCount &lt;&gt; '' AND CollectTime between #{ startTime } AND #{ endTime }  order by CollectTime  asc
+    <select id="findRunningData" resultType="java.lang.String">
+        SELECT ProductCount FROM [${tableName}] WHERE CollectTime BETWEEN #{ startTime } AND #{ endTime } GROUP BY ProductCount ORDER BY ProductCount
     </select>
 
     <select id="getEquipProgramNum" resultType="org.jeecg.modules.mdc.dto.EquipmentMachingDto">
@@ -15,6 +15,10 @@
     </select>
 
     <select id="findProductCountStartTime" resultType="org.jeecg.modules.mdc.dto.MdcEquipmentDto">
-        SELECT TOP 1 [${tableName}].* FROM [${tableName}] WHERE ProductCount = #{ productCount } ORDER BY CollectTime ASC
+        SELECT TOP 1 [${tableName}].* FROM [${tableName}] WHERE ProductCount = #{ productCount } AND CollectTime BETWEEN #{ startTime } AND #{ endTime } ORDER BY CollectTime ASC
+    </select>
+
+    <select id="findProductCountEndTime" resultType="org.jeecg.modules.mdc.dto.MdcEquipmentDto">
+        SELECT TOP 1 [${tableName}].* FROM [${tableName}] WHERE ProductCount = #{ productCount } AND CollectTime BETWEEN #{ startTime } AND #{ endTime } ORDER BY CollectTime DESC
     </select>
 </mapper>
diff --git a/lxzn-module-mdc/src/main/java/org/jeecg/modules/mdc/mapper/xml/MdcDeviceCalendarMapper.xml b/lxzn-module-mdc/src/main/java/org/jeecg/modules/mdc/mapper/xml/MdcDeviceCalendarMapper.xml
index b47450f..77de9af 100644
--- a/lxzn-module-mdc/src/main/java/org/jeecg/modules/mdc/mapper/xml/MdcDeviceCalendarMapper.xml
+++ b/lxzn-module-mdc/src/main/java/org/jeecg/modules/mdc/mapper/xml/MdcDeviceCalendarMapper.xml
@@ -121,4 +121,35 @@
         SELECT TOP 1 * FROM mdc_device_calendar WHERE equipment_id = #{ equipmentId } ORDER BY effective_date ASC
     </select>
 
+    <select id="listByEquipmentAndDates" resultType="org.jeecg.modules.mdc.vo.MdcDeviceCalendarVo">
+        SELECT
+            t1.*,
+            t2.shift_name,
+            t3.shift_sub_name,
+            t3.start_date,
+            t3.end_date,
+            t3.sleep_start_date,
+            t3.sleep_end_date,
+            t3.is_day_span,
+            t4.equipment_name
+        FROM
+            mdc_device_calendar t1
+            LEFT JOIN mdc_shift t2 ON t1.shift_id = t2.id
+            LEFT JOIN mdc_shift_sub t3 ON t1.shift_sub_id = t3.id
+            LEFT JOIN mdc_equipment t4 ON t1.equipment_id = t4.equipment_id
+        <where>
+            <if test="equipmentId != null and equipmentId != ''">
+                AND t4.equipment_id = #{ equipmentId }
+            </if>
+            <if test="stringDates != null and stringDates.size() > 0 ">
+                AND t1.effective_date IN
+                <foreach collection="stringDates" item="stringDate" index="index" open="(" close=")" separator=",">
+                    #{ stringDate }
+                </foreach>
+            </if>
+        </where>
+        ORDER BY
+            t1.effective_date ASC
+    </select>
+
 </mapper>
\ No newline at end of file
diff --git a/lxzn-module-mdc/src/main/java/org/jeecg/modules/mdc/service/IEquipmentWorkLineService.java b/lxzn-module-mdc/src/main/java/org/jeecg/modules/mdc/service/IEquipmentWorkLineService.java
index 15faed1..38d392d 100644
--- a/lxzn-module-mdc/src/main/java/org/jeecg/modules/mdc/service/IEquipmentWorkLineService.java
+++ b/lxzn-module-mdc/src/main/java/org/jeecg/modules/mdc/service/IEquipmentWorkLineService.java
@@ -1,11 +1,10 @@
 package org.jeecg.modules.mdc.service;
 
-import org.jeecg.modules.mdc.dto.MdcEquipmentDto;
 import org.jeecg.modules.mdc.dto.EquipmentMachingDto;
+import org.jeecg.modules.mdc.dto.MdcEquipmentDto;
 
 import java.util.Date;
 import java.util.List;
-import java.util.Map;
 
 /**
  * @author: LiuS
@@ -30,7 +29,7 @@
     /**
      * 鏌ヨ涓�娈垫椂闂村唴鐨勬暟鎹�
      */
-    List<Map<String, Object>> findRunningData(String tableName, Date startTime, Date endTime);
+    List<String> findRunningData(String tableName, Date startTime, Date endTime);
 
     /**
      * 鏌ユ壘娉曞叞鍏嬭澶囪繍琛岀殑绋嬪簭鍙�
@@ -48,5 +47,13 @@
      * @param productCount
      * @return
      */
-    MdcEquipmentDto findProductCountStartTime(String saveTableName, String productCount);
+    MdcEquipmentDto findProductCountStartTime(String saveTableName, String productCount, Date startTime, Date endTime);
+
+    /**
+     * 鏌ヨ娉曟媺鍏嬭澶囧姞宸ュ伐浠剁粨鏉熸椂闂�
+     * @param saveTableName
+     * @param productCount
+     * @return
+     */
+    MdcEquipmentDto findProductCountEndTime(String saveTableName, String productCount, Date startTime, Date endTime);
 }
diff --git a/lxzn-module-mdc/src/main/java/org/jeecg/modules/mdc/service/impl/EquipmentWorkLineServiceImpl.java b/lxzn-module-mdc/src/main/java/org/jeecg/modules/mdc/service/impl/EquipmentWorkLineServiceImpl.java
index da4d309..09ecb8d 100644
--- a/lxzn-module-mdc/src/main/java/org/jeecg/modules/mdc/service/impl/EquipmentWorkLineServiceImpl.java
+++ b/lxzn-module-mdc/src/main/java/org/jeecg/modules/mdc/service/impl/EquipmentWorkLineServiceImpl.java
@@ -46,7 +46,7 @@
     }
 
     @Override
-    public List<Map<String, Object>> findRunningData(String tableName, Date startTime, Date endTime) {
+    public List<String> findRunningData(String tableName, Date startTime, Date endTime) {
         return equipmentWorkLineMapper.findRunningData(tableName, startTime, endTime);
     }
 
@@ -56,10 +56,18 @@
     }
 
     @Override
-    public MdcEquipmentDto findProductCountStartTime(String saveTableName, String productCount) {
+    public MdcEquipmentDto findProductCountStartTime(String saveTableName, String productCount, Date startTime, Date endTime) {
         try {
-            List<MdcEquipmentDto> macingDataList = equipmentWorkLineMapper.findProductCountStartTime(saveTableName, productCount);
-            return !macingDataList.isEmpty() ? macingDataList.get(0) : null;
+            return equipmentWorkLineMapper.findProductCountStartTime(saveTableName, productCount, startTime, endTime);
+        } catch (Exception e) {
+            return null;
+        }
+    }
+
+    @Override
+    public MdcEquipmentDto findProductCountEndTime(String saveTableName, String productCount, Date startTime, Date endTime) {
+        try {
+            return equipmentWorkLineMapper.findProductCountEndTime(saveTableName, productCount, startTime, endTime);
         } catch (Exception e) {
             return null;
         }
diff --git a/lxzn-module-mdc/src/main/java/org/jeecg/modules/mdc/service/impl/MdcDeviceCalendarServiceImpl.java b/lxzn-module-mdc/src/main/java/org/jeecg/modules/mdc/service/impl/MdcDeviceCalendarServiceImpl.java
index 2b3ae6f..8612950 100644
--- a/lxzn-module-mdc/src/main/java/org/jeecg/modules/mdc/service/impl/MdcDeviceCalendarServiceImpl.java
+++ b/lxzn-module-mdc/src/main/java/org/jeecg/modules/mdc/service/impl/MdcDeviceCalendarServiceImpl.java
@@ -114,19 +114,16 @@
      */
     @Override
     public List<MdcDeviceCalendarVo> listByEquipmentAndDate(String equipmentId, List<String> stringDates) {
-        List<MdcDeviceCalendarVo> result = new ArrayList<>();
         try {
-            for (String stringDate : stringDates) {
-                List<MdcDeviceCalendarVo> mdcDeviceCalendarVos = this.baseMapper.listByEquipmentAndDate(equipmentId, stringDate);
-                if (mdcDeviceCalendarVos != null && !mdcDeviceCalendarVos.isEmpty()) {
-                    result.addAll(mdcDeviceCalendarVos);
-                }
+            List<MdcDeviceCalendarVo> mdcDeviceCalendarVos = this.baseMapper.listByEquipmentAndDates(equipmentId, stringDates);
+            if (mdcDeviceCalendarVos != null && !mdcDeviceCalendarVos.isEmpty()) {
+                return mdcDeviceCalendarVos;
+            } else {
+                return null;
             }
         } catch (Exception e) {
-            e.printStackTrace();
+            return null;
         }
-
-        return result;
     }
 
     /**
diff --git a/lxzn-module-mdc/src/main/java/org/jeecg/modules/mdc/service/impl/MdcEquipmentStatisticalShiftInfoServiceImpl.java b/lxzn-module-mdc/src/main/java/org/jeecg/modules/mdc/service/impl/MdcEquipmentStatisticalShiftInfoServiceImpl.java
index 0b5c5b2..938b7a9 100644
--- a/lxzn-module-mdc/src/main/java/org/jeecg/modules/mdc/service/impl/MdcEquipmentStatisticalShiftInfoServiceImpl.java
+++ b/lxzn-module-mdc/src/main/java/org/jeecg/modules/mdc/service/impl/MdcEquipmentStatisticalShiftInfoServiceImpl.java
@@ -704,7 +704,7 @@
      */
     private Map<String, List<MdcDeviceCalendarVo>> mdcDeviceCalendarMap(String equipmentid, List<String> stringDates) {
         List<MdcDeviceCalendarVo> mdcDeviceCalendarVos = mdcDeviceCalendarService.listByEquipmentAndDate(equipmentid, stringDates);
-        if (mdcDeviceCalendarVos.isEmpty()) {
+        if (mdcDeviceCalendarVos == null || mdcDeviceCalendarVos.isEmpty()) {
             return null;
         }
         Map<String, List<MdcDeviceCalendarVo>> map = new HashMap<>();
diff --git a/lxzn-module-mdc/src/main/java/org/jeecg/modules/mdc/service/impl/ProcessCountServiceImpl.java b/lxzn-module-mdc/src/main/java/org/jeecg/modules/mdc/service/impl/ProcessCountServiceImpl.java
index 16dd654..b948630 100644
--- a/lxzn-module-mdc/src/main/java/org/jeecg/modules/mdc/service/impl/ProcessCountServiceImpl.java
+++ b/lxzn-module-mdc/src/main/java/org/jeecg/modules/mdc/service/impl/ProcessCountServiceImpl.java
@@ -1,10 +1,10 @@
 package org.jeecg.modules.mdc.service.impl;
 
+import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
 import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
 import org.apache.commons.lang.StringUtils;
 import org.jeecg.modules.mdc.dto.MdcEquipmentDto;
 import org.jeecg.modules.mdc.dto.MdcProcessCountDto;
-import org.jeecg.modules.mdc.entity.MdcDeviceCalendar;
 import org.jeecg.modules.mdc.entity.MdcEquipment;
 import org.jeecg.modules.mdc.entity.MdcEquipmentRunningSection;
 import org.jeecg.modules.mdc.entity.MdcProcessCount;
@@ -21,6 +21,7 @@
 import javax.annotation.Resource;
 import javax.servlet.http.HttpServletRequest;
 import java.math.BigDecimal;
+import java.time.LocalDate;
 import java.util.*;
 
 /**
@@ -53,14 +54,12 @@
     public void runningProcessCount() {
         // 鑾峰彇鎵�鏈夎澶�
         //List<MdcEquipment> mdcEquipmentList = mdcEquipmentService.list(new LambdaQueryWrapper<MdcEquipment>().eq(MdcEquipment::getEquipmentId, "2140198"));
-        List<MdcEquipment> mdcEquipmentList = mdcEquipmentService.list();
+        List<MdcEquipment> mdcEquipmentList = mdcEquipmentService.list(new LambdaQueryWrapper<MdcEquipment>().eq(MdcEquipment::getDriveType, "FANUC"));
         List<MdcProcessCount> result = new ArrayList<>();
         for (MdcEquipment mdcEquipment : mdcEquipmentList) {
-            if ("FANUC".equals(mdcEquipment.getDriveType())) {
-                List<MdcProcessCount> mdcProcessCountList = processCount(mdcEquipment);
-                if (mdcProcessCountList != null && !mdcProcessCountList.isEmpty()) {
-                    result.addAll(mdcProcessCountList);
-                }
+            List<MdcProcessCount> mdcProcessCountList = processCount(mdcEquipment);
+            if (mdcProcessCountList != null && !mdcProcessCountList.isEmpty()) {
+                result.addAll(mdcProcessCountList);
             }
         }
         if (!result.isEmpty()) {
@@ -123,7 +122,6 @@
         return result == null ? BigDecimal.ZERO : result;
     }
 
-//    @Transactional(readOnly = true)
     List<MdcProcessCount> processCount(MdcEquipment mdcEquipment) {
         Date initDate = null;
         //鍙栨渶鍚庣殑缁熻鏁版嵁
@@ -132,11 +130,9 @@
             initDate = DateUtils.toDate(lastData.getTheDate(), DateUtils.STRDATE);
             initDate = DateUtils.plusTime(initDate, 1);
         } else {
-            //鍒濇鍙栧�� 鍙栨渶鏃╂椂闂�
-            MdcDeviceCalendar mdcDeviceCalendar = mdcDeviceCalendarService.getFirstData(mdcEquipment.getEquipmentId());
-            if (mdcDeviceCalendar != null) {
-                initDate = DateUtils.toDate(mdcDeviceCalendar.getEffectiveDate(), DateUtils.STRDATE);
-            }
+            //鍒濇鍙栧�� 鍙栧綋鍓嶆椂闂村線鍓嶆帹涓�涓湀鏃堕棿
+//            MdcDeviceCalendar mdcDeviceCalendar = mdcDeviceCalendarService.getFirstData(mdcEquipment.getEquipmentId());
+            initDate = DateUtils.toDate(LocalDate.now().plusMonths(-1).toString(), DateUtils.STR_DATE);
         }
         if (initDate == null) {
             return null;
@@ -153,7 +149,7 @@
         // 鑾峰彇璁惧鐝淇℃伅
         Map<String, List<MdcDeviceCalendarVo>> listMap = this.mdcDeviceCalendarMap(mdcEquipment.getEquipmentId(), stringDates);
         if (listMap == null || listMap.isEmpty()) {
-            listMap = new HashMap<>();
+            return null;
         }
         List<MdcProcessCount> resultList = new ArrayList<>();
         for (String stringDate : stringDates) {
@@ -162,11 +158,17 @@
                 // 澶勭悊鐝埗鐝鏃堕棿
                 MdcDateVo mdcDateVo = this.handleDeviceCalendar(mdcDeviceCalendarVos);
                 // 鏌ユ壘璁惧鍗曡〃杩愯鏁版嵁
-                List<Map<String, Object>> mdcEquipmentDtoList = equipmentWorkLineService.findRunningData(mdcEquipment.getSaveTableName(), mdcDateVo.getStartTime(), mdcDateVo.getEndTime());
-                if (mdcEquipmentDtoList == null || mdcEquipmentDtoList.isEmpty()) {
+                List<String> productCountList = new ArrayList<>();
+                try {
+                    productCountList = equipmentWorkLineService.findRunningData(mdcEquipment.getSaveTableName(), mdcDateVo.getStartTime(), mdcDateVo.getEndTime());
+                } catch (Exception e) {
                     continue;
                 }
-                Map<String, Object> firstMap = new HashMap<>(mdcEquipmentDtoList.get(0));
+
+                if (productCountList == null || productCountList.isEmpty()) {
+                    continue;
+                }
+/*                Map<String, Object> firstMap = new HashMap<>(mdcEquipmentDtoList.get(0));
                 Map<String, Object> mdcEquipmentDtoMap = mdcEquipmentDtoList.get(0);
                 for (int i = 1; i < mdcEquipmentDtoList.size(); i++) {
                     String productCount1 = mdcEquipmentDtoList.get(i).get("ProductCount").toString();
@@ -180,6 +182,9 @@
                             //鏍规嵁productCount鍊兼煡璇㈠紑濮嬫椂闂�
                             String productCount = mdcEquipmentDtoList.get(i - 1).get("ProductCount").toString();
                             MdcEquipmentDto mdcEquipmentDto = equipmentWorkLineService.findProductCountStartTime(mdcEquipment.getSaveTableName(), productCount);
+                            if (mdcEquipmentDto == null) {
+                                continue;
+                            }
                             start = mdcEquipmentDto.getCollectTime();
                             //绋嬪簭鍙�
                             sequenceNumber = mdcEquipmentDtoList.get(i - 1).get("Sequencenumber").toString();
@@ -190,36 +195,53 @@
                         }
                         mdcEquipmentDtoMap.put("ProductCount", mdcEquipmentDtoList.get(i).get("ProductCount").toString());
                         mdcEquipmentDtoMap.put("CollectTime", mdcEquipmentDtoList.get(i).get("CollectTime").toString());
-
-                        List<MdcEquipmentRunningSection> equipmentRunningSectionList = mdcEquipmentRunningSectionService.selectRunningData(mdcEquipment.getEquipmentId(), start, end);
-                        if (equipmentRunningSectionList != null && !equipmentRunningSectionList.isEmpty()) {
-                            //鏃堕棿淇
-                            if (equipmentRunningSectionList.get(0).getStartTime().before(start)) {
-                                equipmentRunningSectionList.get(0).setStartTime(start);
+                    }
+                }*/
+                for (String productCount : productCountList) {
+                    MdcEquipmentDto mdcEquipmentDtoFirst = equipmentWorkLineService.findProductCountStartTime(mdcEquipment.getSaveTableName(), productCount, mdcDateVo.getStartTime(), mdcDateVo.getEndTime());
+                    if (mdcEquipmentDtoFirst == null) {
+                        continue;
+                    }
+                    Date start = mdcEquipmentDtoFirst.getCollectTime();
+                    MdcEquipmentDto mdcEquipmentDtoLast = equipmentWorkLineService.findProductCountEndTime(mdcEquipment.getSaveTableName(), productCount, mdcDateVo.getStartTime(), mdcDateVo.getEndTime());
+                    if (mdcEquipmentDtoLast == null) {
+                        continue;
+                    }
+                    Date end = mdcEquipmentDtoLast.getCollectTime();
+                    List<MdcEquipmentRunningSection> equipmentRunningSectionList = mdcEquipmentRunningSectionService.selectRunningData(mdcEquipment.getEquipmentId(), start, end);
+                    if (equipmentRunningSectionList != null && !equipmentRunningSectionList.isEmpty()) {
+                        //鏃堕棿淇
+                        if (equipmentRunningSectionList.get(0).getStartTime().before(start)) {
+                            equipmentRunningSectionList.get(0).setStartTime(start);
+                        }
+                        if (equipmentRunningSectionList.size() > 1) {
+                            if (equipmentRunningSectionList.get(equipmentRunningSectionList.size() - 1).getEndTime().after(end)) {
+                                equipmentRunningSectionList.get(equipmentRunningSectionList.size() - 1).setEndTime(end);
                             }
-                            if (equipmentRunningSectionList.size() > 1) {
-                                if (equipmentRunningSectionList.get(equipmentRunningSectionList.size() - 1).getEndTime().after(end)) {
-                                    equipmentRunningSectionList.get(equipmentRunningSectionList.size() - 1).setEndTime(end);
-                                }
+                        } else {
+                            if (equipmentRunningSectionList.get(0).getEndTime().after(end)) {
+                                equipmentRunningSectionList.get(0).setEndTime(end);
+                            }
+                        }
+                        //璁$畻鍔犲伐鏃堕暱
+                        long duration = this.handleProcessDuration(equipmentRunningSectionList);
+                        if (duration != 0 && duration < 100000) {
+                            MdcProcessCount mdcProcessCount = new MdcProcessCount();
+                            mdcProcessCount.setEquipmentId(mdcEquipment.getEquipmentId());
+                            mdcProcessCount.setEquipmentName(mdcEquipment.getEquipmentName());
+                            if (StringUtils.isBlank(mdcEquipmentDtoFirst.getSequencenumber())) {
+                                mdcProcessCount.setSequenceNumber(mdcEquipmentDtoLast.getSequencenumber());
                             } else {
-                                if (equipmentRunningSectionList.get(0).getEndTime().after(end)) {
-                                    equipmentRunningSectionList.get(0).setEndTime(end);
-                                }
+                                mdcProcessCount.setSequenceNumber(mdcEquipmentDtoFirst.getSequencenumber());
                             }
-                            //璁$畻鍔犲伐鏃堕暱
-                            long duration = this.handleProcessDuration(equipmentRunningSectionList);
-                            if (duration != 0 && duration < 100000) {
-                                MdcProcessCount mdcProcessCount = new MdcProcessCount();
-                                mdcProcessCount.setEquipmentId(mdcEquipment.getEquipmentId());
-                                mdcProcessCount.setEquipmentName(mdcEquipment.getEquipmentName());
-                                mdcProcessCount.setSequenceNumber(sequenceNumber);
-                                mdcProcessCount.setDuration(duration);
-                                mdcProcessCount.setTheDate(stringDate);
-                                resultList.add(mdcProcessCount);
-                            }
+                            mdcProcessCount.setDuration(duration);
+                            mdcProcessCount.setTheDate(stringDate);
+                            resultList.add(mdcProcessCount);
                         }
                     }
                 }
+
+
             }
         }
         return resultList;
@@ -272,7 +294,7 @@
 
     private Map<String, List<MdcDeviceCalendarVo>> mdcDeviceCalendarMap(String equipmentId, List<String> stringDates) {
         List<MdcDeviceCalendarVo> mdcDeviceCalendarVos = mdcDeviceCalendarService.listByEquipmentAndDate(equipmentId, stringDates);
-        if (mdcDeviceCalendarVos.isEmpty()) {
+        if (mdcDeviceCalendarVos == null || mdcDeviceCalendarVos.isEmpty()) {
             return null;
         }
         Map<String, List<MdcDeviceCalendarVo>> map = new HashMap<>();

--
Gitblit v1.9.3