From 5ae1b71ab6b57140d46e6a8b9e606bb4a390ce27 Mon Sep 17 00:00:00 2001
From: Lius <Lius2225@163.com>
Date: 星期一, 03 三月 2025 11:11:46 +0800
Subject: [PATCH] webservice接口

---
 lxzn-module-mdc/src/main/java/org/jeecg/modules/mdc/service/impl/MdcEquipmentDayScheduleServiceImpl.java |   16 
 lxzn-boot-base-core/src/main/java/org/jeecg/config/shiro/ShiroConfig.java                                |    1 
 lxzn-module-mdc/src/main/java/org/jeecg/modules/mdc/mapper/xml/MdcEquipmentDayScheduleMapper.xml         |    5 
 lxzn-module-mdc/src/main/java/org/jeecg/modules/mdc/mapper/xml/MdcEquipmentMapper.xml                    |   17 
 lxzn-module-mdc/src/main/java/org/jeecg/modules/mdc/mapper/xml/MdcEquipmentDaySummaryMapper.xml          |    5 
 lxzn-module-mdc/src/main/java/org/jeecg/modules/screen/dto/EquipmentStatusOverview.java                  |   37 +
 lxzn-module-mdc/src/main/java/org/jeecg/modules/mdc/service/IMdcOeeInfoService.java                      |    1 
 lxzn-module-mdc/src/main/java/org/jeecg/modules/mdc/util/CxfClientUtil.java                              |   31 +
 lxzn-module-mdc/src/main/java/org/jeecg/modules/mdc/config/WebServiceConfig.java                         |   43 ++
 lxzn-module-mdc/src/main/java/org/jeecg/modules/mdc/webservice/EquipmentWebService.java                  |   20 +
 pom.xml                                                                                                  |    2 
 lxzn-module-mdc/src/main/java/org/jeecg/modules/mdc/webservice/impl/EquipmentWebServiceImpl.java         |   63 +++
 lxzn-module-mdc/src/main/java/org/jeecg/modules/mdc/mapper/EquipmentMapper.java                          |   10 
 lxzn-module-mdc/src/main/java/org/jeecg/modules/mdc/vo/WsEquipmentStatus.java                            |   22 +
 lxzn-module-mdc/src/main/java/org/jeecg/modules/mdc/service/impl/MdcEquipmentServiceImpl.java            |   12 
 lxzn-module-mdc/src/main/java/org/jeecg/modules/mdc/job/WebServiceStatusJob.java                         |   87 ++++
 lxzn-boot-base-core/pom.xml                                                                              |   21 +
 lxzn-module-mdc/src/main/java/org/jeecg/modules/mdc/service/IEquipmentService.java                       |   22 +
 lxzn-module-mdc/src/main/java/org/jeecg/modules/mdc/mapper/MdcEquipmentDaySummaryMapper.java             |    7 
 lxzn-module-mdc/src/main/java/org/jeecg/modules/mdc/vo/EquipmentDaySummary.java                          |   46 ++
 lxzn-module-mdc/src/main/java/org/jeecg/modules/mdc/vo/WsEquipmentUtilizationRate.java                   |   50 ++
 lxzn-module-mdc/src/main/java/org/jeecg/modules/screen/service/impl/MdcLargeScreenServiceImpl.java       |   75 +++
 lxzn-module-mdc/src/main/java/org/jeecg/modules/mdc/mapper/xml/EquipmentMapper.xml                       |   36 +
 lxzn-module-mdc/src/main/java/org/jeecg/modules/mdc/vo/EquipmentDaySchedule.java                         |   79 ++++
 lxzn-module-mdc/src/main/java/org/jeecg/modules/mdc/vo/WsResult.java                                     |   20 +
 lxzn-module-mdc/src/main/java/org/jeecg/modules/screen/service/MdcLargeScreenService.java                |   19 +
 lxzn-module-mdc/src/main/java/org/jeecg/modules/mdc/entity/MdcEquipmentDaySchedule.java                  |   85 ++++
 lxzn-module-mdc/src/main/java/org/jeecg/modules/mdc/job/WebServiceUtilizationRateJob.java                |   86 ++++
 lxzn-module-mdc/src/main/java/org/jeecg/modules/mdc/service/impl/MdcOeeInfoServiceImpl.java              |    6 
 lxzn-module-mdc/src/main/java/org/jeecg/modules/mdc/mapper/MdcEquipmentDayScheduleMapper.java            |    7 
 lxzn-module-mdc/src/main/java/org/jeecg/modules/screen/controller/MdcLargeScreenController.java          |   43 ++
 lxzn-module-mdc/src/main/java/org/jeecg/modules/mdc/service/impl/EquipmentServiceImpl.java               |   30 +
 lxzn-module-mdc/src/main/java/org/jeecg/modules/mdc/bo/WebResult.java                                    |   17 
 lxzn-module-mdc/src/main/java/org/jeecg/modules/mdc/service/impl/MdcEquipmentDaySummaryServiceImpl.java  |   16 
 lxzn-module-mdc/src/main/java/org/jeecg/modules/mdc/entity/MdcWorkshopInfo.java                          |    6 
 lxzn-module-mdc/src/main/java/org/jeecg/modules/mdc/entity/MdcEquipmentDaySummary.java                   |   54 ++
 lxzn-module-mdc/src/main/java/org/jeecg/modules/mdc/service/IMdcEquipmentDayScheduleService.java         |    7 
 lxzn-module-mdc/src/main/java/org/jeecg/modules/mdc/mapper/MdcEquipmentMapper.java                       |    7 
 lxzn-module-mdc/src/main/java/org/jeecg/modules/mdc/service/IMdcEquipmentDaySummaryService.java          |    7 
 lxzn-module-mdc/src/main/java/org/jeecg/modules/mdc/service/IMdcEquipmentService.java                    |    7 
 40 files changed, 1,123 insertions(+), 2 deletions(-)

diff --git a/lxzn-boot-base-core/pom.xml b/lxzn-boot-base-core/pom.xml
index 5f93651..a6e3273 100644
--- a/lxzn-boot-base-core/pom.xml
+++ b/lxzn-boot-base-core/pom.xml
@@ -231,6 +231,27 @@
 			<artifactId>syslog4j</artifactId>
 			<version>0.9.60</version>
 		</dependency>
+		<!-- WebService -->
+		<dependency>
+			<groupId>org.springframework.boot</groupId>
+			<artifactId>spring-boot-starter-web-services</artifactId>
+		</dependency>
+		<dependency>
+			<groupId>org.apache.cxf</groupId>
+			<artifactId>cxf-spring-boot-starter-jaxws</artifactId>
+			<version>${cxf.version}</version>
+		</dependency>
+		<!-- cxf webservice -->
+		<dependency>
+			<groupId>org.apache.cxf</groupId>
+			<artifactId>cxf-rt-frontend-jaxws</artifactId>
+			<version>${cxf.version}</version>
+		</dependency>
+		<dependency>
+			<groupId>org.apache.cxf</groupId>
+			<artifactId>cxf-rt-transports-http</artifactId>
+			<version>${cxf.version}</version>
+		</dependency>
 	</dependencies>
 
 </project>
\ No newline at end of file
diff --git a/lxzn-boot-base-core/src/main/java/org/jeecg/config/shiro/ShiroConfig.java b/lxzn-boot-base-core/src/main/java/org/jeecg/config/shiro/ShiroConfig.java
index 8e49670..1b6cdba 100644
--- a/lxzn-boot-base-core/src/main/java/org/jeecg/config/shiro/ShiroConfig.java
+++ b/lxzn-boot-base-core/src/main/java/org/jeecg/config/shiro/ShiroConfig.java
@@ -100,6 +100,7 @@
         filterChainDefinitionMap.put("/sys/checkAuth", "anon"); //鎺堟潈鎺ュ彛鎺掗櫎
         filterChainDefinitionMap.put("/sys/api/appAuth", "anon"); //缃戦椄璁よ瘉鎺ュ彛鎺掗櫎
         filterChainDefinitionMap.put("/sys/api/fileUpload", "anon"); //缃戦椄涓婁紶鏂囦欢鎺ュ彛鎺掗櫎
+        filterChainDefinitionMap.put("/services/**", "anon"); //webservice鎺ュ彛鎺掗櫎
 
 
         filterChainDefinitionMap.put("/", "anon");
