From efdecc7019261f8fdc875505281f54ef7a3bfbce Mon Sep 17 00:00:00 2001
From: yangbin <yangbin@qq.com>
Date: 星期三, 19 二月 2025 12:30:09 +0800
Subject: [PATCH] 大屏看板

---
 lxzn-module-mdc/src/main/java/org/jeecg/modules/mdc/subcontrol/vo/MdcEquipmentAndTypeVo.java                      |   14 +
 lxzn-module-mdc/src/main/java/org/jeecg/modules/mdc/service/IEquipmentStatisticalInfoService.java                 |   18 +
 lxzn-module-mdc/src/main/java/org/jeecg/modules/mdc/subcontrol/vo/MdcEquipmentOpVo.java                           |   17 +
 lxzn-boot-base-core/src/main/java/org/jeecg/config/shiro/ShiroConfig.java                                         |    3 
 lxzn-module-mdc/src/main/java/org/jeecg/modules/mdc/subcontrol/vo/LastWeekDataVo.java                             |   34 ++
 lxzn-module-mdc/src/main/java/org/jeecg/modules/mdc/subcontrol/service/MdcBigScreenService.java                   |   38 ++
 lxzn-module-mdc/src/main/java/org/jeecg/modules/mdc/service/IEquipmentLogService.java                             |    9 
 lxzn-module-mdc/src/main/java/org/jeecg/modules/mdc/subcontrol/vo/LastWeekDataRankingVo.java                      |   13 +
 lxzn-module-mdc/src/main/java/org/jeecg/modules/mdc/service/impl/EquipmentLogServiceImpl.java                     |   20 +
 lxzn-module-mdc/src/main/java/org/jeecg/modules/mdc/service/impl/MdcEquipmentStatisticalShiftInfoServiceImpl.java |    7 
 lxzn-module-mdc/src/main/java/org/jeecg/modules/mdc/subcontrol/service/impl/MdcBigScreenServiceImpl.java          |  288 ++++++++++++++++++++++
 lxzn-module-mdc/src/main/java/org/jeecg/modules/mdc/service/IMdcEquipmentStatisticalShiftInfoService.java         |    8 
 lxzn-module-mdc/src/main/java/org/jeecg/modules/mdc/mapper/EquipmentStatisticalInfoMapper.java                    |    9 
 lxzn-module-mdc/src/main/java/org/jeecg/modules/mdc/mapper/EquipmentLogMapper.java                                |    4 
 lxzn-module-mdc/src/main/java/org/jeecg/modules/mdc/mapper/xml/EquipmentLogMapper.xml                             |   21 +
 lxzn-module-mdc/src/main/java/org/jeecg/modules/mdc/subcontrol/vo/AllEquipmentLogVo.java                          |   30 ++
 lxzn-module-mdc/src/main/java/org/jeecg/modules/mdc/mapper/xml/EquipmentStatisticalInfoMapper.xml                 |   66 +++++
 lxzn-module-mdc/src/main/java/org/jeecg/modules/mdc/service/impl/EquipmentStatisticalInfoServiceImpl.java         |   26 ++
 lxzn-module-mdc/src/main/java/org/jeecg/modules/mdc/service/impl/MdcEquipmentServiceImpl.java                     |   32 +-
 lxzn-module-mdc/src/main/java/org/jeecg/modules/mdc/mapper/xml/MdcEquipmentStatisticalShiftInfoMapper.xml         |   28 ++
 lxzn-module-mdc/src/main/java/org/jeecg/modules/mdc/mapper/MdcEquipmentMapper.java                                |    1 
 lxzn-module-mdc/src/main/java/org/jeecg/modules/mdc/service/IMdcEquipmentService.java                             |    1 
 lxzn-module-mdc/src/main/java/org/jeecg/modules/mdc/subcontrol/api/MdcBigScreenController.java                    |   78 ++++++
 lxzn-module-mdc/src/main/java/org/jeecg/modules/mdc/mapper/MdcEquipmentStatisticalShiftInfoMapper.java            |    6 
 24 files changed, 753 insertions(+), 18 deletions(-)

diff --git a/lxzn-boot-base-core/src/main/java/org/jeecg/config/shiro/ShiroConfig.java b/lxzn-boot-base-core/src/main/java/org/jeecg/config/shiro/ShiroConfig.java
index 5aeb5ce..5499de7 100644
--- a/lxzn-boot-base-core/src/main/java/org/jeecg/config/shiro/ShiroConfig.java
+++ b/lxzn-boot-base-core/src/main/java/org/jeecg/config/shiro/ShiroConfig.java
@@ -94,6 +94,9 @@
         filterChainDefinitionMap.put("/sys/common/pdf/**", "anon");//pdf棰勮
         filterChainDefinitionMap.put("/generic/**", "anon");//pdf棰勮闇�瑕佹枃浠�
         filterChainDefinitionMap.put("/sys/user/updatePassword", "anon");//棣栭〉鐢ㄦ埛淇敼瀵嗙爜
+        filterChainDefinitionMap.put("/outer/bigScreen/**", "anon");//鐪嬫澘
+
+
 
         filterChainDefinitionMap.put("/sys/getLoginQrcode/**", "anon"); //鐧诲綍浜岀淮鐮�
         filterChainDefinitionMap.put("/sys/getQrcodeToken/**", "anon"); //鐩戝惉鎵爜
diff --git a/lxzn-module-mdc/src/main/java/org/jeecg/modules/mdc/mapper/EquipmentLogMapper.java b/lxzn-module-mdc/src/main/java/org/jeecg/modules/mdc/mapper/EquipmentLogMapper.java
index 69d4c80..a08dab6 100644
--- a/lxzn-module-mdc/src/main/java/org/jeecg/modules/mdc/mapper/EquipmentLogMapper.java
+++ b/lxzn-module-mdc/src/main/java/org/jeecg/modules/mdc/mapper/EquipmentLogMapper.java
@@ -3,6 +3,7 @@
 import com.baomidou.mybatisplus.core.mapper.BaseMapper;
 import org.apache.ibatis.annotations.Param;
 import org.jeecg.modules.mdc.entity.EquipmentLog;
+import org.jeecg.modules.mdc.subcontrol.vo.AllEquipmentLogVo;
 
 import java.util.Date;
 import java.util.List;
@@ -13,10 +14,13 @@
  */
 public interface EquipmentLogMapper extends BaseMapper<EquipmentLog> {
 
+    List<AllEquipmentLogVo> findAllEquipmentLog(@Param("yesterday") Date yesterday);
 
     EquipmentLog getRow(@Param("equipmentid") String equipmentid, @Param("startTime") Date startTime);
 
     EquipmentLog selectEquipmentOporation(@Param("equipmentId") String equipmentId);
 
     List<EquipmentLog> getEquipmentStatusList(@Param("equipmentIdList") List<String> equipmentIdList);
+
+    EquipmentLog getOne(@Param("equipmentId") String equipmentId);
 }
diff --git a/lxzn-module-mdc/src/main/java/org/jeecg/modules/mdc/mapper/EquipmentStatisticalInfoMapper.java b/lxzn-module-mdc/src/main/java/org/jeecg/modules/mdc/mapper/EquipmentStatisticalInfoMapper.java
index 330a18a..3f88e6c 100644
--- a/lxzn-module-mdc/src/main/java/org/jeecg/modules/mdc/mapper/EquipmentStatisticalInfoMapper.java
+++ b/lxzn-module-mdc/src/main/java/org/jeecg/modules/mdc/mapper/EquipmentStatisticalInfoMapper.java
@@ -1,11 +1,20 @@
 package org.jeecg.modules.mdc.mapper;
 
 import com.baomidou.mybatisplus.core.mapper.BaseMapper;
