zhangherong
3 天以前 0b8e5e2ee3c47e385816165826754d5cbb86faad
art: 2#装配线设备状态采集模板
已添加13个文件
已修改5个文件
404 ■■■■■ 文件已修改
pom.xml 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/java/com/lxzn/LxznSystemCollectApplication.java 2 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/java/com/lxzn/modules/assembly2/controller/AssemblyCollectionJobController.java 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/java/com/lxzn/modules/assembly2/entity/T020Boltcheck.java 28 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/java/com/lxzn/modules/assembly2/entity/TcOpstate.java 16 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/java/com/lxzn/modules/master/entity/Assembly2TcOpstate.java 40 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/java/com/lxzn/modules/master/entity/EquipmentLog.java 38 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/java/com/lxzn/modules/master/enums/Assembly2EquipmentMappingEnum.java 29 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/java/com/lxzn/modules/master/enums/EquipmentStatusEnum.java 20 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/java/com/lxzn/modules/master/job/EquipmentLogCollectJob.java 47 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/java/com/lxzn/modules/master/mapper/Assembly2TcOpstateMapper.java 16 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/java/com/lxzn/modules/master/mapper/EquipmentLogMapper.java 21 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/java/com/lxzn/modules/master/mapper/xml/Assembly2TcOpstateMapper.xml 5 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/java/com/lxzn/modules/master/mapper/xml/EquipmentLogMapper.xml 18 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/java/com/lxzn/modules/master/service/IAssembly2TcOpstateService.java 23 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/java/com/lxzn/modules/master/service/IEquipmentLogService.java 22 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/java/com/lxzn/modules/master/service/impl/Assembly2TcOpstateServiceImpl.java 40 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/java/com/lxzn/modules/master/service/impl/EquipmentLogServiceImpl.java 35 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
pom.xml
@@ -6,7 +6,7 @@
    <artifactId>lxzn-system-collect</artifactId>
    <version>1.0.0</version>
    <url>http://maven.apache.org</url>
    <name>LXZN-SYSTEM-COLLECT  ${project.version}</name>
    <name>LXZN-SYSTEM-COLLECT ${project.version}</name>
    <parent>
        <groupId>org.springframework.boot</groupId>