diff --git a/lxzn-module-mdc/src/main/java/org/jeecg/modules/mdc/bo/WebResult.java b/lxzn-module-mdc/src/main/java/org/jeecg/modules/mdc/bo/WebResult.java
new file mode 100644
index 0000000..c872ebd
--- /dev/null
+++ b/lxzn-module-mdc/src/main/java/org/jeecg/modules/mdc/bo/WebResult.java
@@ -0,0 +1,17 @@
+package org.jeecg.modules.mdc.bo;
+
+import lombok.Data;
+
+
+/**
+ * @author Lius
+ * @date 2025/2/20 14:01
+ */
+@Data
+public class WebResult {
+
+    private String flag;
+
+    private String msg;
+
+}
diff --git a/lxzn-module-mdc/src/main/java/org/jeecg/modules/mdc/config/WebServiceConfig.java b/lxzn-module-mdc/src/main/java/org/jeecg/modules/mdc/config/WebServiceConfig.java
new file mode 100644
index 0000000..7ec70d1
--- /dev/null
+++ b/lxzn-module-mdc/src/main/java/org/jeecg/modules/mdc/config/WebServiceConfig.java
@@ -0,0 +1,43 @@
+package org.jeecg.modules.mdc.config;
+
+import org.apache.cxf.Bus;
+import org.apache.cxf.bus.spring.SpringBus;
+import org.apache.cxf.jaxws.EndpointImpl;
+import org.jeecg.modules.mdc.webservice.EquipmentWebService;
+import org.springframework.context.annotation.Bean;
+import org.springframework.context.annotation.Configuration;
+
+import javax.xml.ws.Endpoint;
+
+/**
+ * @Author hweiyu
+ * @Description
+ * @Date 2021/4/21 17:55
+ */
+@Configuration
+public class WebServiceConfig {
+
+    /**
+     * Bus浜ょ敱spring绠$悊
+     * @return
+     */
+    @Bean(name = Bus.DEFAULT_BUS_ID)
+    public SpringBus springBus() {
+        return new SpringBus();
+    }
+
+
+    /**
+     * 鏈嶅姟鍦板潃锛�
+     * http://localhost:9999/services
+     * http://localhost:9999/services/EquipmentWebService?wsdl
+     * @param equipmentWebService
+     * @return
+     */
+    @Bean
+    public Endpoint endpoint(EquipmentWebService equipmentWebService) {
+        EndpointImpl endpoint = new EndpointImpl(springBus(), equipmentWebService);
+        endpoint.publish("/EquipmentWebService");
+        return endpoint;
+    }
+}
diff --git a/lxzn-module-mdc/src/main/java/org/jeecg/modules/mdc/entity/MdcEquipmentDaySchedule.java b/lxzn-module-mdc/src/main/java/org/jeecg/modules/mdc/entity/MdcEquipmentDaySchedule.java
new file mode 100644
index 0000000..b202d75
--- /dev/null
+++ b/lxzn-module-mdc/src/main/java/org/jeecg/modules/mdc/entity/MdcEquipmentDaySchedule.java
@@ -0,0 +1,85 @@
+package org.jeecg.modules.mdc.entity;
+
+import com.baomidou.mybatisplus.annotation.TableName;
+import io.swagger.annotations.ApiModel;
+import lombok.Data;
+import lombok.EqualsAndHashCode;
+import lombok.experimental.Accessors;
+import org.jeecg.common.system.base.entity.JeecgEntity;
+
+import java.io.Serializable;
+
+@Data
+@TableName("mdc_equipment_day_schedule")
+@EqualsAndHashCode(callSuper = false)
+@Accessors(chain = true)
+@ApiModel(value = "mdc_equipment_day_schedule瀵硅薄", description = "璁惧鏃ユ帓浜ц鍒掕〃")
+public class MdcEquipmentDaySchedule extends JeecgEntity implements Serializable {
+
+    private static final long serialVersionUID = 3006667467937651207L;
+
+    /**
+     * 涓婚敭
+     */
+    private String medId;
+    /**
+     * 鍗曞厓
+     */
+    private String dept;
+    /**
+     * 杞﹂棿锛堝垎鍘傦級
+     */
+    private String workshop;
+    /**
+     * 鐗堟湰鍙凤紙宸ヨ壓瑙勭▼鐗堟锛�
+     */
+    private String revisionNo;
+    /**
+     * 闆朵欢鍚嶇О
+     */
+    private String mdsItemId;
+    /**
+     * 闆朵欢鍙�
+     */
+    private String mdsItemCode;
+    /**
+     * 璁㈠崟鍙�
+     */
+    private String taskCode;
+    /**
+     * 娴佸崱鍙�
+     */
+    private String ewoNo;
+    /**
+     * 鎵规鍙�
+     */
+    private String batchNo;
+    /**
+     * 鎵规鏁伴噺锛堣鍒掓暟锛�
+     */
+    private String batchNum;
+    /**
+     * 鍚堟牸鏁�
+     */
+    private Integer qualifiedQty;
+    /**
+     * 鎶ュ簾鏁�
+     */
+    private Integer scrapQty;
+    /**
+     * 宸ュ簭鍙�
+     */
+    private String opreationSeqNo;
+    /**
+     * 娲惧伐鏃ユ湡
+     */
+    private String dispatchDate;
+    /**
+     * 璁惧缂栧彿
+     */
+    private String equipmentId;
+    /**
+     * 1 姝e父   2 鍙栨秷   3 鍒犻櫎
+     */
+    private String taskType;
+}
diff --git a/lxzn-module-mdc/src/main/java/org/jeecg/modules/mdc/entity/MdcEquipmentDaySummary.java b/lxzn-module-mdc/src/main/java/org/jeecg/modules/mdc/entity/MdcEquipmentDaySummary.java
new file mode 100644
index 0000000..cd2d4fa
--- /dev/null
+++ b/lxzn-module-mdc/src/main/java/org/jeecg/modules/mdc/entity/MdcEquipmentDaySummary.java
@@ -0,0 +1,54 @@
+package org.jeecg.modules.mdc.entity;
+
+import com.baomidou.mybatisplus.annotation.TableName;
+import io.swagger.annotations.ApiModel;
+import lombok.Data;
+import lombok.EqualsAndHashCode;
+import lombok.experimental.Accessors;
+import org.jeecg.common.system.base.entity.JeecgEntity;
+
+import java.io.Serializable;
+
+@Data
+@TableName("mdc_equipment_day_summary")
+@EqualsAndHashCode(callSuper = false)
+@Accessors(chain = true)
+@ApiModel(value = "mdc_equipment_day_summary瀵硅薄", description = "璁惧鏃ヤ骇閲忔眹鎬昏〃")
+public class MdcEquipmentDaySummary extends JeecgEntity implements Serializable {
+
+    private static final long serialVersionUID = 4440281782659062056L;
+
+    /**
+     * 涓婚敭
+     */
+    private String medId;
+    /**
+     * 鍗曞厓
+     */
+    private String dept;
+    /**
+     * 杞﹂棿锛堝垎鍘傦級
+     */
+    private String workshop;
+    /**
+     * 璁惧缂栧彿
+     */
+    private String equipmentCode;
+    /**
+     * 褰撳墠鍦ㄥ埗鍝侀噺锛堣鍗曡鍒掓暟閲�-鍏ュ簱鏁伴噺-鎶ュ簾鏁伴噺锛�
+     */
+    private Integer demandQty;
+    /**
+     * 浠婃棩瀹屽伐鍏ュ簱閲忥紙鍏ュ簱鏁伴噺锛�
+     */
+    private Integer qualifiedQty;
+    /**
+     * 浠婃棩鎶曚骇閲忥紙璁㈠崟鏁伴噺锛�
+     */
+    private Integer planQty;
+    /**
+     * 浠婃棩鎶ュ簾鏁伴噺
+     */
+    private Integer scrapQty;
+
+}
diff --git a/lxzn-module-mdc/src/main/java/org/jeecg/modules/mdc/entity/MdcWorkshopInfo.java b/lxzn-module-mdc/src/main/java/org/jeecg/modules/mdc/entity/MdcWorkshopInfo.java
index e9621f3..cc0522a 100644
--- a/lxzn-module-mdc/src/main/java/org/jeecg/modules/mdc/entity/MdcWorkshopInfo.java
+++ b/lxzn-module-mdc/src/main/java/org/jeecg/modules/mdc/entity/MdcWorkshopInfo.java
@@ -51,5 +51,11 @@
     @ApiModelProperty(value = "鑿滃崟鏉冮檺缂栫爜")
     private String perms;
 
+    /**
+     * 璁惧杞﹂棿绠$悊id
+     */
+    @ApiModelProperty(value = "璁惧杞﹂棿绠$悊id")
+    private String productionId;
+
 
 }