+import org.apache.ibatis.annotations.Param;
 import org.jeecg.modules.mdc.entity.EquipmentStatisticalInfo;
+import org.jeecg.modules.mdc.subcontrol.vo.LastWeekDataVo;
+
+import java.util.List;
 
 /**
  * @author Lius
  * @date 2023/10/24 14:05
  */
 public interface EquipmentStatisticalInfoMapper extends BaseMapper<EquipmentStatisticalInfo> {
+
+    List<LastWeekDataVo> findDataRankingForBigScreen(@Param("equipmentIdList") List<String> equipmentIdList, @Param("monday") String monday, @Param("saturday") String saturday);
+    List<String> findEquipmentId(@Param("equipmentIdList") List<String> equipmentIdList, @Param("date") String date);
+    List<LastWeekDataVo> findDataForBigScreen(@Param("equipmentIdList") List<String> equipmentIdList, @Param("monday") String monday, @Param("saturday") String saturday);
+
 }
diff --git a/lxzn-module-mdc/src/main/java/org/jeecg/modules/mdc/mapper/MdcEquipmentMapper.java b/lxzn-module-mdc/src/main/java/org/jeecg/modules/mdc/mapper/MdcEquipmentMapper.java
index 06246bc..aed99d9 100644
--- a/lxzn-module-mdc/src/main/java/org/jeecg/modules/mdc/mapper/MdcEquipmentMapper.java
+++ b/lxzn-module-mdc/src/main/java/org/jeecg/modules/mdc/mapper/MdcEquipmentMapper.java
@@ -124,4 +124,5 @@
      * @return
      */
     MdcEquipmentDetailedDto findById(@Param("id") String id);
+
 }
diff --git a/lxzn-module-mdc/src/main/java/org/jeecg/modules/mdc/mapper/MdcEquipmentStatisticalShiftInfoMapper.java b/lxzn-module-mdc/src/main/java/org/jeecg/modules/mdc/mapper/MdcEquipmentStatisticalShiftInfoMapper.java
index 2bdddbe..a3e31eb 100644
--- a/lxzn-module-mdc/src/main/java/org/jeecg/modules/mdc/mapper/MdcEquipmentStatisticalShiftInfoMapper.java
+++ b/lxzn-module-mdc/src/main/java/org/jeecg/modules/mdc/mapper/MdcEquipmentStatisticalShiftInfoMapper.java
@@ -3,8 +3,10 @@
 import com.baomidou.mybatisplus.core.mapper.BaseMapper;
 import org.apache.ibatis.annotations.Param;
 import org.jeecg.modules.mdc.entity.MdcEquipmentStatisticalShiftInfo;
+import org.jeecg.modules.mdc.subcontrol.vo.LastWeekDataVo;
 
 import java.math.BigDecimal;
