From f59452ac384766a21500857e89928a8abc0e75b5 Mon Sep 17 00:00:00 2001
From: Lius <Lius2225@163.com>
Date: 星期四, 22 八月 2024 13:29:27 +0800
Subject: [PATCH] update

---
 lxzn-module-mdc/src/main/java/org/jeecg/modules/mdc/entity/CurrentXYZHistory.java                             |   63 +
 lxzn-module-mdc/src/main/java/org/jeecg/modules/mdc/mapper/xml/EquipmentMachiningMapper.xml                   |    5 
 lxzn-module-mdc/src/main/java/org/jeecg/modules/mdc/mapper/xml/EquipmentElectricStatisticalMapper.xml         |    5 
 lxzn-module-mdc/src/main/java/org/jeecg/modules/mdc/mapper/EquipmentMachiningHistoryMapper.java               |   46 
 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/EquipmentSpindleStatisticalMapper.java             |    9 
 lxzn-module-mdc/src/main/java/org/jeecg/modules/mdc/mapper/EquipmentElectricStatisticalMapper.java            |    9 
 lxzn-module-mdc/src/main/java/org/jeecg/modules/mdcJc/mapper/xml/MdcProductDayscheduleMapper.xml              |   10 
 lxzn-module-mdc/src/main/java/org/jeecg/modules/mdcJc/entity/MdcUnderLineQueue.java                           |    3 
 lxzn-module-mdc/src/main/java/org/jeecg/modules/mdc/mapper/xml/MachineXYZHistoryMapper.xml                    |   56 +
 lxzn-module-mdc/src/main/java/org/jeecg/modules/mdcJc/job/UnderLineQueueJob.java                              |   64 +
 lxzn-module-mdc/src/main/java/org/jeecg/modules/mdcJc/entity/MdcOnLineQueue.java                              |    7 
 lxzn-module-mdc/src/main/java/org/jeecg/modules/mdcJc/mapper/ClassMonthlyscheduleMapper.java                  |   52 
 lxzn-module-mdc/src/main/java/org/jeecg/modules/mdcJc/service/IMdcOnLineQueueService.java                     |   18 
 lxzn-module-mdc/src/main/java/org/jeecg/modules/mdc/dto/MachineXYZHistoryDto.java                             |   41 
 lxzn-module-mdc/src/main/java/org/jeecg/modules/mdcJc/job/OnLineQueueJob.java                                 |   65 +
 lxzn-module-system/lxzn-system-start/src/test/java/org/jeecg/modules/mdcJc/MesTest.java                       |   30 
 lxzn-module-mdc/src/main/java/org/jeecg/modules/mdcJc/mapper/xml/MdcUnderLineQueueMapper.xml                  |    9 
 lxzn-module-mdc/src/main/java/org/jeecg/modules/screen/service/impl/MdcLargeScreenServiceImpl.java            |  113 ++
 lxzn-boot-base-core/src/main/java/org/jeecg/common/constant/CommonConstant.java                               |    5 
 lxzn-module-mdc/src/main/java/org/jeecg/modules/mdcJc/controller/ClassMonthlyScheduleController.java          |    9 
 lxzn-module-mdc/src/main/java/org/jeecg/modules/mdc/job/StatisticalSpindleJob.java                            |  121 ++
 lxzn-module-mdc/src/main/java/org/jeecg/modules/mdcJc/mapper/MdcOnLineQueueMapper.java                        |   13 
 lxzn-module-mdc/src/main/java/org/jeecg/modules/screen/controller/MdcLargeScreenController.java               |   77 +
 lxzn-module-mdc/src/main/java/org/jeecg/modules/mdc/mapper/xml/CurrentXYZHistoryMapper.xml                    |  112 ++
 lxzn-module-mdc/src/main/java/org/jeecg/modules/mdc/mapper/xml/EquipmentSpindleStatisticalMapper.xml          |    4 
 lxzn-module-mdc/src/main/java/org/jeecg/modules/screen/dto/EquipmentRateDto.java                              |   34 
 lxzn-module-mdc/src/main/java/org/jeecg/modules/mdc/entity/MachineXYZHistory.java                             |   67 +
 lxzn-module-mdc/src/main/java/org/jeecg/modules/mdcJc/job/QualityMonthJob.java                                |   64 +
 lxzn-module-mdc/src/main/java/org/jeecg/modules/mdc/mapper/EquipmentMachiningMapper.java                      |   14 
 lxzn-module-mdc/src/main/java/org/jeecg/modules/mdcJc/service/impl/MesInfoInMdcServiceImpl.java               |    6 
 lxzn-module-mdc/src/main/java/org/jeecg/modules/mdc/mapper/MachineXYZHistoryMapper.java                       |   23 
 lxzn-module-mdc/src/main/java/org/jeecg/modules/mdcJc/mapper/MdcProductDayscheduleMapper.java                 |   16 
 lxzn-module-mdc/src/main/java/org/jeecg/modules/mdcJc/entity/ProductDayschedule.java                          |    2 
 lxzn-module-mdc/src/main/java/org/jeecg/modules/mdcJc/service/impl/MdcOnLineQueueServiceImpl.java             |   51 
 lxzn-module-mdc/src/main/java/org/jeecg/modules/mdcJc/mapper/xml/MdcOnLineQueueMapper.xml                     |    9 
 lxzn-module-mdc/src/main/java/org/jeecg/modules/screen/mapper/MdcLargeScreenMapper.java                       |   30 
 lxzn-module-mdc/src/main/java/org/jeecg/modules/mdcJc/mapper/MdcUnderLineQueueMapper.java                     |   12 
 lxzn-module-mdc/src/main/java/org/jeecg/modules/mdcJc/service/impl/ClassMonthlyScheduleServiceImpl.java       |   67 +
 lxzn-module-mdc/src/main/java/org/jeecg/modules/screen/dto/ClazzCompletionCountDto.java                       |   19 
 lxzn-module-mdc/src/main/java/org/jeecg/modules/mdcJc/job/ScheduleClassMonthJob.java                          |   64 +
 lxzn-module-mdc/src/main/java/org/jeecg/modules/mdcJc/service/impl/MdcClassMonthServiceImpl.java              |    6 
 lxzn-module-mdc/src/main/java/org/jeecg/modules/mdcJc/service/IMdcProductDayScheduleService.java              |   28 
 lxzn-module-mdc/src/main/java/org/jeecg/modules/mdcJc/service/impl/MdcProductDayScheduleServiceImpl.java      |   57 +
 lxzn-module-mdc/src/main/java/org/jeecg/modules/mdc/mapper/CurrentXYZHistoryMapper.java                       |   36 
 lxzn-module-mdc/src/main/java/org/jeecg/modules/mdc/service/ICurrentXYZHistoryService.java                    |   37 
 lxzn-module-mdc/src/main/java/org/jeecg/modules/mdcJc/entity/MdcProductDayschedule.java                       |   63 
 lxzn-module-mdc/src/main/java/org/jeecg/modules/mdcJc/job/ScheduleProductMonthJob.java                        |   64 +
 lxzn-module-mdc/src/main/java/org/jeecg/modules/screen/dto/TodayProductionPassRateDto.java                    |   24 
 lxzn-module-mdc/src/test/java/org/lxzn/TestOne.java                                                           |    4 
 lxzn-module-mdc/src/main/java/org/jeecg/modules/mdcJc/service/impl/MdcUnderLineQueueServiceImpl.java          |   51 
 lxzn-module-mdc/src/main/java/org/jeecg/modules/mdcJc/service/IClassMonthlyScheduleService.java               |   74 +
 lxzn-module-mdc/src/main/java/org/jeecg/modules/mdc/service/impl/MachineXYZHistoryServiceImpl.java            |   31 
 lxzn-module-mdc/src/main/java/org/jeecg/modules/mdc/dto/EquipmentMachiningHistoryDto.java                     |   29 
 lxzn-module-mdc/src/main/java/org/jeecg/modules/mdc/entity/EquipmentMachining.java                            |  207 +++
 lxzn-module-mdc/src/main/java/org/jeecg/modules/mdc/service/IEquipmentSpindleStatisticalService.java          |   10 
 lxzn-module-mdc/src/main/java/org/jeecg/modules/mdc/controller/EquipmentElectricStatisticalController.java    |    4 
 lxzn-module-mdc/src/main/java/org/jeecg/modules/mdc/service/impl/EquipmentElectricStatisticalServiceImpl.java |   14 
 lxzn-module-mdc/src/main/java/org/jeecg/modules/screen/service/MdcLargeScreenService.java                     |   49 
 lxzn-module-mdc/src/main/java/org/jeecg/modules/mdc/controller/EquipmentSpindleStatisticalController.java     |    2 
 lxzn-module-mdc/src/main/java/org/jeecg/modules/mdc/job/RunningEquipmentStatusJob.java                        |    2 
 lxzn-module-mdc/src/main/java/org/jeecg/modules/mdcJc/mapper/xml/ClassMonthlyscheduleMapper.xml               |   31 
 lxzn-module-mdc/src/main/java/org/jeecg/modules/mdc/controller/MdcHomeController.java                         |    4 
 lxzn-module-mdc/src/main/java/org/jeecg/modules/mdc/service/IEquipmentMachiningHistoryService.java            |   45 
 /dev/null                                                                                                     |   39 
 lxzn-module-mdc/src/main/java/org/jeecg/modules/screen/dto/TodayProductionDto.java                            |   27 
 lxzn-module-mdc/src/main/java/org/jeecg/modules/mdc/service/IMachineXYZHistoryService.java                    |   25 
 lxzn-module-mdc/src/main/java/org/jeecg/modules/mdc/service/impl/EquipmentMachiningHistoryServiceImpl.java    |   58 +
 lxzn-module-mdc/src/main/java/org/jeecg/modules/mdcJc/service/impl/MdcProductMonthScheduleServiceImp.java     |    6 
 lxzn-module-mdc/src/main/java/org/jeecg/modules/mdc/service/IEquipmentMachiningService.java                   |   14 
 lxzn-module-mdc/src/main/java/org/jeecg/modules/mdcJc/service/IMdcUnderLineQueueService.java                  |   17 
 lxzn-module-mdc/src/main/java/org/jeecg/modules/mdc/dto/CurrentElectricHistoryDto.java                        |   45 
 lxzn-module-mdc/src/main/java/org/jeecg/modules/mdc/service/impl/CurrentXYZHistoryServiceImpl.java            |   45 
 lxzn-module-mdc/src/main/java/org/jeecg/modules/mdc/service/impl/EquipmentSpindleStatisticalServiceImpl.java  |   13 
 lxzn-module-mdc/src/main/java/org/jeecg/modules/mdcJc/service/impl/MdcQualityMonthServiceImpl.java            |    8 
 lxzn-module-mdc/src/main/java/org/jeecg/modules/screen/dto/YesterdayOverviewDto.java                          |   27 
 lxzn-module-mdc/src/main/java/org/jeecg/modules/mdc/job/StatisticalElectricJob.java                           |  146 ++
 lxzn-module-mdc/src/main/java/org/jeecg/modules/mdc/entity/EquipmentMachiningHistory.java                     |   57 +
 lxzn-module-mdc/src/main/java/org/jeecg/modules/mdc/mapper/xml/EquipmentMachiningHistoryMapper.xml            |   94 +
 lxzn-module-mdc/src/main/java/org/jeecg/modules/mdc/service/IEquipmentElectricStatisticalService.java         |   10 
 lxzn-module-mdc/src/main/java/org/jeecg/modules/mdc/service/impl/EquipmentMachiningServiceImpl.java           |   18 
 lxzn-module-mdc/src/main/java/org/jeecg/modules/screen/mapper/xml/MdcLargeScreenMapper.xml                    |   61 +
 lxzn-module-mdc/src/main/java/org/jeecg/modules/mdcJc/job/ScheduleProductDayJob.java                          |   64 +
 83 files changed, 2,975 insertions(+), 97 deletions(-)

diff --git a/lxzn-boot-base-core/src/main/java/org/jeecg/common/constant/CommonConstant.java b/lxzn-boot-base-core/src/main/java/org/jeecg/common/constant/CommonConstant.java
index 5ffcb6c..0b3eb87 100644
--- a/lxzn-boot-base-core/src/main/java/org/jeecg/common/constant/CommonConstant.java
+++ b/lxzn-boot-base-core/src/main/java/org/jeecg/common/constant/CommonConstant.java
@@ -598,4 +598,9 @@
     Integer AUTO_FLAG_Y = 1;
     Integer AUTO_FLAG_N = 2;
 
+    /**
+     * 鍧愭爣杞寸被鍨�
+     */
+    String AXIS_TYPE = "axis_type";
+
 }
diff --git a/lxzn-module-mdc/src/main/java/org/jeecg/modules/mdc/controller/EquipmentElectricStatisticalController.java b/lxzn-module-mdc/src/main/java/org/jeecg/modules/mdc/controller/EquipmentElectricStatisticalController.java
index e46a2fa..738cf52 100644
--- a/lxzn-module-mdc/src/main/java/org/jeecg/modules/mdc/controller/EquipmentElectricStatisticalController.java
+++ b/lxzn-module-mdc/src/main/java/org/jeecg/modules/mdc/controller/EquipmentElectricStatisticalController.java
@@ -1,6 +1,5 @@
 package org.jeecg.modules.mdc.controller;
 
-import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
 import com.baomidou.mybatisplus.core.metadata.IPage;
 import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
 import io.swagger.annotations.Api;
@@ -10,7 +9,6 @@
 import org.jeecg.common.api.vo.Result;
 import org.jeecg.common.aspect.annotation.AutoLog;
 import org.jeecg.common.system.base.controller.JeecgController;
-import org.jeecg.common.system.query.QueryGenerator;
 import org.jeecg.common.system.vo.LoginUser;
 import org.jeecg.modules.mdc.dto.EquipmentElectricStatisticalDto;
 import org.jeecg.modules.mdc.entity.EquipmentElectricStatistical;
@@ -21,8 +19,6 @@
 
 import javax.annotation.Resource;
 import javax.servlet.http.HttpServletRequest;