diff --git a/lxzn-module-mdc/src/main/java/org/jeecg/modules/mdc/job/WebServiceStatusJob.java b/lxzn-module-mdc/src/main/java/org/jeecg/modules/mdc/job/WebServiceStatusJob.java
new file mode 100644
index 0000000..f54d0bc
--- /dev/null
+++ b/lxzn-module-mdc/src/main/java/org/jeecg/modules/mdc/job/WebServiceStatusJob.java
@@ -0,0 +1,87 @@
+package org.jeecg.modules.mdc.job;
+
+import com.alibaba.fastjson.JSONObject;
+import lombok.extern.slf4j.Slf4j;
+import org.jeecg.common.util.DateUtils;
+import org.jeecg.modules.mdc.service.IEquipmentService;
+import org.jeecg.modules.mdc.util.CxfClientUtil;
+import org.jeecg.modules.mdc.util.ThrowableUtil;
+import org.jeecg.modules.mdc.vo.WsEquipmentStatus;
+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.quartz.*;
+import org.springframework.beans.factory.annotation.Value;
+
+import javax.annotation.Resource;
+import java.util.Date;
+import java.util.List;
+
+/**
+ * @author Lius
+ * @date 2024/6/11 11:27
+ */
+@PersistJobDataAfterExecution
+@DisallowConcurrentExecution
+@Slf4j
+public class WebServiceStatusJob implements Job {
+
+    /**
+     * url
+     */
+    @Value("${webservice.url}")
+    private String url;
+
+    /**
+     * namespace
+     */
+    @Value("${webservice.namespace}")
+    private String namespace;
+
+    /**
+     * method
+     */
+    @Value("${webservice.statusMethod}")
+    private String method;
+
+
+    @Resource
+    private IQuartzJobService quartzJobService;
+
+    @Resource
+    private ISysQuartzLogService sysQuartzLogService;
+
+    @Resource
+    private IEquipmentService equipmentService;
+
+    @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("WebService涓婃姤璁惧鐘舵�佷换鍔� WebServiceStatusJob start!  鏃堕棿:" + DateUtils.now());
+        long startTime = System.currentTimeMillis();
+        try {
+            List<WsEquipmentStatus> equipmentStatusList = equipmentService.selectEquipmentStatus();
+            if (equipmentStatusList != null && !equipmentStatusList.isEmpty()) {
+                for (WsEquipmentStatus wsEquipmentStatus : equipmentStatusList) {
+                    String s = JSONObject.toJSONString(wsEquipmentStatus);
+                    log.info("涓婃姤鐘舵�佹暟鎹� ===== " + s);
+                    String result = CxfClientUtil.invokeService(url, s, namespace, method);
+                    log.info("涓婃姤鐘舵�佺粨鏋� ===== " + result);
+                }
+            }
+            quartzLog.setIsSuccess(0);
+        } catch (Exception e) {
+            quartzLog.setIsSuccess(-1);
+            quartzLog.setExceptionDetail(ThrowableUtil.getStackTrace(e));
+        }
+        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/WebServiceUtilizationRateJob.java b/lxzn-module-mdc/src/main/java/org/jeecg/modules/mdc/job/WebServiceUtilizationRateJob.java
new file mode 100644
index 0000000..800ef9e
--- /dev/null
+++ b/lxzn-module-mdc/src/main/java/org/jeecg/modules/mdc/job/WebServiceUtilizationRateJob.java
@@ -0,0 +1,86 @@
+package org.jeecg.modules.mdc.job;
+
+import com.alibaba.fastjson.JSONObject;
+import lombok.extern.slf4j.Slf4j;
+import org.jeecg.common.util.DateUtils;
+import org.jeecg.modules.mdc.service.IEquipmentService;
+import org.jeecg.modules.mdc.util.CxfClientUtil;
+import org.jeecg.modules.mdc.util.ThrowableUtil;
+import org.jeecg.modules.mdc.vo.WsEquipmentUtilizationRate;
+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.quartz.*;
+import org.springframework.beans.factory.annotation.Value;
+
+import javax.annotation.Resource;
+import java.util.Date;
+import java.util.List;
+
+/**
+ * @author Lius
+ * @date 2024/6/11 16:17
+ */
+@PersistJobDataAfterExecution
+@DisallowConcurrentExecution
+@Slf4j
+public class WebServiceUtilizationRateJob implements Job {
+
+    /**
+     * 鍦板潃
+     */
+
+    @Value("${webservice.url}")
+    private String url;
+
+    /**
+     * namespace
+     */
+    @Value("${webservice.namespace}")
+    private String namespace;
+
+    /**
+     * 鏂规硶
+     */
+    @Value("${webservice.rateMethod}")
+    private String method;
+    @Resource
+    private IQuartzJobService quartzJobService;
+
+    @Resource
+    private ISysQuartzLogService sysQuartzLogService;
+
+    @Resource
+    private IEquipmentService equipmentService;
+
+    @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("WebService涓婃姤璁惧鍒╃敤鐜囦换鍔� WebServiceUtilizationRateJob start!  鏃堕棿:{}", DateUtils.now());
+        long startTime = System.currentTimeMillis();
+        try {
+            List<WsEquipmentUtilizationRate> equipmentRateList = equipmentService.selectEquipmentRate();
+            if (equipmentRateList != null && !equipmentRateList.isEmpty()) {
+                for (WsEquipmentUtilizationRate wsEquipmentUtilizationRate : equipmentRateList) {
+                    String s = JSONObject.toJSONString(wsEquipmentUtilizationRate);
+                    log.info("涓婃姤鍒╃敤鐜囨暟鎹� ===== {}", s);
+                    String result = CxfClientUtil.invokeService(url, s, namespace, method);
+                    log.info("涓婃姤鍒╃敤鐜囩粨鏋� ===== {}", result);
+                }
+            }
+            quartzLog.setIsSuccess(0);
+        } catch (Exception e) {
+            quartzLog.setIsSuccess(-1);
+            quartzLog.setExceptionDetail(ThrowableUtil.getStackTrace(e));
+        }
+        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/EquipmentMapper.java b/lxzn-module-mdc/src/main/java/org/jeecg/modules/mdc/mapper/EquipmentMapper.java
index d79cbc0..1661fd4 100644
--- a/lxzn-module-mdc/src/main/java/org/jeecg/modules/mdc/mapper/EquipmentMapper.java
+++ b/lxzn-module-mdc/src/main/java/org/jeecg/modules/mdc/mapper/EquipmentMapper.java
@@ -6,6 +6,10 @@
 import org.apache.ibatis.annotations.Param;
 import org.apache.ibatis.annotations.Select;
 import org.jeecg.modules.mdc.entity.Equipment;
+import org.jeecg.modules.mdc.vo.WsEquipmentStatus;
+import org.jeecg.modules.mdc.vo.WsEquipmentUtilizationRate;
+
+import java.util.List;
 
 /**
  * @Description: 閲囬泦璁惧琛�
@@ -30,4 +34,10 @@
 
     @Insert(" CREATE TABLE ${tableName} AS SELECT * FROM ${lastTableName} WHERE CollectTime < '${date}' ")
     void insertNoTableData(@Param("tableName") String tableName, @Param("lastTableName") String lastTableName, @Param("date") String date);
+
+    List<WsEquipmentStatus> selectEquipmentStatus();
+
+    List<WsEquipmentUtilizationRate> selectEquipmentRate(@Param("date") String date);
+
+    String selectOee(@Param("equipmentId") String equipmentId, @Param("date") String date);
 }
diff --git a/lxzn-module-mdc/src/main/java/org/jeecg/modules/mdc/mapper/MdcEquipmentDayScheduleMapper.java b/lxzn-module-mdc/src/main/java/org/jeecg/modules/mdc/mapper/MdcEquipmentDayScheduleMapper.java
new file mode 100644
index 0000000..d63150b
--- /dev/null
+++ b/lxzn-module-mdc/src/main/java/org/jeecg/modules/mdc/mapper/MdcEquipmentDayScheduleMapper.java
@@ -0,0 +1,7 @@
+package org.jeecg.modules.mdc.mapper;
+
+import com.baomidou.mybatisplus.core.mapper.BaseMapper;
+import org.jeecg.modules.mdc.entity.MdcEquipmentDaySchedule;
+
+public interface MdcEquipmentDayScheduleMapper extends BaseMapper<MdcEquipmentDaySchedule> {
+}
diff --git a/lxzn-module-mdc/src/main/java/org/jeecg/modules/mdc/mapper/MdcEquipmentDaySummaryMapper.java b/lxzn-module-mdc/src/main/java/org/jeecg/modules/mdc/mapper/MdcEquipmentDaySummaryMapper.java
new file mode 100644
index 0000000..bf2f9c2
--- /dev/null
+++ b/lxzn-module-mdc/src/main/java/org/jeecg/modules/mdc/mapper/MdcEquipmentDaySummaryMapper.java
@@ -0,0 +1,7 @@
+package org.jeecg.modules.mdc.mapper;
+
+import com.baomidou.mybatisplus.core.mapper.BaseMapper;
+import org.jeecg.modules.mdc.entity.MdcEquipmentDaySummary;
+
+public interface MdcEquipmentDaySummaryMapper extends BaseMapper<MdcEquipmentDaySummary> {
+}
diff --git a/lxzn-module-mdc/src/main/java/org/jeecg/modules/mdc/mapper/MdcEquipmentMapper.java b/lxzn-module-mdc/src/main/java/org/jeecg/modules/mdc/mapper/MdcEquipmentMapper.java
index 06246bc..9be2447 100644
--- a/lxzn-module-mdc/src/main/java/org/jeecg/modules/mdc/mapper/MdcEquipmentMapper.java
+++ b/lxzn-module-mdc/src/main/java/org/jeecg/modules/mdc/mapper/MdcEquipmentMapper.java
@@ -124,4 +124,11 @@
      * @return
      */
     MdcEquipmentDetailedDto findById(@Param("id") String id);
+
+    /**
+     * 鏍规嵁浜х嚎id鑾峰彇璁惧鐘舵�佸垪琛�
+     * @param workshopId
+     * @return
+     */
+    List<MdcEquipmentMonitor> getEquipmentMonitorList(@Param("workshopId") String workshopId);
 }
diff --git a/lxzn-module-mdc/src/main/java/org/jeecg/modules/mdc/mapper/xml/EquipmentMapper.xml b/lxzn-module-mdc/src/main/java/org/jeecg/modules/mdc/mapper/xml/EquipmentMapper.xml
index b504640..a5f4ac3 100644
--- a/lxzn-module-mdc/src/main/java/org/jeecg/modules/mdc/mapper/xml/EquipmentMapper.xml
+++ b/lxzn-module-mdc/src/main/java/org/jeecg/modules/mdc/mapper/xml/EquipmentMapper.xml
@@ -2,4 +2,40 @@
 <!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.EquipmentMapper">
 
+    <!--鏌ヨ璁惧鐘舵��-->
+    <select id="selectEquipmentStatus" resultType="org.jeecg.modules.mdc.vo.WsEquipmentStatus">
+        SELECT
+            t1.EquipmentID equipmentCode,
+            t1.equipmentName equipmentName,
+            t1.oporation equipmentStatus,
+            t1.collectTime creationDate,
+            t2.FactoryName finr
+        FROM
+            Equipment t1
+                LEFT JOIN FactoryInfo t2 ON t1.FactoryID = t2.FactoryID
+    </select>
+
+    <!--鏌ヨ璁惧鍒╃敤鐜�-->
+     <select id="selectEquipmentRate" resultType="org.jeecg.modules.mdc.vo.WsEquipmentUtilizationRate">
+        SELECT
+            t1.EquipmentID equipmentCode,
+            t1.equipmentName equipmentName,
+            t2.FactoryName finr,
+            t3.process_long equipmentRunTime,
+            t3.create_time statisDate
+        FROM
+            Equipment t1
+                LEFT JOIN FactoryInfo t2 ON t1.FactoryID = t2.FactoryID
+                LEFT JOIN mdc_equipment_statistical_info t3 ON t1.EquipmentID = t3.equipment_id
+        WHERE t3.the_date = #{date}
+    </select>
+
+
+    <select id="selectOee" resultType="java.lang.String">
+        SELECT
+            oee
+        FROM
+            mdc_oee_info
+        WHERE equipment_id = #{equipmentId} AND the_date = #{date}
+    </select>
 </mapper>
\ No newline at end of file
diff --git a/lxzn-module-mdc/src/main/java/org/jeecg/modules/mdc/mapper/xml/MdcEquipmentDayScheduleMapper.xml b/lxzn-module-mdc/src/main/java/org/jeecg/modules/mdc/mapper/xml/MdcEquipmentDayScheduleMapper.xml
new file mode 100644
index 0000000..864dff2
--- /dev/null
+++ b/lxzn-module-mdc/src/main/java/org/jeecg/modules/mdc/mapper/xml/MdcEquipmentDayScheduleMapper.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.MdcEquipmentDayScheduleMapper">
+
+</mapper>
\ No newline at end of file
diff --git a/lxzn-module-mdc/src/main/java/org/jeecg/modules/mdc/mapper/xml/MdcEquipmentDaySummaryMapper.xml b/lxzn-module-mdc/src/main/java/org/jeecg/modules/mdc/mapper/xml/MdcEquipmentDaySummaryMapper.xml
new file mode 100644
index 0000000..b888911
--- /dev/null
+++ b/lxzn-module-mdc/src/main/java/org/jeecg/modules/mdc/mapper/xml/MdcEquipmentDaySummaryMapper.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.MdcEquipmentDaySummaryMapper">
+
+</mapper>
\ No newline at end of file
diff --git a/lxzn-module-mdc/src/main/java/org/jeecg/modules/mdc/mapper/xml/MdcEquipmentMapper.xml b/lxzn-module-mdc/src/main/java/org/jeecg/modules/mdc/mapper/xml/MdcEquipmentMapper.xml
index 4cd73de..58aaf78 100644
--- a/lxzn-module-mdc/src/main/java/org/jeecg/modules/mdc/mapper/xml/MdcEquipmentMapper.xml
+++ b/lxzn-module-mdc/src/main/java/org/jeecg/modules/mdc/mapper/xml/MdcEquipmentMapper.xml
@@ -279,4 +279,21 @@
             t1.id = #{ id }
     </select>
 
+    <!--鏍规嵁浜х嚎id鑾峰彇璁惧鐘舵�佸垪琛�-->
+    <select id="getEquipmentMonitorList" resultType="org.jeecg.modules.mdc.entity.MdcEquipmentMonitor">
+        SELECT e.equipment_id,
+               et.CollectTime,
+               e.equipment_name,
+               et.Oporation,
+               e.id,
+               e.equipment_status,
+               e.equipment_type AS equipmentType,
+               etp.equipment_type_pictures
+        FROM mdc_equipment e
+                 LEFT JOIN Equipment et ON e.equipment_id = et.EquipmentID
+                 LEFT JOIN mdc_equipment_type etp ON e.equipment_type = etp.equipment_type_name
+                 JOIN mdc_workshop_equipment we ON e.equipment_id = we.equipment_id
+        WHERE we.workshop_id = #{workshopId}
+    </select>
+
 </mapper>
\ No newline at end of file
diff --git a/lxzn-module-mdc/src/main/java/org/jeecg/modules/mdc/service/IEquipmentService.java b/lxzn-module-mdc/src/main/java/org/jeecg/modules/mdc/service/IEquipmentService.java
index 8dfe74b..f5054dd 100644
--- a/lxzn-module-mdc/src/main/java/org/jeecg/modules/mdc/service/IEquipmentService.java
+++ b/lxzn-module-mdc/src/main/java/org/jeecg/modules/mdc/service/IEquipmentService.java
@@ -2,6 +2,10 @@
 
 import com.baomidou.mybatisplus.extension.service.IService;
 import org.jeecg.modules.mdc.entity.Equipment;
+import org.jeecg.modules.mdc.vo.WsEquipmentStatus;
+import org.jeecg.modules.mdc.vo.WsEquipmentUtilizationRate;
+
+import java.util.List;
 
 /**
  * @Description: 閲囬泦璁惧琛�
@@ -13,6 +17,7 @@
 
     /**
      * 鏍规嵁鏁版嵁琛ㄥ悕绉版煡璇㈡暟鎹〃鏄惁瀛樺湪
+     *
      * @param saveTableName
      * @return
      */
@@ -20,6 +25,7 @@
 
     /**
      * 鏌ヨ闇�澶囦唤鏁版嵁閲�
+     *
      * @param saveTableName
      * @param day
      * @return
@@ -28,6 +34,7 @@
 
     /**
      * 鏁版嵁杩佺Щ
+     *
      * @param backupTableName
      * @param tableName
      * @param day
@@ -36,6 +43,7 @@
 
     /**
      * 鍒犻櫎鍘熸暟鎹〃鏁版嵁
+     *
      * @param tableName
      * @param day
      */
@@ -43,9 +51,23 @@
 
     /**
      * 鍒涘缓澶囦唤琛�
+     *
      * @param backupTableName
      * @param tableName
      * @param day
      */
     void insertNoTableData(String backupTableName, String tableName, String day);
+
+    /**
+     * 鏌ヨ璁惧鐘舵��
+     *
+     * @return
+     */
+    List<WsEquipmentStatus> selectEquipmentStatus();
+
+    /**
+     * 鏌ヨ璁惧鍒╃敤鐜�
+     * @return
+     */
+    List<WsEquipmentUtilizationRate> selectEquipmentRate();
 }