+import java.util.List;
 
 /**
  * @author: LiuS
@@ -21,4 +23,8 @@
     MdcEquipmentStatisticalShiftInfo getMaxStaticsData(@Param("equipmentId") String equipmentid);
 
     BigDecimal findSpindleRunDuration(@Param("equipmentId") String equipmentId, @Param("validDate") String validDate);
+
+    List<LastWeekDataVo> findDataForBigScreen(@Param("equipmentIdList") List<String> equipmentIdList,
+                                              @Param("monday") String monday, @Param("saturday") String saturday);
+
 }
diff --git a/lxzn-module-mdc/src/main/java/org/jeecg/modules/mdc/mapper/xml/EquipmentLogMapper.xml b/lxzn-module-mdc/src/main/java/org/jeecg/modules/mdc/mapper/xml/EquipmentLogMapper.xml
index 88b331d..1192c43 100644
--- a/lxzn-module-mdc/src/main/java/org/jeecg/modules/mdc/mapper/xml/EquipmentLogMapper.xml
+++ b/lxzn-module-mdc/src/main/java/org/jeecg/modules/mdc/mapper/xml/EquipmentLogMapper.xml
@@ -2,6 +2,18 @@
 <!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
 <mapper namespace="org.jeecg.modules.mdc.mapper.EquipmentLogMapper">
 
+    <select id="findAllEquipmentLog" resultType="org.jeecg.modules.mdc.subcontrol.vo.AllEquipmentLogVo">
+		SELECT
+			*
+		FROM
+			EQUIPMENTLOG
+		WHERE
+			COLLECTTIME &gt;= #{ yesterday }
+			AND ALARM IS NOT NULL and ALARM != ''
+		ORDER BY
+			COLLECTTIME DESC;
+	</select>
+
     <select id="getRow" resultType="org.jeecg.modules.mdc.entity.EquipmentLog">
         SELECT top 1 * FROM EquipmentLog WHERE EquipmentID = #{ equipmentid } AND CollectTime &lt;= #{ startTime } AND Oporation in ('0','1','2','3') ORDER BY CollectTime ASC
     </select>
@@ -25,4 +37,13 @@
             </foreach>
         </if>
     </select>
+
+
+    <select id="getOne" resultType="org.jeecg.modules.mdc.entity.EquipmentLog">
+		SELECT
+			top 1 *
+		FROM
+			( SELECT * FROM EQUIPMENTLOG WHERE EQUIPMENTID = #{ equipmentId } ORDER BY COLLECTTIME DESC )
+
+	</select>
 </mapper>
\ No newline at end of file
diff --git a/lxzn-module-mdc/src/main/java/org/jeecg/modules/mdc/mapper/xml/EquipmentStatisticalInfoMapper.xml b/lxzn-module-mdc/src/main/java/org/jeecg/modules/mdc/mapper/xml/EquipmentStatisticalInfoMapper.xml
index 50e63d3..1c7631d 100644
--- a/lxzn-module-mdc/src/main/java/org/jeecg/modules/mdc/mapper/xml/EquipmentStatisticalInfoMapper.xml
+++ b/lxzn-module-mdc/src/main/java/org/jeecg/modules/mdc/mapper/xml/EquipmentStatisticalInfoMapper.xml
@@ -1,5 +1,71 @@
 <?xml version="1.0" encoding="UTF-8"?>
 <!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
 <mapper namespace="org.jeecg.modules.mdc.mapper.EquipmentStatisticalInfoMapper">
+    <select id="findDataRankingForBigScreen" resultType="org.jeecg.modules.mdc.subcontrol.vo.LastWeekDataVo">
+        SELECT
+        EQUIPMENT,
+        SUM( CLOSEDLONG ) CLOSEDLONG,
+        SUM( ERRORINGLONG ) ERRORINGLONG,
+        SUM( OPENINGLONG ) OPENINGLONG,
+        SUM( PROCESSINGLONG ) PROCESSINGLONG,
+        SUM( WAITINGLONG ) WAITINGLONG
+        FROM
+        EQUIPMENTSTATISTICALINFO
+        <where>
+            <if test="equipmentIdList != null and equipmentIdList.size() > 0">
+                AND EQUIPMENT IN
+                <foreach collection="equipmentIdList" item="id" index="index" open="(" close=")" separator=",">
+                    #{ id }
+                </foreach>
+            </if>
+            AND THEDATE &gt;= #{ monday }
+            AND THEDATE &lt;= #{ saturday }
+        </where>
+        GROUP BY
+        EQUIPMENT;
+    </select>
+
+    <select id="findDataForBigScreen" resultType="org.jeecg.modules.mdc.subcontrol.vo.LastWeekDataVo">
+        SELECT
+        THEDATE,
+        SUM( OPENINGLONG ) OPENINGLONG,
+        SUM(CLOSEDLONG) CLOSEDLONG,
+        SUM(PROCESSINGLONG) PROCESSINGLONG,
+        SUM(WAITINGLONG) WAITINGLONG
+        FROM
+        EQUIPMENTSTATISTICALINFO
+        <where>
+            <if test="equipmentIdList != null and equipmentIdList.size() > 0">
+                AND EQUIPMENT IN
+                <foreach collection="equipmentIdList" item="id" index="index" open="(" close=")" separator=",">
+                    #{ id }
+                </foreach>
+            </if>
+            AND THEDATE &gt;= #{ monday }
+            AND THEDATE &lt;= #{ saturday }
+        </where>
+        GROUP BY
+        THEDATE
+        ORDER BY
+        THEDATE ASC;
+    </select>
+
+    <select id="findEquipmentId" resultType="java.lang.String">
+        SELECT DISTINCT
+        EQUIPMENT
+        FROM
+        EQUIPMENTSTATISTICALINFO
+        <where>
+            <if test="equipmentIdList != null and equipmentIdList.size() > 0">
+                AND EQUIPMENT IN
+                <foreach collection="equipmentIdList" item="id" index="index" open="(" close=")" separator=",">
+                    #{ id }
+                </foreach>
+            </if>
+            <if test="date != null and date != ''">
+                AND THEDATE = #{ date }
+            </if>
+        </where>
+    </select>
 
 </mapper>
\ No newline at end of file
diff --git a/lxzn-module-mdc/src/main/java/org/jeecg/modules/mdc/mapper/xml/MdcEquipmentStatisticalShiftInfoMapper.xml b/lxzn-module-mdc/src/main/java/org/jeecg/modules/mdc/mapper/xml/MdcEquipmentStatisticalShiftInfoMapper.xml
index 97acaba..3b0484f 100644
--- a/lxzn-module-mdc/src/main/java/org/jeecg/modules/mdc/mapper/xml/MdcEquipmentStatisticalShiftInfoMapper.xml
+++ b/lxzn-module-mdc/src/main/java/org/jeecg/modules/mdc/mapper/xml/MdcEquipmentStatisticalShiftInfoMapper.xml
@@ -17,4 +17,32 @@
             equipment_id = #{ equipmentId }
             AND the_date LIKE CONCAT(#{ validDate },'%')
     </select>
+
+
+    <select id="findDataForBigScreen" resultType="org.jeecg.modules.mdc.subcontrol.vo.LastWeekDataVo">
+        SELECT
+        THE_DATE,
+        SUM( close_long ) close_long,
+        SUM( open_long ) open_long,
+        SUM( error_long ) error_long,
+        SUM( wait_long ) wait_long,
+        SUM( process_long ) process_long,
+        SUM( total_long ) total_long
+        FROM
+        mdc_equipment_statistical_shift_info
+        <where>
+            <if test="equipmentIdList != null and equipmentIdList.size() > 0">
+                AND EQUIPMENT_ID IN
+                <foreach collection="equipmentIdList" item="id" index="index" open="(" close=")" separator=",">
+                    #{ id }
+                </foreach>
+            </if>
+            AND THE_DATE &gt;= #{ monday }
+            AND THE_DATE &lt;= #{ saturday }
+        </where>
+        GROUP BY
+        THE_DATE
+        ORDER BY
+        THE_DATE ASC;
+    </select>
 </mapper>
\ No newline at end of file
diff --git a/lxzn-module-mdc/src/main/java/org/jeecg/modules/mdc/service/IEquipmentLogService.java b/lxzn-module-mdc/src/main/java/org/jeecg/modules/mdc/service/IEquipmentLogService.java
index 805e454..f4e8c6c 100644
--- a/lxzn-module-mdc/src/main/java/org/jeecg/modules/mdc/service/IEquipmentLogService.java
+++ b/lxzn-module-mdc/src/main/java/org/jeecg/modules/mdc/service/IEquipmentLogService.java
@@ -2,6 +2,7 @@
 
 import com.baomidou.mybatisplus.extension.service.IService;
 import org.jeecg.modules.mdc.entity.EquipmentLog;
+import org.jeecg.modules.mdc.subcontrol.vo.AllEquipmentLogVo;
 
 import java.util.Date;
 import java.util.List;
@@ -30,4 +31,12 @@
     EquipmentLog selectEquipmentOporation(String equipmentId);
 
     List<EquipmentLog> getEquipmentStatusList(List<String> equipmentIdList);
+
+    /**
+     * 鍏ㄩ暱璁惧鎶ヨ鏁版嵁
+     * @return
+     */
+    List<AllEquipmentLogVo> getALLEquipmentLog();
+
+    EquipmentLog findEquipmentLog(String equipmentId);
 }
diff --git a/lxzn-module-mdc/src/main/java/org/jeecg/modules/mdc/service/IEquipmentStatisticalInfoService.java b/lxzn-module-mdc/src/main/java/org/jeecg/modules/mdc/service/IEquipmentStatisticalInfoService.java
index 9e236d0..dd6d2e9 100644
--- a/lxzn-module-mdc/src/main/java/org/jeecg/modules/mdc/service/IEquipmentStatisticalInfoService.java
+++ b/lxzn-module-mdc/src/main/java/org/jeecg/modules/mdc/service/IEquipmentStatisticalInfoService.java
@@ -2,10 +2,28 @@
 
 import com.baomidou.mybatisplus.extension.service.IService;
 import org.jeecg.modules.mdc.entity.EquipmentStatisticalInfo;
+import org.jeecg.modules.mdc.subcontrol.vo.LastWeekDataVo;
+
+import java.util.List;
 
 /**
  * @author Lius
  * @date 2023/10/24 14:04
  */
 public interface IEquipmentStatisticalInfoService extends IService<EquipmentStatisticalInfo> {
+    /**
+     * 鏌ヨ娈垫椂闂村唴鐨勬暟鎹�
+     *
+     * @return
+     */
+    List<LastWeekDataVo> findDataForBigScreen(List<String> equipmentIdList, String monday, String saturday);
+
+    Integer findEquipmentId(List<String> equipmentIdList, String date);
+
+
+    /**
+     * 鏌ヨ娈垫椂闂村唴鐨勬暟鎹�(璁惧缁村害)
+     */
+    List<LastWeekDataVo> findDataRankingForBigScreen(List<String> equipmentIdList, String monday, String saturday);
+    Long selectSize(String equipmentId, String monday, String saturday);
 }
diff --git a/lxzn-module-mdc/src/main/java/org/jeecg/modules/mdc/service/IMdcEquipmentService.java b/lxzn-module-mdc/src/main/java/org/jeecg/modules/mdc/service/IMdcEquipmentService.java
index 5e20315..5de8325 100644
--- a/lxzn-module-mdc/src/main/java/org/jeecg/modules/mdc/service/IMdcEquipmentService.java
+++ b/lxzn-module-mdc/src/main/java/org/jeecg/modules/mdc/service/IMdcEquipmentService.java
@@ -210,4 +210,5 @@
 
     List<String> listEquipmentIdShift(MdcEfficiencyReportShiftQueryVo vo);
 