-import javax.servlet.http.HttpServletResponse;
-import java.util.Arrays;
 import java.util.List;
 
 /**
diff --git a/lxzn-module-mdc/src/main/java/org/jeecg/modules/mdc/controller/EquipmentSpindleStatisticalController.java b/lxzn-module-mdc/src/main/java/org/jeecg/modules/mdc/controller/EquipmentSpindleStatisticalController.java
index 0d83436..f8574dd 100644
--- a/lxzn-module-mdc/src/main/java/org/jeecg/modules/mdc/controller/EquipmentSpindleStatisticalController.java
+++ b/lxzn-module-mdc/src/main/java/org/jeecg/modules/mdc/controller/EquipmentSpindleStatisticalController.java
@@ -1,6 +1,5 @@
 package org.jeecg.modules.mdc.controller;
 
-import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
 import com.baomidou.mybatisplus.core.metadata.IPage;
 import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
 import io.swagger.annotations.Api;
@@ -10,7 +9,6 @@
 import org.jeecg.common.api.vo.Result;
 import org.jeecg.common.aspect.annotation.AutoLog;
 import org.jeecg.common.system.base.controller.JeecgController;
-import org.jeecg.common.system.query.QueryGenerator;
 import org.jeecg.common.system.vo.LoginUser;
 import org.jeecg.modules.mdc.entity.EquipmentSpindleStatistical;
 import org.jeecg.modules.mdc.service.IEquipmentSpindleStatisticalService;
diff --git a/lxzn-module-mdc/src/main/java/org/jeecg/modules/mdc/controller/MdcHomeController.java b/lxzn-module-mdc/src/main/java/org/jeecg/modules/mdc/controller/MdcHomeController.java
index 29867c9..93df4cc 100644
--- a/lxzn-module-mdc/src/main/java/org/jeecg/modules/mdc/controller/MdcHomeController.java
+++ b/lxzn-module-mdc/src/main/java/org/jeecg/modules/mdc/controller/MdcHomeController.java
@@ -41,8 +41,8 @@
 @RequestMapping("/mdc/home")
 public class MdcHomeController {
 
-    @Resource
-    private IMdcEquipmentService mdcEquipmentService;
+//    @Resource
+//    private IMdcEquipmentService mdcEquipmentService;
 
     @Resource
     private IMdcProductionService mdcProductionService;
diff --git a/lxzn-module-mdc/src/main/java/org/jeecg/modules/mdc/dto/CurrentElectricHistoryDto.java b/lxzn-module-mdc/src/main/java/org/jeecg/modules/mdc/dto/CurrentElectricHistoryDto.java
new file mode 100644
index 0000000..724d2e0
--- /dev/null
+++ b/lxzn-module-mdc/src/main/java/org/jeecg/modules/mdc/dto/CurrentElectricHistoryDto.java
@@ -0,0 +1,45 @@
+package org.jeecg.modules.mdc.dto;
+
+import lombok.Data;
+
+import java.util.Date;
+
+/**
+ * @author Lius
+ * @date 2024/7/24 15:10
+ */
+@Data
+public class CurrentElectricHistoryDto {
+    /**
+     * 閲囬泦鏃堕棿
+     */
+    private Date collectTime;
+    /**
+     * 璁惧缂栧彿
+     */
+    private String equipmentID;
+    /**
+     * x杞寸數娴�
+     */
+    private String xCurrent;
+    /**
+     * y杞寸數娴�
+     */
+    private String yCurrent;
+    /**
+     * z杞寸數娴�
+     */
+    private String zCurrent;
+    /**
+     * a杞寸數娴�
+     */
+    private String aCurrent;
+    /**
+     * b杞寸數娴�
+     */
+    private String bCurrent;
+    /**
+     * dao瑙f瀽鏁版嵁浣跨敤
+     */
+    private String currentValue;
+}
diff --git a/lxzn-module-mdc/src/main/java/org/jeecg/modules/mdc/dto/EquipmentMachiningHistoryDto.java b/lxzn-module-mdc/src/main/java/org/jeecg/modules/mdc/dto/EquipmentMachiningHistoryDto.java
new file mode 100644
index 0000000..ce1bae5
--- /dev/null
+++ b/lxzn-module-mdc/src/main/java/org/jeecg/modules/mdc/dto/EquipmentMachiningHistoryDto.java
@@ -0,0 +1,29 @@
+package org.jeecg.modules.mdc.dto;
+
+import lombok.Data;
+
+import java.util.Date;
+
+/**
+ * @author Lius
+ * @date 2024/7/24 15:41
+ */
+@Data
+public class EquipmentMachiningHistoryDto {
+    /**
+     * 閲囬泦鏃堕棿
+     */
+    private Date collectTime;
+    /**
+     * 璁惧ID
+     */
+    private String equipmentID;
+    /**
+     * 涓昏酱璐熻浇
+     */
+    private String spindleLoad;
+    /**
+     * 涓昏酱杞��
+     */
+    private String spindleSpeed;
+}
diff --git a/lxzn-module-mdc/src/main/java/org/jeecg/modules/mdc/dto/MachineXYZHistoryDto.java b/lxzn-module-mdc/src/main/java/org/jeecg/modules/mdc/dto/MachineXYZHistoryDto.java
new file mode 100644
index 0000000..d39a5b6
--- /dev/null
+++ b/lxzn-module-mdc/src/main/java/org/jeecg/modules/mdc/dto/MachineXYZHistoryDto.java
@@ -0,0 +1,41 @@
+package org.jeecg.modules.mdc.dto;
+
+import lombok.Data;
+
+import java.util.Date;
+
+/**
+ * @author Lius
+ * @date 2024/7/29 11:40
+ */
+@Data
+public class MachineXYZHistoryDto {
+    /**
+     * 閲囬泦鏃堕棿
+     */
+    private Date collectTime;
+    /**
+     * 璁惧ID
+     */
+    private String equipmentID;
+    /**
+     * X杞村潗鏍囧��
+     */
+    private String xMachine;
+    /**
+     * Y杞村潗鏍囧��
+     */
+    private String yMachine;
+    /**
+     * Z杞村潗鏍囧��
+     */
+    private String zMachine;
+    /**
+     * A杞村潗鏍囧��
+     */
+    private String aMachine;
+    /**
+     * B杞村潗鏍囧��
+     */
+    private String bMachine;
+}
diff --git a/lxzn-module-mdc/src/main/java/org/jeecg/modules/mdc/entity/CurrentXYZHistory.java b/lxzn-module-mdc/src/main/java/org/jeecg/modules/mdc/entity/CurrentXYZHistory.java
new file mode 100644
index 0000000..f7f1bdd
--- /dev/null
+++ b/lxzn-module-mdc/src/main/java/org/jeecg/modules/mdc/entity/CurrentXYZHistory.java
@@ -0,0 +1,63 @@
+package org.jeecg.modules.mdc.entity;
+
+import com.baomidou.mybatisplus.annotation.TableName;
+import com.fasterxml.jackson.annotation.JsonFormat;
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+import lombok.EqualsAndHashCode;
+import lombok.experimental.Accessors;
+import org.jeecgframework.poi.excel.annotation.Excel;
+import org.springframework.format.annotation.DateTimeFormat;
+
+/**
+ * @Description: 璁惧鍧愭爣鍊艰〃
+ * @Author: lius
+ * @Date: 2024-07-18
+ * @Version: V1.0
+ */
+@Data
+@TableName("CurrentXYZ_History")
+@EqualsAndHashCode(callSuper = false)
+@Accessors(chain = true)
+@ApiModel(value = "CurrentXYZ_History瀵硅薄", description = "璁惧鍧愭爣鍊艰〃")
+public class CurrentXYZHistory {
+
+    /**
+     * equipmentid
+     */
+    @ApiModelProperty(value = "equipmentid")
+    private String equipmentid;
+    /**
+     * collecttime
+     */
+    @JsonFormat(timezone = "GMT+8", pattern = "yyyy-MM-dd HH:mm:ss")
+    @DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss")
+    @ApiModelProperty(value = "collecttime")
+    private java.util.Date collecttime;
+    /**
+     * xcurrent
+     */
+    @ApiModelProperty(value = "xcurrent")
+    private String xcurrent;
+    /**
+     * ycurrent
+     */
+    @ApiModelProperty(value = "ycurrent")
+    private String ycurrent;
+    /**
+     * zcurrent
+     */
+    @ApiModelProperty(value = "zcurrent")
+    private String zcurrent;
+    /**
+     * acurrent
+     */
+    @ApiModelProperty(value = "acurrent")
+    private String acurrent;
+    /**
+     * bcurrent
+     */
+    @ApiModelProperty(value = "bcurrent")
+    private String bcurrent;
+}
diff --git a/lxzn-module-mdc/src/main/java/org/jeecg/modules/mdc/entity/EquipmentMachining.java b/lxzn-module-mdc/src/main/java/org/jeecg/modules/mdc/entity/EquipmentMachining.java
new file mode 100644
index 0000000..e71253e
--- /dev/null
+++ b/lxzn-module-mdc/src/main/java/org/jeecg/modules/mdc/entity/EquipmentMachining.java
@@ -0,0 +1,207 @@
+package org.jeecg.modules.mdc.entity;
+
+import com.baomidou.mybatisplus.annotation.TableName;
+import com.fasterxml.jackson.annotation.JsonFormat;
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+import lombok.EqualsAndHashCode;
+import lombok.experimental.Accessors;
+import org.jeecgframework.poi.excel.annotation.Excel;
+import org.springframework.format.annotation.DateTimeFormat;
+
+import java.io.Serializable;
+import java.util.Date;
+
+/**
+ * @Description: 璁惧杞�熻礋杞借〃
+ * @Author: lius
+ * @Date: 2024-07-24
+ * @Version: V1.0
+ */
+@Data
+@TableName("EquipmentMachining")
+@EqualsAndHashCode(callSuper = false)
+@Accessors(chain = true)
+@ApiModel(value = "EquipmentMachining瀵硅薄", description = "璁惧杞�熻礋杞借〃")
+public class EquipmentMachining implements Serializable {
+
+    private static final long serialVersionUID = -6265153727180497096L;
+
+    /**
+     * 璁惧缂栧彿
+     */
+    @Excel(name = "璁惧缂栧彿", width = 15)
+    @ApiModelProperty(value = "璁惧缂栧彿")
+    private String equipmentid;
+    /**
+     * 閲囬泦鏃堕棿
+     */
+    @Excel(name = "閲囬泦鏃堕棿", width = 20, format = "yyyy-MM-dd HH:mm:ss")
+    @JsonFormat(timezone = "GMT+8", pattern = "yyyy-MM-dd HH:mm:ss")
+    @DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss")
+    @ApiModelProperty(value = "閲囬泦鏃堕棿")
+    private Date collecttime;
+    /**
+     * p3
+     */
+    @Excel(name = "p3", width = 15)
+    @ApiModelProperty(value = "p3")
+    private String p3;
+    /**
+     * p4
+     */
+    @Excel(name = "p4", width = 15)
+    @ApiModelProperty(value = "p4")
+    private String p4;
+    /**
+     * p5
+     */
+    @Excel(name = "p5", width = 15)
+    @ApiModelProperty(value = "p5")
+    private String p5;
+    /**
+     * p6
+     */
+    @Excel(name = "p6", width = 15)
+    @ApiModelProperty(value = "p6")
+    private String p6;
+    /**
+     * p7
+     */
+    @Excel(name = "p7", width = 15)
+    @ApiModelProperty(value = "p7")
+    private String p7;
+    /**
+     * p8
+     */
+    @Excel(name = "p8", width = 15)
+    @ApiModelProperty(value = "p8")
+    private String p8;
+    /**
+     * p9
+     */
+    @Excel(name = "p9", width = 15)
+    @ApiModelProperty(value = "p9")
+    private String p9;
+    /**
+     * p10
+     */
+    @Excel(name = "p10", width = 15)
+    @ApiModelProperty(value = "p10")
+    private String p10;
+    /**
+     * p11
+     */
+    @Excel(name = "p11", width = 15)
+    @ApiModelProperty(value = "p11")
+    private String p11;
+    /**
+     * p12
+     */
+    @Excel(name = "p12", width = 15)
+    @ApiModelProperty(value = "p12")
+    private String p12;
+    /**
+     * p13
+     */
+    @Excel(name = "p13", width = 15)
+    @ApiModelProperty(value = "p13")
+    private String p13;
+    /**
+     * p14
+     */
+    @Excel(name = "p14", width = 15)
+    @ApiModelProperty(value = "p14")
+    private String p14;
+    /**
+     * p15
+     */
+    @Excel(name = "p15", width = 15)
+    @ApiModelProperty(value = "p15")
+    private String p15;
+    /**
+     * p16
+     */
+    @Excel(name = "p16", width = 15)
+    @ApiModelProperty(value = "p16")
+    private String p16;
+    /**
+     * p17
+     */
+    @Excel(name = "p17", width = 15)
+    @ApiModelProperty(value = "p17")
+    private String p17;
+    /**
+     * p18
+     */
+    @Excel(name = "p18", width = 15)
+    @ApiModelProperty(value = "p18")
+    private String p18;
+    /**
+     * p19
+     */
+    @Excel(name = "p19", width = 15)
+    @ApiModelProperty(value = "p19")
+    private String p19;
+    /**
+     * p20
+     */
+    @Excel(name = "p20", width = 15)
+    @ApiModelProperty(value = "p20")
+    private String p20;
+    /**
+     * p21
+     */
+    @Excel(name = "p21", width = 15)
+    @ApiModelProperty(value = "p21")
+    private String p21;
+    /**
+     * p22
+     */
+    @Excel(name = "p22", width = 15)
+    @ApiModelProperty(value = "p22")
+    private String p22;
+    /**
+     * p23
+     */
+    @Excel(name = "p23", width = 15)
+    @ApiModelProperty(value = "p23")
+    private String p23;
+    /**
+     * p24
+     */
+    @Excel(name = "p24", width = 15)
+    @ApiModelProperty(value = "p24")
+    private String p24;
+    /**
+     * p25
+     */
+    @Excel(name = "p25", width = 15)
+    @ApiModelProperty(value = "p25")
+    private String p25;
+    /**
+     * p26
+     */
+    @Excel(name = "p26", width = 15)
+    @ApiModelProperty(value = "p26")
+    private String p26;
+    /**
+     * p27
+     */
+    @Excel(name = "p27", width = 15)
+    @ApiModelProperty(value = "p27")
+    private String p27;
+    /**
+     * p28
+     */
+    @Excel(name = "p28", width = 15)
+    @ApiModelProperty(value = "p28")
+    private String p28;
+    /**
+     * p29
+     */
+    @Excel(name = "p29", width = 15)
+    @ApiModelProperty(value = "p29")
+    private String p29;
+}
diff --git a/lxzn-module-mdc/src/main/java/org/jeecg/modules/mdc/entity/EquipmentMachiningHistory.java b/lxzn-module-mdc/src/main/java/org/jeecg/modules/mdc/entity/EquipmentMachiningHistory.java
new file mode 100644
index 0000000..818e04f
--- /dev/null
+++ b/lxzn-module-mdc/src/main/java/org/jeecg/modules/mdc/entity/EquipmentMachiningHistory.java
@@ -0,0 +1,57 @@
+package org.jeecg.modules.mdc.entity;
+
+import com.baomidou.mybatisplus.annotation.TableName;
+import com.fasterxml.jackson.annotation.JsonFormat;
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+import lombok.EqualsAndHashCode;
+import lombok.experimental.Accessors;
+import org.jeecgframework.poi.excel.annotation.Excel;
+import org.springframework.format.annotation.DateTimeFormat;
+
+import java.io.Serializable;
+import java.util.Date;
+
+/**
+ * @Description: 璁惧杞�熻礋杞藉巻鍙茶〃
+ * @Author: Lius
+ * @Date: 2024-07-24
+ * @Version: V1.0
+ */
+@Data
+@TableName("EquipmentMachining_History")
+@EqualsAndHashCode(callSuper = false)
+@Accessors(chain = true)
+@ApiModel(value = "EquipmentMachining_History瀵硅薄", description = "璁惧杞�熻礋杞藉巻鍙茶〃")
+public class EquipmentMachiningHistory implements Serializable {
+
+    private static final long serialVersionUID = 564127289735401596L;
+
+    /**
+     * 璁惧缂栧彿
+     */
+    @Excel(name = "璁惧缂栧彿", width = 15)
+    @ApiModelProperty(value = "璁惧缂栧彿")
+    private String equipmentid;
+    /**
+     * 閲囬泦鏃堕棿
+     */
+    @Excel(name = "閲囬泦鏃堕棿", width = 20, format = "yyyy-MM-dd HH:mm:ss")
+    @JsonFormat(timezone = "GMT+8", pattern = "yyyy-MM-dd HH:mm:ss")
+    @DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss")
+    @ApiModelProperty(value = "閲囬泦鏃堕棿")
+    private Date collecttime;
+    /**
+     * 涓昏酱璐熻浇
+     */
+    @Excel(name = "涓昏酱璐熻浇", width = 15)
+    @ApiModelProperty(value = "涓昏酱璐熻浇")
+    private String spindleload;
+    /**
+     * 涓昏酱杞��
+     */
+    @Excel(name = "涓昏酱杞��", width = 15)
+    @ApiModelProperty(value = "涓昏酱杞��")
+    private String spindlespeed;
+}
diff --git a/lxzn-module-mdc/src/main/java/org/jeecg/modules/mdc/entity/MachineXYZHistory.java b/lxzn-module-mdc/src/main/java/org/jeecg/modules/mdc/entity/MachineXYZHistory.java
new file mode 100644
index 0000000..a3718a9
--- /dev/null
+++ b/lxzn-module-mdc/src/main/java/org/jeecg/modules/mdc/entity/MachineXYZHistory.java
@@ -0,0 +1,67 @@
+package org.jeecg.modules.mdc.entity;
+
+import com.baomidou.mybatisplus.annotation.TableName;
+import com.fasterxml.jackson.annotation.JsonFormat;
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+import lombok.EqualsAndHashCode;
+import lombok.experimental.Accessors;
+import org.springframework.format.annotation.DateTimeFormat;
+
+import java.io.Serializable;
+import java.util.Date;
+
+/**
+ * @Description: 鍘嗗彶琛�
+ * @Author: lius
+ * @Date: 2024-07-29
+ * @Version: V1.0
+ */
+@Data
+@TableName("MachineXYZ_History")
+@EqualsAndHashCode(callSuper = false)
+@Accessors(chain = true)
+@ApiModel(value = "MachineXYZ_History瀵硅薄", description = "鍘嗗彶琛�")
+public class MachineXYZHistory implements Serializable {
+
+    private static final long serialVersionUID = 5921084425438371855L;
+
+    /**
+     * 璁惧ID
+     */
+    @ApiModelProperty(value = "璁惧ID")
+    private String equipmentid;
+    /**
+     * 閲囬泦鏃堕棿
+     */
+    @JsonFormat(timezone = "GMT+8", pattern = "yyyy-MM-dd HH:mm:ss")
+    @DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss")
+    @ApiModelProperty(value = "閲囬泦鏃堕棿")
+    private Date collecttime;
+    /**
+     * X杞村潗鏍囧��
+     */
+    @ApiModelProperty(value = "X杞村潗鏍囧��")
+    private String xmachine;
+    /**
+     * Y杞村潗鏍囧��
+     */
+    @ApiModelProperty(value = "Y杞村潗鏍囧��")
+    private String ymachine;
+    /**
+     * Z杞村潗鏍囧��
+     */
+    @ApiModelProperty(value = "Z杞村潗鏍囧��")
+    private String zmachine;
+    /**
+     * A杞村潗鏍囧��
+     */
+    @ApiModelProperty(value = "A杞村潗鏍囧��")
+    private String amachine;
+    /**
+     * B杞村潗鏍囧��
+     */
+    @ApiModelProperty(value = "B杞村潗鏍囧��")
+    private String bmachine;
+}
diff --git a/lxzn-module-mdc/src/main/java/org/jeecg/modules/mdc/job/RunningEquipmentStatusJob.java b/lxzn-module-mdc/src/main/java/org/jeecg/modules/mdc/job/RunningEquipmentStatusJob.java
index 793eb81..158fa92 100644
--- a/lxzn-module-mdc/src/main/java/org/jeecg/modules/mdc/job/RunningEquipmentStatusJob.java
+++ b/lxzn-module-mdc/src/main/java/org/jeecg/modules/mdc/job/RunningEquipmentStatusJob.java
@@ -85,7 +85,7 @@
         log.info("璁惧鐘舵�侀暱鏈熸棤鍙樺寲鎶ヨ浠诲姟 RunningEquipmentStatusJob start!  鏃堕棿:" + DateUtils.getNow());
         long startTime = System.currentTimeMillis();
         try {
-            List<MdcEquipment> equipmentList = mdcEquipmentService.list(new LambdaQueryWrapper<>());
+            List<MdcEquipment> equipmentList = mdcEquipmentService.list();
 //            List<MdcEquipment> equipmentList = mdcEquipmentService.list(new LambdaQueryWrapper<MdcEquipment>().eq(MdcEquipment::getEquipmentId, "3140045"));
             // 鑾峰彇鍒╃敤鐜囧垽瀹氬ぉ鏁�
             List<DictModel> dictModelList1 = sysDictService.queryEnableDictItemsByCode(CommonConstant.DICT_EQUIPMENT_RATE_JUDGE);
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 d8e71b2..f55d574 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
@@ -90,7 +90,7 @@
             } else {
                 date = DateUtils.format(DateUtils.getNow(), DateUtils.STR_DATE);
             }
-            List<MdcEquipment> equipmentList = mdcEquipmentService.list(new LambdaQueryWrapper<>());
+            List<MdcEquipment> equipmentList = mdcEquipmentService.list();
             MdcSystemParameters mdcSystemParameters = mdcSystemParametersService.getOne(new LambdaQueryWrapper<MdcSystemParameters>().eq(MdcSystemParameters::getCode, "equip_log_statis_time"));
             if (mdcSystemParameters == null) {
                 throw new JobExecutionException("mdc_system_parameters 琛ㄤ腑鏁版嵁缂哄け");
diff --git a/lxzn-module-mdc/src/main/java/org/jeecg/modules/mdc/job/StatisticalElectricJob.java b/lxzn-module-mdc/src/main/java/org/jeecg/modules/mdc/job/StatisticalElectricJob.java
new file mode 100644
index 0000000..9a13173
--- /dev/null
+++ b/lxzn-module-mdc/src/main/java/org/jeecg/modules/mdc/job/StatisticalElectricJob.java
@@ -0,0 +1,146 @@
+package org.jeecg.modules.mdc.job;
+
+import lombok.extern.slf4j.Slf4j;
+import org.jeecg.common.constant.CommonConstant;
+import org.jeecg.common.system.vo.DictModel;
+import org.jeecg.modules.mdc.dto.CurrentElectricHistoryDto;
+import org.jeecg.modules.mdc.dto.EquipmentMachiningHistoryDto;
+import org.jeecg.modules.mdc.dto.MachineXYZHistoryDto;
+import org.jeecg.modules.mdc.entity.Equipment;
+import org.jeecg.modules.mdc.entity.EquipmentElectricStatistical;
+import org.jeecg.modules.mdc.service.*;
+import org.jeecg.modules.mdc.util.DateUtils;
+import org.jeecg.modules.mdc.util.ThrowableUtil;
+import org.jeecg.modules.quartz.entity.QuartzJob;
+import org.jeecg.modules.quartz.entity.SysQuartzLog;
+import org.jeecg.modules.quartz.service.IQuartzJobService;
+import org.jeecg.modules.quartz.service.ISysQuartzLogService;
+import org.jeecg.modules.system.service.ISysAnnouncementService;
+import org.jeecg.modules.system.service.ISysDictService;
+import org.quartz.*;
+
+import javax.annotation.Resource;
+import java.util.ArrayList;
+import java.util.Date;
+import java.util.List;
+
+/**
+ * 璁惧杩愯鏈�澶х數娴佺粺璁�
+ *
+ * @author Lius
+ * @date 2024/7/18 15:59
+ */
+@PersistJobDataAfterExecution
+@DisallowConcurrentExecution
+@Slf4j
+public class StatisticalElectricJob implements Job {
+
+    @Resource
+    private IQuartzJobService quartzJobService;
+
+    @Resource
+    private ISysQuartzLogService sysQuartzLogService;
+
+    @Resource
+    private ISysAnnouncementService sysAnnouncementService;
+
+    @Resource
+    private IEquipmentService equipmentService;
+
+    @Resource
+    private ISysDictService sysDictService;
+
+    @Resource
+    private IEquipmentElectricStatisticalService equipmentElectricStatisticalService;
+
+    @Resource
+    private ICurrentXYZHistoryService currentXYZHistoryService;
+
+    @Resource
+    private IMachineXYZHistoryService machineXYZHistoryService;
+
+    @Resource
+    private IEquipmentMachiningHistoryService equipmentMachiningHistoryService;
+
+    @Override
+    public void execute(JobExecutionContext context) throws JobExecutionException {
+        SysQuartzLog quartzLog = new SysQuartzLog();
+        quartzLog.setCreateTime(new Date());
+        List<QuartzJob> byJobClassName = this.quartzJobService.findByJobClassName(this.getClass().getName());
+        if (byJobClassName != null && !byJobClassName.isEmpty()) {
+            quartzLog.setJobId(byJobClassName.get(0).getId());
+        }
+        log.info("璁惧杩愯鏈�澶х數娴佺粺璁� StatisticalElectricJob start!  鏃堕棿:" + DateUtils.getNow());
+        long startTime = System.currentTimeMillis();
+        try {
+            List<Equipment> equipmentList = equipmentService.list();
+            if (equipmentList != null && !equipmentList.isEmpty()) {
+                Date initDate = null;
+                EquipmentElectricStatistical electricStatistical;
+                List<EquipmentElectricStatistical> resultList = new ArrayList<>();
+                List<DictModel> dictList = sysDictService.queryEnableDictItemsByCode(CommonConstant.AXIS_TYPE);
+                if (dictList != null && !dictList.isEmpty()) {
+                    for (Equipment equipment : equipmentList) {
+                        Date lastDate = equipmentElectricStatisticalService.getMaxDate(equipment.getEquipmentid());
+                        if (lastDate == null) {
+                            Date minCollectTime = currentXYZHistoryService.getMinDate(equipment.getEquipmentid());
+                            if (minCollectTime == null) {
+                                continue;
+                            }
+                            initDate = DateUtils.removeTime(minCollectTime);
+                        }
+                        for (DictModel dictModel : dictList) {
+                            electricStatistical = new EquipmentElectricStatistical();
+                            Integer axisType = Integer.parseInt(dictModel.getValue());
+                            CurrentElectricHistoryDto currentElectricHistoryDto = currentXYZHistoryService.getMaxElectric(equipment.getEquipmentid(), axisType, initDate, DateUtils.plusTime(initDate, 1));
+                            if (currentElectricHistoryDto == null || currentElectricHistoryDto.getEquipmentID() == null || currentElectricHistoryDto.getCollectTime() == null) {
+                                initDate = DateUtils.plusTime(initDate, 1);
+                                continue;
+                            }
+                            electricStatistical.setAxistype(axisType);
+                            electricStatistical.setEquipmentid(equipment.getEquipmentid());
+                            electricStatistical.setEquipmentname(equipment.getEquipmentname());
+                            electricStatistical.setElectrictime(currentElectricHistoryDto.getCollectTime());
+                            electricStatistical.setElectricvalue(currentElectricHistoryDto.getCurrentValue());
+                            electricStatistical.setCreatedate(initDate);
+                            EquipmentMachiningHistoryDto machiningHistoryDto = equipmentMachiningHistoryService.getNearTimeSpindleLoad(equipment.getEquipmentid(), initDate, DateUtils.plusTime(initDate, 1), currentElectricHistoryDto.getCollectTime());
+                            if (machiningHistoryDto != null) {
+                                electricStatistical.setSpindlespeed(machiningHistoryDto.getSpindleSpeed());
+                                electricStatistical.setSpindleload(machiningHistoryDto.getSpindleLoad());
+                                electricStatistical.setSpindletime(machiningHistoryDto.getCollectTime());
+                            }
+                            MachineXYZHistoryDto machineXYZHistoryDto = machineXYZHistoryService.getNearAxisType(equipment.getEquipmentid(), initDate, DateUtils.plusTime(initDate, 1), currentElectricHistoryDto.getCollectTime());
+                            if (machineXYZHistoryDto != null) {
+                                electricStatistical.setAxistime(machineXYZHistoryDto.getCollectTime());
+                                if (axisType == 1) {
+                                    electricStatistical.setAxisvalue(machineXYZHistoryDto.getXMachine());
+                                } else if (axisType == 2) {
+                                    electricStatistical.setAxisvalue(machineXYZHistoryDto.getYMachine());
+                                } else if (axisType == 3) {
+                                    electricStatistical.setAxisvalue(machineXYZHistoryDto.getZMachine());
+                                } else if (axisType == 4) {
+                                    electricStatistical.setAxisvalue(machineXYZHistoryDto.getAMachine());
+                                } else if (axisType == 5) {
+                                    electricStatistical.setAxisvalue(machineXYZHistoryDto.getBMachine());
+                                }
+                            }
+                            resultList.add(electricStatistical);
+                        }
+                    }
+                }
+                if(!resultList.isEmpty()) {
+                    equipmentElectricStatisticalService.saveBatch(resultList);
+                }
+            }
+            quartzLog.setIsSuccess(0);
+        } catch (Exception e) {
+            quartzLog.setIsSuccess(-1);
+            quartzLog.setExceptionDetail(ThrowableUtil.getStackTrace(e));
+            // 鍙戦�佹秷鎭�氱煡
+            sysAnnouncementService.jobSendMessage("璁惧杩愯鏈�澶х數娴佺粺璁�", quartzLog.getExceptionDetail());
+        }
+        long endTime = System.currentTimeMillis();
+        quartzLog.setExecutionTime(Integer.parseInt(String.valueOf(endTime - startTime)));
+        sysQuartzLogService.save(quartzLog);
+    }
+}
diff --git a/lxzn-module-mdc/src/main/java/org/jeecg/modules/mdc/job/StatisticalSpindleJob.java b/lxzn-module-mdc/src/main/java/org/jeecg/modules/mdc/job/StatisticalSpindleJob.java
new file mode 100644
index 0000000..c345bef
--- /dev/null
+++ b/lxzn-module-mdc/src/main/java/org/jeecg/modules/mdc/job/StatisticalSpindleJob.java
@@ -0,0 +1,121 @@
+package org.jeecg.modules.mdc.job;
+
+import lombok.extern.slf4j.Slf4j;
+import org.jeecg.modules.mdc.dto.EquipmentMachiningHistoryDto;
+import org.jeecg.modules.mdc.dto.MachineXYZHistoryDto;
+import org.jeecg.modules.mdc.entity.Equipment;
+import org.jeecg.modules.mdc.entity.EquipmentSpindleStatistical;
+import org.jeecg.modules.mdc.service.IEquipmentMachiningHistoryService;
+import org.jeecg.modules.mdc.service.IEquipmentService;
+import org.jeecg.modules.mdc.service.IEquipmentSpindleStatisticalService;
+import org.jeecg.modules.mdc.service.IMachineXYZHistoryService;
+import org.jeecg.modules.mdc.util.DateUtils;
+import org.jeecg.modules.mdc.util.ThrowableUtil;
+import org.jeecg.modules.quartz.entity.QuartzJob;
+import org.jeecg.modules.quartz.entity.SysQuartzLog;
+import org.jeecg.modules.quartz.service.IQuartzJobService;
+import org.jeecg.modules.quartz.service.ISysQuartzLogService;
+import org.jeecg.modules.system.service.ISysAnnouncementService;
+import org.quartz.*;
+
+import javax.annotation.Resource;
+import java.util.ArrayList;
+import java.util.Date;
+import java.util.List;
+
+/**
+ * 璁惧杩愯鏈�澶т富杞磋礋杞界粺璁�
+ *
+ * @author Lius
+ * @date 2024/7/18 15:59
+ */
+@PersistJobDataAfterExecution
+@DisallowConcurrentExecution
+@Slf4j
+public class StatisticalSpindleJob implements Job {
+
+    @Resource
+    private IQuartzJobService quartzJobService;
+
+    @Resource
+    private ISysQuartzLogService sysQuartzLogService;
+
+    @Resource
+    private ISysAnnouncementService sysAnnouncementService;
+
+    @Resource
+    private IEquipmentService equipmentService;
+
+    @Resource
+    private IEquipmentSpindleStatisticalService equipmentSpindleStatisticalService;
+
+    @Resource
+    private IEquipmentMachiningHistoryService equipmentMachiningHistoryService;
+
+    @Resource
+    private IMachineXYZHistoryService machineXYZHistoryService;
+
+    @Override
+    public void execute(JobExecutionContext context) throws JobExecutionException {
+        SysQuartzLog quartzLog = new SysQuartzLog();
+        quartzLog.setCreateTime(new Date());
+        List<QuartzJob> byJobClassName = this.quartzJobService.findByJobClassName(this.getClass().getName());
+        if (byJobClassName != null && !byJobClassName.isEmpty()) {
+            quartzLog.setJobId(byJobClassName.get(0).getId());
+        }
+        log.info("璁惧杩愯鏈�澶т富杞磋礋杞界粺璁� StatisticalSpindleJob start!  鏃堕棿:" + DateUtils.getNow());
+        long startTime = System.currentTimeMillis();
+        try {
+            List<Equipment> equipmentList = equipmentService.list();
+            if (equipmentList != null && !equipmentList.isEmpty()) {
+                Date initDate = null;
+                EquipmentSpindleStatistical spindleStatistical;
+                List<EquipmentSpindleStatistical> resultList = new ArrayList<>();
+                for (Equipment equipment : equipmentList) {
+                    Date lastDate = equipmentSpindleStatisticalService.getMaxDate(equipment.getEquipmentid());
+                    if (lastDate == null) {
+                        Date minCollectTime = equipmentMachiningHistoryService.getMinDate(equipment.getEquipmentid());
+                        if (minCollectTime == null) {
+                            continue;
+                        }
+                        initDate = DateUtils.removeTime(minCollectTime);
+                    }
+
+                    spindleStatistical = new EquipmentSpindleStatistical();
+                    EquipmentMachiningHistoryDto machiningHistoryDto = equipmentMachiningHistoryService.getMaxSpindleLoad(equipment.getEquipmentid(), initDate, DateUtils.plusTime(initDate, 1));
+                    if(machiningHistoryDto == null || machiningHistoryDto.getEquipmentID() == null || machiningHistoryDto.getCollectTime() == null) {
+                        continue;
+                    }
+                    spindleStatistical.setCreatedate(initDate);
+                    spindleStatistical.setSpindlespeed(machiningHistoryDto.getSpindleSpeed());
+                    spindleStatistical.setEquipmentid(equipment.getEquipmentid());
+                    spindleStatistical.setEquipmentname(equipment.getEquipmentname());
+                    spindleStatistical.setSpindleload(machiningHistoryDto.getSpindleLoad());
+                    spindleStatistical.setSpindletime(machiningHistoryDto.getCollectTime());
+                    MachineXYZHistoryDto machineXYZHistoryDto = machineXYZHistoryService.getNearAxisType(equipment.getEquipmentid(), initDate, DateUtils.plusTime(initDate, 1), machiningHistoryDto.getCollectTime());
+                    if(machineXYZHistoryDto != null) {
+                        spindleStatistical.setAxistime(machineXYZHistoryDto.getCollectTime());
+                        spindleStatistical.setAxisx(machineXYZHistoryDto.getXMachine());
+                        spindleStatistical.setAxisy(machineXYZHistoryDto.getYMachine());
+                        spindleStatistical.setAxisz(machineXYZHistoryDto.getZMachine());
+                        spindleStatistical.setAxisa(machineXYZHistoryDto.getAMachine());
+                        spindleStatistical.setAxisb(machineXYZHistoryDto.getBMachine());
+                    }
+                    resultList.add(spindleStatistical);
+                }
+                if (!resultList.isEmpty()) {
+                    equipmentSpindleStatisticalService.saveBatch(resultList);
+                }
+            }
+            quartzLog.setIsSuccess(0);
+        } catch (Exception e) {
+            quartzLog.setIsSuccess(-1);
+            quartzLog.setExceptionDetail(ThrowableUtil.getStackTrace(e));
+            // 鍙戦�佹秷鎭�氱煡
+            sysAnnouncementService.jobSendMessage("璁惧杩愯鏈�澶т富杞磋礋杞界粺璁�", quartzLog.getExceptionDetail());
+        }
+        long endTime = System.currentTimeMillis();
+        quartzLog.setExecutionTime(Integer.parseInt(String.valueOf(endTime - startTime)));
+        sysQuartzLogService.save(quartzLog);
+    }
+}
diff --git a/lxzn-module-mdc/src/main/java/org/jeecg/modules/mdc/mapper/CurrentXYZHistoryMapper.java b/lxzn-module-mdc/src/main/java/org/jeecg/modules/mdc/mapper/CurrentXYZHistoryMapper.java
new file mode 100644
index 0000000..63d772e
--- /dev/null
+++ b/lxzn-module-mdc/src/main/java/org/jeecg/modules/mdc/mapper/CurrentXYZHistoryMapper.java
@@ -0,0 +1,36 @@
+package org.jeecg.modules.mdc.mapper;
+
+import com.baomidou.mybatisplus.core.mapper.BaseMapper;
+import org.apache.ibatis.annotations.Param;
+import org.jeecg.modules.mdc.dto.CurrentElectricHistoryDto;
+import org.jeecg.modules.mdc.entity.CurrentXYZHistory;
+
+import java.util.Date;
+
+/**
+ * @Description: 璁惧鍧愭爣鍊艰〃
+ * @Author: lius
+ * @Date: 2024-07-18
+ * @Version: V1.0
+ */
+public interface CurrentXYZHistoryMapper extends BaseMapper<CurrentXYZHistory> {
+
+    /**
+     * 鑾峰彇鏁版嵁鐨勬渶灏忔椂闂�
+     *
+     * @param equipmentId
+     * @return
+     */
+    Date getMinDate(@Param("equipmentId") String equipmentId);
+
+    /**
+     * 鑾峰彇鏌愬彴璁惧鏌愪釜鍧愭爣鐨勬渶澶х數娴�
+     *
+     * @param equipmentId
+     * @param axisType
+     * @param startDate
+     * @param endDate
+     * @return
+     */
+    CurrentElectricHistoryDto getMaxElectric(@Param("equipmentId") String equipmentId, @Param("axisType") Integer axisType, @Param("startDate") Date startDate, @Param("endDate") Date endDate);
+}
diff --git a/lxzn-module-mdc/src/main/java/org/jeecg/modules/mdc/mapper/EquipmentElectricStatisticalMapper.java b/lxzn-module-mdc/src/main/java/org/jeecg/modules/mdc/mapper/EquipmentElectricStatisticalMapper.java
index 33cf4eb..bd8346d 100644
--- a/lxzn-module-mdc/src/main/java/org/jeecg/modules/mdc/mapper/EquipmentElectricStatisticalMapper.java
+++ b/lxzn-module-mdc/src/main/java/org/jeecg/modules/mdc/mapper/EquipmentElectricStatisticalMapper.java
@@ -8,6 +8,7 @@
 import org.jeecg.modules.mdc.entity.EquipmentElectricStatistical;
 import org.jeecg.modules.mdc.vo.EquipmentElectricStatisticalVo;
 
+import java.util.Date;
 import java.util.List;
 
 /**
@@ -42,4 +43,12 @@
      * @return
      */
     List<EquipmentElectricStatisticalDto> getElectricValue(@Param("equipmentElectricStatisticalVo") EquipmentElectricStatisticalVo equipmentElectricStatisticalVo);
+
+    /**
+     * 鏍规嵁璁惧id鑾峰彇鏈�鏂颁竴鏉℃暟鎹�
+     *
+     * @param equipmentId
+     * @return
+     */
+    Date getMaxDate(@Param("equipmentId") String equipmentId);
 }