diff --git a/lxzn-module-mdc/src/main/java/org/jeecg/modules/mdc/service/IMdcEquipmentDayScheduleService.java b/lxzn-module-mdc/src/main/java/org/jeecg/modules/mdc/service/IMdcEquipmentDayScheduleService.java
new file mode 100644
index 0000000..906ba4d
--- /dev/null
+++ b/lxzn-module-mdc/src/main/java/org/jeecg/modules/mdc/service/IMdcEquipmentDayScheduleService.java
@@ -0,0 +1,7 @@
+package org.jeecg.modules.mdc.service;
+
+import com.baomidou.mybatisplus.extension.service.IService;
+import org.jeecg.modules.mdc.entity.MdcEquipmentDaySchedule;
+
+public interface IMdcEquipmentDayScheduleService extends IService<MdcEquipmentDaySchedule> {
+}
diff --git a/lxzn-module-mdc/src/main/java/org/jeecg/modules/mdc/service/IMdcEquipmentDaySummaryService.java b/lxzn-module-mdc/src/main/java/org/jeecg/modules/mdc/service/IMdcEquipmentDaySummaryService.java
new file mode 100644
index 0000000..3069351
--- /dev/null
+++ b/lxzn-module-mdc/src/main/java/org/jeecg/modules/mdc/service/IMdcEquipmentDaySummaryService.java
@@ -0,0 +1,7 @@
+package org.jeecg.modules.mdc.service;
+
+import com.baomidou.mybatisplus.extension.service.IService;
+import org.jeecg.modules.mdc.entity.MdcEquipmentDaySummary;
+
+public interface IMdcEquipmentDaySummaryService extends IService<MdcEquipmentDaySummary> {
+}
diff --git a/lxzn-module-mdc/src/main/java/org/jeecg/modules/mdc/service/IMdcEquipmentService.java b/lxzn-module-mdc/src/main/java/org/jeecg/modules/mdc/service/IMdcEquipmentService.java
index 5e20315..87a1a43 100644
--- a/lxzn-module-mdc/src/main/java/org/jeecg/modules/mdc/service/IMdcEquipmentService.java
+++ b/lxzn-module-mdc/src/main/java/org/jeecg/modules/mdc/service/IMdcEquipmentService.java
@@ -210,4 +210,11 @@
 
     List<String> listEquipmentIdShift(MdcEfficiencyReportShiftQueryVo vo);
 