+
 }
diff --git a/lxzn-module-mdc/src/main/java/org/jeecg/modules/mdc/service/IMdcEquipmentStatisticalShiftInfoService.java b/lxzn-module-mdc/src/main/java/org/jeecg/modules/mdc/service/IMdcEquipmentStatisticalShiftInfoService.java
index cc1b424..45aaa60 100644
--- a/lxzn-module-mdc/src/main/java/org/jeecg/modules/mdc/service/IMdcEquipmentStatisticalShiftInfoService.java
+++ b/lxzn-module-mdc/src/main/java/org/jeecg/modules/mdc/service/IMdcEquipmentStatisticalShiftInfoService.java
@@ -2,8 +2,10 @@
 
 import com.baomidou.mybatisplus.extension.service.IService;
 import org.jeecg.modules.mdc.entity.MdcEquipmentStatisticalShiftInfo;
+import org.jeecg.modules.mdc.subcontrol.vo.LastWeekDataVo;
 
 import java.math.BigDecimal;
+import java.util.List;
 
 /**
  * @Description: 璁惧鍗曟棩鐝杩愯鏁版嵁琛�
@@ -28,4 +30,10 @@
      */
     BigDecimal findSpindleRunDuration(String equipmentId, String validDate);
 
+
+    /**
+     * 鑾峰彇鍓�7鐝鍒╃敤鐜囨暟鎹�
+     */
+    List<LastWeekDataVo> findDataForBigScreen(List<String> equipmentIdList, String monday, String saturday);
+
 }
diff --git a/lxzn-module-mdc/src/main/java/org/jeecg/modules/mdc/service/impl/EquipmentLogServiceImpl.java b/lxzn-module-mdc/src/main/java/org/jeecg/modules/mdc/service/impl/EquipmentLogServiceImpl.java
index 7a2da87..cb706ae 100644
--- a/lxzn-module-mdc/src/main/java/org/jeecg/modules/mdc/service/impl/EquipmentLogServiceImpl.java
+++ b/lxzn-module-mdc/src/main/java/org/jeecg/modules/mdc/service/impl/EquipmentLogServiceImpl.java
@@ -5,6 +5,11 @@
 import org.jeecg.modules.mdc.entity.EquipmentLog;
 import org.jeecg.modules.mdc.mapper.EquipmentLogMapper;
 import org.jeecg.modules.mdc.service.IEquipmentLogService;
+import org.jeecg.modules.mdc.service.IMdcAlarmInfoService;
+import org.jeecg.modules.mdc.service.IMdcEquipmentService;
+import org.jeecg.modules.mdc.subcontrol.vo.AllEquipmentLogVo;
+import org.jeecg.modules.mdc.util.DateUtils;
+import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.stereotype.Service;
 
 import java.util.Arrays;
@@ -17,8 +22,6 @@
  */
 @Service
 public class EquipmentLogServiceImpl extends ServiceImpl<EquipmentLogMapper, EquipmentLog> implements IEquipmentLogService {
-
-
     @Override
     public List<EquipmentLog> findEquipmentLogByEndTime(String equipmentId, Date maxDate) {
         LambdaQueryChainWrapper<EquipmentLog> lambdaQuery = this.lambdaQuery();
@@ -58,4 +61,17 @@
     public List<EquipmentLog> getEquipmentStatusList(List<String> equipmentIdList) {
         return this.baseMapper.getEquipmentStatusList(equipmentIdList);
     }
+
+    @Override
+    public List<AllEquipmentLogVo> getALLEquipmentLog() {
+        //鑾峰彇褰撳墠鏃堕棿24灏忔椂涔嬪墠鐨勮澶囨姤璀︽暟鎹�
+        Date yesterday = DateUtils.getPreviousDay(DateUtils.getNow());
+        List<AllEquipmentLogVo> list = this.baseMapper.findAllEquipmentLog(yesterday);
+        return list;
+    }
+
+    @Override
+    public EquipmentLog findEquipmentLog(String equipmentId) {
+        return this.baseMapper.getOne(equipmentId);
+    }
 }
diff --git a/lxzn-module-mdc/src/main/java/org/jeecg/modules/mdc/service/impl/EquipmentStatisticalInfoServiceImpl.java b/lxzn-module-mdc/src/main/java/org/jeecg/modules/mdc/service/impl/EquipmentStatisticalInfoServiceImpl.java
index 5a350c8..7cfe0dc 100644
--- a/lxzn-module-mdc/src/main/java/org/jeecg/modules/mdc/service/impl/EquipmentStatisticalInfoServiceImpl.java
+++ b/lxzn-module-mdc/src/main/java/org/jeecg/modules/mdc/service/impl/EquipmentStatisticalInfoServiceImpl.java
@@ -1,10 +1,14 @@
 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.jeecg.modules.mdc.entity.EquipmentStatisticalInfo;
 import org.jeecg.modules.mdc.mapper.EquipmentStatisticalInfoMapper;
 import org.jeecg.modules.mdc.service.IEquipmentStatisticalInfoService;
+import org.jeecg.modules.mdc.subcontrol.vo.LastWeekDataVo;
 import org.springframework.stereotype.Service;
+
+import java.util.List;
 
 /**
  * @author Lius
@@ -12,4 +16,26 @@
  */
 @Service
 public class EquipmentStatisticalInfoServiceImpl extends ServiceImpl<EquipmentStatisticalInfoMapper, EquipmentStatisticalInfo> implements IEquipmentStatisticalInfoService {
+
+    @Override
+    public List<LastWeekDataVo> findDataForBigScreen(List<String> equipmentIdList, String monday, String saturday) {
+        return this.baseMapper.findDataForBigScreen(equipmentIdList, monday, saturday);
+    }
+
+    @Override
+    public Integer findEquipmentId(List<String> equipmentIdList, String date) {
+        List<String> list = this.baseMapper.findEquipmentId(equipmentIdList, date);
+        return list.size();
+    }
+
+    @Override
+    public List<LastWeekDataVo> findDataRankingForBigScreen(List<String> equipmentIdList, String monday, String saturday) {
+        return this.baseMapper.findDataRankingForBigScreen(equipmentIdList, monday, saturday);
+    }
+
+    @Override
+    public Long selectSize(String equipmentId, String monday, String saturday) {
+        return this.baseMapper.selectCount(new LambdaQueryWrapper<EquipmentStatisticalInfo>().
+                eq(EquipmentStatisticalInfo::getEquipment, equipmentId).ge(EquipmentStatisticalInfo::getTheDate, monday).le(EquipmentStatisticalInfo::getTheDate, saturday));
+    }
 }
diff --git a/lxzn-module-mdc/src/main/java/org/jeecg/modules/mdc/service/impl/MdcEquipmentServiceImpl.java b/lxzn-module-mdc/src/main/java/org/jeecg/modules/mdc/service/impl/MdcEquipmentServiceImpl.java
index ad9d45f..04bd56a 100644
--- a/lxzn-module-mdc/src/main/java/org/jeecg/modules/mdc/service/impl/MdcEquipmentServiceImpl.java
+++ b/lxzn-module-mdc/src/main/java/org/jeecg/modules/mdc/service/impl/MdcEquipmentServiceImpl.java
@@ -703,23 +703,24 @@
     @Override
     public List<String> listEquipmentId(MdcEfficiencyReportQueryVo vo) {
         LambdaQueryWrapper<MdcEquipment> queryWrapper = new LambdaQueryWrapper<>();
-        if (vo.getEquipmentIdList() != null && !vo.getEquipmentIdList().isEmpty()) {
-            queryWrapper.in(MdcEquipment::getEquipmentId, vo.getEquipmentIdList());
-        }
-        if (StringUtils.isNotEmpty(vo.getEquipmentType())) {
-            queryWrapper.in(MdcEquipment::getEquipmentType, Arrays.asList(vo.getEquipmentType().split(",")));
-        }
-        if (StringUtils.isNotEmpty(vo.getDeviceLevel())) {
-            queryWrapper.in(MdcEquipment::getDeviceLevel, Arrays.asList(vo.getDeviceLevel().split(",")));
-        }
-        if (StringUtils.isNotEmpty(vo.getDriveType())) {
-            queryWrapper.in(MdcEquipment::getDriveType, Arrays.asList(vo.getDriveType().split(",")));
-        }
-        if (StringUtils.isNotEmpty(vo.getDeviceCategory())) {
-            queryWrapper.in(MdcEquipment::getDeviceCategory, Arrays.asList(vo.getDeviceCategory().split(",")));
+        if (vo != null) {
+            if (vo.getEquipmentIdList() != null && !vo.getEquipmentIdList().isEmpty()) {
+                queryWrapper.in(MdcEquipment::getEquipmentId, vo.getEquipmentIdList());
+            }
+            if (StringUtils.isNotEmpty(vo.getEquipmentType())) {
+                queryWrapper.in(MdcEquipment::getEquipmentType, Arrays.asList(vo.getEquipmentType().split(",")));
+            }
+            if (StringUtils.isNotEmpty(vo.getDeviceLevel())) {
+                queryWrapper.in(MdcEquipment::getDeviceLevel, Arrays.asList(vo.getDeviceLevel().split(",")));
+            }
+            if (StringUtils.isNotEmpty(vo.getDriveType())) {
+                queryWrapper.in(MdcEquipment::getDriveType, Arrays.asList(vo.getDriveType().split(",")));
+            }
+            if (StringUtils.isNotEmpty(vo.getDeviceCategory())) {
+                queryWrapper.in(MdcEquipment::getDeviceCategory, Arrays.asList(vo.getDeviceCategory().split(",")));
+            }
         }
         List<MdcEquipment> list = super.list(queryWrapper);
-//        List<MdcEquipment> list = super.list(new LambdaQueryWrapper<MdcEquipment>().eq(MdcEquipment::getEquipmentType, equipmentType).in(MdcEquipment::getEquipmentId, equipmentIdList));
         return list.stream().map(MdcEquipment::getEquipmentId).collect(Collectors.toList());
     }
 
@@ -873,5 +874,4 @@
 //        List<MdcEquipment> list = super.list(new LambdaQueryWrapper<MdcEquipment>().eq(MdcEquipment::getEquipmentType, equipmentType).in(MdcEquipment::getEquipmentId, equipmentIdList));
         return list.stream().map(MdcEquipment::getEquipmentId).collect(Collectors.toList());
     }
-
 }
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 938b7a9..74304a1 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
@@ -9,6 +9,7 @@
 import org.jeecg.modules.mdc.entity.MdcEquipmentStatisticalShiftInfo;
 import org.jeecg.modules.mdc.mapper.MdcEquipmentStatisticalShiftInfoMapper;
 import org.jeecg.modules.mdc.service.*;
