BoxStatusBean.java 3.1 KB
package com.myproject.bean.utils;

import com.myproject.util.StorageConstants;

import java.util.HashMap;
import java.util.Map;

/**
 * Created by sunke on 17/2/13.
 */
public class BoxStatusBean {

    /// <summary>
    /// Box编号,从1开始
    /// </summary>
    private int boxId;
    /// <summary>
    /// 单台BOX状态
    ///1=正常运行中
    /// 2=急停,3=故障,4=警告,5=调试中
    /// 6入库执行中,7入仓位完成,8入库失败
    /// 9出库执行中,10出仓位完成,11出库失败
    /// </summary>
    private int status;
    /// <summary>
    /// 操作相关数据,出仓完成或入仓完成时,需要有 posId 信息

    /// </summary>
    private Map<String, String> data = new HashMap<>();
    /// <summary>
    /// 单台BOX的消息
    /// 正在调试中,不能出入库
    /// 入库失败原因:
    /// 出库失败原因:
    /// </summary>
    public String msg;
    /// <summary>
    /// 温度
    /// </summary>
    public String temperature;
    /// <summary>
    /// 湿度
    /// </summary>
    public String humidity;

    public int getBoxId() {
        return boxId;
    }

    public void setBoxId(int boxId) {
        this.boxId = boxId;
    }

    public int getStatus() {
        return status;
    }

    public void setStatus(int status) {
        this.status = status;
    }

    public String getMsg() {
        return msg;
    }

    public void setMsg(String msg) {
        this.msg = msg;
    }

    public String getTemperature() {
        return temperature;
    }

    public void setTemperature(String temperature) {
        this.temperature = temperature;
    }

    public String getHumidity() {
        return humidity;
    }

    public void setHumidity(String humidity) {
        this.humidity = humidity;
    }

    /**
     * 当前的 BOX 是否空闲,即状态为就绪状态
     */
    public boolean boxIsIdle(){
        return status == StorageConstants.BOX_STATUS.READY;
    }


    /**
     * 当前的 BOX 是否正在出库执行(未出仓位或出仓完成但还没完成出库)
     */
    public boolean boxIsCheckingOut(){
        return status == StorageConstants.BOX_STATUS.CHECKOUT || status == StorageConstants.BOX_STATUS.OUT_FINISHED || status == StorageConstants.BOX_STATUS.OUT_MOVING;
    }

    /**
     * 当前 box 是否可以接受出库任务(空闲或出仓完成或正在移栽的都可以再分配出库任务)
     */
    public boolean boxCanCheckout(){
        return boxIsIdle() || status == StorageConstants.BOX_STATUS.OUT_MOVING;
    }

    /**
     * BOX 是否可以正常使用,没有急停,故障,调试等
     */
    public boolean boxIsAvailable(){
        return status != StorageConstants.BOX_STATUS.EMERGENCY && status != StorageConstants.BOX_STATUS.PROBLEM && status != StorageConstants.BOX_STATUS.DEBUG ;
    }

    public Map<String, String> getData() {
        return data;
    }

    public void setData(Map<String, String> data) {
        this.data = data;
    }

    /**
     * 获取客户端发送上来的出入库完成的库位信息
     */
    public String getPosId(){
        return data.get("posId");
    }
}