+    /**
+     * 鏍规嵁浜х嚎id鑾峰彇璁惧鐘舵�佸垪琛�
+     *
+     * @param workshopId
+     * @return
+     */
+    List<MdcEquipmentMonitor> getEquipmentMonitorList(String workshopId);
 }
diff --git a/lxzn-module-mdc/src/main/java/org/jeecg/modules/mdc/service/IMdcOeeInfoService.java b/lxzn-module-mdc/src/main/java/org/jeecg/modules/mdc/service/IMdcOeeInfoService.java
index f9bcaea..f4fdad3 100644
--- a/lxzn-module-mdc/src/main/java/org/jeecg/modules/mdc/service/IMdcOeeInfoService.java
+++ b/lxzn-module-mdc/src/main/java/org/jeecg/modules/mdc/service/IMdcOeeInfoService.java
@@ -46,6 +46,7 @@
 
     /**
      * 璁$畻OEE
+     *
      * @param mdcOeeComputeVo
      */
     void computeOee(MdcOeeComputeVo mdcOeeComputeVo);
diff --git a/lxzn-module-mdc/src/main/java/org/jeecg/modules/mdc/service/impl/EquipmentServiceImpl.java b/lxzn-module-mdc/src/main/java/org/jeecg/modules/mdc/service/impl/EquipmentServiceImpl.java
index 3db46bc..3880d84 100644
--- a/lxzn-module-mdc/src/main/java/org/jeecg/modules/mdc/service/impl/EquipmentServiceImpl.java
+++ b/lxzn-module-mdc/src/main/java/org/jeecg/modules/mdc/service/impl/EquipmentServiceImpl.java
@@ -4,7 +4,14 @@
 import org.jeecg.modules.mdc.entity.Equipment;
 import org.jeecg.modules.mdc.mapper.EquipmentMapper;
 import org.jeecg.modules.mdc.service.IEquipmentService;
+import org.jeecg.modules.mdc.vo.WsEquipmentStatus;
+import org.jeecg.modules.mdc.vo.WsEquipmentUtilizationRate;
 import org.springframework.stereotype.Service;
+
+import java.math.BigDecimal;
+import java.math.RoundingMode;
+import java.time.LocalDate;
+import java.util.List;
 
 /**
  * @Description: 閲囬泦璁惧琛�
@@ -39,4 +46,27 @@
     public void insertNoTableData(String backupTableName, String tableName, String day) {
         this.baseMapper.insertNoTableData(backupTableName, tableName, day);
     }
+
+    @Override
+    public List<WsEquipmentStatus> selectEquipmentStatus() {
+        return this.baseMapper.selectEquipmentStatus();
+    }
+
+    @Override
+    public List<WsEquipmentUtilizationRate> selectEquipmentRate() {
+        String date = LocalDate.now().plusDays(-1).toString();
+        List<WsEquipmentUtilizationRate> list = this.baseMapper.selectEquipmentRate(date.replaceAll("-", ""));
+        if (list != null && !list.isEmpty()) {
+            for (WsEquipmentUtilizationRate wsEquipmentUtilizationRate : list) {
+                String equipmentRunTime = wsEquipmentUtilizationRate.getEquipmentRunTime();
+                wsEquipmentUtilizationRate.setStatisType("D");
+                wsEquipmentUtilizationRate.setEquipmentRunTime(new BigDecimal(equipmentRunTime).divide(new BigDecimal("60"), 0, RoundingMode.HALF_UP).toString());
+                wsEquipmentUtilizationRate.setEquipmentRate(new BigDecimal(equipmentRunTime).divide(new BigDecimal("86400"), 2, RoundingMode.HALF_UP).toString());
+                wsEquipmentUtilizationRate.setEquipmentCalendar(date);
+                String oee = this.baseMapper.selectOee(wsEquipmentUtilizationRate.getEquipmentCode(), date);
+                wsEquipmentUtilizationRate.setEquipmentOee(oee == null ? "0" : oee);
+            }
+        }
+        return list;
+    }
 }
diff --git a/lxzn-module-mdc/src/main/java/org/jeecg/modules/mdc/service/impl/MdcEquipmentDayScheduleServiceImpl.java b/lxzn-module-mdc/src/main/java/org/jeecg/modules/mdc/service/impl/MdcEquipmentDayScheduleServiceImpl.java
new file mode 100644
index 0000000..07e78b8
--- /dev/null
+++ b/lxzn-module-mdc/src/main/java/org/jeecg/modules/mdc/service/impl/MdcEquipmentDayScheduleServiceImpl.java
@@ -0,0 +1,16 @@
+package org.jeecg.modules.mdc.service.impl;
+
+import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
+import org.jeecg.modules.mdc.entity.MdcEquipmentDaySchedule;
+import org.jeecg.modules.mdc.mapper.MdcEquipmentDayScheduleMapper;
+import org.jeecg.modules.mdc.service.IMdcEquipmentDayScheduleService;
+import org.springframework.stereotype.Service;
+
+/**
+ * @Author: Lius
+ * @CreateTime: 2025-02-26
+ * @Description: s
+ */
+@Service
+public class MdcEquipmentDayScheduleServiceImpl extends ServiceImpl<MdcEquipmentDayScheduleMapper, MdcEquipmentDaySchedule> implements IMdcEquipmentDayScheduleService {
+}
diff --git a/lxzn-module-mdc/src/main/java/org/jeecg/modules/mdc/service/impl/MdcEquipmentDaySummaryServiceImpl.java b/lxzn-module-mdc/src/main/java/org/jeecg/modules/mdc/service/impl/MdcEquipmentDaySummaryServiceImpl.java
new file mode 100644
index 0000000..eb6b7d3
--- /dev/null
+++ b/lxzn-module-mdc/src/main/java/org/jeecg/modules/mdc/service/impl/MdcEquipmentDaySummaryServiceImpl.java
@@ -0,0 +1,16 @@
+package org.jeecg.modules.mdc.service.impl;
+
+import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
+import org.jeecg.modules.mdc.entity.MdcEquipmentDaySummary;
+import org.jeecg.modules.mdc.mapper.MdcEquipmentDaySummaryMapper;
+import org.jeecg.modules.mdc.service.IMdcEquipmentDaySummaryService;
+import org.springframework.stereotype.Service;
+
+/**
+ * @Author: Lius
+ * @CreateTime: 2025-02-26
+ * @Description: 璁惧鏃ユ眹鎬籭mpl
+ */
+@Service
+public class MdcEquipmentDaySummaryServiceImpl extends ServiceImpl<MdcEquipmentDaySummaryMapper, MdcEquipmentDaySummary> implements IMdcEquipmentDaySummaryService {
+}
diff --git a/lxzn-module-mdc/src/main/java/org/jeecg/modules/mdc/service/impl/MdcEquipmentServiceImpl.java b/lxzn-module-mdc/src/main/java/org/jeecg/modules/mdc/service/impl/MdcEquipmentServiceImpl.java
index 11909c7..6c195c4 100644
--- a/lxzn-module-mdc/src/main/java/org/jeecg/modules/mdc/service/impl/MdcEquipmentServiceImpl.java
+++ b/lxzn-module-mdc/src/main/java/org/jeecg/modules/mdc/service/impl/MdcEquipmentServiceImpl.java
@@ -1,6 +1,5 @@
 package org.jeecg.modules.mdc.service.impl;
 