src/main/java/com/lxzn/LxznSystemCollectApplication.java
@@ -9,6 +9,7 @@
import org.springframework.boot.web.servlet.support.SpringBootServletInitializer;
import org.springframework.context.ConfigurableApplicationContext;
import org.springframework.core.env.Environment;
import org.springframework.scheduling.annotation.EnableScheduling;
import java.net.InetAddress;
import java.net.UnknownHostException;
@@ -17,6 +18,7 @@
* å•体启动类
* æŠ¥é”™æé†’: æœªé›†æˆmongo报错,可以打开启动类上面的注释 exclude={MongoAutoConfiguration.class}
*/
@EnableScheduling
@Slf4j
@SpringBootApplication(scanBasePackages = "com.lxzn", exclude = { DataSourceAutoConfiguration.class })
@MapperScan(value={"com.lxzn.modules.**.mapper*"})
src/main/java/com/lxzn/modules/assembly2/controller/AssemblyCollectionJobController.java
@@ -12,7 +12,7 @@
import java.util.List;
@Api(tags = "2#装配线采集")
@Api(tags = "2号装配线采集")
@RestController
@RequestMapping("/assembly2/job")
public class AssemblyCollectionJobController {
src/main/java/com/lxzn/modules/assembly2/entity/T020Boltcheck.java
@@ -1,12 +1,17 @@
package com.lxzn.modules.assembly2.entity;
import com.baomidou.mybatisplus.annotation.IdType;
import com.baomidou.mybatisplus.annotation.TableField;
import com.baomidou.mybatisplus.annotation.TableId;
import com.baomidou.mybatisplus.annotation.TableName;
import java.io.Serializable;
import java.time.LocalDateTime;
import java.util.Date;
import com.fasterxml.jackson.annotation.JsonFormat;
import lombok.Getter;
import lombok.Setter;
import org.springframework.format.annotation.DateTimeFormat;
/**
 * <p>
@@ -26,23 +31,26 @@
    @TableId(value = "RecordID", type = IdType.AUTO)
    private Integer recordID;
    private LocalDateTime recordTime;
    @JsonFormat(timezone = "GMT+8", pattern = "yyyy-MM-dd HH:mm:ss.SSS")
    @DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss.SSS")
    @TableField(value = "RecordTime")
    private Date recordTime;
    @TableField(value = "ModelID")
    private Integer modelID;
    @TableField(value = "Length")
    private Double length;
    @TableField(value = "LengthUL")
    private Double lengthUL;
    @TableField(value = "LengthLL")
    private Double lengthLL;
    @TableField(value = "PitchMAX")
    private Double pitchMAX;
    @TableField(value = "PitchMIN")
    private Double pitchMIN;
    @TableField(value = "PitchUL")
    private Double pitchUL;
    @TableField(value = "PitchLL")
    private Double pitchLL;
    @TableField(value = "Result")
    private String result;
}
src/main/java/com/lxzn/modules/assembly2/entity/TcOpstate.java
@@ -1,12 +1,16 @@
package com.lxzn.modules.assembly2.entity;
import com.baomidou.mybatisplus.annotation.IdType;
import com.baomidou.mybatisplus.annotation.TableField;
import com.baomidou.mybatisplus.annotation.TableId;
import com.baomidou.mybatisplus.annotation.TableName;
import java.io.Serializable;
import java.time.LocalDateTime;
import com.fasterxml.jackson.annotation.JsonFormat;
import lombok.Getter;
import lombok.Setter;
import org.springframework.format.annotation.DateTimeFormat;
import java.io.Serializable;
import java.util.Date;
/**
 * <p>
@@ -23,10 +27,14 @@
    private static final long serialVersionUID = 1L;
    private LocalDateTime recordTime;
    @TableId(value = "OPName", type = IdType.AUTO)
    private String oPName;
    @JsonFormat(timezone = "GMT+8", pattern = "yyyy-MM-dd HH:mm:ss.SSS")
    @DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss.SSS")
    @TableField(value = "RecordTime")
    private Date recordTime;
    @TableField(value = "State")
    private String state;
}
src/main/java/com/lxzn/modules/master/entity/Assembly2TcOpstate.java
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,40 @@
package com.lxzn.modules.master.entity;
import com.baomidou.mybatisplus.annotation.IdType;
import com.baomidou.mybatisplus.annotation.TableField;
import com.baomidou.mybatisplus.annotation.TableId;
import com.baomidou.mybatisplus.annotation.TableName;
import com.fasterxml.jackson.annotation.JsonFormat;
import lombok.Getter;
import lombok.Setter;
import org.springframework.format.annotation.DateTimeFormat;
import java.io.Serializable;
import java.util.Date;
/**
 * <p>
 *
 * </p>
 *
 * @author baomidou
 * @since 2025-09-03
 */
@Getter
@Setter
@TableName("Assembly2_TC_OPState")
public class Assembly2TcOpstate implements Serializable {
    private static final long serialVersionUID = 1L;
    @TableId(value = "OPName", type = IdType.AUTO)
    private String oPName;
    @JsonFormat(timezone = "GMT+8", pattern = "yyyy-MM-dd HH:mm:ss.SSS")
    @DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss.SSS")
    @TableField(value = "RecordTime")
    private Date recordTime;
    @TableField(value = "State")
    private String state;
}
src/main/java/com/lxzn/modules/master/entity/EquipmentLog.java
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,38 @@
package com.lxzn.modules.master.entity;
import lombok.Data;
import java.io.Serializable;
import java.util.Date;
@Data
public class EquipmentLog implements Serializable {
    private static final long serialVersionUID = 6978749606363390023L;
    /**
     * è®¾å¤‡ç¼–号
     */
    private String equipmentId;
    /**
     * è®¾å¤‡åç§°
     */
    private String equipmentName;
    /**
     * é‡‡é›†æ—¶é—´
     */
    private Date collectTime;
    /**
     * çŠ¶æ€
     * 0 å…³æœº
     * 1 å¼€æœº
     * 2 å¾…机
     * 3 è¿è¡Œ
     * 22 æŠ¥è­¦å¼€å§‹
     * 23 æŠ¥è­¦ç»“束
     */
    private Integer oporation;
    /**
     * æŠ¥è­¦å·
     */
    private String alarm;
}
src/main/java/com/lxzn/modules/master/enums/Assembly2EquipmentMappingEnum.java
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,29 @@
package com.lxzn.modules.master.enums;
public enum Assembly2EquipmentMappingEnum {
    OP020(new String[]{"", "", ""}), //OP020测量分选检测机
    OP030(new String[]{"", "", ""}), //OP030料库
    OP040(new String[]{"", ""}), //OP040合套加球1
    OP050(new String[]{"", ""}), //OP050合套加球2
    OP090(new String[]{"", ""}), //OP090铆接检测机
    OP100(new String[]{"", ""}), //OP100振动检查机
    OP110(new String[]{"", ""}), //OP110密封件&端盖压装检测机
    OP120(new String[]{"", ""}), //OP120扭矩&ABS信号检测机
    OP150(new String[]{"", ""}), //OP150花键检测机
    OP160(new String[]{"", ""}), //OP160端径跳检测机
    OP170(new String[]{"", ""}), //OP170激光打标&雾化涂油
    ;
    /**
     * code:name
     */
    private final String[] equipmentCodes;
    private Assembly2EquipmentMappingEnum(String[] equipmentCodes) {
        this.equipmentCodes = equipmentCodes;
    }
    public String[] getEquipmentCodes() {
        return equipmentCodes;
    }
}
src/main/java/com/lxzn/modules/master/enums/EquipmentStatusEnum.java
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,20 @@
package com.lxzn.modules.master.enums;
public enum EquipmentStatusEnum {
    Running(3), //运行
    Standby(2), //待料
    Error(22), //报警
    Stop(2), //停止
    Disconnected(0), //未连接
    ;
    private final Integer operation;
    private EquipmentStatusEnum(Integer operation) {
        this.operation = operation;
    }
    public Integer getOperation() {
        return operation;
    }
}
src/main/java/com/lxzn/modules/master/job/EquipmentLogCollectJob.java
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,47 @@
package com.lxzn.modules.master.job;
import com.lxzn.modules.assembly2.entity.TcOpstate;
import com.lxzn.modules.assembly2.service.ITcOpstateService;
import com.lxzn.modules.master.entity.Assembly2TcOpstate;
import com.lxzn.modules.master.service.IAssembly2TcOpstateService;
import com.lxzn.modules.master.service.IEquipmentLogService;
import lombok.extern.slf4j.Slf4j;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.scheduling.annotation.Scheduled;
import org.springframework.stereotype.Component;
import org.springframework.util.CollectionUtils;
import java.util.List;
import java.util.Map;
@Slf4j
@Component
public class EquipmentLogCollectJob {
    @Autowired
    private IAssembly2TcOpstateService assembly2TcOpstateService;
    @Autowired
    private ITcOpstateService tcOpstateService;
    @Autowired
    private IEquipmentLogService equipmentLogService;
    @Scheduled(initialDelay = 10000, fixedDelay = 15000)
    public void equipmentLogCollect() {
        log.info("------------2#装配线采集设备状态开始------------");
        long startTime = System.currentTimeMillis();
        try {
            //上次采集数据
            Map<String, Assembly2TcOpstate> oldStateMap = assembly2TcOpstateService.listStateMap();
            //本次读取
            List<TcOpstate> nevStateList = tcOpstateService.list();
            if (CollectionUtils.isEmpty(nevStateList)) {
                return;
            }
        } catch (Exception e) {
            log.error(e.getMessage(), e);
        }
        long endTime = System.currentTimeMillis();
        long duration = (endTime - startTime) / 1000;
        log.info("------------2#装配线采集设备状态结束:消耗时长:{}S------------", duration);
    }
}
src/main/java/com/lxzn/modules/master/mapper/Assembly2TcOpstateMapper.java
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,16 @@
package com.lxzn.modules.master.mapper;
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import com.lxzn.modules.master.entity.Assembly2TcOpstate;
/**
 * <p>
 *  Mapper æŽ¥å£
 * </p>
 *
 * @author baomidou
 * @since 2025-09-03
 */
public interface Assembly2TcOpstateMapper extends BaseMapper<Assembly2TcOpstate> {
}
src/main/java/com/lxzn/modules/master/mapper/EquipmentLogMapper.java
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,21 @@
package com.lxzn.modules.master.mapper;
import com.lxzn.modules.master.entity.EquipmentLog;
import org.apache.ibatis.annotations.Param;
import java.util.Date;
import java.util.List;
public interface EquipmentLogMapper {
    /**
     * æ—¥å¿—插入
     * @param logs
     */
    void insertBatch(@Param("log") List<EquipmentLog> logs);
    /**
     * æ›´æ–°è®¾å¤‡ä¸‰è‰²ç¯çŠ¶æ€
     * @param equipmentCode è®¾å¤‡ç¼–号
     * @param operation ä¸‰è‰²ç¯çŠ¶æ€
     */
    void updateEquipmentStatus(@Param("id") String equipmentCode, @Param("operation") int operation, @Param("collectTime") Date collectTime);
}
src/main/java/com/lxzn/modules/master/mapper/xml/Assembly2TcOpstateMapper.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="com.lxzn.modules.master.mapper.Assembly2TcOpstateMapper">
</mapper>
src/main/java/com/lxzn/modules/master/mapper/xml/EquipmentLogMapper.xml
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,18 @@
<?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="com.lxzn.modules.master.mapper.EquipmentLogMapper">
    <insert id="insertBatch">
        INSERT INTO EquipmentLog(EquipmentID, EquipmentName, CollectTime, Oporation, Alarm)
        VALUES
        <foreach collection="logs" item="log" separator=",">
            (#{log.equipmentId}, #{log.equipmentName}, #{log.collectTime}, #{log.oporation}, #{log.alarm})
        </foreach>
    </insert>
    <update id="updateEquipmentStatus">
        UPDATE Equipment
        set oporation = #{operation}
          , collectTime = #{collectTime}
        where EquipmentID = #{equipmentCode}
    </update>
</mapper>
src/main/java/com/lxzn/modules/master/service/IAssembly2TcOpstateService.java
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,23 @@
package com.lxzn.modules.master.service;
import com.baomidou.mybatisplus.extension.service.IService;
import com.lxzn.modules.master.entity.Assembly2TcOpstate;
import java.util.Map;
/**
 * <p>
 *  æœåŠ¡ç±»
 * </p>
 *
 * @author baomidou
 * @since 2025-09-03
 */
public interface IAssembly2TcOpstateService extends IService<Assembly2TcOpstate> {
    /**
     * æŸ¥è¯¢ä¸Šæ¬¡é‡‡é›†çš„设备状态
     * @return
     */
    Map<String, Assembly2TcOpstate> listStateMap();
}
src/main/java/com/lxzn/modules/master/service/IEquipmentLogService.java
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,22 @@
package com.lxzn.modules.master.service;
import com.lxzn.modules.master.entity.EquipmentLog;
import java.util.Date;
import java.util.List;
public interface IEquipmentLogService {
    /**
     * æ—¥å¿—插入
     * @param logs
     */
    void insertBatch(List<EquipmentLog> logs);
    /**
     * æ›´æ–°è®¾å¤‡ä¸‰è‰²ç¯çŠ¶æ€
     * @param equipmentCode è®¾å¤‡ç¼–号
     * @param operation ä¸‰è‰²ç¯çŠ¶æ€
     * @param collectTime é‡‡é›†æ—¶é—´
     */
    void updateEquipmentStatus(String equipmentCode, int operation, Date collectTime);
}
src/main/java/com/lxzn/modules/master/service/impl/Assembly2TcOpstateServiceImpl.java
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,40 @@
package com.lxzn.modules.master.service.impl;
import com.baomidou.dynamic.datasource.annotation.DS;
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
import com.lxzn.modules.master.entity.Assembly2TcOpstate;
import com.lxzn.modules.master.mapper.Assembly2TcOpstateMapper;
import com.lxzn.modules.master.service.IAssembly2TcOpstateService;
import org.springframework.stereotype.Service;
import org.springframework.util.CollectionUtils;
import java.util.Collections;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
import java.util.stream.Collectors;
/**
 * <p>
 *  æœåŠ¡å®žçŽ°ç±»
 * </p>
 *
 * @author baomidou
 * @since 2025-09-03
 */
@Service
@DS("master")
public class Assembly2TcOpstateServiceImpl extends ServiceImpl<Assembly2TcOpstateMapper, Assembly2TcOpstate> implements IAssembly2TcOpstateService {
    @Override
    public Map<String, Assembly2TcOpstate> listStateMap() {
        List<Assembly2TcOpstate> list = super.list();
        if(CollectionUtils.isEmpty(list)){
            return Collections.emptyMap();
        }
        return list.stream().collect(Collectors.toMap(Assembly2TcOpstate::getOPName,
                state -> state,
                (oldVal, newVal) -> oldVal,
                HashMap::new));
    }
}
src/main/java/com/lxzn/modules/master/service/impl/EquipmentLogServiceImpl.java
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,35 @@
package com.lxzn.modules.master.service.impl;
import com.baomidou.mybatisplus.core.toolkit.CollectionUtils;
import com.lxzn.modules.master.entity.EquipmentLog;
import com.lxzn.modules.master.mapper.EquipmentLogMapper;
import com.lxzn.modules.master.service.IEquipmentLogService;
import lombok.extern.slf4j.Slf4j;
import org.springframework.stereotype.Service;
import org.springframework.transaction.annotation.Transactional;
import javax.annotation.Resource;
import java.util.Date;
import java.util.List;
@Service
@Slf4j
public class EquipmentLogServiceImpl implements IEquipmentLogService {
    @Resource
    private EquipmentLogMapper equipmentLogMapper;
    @Override
    @Transactional(rollbackFor = Exception.class)
    public void insertBatch(List<EquipmentLog> logs) {
        if(CollectionUtils.isEmpty(logs)){
            return;
        }
        equipmentLogMapper.insertBatch(logs);
        log.info("成功插入日志数据EquipmentLog:{}条", logs.size());
    }
    @Override
    public void updateEquipmentStatus(String equipmentCode, int operation, Date collectTime) {
        equipmentLogMapper.updateEquipmentStatus(equipmentCode, operation, collectTime);
    }
}