diff --git a/lxzn-module-mdc/src/main/java/org/jeecg/modules/mdc/mapper/EquipmentMachiningHistoryMapper.java b/lxzn-module-mdc/src/main/java/org/jeecg/modules/mdc/mapper/EquipmentMachiningHistoryMapper.java
new file mode 100644
index 0000000..766349e
--- /dev/null
+++ b/lxzn-module-mdc/src/main/java/org/jeecg/modules/mdc/mapper/EquipmentMachiningHistoryMapper.java
@@ -0,0 +1,46 @@
+package org.jeecg.modules.mdc.mapper;
+
+import com.baomidou.mybatisplus.core.mapper.BaseMapper;
+import org.apache.ibatis.annotations.Param;
+import org.jeecg.modules.mdc.dto.EquipmentMachiningHistoryDto;
+import org.jeecg.modules.mdc.entity.EquipmentMachiningHistory;
+
+import java.util.Date;
+
+/**
+ * @Description: 璁惧杞�熻礋杞藉巻鍙茶〃
+ * @Author: lius
+ * @Date: 2024-07-24
+ * @Version: V1.0
+ */
+public interface EquipmentMachiningHistoryMapper extends BaseMapper<EquipmentMachiningHistory> {
+
+    /**
+     * 鑾峰彇鏌愪釜鏃堕棿闄勮繎鐨勪富杞磋浆閫熷拰涓昏酱璐熻浇
+     *
+     * @param equipmentId
+     * @param startDate
+     * @param endDate
+     * @param nearTime
+     * @return
+     */
+    EquipmentMachiningHistoryDto getNearTimeSpindleLoad(@Param("equipmentId") String equipmentId, @Param("startDate") Date startDate, @Param("endDate") Date endDate, @Param("nearTime") Date nearTime);
+
+    /**
+     * 鑾峰彇鏁版嵁鐨勬渶灏忔椂闂�
+     *
+     * @param equipmentId
+     * @return
+     */
+    Date getMinDate(@Param("equipmentId") String equipmentId);
+
+    /**
+     * 鑾峰彇璁惧鏌愭鏃堕棿鍐呯殑鏈�澶т富杞磋礋杞芥暟鎹�
+     *
+     * @param equipmentId
+     * @param startDate
+     * @param endDate
+     * @return
+     */
+    EquipmentMachiningHistoryDto getMaxSpindleLoad(@Param("equipmentId") String equipmentId, @Param("startDate") Date startDate, @Param("endDate") Date endDate);
+}
diff --git a/lxzn-module-mdc/src/main/java/org/jeecg/modules/mdc/mapper/EquipmentMachiningMapper.java b/lxzn-module-mdc/src/main/java/org/jeecg/modules/mdc/mapper/EquipmentMachiningMapper.java
new file mode 100644
index 0000000..a19fbd9
--- /dev/null
+++ b/lxzn-module-mdc/src/main/java/org/jeecg/modules/mdc/mapper/EquipmentMachiningMapper.java
@@ -0,0 +1,14 @@
+package org.jeecg.modules.mdc.mapper;
+
+import com.baomidou.mybatisplus.core.mapper.BaseMapper;
+import org.jeecg.modules.mdc.entity.EquipmentMachining;
+
+/**
+ * @Description: 璁惧杞�熻礋杞借〃
+ * @Author: lius
+ * @Date: 2024-07-24
+ * @Version: V1.0
+ */
+public interface EquipmentMachiningMapper extends BaseMapper<EquipmentMachining> {
+
+}
diff --git a/lxzn-module-mdc/src/main/java/org/jeecg/modules/mdc/mapper/EquipmentSpindleStatisticalMapper.java b/lxzn-module-mdc/src/main/java/org/jeecg/modules/mdc/mapper/EquipmentSpindleStatisticalMapper.java
index 0d0bddc..af5ce44 100644
--- a/lxzn-module-mdc/src/main/java/org/jeecg/modules/mdc/mapper/EquipmentSpindleStatisticalMapper.java
+++ b/lxzn-module-mdc/src/main/java/org/jeecg/modules/mdc/mapper/EquipmentSpindleStatisticalMapper.java
@@ -7,6 +7,7 @@
 import org.jeecg.modules.mdc.entity.EquipmentSpindleStatistical;
 import org.jeecg.modules.mdc.vo.EquipmentSpindleStatisticalVo;
 
+import java.util.Date;
 import java.util.List;
 
 /**
@@ -34,4 +35,12 @@
      */
     List<EquipmentSpindleStatistical> list(@Param("equipmentSpindleStatisticalVo") EquipmentSpindleStatisticalVo equipmentSpindleStatisticalVo);
 
+    /**
+     * 鏍规嵁璁惧id鑾峰彇鏈�鏂颁竴鏉℃暟鎹�
+     *
+     * @param equipmentId
+     * @return
+     */
+    Date getMaxDate(@Param("equipmentId") String equipmentId);
+
 }