-import com.alibaba.fastjson.JSONObject;
 import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
 import com.baomidou.mybatisplus.core.metadata.IPage;
 import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
@@ -906,4 +905,15 @@
         return list.stream().map(MdcEquipment::getEquipmentId).collect(Collectors.toList());
     }
 
+    /**
+     * 鏍规嵁浜х嚎id鑾峰彇璁惧鐘舵�佸垪琛�
+     *
+     * @param workshopId
+     * @return
+     */
+    @Override
+    public List<MdcEquipmentMonitor> getEquipmentMonitorList(String workshopId) {
+        return this.baseMapper.getEquipmentMonitorList(workshopId);
+    }
+
 }
diff --git a/lxzn-module-mdc/src/main/java/org/jeecg/modules/mdc/service/impl/MdcOeeInfoServiceImpl.java b/lxzn-module-mdc/src/main/java/org/jeecg/modules/mdc/service/impl/MdcOeeInfoServiceImpl.java
index 3486a28..d2cac3a 100644
--- a/lxzn-module-mdc/src/main/java/org/jeecg/modules/mdc/service/impl/MdcOeeInfoServiceImpl.java
+++ b/lxzn-module-mdc/src/main/java/org/jeecg/modules/mdc/service/impl/MdcOeeInfoServiceImpl.java
@@ -53,6 +53,7 @@
 
     /**
      * 鍒嗛〉鍒楄〃
+     *
      * @param userId
      * @param page
      * @param mdcOeeInfoVo
@@ -96,6 +97,7 @@
 
     /**
      * 瀵煎嚭
+     *
      * @param userId
      * @param mdcOeeInfoVo
      * @return
@@ -145,7 +147,7 @@
         ModelAndView mv = new ModelAndView(new JeecgEntityExcelView());
         List<MdcOeeInfo> mdcOeeInfos = this.baseMapper.selectList(queryWrapper);
         // 瀵煎嚭鏂囦欢鍚嶇О
-        mv.addObject(NormalExcelConstants.FILE_NAME,  "OEE鏁版嵁鍒楄〃");
+        mv.addObject(NormalExcelConstants.FILE_NAME, "OEE鏁版嵁鍒楄〃");
         mv.addObject(NormalExcelConstants.CLASS, MdcOeeInfo.class);
         LoginUser user = (LoginUser) SecurityUtils.getSubject().getPrincipal();
         mv.addObject(NormalExcelConstants.PARAMS, new ExportParams("OEE鏁版嵁鍒楄〃鏁版嵁", "瀵煎嚭浜�:" + user.getRealname(), "OEE鏁版嵁"));
@@ -156,6 +158,7 @@
 
     /**
      * 璁$畻OEE
+     *
      * @param mdcOeeComputeVo
      */
     @Override
@@ -242,6 +245,7 @@
 
     /**
      * 璁$畻oee
+     *
      * @param dateTime 鍙傛暟
      */
     @Override