+import org.jeecg.modules.mdc.subcontrol.vo.LastWeekDataVo;
 import org.jeecg.modules.mdc.util.DateUtils;
 import org.jeecg.modules.mdc.vo.MdcDateVo;
 import org.jeecg.modules.mdc.vo.MdcDeviceCalendarVo;
@@ -44,6 +45,12 @@
     @Resource
     private IMdcEquipmentRepairService mdcEquipmentRepairService;
 
+
+    @Override
+    public List<LastWeekDataVo> findDataForBigScreen(List<String> equipmentIdList, String monday, String saturday) {
+        return this.baseMapper.findDataForBigScreen(equipmentIdList, monday, saturday);
+    }
+
     /**
      * 璁$畻璁惧鍗曟棩鐝杩愯鏁版嵁
      *
diff --git a/lxzn-module-mdc/src/main/java/org/jeecg/modules/mdc/subcontrol/api/MdcBigScreenController.java b/lxzn-module-mdc/src/main/java/org/jeecg/modules/mdc/subcontrol/api/MdcBigScreenController.java
new file mode 100644
index 0000000..9c88b8b
--- /dev/null
+++ b/lxzn-module-mdc/src/main/java/org/jeecg/modules/mdc/subcontrol/api/MdcBigScreenController.java
@@ -0,0 +1,78 @@
+package org.jeecg.modules.mdc.subcontrol.api;
+
+import io.swagger.annotations.Api;
+import io.swagger.annotations.ApiOperation;
+import lombok.extern.slf4j.Slf4j;
+import org.apache.commons.lang.StringUtils;
+import org.jeecg.common.api.vo.Result;
+import org.jeecg.modules.mdc.service.IEquipmentLogService;
+import org.jeecg.modules.mdc.subcontrol.service.MdcBigScreenService;
+import org.jeecg.modules.mdc.subcontrol.vo.AllEquipmentLogVo;
+import org.jeecg.modules.mdc.subcontrol.vo.LastWeekDataRankingVo;
+import org.jeecg.modules.mdc.subcontrol.vo.MdcEquipmentOpVo;
+import org.jeecg.modules.mdc.vo.MdcEquipmentVo;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.web.bind.annotation.GetMapping;
+import org.springframework.web.bind.annotation.RequestMapping;
+import org.springframework.web.bind.annotation.RestController;
+
+import javax.annotation.Resource;
+import java.util.HashMap;
+import java.util.List;
+import java.util.Map;
+
+/**
+ * @author: LiuS
+ * @create: 2022-12-28 10:43
+ */
+@Slf4j
+@RestController
+@RequestMapping("/outer/bigScreen")
+@Api(tags = "澶у睆鎺ュ彛")
+public class MdcBigScreenController {
+
+    @Resource
+    private MdcBigScreenService mdcBigScreenService;
+
+    @Autowired
+    private IEquipmentLogService equipmentLogService;
+
+    @ApiOperation("鍏ㄥ巶鎶ヨ淇℃伅")
+    @GetMapping("/findAlarmInfo")
+    public Result findAlarmInfo() {
+        List<AllEquipmentLogVo> result = equipmentLogService.getALLEquipmentLog();
+        return Result.OK(result);
+    }
+
+    @ApiOperation("鑾峰彇鍓�7鏁版嵁")
+    @GetMapping("/findDataByLastWeek")
+    public Result findDataByLastWeek() {
+        Map<String, Object> result = mdcBigScreenService.findDataByLastWeek();
+        return Result.OK(result);
+    }
+
+    @ApiOperation("鑾峰彇鍓�7鏁版嵁鎺掑悕")
+    @GetMapping("/findDataRankingByLastWeek")
+    public Result findDataRankingByLastWeek() {
+        List<LastWeekDataRankingVo> rankingByLastWeek = mdcBigScreenService.findDataRankingByLastWeek();
+        return Result.OK(rankingByLastWeek);
+    }
+
+    @ApiOperation("鑾峰彇褰撳墠璁惧鐘舵�佷俊鎭�")
+    @GetMapping("/findEquipmentStatus")
+    public Result findEquipmentStatus() {
+        Map<String, Object> result = new HashMap<>();
+        List<MdcEquipmentOpVo> list = mdcBigScreenService.findEquipmentStatus();
+        result.put("equipmentStatusList", list);
+        return Result.OK(result);
+    }
+
+    @ApiOperation("鑾峰彇鍏ㄥ巶褰撳墠璁惧鐘舵�佷俊鎭�")
+    @GetMapping("/findAllEquipmentStatus")
+    public Result findAllEquipmentStatus() {
+        Map<String, Object> result = mdcBigScreenService.findAllEquipmentStatus();
+        return Result.OK(result);
+    }
+
+
+}
diff --git a/lxzn-module-mdc/src/main/java/org/jeecg/modules/mdc/subcontrol/service/MdcBigScreenService.java b/lxzn-module-mdc/src/main/java/org/jeecg/modules/mdc/subcontrol/service/MdcBigScreenService.java
new file mode 100644
index 0000000..813220f
--- /dev/null
+++ b/lxzn-module-mdc/src/main/java/org/jeecg/modules/mdc/subcontrol/service/MdcBigScreenService.java
@@ -0,0 +1,38 @@
+package org.jeecg.modules.mdc.subcontrol.service;
+
+
+import org.jeecg.modules.mdc.subcontrol.vo.LastWeekDataRankingVo;
+import org.jeecg.modules.mdc.subcontrol.vo.MdcEquipmentOpVo;
+import org.jeecg.modules.mdc.vo.MdcEquipmentVo;
+
+import java.util.List;
+import java.util.Map;
+
+/**
+ * @author: LiuS
+ * @create: 2023-01-05 11:41
+ */
+public interface MdcBigScreenService {
+
+    /**
+     * 鏍规嵁鍘傚尯id鑾峰彇涓婂懆鏁版嵁
+     */
+    Map<String, Object> findDataByLastWeek();
+
+    /**
+     * 鏍规嵁鍘傚尯id鑾峰彇涓婂懆杩愯鏁堢巼鎺掑悕
+     */
+    List<LastWeekDataRankingVo> findDataRankingByLastWeek();
+
+    /**
+     * 鑾峰彇璁惧褰撳墠鐘舵��
+     */
+    List<MdcEquipmentOpVo> findEquipmentStatus();
+
+
+    /**
+     * 鑾峰彇鍏ㄥ巶褰撳墠璁惧鐘舵�佷俊鎭�
+     */
+    Map<String, Object> findAllEquipmentStatus();
+
+}
diff --git a/lxzn-module-mdc/src/main/java/org/jeecg/modules/mdc/subcontrol/service/impl/MdcBigScreenServiceImpl.java b/lxzn-module-mdc/src/main/java/org/jeecg/modules/mdc/subcontrol/service/impl/MdcBigScreenServiceImpl.java
new file mode 100644
index 0000000..376bd55
--- /dev/null
+++ b/lxzn-module-mdc/src/main/java/org/jeecg/modules/mdc/subcontrol/service/impl/MdcBigScreenServiceImpl.java
@@ -0,0 +1,288 @@
+package org.jeecg.modules.mdc.subcontrol.service.impl;
+
+import org.apache.commons.lang.StringUtils;
+import org.jeecg.modules.mdc.entity.EquipmentLog;
+import org.jeecg.modules.mdc.service.*;
+import org.jeecg.modules.mdc.subcontrol.service.MdcBigScreenService;
+import org.jeecg.modules.mdc.subcontrol.vo.LastWeekDataRankingVo;
+import org.jeecg.modules.mdc.subcontrol.vo.LastWeekDataVo;
+import org.jeecg.modules.mdc.subcontrol.vo.MdcEquipmentOpVo;
+import org.jeecg.modules.mdc.vo.MdcEquipmentVo;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.stereotype.Service;
+
+import javax.annotation.Resource;
+import java.math.BigDecimal;
+import java.time.DayOfWeek;
+import java.time.LocalDate;
+import java.time.format.DateTimeFormatter;
+import java.time.temporal.TemporalAdjusters;
+import java.util.*;
+import java.util.stream.Collectors;
+
+/**
+ * @author: LiuS
+ * @create: 2023-01-05 11:42
+ */
+@Service
+public class MdcBigScreenServiceImpl implements MdcBigScreenService {
+
+    @Resource
+    private IMdcEquipmentService mdcEquipmentService;
+
+    @Resource
+    private IEquipmentStatisticalInfoService equipmentStatisticalInfoService;
+    @Autowired
+    private IMdcEquipmentStatisticalShiftInfoService mdcEquipmentStatisticalShiftInfoService;
+
+
+    @Resource
+    private IEquipmentLogService equipmentLogService;
+
+
+    /**
+     * 鏍规嵁鍘傚尯id鑾峰彇涓婂懆鏁版嵁
+     */
+    @Override
+    public Map<String, Object> findDataByLastWeek() {
+        Map<String, Object> result = new HashMap<>();
+        List<BigDecimal> openingRateList = new ArrayList<>();
+        List<BigDecimal> processingRateList = new ArrayList<>();
+        List<BigDecimal> shiftRateList = new ArrayList<>();
+        //鑾峰彇涓婂懆鍛ㄤ竴鏃ユ湡鍜屽懆鍏棩鏈�
+        LocalDate today = LocalDate.now();
+        LocalDate monday = today.minusDays(7);
+        LocalDate saturday = today.minusDays(1);
+        List<String> dates = getMiddleDate(monday, saturday);
+        List<String> equipmentIdList = new ArrayList<>();
+        //鏍规嵁鍘傚尯id鑾峰彇鍘傚尯璁惧淇℃伅
+        equipmentIdList = mdcEquipmentService.listEquipmentId(null);
+        //涓婂懆鍒╃敤鐜囧拰寮�鏈虹巼鏁版嵁
+        List<LastWeekDataVo> lastWeekDataVos = equipmentStatisticalInfoService.findDataForBigScreen(equipmentIdList, monday.format(DateTimeFormatter.BASIC_ISO_DATE), saturday.format(DateTimeFormatter.BASIC_ISO_DATE));
+        if (lastWeekDataVos.isEmpty()) {
+            for (int i = 0; i < dates.size(); i++) {
+                openingRateList.add(new BigDecimal("0"));
+                processingRateList.add(new BigDecimal("0"));
+            }
+        } else {
+            for (int i = 0; i < dates.size(); i++) {
+                Integer size = equipmentStatisticalInfoService.findEquipmentId(equipmentIdList, dates.get(i));
+                if (dates.get(i).equals(lastWeekDataVos.get(i).getTheDate())) {
+                    openingRateList.add(new BigDecimal(String.format("%.2f", (Float.parseFloat(lastWeekDataVos.get(i).getOpeningLong()) / (86400 * size) * 100))));
+                    processingRateList.add(new BigDecimal(String.format("%.2f", (Float.parseFloat(lastWeekDataVos.get(i).getProcessingLong()) / (86400 * size) * 100))));
+                } else {
+                    openingRateList.add(new BigDecimal("0"));
+                    processingRateList.add(new BigDecimal("0"));
+                }
+            }
+        }
+
+        //涓婂懆鐝鍒╃敤鐜囨暟鎹�
+        List<LastWeekDataVo> lastWeekDataList = mdcEquipmentStatisticalShiftInfoService.findDataForBigScreen(equipmentIdList, monday.toString(), saturday.toString());
+        List<String> middleDates = getMiddleDates(monday, saturday);
+        if (lastWeekDataList.isEmpty()) {
+            for (int i = 0; i < middleDates.size(); i++) {
+                shiftRateList.add(new BigDecimal("0"));
+            }
+        } else {
+            for (int i = 0; i < middleDates.size(); i++) {
+                if (i < lastWeekDataList.size()) {
+                    if (middleDates.get(i).equals(lastWeekDataList.get(i).getTheDate())
+                            && !"0".equals(lastWeekDataList.get(i).getTotalLong())) {
+                        shiftRateList.add(new BigDecimal(lastWeekDataList.get(i).getProcessingLong()).
+                                divide(new BigDecimal(lastWeekDataList.get(i).getTotalLong()),
+                                        6, BigDecimal.ROUND_HALF_UP)
+                                .setScale(6, BigDecimal.ROUND_HALF_UP));
+                    } else {
+                        shiftRateList.add(new BigDecimal("0"));
+                    }
+                }
+                 else {
+                    shiftRateList.add(new BigDecimal("0"));
+                }
+            }
+        }
+        result.put("openingRateList", openingRateList);
+        result.put("processingRateList", processingRateList);
+        result.put("shiftRateList", shiftRateList);
+
+        return result;
+    }
+
+    /**
+     * 鏍规嵁鍘傚尯id鑾峰彇涓婂懆杩愯鏁堢巼鎺掑悕
+     */
+    @Override
+    public List<LastWeekDataRankingVo> findDataRankingByLastWeek() {
+        List<LastWeekDataRankingVo> voList = new ArrayList<>();
+
+        //鑾峰彇涓婂懆鍛ㄤ竴鏃ユ湡鍜屽懆鍏棩鏈�
+        LocalDate today = LocalDate.now();
+        String monday = today.minusDays(7).format(DateTimeFormatter.BASIC_ISO_DATE);
+        String saturday = today.minusDays(1).format(DateTimeFormatter.BASIC_ISO_DATE);
+        //鏍规嵁id鑾峰彇璁惧id闆嗗悎
+        List<String> equipmentIdList = mdcEquipmentService.listEquipmentId(null);
+        if (!equipmentIdList.isEmpty()) {
+            List<LastWeekDataVo> lastWeekDataVos = equipmentStatisticalInfoService.findDataRankingForBigScreen(equipmentIdList, monday, saturday);
+            if (!lastWeekDataVos.isEmpty()) {
+                for (LastWeekDataVo lastWeekDataVo : lastWeekDataVos) {
+                    Long size = equipmentStatisticalInfoService.selectSize(lastWeekDataVo.getEquipment(), monday, saturday);
+                    lastWeekDataVo.setUtilization(new BigDecimal(String.format("%.2f", (Float.parseFloat(lastWeekDataVo.getProcessingLong()) / (86400 * size) * 100))));
+                }
+                List<LastWeekDataVo> collect = lastWeekDataVos.stream().sorted(Comparator.comparing(LastWeekDataVo::getUtilization).reversed()).collect(Collectors.toList());
+                if (collect.size() > 3) {
+                    List<LastWeekDataVo> topList = collect.subList(0, 6);
+                    for (LastWeekDataVo vo : topList) {
+                        LastWeekDataRankingVo rankingVo = new LastWeekDataRankingVo();
+                        rankingVo.setTopName(vo.getEquipment());
+                        rankingVo.setTopRate(vo.getUtilization().toString());
+                        voList.add(rankingVo);
+                    }
+                }
+
+            }
+        }
+
+        return voList;
+
+    }
+
+    /**
+     * 鑾峰彇璁惧褰撳墠鐘舵��
+     */
+    @Override
+    public List<MdcEquipmentOpVo> findEquipmentStatus() {
+        List<MdcEquipmentOpVo> result = new ArrayList<>();
+        //鏍规嵁id鑾峰彇璁惧id闆嗗悎
+        List<String> equipmentIdList = mdcEquipmentService.listEquipmentId(null);
+
+        if (!equipmentIdList.isEmpty()) {
+            List<EquipmentLog> logs = equipmentLogService.getEquipmentStatusList(equipmentIdList);
+            //鏍规嵁璁惧id闆嗗悎鏌ヨ璁惧瀹炴椂鐘舵��
+            for (EquipmentLog equipmentId : logs) {
+                if (equipmentId != null) {
+                    MdcEquipmentOpVo vo = new MdcEquipmentOpVo();
+                    vo.setEquipmentId(equipmentId.getEquipmentId());
+                    if (equipmentId.getOporation() != null) {
+                        switch (equipmentId.getOporation()) {
+                            case 1:
+                                vo.setOporation(1);
+                                vo.setOporationDict("寰呮満");
+                                break;
+                            case 2:
+                                vo.setOporationDict("寰呮満");
+                                vo.setOporation(2);
+                                break;
+                            case 3:
+                                vo.setOporationDict("杩愯");
+                                vo.setOporation(3);
+                                break;
+                            case 22:
+                                vo.setOporationDict("鎶ヨ");
+                                vo.setOporation(22);
+                                break;
+                            default:
+                                vo.setOporationDict("鍏虫満");
+                                vo.setOporation(0);
+                                break;
+                        }
+                    } else {
+                        vo.setOporation(0);
+                        vo.setOporationDict("鍏虫満");
+                    }
+                    result.add(vo);
+                } else {
+                    MdcEquipmentOpVo vo = new MdcEquipmentOpVo();
+                    vo.setOporation(0);
+                    vo.setOporationDict("鍏虫満");
+                    result.add(vo);
+                }
+            }
+        }
+        return result;
+    }
+
+    /**
+     * 鑾峰彇鍏ㄥ巶褰撳墠璁惧鐘舵�佷俊鎭�
+     */
+    @Override
+    public Map<String, Object> findAllEquipmentStatus() {
+        int runCount = 0;
+        int standbyCount = 0;
+        int alarmCount = 0;
+        int offCount = 0;
+        List<String> equipmentIdList = mdcEquipmentService.listEquipmentId(null);
+        List<EquipmentLog> equipmentLogs = new ArrayList<>();
+        for (String equipmentId : equipmentIdList) {
+            EquipmentLog equipmentLog = equipmentLogService.selectEquipmentOporation(equipmentId);
+            if (equipmentLog != null) {
+                equipmentLogs.add(equipmentLog);
+            } else {
+                offCount += 1;
+            }
+        }
+        if (!equipmentLogs.isEmpty()) {
+            for (EquipmentLog equipmentLog : equipmentLogs) {
+                if (equipmentLog.getOporation() != null) {
+                    switch (equipmentLog.getOporation()) {
+                        case 1:
+                        case 2:
+                            standbyCount += 1;
+                            break;
+                        case 3:
+                            runCount += 1;
+                            break;
+                        case 22:
+                            alarmCount += 1;
+                            break;
+                        default:
+                            offCount += 1;
+                            break;
+                    }
+                } else {
+                    offCount += 1;
+                }
+            }
+        }
+        Map<String, Object> result = new HashMap<>();
+        result.put("runCount", runCount);
+        result.put("standbyCount", standbyCount);
+        result.put("alarmCount", alarmCount);
+        result.put("offCount", offCount);
+
+        return result;
+    }
+
+    /**
+     * 20230101
+     *
+     * @param begin 寮�濮嬫棩鏈�
+     * @param end   缁撴潫鏃ユ湡
+     * @return 寮�濮嬩笌缁撴潫涔嬮棿鐨勬墍鏈夋棩鏈燂紝鍖呮嫭璧锋
+     */
+    public static List<String> getMiddleDate(LocalDate begin, LocalDate end) {
+        List<String> localDateList = new ArrayList<>();
+        long length = end.toEpochDay() - begin.toEpochDay();
+        for (long i = length; i >= 0; i--) {
+            localDateList.add(end.minusDays(i).format(DateTimeFormatter.BASIC_ISO_DATE));
+        }
+        return localDateList;
+    }
+
+    /**
+     * 2023-01-01
+     *
+     * @param begin 寮�濮嬫棩鏈�
+     * @param end   缁撴潫鏃ユ湡
+     * @return 寮�濮嬩笌缁撴潫涔嬮棿鐨勬墍鏈夋棩鏈燂紝鍖呮嫭璧锋
+     */
+    public static List<String> getMiddleDates(LocalDate begin, LocalDate end) {
+        List<String> localDateList = new ArrayList<>();
+        long length = end.toEpochDay() - begin.toEpochDay();
+        for (long i = length; i >= 0; i--) {
+            localDateList.add(end.minusDays(i).toString());
+        }
+        return localDateList;
+    }
+
+}
diff --git a/lxzn-module-mdc/src/main/java/org/jeecg/modules/mdc/subcontrol/vo/AllEquipmentLogVo.java b/lxzn-module-mdc/src/main/java/org/jeecg/modules/mdc/subcontrol/vo/AllEquipmentLogVo.java
new file mode 100644
index 0000000..0d98b08
--- /dev/null
+++ b/lxzn-module-mdc/src/main/java/org/jeecg/modules/mdc/subcontrol/vo/AllEquipmentLogVo.java
@@ -0,0 +1,30 @@
+package org.jeecg.modules.mdc.subcontrol.vo;
+
+import com.baomidou.mybatisplus.annotation.TableField;
+import lombok.Data;
+
+import java.util.Date;
+
+/**
+ * @author: LiuS
+ * @create: 2022-12-28 11:04
+ */
+@Data
+public class AllEquipmentLogVo {
+
+    //杞﹂棿鍚嶇О
+    @TableField(exist = false)
+    private String parentName;
+    //璁惧缂栧彿
+    private String equipmentId;
+    //璁惧鍚嶇О
+    private String equipmentName;
+    //鏃堕棿
+    private Date collectTime;
+    //
+    private Integer oporation;
+    //鎶ヨ鍙�
+    private String alarm;
+    //鎶ヨ鎻忚堪锛堟晠闅滅被鍨嬶級
+    private String alarmDescription;
+}
diff --git a/lxzn-module-mdc/src/main/java/org/jeecg/modules/mdc/subcontrol/vo/LastWeekDataRankingVo.java b/lxzn-module-mdc/src/main/java/org/jeecg/modules/mdc/subcontrol/vo/LastWeekDataRankingVo.java
new file mode 100644
index 0000000..6b88e15
--- /dev/null
+++ b/lxzn-module-mdc/src/main/java/org/jeecg/modules/mdc/subcontrol/vo/LastWeekDataRankingVo.java
@@ -0,0 +1,13 @@
+package org.jeecg.modules.mdc.subcontrol.vo;
+
+import lombok.Data;
+
+/**
+ * @author: LiuS
+ * @create: 2023-01-09 10:58
+ */
+@Data
+public class LastWeekDataRankingVo {
+    private String topName;
+    private String topRate;
+}
diff --git a/lxzn-module-mdc/src/main/java/org/jeecg/modules/mdc/subcontrol/vo/LastWeekDataVo.java b/lxzn-module-mdc/src/main/java/org/jeecg/modules/mdc/subcontrol/vo/LastWeekDataVo.java
new file mode 100644
index 0000000..9e695f9
--- /dev/null
+++ b/lxzn-module-mdc/src/main/java/org/jeecg/modules/mdc/subcontrol/vo/LastWeekDataVo.java
@@ -0,0 +1,34 @@
+package org.jeecg.modules.mdc.subcontrol.vo;
+
+import lombok.Data;
+
+import java.math.BigDecimal;
+
+/**
+ * @author: LiuS
+ * @create: 2023-01-05 17:35
+ */
+@Data
+public class LastWeekDataVo {
+    //璁惧id
+    private String equipment;
+    //鏃ユ湡
+    private String theDate;
+    //寮�鏈烘椂闀�
+    private String openingLong;
+    //鍏虫満鏃堕暱
+    private String closedLong;
+    //宸ヤ綔鏃堕暱
+    private String processingLong;
+    //鎶ヨ鏃堕暱
+    private String waitingLong;
+    //鏁呴殰鏃堕棿
+    private String faultLong;
+    //鎬绘椂闀�
+    private String totalLong;
+    //闂茬疆鏃堕暱
+    private String idleLong;
+    //鍒╃敤鐜�
+    private BigDecimal utilization;
+
+}
\ No newline at end of file
diff --git a/lxzn-module-mdc/src/main/java/org/jeecg/modules/mdc/subcontrol/vo/MdcEquipmentAndTypeVo.java b/lxzn-module-mdc/src/main/java/org/jeecg/modules/mdc/subcontrol/vo/MdcEquipmentAndTypeVo.java
new file mode 100644
index 0000000..e9c1003
--- /dev/null
+++ b/lxzn-module-mdc/src/main/java/org/jeecg/modules/mdc/subcontrol/vo/MdcEquipmentAndTypeVo.java
@@ -0,0 +1,14 @@
+package org.jeecg.modules.mdc.subcontrol.vo;
+
+import lombok.Data;
+
+/**
+ * @author clown
+ * * @date 2022/7/19
+ */
+@Data
+public class MdcEquipmentAndTypeVo {
+    private String parentId; //鍒楄〃ID
+    private Integer mdcType; //榛樿1
+    private Integer dayOrMonth; // 1 澶� 2 鏈�
+}
diff --git a/lxzn-module-mdc/src/main/java/org/jeecg/modules/mdc/subcontrol/vo/MdcEquipmentOpVo.java b/lxzn-module-mdc/src/main/java/org/jeecg/modules/mdc/subcontrol/vo/MdcEquipmentOpVo.java
new file mode 100644
index 0000000..6802706
--- /dev/null
+++ b/lxzn-module-mdc/src/main/java/org/jeecg/modules/mdc/subcontrol/vo/MdcEquipmentOpVo.java
@@ -0,0 +1,17 @@
+package org.jeecg.modules.mdc.subcontrol.vo;
+
+import lombok.Data;
+import org.jeecg.modules.mdc.entity.MdcEquipment;
+
+/**
+ * @author clown
+ * * @date 2025/2/19
+ */
+@Data
+public class MdcEquipmentOpVo  extends MdcEquipment {
+    private static final long serialVersionUID = -8341212703599621003L;
+
+    private String status;
+
+    private String oporationDict;
+}

--
Gitblit v1.9.3