自动化立体仓库 - WCS系统
#
luxiaotao1123
2022-11-24 ec25a39ab1d455e8c38e043ccdf2172139462068
src/main/java/com/zy/core/model/protocol/SteProtocol.java
@@ -1,14 +1,19 @@
package com.zy.core.model.protocol;
import com.core.common.Cools;
import com.core.common.SpringUtils;
import com.zy.asrs.entity.BasSte;
import com.zy.asrs.service.BasSteService;
import com.zy.core.enums.SteHisTaskStatusType;
import com.zy.core.enums.SteLocaType;
import com.zy.core.enums.SteStatusType;
import lombok.Data;
import lombok.extern.slf4j.Slf4j;
/**
 * Created by vincent on 2020/8/7
 */
@Slf4j
@Data
public class SteProtocol {
@@ -36,7 +41,7 @@
    /**
     * 任务号
     */
    public Integer taskNo = 0;
    public Short taskNo = 0;
    /**
     * 正在执行任务
@@ -180,6 +185,17 @@
     */
    public Short crnAllowRun;
    /**
     * 充电状态  1:在充电;0:不在充电
     */
    private Short chargeStatus;
    // 入库取空
    private Boolean inEmpty;
    // 出库取空
    private Boolean outEmpty;
    public void setStatus(Short status){
        this.status = status;
        this.statusType = SteStatusType.get(status);
@@ -217,12 +233,72 @@
     */
    private String lastIo = "I";
    private String pakMk = "-";
    public BasSte toSqlModel(BasSte basSte){
        if (alarm!=null) {
            basSte.setSteErr(alarm.longValue());
        }
        basSte.setWrkNo(taskNo);
        basSte.setWrkNo(taskNo.intValue());
//        if (basSte.getPakMk().equals("N")) {
//            if (!Cools.isEmpty(row)) {
//                basSte.setRow(row.intValue());
//            }
//            if (!Cools.isEmpty(bay)) {
//                basSte.setBay(bay.intValue());
//            }
//            if (!Cools.isEmpty(lev)) {
//                basSte.setLev(lev.intValue());
//            }
//        }
        return basSte;
    }
    // 是否处于空闲待命状态
    public Boolean isIdle() {
        boolean res = this.statusType.equals(SteStatusType.IDLE)
                && this.mode == 1
                && this.pakMk.equals("N")
                && !isAlarm()
                && this.chargeStatus == 0
                && isEnable()
                ;
        if (!res) {
            return res;
        } else {
            // 电量
            try {
                String chargeLine = SpringUtils.getBean(BasSteService.class).selectById(this.steNo).getChargeLine();
                return charge > Float.parseFloat(chargeLine);
            } catch (Exception e) {
                log.error("fail", e);
                return false;
            }
        }
    }
    // 是否处于报警状态
    public Boolean isAlarm() {
        return this.alarm > 1;
    }
    public Boolean isEnable() {
        if (Cools.isEmpty(row)) {
            if (row == 0) {
                return false;
            }
        }
        if (Cools.isEmpty(bay)) {
            if (bay == 0) {
                return false;
            }
        }
        if (Cools.isEmpty(lev)) {
            if (lev == 0) {
                return false;
            }
        }
        return true;
    }
}