Lius
2025-03-03 5ae1b71ab6b57140d46e6a8b9e606bb4a390ce27
webservice接口
已添加26个文件
已修改14个文件
1125 ■■■■■ 文件已修改
lxzn-boot-base-core/pom.xml 21 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
lxzn-boot-base-core/src/main/java/org/jeecg/config/shiro/ShiroConfig.java 1 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
lxzn-module-mdc/src/main/java/org/jeecg/modules/mdc/bo/WebResult.java 17 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
lxzn-module-mdc/src/main/java/org/jeecg/modules/mdc/config/WebServiceConfig.java 43 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
lxzn-module-mdc/src/main/java/org/jeecg/modules/mdc/entity/MdcEquipmentDaySchedule.java 85 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
lxzn-module-mdc/src/main/java/org/jeecg/modules/mdc/entity/MdcEquipmentDaySummary.java 54 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
lxzn-module-mdc/src/main/java/org/jeecg/modules/mdc/entity/MdcWorkshopInfo.java 6 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
lxzn-module-mdc/src/main/java/org/jeecg/modules/mdc/job/WebServiceStatusJob.java 87 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
lxzn-module-mdc/src/main/java/org/jeecg/modules/mdc/job/WebServiceUtilizationRateJob.java 86 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
lxzn-module-mdc/src/main/java/org/jeecg/modules/mdc/mapper/EquipmentMapper.java 10 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
lxzn-module-mdc/src/main/java/org/jeecg/modules/mdc/mapper/MdcEquipmentDayScheduleMapper.java 7 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
lxzn-module-mdc/src/main/java/org/jeecg/modules/mdc/mapper/MdcEquipmentDaySummaryMapper.java 7 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
lxzn-module-mdc/src/main/java/org/jeecg/modules/mdc/mapper/MdcEquipmentMapper.java 7 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
lxzn-module-mdc/src/main/java/org/jeecg/modules/mdc/mapper/xml/EquipmentMapper.xml 36 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
lxzn-module-mdc/src/main/java/org/jeecg/modules/mdc/mapper/xml/MdcEquipmentDayScheduleMapper.xml 5 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
lxzn-module-mdc/src/main/java/org/jeecg/modules/mdc/mapper/xml/MdcEquipmentDaySummaryMapper.xml 5 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
lxzn-module-mdc/src/main/java/org/jeecg/modules/mdc/mapper/xml/MdcEquipmentMapper.xml 17 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
lxzn-module-mdc/src/main/java/org/jeecg/modules/mdc/service/IEquipmentService.java 22 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
lxzn-module-mdc/src/main/java/org/jeecg/modules/mdc/service/IMdcEquipmentDayScheduleService.java 7 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
lxzn-module-mdc/src/main/java/org/jeecg/modules/mdc/service/IMdcEquipmentDaySummaryService.java 7 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
lxzn-module-mdc/src/main/java/org/jeecg/modules/mdc/service/IMdcEquipmentService.java 7 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
lxzn-module-mdc/src/main/java/org/jeecg/modules/mdc/service/IMdcOeeInfoService.java 1 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
lxzn-module-mdc/src/main/java/org/jeecg/modules/mdc/service/impl/EquipmentServiceImpl.java 30 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
lxzn-module-mdc/src/main/java/org/jeecg/modules/mdc/service/impl/MdcEquipmentDayScheduleServiceImpl.java 16 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
lxzn-module-mdc/src/main/java/org/jeecg/modules/mdc/service/impl/MdcEquipmentDaySummaryServiceImpl.java 16 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
lxzn-module-mdc/src/main/java/org/jeecg/modules/mdc/service/impl/MdcEquipmentServiceImpl.java 12 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
lxzn-module-mdc/src/main/java/org/jeecg/modules/mdc/service/impl/MdcOeeInfoServiceImpl.java 6 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
lxzn-module-mdc/src/main/java/org/jeecg/modules/mdc/util/CxfClientUtil.java 31 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
lxzn-module-mdc/src/main/java/org/jeecg/modules/mdc/vo/EquipmentDaySchedule.java 79 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
lxzn-module-mdc/src/main/java/org/jeecg/modules/mdc/vo/EquipmentDaySummary.java 46 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
lxzn-module-mdc/src/main/java/org/jeecg/modules/mdc/vo/WsEquipmentStatus.java 22 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
lxzn-module-mdc/src/main/java/org/jeecg/modules/mdc/vo/WsEquipmentUtilizationRate.java 50 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
lxzn-module-mdc/src/main/java/org/jeecg/modules/mdc/vo/WsResult.java 20 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
lxzn-module-mdc/src/main/java/org/jeecg/modules/mdc/webservice/EquipmentWebService.java 20 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
lxzn-module-mdc/src/main/java/org/jeecg/modules/mdc/webservice/impl/EquipmentWebServiceImpl.java 63 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
lxzn-module-mdc/src/main/java/org/jeecg/modules/screen/controller/MdcLargeScreenController.java 43 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
lxzn-module-mdc/src/main/java/org/jeecg/modules/screen/dto/EquipmentStatusOverview.java 37 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
lxzn-module-mdc/src/main/java/org/jeecg/modules/screen/service/MdcLargeScreenService.java 19 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
lxzn-module-mdc/src/main/java/org/jeecg/modules/screen/service/impl/MdcLargeScreenServiceImpl.java 75 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
pom.xml 2 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
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>
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");
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;
}
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;
    }
}
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 æ­£å¸¸   2 å–消   3 åˆ é™¤
     */
    private String taskType;
}
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;
}
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;
}
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);
    }
}
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);
    }
}
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);
}
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> {
}
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> {
}
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);
}
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>
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>
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>
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>
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();
}
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> {
}
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> {
}
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);
}
lxzn-module-mdc/src/main/java/org/jeecg/modules/mdc/service/IMdcOeeInfoService.java
@@ -46,6 +46,7 @@
    /**
     * è®¡ç®—OEE
     *
     * @param mdcOeeComputeVo
     */
    void computeOee(MdcOeeComputeVo mdcOeeComputeVo);
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;
    }
}
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 {
}
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: è®¾å¤‡æ—¥æ±‡æ€»impl
 */
@Service
public class MdcEquipmentDaySummaryServiceImpl extends ServiceImpl<MdcEquipmentDaySummaryMapper, MdcEquipmentDaySummary> implements IMdcEquipmentDaySummaryService {
}
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);
    }
}
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
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();
    }
}
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 æ­£å¸¸   2 å–消   3 åˆ é™¤
     */
    private String taskType;
}
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;
}
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;
}
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;
}
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;
    }
}
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);
}
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);
    }
}
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);
//    }
}
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;
    /**
     * æ­£å¸¸è¿è¡Œæ•°
     */
    private Integer runCount = 0;
    /**
     * å¾…机数
     */
    private Integer waitCount = 0;
    /**
     * æŠ¥è­¦æ•°
     */
    private Integer errorCount = 0;
    /**
     * å…³æœºæ•°
     */
    private Integer closeCount = 0;
}
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);
}
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;
    }
}
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>