123
zc
2025-05-14 93cf1a27f5d4ff504d691d68c40a622a6424e782
src/main/java/com/zy/core/model/protocol/LiftProtocol.java
New file
@@ -0,0 +1,304 @@
package com.zy.core.model.protocol;
import com.core.common.Cools;
import com.core.common.SpringUtils;
import com.zy.asrs.entity.BasLiftErr;
import com.zy.asrs.service.BasLiftErrService;
import com.zy.common.utils.RedisUtil;
import com.zy.core.enums.LiftProtocolStatusType;
import com.zy.core.enums.RedisKeyType;
import lombok.Data;
import lombok.extern.slf4j.Slf4j;
@Slf4j
@Data
public class LiftProtocol implements Cloneable {
    //**********************必须存在属性**********************
    /**
     * 提升机号
     */
    private Integer liftNo;
    /**
     * 任务号
     */
    private Integer taskNo;
    /**
     * 四向穿梭车号
     */
    private Integer shuttleNo = 0;
    /**
     * 当前提升机状态(内部自我维护)
     */
    private Integer protocolStatus = -1;
    /**
     * 当前提升机状态枚举
     */
    private LiftProtocolStatusType protocolStatusType = LiftProtocolStatusType.NONE;
    /**
     * 模式 => 自动/手动
     */
    private Boolean model;
    /**
     * 运行状态
     */
    private Boolean run;
    /**
     * 就绪状态
     */
    private Boolean ready;
    /**
     * 前超限
     */
    private Boolean frontOverrun;
    /**
     * 后超限
     */
    private Boolean backOverrun;
    /**
     * 左超限
     */
    private Boolean leftOverrun;
    /**
     * 右超限
     */
    private Boolean rightOverrun;
    /**
     * 超高
     */
    private Boolean overHeight;
    /**
     * 超重
     */
    private Boolean overWeight;
    /**
     * 有托盘
     */
    private Boolean hasTray;
    /**
     * 有小车
     */
    private Boolean hasCar;
    /**
     * 故障
     */
    private Boolean error;
    /**
     * 故障码
     */
    private String errorCode;
    /**
     * 任务地址
     */
    private Short taskAddress;
    /**
     * 目的地址
     */
    private Short distAddress;
    /**
     * 已完成的任务号
     */
    private String completeTaskNo;
    /**
     * 层
     */
    private Integer lev;
    /**
     * 作业标记
     */
    private Boolean pakMk = true;
    /**
     * 指令下发时间
     */
    private Long sendTime = 0L;
    /**
     * 日志采集时间
     */
    private Long deviceDataLog = System.currentTimeMillis();
    /**
     * 扩展字段
     */
    private Object extend;
    public String getRun$() {
        if (this.run == null) {
            return "未知";
        }
        return this.run ? "运行中" : "空闲";
    }
    public String getReady$() {
        if (this.ready == null) {
            return "未知";
        }
        return this.ready ? "就绪" : "未就绪";
    }
    public String getModel$() {
        if (this.model == null) {
            return "未知";
        }
        return this.model ? "自动" : "手动";
    }
    public String getHasTray$() {
        if (this.hasTray == null) {
            return "未知";
        }
        return this.hasTray ? "Y" : "N";
    }
    public String getHasCar$() {
        if (this.hasCar == null) {
            return "未知";
        }
        return this.hasCar ? "Y" : "N";
    }
    public String getFrontOverrun$() {
        if (this.frontOverrun == null) {
            return "未知";
        }
        return this.frontOverrun ? "Y" : "N";
    }
    public String getBackOverrun$() {
        if (this.backOverrun == null) {
            return "未知";
        }
        return this.backOverrun ? "Y" : "N";
    }
    public String getLeftOverrun$() {
        if (this.leftOverrun == null) {
            return "未知";
        }
        return this.leftOverrun ? "Y" : "N";
    }
    public String getRightOverrun$() {
        if (this.rightOverrun == null) {
            return "未知";
        }
        return this.rightOverrun ? "Y" : "N";
    }
    public String getOverHeight$() {
        if (this.overHeight == null) {
            return "未知";
        }
        return this.overHeight ? "Y" : "N";
    }
    public String getOverWeight$() {
        if (this.overWeight == null) {
            return "未知";
        }
        return this.overWeight ? "Y" : "N";
    }
    public String getProtocolStatus$() {
        if (this.protocolStatusType == null) {
            return "未知";
        }
        return this.protocolStatusType.desc;
    }
    /**
     * 设置提升机状态
     */
    public void setProtocolStatus(Integer status) {
        this.protocolStatus = status;
        this.protocolStatusType = LiftProtocolStatusType.get(status);
    }
    /**
     * 设置提升机状态
     */
    public void setProtocolStatus(LiftProtocolStatusType status) {
        this.protocolStatus = status.id;
        this.protocolStatusType = status;
    }
    public synchronized void setTaskNo(Integer taskNo) {
        RedisUtil redisUtil = SpringUtils.getBean(RedisUtil.class);
        if (null != redisUtil) {
            redisUtil.set(RedisKeyType.LIFT_FLAG.key + this.liftNo, taskNo);
            this.taskNo = taskNo;
        }
    }
    public Integer getTaskNo() {
        RedisUtil redisUtil = SpringUtils.getBean(RedisUtil.class);
        if (null != redisUtil) {
            Object o = redisUtil.get(RedisKeyType.LIFT_FLAG.key + this.liftNo);
            if (!Cools.isEmpty(o)) {
                this.taskNo = Integer.valueOf(String.valueOf(o));
            }
        }
        return this.taskNo == null ? 0 : this.taskNo;
    }
    /**
     * 错误码
     */
    public String getErrCode$() {
        if (this.errorCode == null) {
            return "";
        }
        BasLiftErrService basLiftErrService = SpringUtils.getBean(BasLiftErrService.class);
        BasLiftErr basLiftErr = basLiftErrService.selectById(this.errorCode);
        if (basLiftErr == null) {
            return String.valueOf(this.errorCode);
        }
        return basLiftErr.getErrName();
    }
    @Override
    public LiftProtocol clone() {
        try {
            return (LiftProtocol) super.clone();
        } catch (CloneNotSupportedException e) {
            e.printStackTrace();
        }
        return null;
    }
}