diff --git a/lxzn-module-mdc/src/main/java/org/jeecg/modules/mdc/util/CxfClientUtil.java b/lxzn-module-mdc/src/main/java/org/jeecg/modules/mdc/util/CxfClientUtil.java
new file mode 100644
index 0000000..cfdda96
--- /dev/null
+++ b/lxzn-module-mdc/src/main/java/org/jeecg/modules/mdc/util/CxfClientUtil.java
@@ -0,0 +1,31 @@
+package org.jeecg.modules.mdc.util;
+
+import org.apache.cxf.endpoint.Client;
+import org.apache.cxf.jaxws.endpoint.dynamic.JaxWsDynamicClientFactory;
+
+import javax.xml.namespace.QName;
+
+/**
+ * @author Lius
+ * @date 2024/6/11 10:16
+ */
+public class CxfClientUtil {
+
+    /**
+     * 鍔ㄦ�佽皟鐢�
+     */
+    public static String invokeService(String url, String data, String namespace, String method) throws Exception {
+
+        JaxWsDynamicClientFactory dcf = JaxWsDynamicClientFactory.newInstance();
+        Client client = dcf.createClient(url);
+        QName opName = new QName(namespace, method);
+        Object[] objects = new Object[0];
+        try {
+            objects = client.invoke(opName, data);
+        } catch (Exception e) {
+            e.printStackTrace();
+        }
+        return objects[0].toString();
+    }
+
+}
diff --git a/lxzn-module-mdc/src/main/java/org/jeecg/modules/mdc/vo/EquipmentDaySchedule.java b/lxzn-module-mdc/src/main/java/org/jeecg/modules/mdc/vo/EquipmentDaySchedule.java
new file mode 100644
index 0000000..cb471a0
--- /dev/null
+++ b/lxzn-module-mdc/src/main/java/org/jeecg/modules/mdc/vo/EquipmentDaySchedule.java
@@ -0,0 +1,79 @@
+package org.jeecg.modules.mdc.vo;
+
+import lombok.Data;
+
+/**
+ * MES涓婁紶鏃ヨ鍒掓帴鏀跺璞�
+ *
+ * @author Lius
+ * @date 2025/2/26 14:17
+ */
+@Data
+public class EquipmentDaySchedule {
+
+    /**
+     * 涓婚敭
+     */
+    private String medId;
+    /**
+     * 鍗曞厓
+     */
+    private String dept;
+    /**
+     * 杞﹂棿锛堝垎鍘傦級
+     */
+    private String workshop;
+    /**
+     * 鐗堟湰鍙凤紙宸ヨ壓瑙勭▼鐗堟锛�
+     */
+    private String revisionNo;
+    /**
+     * 闆朵欢鍚嶇О
+     */
+    private String mdsItemId;
+    /**
+     * 闆朵欢鍙�
+     */
+    private String mdsItemCode;
+    /**
+     * 璁㈠崟鍙�
+     */
+    private String taskCode;
+    /**
+     * 娴佸崱鍙�
+     */
+    private String ewoNo;
+    /**
+     * 鎵规鍙�
+     */
+    private String batchNo;
+    /**
+     * 鎵规鏁伴噺锛堣鍒掓暟锛�
+     */
+    private String batchNum;
+    /**
+     * 鍚堟牸鏁�
+     */
+    private Integer qualifiedQty;
+    /**
+     * 鎶ュ簾鏁�
+     */
+    private Integer scrapQty;
+    /**
+     * 宸ュ簭鍙�
+     */
+    private String opreationSeqNo;
+    /**
+     * 娲惧伐鏃ユ湡
+     */
+    private String dispatchDate;
+    /**
+     * 璁惧缂栧彿
+     */
+    private String equipmentId;
+    /**
+     * 1 姝e父   2 鍙栨秷   3 鍒犻櫎
+     */
+    private String taskType;
+
+}
diff --git a/lxzn-module-mdc/src/main/java/org/jeecg/modules/mdc/vo/EquipmentDaySummary.java b/lxzn-module-mdc/src/main/java/org/jeecg/modules/mdc/vo/EquipmentDaySummary.java
new file mode 100644
index 0000000..fac96e7
--- /dev/null
+++ b/lxzn-module-mdc/src/main/java/org/jeecg/modules/mdc/vo/EquipmentDaySummary.java
@@ -0,0 +1,46 @@
+package org.jeecg.modules.mdc.vo;
+
+import lombok.Data;
+
+/**
+ * MES涓婁紶鏃ユ眹鎬绘帴鏀跺璞�
+ *
+ * @author Lius
+ * @date 2025/2/26 14:17
+ */
+@Data
+public class EquipmentDaySummary {
+    /**
+     * 涓婚敭
+     */
+    private String medId;
+    /**
+     * 鍗曞厓
+     */
+    private String dept;
+    /**
+     * 杞﹂棿锛堝垎鍘傦級
+     */
+    private String workshop;
+    /**
+     * 璁惧缂栧彿
+     */
+    private String equipmentCode;
+    /**
+     * 褰撳墠鍦ㄥ埗鍝侀噺锛堣鍗曡鍒掓暟閲�-鍏ュ簱鏁伴噺-鎶ュ簾鏁伴噺锛�
+     */
+    private Integer demandQty;
+    /**
+     * 浠婃棩瀹屽伐鍏ュ簱閲忥紙鍏ュ簱鏁伴噺锛�
+     */
+    private Integer qualifiedQty;
+    /**
+     * 浠婃棩鎶曚骇閲忥紙璁㈠崟鏁伴噺锛�
+     */
+    private Integer planQty;
+    /**
+     * 浠婃棩鎶ュ簾鏁伴噺
+     */
+    private Integer scrapQty;
+
+}
diff --git a/lxzn-module-mdc/src/main/java/org/jeecg/modules/mdc/vo/WsEquipmentStatus.java b/lxzn-module-mdc/src/main/java/org/jeecg/modules/mdc/vo/WsEquipmentStatus.java
new file mode 100644
index 0000000..8248ad5
--- /dev/null
+++ b/lxzn-module-mdc/src/main/java/org/jeecg/modules/mdc/vo/WsEquipmentStatus.java
@@ -0,0 +1,22 @@
+package org.jeecg.modules.mdc.vo;
+
+import lombok.Data;
+import java.util.Date;
+
+/**
+ * @author Lius
+ * @date 2024/6/11 10:44
+ */
+@Data
+public class WsEquipmentStatus {
+
+    private String equipmentCode;
+
+    private String equipmentName;
+
+    private String equipmentStatus;
+
+    private Date creationDate;
+
+    private String finr;
+}
diff --git a/lxzn-module-mdc/src/main/java/org/jeecg/modules/mdc/vo/WsEquipmentUtilizationRate.java b/lxzn-module-mdc/src/main/java/org/jeecg/modules/mdc/vo/WsEquipmentUtilizationRate.java
new file mode 100644
index 0000000..2ac4232
--- /dev/null
+++ b/lxzn-module-mdc/src/main/java/org/jeecg/modules/mdc/vo/WsEquipmentUtilizationRate.java
@@ -0,0 +1,50 @@
+package org.jeecg.modules.mdc.vo;
+
+import lombok.Data;
+
+import java.util.Date;
+
+/**
+ * @author Lius
+ * @date 2024/6/11 16:31
+ */
+@Data
+public class WsEquipmentUtilizationRate {
+
+    /**
+     * 璁惧缂栧彿
+     */
+    private String equipmentCode;
+    /**
+     * 璁惧鍚嶇О
+     */
+    private String equipmentName;
+    /**
+     * 鍒嗗巶
+     */
+    private String finr;
+    /**
+     * 璁惧鍒╃敤鐜�
+     */
+    private String equipmentRate;
+    /**
+     * 璁惧杩愯鏃堕棿(鍒嗛挓)
+     */
+    private String equipmentRunTime;
+    /**
+     * 璁惧鏃ュ巻
+     */
+    private String equipmentCalendar;
+    /**
+     * OEE
+     */
+    private String equipmentOee;
+    /**
+     * 缁熻绫诲瀷
+     */
+    private String statisType;
+    /**
+     * 缁熻鏃ユ湡
+     */
+    private Date statisDate;
+}
diff --git a/lxzn-module-mdc/src/main/java/org/jeecg/modules/mdc/vo/WsResult.java b/lxzn-module-mdc/src/main/java/org/jeecg/modules/mdc/vo/WsResult.java
new file mode 100644
index 0000000..1421c75
--- /dev/null
+++ b/lxzn-module-mdc/src/main/java/org/jeecg/modules/mdc/vo/WsResult.java
@@ -0,0 +1,20 @@
+package org.jeecg.modules.mdc.vo;
+
+import lombok.Data;
+
+/**
+ * @author Lius
+ * @date 2024/6/11 11:12
+ */
+@Data
+public class WsResult {
+
+    private String flag;
+
+    private String msg;
+
+    public WsResult(String flag, String msg) {
+        this.flag = flag;
+        this.msg = msg;
+    }
+}
diff --git a/lxzn-module-mdc/src/main/java/org/jeecg/modules/mdc/webservice/EquipmentWebService.java b/lxzn-module-mdc/src/main/java/org/jeecg/modules/mdc/webservice/EquipmentWebService.java
new file mode 100644
index 0000000..4724a7b
--- /dev/null
+++ b/lxzn-module-mdc/src/main/java/org/jeecg/modules/mdc/webservice/EquipmentWebService.java
@@ -0,0 +1,20 @@
+package org.jeecg.modules.mdc.webservice;
+
+import javax.jws.WebMethod;
+import javax.jws.WebParam;
+import javax.jws.WebService;
+
+/**
+ * @author Lius
+ * @date 2025/2/20 13:48
+ */
+@WebService(name = "EquipmentWebService", targetNamespace = "http://mdc.webservice.equipment.com")
+public interface EquipmentWebService {
+
+    @WebMethod
+    String equipmentDaySchedule(@WebParam(name = "msg") String msg);
+
+    @WebMethod
+    String equipmentDaySummary(@WebParam(name = "msg") String msg);
+
+}
diff --git a/lxzn-module-mdc/src/main/java/org/jeecg/modules/mdc/webservice/impl/EquipmentWebServiceImpl.java b/lxzn-module-mdc/src/main/java/org/jeecg/modules/mdc/webservice/impl/EquipmentWebServiceImpl.java
new file mode 100644
index 0000000..21e1507
--- /dev/null
+++ b/lxzn-module-mdc/src/main/java/org/jeecg/modules/mdc/webservice/impl/EquipmentWebServiceImpl.java
@@ -0,0 +1,63 @@
+package org.jeecg.modules.mdc.webservice.impl;
+
+import com.alibaba.fastjson.JSONObject;
+import lombok.extern.slf4j.Slf4j;
+import org.jeecg.modules.mdc.entity.MdcEquipmentDaySchedule;
+import org.jeecg.modules.mdc.entity.MdcEquipmentDaySummary;
+import org.jeecg.modules.mdc.service.IMdcEquipmentDayScheduleService;
+import org.jeecg.modules.mdc.service.IMdcEquipmentDaySummaryService;
+import org.jeecg.modules.mdc.vo.EquipmentDaySchedule;
+import org.jeecg.modules.mdc.vo.EquipmentDaySummary;
+import org.jeecg.modules.mdc.vo.WsResult;
+import org.jeecg.modules.mdc.webservice.EquipmentWebService;
+import org.springframework.beans.BeanUtils;
+import org.springframework.stereotype.Service;
+
+import javax.annotation.Resource;
+import javax.jws.WebService;
+
+
+/**
+ * @author Lius
+ * @date 2024/6/11 11:07
+ */
+@Service
+@WebService(name = "EquipmentWebService",
+        targetNamespace = "http://mdc.webservice.equipment.com",
+        endpointInterface = "org.jeecg.modules.mdc.webservice.EquipmentWebService"
+)
+@Slf4j
+public class EquipmentWebServiceImpl implements EquipmentWebService {
+
+    @Resource
+    private IMdcEquipmentDaySummaryService mdcEquipmentDaySummaryService;
+
+    @Resource
+    private IMdcEquipmentDayScheduleService mdcEquipmentDayScheduleService;
+
+    @Override
+    public String equipmentDaySchedule(String msg) {
+        log.info("MES涓婃姤鏃ヨ鍒掑師濮嬫暟鎹� === {}", msg);
+        EquipmentDaySchedule equipmentDaySchedule = JSONObject.parseObject(msg, EquipmentDaySchedule.class);
+        MdcEquipmentDaySchedule mdcEquipmentDaySchedule = new MdcEquipmentDaySchedule();
+        BeanUtils.copyProperties(equipmentDaySchedule, mdcEquipmentDaySchedule);
+        mdcEquipmentDayScheduleService.save(mdcEquipmentDaySchedule);
+
+        log.info("MES涓婃姤鏃ヨ鍒掓暟鎹垚鍔燂紒");
+        WsResult wsResult = new WsResult("1", "鎴愬姛");
+        return JSONObject.toJSONString(wsResult);
+    }
+
+    @Override
+    public String equipmentDaySummary(String msg) {
+        log.info("MES涓婃姤鏃ユ眹鎬诲師濮嬫暟鎹� === {}", msg);
+        EquipmentDaySummary equipmentDaySummary = JSONObject.parseObject(msg, EquipmentDaySummary.class);
+        MdcEquipmentDaySummary mdcEquipmentDaySummary = new MdcEquipmentDaySummary();
+        BeanUtils.copyProperties(equipmentDaySummary, mdcEquipmentDaySummary);
+        mdcEquipmentDaySummaryService.save(mdcEquipmentDaySummary);
+
+        log.info("MES涓婃姤鏃ユ眹鎬绘暟鎹垚鍔燂紒");
+        WsResult wsResult = new WsResult("1", "鎴愬姛");
+        return JSONObject.toJSONString(wsResult);
+    }
+}
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..31b0207
--- /dev/null
+++ b/lxzn-module-mdc/src/main/java/org/jeecg/modules/screen/controller/MdcLargeScreenController.java
@@ -0,0 +1,43 @@
+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.EquipmentStatusOverview;
+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;
+
+/**
+ * @Author: Lius
+ * @CreateTime: 2025-02-28
+ * @Description:
+ */
+@Slf4j
+@Api(tags = "澶у睆鐪嬫澘")
+@RestController
+@RequestMapping("/mdc/largeScreen")
+public class MdcLargeScreenController {
+
+    @Resource
+    private MdcLargeScreenService mdcLargeScreenService;
+
+    @ApiOperation(value = "澶у睆鐪嬫澘-璁惧鎯呭喌", notes = "澶у睆鐪嬫澘-璁惧鎯呭喌")
+    @GetMapping("/equipmentStatusOverview")
+    public Result<EquipmentStatusOverview> equipmentStatusOverview(String workshopId) {
+        EquipmentStatusOverview equipmentStatusOverview = mdcLargeScreenService.equipmentStatusOverview(workshopId);
+        return Result.OK(equipmentStatusOverview);
+    }
+
+//    @ApiOperation(value = "澶у睆鐪嬫澘-鏈堝埄鐢ㄧ巼瓒嬪娍", notes = "澶у睆鐪嬫澘-鏈堝埄鐢ㄧ巼瓒嬪娍")
+//    @GetMapping("/monthUtilizationTendency")
+//    public Result<EquipmentStatusOverview> monthUtilizationTendency(String workshopId) {
+//
+//        return Result.OK(equipmentStatusOverview);
+//    }
+
+}
diff --git a/lxzn-module-mdc/src/main/java/org/jeecg/modules/screen/dto/EquipmentStatusOverview.java b/lxzn-module-mdc/src/main/java/org/jeecg/modules/screen/dto/EquipmentStatusOverview.java
new file mode 100644
index 0000000..9e19750
--- /dev/null
+++ b/lxzn-module-mdc/src/main/java/org/jeecg/modules/screen/dto/EquipmentStatusOverview.java
@@ -0,0 +1,37 @@
+package org.jeecg.modules.screen.dto;
+
+import lombok.Data;
+
+/**
+ * @Author: Lius
+ * @CreateTime: 2025-02-28
+ * @Description:
+ */
+@Data
+public class EquipmentStatusOverview {
+    /**
+     * 璁惧鎬绘暟
+     */
+    private Integer equipmentCount = 0;
+    /**
+     * 澶т慨銆侀」淇暟
+     */
+    private Integer repairCount = 0;
+    /**
+     * 姝e父杩愯鏁�
+     */
+    private Integer runCount = 0;
+    /**
+     * 寰呮満鏁�
+     */
+    private Integer waitCount = 0;
+    /**
+     * 鎶ヨ鏁�
+     */
+    private Integer errorCount = 0;
+    /**
+     * 鍏虫満鏁�
+     */
+    private Integer closeCount = 0;
+
+}
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..c09ee64
--- /dev/null
+++ b/lxzn-module-mdc/src/main/java/org/jeecg/modules/screen/service/MdcLargeScreenService.java
@@ -0,0 +1,19 @@
+package org.jeecg.modules.screen.service;
+
+import org.jeecg.modules.screen.dto.EquipmentStatusOverview;
+
+/**
+ * @Author: Lius
+ * @CreateTime: 2025-02-28
+ * @Description:
+ */
+public interface MdcLargeScreenService {
+
+    /**
+     * 璁惧鎯呭喌
+     *
+     * @param workshopId
+     * @return
+     */
+    EquipmentStatusOverview equipmentStatusOverview(String workshopId);
+}
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..5bb85fa
--- /dev/null
+++ b/lxzn-module-mdc/src/main/java/org/jeecg/modules/screen/service/impl/MdcLargeScreenServiceImpl.java
@@ -0,0 +1,75 @@
+package org.jeecg.modules.screen.service.impl;
+
+import org.jeecg.common.constant.CommonConstant;
+import org.jeecg.common.system.vo.DictModel;
+import org.jeecg.modules.mdc.entity.MdcEquipmentMonitor;
+import org.jeecg.modules.mdc.service.IMdcEquipmentService;
+import org.jeecg.modules.screen.dto.EquipmentStatusOverview;
+import org.jeecg.modules.screen.service.MdcLargeScreenService;
+import org.jeecg.modules.system.service.ISysDictService;
+import org.springframework.stereotype.Service;
+
+import javax.annotation.Resource;
+import java.util.List;
+
+/**
+ * @Author: Lius
+ * @CreateTime: 2025-02-28
+ * @Description:
+ */
+@Service
+public class MdcLargeScreenServiceImpl implements MdcLargeScreenService {
+
+    @Resource
+    private IMdcEquipmentService mdcEquipmentService;
+
+    @Resource
+    private ISysDictService sysDictService;
+
+    /**
+     * 璁惧鐘舵�佹儏鍐�
+     *
+     * @param workshopId
+     * @return
+     */
+    @Override
+    public EquipmentStatusOverview equipmentStatusOverview(String workshopId) {
+        EquipmentStatusOverview equipmentStatusOverview = new EquipmentStatusOverview();
+        List<MdcEquipmentMonitor> equipmentMonitorList = mdcEquipmentService.getEquipmentMonitorList(workshopId);
+        if (equipmentMonitorList != null && !equipmentMonitorList.isEmpty()) {
+            equipmentStatusOverview.setEquipmentCount(equipmentMonitorList.size());
+            for (MdcEquipmentMonitor mdcEquipmentMonitor : equipmentMonitorList) {
+                if (mdcEquipmentMonitor.getEquipmentStatus() == 0) {
+                    if (mdcEquipmentMonitor.getOporation() != null) {
+                        switch (mdcEquipmentMonitor.getOporation()) {
+                            case 1:
+                            case 2:
+                                equipmentStatusOverview.setWaitCount(equipmentStatusOverview.getWaitCount() + 1);
+                                break;
+                            case 3:
+                                equipmentStatusOverview.setRunCount(equipmentStatusOverview.getRunCount());
+                                break;
+                            case 22:
+                                equipmentStatusOverview.setErrorCount(equipmentStatusOverview.getErrorCount() + 1);
+                                break;
+                            default:
+                                equipmentStatusOverview.setCloseCount(equipmentStatusOverview.getCloseCount() + 1);
+                                break;
+                        }
+                    } else {
+                        equipmentStatusOverview.setCloseCount(equipmentStatusOverview.getCloseCount() + 1);
+                        mdcEquipmentMonitor.setOporation(0);
+                    }
+                } else {
+                    List<DictModel> dictList = sysDictService.queryEnableDictItemsByCode(CommonConstant.DICT_EQUIPMENT_STATUS);
+                    for (DictModel dictModel : dictList) {
+                        if (Integer.valueOf(dictModel.getValue()).equals(mdcEquipmentMonitor.getEquipmentStatus())) {
+                            equipmentStatusOverview.setRepairCount(equipmentStatusOverview.getRepairCount() + 1);
+                        }
+                    }
+                }
+            }
+        }
+        return equipmentStatusOverview;
+    }
+}
diff --git a/pom.xml b/pom.xml
index 142ccfa..9da6f75 100644
--- a/pom.xml
+++ b/pom.xml
@@ -59,6 +59,8 @@
 		<!-- Log4j2鐖嗛浄婕忔礊 -->
 		<log4j2.version>2.17.0</log4j2.version>
 		<logback.version>1.2.9</logback.version>
+		<!-- webservice -->
+		<cxf.version>3.2.4</cxf.version>
 	</properties>
 
 	<modules>

--
Gitblit v1.9.3