diff --git a/lxzn-module-mdc/src/main/java/org/jeecg/modules/mdc/mapper/MachineXYZHistoryMapper.java b/lxzn-module-mdc/src/main/java/org/jeecg/modules/mdc/mapper/MachineXYZHistoryMapper.java
new file mode 100644
index 0000000..daad473
--- /dev/null
+++ b/lxzn-module-mdc/src/main/java/org/jeecg/modules/mdc/mapper/MachineXYZHistoryMapper.java
@@ -0,0 +1,23 @@
+package org.jeecg.modules.mdc.mapper;
+
+import com.baomidou.mybatisplus.core.mapper.BaseMapper;
+import org.apache.ibatis.annotations.Param;
+import org.jeecg.modules.mdc.dto.MachineXYZHistoryDto;
+import org.jeecg.modules.mdc.entity.MachineXYZHistory;
+
+import java.util.Date;
+
+/**
+ * @author Lius
+ * @date 2024/7/29 14:36
+ */
+public interface MachineXYZHistoryMapper extends BaseMapper<MachineXYZHistory> {
+    /**
+     * @param equipmentId
+     * @param startDate
+     * @param endDate
+     * @param nearTime
+     * @return
+     */
+    MachineXYZHistoryDto getNearAxisType(@Param("equipmentId") String equipmentId, @Param("startDate") Date startDate, @Param("endDate") Date endDate, @Param("nearTime") Date nearTime);
+}
diff --git a/lxzn-module-mdc/src/main/java/org/jeecg/modules/mdc/mapper/xml/CurrentXYZHistoryMapper.xml b/lxzn-module-mdc/src/main/java/org/jeecg/modules/mdc/mapper/xml/CurrentXYZHistoryMapper.xml
new file mode 100644
index 0000000..194e6c9
--- /dev/null
+++ b/lxzn-module-mdc/src/main/java/org/jeecg/modules/mdc/mapper/xml/CurrentXYZHistoryMapper.xml
@@ -0,0 +1,112 @@
+<?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.CurrentXYZHistoryMapper">
+
+    <!--鑾峰彇鏁版嵁鐨勬渶灏忔椂闂�-->
+    <select id="getMinDate" resultType="java.util.Date">
+        select MIN(CollectTime) CollectTime from CurrentXYZ_History where equipmentID = #{ equipmentId }
+    </select>
+
+    <!--鑾峰彇鏌愬彴璁惧鏌愪釜鍧愭爣鐨勬渶澶х數娴�-->
+    <select id="getMaxElectric" resultType="org.jeecg.modules.mdc.dto.CurrentElectricHistoryDto">
+        <if test="axisType != null and axisType != '' and axisType == 1">
+            SELECT
+                n.XCurrent currentValue,
+                m.EquipmentID,
+                n.CollectTime
+            FROM
+            (
+                SELECT
+                MAX( ABS( CONVERT ( DECIMAL ( 18, 3 ), XCurrent ) ) ) currentValue,
+                MIN ( EquipmentID ) EquipmentID
+        </if>
+        <if test="axisType != null and axisType != '' and axisType == 2">
+            SELECT
+            n.YCurrent currentValue,
+            m.EquipmentID,
+            n.CollectTime
+            FROM
+            (
+            SELECT
+            MAX( ABS( CONVERT ( DECIMAL ( 18, 3 ), YCurrent ) ) ) currentValue,
+            MIN ( EquipmentID ) EquipmentID
+        </if>
+        <if test="axisType != null and axisType != '' and axisType == 3">
+            SELECT
+            n.ZCurrent currentValue,
+            m.EquipmentID,
+            n.C
+            ollectTime
+            FROM
+            (
+            SELECT
+            MAX( ABS( CONVERT ( DECIMAL ( 18, 3 ), ZCurrent ) ) ) currentValue,
+            MIN ( EquipmentID ) EquipmentID
+        </if>
+        <if test="axisType != null and axisType != '' and axisType == 4">
+            SELECT
+            n.ACurrent currentValue,
+            m.EquipmentID,
+            n.CollectTime
+            FROM
+            (
+            SELECT
+            MAX( ABS( CONVERT ( DECIMAL ( 18, 3 ), ACurrent ) ) ) currentValue,
+            MIN ( EquipmentID ) EquipmentID
+        </if>
+        <if test="axisType != null and axisType != '' and axisType == 5">
+            SELECT
+            n.BCurrent currentValue,
+            m.EquipmentID,
+            n.CollectTime
+            FROM
+            (
+            SELECT
+            MAX( ABS( CONVERT ( DECIMAL ( 18, 3 ), BCurrent ) ) ) currentValue,
+            MIN ( EquipmentID ) EquipmentID
+        </if>
+        FROM
+            CurrentXYZ_History
+        WHERE
+            CollectTime &gt;= #{startDate}
+            AND CollectTime &lt; #{endDate}
+            AND EquipmentID = #{equipmentId}
+            ) m
+        LEFT JOIN (
+        SELECT
+            EquipmentID,
+            CollectTime,
+            ABS( CONVERT ( DECIMAL ( 18, 3 ), XCurrent ) ) xValue,
+            XCurrent,
+            ABS( CONVERT ( DECIMAL ( 18, 3 ), YCurrent ) ) yValue,
+            YCurrent,
+            ABS( CONVERT ( DECIMAL ( 18, 3 ), ZCurrent ) ) zValue,
+            ZCurrent,
+            ABS( CONVERT ( DECIMAL ( 18, 3 ), ACurrent ) ) aValue,
+            ACurrent,
+            ABS( CONVERT ( DECIMAL ( 18, 3 ), BCurrent ) ) bValue,
+            BCurrent
+        FROM
+            CurrentXYZ_History
+        WHERE
+            CollectTime &gt;= #{startDate}
+            AND CollectTime &lt; #{endDate}
+            AND EquipmentID = #{equipmentId}
+        ) n ON m.EquipmentID= n.EquipmentID
+        <if test="axisType != null and axisType != '' and axisType == 1">
+            AND m.currentValue= n.xValue
+        </if>
+        <if test="axisType != null and axisType != '' and axisType == 2">
+            AND m.currentValue= n.yValue
+        </if>
+        <if test="axisType != null and axisType != '' and axisType == 3">
+            AND m.currentValue= n.zValue
+        </if>
+        <if test="axisType != null and axisType != '' and axisType == 4">
+            AND m.currentValue= n.aValue
+        </if>
+        <if test="axisType != null and axisType != '' and axisType == 5">
+            AND m.currentValue= n.bValue
+        </if>
+    </select>
+</mapper>
\ No newline at end of file
diff --git a/lxzn-module-mdc/src/main/java/org/jeecg/modules/mdc/mapper/xml/EquipmentElectricStatisticalMapper.xml b/lxzn-module-mdc/src/main/java/org/jeecg/modules/mdc/mapper/xml/EquipmentElectricStatisticalMapper.xml
index a32dcdc..e86cee4 100644
--- a/lxzn-module-mdc/src/main/java/org/jeecg/modules/mdc/mapper/xml/EquipmentElectricStatisticalMapper.xml
+++ b/lxzn-module-mdc/src/main/java/org/jeecg/modules/mdc/mapper/xml/EquipmentElectricStatisticalMapper.xml
@@ -85,4 +85,9 @@
         </where>
         ORDER BY id ASC
     </select>
+
+    <!--鏍规嵁璁惧id鑾峰彇鏈�鏂颁竴鏉℃暟鎹�-->
+    <select id="getMaxDate" resultType="java.util.Date">
+        SELECT MAX( createDate ) createDate FROM equipment_electric_statistical WHERE equipmentID = #{equipmentId}
+    </select>
 </mapper>
\ No newline at end of file
diff --git a/lxzn-module-mdc/src/main/java/org/jeecg/modules/mdc/mapper/xml/EquipmentMachiningHistoryMapper.xml b/lxzn-module-mdc/src/main/java/org/jeecg/modules/mdc/mapper/xml/EquipmentMachiningHistoryMapper.xml
new file mode 100644
index 0000000..94f63ea
--- /dev/null
+++ b/lxzn-module-mdc/src/main/java/org/jeecg/modules/mdc/mapper/xml/EquipmentMachiningHistoryMapper.xml
@@ -0,0 +1,94 @@
+<?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.EquipmentMachiningHistoryMapper">
+
+    <!--鑾峰彇鏌愪釜鏃堕棿闄勮繎鐨勪富杞磋浆閫熷拰涓昏酱璐熻浇-->
+    <select id="getNearTimeSpindleLoad" resultType="org.jeecg.modules.mdc.dto.EquipmentMachiningHistoryDto">
+        SELECT
+            t1.CollectTime collectTime,
+            t1.EquipmentID equipmentID,
+            t2.SpindleLoad spindleLoad,
+            t2.SpindleSpeed spindleSpeed
+        FROM
+            (
+            SELECT
+                m.diff,
+                m.EquipmentID,
+                n.CollectTime
+            FROM
+            (
+            SELECT
+                MIN( p.diff ) diff,
+                MIN( p.EquipmentID ) EquipmentID
+            FROM
+                (
+                SELECT
+                    ABS( DATEDIFF( millisecond, CollectTime, #{nearTime} ) ) diff,
+                    CollectTime,
+                    EquipmentID
+                FROM
+                    EquipmentMachining_History
+                WHERE
+                    CollectTime &gt;= #{startDate}
+                    AND CollectTime &lt; #{endDate}
+                    AND EquipmentID = #{equipmentId}
+                ) p
+            ) m
+            LEFT JOIN (
+                SELECT
+                    ABS( DATEDIFF( millisecond, CollectTime, #{nearTime} ) ) diff,
+                    CollectTime,
+                    EquipmentID
+                FROM
+                    EquipmentMachining_History
+                WHERE
+                    CollectTime &gt;= #{startDate}
+                    AND CollectTime &lt; #{endDate}
+                    AND EquipmentID = #{equipmentId}
+                ) n ON m.EquipmentID = n.EquipmentID
+                AND m.diff = n.diff
+            ) t1
+        LEFT JOIN ( SELECT EquipmentID, CollectTime, SpindleLoad, SpindleSpeed FROM EquipmentMachining_History WHERE CollectTime &gt;= #{startDate} AND CollectTime &lt; #{endDate} AND EquipmentID = #{equipmentId} ) t2 ON t1.EquipmentID = t2.EquipmentID
+        AND t1.CollectTime = t2.CollectTime
+    </select>
+
+    <select id="getMinDate" resultType="java.util.Date">
+        SELECT MIN(CollectTime) CollectTime FROM EquipmentMachining_History WHERE EquipmentID = #{equipmentId}
+    </select>
+
+
+    <select id="getMaxSpindleLoad" resultType="org.jeecg.modules.mdc.dto.EquipmentMachiningHistoryDto">
+        SELECT
+            n.SpindleLoad,
+            m.EquipmentID,
+            n.CollectTime,
+            n.SpindleSpeed
+        FROM
+            (
+            SELECT
+                MAX ( ABS( CONVERT ( DECIMAL ( 8, 3 ), SpindleLoad ) ) ) SpindleLoad,
+                MAX ( EquipmentID ) EquipmentID
+            FROM
+                EquipmentMachining_History
+            WHERE
+                CollectTime &gt;= #{startDate}
+                AND CollectTime &lt; #{endDate}
+                AND EquipmentID = #{equipmentId}
+            ) m
+        LEFT JOIN (
+            SELECT
+                EquipmentID,
+                CollectTime,
+                ABS( CONVERT ( DECIMAL ( 8, 3 ), SpindleLoad ) ) loadValue,
+                SpindleLoad,
+                SpindleSpeed
+            FROM
+                EquipmentMachining_History
+            WHERE
+                CollectTime &gt;= #{startDate}
+                AND CollectTime &lt; #{endDate}
+                AND EquipmentID = #{equipmentId}
+            ) n ON m.SpindleLoad= n.loadValue
+        AND m.EquipmentID= n.EquipmentID
+    </select>
+</mapper>
\ No newline at end of file
diff --git a/lxzn-module-mdc/src/main/java/org/jeecg/modules/mdc/mapper/xml/EquipmentMachiningMapper.xml b/lxzn-module-mdc/src/main/java/org/jeecg/modules/mdc/mapper/xml/EquipmentMachiningMapper.xml
new file mode 100644
index 0000000..1afdbd0
--- /dev/null
+++ b/lxzn-module-mdc/src/main/java/org/jeecg/modules/mdc/mapper/xml/EquipmentMachiningMapper.xml
@@ -0,0 +1,5 @@
+<?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.EquipmentMachiningMapper">
+
+</mapper>
\ No newline at end of file
diff --git a/lxzn-module-mdc/src/main/java/org/jeecg/modules/mdc/mapper/xml/EquipmentSpindleStatisticalMapper.xml b/lxzn-module-mdc/src/main/java/org/jeecg/modules/mdc/mapper/xml/EquipmentSpindleStatisticalMapper.xml
index 2623242..a4723e2 100644
--- a/lxzn-module-mdc/src/main/java/org/jeecg/modules/mdc/mapper/xml/EquipmentSpindleStatisticalMapper.xml
+++ b/lxzn-module-mdc/src/main/java/org/jeecg/modules/mdc/mapper/xml/EquipmentSpindleStatisticalMapper.xml
@@ -51,4 +51,8 @@
         </where>
         ORDER BY id ASC
     </select>
+
+    <select id="getMaxDate" resultType="java.util.Date">
+        SELECT MAX( createDate ) createDate FROM equipment_spindle_statistical WHERE equipmentID = #{equipmentId}
+    </select>
 </mapper>
\ No newline at end of file
diff --git a/lxzn-module-mdc/src/main/java/org/jeecg/modules/mdc/mapper/xml/MachineXYZHistoryMapper.xml b/lxzn-module-mdc/src/main/java/org/jeecg/modules/mdc/mapper/xml/MachineXYZHistoryMapper.xml
new file mode 100644
index 0000000..f43db70
--- /dev/null
+++ b/lxzn-module-mdc/src/main/java/org/jeecg/modules/mdc/mapper/xml/MachineXYZHistoryMapper.xml
@@ -0,0 +1,56 @@
+<?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.MachineXYZHistoryMapper">
+
+    <select id="getNearAxisType" resultType="org.jeecg.modules.mdc.dto.MachineXYZHistoryDto">
+        SELECT
+            t1.CollectTime,
+            t1.EquipmentID,
+            t2.XMachine,
+            t2.YMachine,
+            t2.ZMachine,
+            t2.AMachine,
+            t2.BMachine
+        FROM
+            (
+            SELECT
+                m.diff,
+                m.EquipmentID,
+                n.CollectTime
+            FROM
+                (
+                SELECT
+                    MIN ( p.diff ) diff,
+                    MIN ( p.EquipmentID ) EquipmentID
+                FROM
+                (
+                SELECT
+                    ABS( DATEDIFF( millisecond, CollectTime, #{nearTime} ) ) diff,
+                    CollectTime,
+                    EquipmentID
+                FROM
+                    MachineXYZ_History
+                WHERE
+                    CollectTime &gt;= #{startDate}
+                    AND CollectTime &lt; #{endDate}
+                    AND EquipmentID = #{equipmentId}
+                ) p
+            ) m
+            LEFT JOIN (
+            SELECT
+                ABS( DATEDIFF( millisecond, CollectTime, #{nearTime} ) ) diff,
+                CollectTime,
+                EquipmentID
+            FROM
+                MachineXYZ_History
+            WHERE
+                CollectTime &gt;= #{startDate}
+                AND CollectTime &lt; #{endDate}
+                AND EquipmentID = #{equipmentId}
+                ) n ON m.EquipmentID = n.EquipmentID
+                AND m.diff = n.diff
+            ) t1
+        LEFT JOIN ( SELECT CollectTime, EquipmentID, XMachine, YMachine, ZMachine, AMachine, BMachine FROM MachineXYZ_History WHERE CollectTime &gt;= #{startDate} AND CollectTime &lt; #{endDate} AND EquipmentID = #{equipmentId} ) t2 ON t1.EquipmentID= t2.EquipmentID
+        AND t1.CollectTime= t2.CollectTime
+    </select>
+</mapper>
\ No newline at end of file
diff --git a/lxzn-module-mdc/src/main/java/org/jeecg/modules/mdc/service/ICurrentXYZHistoryService.java b/lxzn-module-mdc/src/main/java/org/jeecg/modules/mdc/service/ICurrentXYZHistoryService.java
new file mode 100644
index 0000000..935b139
--- /dev/null
+++ b/lxzn-module-mdc/src/main/java/org/jeecg/modules/mdc/service/ICurrentXYZHistoryService.java
@@ -0,0 +1,37 @@
+package org.jeecg.modules.mdc.service;
+
+import com.baomidou.mybatisplus.extension.service.IService;
+import org.jeecg.modules.mdc.dto.CurrentElectricHistoryDto;
+import org.jeecg.modules.mdc.dto.MachineXYZHistoryDto;
+import org.jeecg.modules.mdc.entity.CurrentXYZHistory;
+
+import java.util.Date;
+
+/**
+ * @Description: 璁惧鍧愭爣鍊艰〃
+ * @Author: lius
+ * @Date: 2024-07-18
+ * @Version: V1.0
+ */
+public interface ICurrentXYZHistoryService extends IService<CurrentXYZHistory> {
+
+    /**
+     * 鑾峰彇鏁版嵁鐨勬渶灏忔椂闂�
+     *
+     * @param equipmentId
+     * @return
+     */
+    Date getMinDate(String equipmentId);
+
+    /**
+     * 鑾峰彇鏌愬彴璁惧鏌愪釜鍧愭爣鐨勬渶澶х數娴�
+     *
+     * @param equipmentId
+     * @param axisType
+     * @param startDate
+     * @param endDate
+     * @return
+     */
+    CurrentElectricHistoryDto getMaxElectric(String equipmentId, Integer axisType, Date startDate, Date endDate);
+
+}
diff --git a/lxzn-module-mdc/src/main/java/org/jeecg/modules/mdc/service/IEquipmentElectricStatisticalService.java b/lxzn-module-mdc/src/main/java/org/jeecg/modules/mdc/service/IEquipmentElectricStatisticalService.java
index 560d898..7104baa 100644
--- a/lxzn-module-mdc/src/main/java/org/jeecg/modules/mdc/service/IEquipmentElectricStatisticalService.java
+++ b/lxzn-module-mdc/src/main/java/org/jeecg/modules/mdc/service/IEquipmentElectricStatisticalService.java
@@ -9,6 +9,7 @@
 import org.springframework.web.servlet.ModelAndView;
 
 import javax.servlet.http.HttpServletRequest;
+import java.util.Date;
 import java.util.List;
 
 /**
@@ -47,4 +48,13 @@
      * @return
      */
     List<EquipmentElectricStatisticalDto> getElectricValue(String userId, EquipmentElectricStatisticalVo equipmentElectricStatisticalVo);
+
+    /**
+     * 鏍规嵁璁惧id鑾峰彇鏈�鏂颁竴鏉℃暟鎹�
+     *
+     * @param equipmentId
+     * @return
+     */
+    Date getMaxDate(String equipmentId);
+
 }
diff --git a/lxzn-module-mdc/src/main/java/org/jeecg/modules/mdc/service/IEquipmentMachiningHistoryService.java b/lxzn-module-mdc/src/main/java/org/jeecg/modules/mdc/service/IEquipmentMachiningHistoryService.java
new file mode 100644
index 0000000..50ade92
--- /dev/null
+++ b/lxzn-module-mdc/src/main/java/org/jeecg/modules/mdc/service/IEquipmentMachiningHistoryService.java
@@ -0,0 +1,45 @@
+package org.jeecg.modules.mdc.service;
+
+import com.baomidou.mybatisplus.extension.service.IService;
+import org.jeecg.modules.mdc.dto.EquipmentMachiningHistoryDto;
+import org.jeecg.modules.mdc.entity.EquipmentMachiningHistory;
+
+import java.util.Date;
+
+/**
+ * @Description: 璁惧杞�熻礋杞藉巻鍙茶〃
+ * @Author: lius
+ * @Date: 2024-07-24
+ * @Version: V1.0
+ */
+public interface IEquipmentMachiningHistoryService extends IService<EquipmentMachiningHistory> {
+
+    /**
+     * 鑾峰彇鏌愪釜鏃堕棿闄勮繎鐨勪富杞磋浆閫熷拰涓昏酱璐熻浇
+     *
+     * @param equipmentId
+     * @param startDate
+     * @param endDate
+     * @param nearTime
+     * @return
+     */
+    EquipmentMachiningHistoryDto getNearTimeSpindleLoad(String equipmentId, Date startDate, Date endDate, Date nearTime);
+
+    /**
+     * 鑾峰彇鏁版嵁鐨勬渶灏忔椂闂�
+     *
+     * @param equipmentId
+     * @return
+     */
+    Date getMinDate(String equipmentId);
+
+    /**
+     * 鑾峰彇璁惧鏌愭鏃堕棿鍐呯殑鏈�澶т富杞磋礋杞芥暟鎹�
+     *
+     * @param equipmentId
+     * @param startDate
+     * @param endDate
+     * @return
+     */
+    EquipmentMachiningHistoryDto getMaxSpindleLoad(String equipmentId, Date startDate, Date endDate);
+}
diff --git a/lxzn-module-mdc/src/main/java/org/jeecg/modules/mdc/service/IEquipmentMachiningService.java b/lxzn-module-mdc/src/main/java/org/jeecg/modules/mdc/service/IEquipmentMachiningService.java
new file mode 100644
index 0000000..e90449d
--- /dev/null
+++ b/lxzn-module-mdc/src/main/java/org/jeecg/modules/mdc/service/IEquipmentMachiningService.java
@@ -0,0 +1,14 @@
+package org.jeecg.modules.mdc.service;
+
+import com.baomidou.mybatisplus.extension.service.IService;
+import org.jeecg.modules.mdc.entity.EquipmentMachining;
+
+/**
+ * @Description: 璁惧杞�熻礋杞借〃
+ * @Author: lius
+ * @Date: 2024-07-24
+ * @Version: V1.0
+ */
+public interface IEquipmentMachiningService extends IService<EquipmentMachining> {
+
+}
diff --git a/lxzn-module-mdc/src/main/java/org/jeecg/modules/mdc/service/IEquipmentSpindleStatisticalService.java b/lxzn-module-mdc/src/main/java/org/jeecg/modules/mdc/service/IEquipmentSpindleStatisticalService.java
index 3673cd3..fcbe98d 100644
--- a/lxzn-module-mdc/src/main/java/org/jeecg/modules/mdc/service/IEquipmentSpindleStatisticalService.java
+++ b/lxzn-module-mdc/src/main/java/org/jeecg/modules/mdc/service/IEquipmentSpindleStatisticalService.java
@@ -8,6 +8,7 @@
 import org.springframework.web.servlet.ModelAndView;
 
 import javax.servlet.http.HttpServletRequest;
+import java.util.Date;
 
 /**
  * @Description: 璁惧璐熻浇
@@ -36,4 +37,13 @@
      * @return
      */
     ModelAndView exportXls(String userId, EquipmentSpindleStatisticalVo equipmentSpindleStatisticalVo);
+
+    /**
+     * 鏍规嵁璁惧id鑾峰彇鏈�鏂颁竴鏉℃暟鎹�
+     *
+     * @param equipmentId
+     * @return
+     */
+    Date getMaxDate(String equipmentId);
+
 }
diff --git a/lxzn-module-mdc/src/main/java/org/jeecg/modules/mdc/service/IMachineXYZHistoryService.java b/lxzn-module-mdc/src/main/java/org/jeecg/modules/mdc/service/IMachineXYZHistoryService.java
new file mode 100644
index 0000000..ba05177
--- /dev/null
+++ b/lxzn-module-mdc/src/main/java/org/jeecg/modules/mdc/service/IMachineXYZHistoryService.java
@@ -0,0 +1,25 @@
+package org.jeecg.modules.mdc.service;
+
+import com.baomidou.mybatisplus.extension.service.IService;
+import org.jeecg.modules.mdc.dto.MachineXYZHistoryDto;
+import org.jeecg.modules.mdc.entity.MachineXYZHistory;
+
+import java.util.Date;
+
+/**
+ * @author Lius
+ * @date 2024/7/29 14:22
+ */
+public interface IMachineXYZHistoryService extends IService<MachineXYZHistory> {
+
+    /**
+     *
+     * @param equipmentId
+     * @param startDate
+     * @param endDate
+     * @param nearTime
+     * @return
+     */
+    MachineXYZHistoryDto getNearAxisType(String equipmentId, Date startDate, Date endDate, Date nearTime);
+
+}
diff --git a/lxzn-module-mdc/src/main/java/org/jeecg/modules/mdc/service/impl/CurrentXYZHistoryServiceImpl.java b/lxzn-module-mdc/src/main/java/org/jeecg/modules/mdc/service/impl/CurrentXYZHistoryServiceImpl.java
new file mode 100644
index 0000000..280ca6e
--- /dev/null
+++ b/lxzn-module-mdc/src/main/java/org/jeecg/modules/mdc/service/impl/CurrentXYZHistoryServiceImpl.java
@@ -0,0 +1,45 @@
+package org.jeecg.modules.mdc.service.impl;
+
+import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
+import org.jeecg.modules.mdc.dto.CurrentElectricHistoryDto;
+import org.jeecg.modules.mdc.entity.CurrentXYZHistory;
+import org.jeecg.modules.mdc.mapper.CurrentXYZHistoryMapper;
+import org.jeecg.modules.mdc.service.ICurrentXYZHistoryService;
+import org.springframework.stereotype.Service;
+
+import java.util.Date;
+
+/**
+ * @Description: 璁惧鍧愭爣鍊艰〃
+ * @Author: lius
+ * @Date: 2024-07-18
+ * @Version: V1.0
+ */
+@Service
+public class CurrentXYZHistoryServiceImpl extends ServiceImpl<CurrentXYZHistoryMapper, CurrentXYZHistory> implements ICurrentXYZHistoryService {
+
+    /**
+     * 鑾峰彇鏁版嵁鐨勬渶灏忔椂闂�
+     *
+     * @param equipmentId
+     * @return
+     */
+    @Override
+    public Date getMinDate(String equipmentId) {
+        return this.baseMapper.getMinDate(equipmentId);
+    }
+
+    /**
+     * 鑾峰彇鏌愬彴璁惧鏌愪釜鍧愭爣鐨勬渶澶х數娴�
+     *
+     * @param equipmentId
+     * @param axisType
+     * @param startDate
+     * @param endDate
+     * @return
+     */
+    @Override
+    public CurrentElectricHistoryDto getMaxElectric(String equipmentId, Integer axisType, Date startDate, Date endDate) {
+        return this.baseMapper.getMaxElectric(equipmentId, axisType, startDate, endDate);
+    }
+}
diff --git a/lxzn-module-mdc/src/main/java/org/jeecg/modules/mdc/service/impl/EquipmentElectricStatisticalServiceImpl.java b/lxzn-module-mdc/src/main/java/org/jeecg/modules/mdc/service/impl/EquipmentElectricStatisticalServiceImpl.java
index 73f1ded..054a252 100644
--- a/lxzn-module-mdc/src/main/java/org/jeecg/modules/mdc/service/impl/EquipmentElectricStatisticalServiceImpl.java
+++ b/lxzn-module-mdc/src/main/java/org/jeecg/modules/mdc/service/impl/EquipmentElectricStatisticalServiceImpl.java
@@ -1,13 +1,11 @@
 package org.jeecg.modules.mdc.service.impl;
 
-import cn.hutool.core.date.DateUtil;
 import com.baomidou.mybatisplus.core.metadata.IPage;
 import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
 import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
 import org.apache.commons.lang.StringUtils;
 import org.apache.shiro.SecurityUtils;
 import org.jeecg.common.system.vo.LoginUser;
-import org.jeecg.modules.mdc.dto.EquipmentAlarmDto;
 import org.jeecg.modules.mdc.dto.EquipmentElectricStatisticalDto;
 import org.jeecg.modules.mdc.entity.EquipmentElectricStatistical;
 import org.jeecg.modules.mdc.mapper.EquipmentElectricStatisticalMapper;
@@ -25,6 +23,7 @@
 import javax.servlet.http.HttpServletRequest;
 import java.util.ArrayList;
 import java.util.Collections;
+import java.util.Date;
 import java.util.List;
 
 /**
@@ -138,4 +137,15 @@
         }
         return equipmentElectricStatisticals;
     }
+
+    /**
+     * 鏍规嵁璁惧id鑾峰彇鏈�鏂颁竴鏉℃暟鎹�
+     *
+     * @param equipmentId
+     * @return
+     */
+    @Override
+    public Date getMaxDate(String equipmentId) {
+        return this.baseMapper.getMaxDate(equipmentId);
+    }
 }
diff --git a/lxzn-module-mdc/src/main/java/org/jeecg/modules/mdc/service/impl/EquipmentMachiningHistoryServiceImpl.java b/lxzn-module-mdc/src/main/java/org/jeecg/modules/mdc/service/impl/EquipmentMachiningHistoryServiceImpl.java
new file mode 100644
index 0000000..f48a51c
--- /dev/null
+++ b/lxzn-module-mdc/src/main/java/org/jeecg/modules/mdc/service/impl/EquipmentMachiningHistoryServiceImpl.java
@@ -0,0 +1,58 @@
+package org.jeecg.modules.mdc.service.impl;
+
+import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
+import org.jeecg.modules.mdc.dto.EquipmentMachiningHistoryDto;
+import org.jeecg.modules.mdc.entity.EquipmentMachiningHistory;
+import org.jeecg.modules.mdc.mapper.EquipmentMachiningHistoryMapper;
+import org.jeecg.modules.mdc.service.IEquipmentMachiningHistoryService;
+import org.springframework.stereotype.Service;
+
+import java.util.Date;
+
+/**
+ * @Description: 璁惧杞�熻礋杞藉巻鍙茶〃
+ * @Author: lius
+ * @Date: 2024-07-24
+ * @Version: V1.0
+ */
+@Service
+public class EquipmentMachiningHistoryServiceImpl extends ServiceImpl<EquipmentMachiningHistoryMapper, EquipmentMachiningHistory> implements IEquipmentMachiningHistoryService {
+
+    /**
+     * 鑾峰彇鏌愪釜鏃堕棿闄勮繎鐨勪富杞磋浆閫熷拰涓昏酱璐熻浇
+     *
+     * @param equipmentId
+     * @param startDate
+     * @param endDate
+     * @param nearTime
+     * @return
+     */
+    @Override
+    public EquipmentMachiningHistoryDto getNearTimeSpindleLoad(String equipmentId, Date startDate, Date endDate, Date nearTime) {
+        return this.baseMapper.getNearTimeSpindleLoad(equipmentId, startDate, endDate, nearTime);
+    }
+
+    /**
+     * 鑾峰彇鏁版嵁鐨勬渶灏忔椂闂�
+     *
+     * @param equipmentId
+     * @return
+     */
+    @Override
+    public Date getMinDate(String equipmentId) {
+        return this.baseMapper.getMinDate(equipmentId);
+    }
+
+    /**
+     * 鑾峰彇璁惧鏌愭鏃堕棿鍐呯殑鏈�澶т富杞磋礋杞芥暟鎹�
+     *
+     * @param equipmentId
+     * @param startDate
+     * @param endDate
+     * @return
+     */
+    @Override
+    public EquipmentMachiningHistoryDto getMaxSpindleLoad(String equipmentId, Date startDate, Date endDate) {
+        return this.baseMapper.getMaxSpindleLoad(equipmentId, startDate, endDate);
+    }
+}
diff --git a/lxzn-module-mdc/src/main/java/org/jeecg/modules/mdc/service/impl/EquipmentMachiningServiceImpl.java b/lxzn-module-mdc/src/main/java/org/jeecg/modules/mdc/service/impl/EquipmentMachiningServiceImpl.java
new file mode 100644
index 0000000..b1709f4
--- /dev/null
+++ b/lxzn-module-mdc/src/main/java/org/jeecg/modules/mdc/service/impl/EquipmentMachiningServiceImpl.java
@@ -0,0 +1,18 @@
+package org.jeecg.modules.mdc.service.impl;
+
+import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
+import org.jeecg.modules.mdc.entity.EquipmentMachining;
+import org.jeecg.modules.mdc.mapper.EquipmentMachiningMapper;
+import org.jeecg.modules.mdc.service.IEquipmentMachiningService;
+import org.springframework.stereotype.Service;
+
+/**
+ * @Description: 璁惧杞�熻礋杞借〃
+ * @Author: lius
+ * @Date: 2024-07-24
+ * @Version: V1.0
+ */
+@Service
+public class EquipmentMachiningServiceImpl extends ServiceImpl<EquipmentMachiningMapper, EquipmentMachining> implements IEquipmentMachiningService {
+
+}
diff --git a/lxzn-module-mdc/src/main/java/org/jeecg/modules/mdc/service/impl/EquipmentSpindleStatisticalServiceImpl.java b/lxzn-module-mdc/src/main/java/org/jeecg/modules/mdc/service/impl/EquipmentSpindleStatisticalServiceImpl.java
index 854377f..90eaced 100644
--- a/lxzn-module-mdc/src/main/java/org/jeecg/modules/mdc/service/impl/EquipmentSpindleStatisticalServiceImpl.java
+++ b/lxzn-module-mdc/src/main/java/org/jeecg/modules/mdc/service/impl/EquipmentSpindleStatisticalServiceImpl.java
@@ -6,7 +6,6 @@
 import org.apache.commons.lang.StringUtils;
 import org.apache.shiro.SecurityUtils;
 import org.jeecg.common.system.vo.LoginUser;
-import org.jeecg.modules.mdc.entity.EquipmentElectricStatistical;
 import org.jeecg.modules.mdc.entity.EquipmentSpindleStatistical;
 import org.jeecg.modules.mdc.mapper.EquipmentSpindleStatisticalMapper;
 import org.jeecg.modules.mdc.service.IEquipmentSpindleStatisticalService;
@@ -22,6 +21,7 @@
 import javax.servlet.http.HttpServletRequest;
 import java.util.ArrayList;
 import java.util.Collections;
+import java.util.Date;
 import java.util.List;
 
 /**
@@ -133,4 +133,15 @@
         mv.addObject(NormalExcelConstants.DATA_LIST, equipmentSpindleStatisticals);
         return mv;
     }
+
+    /**
+     * 鏍规嵁璁惧id鑾峰彇鏈�鏂颁竴鏉℃暟鎹�
+     *
+     * @param equipmentId
+     * @return
+     */
+    @Override
+    public Date getMaxDate(String equipmentId) {
+        return this.baseMapper.getMaxDate(equipmentId);
+    }
 }
diff --git a/lxzn-module-mdc/src/main/java/org/jeecg/modules/mdc/service/impl/MachineXYZHistoryServiceImpl.java b/lxzn-module-mdc/src/main/java/org/jeecg/modules/mdc/service/impl/MachineXYZHistoryServiceImpl.java
new file mode 100644
index 0000000..5312169
--- /dev/null
+++ b/lxzn-module-mdc/src/main/java/org/jeecg/modules/mdc/service/impl/MachineXYZHistoryServiceImpl.java
@@ -0,0 +1,31 @@
+package org.jeecg.modules.mdc.service.impl;
+
+import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
+import org.jeecg.modules.mdc.dto.MachineXYZHistoryDto;
+import org.jeecg.modules.mdc.entity.MachineXYZHistory;
+import org.jeecg.modules.mdc.mapper.MachineXYZHistoryMapper;
+import org.jeecg.modules.mdc.service.IMachineXYZHistoryService;
+import org.springframework.stereotype.Service;
+
+import java.util.Date;
+
+/**
+ * @author Lius
+ * @date 2024/7/29 14:34
+ */
+@Service
+public class MachineXYZHistoryServiceImpl extends ServiceImpl<MachineXYZHistoryMapper, MachineXYZHistory> implements IMachineXYZHistoryService {
+
+    /**
+     *
+     * @param equipmentId
+     * @param startDate
+     * @param endDate
+     * @param nearTime
+     * @return
+     */
+    @Override
+    public MachineXYZHistoryDto getNearAxisType(String equipmentId, Date startDate, Date endDate, Date nearTime) {
+        return this.baseMapper.getNearAxisType(equipmentId, startDate, endDate, nearTime);
+    }
+}
diff --git a/lxzn-module-mdc/src/main/java/org/jeecg/modules/mdcJc/controller/ClassMonthlyscheduleController.java b/lxzn-module-mdc/src/main/java/org/jeecg/modules/mdcJc/controller/ClassMonthlyScheduleController.java
similarity index 70%
rename from lxzn-module-mdc/src/main/java/org/jeecg/modules/mdcJc/controller/ClassMonthlyscheduleController.java
rename to lxzn-module-mdc/src/main/java/org/jeecg/modules/mdcJc/controller/ClassMonthlyScheduleController.java
index c6c7102..771a871 100644
--- a/lxzn-module-mdc/src/main/java/org/jeecg/modules/mdcJc/controller/ClassMonthlyscheduleController.java
+++ b/lxzn-module-mdc/src/main/java/org/jeecg/modules/mdcJc/controller/ClassMonthlyScheduleController.java
@@ -6,8 +6,7 @@
 import org.jeecg.common.api.vo.Result;
 import org.jeecg.common.system.base.controller.JeecgController;
 import org.jeecg.modules.mdcJc.entity.ClassMonthlyschedule;
-import org.jeecg.modules.mdcJc.mapper.ClassMonthlyscheduleMapper;
-import org.jeecg.modules.mdcJc.service.IClassMonthlyscheduleService;
+import org.jeecg.modules.mdcJc.service.IClassMonthlyScheduleService;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.web.bind.annotation.GetMapping;
 import org.springframework.web.bind.annotation.RequestMapping;
@@ -21,15 +20,15 @@
 @Api(tags = "闆嗘垚")
 @RestController
 @RequestMapping("/mdcJc/mdcAlarmInfo")
-public class ClassMonthlyscheduleController extends JeecgController<ClassMonthlyschedule,IClassMonthlyscheduleService> {
+public class ClassMonthlyScheduleController extends JeecgController<ClassMonthlyschedule, IClassMonthlyScheduleService> {
 
     @Autowired
-    private IClassMonthlyscheduleService classMonthlyscheduleService;
+    private IClassMonthlyScheduleService classMonthlyScheduleService;
 
     @ApiOperation(value = "mes", notes = "mes")
     @GetMapping("/findListClass")
     public Result<?> findListClass() {
-        classMonthlyscheduleService.findListClass("2024-06");
+        classMonthlyScheduleService.findListClass("2024-06");
         return null;
     }
 }
diff --git a/lxzn-module-mdc/src/main/java/org/jeecg/modules/mdcJc/entity/MdcOnLineQueue.java b/lxzn-module-mdc/src/main/java/org/jeecg/modules/mdcJc/entity/MdcOnLineQueue.java
index 8c10da6..429bf3e 100644
--- a/lxzn-module-mdc/src/main/java/org/jeecg/modules/mdcJc/entity/MdcOnLineQueue.java
+++ b/lxzn-module-mdc/src/main/java/org/jeecg/modules/mdcJc/entity/MdcOnLineQueue.java
@@ -22,7 +22,7 @@
 @Data
 @EqualsAndHashCode(callSuper = false)
 @Accessors(chain = true)
-@TableName("mdcJc_OnLine_Queue")
+@TableName("mdcJc_OnLineQueue")
 @ApiModel(value = "鑷姩绾夸笂绾�")
 public class MdcOnLineQueue implements Serializable {
     private static final long serialVersionUID = -4733120585358211415L;
@@ -32,12 +32,16 @@
 
     @TableField(value = "id")
     private Integer id;
+    @TableField(value = "devCode")
+    private String devCode;
     @TableField(value = "partBarCode")
     private String partBarCode;
     @TableField(value = "productNo")
     private String productNo;
     @TableField(value = "productName")
     private String productName;
+    @JsonFormat(timezone = "GMT+8",pattern = "yyyy-MM-dd HH:mm:ss")
+    @DateTimeFormat(pattern="yyyy-MM-dd HH:mm:ss")
     @TableField(value = "scanTime")
     private Date scanTime;
     @TableField(value = "remark")
@@ -49,5 +53,6 @@
     @JsonFormat(timezone = "GMT+8",pattern = "yyyy-MM-dd HH:mm:ss")
     @DateTimeFormat(pattern="yyyy-MM-dd HH:mm:ss")
     @ApiModelProperty(value = "鍒涘缓鏃ユ湡")
+    @TableField(value = "createTime")
     private Date createTime;
 }
diff --git a/lxzn-module-mdc/src/main/java/org/jeecg/modules/mdcJc/entity/MdcProductDayschedule.java b/lxzn-module-mdc/src/main/java/org/jeecg/modules/mdcJc/entity/MdcProductDayschedule.java
index 6d53f47..372d199 100644
--- a/lxzn-module-mdc/src/main/java/org/jeecg/modules/mdcJc/entity/MdcProductDayschedule.java
+++ b/lxzn-module-mdc/src/main/java/org/jeecg/modules/mdcJc/entity/MdcProductDayschedule.java
@@ -31,33 +31,68 @@
     @TableId(type = IdType.ASSIGN_ID)
     private String mdc_id;
 
-    @TableField(value = "ID")
+    @TableField(value = "id")
     private Integer id;
-    @TableField(value = "PlanDate")
+    /**
+     * 璁″垝鏃ユ湡
+     */
+    @TableField(value = "planDate")
     private String planDate;
-    @TableField(value = "ProductNo")
+    /**
+     * 闆堕儴浠跺彿
+     */
+    @TableField(value = "productNo")
     private String productNo;
-    @TableField(value = "ProductName")
+    /**
+     * 闆堕儴浠跺悕绉�
+     */
+    @TableField(value = "productName")
     private String productName;
-    @TableField(value = "OrderID")
+    /**
+     * 宸ュ崟鍙�
+     */
+    @TableField(value = "orderId")
     private String orderId;
-    @TableField(value = "ProcedureName")
+    /**
+     * 宸ュ崟鍚嶇О
+     */
+    @TableField(value = "procedureName")
     private String procedureName;
-    @TableField(value = "Clazz")
+    /**
+     * 鐝粍
+     */
+    @TableField(value = "clazz")
     private String clazz;
-    @TableField(value = "PlanCount")
+    /**
+     * 璁″垝閲�
+     */
+    @TableField(value = "planCount")
     private Integer planCount;
-    @TableField(value = "CompletionCount")
+    /**
+     * 瀹屾垚閲�
+     */
+    @TableField(value = "completionCount")
     private Integer completionCount;
-    @TableField(value = "QualifiedCount")
+    /**
+     * 鍚堟牸閲�
+     */
+    @TableField(value = "qualifiedCount")
     private Integer qualifiedCount;
-    @TableField(value = "ProcessRoute")
+    /**
+     * 宸ヨ壓璺嚎
+     */
+    @TableField(value = "processRoute")
     private String processRoute;
-    @TableField(value = "EquipmentID")
+    /**
+     * 璁惧缂栧彿
+     */
+    @TableField(value = "equipmentId")
     private String equipmentId;
-    @TableField(value = "IsAutomaticLine")
+    /**
+     * 鑷姩绾挎爣璇�
+     */
+    @TableField(value = "isAutomaticLine")
     private String isAutomaticLine;
-
     /**
      * 鍒涘缓鏃ユ湡
      */
diff --git a/lxzn-module-mdc/src/main/java/org/jeecg/modules/mdcJc/entity/MdcUnderLineQueue.java b/lxzn-module-mdc/src/main/java/org/jeecg/modules/mdcJc/entity/MdcUnderLineQueue.java
index 6c0f74a..3a7f1f0 100644
--- a/lxzn-module-mdc/src/main/java/org/jeecg/modules/mdcJc/entity/MdcUnderLineQueue.java
+++ b/lxzn-module-mdc/src/main/java/org/jeecg/modules/mdcJc/entity/MdcUnderLineQueue.java
@@ -22,7 +22,7 @@
 @Data
 @EqualsAndHashCode(callSuper = false)
 @Accessors(chain = true)
-@TableName("mdcJc_UnderLine_Queue")
+@TableName("mdcJc_UnderLineQueue")
 @ApiModel(value = "鑷姩绾夸笅绾块槦鍒桵ES")
 public class MdcUnderLineQueue implements Serializable {
 
@@ -51,5 +51,6 @@
     @JsonFormat(timezone = "GMT+8",pattern = "yyyy-MM-dd HH:mm:ss")
     @DateTimeFormat(pattern="yyyy-MM-dd HH:mm:ss")
     @ApiModelProperty(value = "鍒涘缓鏃ユ湡")
+    @TableField(value = "createTime")
     private Date createTime;
 }
diff --git a/lxzn-module-mdc/src/main/java/org/jeecg/modules/mdcJc/entity/ProductDayschedule.java b/lxzn-module-mdc/src/main/java/org/jeecg/modules/mdcJc/entity/ProductDayschedule.java
index 1513fa0..4d307c5 100644
--- a/lxzn-module-mdc/src/main/java/org/jeecg/modules/mdcJc/entity/ProductDayschedule.java
+++ b/lxzn-module-mdc/src/main/java/org/jeecg/modules/mdcJc/entity/ProductDayschedule.java
@@ -15,7 +15,7 @@
 @EqualsAndHashCode(callSuper = false)
 @Accessors(chain = true)
 @TableName("T_ProductDayschedule")
-@ApiModel(value = "褰撴湀闆堕儴浠惰鍒掕繘搴�")
+@ApiModel(value = "褰撴棩闆堕儴浠惰鍒掕繘搴�")
 public class ProductDayschedule {
     @TableField(value = "ID")
     private Integer id;
diff --git a/lxzn-module-mdc/src/main/java/org/jeecg/modules/mdcJc/job/OnLineQueueJob.java b/lxzn-module-mdc/src/main/java/org/jeecg/modules/mdcJc/job/OnLineQueueJob.java
new file mode 100644
index 0000000..7e694eb
--- /dev/null
+++ b/lxzn-module-mdc/src/main/java/org/jeecg/modules/mdcJc/job/OnLineQueueJob.java
@@ -0,0 +1,65 @@
+package org.jeecg.modules.mdcJc.job;
+
+import lombok.extern.slf4j.Slf4j;
+import org.jeecg.common.util.DateUtils;
+import org.jeecg.modules.mdc.util.ThrowableUtil;
+import org.jeecg.modules.mdcJc.service.IMdcOnLineQueueService;
+import org.jeecg.modules.quartz.entity.QuartzJob;
+import org.jeecg.modules.quartz.entity.SysQuartzLog;
+import org.jeecg.modules.quartz.service.IQuartzJobService;
+import org.jeecg.modules.quartz.service.ISysQuartzLogService;
+import org.jeecg.modules.system.service.ISysAnnouncementService;
+import org.quartz.*;
+import org.springframework.beans.factory.annotation.Autowired;
+
+import javax.annotation.Resource;
+import java.util.Date;
+import java.util.List;
+
+/**
+ * @author Lius
+ * @date 2024/8/12 10:35
+ */
+@PersistJobDataAfterExecution
+@DisallowConcurrentExecution
+@Slf4j
+public class OnLineQueueJob implements Job {
+
+    @Resource
+    private ISysQuartzLogService sysQuartzLogService;
+
+    @Resource
+    private IQuartzJobService quartzJobService;
+
+    @Resource
+    private ISysAnnouncementService sysAnnouncementService;
+
+    @Resource
+    private IMdcOnLineQueueService mdcOnLineQueueService;
+
+    @Override
+    public void execute(JobExecutionContext context) throws JobExecutionException {
+        SysQuartzLog quartzLog = new SysQuartzLog();
+        quartzLog.setCreateTime(new Date());
+        List<QuartzJob> byJobClassName = this.quartzJobService.findByJobClassName(this.getClass().getName());
+        if (byJobClassName != null && !byJobClassName.isEmpty()) {
+            quartzLog.setJobId(byJobClassName.get(0).getId());
+        }
+        log.info("鑷姩涓婄嚎浠诲姟 OnLineQueueJob start!  鏃堕棿:" + DateUtils.now());
+        long startTime = System.currentTimeMillis();
+        try {
+
+            mdcOnLineQueueService.saveOnLineQueueList();
+
+            quartzLog.setIsSuccess(0);
+        } catch (Exception e) {
+            quartzLog.setIsSuccess(-1);
+            quartzLog.setExceptionDetail(ThrowableUtil.getStackTrace(e));
+            // 鍙戦�佹秷鎭�氱煡
+            sysAnnouncementService.jobSendMessage("鑷姩涓婄嚎浠诲姟", quartzLog.getExceptionDetail());
+        }
+        long endTime = System.currentTimeMillis();
+        quartzLog.setExecutionTime(Integer.parseInt(String.valueOf(endTime - startTime)));
+        sysQuartzLogService.save(quartzLog);
+    }
+}
diff --git a/lxzn-module-mdc/src/main/java/org/jeecg/modules/mdcJc/job/QualityMonthJob.java b/lxzn-module-mdc/src/main/java/org/jeecg/modules/mdcJc/job/QualityMonthJob.java
new file mode 100644
index 0000000..9aaa804
--- /dev/null
+++ b/lxzn-module-mdc/src/main/java/org/jeecg/modules/mdcJc/job/QualityMonthJob.java
@@ -0,0 +1,64 @@
+package org.jeecg.modules.mdcJc.job;
+
+import lombok.extern.slf4j.Slf4j;
+import org.jeecg.common.util.DateUtils;
+import org.jeecg.modules.mdc.util.ThrowableUtil;
+import org.jeecg.modules.mdcJc.service.IMdcQualityMonthService;
+import org.jeecg.modules.quartz.entity.QuartzJob;
+import org.jeecg.modules.quartz.entity.SysQuartzLog;
+import org.jeecg.modules.quartz.service.IQuartzJobService;
+import org.jeecg.modules.quartz.service.ISysQuartzLogService;
+import org.jeecg.modules.system.service.ISysAnnouncementService;
+import org.quartz.*;
+
+import javax.annotation.Resource;
+import java.util.Date;
+import java.util.List;
+
+/**
+ * @author Lius
+ * @date 2024/8/12 10:34
+ */
+@PersistJobDataAfterExecution
+@DisallowConcurrentExecution
+@Slf4j
+public class QualityMonthJob implements Job {
+
+    @Resource
+    private ISysQuartzLogService sysQuartzLogService;
+
+    @Resource
+    private IQuartzJobService quartzJobService;
+
+    @Resource
+    private ISysAnnouncementService sysAnnouncementService;
+
+    @Resource
+    private IMdcQualityMonthService mdcQualityMonthService;
+
+    @Override
+    public void execute(JobExecutionContext context) throws JobExecutionException {
+        SysQuartzLog quartzLog = new SysQuartzLog();
+        quartzLog.setCreateTime(new Date());
+        List<QuartzJob> byJobClassName = this.quartzJobService.findByJobClassName(this.getClass().getName());
+        if (byJobClassName != null && !byJobClassName.isEmpty()) {
+            quartzLog.setJobId(byJobClassName.get(0).getId());
+        }
+        log.info("闆堕儴浠舵湀鐢熶骇閲忎换鍔� QualityMonthJob start!  鏃堕棿:" + DateUtils.now());
+        long startTime = System.currentTimeMillis();
+        try {
+
+            mdcQualityMonthService.saveQualityMonth();
+
+            quartzLog.setIsSuccess(0);
+        } catch (Exception e) {
+            quartzLog.setIsSuccess(-1);
+            quartzLog.setExceptionDetail(ThrowableUtil.getStackTrace(e));
+            // 鍙戦�佹秷鎭�氱煡
+            sysAnnouncementService.jobSendMessage("闆堕儴浠舵湀鐢熶骇閲忎换鍔�", quartzLog.getExceptionDetail());
+        }
+        long endTime = System.currentTimeMillis();
+        quartzLog.setExecutionTime(Integer.parseInt(String.valueOf(endTime - startTime)));
+        sysQuartzLogService.save(quartzLog);
+    }
+}
diff --git a/lxzn-module-mdc/src/main/java/org/jeecg/modules/mdcJc/job/ScheduleClassMonthJob.java b/lxzn-module-mdc/src/main/java/org/jeecg/modules/mdcJc/job/ScheduleClassMonthJob.java
new file mode 100644
index 0000000..5beac0a
--- /dev/null
+++ b/lxzn-module-mdc/src/main/java/org/jeecg/modules/mdcJc/job/ScheduleClassMonthJob.java
@@ -0,0 +1,64 @@
+package org.jeecg.modules.mdcJc.job;
+
+import lombok.extern.slf4j.Slf4j;
+import org.jeecg.common.util.DateUtils;
+import org.jeecg.modules.mdc.util.ThrowableUtil;
+import org.jeecg.modules.mdcJc.service.IMdcClassMonthService;
+import org.jeecg.modules.quartz.entity.QuartzJob;
+import org.jeecg.modules.quartz.entity.SysQuartzLog;
+import org.jeecg.modules.quartz.service.IQuartzJobService;
+import org.jeecg.modules.quartz.service.ISysQuartzLogService;
+import org.jeecg.modules.system.service.ISysAnnouncementService;
+import org.quartz.*;
+
+import javax.annotation.Resource;
+import java.util.Date;
+import java.util.List;
+
+/**
+ * @author Lius
+ * @date 2024/8/12 10:31
+ */
+@PersistJobDataAfterExecution
+@DisallowConcurrentExecution
+@Slf4j
+public class ScheduleClassMonthJob implements Job {
+
+    @Resource
+    private ISysQuartzLogService sysQuartzLogService;
+
+    @Resource
+    private IQuartzJobService quartzJobService;
+
+    @Resource
+    private ISysAnnouncementService sysAnnouncementService;
+
+    @Resource
+    private IMdcClassMonthService mdcClassMonthService;
+
+    @Override
+    public void execute(JobExecutionContext context) throws JobExecutionException {
+        SysQuartzLog quartzLog = new SysQuartzLog();
+        quartzLog.setCreateTime(new Date());
+        List<QuartzJob> byJobClassName = this.quartzJobService.findByJobClassName(this.getClass().getName());
+        if (byJobClassName != null && !byJobClassName.isEmpty()) {
+            quartzLog.setJobId(byJobClassName.get(0).getId());
+        }
+        log.info("鏈堢彮缁勫畬鎴愭儏鍐典换鍔� ScheduleClassMonthJob start!  鏃堕棿:" + DateUtils.now());
+        long startTime = System.currentTimeMillis();
+        try {
+
+            mdcClassMonthService.saveOrUpdateClassMonthSchedule();
+
+            quartzLog.setIsSuccess(0);
+        } catch (Exception e) {
+            quartzLog.setIsSuccess(-1);
+            quartzLog.setExceptionDetail(ThrowableUtil.getStackTrace(e));
+            // 鍙戦�佹秷鎭�氱煡
+            sysAnnouncementService.jobSendMessage("鏈堢彮缁勫畬鎴愭儏鍐典换鍔�", quartzLog.getExceptionDetail());
+        }
+        long endTime = System.currentTimeMillis();
+        quartzLog.setExecutionTime(Integer.parseInt(String.valueOf(endTime - startTime)));
+        sysQuartzLogService.save(quartzLog);
+    }
+}
diff --git a/lxzn-module-mdc/src/main/java/org/jeecg/modules/mdcJc/job/ScheduleProductDayJob.java b/lxzn-module-mdc/src/main/java/org/jeecg/modules/mdcJc/job/ScheduleProductDayJob.java
new file mode 100644
index 0000000..18b53b0
--- /dev/null
+++ b/lxzn-module-mdc/src/main/java/org/jeecg/modules/mdcJc/job/ScheduleProductDayJob.java
@@ -0,0 +1,64 @@
+package org.jeecg.modules.mdcJc.job;
+
+import lombok.extern.slf4j.Slf4j;
+import org.jeecg.common.util.DateUtils;
+import org.jeecg.modules.mdc.util.ThrowableUtil;
+import org.jeecg.modules.mdcJc.service.IMdcProductDayScheduleService;
+import org.jeecg.modules.quartz.entity.QuartzJob;
+import org.jeecg.modules.quartz.entity.SysQuartzLog;
+import org.jeecg.modules.quartz.service.IQuartzJobService;
+import org.jeecg.modules.quartz.service.ISysQuartzLogService;
+import org.jeecg.modules.system.service.ISysAnnouncementService;
+import org.quartz.*;
+
+import javax.annotation.Resource;
+import java.util.Date;
+import java.util.List;
+
+/**
+ * @author Lius
+ * @date 2024/8/12 10:34
+ */
+@PersistJobDataAfterExecution
+@DisallowConcurrentExecution
+@Slf4j
+public class ScheduleProductDayJob implements Job {
+
+    @Resource
+    private ISysQuartzLogService sysQuartzLogService;
+
+    @Resource
+    private IQuartzJobService quartzJobService;
+
+    @Resource
+    private ISysAnnouncementService sysAnnouncementService;
+
+    @Resource
+    private IMdcProductDayScheduleService mdcProductDayScheduleService;
+
+    @Override
+    public void execute(JobExecutionContext context) throws JobExecutionException {
+        SysQuartzLog quartzLog = new SysQuartzLog();
+        quartzLog.setCreateTime(new Date());
+        List<QuartzJob> byJobClassName = this.quartzJobService.findByJobClassName(this.getClass().getName());
+        if (byJobClassName != null && !byJobClassName.isEmpty()) {
+            quartzLog.setJobId(byJobClassName.get(0).getId());
+        }
+        log.info("璁$畻褰撴棩闆堕儴浠朵换鍔� ScheduleProductDayJob start!  鏃堕棿:" + DateUtils.now());
+        long startTime = System.currentTimeMillis();
+        try {
+
+            mdcProductDayScheduleService.scheduleProductDayList();
+
+            quartzLog.setIsSuccess(0);
+        } catch (Exception e) {
+            quartzLog.setIsSuccess(-1);
+            quartzLog.setExceptionDetail(ThrowableUtil.getStackTrace(e));
+            // 鍙戦�佹秷鎭�氱煡
+            sysAnnouncementService.jobSendMessage("璁$畻褰撴棩闆堕儴浠朵换鍔�", quartzLog.getExceptionDetail());
+        }
+        long endTime = System.currentTimeMillis();
+        quartzLog.setExecutionTime(Integer.parseInt(String.valueOf(endTime - startTime)));
+        sysQuartzLogService.save(quartzLog);
+    }
+}
diff --git a/lxzn-module-mdc/src/main/java/org/jeecg/modules/mdcJc/job/ScheduleProductMonthJob.java b/lxzn-module-mdc/src/main/java/org/jeecg/modules/mdcJc/job/ScheduleProductMonthJob.java
new file mode 100644
index 0000000..1606051
--- /dev/null
+++ b/lxzn-module-mdc/src/main/java/org/jeecg/modules/mdcJc/job/ScheduleProductMonthJob.java
@@ -0,0 +1,64 @@
+package org.jeecg.modules.mdcJc.job;
+
+import lombok.extern.slf4j.Slf4j;
+import org.jeecg.common.util.DateUtils;
+import org.jeecg.modules.mdc.util.ThrowableUtil;
+import org.jeecg.modules.mdcJc.service.IMdcProductMonthScheduleService;
+import org.jeecg.modules.quartz.entity.QuartzJob;
+import org.jeecg.modules.quartz.entity.SysQuartzLog;
+import org.jeecg.modules.quartz.service.IQuartzJobService;
+import org.jeecg.modules.quartz.service.ISysQuartzLogService;
+import org.jeecg.modules.system.service.ISysAnnouncementService;
+import org.quartz.*;
+
+import javax.annotation.Resource;
+import java.util.Date;
+import java.util.List;
+
+/**
+ * @author Lius
+ * @date 2024/8/12 10:30
+ */
+@PersistJobDataAfterExecution
+@DisallowConcurrentExecution
+@Slf4j
+public class ScheduleProductMonthJob implements Job {
+
+    @Resource
+    private ISysQuartzLogService sysQuartzLogService;
+
+    @Resource
+    private IQuartzJobService quartzJobService;
+
+    @Resource
+    private ISysAnnouncementService sysAnnouncementService;
+
+    @Resource
+    private IMdcProductMonthScheduleService mdcProductMonthScheduleService;
+
+    @Override
+    public void execute(JobExecutionContext context) throws JobExecutionException {
+        SysQuartzLog quartzLog = new SysQuartzLog();
+        quartzLog.setCreateTime(new Date());
+        List<QuartzJob> byJobClassName = this.quartzJobService.findByJobClassName(this.getClass().getName());
+        if (byJobClassName != null && !byJobClassName.isEmpty()) {
+            quartzLog.setJobId(byJobClassName.get(0).getId());
+        }
+        log.info("璁$畻褰撴湀闆堕儴浠朵换鍔� ScheduleProductMonthJob start!  鏃堕棿:" + DateUtils.now());
+        long startTime = System.currentTimeMillis();
+        try {
+
+            mdcProductMonthScheduleService.scheduleProductMonthList();
+
+            quartzLog.setIsSuccess(0);
+        } catch (Exception e) {
+            quartzLog.setIsSuccess(-1);
+            quartzLog.setExceptionDetail(ThrowableUtil.getStackTrace(e));
+            // 鍙戦�佹秷鎭�氱煡
+            sysAnnouncementService.jobSendMessage("璁$畻褰撴湀闆堕儴浠朵换鍔�", quartzLog.getExceptionDetail());
+        }
+        long endTime = System.currentTimeMillis();
+        quartzLog.setExecutionTime(Integer.parseInt(String.valueOf(endTime - startTime)));
+        sysQuartzLogService.save(quartzLog);
+    }
+}
diff --git a/lxzn-module-mdc/src/main/java/org/jeecg/modules/mdcJc/job/UnderLineQueueJob.java b/lxzn-module-mdc/src/main/java/org/jeecg/modules/mdcJc/job/UnderLineQueueJob.java
new file mode 100644
index 0000000..8326abb
--- /dev/null
+++ b/lxzn-module-mdc/src/main/java/org/jeecg/modules/mdcJc/job/UnderLineQueueJob.java
@@ -0,0 +1,64 @@
+package org.jeecg.modules.mdcJc.job;
+
+import lombok.extern.slf4j.Slf4j;
+import org.jeecg.common.util.DateUtils;
+import org.jeecg.modules.mdc.util.ThrowableUtil;
+import org.jeecg.modules.mdcJc.service.IMdcUnderLineQueueService;
+import org.jeecg.modules.quartz.entity.QuartzJob;
+import org.jeecg.modules.quartz.entity.SysQuartzLog;
+import org.jeecg.modules.quartz.service.IQuartzJobService;
+import org.jeecg.modules.quartz.service.ISysQuartzLogService;
+import org.jeecg.modules.system.service.ISysAnnouncementService;
+import org.quartz.*;
+
+import javax.annotation.Resource;
+import java.util.Date;
+import java.util.List;
+
+/**
+ * @author Lius
+ * @date 2024/8/12 10:35
+ */
+@PersistJobDataAfterExecution
+@DisallowConcurrentExecution
+@Slf4j
+public class UnderLineQueueJob implements Job {
+
+    @Resource
+    private ISysQuartzLogService sysQuartzLogService;
+
+    @Resource
+    private IQuartzJobService quartzJobService;
+
+    @Resource
+    private ISysAnnouncementService sysAnnouncementService;
+
+    @Resource
+    private IMdcUnderLineQueueService mdcUnderLineQueueService;
+
+    @Override
+    public void execute(JobExecutionContext context) throws JobExecutionException {
+        SysQuartzLog quartzLog = new SysQuartzLog();
+        quartzLog.setCreateTime(new Date());
+        List<QuartzJob> byJobClassName = this.quartzJobService.findByJobClassName(this.getClass().getName());
+        if (byJobClassName != null && !byJobClassName.isEmpty()) {
+            quartzLog.setJobId(byJobClassName.get(0).getId());
+        }
+        log.info("鑷姩涓嬬嚎浠诲姟 UnderLineQueueJob start!  鏃堕棿:" + DateUtils.now());
+        long startTime = System.currentTimeMillis();
+        try {
+
+            mdcUnderLineQueueService.saveUnderLineQueue();
+
+            quartzLog.setIsSuccess(0);
+        } catch (Exception e) {
+            quartzLog.setIsSuccess(-1);
+            quartzLog.setExceptionDetail(ThrowableUtil.getStackTrace(e));
+            // 鍙戦�佹秷鎭�氱煡
+            sysAnnouncementService.jobSendMessage("鑷姩涓嬬嚎浠诲姟", quartzLog.getExceptionDetail());
+        }
+        long endTime = System.currentTimeMillis();
+        quartzLog.setExecutionTime(Integer.parseInt(String.valueOf(endTime - startTime)));
+        sysQuartzLogService.save(quartzLog);
+    }
+}
diff --git a/lxzn-module-mdc/src/main/java/org/jeecg/modules/mdcJc/mapper/ClassMonthlyscheduleMapper.java b/lxzn-module-mdc/src/main/java/org/jeecg/modules/mdcJc/mapper/ClassMonthlyscheduleMapper.java
index 048c896..0607604 100644
--- a/lxzn-module-mdc/src/main/java/org/jeecg/modules/mdcJc/mapper/ClassMonthlyscheduleMapper.java
+++ b/lxzn-module-mdc/src/main/java/org/jeecg/modules/mdcJc/mapper/ClassMonthlyscheduleMapper.java
@@ -3,9 +3,7 @@
 
 import com.baomidou.mybatisplus.core.mapper.BaseMapper;
 import org.apache.ibatis.annotations.Param;
-import org.jeecg.modules.mdcJc.entity.ClassMonthlyschedule;
-import org.jeecg.modules.mdcJc.entity.ProductMonthlyschedule;
-import org.jeecg.modules.mdcJc.entity.QualityMonth;
+import org.jeecg.modules.mdcJc.entity.*;
 
 import java.util.List;
 
@@ -24,6 +22,7 @@
 
     /**
      * 褰撴湀闆堕儴浠惰鍒掕繘搴︿俊鎭�
+     *
      * @param dateTime
      * @return
      */
@@ -31,8 +30,55 @@
 
     /**
      * 鏈堝悎鏍煎拰涓嶅悎鏍�
+     *
      * @param dateTime
      * @return
      */
     List<QualityMonth> findListQualityMonth(@Param("dateTime") String dateTime);
+
+    /**
+     * 褰撴棩闆堕儴浠�
+     *
+     * @param dateTime
+     * @return
+     */
+    List<ProductDayschedule> findListProductDay(@Param("dateTime") String dateTime);
+
+    /**
+     * 鑷姩绾夸笂绾�
+     *
+     * @return
+     */
+    List<OnLineQueue> onLineQueueList();
+
+    /**
+     * 鑷姩绾夸笂绾�
+     *
+     * @param id
+     * @return
+     */
+    List<OnLineQueue> findListOnLineQueue(@Param("id") Integer id);
+
+    /**
+     * 鑷姩绾夸笅绾�
+     *
+     * @return
+     */
+    List<UnderLineQueue> underLineQueueList();
+
+    /**
+     * 鑷姩绾夸笅绾�
+     *
+     * @param id
+     * @return
+     */
+    List<UnderLineQueue> findListUnderLineQueue(@Param("id") Integer id);
+
+    /**
+     * 鑾峰彇鏄ㄦ棩鏁版嵁
+     *
+     * @param date
+     * @return
+     */
+    MdcProductDayschedule findYesterdayData(@Param("date") String date);
 }
diff --git a/lxzn-module-mdc/src/main/java/org/jeecg/modules/mdcJc/mapper/MdcOnLineQueueMapper.java b/lxzn-module-mdc/src/main/java/org/jeecg/modules/mdcJc/mapper/MdcOnLineQueueMapper.java
new file mode 100644
index 0000000..aee2ed5
--- /dev/null
+++ b/lxzn-module-mdc/src/main/java/org/jeecg/modules/mdcJc/mapper/MdcOnLineQueueMapper.java
@@ -0,0 +1,13 @@
+package org.jeecg.modules.mdcJc.mapper;
+
+import com.baomidou.mybatisplus.core.mapper.BaseMapper;
+import org.jeecg.modules.mdcJc.entity.MdcOnLineQueue;
+
+/**
+ * @author Lius
+ * @date 2024/8/8 15:04
+ */
+public interface MdcOnLineQueueMapper extends BaseMapper<MdcOnLineQueue> {
+    MdcOnLineQueue findLastOne();
+
+}
diff --git a/lxzn-module-mdc/src/main/java/org/jeecg/modules/mdcJc/mapper/MdcProductDayscheduleMapper.java b/lxzn-module-mdc/src/main/java/org/jeecg/modules/mdcJc/mapper/MdcProductDayscheduleMapper.java
new file mode 100644
index 0000000..53d2355
--- /dev/null
+++ b/lxzn-module-mdc/src/main/java/org/jeecg/modules/mdcJc/mapper/MdcProductDayscheduleMapper.java
@@ -0,0 +1,16 @@
+package org.jeecg.modules.mdcJc.mapper;
+
+import com.baomidou.mybatisplus.core.mapper.BaseMapper;
+import org.apache.ibatis.annotations.Param;
+import org.jeecg.modules.mdcJc.entity.MdcProductDayschedule;
+
+import java.util.List;
+
+/**
+ * @author Lius
+ * @date 2024/7/30 15:17
+ */
+public interface MdcProductDayscheduleMapper extends BaseMapper<MdcProductDayschedule> {
+
+    List<String> selectDateList(@Param("dateTime") String dateTime);
+}
diff --git a/lxzn-module-mdc/src/main/java/org/jeecg/modules/mdcJc/mapper/MdcUnderLineQueueMapper.java b/lxzn-module-mdc/src/main/java/org/jeecg/modules/mdcJc/mapper/MdcUnderLineQueueMapper.java
new file mode 100644
index 0000000..be7294f
--- /dev/null
+++ b/lxzn-module-mdc/src/main/java/org/jeecg/modules/mdcJc/mapper/MdcUnderLineQueueMapper.java
@@ -0,0 +1,12 @@
+package org.jeecg.modules.mdcJc.mapper;
+
+import com.baomidou.mybatisplus.core.mapper.BaseMapper;
+import org.jeecg.modules.mdcJc.entity.MdcUnderLineQueue;
+
+/**
+ * @author Lius
+ * @date 2024/8/8 15:07
+ */
+public interface MdcUnderLineQueueMapper extends BaseMapper<MdcUnderLineQueue> {
+    MdcUnderLineQueue findLastOne();
+}
diff --git a/lxzn-module-mdc/src/main/java/org/jeecg/modules/mdcJc/mapper/xml/ClassMonthlyscheduleMapper.xml b/lxzn-module-mdc/src/main/java/org/jeecg/modules/mdcJc/mapper/xml/ClassMonthlyscheduleMapper.xml
index a13637a..6bd63ac 100644
--- a/lxzn-module-mdc/src/main/java/org/jeecg/modules/mdcJc/mapper/xml/ClassMonthlyscheduleMapper.xml
+++ b/lxzn-module-mdc/src/main/java/org/jeecg/modules/mdcJc/mapper/xml/ClassMonthlyscheduleMapper.xml
@@ -14,4 +14,35 @@
         SELECT  * FROM T_Quality_monthy WHERE NY = #{ dateTime }
     </select>
 
+    <select id="findListProductDay" resultType="org.jeecg.modules.mdcJc.entity.ProductDayschedule">
+        SELECT  * FROM T_ProductDayschedule WHERE PlanDate = #{ dateTime }
+    </select>
+
+    <select id="onLineQueueList" resultType="org.jeecg.modules.mdcJc.entity.OnLineQueue">
+        SELECT * FROM T_OnLine_Queue
+    </select>
+
+    <select id="findListOnLineQueue" resultType="org.jeecg.modules.mdcJc.entity.OnLineQueue">
+        SELECT * FROM T_OnLine_Queue WHERE ID &gt; #{id}
+    </select>
+
+    <select id="underLineQueueList" resultType="org.jeecg.modules.mdcJc.entity.UnderLineQueue">
+        SELECT * FROM T_UnderLine_Queue
+    </select>
+
+    <select id="findListUnderLineQueue" resultType="org.jeecg.modules.mdcJc.entity.UnderLineQueue">
+        SELECT * FROM T_UnderLine_Queue WHERE ID &gt; #{id}
+    </select>
+
+    <select id="findYesterdayData" resultType="org.jeecg.modules.mdcJc.entity.MdcProductDayschedule">
+        SELECT
+            SUM(planCount) planDate,
+            SUM ( completionCount ) completionCount,
+            SUM ( qualifiedCount ) qualifiedCount
+        FROM
+            mdcJc_ProductDayschedule
+        WHERE
+            planDate = #{date}
+    </select>
+
 </mapper>
\ No newline at end of file
diff --git a/lxzn-module-mdc/src/main/java/org/jeecg/modules/mdcJc/mapper/xml/MdcOnLineQueueMapper.xml b/lxzn-module-mdc/src/main/java/org/jeecg/modules/mdcJc/mapper/xml/MdcOnLineQueueMapper.xml
new file mode 100644
index 0000000..04d6286
--- /dev/null
+++ b/lxzn-module-mdc/src/main/java/org/jeecg/modules/mdcJc/mapper/xml/MdcOnLineQueueMapper.xml
@@ -0,0 +1,9 @@
+<?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.mdcJc.mapper.MdcOnLineQueueMapper">
+
+    <select id="findLastOne" resultType="org.jeecg.modules.mdcJc.entity.MdcOnLineQueue">
+        SELECT TOP 1 * FROM mdcJc_OnLineQueue ORDER BY id DESC
+    </select>
+
+</mapper>
\ No newline at end of file
diff --git a/lxzn-module-mdc/src/main/java/org/jeecg/modules/mdcJc/mapper/xml/MdcProductDayscheduleMapper.xml b/lxzn-module-mdc/src/main/java/org/jeecg/modules/mdcJc/mapper/xml/MdcProductDayscheduleMapper.xml
new file mode 100644
index 0000000..26aa0db
--- /dev/null
+++ b/lxzn-module-mdc/src/main/java/org/jeecg/modules/mdcJc/mapper/xml/MdcProductDayscheduleMapper.xml
@@ -0,0 +1,10 @@
+<?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.mdcJc.mapper.MdcProductDayscheduleMapper">
+
+
+    <select id="selectDateList" resultType="java.lang.String">
+        SELECT mdc_id FROM mdcJc_ProductDayschedule WHERE planDate = #{ dateTime }
+    </select>
+
+</mapper>
\ No newline at end of file
diff --git a/lxzn-module-mdc/src/main/java/org/jeecg/modules/mdcJc/mapper/xml/MdcUnderLineQueueMapper.xml b/lxzn-module-mdc/src/main/java/org/jeecg/modules/mdcJc/mapper/xml/MdcUnderLineQueueMapper.xml
new file mode 100644
index 0000000..8faf48e
--- /dev/null
+++ b/lxzn-module-mdc/src/main/java/org/jeecg/modules/mdcJc/mapper/xml/MdcUnderLineQueueMapper.xml
@@ -0,0 +1,9 @@
+<?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.mdcJc.mapper.MdcUnderLineQueueMapper">
+
+
+    <select id="findLastOne" resultType="org.jeecg.modules.mdcJc.entity.MdcUnderLineQueue">
+        SELECT TOP 1 * FROM mdcJc_UnderLineQueue ORDER BY id DESC
+    </select>
+</mapper>
\ No newline at end of file
diff --git a/lxzn-module-mdc/src/main/java/org/jeecg/modules/mdcJc/service/IClassMonthlyScheduleService.java b/lxzn-module-mdc/src/main/java/org/jeecg/modules/mdcJc/service/IClassMonthlyScheduleService.java
new file mode 100644
index 0000000..1c7f7a3
--- /dev/null
+++ b/lxzn-module-mdc/src/main/java/org/jeecg/modules/mdcJc/service/IClassMonthlyScheduleService.java
@@ -0,0 +1,74 @@
+package org.jeecg.modules.mdcJc.service;
+
+import com.baomidou.mybatisplus.extension.service.IService;
+import org.jeecg.modules.mdcJc.entity.*;
+
+import java.util.List;
+
+/**
+ * @author clown
+ * * @date 2024/7/15
+ */
+public interface IClassMonthlyScheduleService extends IService<ClassMonthlyschedule> {
+
+
+    /**
+     * 褰撴湀闆堕儴浠�
+     * @param dateTime
+     * @return
+     */
+    List<ProductMonthlyschedule> findListProductMonth(String dateTime);
+
+    /**
+     * 鏌ヨ鏌愪釜鏈堟暟鎹� 鏈堢彮缁勫畬鎴愭儏鍐�
+     * @param dateTime
+     * @return
+     */
+    List<ClassMonthlyschedule> findListClass(String dateTime);
+
+
+    /**
+     * 鏈堝悎鏍煎拰涓嶅悎鏍�
+     * @param dateTime
+     * @return
+     */
+    List<QualityMonth> findListQualityMonth( String dateTime);
+
+    /**
+     * 褰撴棩闆堕儴浠�
+     * @param dateTime
+     * @return
+     */
+    List<ProductDayschedule> findListProductDay(String dateTime);
+
+    /**
+     * 鑷姩绾夸笂绾块泦鍚�
+     * @return
+     */
+    List<OnLineQueue> onLineQueueList();
+
+    /**
+     * 涓婄嚎闃熷垪
+     * @return
+     */
+    List<OnLineQueue> findListOnLineQueue(Integer id);
+
+    /**
+     * 涓嬬嚎闆嗗悎
+     * @return
+     */
+    List<UnderLineQueue> underLineQueueList();
+
+    /**
+     * 涓嬬嚎闃熷垪
+     * @return
+     */
+    List<UnderLineQueue> findListUnderLineQueue(Integer id);
+
+    /**
+     * 鑾峰彇鏄ㄦ棩鏁版嵁
+     * @param date
+     * @return
+     */
+    MdcProductDayschedule findYesterdayData(String date);
+}
diff --git a/lxzn-module-mdc/src/main/java/org/jeecg/modules/mdcJc/service/IClassMonthlyscheduleService.java b/lxzn-module-mdc/src/main/java/org/jeecg/modules/mdcJc/service/IClassMonthlyscheduleService.java
deleted file mode 100644
index 5c37923..0000000
--- a/lxzn-module-mdc/src/main/java/org/jeecg/modules/mdcJc/service/IClassMonthlyscheduleService.java
+++ /dev/null
@@ -1,37 +0,0 @@
-package org.jeecg.modules.mdcJc.service;
-
-import com.baomidou.mybatisplus.extension.service.IService;
-import org.jeecg.modules.mdcJc.entity.ClassMonthlyschedule;
-import org.jeecg.modules.mdcJc.entity.ProductMonthlyschedule;
-import org.jeecg.modules.mdcJc.entity.QualityMonth;
-
-import java.util.List;
-
-/**
- * @author clown
- * * @date 2024/7/15
- */
-public interface IClassMonthlyscheduleService extends IService<ClassMonthlyschedule> {
-
-    /**
-     * 鏌ヨ鏌愪釜鏈堟暟鎹� 鏈堢彮缁勫畬鎴愭儏鍐�
-     * @param dateTime
-     * @return
-     */
-    List<ClassMonthlyschedule> findListClass(String dateTime);
-
-    /**
-     * 褰撴湀闆堕儴浠�
-     * @param dateTime
-     * @return
-     */
-    List<ProductMonthlyschedule> findListProductMonth(String dateTime);
-
-
-    /**
-     * 鏈堝悎鏍煎拰涓嶅悎鏍�
-     * @param dateTime
-     * @return
-     */
-    List<QualityMonth> findListQualityMonth( String dateTime);
-}
diff --git a/lxzn-module-mdc/src/main/java/org/jeecg/modules/mdcJc/service/IMdcOnLineQueueService.java b/lxzn-module-mdc/src/main/java/org/jeecg/modules/mdcJc/service/IMdcOnLineQueueService.java
new file mode 100644
index 0000000..6b1e09b
--- /dev/null
+++ b/lxzn-module-mdc/src/main/java/org/jeecg/modules/mdcJc/service/IMdcOnLineQueueService.java
@@ -0,0 +1,18 @@
+package org.jeecg.modules.mdcJc.service;
+
+import com.baomidou.mybatisplus.extension.service.IService;
+import org.jeecg.modules.mdcJc.entity.MdcOnLineQueue;
+
+/**
+ * @author Lius
+ * @date 2024/8/8 15:00
+ */
+public interface IMdcOnLineQueueService extends IService<MdcOnLineQueue> {
+
+    /**
+     * 鑷姩涓婄嚎
+     * @return
+     */
+    boolean saveOnLineQueueList();
+
+}
diff --git a/lxzn-module-mdc/src/main/java/org/jeecg/modules/mdcJc/service/IMdcProductDayScheduleService.java b/lxzn-module-mdc/src/main/java/org/jeecg/modules/mdcJc/service/IMdcProductDayScheduleService.java
new file mode 100644
index 0000000..c92edd7
--- /dev/null
+++ b/lxzn-module-mdc/src/main/java/org/jeecg/modules/mdcJc/service/IMdcProductDayScheduleService.java
@@ -0,0 +1,28 @@
+package org.jeecg.modules.mdcJc.service;
+
+import com.baomidou.mybatisplus.extension.service.IService;
+import org.jeecg.modules.mdcJc.entity.MdcProductDayschedule;
+
+import java.math.BigDecimal;
+
+/**
+ * @author Lius
+ * @date 2024/7/30 15:14
+ */
+public interface IMdcProductDayScheduleService extends IService<MdcProductDayschedule> {
+
+    /**
+     * 褰撴棩闆堕儴浠�
+     *
+     * @return
+     */
+    boolean scheduleProductDayList();
+
+    /**
+     * 鑾峰彇鏄ㄦ棩璁″垝闆堕儴浠舵暟閲�
+     *
+     * @return
+     */
+    MdcProductDayschedule findYesterdayData();
+
+}
diff --git a/lxzn-module-mdc/src/main/java/org/jeecg/modules/mdcJc/service/IMdcUnderLineQueueService.java b/lxzn-module-mdc/src/main/java/org/jeecg/modules/mdcJc/service/IMdcUnderLineQueueService.java
new file mode 100644
index 0000000..7096c93
--- /dev/null
+++ b/lxzn-module-mdc/src/main/java/org/jeecg/modules/mdcJc/service/IMdcUnderLineQueueService.java
@@ -0,0 +1,17 @@
+package org.jeecg.modules.mdcJc.service;
+
+import com.baomidou.mybatisplus.extension.service.IService;
+import org.jeecg.modules.mdcJc.entity.MdcUnderLineQueue;
+
+/**
+ * @author Lius
+ * @date 2024/8/8 15:08
+ */
+public interface IMdcUnderLineQueueService extends IService<MdcUnderLineQueue> {
+
+    /**
+     * 鑷姩涓嬬嚎
+     * @return
+     */
+    boolean saveUnderLineQueue();
+}
diff --git a/lxzn-module-mdc/src/main/java/org/jeecg/modules/mdcJc/service/impl/ClassMonthlyScheduleServiceImpl.java b/lxzn-module-mdc/src/main/java/org/jeecg/modules/mdcJc/service/impl/ClassMonthlyScheduleServiceImpl.java
new file mode 100644
index 0000000..e1363d7
--- /dev/null
+++ b/lxzn-module-mdc/src/main/java/org/jeecg/modules/mdcJc/service/impl/ClassMonthlyScheduleServiceImpl.java
@@ -0,0 +1,67 @@
+package org.jeecg.modules.mdcJc.service.impl;
+
+import com.baomidou.dynamic.datasource.annotation.DS;
+import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
+import org.jeecg.modules.mdcJc.entity.*;
+import org.jeecg.modules.mdcJc.mapper.ClassMonthlyscheduleMapper;
+import org.jeecg.modules.mdcJc.service.IClassMonthlyScheduleService;
+import org.springframework.stereotype.Service;
+
+import java.util.List;
+
+/**
+ * @author clown
+ * * @date 2024/7/15
+ */
+
+@Service
+@DS("mesSoAdb")
+public class ClassMonthlyScheduleServiceImpl extends ServiceImpl<ClassMonthlyscheduleMapper,ClassMonthlyschedule> implements IClassMonthlyScheduleService {
+
+    @Override
+    public List<ClassMonthlyschedule> findListClass(String dateTime) {
+        return super.baseMapper.findListClass(dateTime);
+    }
+
+    @Override
+    public List<ProductMonthlyschedule> findListProductMonth(String dateTime) {
+        return super.baseMapper.findListProductMonth(dateTime);
+    }
+
+    @Override
+    public List<QualityMonth> findListQualityMonth(String dateTime) {
+        return super.baseMapper.findListQualityMonth(dateTime);
+    }
+
+    @Override
+    public List<ProductDayschedule> findListProductDay(String dateTime) {
+        return super.baseMapper.findListProductDay(dateTime);
+    }
+
+    @Override
+    public List<OnLineQueue> onLineQueueList() {
+        return super.baseMapper.onLineQueueList();
+    }
+
+    @Override
+    public List<OnLineQueue> findListOnLineQueue(Integer id) {
+        return super.baseMapper.findListOnLineQueue(id);
+    }
+
+    @Override
+    public List<UnderLineQueue> underLineQueueList() {
+        return super.baseMapper.underLineQueueList();
+    }
+
+    @Override
+    public List<UnderLineQueue> findListUnderLineQueue(Integer id) {
+        return super.baseMapper.findListUnderLineQueue(id);
+    }
+
+    @Override
+    public MdcProductDayschedule findYesterdayData(String date) {
+        return this.baseMapper.findYesterdayData(date);
+    }
+
+
+}
diff --git a/lxzn-module-mdc/src/main/java/org/jeecg/modules/mdcJc/service/impl/ClassMonthlyscheduleServiceImpl.java b/lxzn-module-mdc/src/main/java/org/jeecg/modules/mdcJc/service/impl/ClassMonthlyscheduleServiceImpl.java
deleted file mode 100644
index 8e76cb2..0000000
--- a/lxzn-module-mdc/src/main/java/org/jeecg/modules/mdcJc/service/impl/ClassMonthlyscheduleServiceImpl.java
+++ /dev/null
@@ -1,39 +0,0 @@
-package org.jeecg.modules.mdcJc.service.impl;
-
-import com.baomidou.dynamic.datasource.annotation.DS;
-import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
-import org.jeecg.modules.mdcJc.entity.ClassMonthlyschedule;
-import org.jeecg.modules.mdcJc.entity.ProductMonthlyschedule;
-import org.jeecg.modules.mdcJc.entity.QualityMonth;
-import org.jeecg.modules.mdcJc.mapper.ClassMonthlyscheduleMapper;
-import org.jeecg.modules.mdcJc.service.IClassMonthlyscheduleService;
-import org.springframework.stereotype.Service;
-
-import java.util.List;
-
-/**
- * @author clown
- * * @date 2024/7/15
- */
-
-@Service
-@DS("mesSoAdb")
-public class ClassMonthlyscheduleServiceImpl extends ServiceImpl<ClassMonthlyscheduleMapper,ClassMonthlyschedule> implements IClassMonthlyscheduleService {
-
-    @Override
-    public List<ClassMonthlyschedule> findListClass(String dateTime) {
-        return super.baseMapper.findListClass(dateTime);
-    }
-
-    @Override
-    public List<ProductMonthlyschedule> findListProductMonth(String dateTime) {
-        return super.baseMapper.findListProductMonth(dateTime);
-    }
-
-    @Override
-    public List<QualityMonth> findListQualityMonth(String dateTime) {
-        return super.baseMapper.findListQualityMonth(dateTime);
-    }
-
-
-}
diff --git a/lxzn-module-mdc/src/main/java/org/jeecg/modules/mdcJc/service/impl/MdcClassMonthServiceImpl.java b/lxzn-module-mdc/src/main/java/org/jeecg/modules/mdcJc/service/impl/MdcClassMonthServiceImpl.java
index d14fc57..d4f8b7d 100644
--- a/lxzn-module-mdc/src/main/java/org/jeecg/modules/mdcJc/service/impl/MdcClassMonthServiceImpl.java
+++ b/lxzn-module-mdc/src/main/java/org/jeecg/modules/mdcJc/service/impl/MdcClassMonthServiceImpl.java
@@ -5,7 +5,7 @@
 import org.jeecg.modules.mdcJc.entity.ClassMonthlyschedule;
 import org.jeecg.modules.mdcJc.entity.MdcClassMonthlyschedule;
 import org.jeecg.modules.mdcJc.mapper.MdcClassMonthlyscheduleMapper;
-import org.jeecg.modules.mdcJc.service.IClassMonthlyscheduleService;
+import org.jeecg.modules.mdcJc.service.IClassMonthlyScheduleService;
 import org.jeecg.modules.mdcJc.service.IMdcClassMonthService;
 import org.jeecg.modules.utils.BeanMapper;
 import org.springframework.beans.factory.annotation.Autowired;
@@ -22,12 +22,12 @@
 public class MdcClassMonthServiceImpl extends ServiceImpl<MdcClassMonthlyscheduleMapper,MdcClassMonthlyschedule> implements IMdcClassMonthService {
 
     @Autowired
-    private IClassMonthlyscheduleService classMonthlyscheduleService;
+    private IClassMonthlyScheduleService classMonthlyScheduleService;
 
     @Override
     public boolean saveOrUpdateClassMonthSchedule() {
         String date = DateUtils.format(DateUtils.getNow(),DateUtils.STR_YEAR_MONTH);
-        List<ClassMonthlyschedule> list = classMonthlyscheduleService.findListClass(date);
+        List<ClassMonthlyschedule> list = classMonthlyScheduleService.findListClass(date);
         if (list == null || list.isEmpty()) {
             return true;
         }
diff --git a/lxzn-module-mdc/src/main/java/org/jeecg/modules/mdcJc/service/impl/MdcOnLineQueueServiceImpl.java b/lxzn-module-mdc/src/main/java/org/jeecg/modules/mdcJc/service/impl/MdcOnLineQueueServiceImpl.java
new file mode 100644
index 0000000..bb2189c
--- /dev/null
+++ b/lxzn-module-mdc/src/main/java/org/jeecg/modules/mdcJc/service/impl/MdcOnLineQueueServiceImpl.java
@@ -0,0 +1,51 @@
+package org.jeecg.modules.mdcJc.service.impl;
+
+import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
+import org.jeecg.modules.mdcJc.entity.MdcOnLineQueue;
+import org.jeecg.modules.mdcJc.entity.OnLineQueue;
+import org.jeecg.modules.mdcJc.mapper.MdcOnLineQueueMapper;
+import org.jeecg.modules.mdcJc.service.IClassMonthlyScheduleService;
+import org.jeecg.modules.mdcJc.service.IMdcOnLineQueueService;
+import org.jeecg.modules.utils.BeanMapper;
+import org.springframework.stereotype.Service;
+
+import javax.annotation.Resource;
+import java.util.ArrayList;
+import java.util.List;
+
+/**
+ * @author Lius
+ * @date 2024/8/8 15:02
+ */
+@Service
+public class MdcOnLineQueueServiceImpl extends ServiceImpl<MdcOnLineQueueMapper, MdcOnLineQueue> implements IMdcOnLineQueueService {
+
+    @Resource
+    private IClassMonthlyScheduleService classMonthlyScheduleService;
+
+    /**
+     * 鑷姩涓婄嚎
+     * @return
+     */
+    @Override
+    public boolean saveOnLineQueueList() {
+        MdcOnLineQueue mdcOnLineQueue = this.baseMapper.findLastOne();
+        List<OnLineQueue> onLineQueueList = new ArrayList<>();
+        if (mdcOnLineQueue == null) {
+            // 棣栨
+            onLineQueueList = classMonthlyScheduleService.onLineQueueList();
+        } else {
+            onLineQueueList = classMonthlyScheduleService.findListOnLineQueue(mdcOnLineQueue.getId());
+        }
+        if (onLineQueueList == null || onLineQueueList.isEmpty()) {
+            return true;
+        }
+        List<MdcOnLineQueue> mesO = new ArrayList<>();
+        for (OnLineQueue o : onLineQueueList) {
+            MdcOnLineQueue mdc = new MdcOnLineQueue();
+            BeanMapper.copy(o, mdc);
+            mesO.add(mdc);
+        }
+        return this.saveBatch(mesO);
+    }
+}
diff --git a/lxzn-module-mdc/src/main/java/org/jeecg/modules/mdcJc/service/impl/MdcProductDayScheduleServiceImpl.java b/lxzn-module-mdc/src/main/java/org/jeecg/modules/mdcJc/service/impl/MdcProductDayScheduleServiceImpl.java
new file mode 100644
index 0000000..c55f23a
--- /dev/null
+++ b/lxzn-module-mdc/src/main/java/org/jeecg/modules/mdcJc/service/impl/MdcProductDayScheduleServiceImpl.java
@@ -0,0 +1,57 @@
+package org.jeecg.modules.mdcJc.service.impl;
+
+import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
+import org.jeecg.modules.mdc.util.DateUtils;
+import org.jeecg.modules.mdcJc.entity.MdcProductDayschedule;
+import org.jeecg.modules.mdcJc.entity.ProductDayschedule;
+import org.jeecg.modules.mdcJc.mapper.MdcProductDayscheduleMapper;
+import org.jeecg.modules.mdcJc.service.IClassMonthlyScheduleService;
+import org.jeecg.modules.mdcJc.service.IMdcProductDayScheduleService;
+import org.jeecg.modules.utils.BeanMapper;
+import org.springframework.stereotype.Service;
+
+import javax.annotation.Resource;
+import java.math.BigDecimal;
+import java.math.RoundingMode;
+import java.time.LocalDate;
+import java.util.ArrayList;
+import java.util.List;
+
+/**
+ * @author Lius
+ * @date 2024/7/30 15:14
+ */
+@Service
+public class MdcProductDayScheduleServiceImpl extends ServiceImpl<MdcProductDayscheduleMapper, MdcProductDayschedule> implements IMdcProductDayScheduleService {
+
+    @Resource
+    private IClassMonthlyScheduleService classMonthlyScheduleService;
+
+
+    @Override
+    public boolean scheduleProductDayList() {
+        String date = DateUtils.format(DateUtils.getNow(),DateUtils.STR_DATE);
+        List<ProductDayschedule> list = classMonthlyScheduleService.findListProductDay(date);
+        if (list == null || list.isEmpty()) {
+            return true;
+        }
+        List<String> mdcListIds = super.baseMapper.selectDateList(date);
+        if (mdcListIds != null && !mdcListIds.isEmpty()) {
+            this.removeBatchByIds(mdcListIds);
+        }
+        List<MdcProductDayschedule> mesC = new ArrayList<>();
+        for (ProductDayschedule c : list) {
+            MdcProductDayschedule mdc = new MdcProductDayschedule();
+            BeanMapper.copy(c, mdc);
+            mesC.add(mdc);
+        }
+        boolean b = this.saveBatch(mesC);
+        return b;
+    }
+
+    @Override
+    public MdcProductDayschedule findYesterdayData() {
+        String date = LocalDate.now().plusDays(-1).toString();
+        return classMonthlyScheduleService.findYesterdayData(date);
+    }
+}
diff --git a/lxzn-module-mdc/src/main/java/org/jeecg/modules/mdcJc/service/impl/MdcProductMonthScheduleServiceImp.java b/lxzn-module-mdc/src/main/java/org/jeecg/modules/mdcJc/service/impl/MdcProductMonthScheduleServiceImp.java
index 3f49351..684a461 100644
--- a/lxzn-module-mdc/src/main/java/org/jeecg/modules/mdcJc/service/impl/MdcProductMonthScheduleServiceImp.java
+++ b/lxzn-module-mdc/src/main/java/org/jeecg/modules/mdcJc/service/impl/MdcProductMonthScheduleServiceImp.java
@@ -5,7 +5,7 @@
 import org.jeecg.modules.mdcJc.entity.MdcProductMonthlyschedule;
 import org.jeecg.modules.mdcJc.entity.ProductMonthlyschedule;
 import org.jeecg.modules.mdcJc.mapper.MdcProductMonthScheduleMapper;
-import org.jeecg.modules.mdcJc.service.IClassMonthlyscheduleService;
+import org.jeecg.modules.mdcJc.service.IClassMonthlyScheduleService;
 import org.jeecg.modules.mdcJc.service.IMdcProductMonthScheduleService;
 import org.jeecg.modules.utils.BeanMapper;
 import org.springframework.beans.factory.annotation.Autowired;
@@ -22,12 +22,12 @@
 public class MdcProductMonthScheduleServiceImp  extends ServiceImpl<MdcProductMonthScheduleMapper,MdcProductMonthlyschedule> implements IMdcProductMonthScheduleService {
 
     @Autowired
-    private IClassMonthlyscheduleService classMonthlyscheduleService;
+    private IClassMonthlyScheduleService classMonthlyScheduleService;
 
     @Override
     public boolean scheduleProductMonthList() {
         String date = DateUtils.format(DateUtils.getNow(),DateUtils.STR_YEAR_MONTH);
-        List<ProductMonthlyschedule> list = classMonthlyscheduleService.findListProductMonth(date);
+        List<ProductMonthlyschedule> list = classMonthlyScheduleService.findListProductMonth(date);
         if (list == null || list.isEmpty()) {
             return true;
         }
diff --git a/lxzn-module-mdc/src/main/java/org/jeecg/modules/mdcJc/service/impl/MdcQualityMonthServiceImpl.java b/lxzn-module-mdc/src/main/java/org/jeecg/modules/mdcJc/service/impl/MdcQualityMonthServiceImpl.java
index 33dcb22..4589b49 100644
--- a/lxzn-module-mdc/src/main/java/org/jeecg/modules/mdcJc/service/impl/MdcQualityMonthServiceImpl.java
+++ b/lxzn-module-mdc/src/main/java/org/jeecg/modules/mdcJc/service/impl/MdcQualityMonthServiceImpl.java
@@ -2,12 +2,10 @@
 
 import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
 import org.jeecg.modules.mdc.util.DateUtils;
-import org.jeecg.modules.mdcJc.entity.ClassMonthlyschedule;
-import org.jeecg.modules.mdcJc.entity.MdcClassMonthlyschedule;
 import org.jeecg.modules.mdcJc.entity.MdcQualityMonth;
 import org.jeecg.modules.mdcJc.entity.QualityMonth;
 import org.jeecg.modules.mdcJc.mapper.MdcQualityMonthMapper;
-import org.jeecg.modules.mdcJc.service.IClassMonthlyscheduleService;
+import org.jeecg.modules.mdcJc.service.IClassMonthlyScheduleService;
 import org.jeecg.modules.mdcJc.service.IMdcQualityMonthService;
 import org.jeecg.modules.utils.BeanMapper;
 import org.springframework.beans.factory.annotation.Autowired;
@@ -24,12 +22,12 @@
 public class MdcQualityMonthServiceImpl extends ServiceImpl<MdcQualityMonthMapper,MdcQualityMonth> implements IMdcQualityMonthService {
 
     @Autowired
-    private IClassMonthlyscheduleService classMonthlyscheduleService;
+    private IClassMonthlyScheduleService classMonthlyScheduleService;
 
     @Override
     public boolean saveQualityMonth() {
         String date = DateUtils.format(DateUtils.getNow(),DateUtils.STR_YEAR_MONTH);
-        List<QualityMonth> list = classMonthlyscheduleService.findListQualityMonth(date);
+        List<QualityMonth> list = classMonthlyScheduleService.findListQualityMonth(date);
         if (list == null || list.isEmpty()) {
             return true;
         }
diff --git a/lxzn-module-mdc/src/main/java/org/jeecg/modules/mdcJc/service/impl/MdcUnderLineQueueServiceImpl.java b/lxzn-module-mdc/src/main/java/org/jeecg/modules/mdcJc/service/impl/MdcUnderLineQueueServiceImpl.java
new file mode 100644
index 0000000..17503a1
--- /dev/null
+++ b/lxzn-module-mdc/src/main/java/org/jeecg/modules/mdcJc/service/impl/MdcUnderLineQueueServiceImpl.java
@@ -0,0 +1,51 @@
+package org.jeecg.modules.mdcJc.service.impl;
+
+import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
+import org.jeecg.modules.mdcJc.entity.MdcUnderLineQueue;
+import org.jeecg.modules.mdcJc.entity.UnderLineQueue;
+import org.jeecg.modules.mdcJc.mapper.MdcUnderLineQueueMapper;
+import org.jeecg.modules.mdcJc.service.IClassMonthlyScheduleService;
+import org.jeecg.modules.mdcJc.service.IMdcUnderLineQueueService;
+import org.jeecg.modules.utils.BeanMapper;
+import org.springframework.stereotype.Service;
+
+import javax.annotation.Resource;
+import java.util.ArrayList;
+import java.util.List;
+
+/**
+ * @author Lius
+ * @date 2024/8/8 15:09
+ */
+@Service
+public class MdcUnderLineQueueServiceImpl extends ServiceImpl<MdcUnderLineQueueMapper, MdcUnderLineQueue> implements IMdcUnderLineQueueService {
+
+    @Resource
+    private IClassMonthlyScheduleService classMonthlyScheduleService;
+
+    /**
+     * 鑷姩涓嬬嚎
+     * @return
+     */
+    @Override
+    public boolean saveUnderLineQueue() {
+        MdcUnderLineQueue mdcUnderLineQueue = this.baseMapper.findLastOne();
+        List<UnderLineQueue> underLineQueueList = new ArrayList<>();
+        if (mdcUnderLineQueue == null) {
+            // 棣栨
+            underLineQueueList = classMonthlyScheduleService.underLineQueueList();
+        } else {
+            underLineQueueList = classMonthlyScheduleService.findListUnderLineQueue(mdcUnderLineQueue.getId());
+        }
+        if (underLineQueueList == null || underLineQueueList.isEmpty()) {
+            return true;
+        }
+        List<MdcUnderLineQueue> mdcU = new ArrayList<>();
+        for (UnderLineQueue u : underLineQueueList) {
+            MdcUnderLineQueue mdc = new MdcUnderLineQueue();
+            BeanMapper.copy(u, mdc);
+            mdcU.add(mdc);
+        }
+        return this.saveBatch(mdcU);
+    }
+}
diff --git a/lxzn-module-mdc/src/main/java/org/jeecg/modules/mdcJc/service/impl/MesInfoInMdcServiceImpl.java b/lxzn-module-mdc/src/main/java/org/jeecg/modules/mdcJc/service/impl/MesInfoInMdcServiceImpl.java
index c3310b9..fa42f65 100644
--- a/lxzn-module-mdc/src/main/java/org/jeecg/modules/mdcJc/service/impl/MesInfoInMdcServiceImpl.java
+++ b/lxzn-module-mdc/src/main/java/org/jeecg/modules/mdcJc/service/impl/MesInfoInMdcServiceImpl.java
@@ -4,7 +4,7 @@
 import org.jeecg.modules.mdc.util.DateUtils;
 import org.jeecg.modules.mdcJc.entity.ClassMonthlyschedule;
 import org.jeecg.modules.mdcJc.entity.MdcClassMonthlyschedule;
-import org.jeecg.modules.mdcJc.service.IClassMonthlyscheduleService;
+import org.jeecg.modules.mdcJc.service.IClassMonthlyScheduleService;
 import org.jeecg.modules.mdcJc.service.IMesInfoInMdcService;
 import org.springframework.beans.BeanUtils;
 import org.springframework.beans.factory.annotation.Autowired;
@@ -22,12 +22,12 @@
 public class MesInfoInMdcServiceImpl implements IMesInfoInMdcService {
 
     @Autowired
-    private IClassMonthlyscheduleService classMonthlyscheduleService;
+    private IClassMonthlyScheduleService classMonthlyScheduleService;
 
     @Override
     public List<MdcClassMonthlyschedule> mesClass() {
         String date = DateUtils.format(DateUtils.getNow(),DateUtils.STR_YEAR_MONTH);
-        List<ClassMonthlyschedule> list = classMonthlyscheduleService.findListClass(date);
+        List<ClassMonthlyschedule> list = classMonthlyScheduleService.findListClass(date);
         List<MdcClassMonthlyschedule> mesC = new ArrayList<>();
         BeanUtils.copyProperties(list,mesC);
         return mesC;
diff --git a/lxzn-module-mdc/src/main/java/org/jeecg/modules/screen/controller/MdcLargeScreenController.java b/lxzn-module-mdc/src/main/java/org/jeecg/modules/screen/controller/MdcLargeScreenController.java
new file mode 100644
index 0000000..2856e59
--- /dev/null
+++ b/lxzn-module-mdc/src/main/java/org/jeecg/modules/screen/controller/MdcLargeScreenController.java
@@ -0,0 +1,77 @@
+package org.jeecg.modules.screen.controller;
+
+import io.swagger.annotations.Api;
+import io.swagger.annotations.ApiOperation;
+import lombok.extern.slf4j.Slf4j;
+import org.jeecg.common.api.vo.Result;
+import org.jeecg.modules.screen.dto.*;
+import org.jeecg.modules.screen.service.MdcLargeScreenService;
+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.List;
+import java.util.Map;
+
+/**
+ * @author Lius
+ * @date 2024/8/16 10:44
+ */
+@Slf4j
+@Api(tags = "鎬绘帶鐪嬫澘")
+@RestController
+@RequestMapping("/mdc/largeScreen")
+public class MdcLargeScreenController {
+
+    @Resource
+    private MdcLargeScreenService mdcLargeScreenService;
+
+
+    @ApiOperation(value = "鎬绘帶鐪嬫澘-浠婃棩鐢熶骇杩涘害", notes = "鎬绘帶鐪嬫澘-浠婃棩鐢熶骇杩涘害")
+    @GetMapping("/todayProductionSchedule")
+    public Result<?> todayProductionSchedule() {
+        List<TodayProductionDto> result =  mdcLargeScreenService.todayProductionSchedule();
+        return Result.ok(result);
+    }
+
+    @ApiOperation(value = "鎬绘帶鐪嬫澘-浠婃棩浜у搧鍚堟牸鐜�", notes = "鎬绘帶鐪嬫澘-浠婃棩浜у搧鍚堟牸鐜�")
+    @GetMapping("/todayProductionPassRate")
+    public Result<?> todayProductionPassRate() {
+        List<TodayProductionPassRateDto> result = mdcLargeScreenService.todayProductionPassRate();
+        return Result.ok(result);
+    }
+
+    @ApiOperation(value = "鎬绘帶鐪嬫澘-浠婃棩鐝粍瀹屾垚閲�", notes = "鎬绘帶鐪嬫澘-浠婃棩鐝粍瀹屾垚閲�")
+    @GetMapping("/todayClazzCompletionCount")
+    public Result<?> todayClazzCompletionCount() {
+        List<ClazzCompletionCountDto> result = mdcLargeScreenService.todayClazzCompletionCount();
+        return Result.ok(result);
+    }
+
+    @ApiOperation(value = "鎬绘帶鐪嬫澘-鏄ㄦ棩姒傚喌", notes = "鎬绘帶鐪嬫澘-鏄ㄦ棩姒傚喌")
+    @GetMapping("/yesterdayOverview")
+    public Result<?> yesterdayOverview() {
+        YesterdayOverviewDto yesterdayOverview = mdcLargeScreenService.yesterdayOverview();
+        return Result.ok(yesterdayOverview);
+    }
+
+    /**
+     * 寮�鏈虹巼鍒╃敤鐜�
+     * @return
+     */
+    @ApiOperation(value = "鎬绘帶鐪嬫澘-浠婃棩璁惧宸ヤ綔鏁堢巼", notes = "鎬绘帶鐪嬫澘-浠婃棩璁惧宸ヤ綔鏁堢巼")
+    @GetMapping("/todayEquipmentRate")
+    public Result<?> todayEquipmentRate() {
+        List<EquipmentRateDto> result = mdcLargeScreenService.todayEquipmentRate();
+        return Result.ok(result);
+    }
+
+    @ApiOperation(value = "鎬绘帶鐪嬫澘-鏈堣澶囧埄鐢ㄧ巼", notes = "鎬绘帶鐪嬫澘-鏈堣澶囧埄鐢ㄧ巼")
+    @GetMapping("/monthEquipmentUtilizationRate")
+    public Result<?> monthEquipmentUtilizationRate() {
+
+        return Result.ok();
+    }
+
+}
diff --git a/lxzn-module-mdc/src/main/java/org/jeecg/modules/screen/dto/ClazzCompletionCountDto.java b/lxzn-module-mdc/src/main/java/org/jeecg/modules/screen/dto/ClazzCompletionCountDto.java
new file mode 100644
index 0000000..8ddc989
--- /dev/null
+++ b/lxzn-module-mdc/src/main/java/org/jeecg/modules/screen/dto/ClazzCompletionCountDto.java
@@ -0,0 +1,19 @@
+package org.jeecg.modules.screen.dto;
+
+import lombok.Data;
+
+/**
+ * @author Lius
+ * @date 2024/8/22 10:41
+ */
+@Data
+public class ClazzCompletionCountDto {
+    /**
+     * 鐝粍
+     */
+    private String clazz;
+    /**
+     * 瀹屾垚閲�
+     */
+    private Integer completionCount;
+}
diff --git a/lxzn-module-mdc/src/main/java/org/jeecg/modules/screen/dto/EquipmentRateDto.java b/lxzn-module-mdc/src/main/java/org/jeecg/modules/screen/dto/EquipmentRateDto.java
new file mode 100644
index 0000000..c883cd4
--- /dev/null
+++ b/lxzn-module-mdc/src/main/java/org/jeecg/modules/screen/dto/EquipmentRateDto.java
@@ -0,0 +1,34 @@
+package org.jeecg.modules.screen.dto;
+
+import lombok.Data;
+
+import java.math.BigDecimal;
+
+/**
+ * @author Lius
+ * @date 2024/8/22 11:27
+ */
+@Data
+public class EquipmentRateDto {
+
+    /**
+     * 璁惧id
+     */
+    private String equipmentId;
+
+    /**
+     * 璁惧鍚嶇О
+     */
+    private String equipmentName;
+
+    /**
+     * 鍒╃敤鐜�
+     */
+    private BigDecimal utilizationRate = BigDecimal.ZERO;
+    /**
+     * 寮�鏈虹巼
+     */
+    private BigDecimal openRate = BigDecimal.ZERO;
+
+
+}
diff --git a/lxzn-module-mdc/src/main/java/org/jeecg/modules/screen/dto/TodayProductionDto.java b/lxzn-module-mdc/src/main/java/org/jeecg/modules/screen/dto/TodayProductionDto.java
new file mode 100644
index 0000000..b2484e2
--- /dev/null
+++ b/lxzn-module-mdc/src/main/java/org/jeecg/modules/screen/dto/TodayProductionDto.java
@@ -0,0 +1,27 @@
+package org.jeecg.modules.screen.dto;
+
+import lombok.Data;
+
+/**
+ * @author Lius
+ * @date 2024/8/22 10:09
+ */
+@Data
+public class TodayProductionDto {
+
+    /**
+     * 浜х嚎鍚嶇О
+     */
+    private String productionName;
+
+    /**
+     * 璁″垝閲�
+     */
+    private Integer planCount;
+
+    /**
+     * 瀹屾垚閲�
+     */
+    private Integer completionCount;
+
+}
diff --git a/lxzn-module-mdc/src/main/java/org/jeecg/modules/screen/dto/TodayProductionPassRateDto.java b/lxzn-module-mdc/src/main/java/org/jeecg/modules/screen/dto/TodayProductionPassRateDto.java
new file mode 100644
index 0000000..178fe4d
--- /dev/null
+++ b/lxzn-module-mdc/src/main/java/org/jeecg/modules/screen/dto/TodayProductionPassRateDto.java
@@ -0,0 +1,24 @@
+package org.jeecg.modules.screen.dto;
+
+import lombok.Data;
+
+import java.math.BigDecimal;
+
+/**
+ * @author Lius
+ * @date 2024/8/22 10:25
+ */
+@Data
+public class TodayProductionPassRateDto {
+
+    /**
+     * 浜х嚎鍚嶇О
+     */
+    private String productionName;
+
+    /**
+     * 浜у搧鍚堟牸鐜�
+     */
+    private BigDecimal passRate;
+
+}
diff --git a/lxzn-module-mdc/src/main/java/org/jeecg/modules/screen/dto/YesterdayOverviewDto.java b/lxzn-module-mdc/src/main/java/org/jeecg/modules/screen/dto/YesterdayOverviewDto.java
new file mode 100644
index 0000000..0382ea0
--- /dev/null
+++ b/lxzn-module-mdc/src/main/java/org/jeecg/modules/screen/dto/YesterdayOverviewDto.java
@@ -0,0 +1,27 @@
+package org.jeecg.modules.screen.dto;
+
+import lombok.Data;
+
+import java.math.BigDecimal;
+
+/**
+ * @author Lius
+ * @date 2024/8/20 11:44
+ */
+@Data
+public class YesterdayOverviewDto {
+
+    /**
+     * 浜у搧鍚堟牸鐜�
+     */
+    private BigDecimal passRate;
+    /**
+     * 璁惧鍒╃敤鐜�
+     */
+    private BigDecimal utilizationRate;
+    /**
+     * 璁″垝瀹屾垚鐜�
+     */
+    private BigDecimal planCompleteRate;
+
+}
diff --git a/lxzn-module-mdc/src/main/java/org/jeecg/modules/screen/mapper/MdcLargeScreenMapper.java b/lxzn-module-mdc/src/main/java/org/jeecg/modules/screen/mapper/MdcLargeScreenMapper.java
new file mode 100644
index 0000000..f861f7d
--- /dev/null
+++ b/lxzn-module-mdc/src/main/java/org/jeecg/modules/screen/mapper/MdcLargeScreenMapper.java
@@ -0,0 +1,30 @@
+package org.jeecg.modules.screen.mapper;
+
+import org.apache.ibatis.annotations.Mapper;
+import org.apache.ibatis.annotations.Param;
+import org.jeecg.modules.mdcJc.entity.MdcProductDayschedule;
+import org.jeecg.modules.screen.dto.ClazzCompletionCountDto;
+import org.jeecg.modules.screen.dto.TodayProductionDto;
+import org.springframework.stereotype.Repository;
+
+import java.math.BigDecimal;
+import java.util.List;
+
+/**
+ * @author Lius
+ * @date 2024/8/21 11:09
+ */
+@Mapper
+@Repository
+public interface MdcLargeScreenMapper {
+
+    BigDecimal findEquipmentCount(@Param("date") String date);
+
+    BigDecimal findYesterdayProcessCount(@Param("date") String date);
+
+    List<TodayProductionDto> todayProductionSchedule(@Param("date") String date);
+
+    List<MdcProductDayschedule> todayProductionPassRate(@Param("date") String date);
+
+    List<ClazzCompletionCountDto> todayClazzCompletionCount(@Param("date") String date);
+}
diff --git a/lxzn-module-mdc/src/main/java/org/jeecg/modules/screen/mapper/xml/MdcLargeScreenMapper.xml b/lxzn-module-mdc/src/main/java/org/jeecg/modules/screen/mapper/xml/MdcLargeScreenMapper.xml
new file mode 100644
index 0000000..6b634d6
--- /dev/null
+++ b/lxzn-module-mdc/src/main/java/org/jeecg/modules/screen/mapper/xml/MdcLargeScreenMapper.xml
@@ -0,0 +1,61 @@
+<?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.screen.mapper.MdcLargeScreenMapper">
+
+    <select id="findEquipmentCount" resultType="java.math.BigDecimal">
+        SELECT DISTINCT
+            COUNT(equipment_id)
+        FROM
+            mdc_equipment_statistical_info
+        WHERE
+            the_date = #{date}
+    </select>
+
+    <select id="findYesterdayProcessCount" resultType="java.math.BigDecimal">
+        SELECT
+            SUM( process_long )
+        FROM
+            mdc_equipment_statistical_info
+        WHERE
+            the_date = #{date}
+    </select>
+
+    <select id="todayProductionSchedule" resultType="org.jeecg.modules.screen.dto.TodayProductionDto">
+        SELECT
+            productName,
+            SUM ( planCount ) planCount,
+            SUM ( completionCount ) completionCount
+        FROM
+            mdcJc_ProductDayschedule
+        WHERE
+            planDate = #{date}
+        GROUP BY
+            productName
+    </select>
+
+    <select id="todayProductionPassRate" resultType="org.jeecg.modules.mdcJc.entity.MdcProductDayschedule">
+        SELECT
+            productName,
+            SUM ( planCount ) planCount,
+            SUM ( completionCount ) completionCount,
+            SUM ( qualifiedCount ) qualifiedCount
+        FROM
+            mdcJc_ProductDayschedule
+        WHERE
+            planDate = #{date}
+        GROUP BY
+            productName
+    </select>
+
+    <select id="todayClazzCompletionCount" resultType="org.jeecg.modules.screen.dto.ClazzCompletionCountDto">
+        SELECT
+            clazz,
+            SUM ( completionCount ) completionCount
+        FROM
+            mdcJc_ProductDayschedule
+        WHERE
+            planDate = #{date}
+        GROUP BY
+            clazz
+    </select>
+</mapper>
\ No newline at end of file
diff --git a/lxzn-module-mdc/src/main/java/org/jeecg/modules/screen/service/MdcLargeScreenService.java b/lxzn-module-mdc/src/main/java/org/jeecg/modules/screen/service/MdcLargeScreenService.java
new file mode 100644
index 0000000..0ea67b4
--- /dev/null
+++ b/lxzn-module-mdc/src/main/java/org/jeecg/modules/screen/service/MdcLargeScreenService.java
@@ -0,0 +1,49 @@
+package org.jeecg.modules.screen.service;
+
+import org.jeecg.modules.screen.dto.*;
+
+import java.util.List;
+import java.util.Map;
+
+/**
+ * @author Lius
+ * @date 2024/8/19 16:02
+ */
+public interface MdcLargeScreenService {
+
+    /**
+     * 鏄ㄦ棩姒傚喌锛堜骇鍝佸悎鏍肩巼 璁惧鍒╃敤鐜� 璁″垝瀹屾垚鐜囷級
+     *
+     * @return
+     */
+    YesterdayOverviewDto yesterdayOverview();
+
+    /**
+     * 浠婃棩鐢熶骇杩涘害
+     *
+     * @return
+     */
+    List<TodayProductionDto> todayProductionSchedule();
+
+    /**
+     * 浠婃棩浜у搧鍚堟牸鐜�
+     *
+     * @return
+     */
+    List<TodayProductionPassRateDto> todayProductionPassRate();
+
+    /**
+     * 浠婃棩鐝粍瀹屾垚閲�
+     *
+     * @return
+     */
+    List<ClazzCompletionCountDto> todayClazzCompletionCount();
+
+    /**
+     * 浠婃棩璁惧宸ヤ綔鏁堢巼
+     *
+     * @return
+     */
+    List<EquipmentRateDto> todayEquipmentRate();
+
+}
diff --git a/lxzn-module-mdc/src/main/java/org/jeecg/modules/screen/service/impl/MdcLargeScreenServiceImpl.java b/lxzn-module-mdc/src/main/java/org/jeecg/modules/screen/service/impl/MdcLargeScreenServiceImpl.java
new file mode 100644
index 0000000..790d953
--- /dev/null
+++ b/lxzn-module-mdc/src/main/java/org/jeecg/modules/screen/service/impl/MdcLargeScreenServiceImpl.java
@@ -0,0 +1,113 @@
+package org.jeecg.modules.screen.service.impl;
+
+import org.jeecg.modules.mdc.service.IMdcEquipmentStatisticalInfoService;
+import org.jeecg.modules.mdcJc.entity.MdcProductDayschedule;
+import org.jeecg.modules.mdcJc.service.IMdcProductDayScheduleService;
+import org.jeecg.modules.screen.dto.*;
+import org.jeecg.modules.screen.mapper.MdcLargeScreenMapper;
+import org.jeecg.modules.screen.service.MdcLargeScreenService;
+import org.springframework.stereotype.Service;
+
+import javax.annotation.Resource;
+import java.math.BigDecimal;
+import java.math.RoundingMode;
+import java.time.LocalDate;
+import java.util.ArrayList;
+import java.util.List;
+
+/**
+ * @author Lius
+ * @date 2024/8/20 11:36
+ */
+@Service
+public class MdcLargeScreenServiceImpl implements MdcLargeScreenService {
+
+    @Resource
+    private IMdcProductDayScheduleService mdcProductDayScheduleService;
+
+    @Resource
+    private MdcLargeScreenMapper mdcLargeScreenMapper;
+
+    private final String yesterday = LocalDate.now().plusDays(-1).toString().replaceAll("-", "");
+
+    private final String today = LocalDate.now().toString().replaceAll("-", "");
+
+
+    /**
+     * 鏄ㄦ棩姒傚喌锛堜骇鍝佸悎鏍肩巼 璁惧鍒╃敤鐜� 璁″垝瀹屾垚鐜囷級
+     *
+     * @return
+     */
+    @Override
+    public YesterdayOverviewDto yesterdayOverview() {
+        YesterdayOverviewDto yesterdayOverviewDto = new YesterdayOverviewDto();
+        MdcProductDayschedule mdcProductDayschedule = mdcProductDayScheduleService.findYesterdayData();
+        if (mdcProductDayschedule != null) {
+            // 浜у搧鍚堟牸鐜�
+            yesterdayOverviewDto.setPassRate(new BigDecimal(mdcProductDayschedule.getQualifiedCount()).divide(new BigDecimal(mdcProductDayschedule.getCompletionCount()), 0, RoundingMode.HALF_UP).multiply(new BigDecimal("100")).setScale(2, RoundingMode.HALF_UP));
+            // 璁″垝瀹屾垚鐜�
+            yesterdayOverviewDto.setPlanCompleteRate(new BigDecimal(mdcProductDayschedule.getCompletionCount()).divide(new BigDecimal(mdcProductDayschedule.getPlanCount()), 0, RoundingMode.HALF_UP).multiply(new BigDecimal("100")).setScale(2, RoundingMode.HALF_UP));
+        }
+        // 璁惧鍒╃敤鐜�
+//        String date = LocalDate.now().plusDays(-1).toString().replaceAll("-", "");
+        BigDecimal equipmentCount = mdcLargeScreenMapper.findEquipmentCount(yesterday);
+        BigDecimal processCount = mdcLargeScreenMapper.findYesterdayProcessCount(yesterday);
+        BigDecimal utilizationRate = BigDecimal.ZERO;
+        if (equipmentCount != null && processCount != null) {
+            utilizationRate = processCount.divide(new BigDecimal("86400").multiply(equipmentCount), 0, RoundingMode.HALF_UP).multiply(new BigDecimal("100")).setScale(2, RoundingMode.HALF_UP);
+        }
+        yesterdayOverviewDto.setUtilizationRate(utilizationRate);
+        return yesterdayOverviewDto;
+    }
+
+    /**
+     * 浠婃棩鐢熶骇杩涘害
+     *
+     * @return
+     */
+    @Override
+    public List<TodayProductionDto> todayProductionSchedule() {
+        return mdcLargeScreenMapper.todayProductionSchedule(today);
+    }
+
+    /**
+     * 浠婃棩浜у搧鍚堟牸鐜�
+     *
+     * @return
+     */
+    @Override
+    public List<TodayProductionPassRateDto> todayProductionPassRate() {
+        List<MdcProductDayschedule> list = mdcLargeScreenMapper.todayProductionPassRate(today);
+        List<TodayProductionPassRateDto> result = new ArrayList<>();
+        if (list != null && !list.isEmpty()) {
+            for (MdcProductDayschedule mdcProductDayschedule : list) {
+                TodayProductionPassRateDto todayProductionPassRateDto = new TodayProductionPassRateDto();
+                todayProductionPassRateDto.setProductionName(mdcProductDayschedule.getProductName());
+                todayProductionPassRateDto.setPassRate(new BigDecimal(mdcProductDayschedule.getQualifiedCount()).divide(new BigDecimal(mdcProductDayschedule.getCompletionCount()), 0, RoundingMode.HALF_UP).multiply(new BigDecimal("100")).setScale(2, RoundingMode.HALF_UP));
+                result.add(todayProductionPassRateDto);
+            }
+        }
+        return result;
+    }
+
+    /**
+     * 浠婃棩鐝粍瀹屾垚閲�
+     *
+     * @return
+     */
+    @Override
+    public List<ClazzCompletionCountDto> todayClazzCompletionCount() {
+        return mdcLargeScreenMapper.todayClazzCompletionCount(today);
+    }
+
+    /**
+     * 浠婃棩璁惧杩愯鏁堢巼
+     *
+     * @return
+     */
+    @Override
+    public List<EquipmentRateDto> todayEquipmentRate() {
+        return null;
+//        return mdcLargeScreenMapper.todayEquipmentRate();
+    }
+}
diff --git a/lxzn-module-mdc/src/test/java/org/lxzn/TestOne.java b/lxzn-module-mdc/src/test/java/org/lxzn/TestOne.java
index 852082b..e4f0dcb 100644
--- a/lxzn-module-mdc/src/test/java/org/lxzn/TestOne.java
+++ b/lxzn-module-mdc/src/test/java/org/lxzn/TestOne.java
@@ -97,8 +97,8 @@
     @Test
     public void test07() {
         LocalDate localDate = LocalDate.now().plusDays(-1);
-        String date = LocalDate.now().toString();
-        System.out.println(date);
+//        String date = LocalDate.now().toString();
+        System.out.println(localDate);
     }
 
     @Test
diff --git a/lxzn-module-system/lxzn-system-start/src/test/java/org/jeecg/modules/mdcJc/MesTest.java b/lxzn-module-system/lxzn-system-start/src/test/java/org/jeecg/modules/mdcJc/MesTest.java
index bc2ebd8..7fb5fa3 100644
--- a/lxzn-module-system/lxzn-system-start/src/test/java/org/jeecg/modules/mdcJc/MesTest.java
+++ b/lxzn-module-system/lxzn-system-start/src/test/java/org/jeecg/modules/mdcJc/MesTest.java
@@ -2,9 +2,7 @@
 
 import org.jeecg.JeecgSystemApplication;
 import org.jeecg.modules.mdc.util.DateUtils;
-import org.jeecg.modules.mdcJc.service.IClassMonthlyscheduleService;
-import org.jeecg.modules.mdcJc.service.IMdcClassMonthService;
-import org.jeecg.modules.mdcJc.service.IMdcProductMonthScheduleService;
+import org.jeecg.modules.mdcJc.service.*;
 import org.junit.Test;
 import org.junit.runner.RunWith;
 import org.springframework.beans.factory.annotation.Autowired;
@@ -19,11 +17,20 @@
 @SpringBootTest(webEnvironment = SpringBootTest.WebEnvironment.RANDOM_PORT,classes = JeecgSystemApplication.class)
 public class MesTest {
     @Autowired
-    private IClassMonthlyscheduleService mesInfoInMdcService;
+    private IClassMonthlyScheduleService mesInfoInMdcService;
     @Autowired
     private IMdcClassMonthService mdcClassMonthService;
     @Autowired
     private IMdcProductMonthScheduleService mdcProductMonthScheduleService;
+
+    @Autowired
+    private IMdcProductDayScheduleService mdcProductDayScheduleService;
+
+    @Autowired
+    private IMdcOnLineQueueService mdcOnLineQueueService;
+
+    @Autowired
+    private IMdcUnderLineQueueService mdcUnderLineQueueService;
 
     @Test
     public void scheduleProductMonthList() {
@@ -42,4 +49,19 @@
 
         mesInfoInMdcService.findListClass(date);
     }
+
+    @Test
+    public void scheduleProductDayList() {
+        mdcProductDayScheduleService.scheduleProductDayList();
+    }
+
+    @Test
+    public void onLineQueueList() {
+        mdcOnLineQueueService.saveOnLineQueueList();
+    }
+
+    @Test
+    public void underLineQueueList() {
+        mdcUnderLineQueueService.saveUnderLineQueue();
+    }
 }

--
Gitblit v1.9.3