cpT
2025-07-02 a77530a0e917f8d2dca1bae55a3730471c8e10a2
src/main/java/com/zy/core/model/protocol/StaProtocol.java
@@ -1,11 +1,10 @@
package com.zy.core.model.protocol;
import com.core.common.Cools;
import com.zy.asrs.entity.BasDevp;
import com.zy.asrs.entity.CommandInfo;
import lombok.Data;
import java.util.ArrayList;
import java.util.List;
import java.text.SimpleDateFormat;
/**
 * 输送线plc单个站点详细信息
@@ -19,11 +18,11 @@
    // ----------------------------------------------------------------
    // 工作号
    private Short workNo = 0;
    private Integer workNo = 0;
    // ----------------------------------------------------------------
    // 目标站
    private Short staNo;
    private Integer staNo;
    // ----------------------------------------------------------------
    // 自动
@@ -45,16 +44,17 @@
    private boolean fullPlt;
    // 高
    private boolean high = false;
    private boolean high;
    // 低
    private boolean low;
    //agv
    private boolean car;
    private boolean staOk;
    // 锁定标记
    private boolean pakMk = true;
    private boolean pakMkRun = true;
    private boolean pakMkTask = true;
    private boolean pakMkWalk = true;
    // 入库暂存数
    private Short inQty;
@@ -62,134 +62,68 @@
    // 隔壁站点(台车位置)
    private String nearbySta;
    //指令ID
    private Integer commandId;
    // 外形检测 ------------------------------------------------------------------------
    // 前超限
    private boolean frontErr = false;
    private boolean frontErr;
    // 后超限
    private boolean backErr = false;
    private boolean backErr;
    // 高超限
    private boolean highErr = false;
    private boolean highErr;
    // 左超限
    private boolean leftErr = false;
    private boolean leftErr;
    // 右超限
    private boolean rightErr = false;
    private boolean rightErr;
    // 超重
    private boolean weightErr = false;
    // 扫码失败
    private boolean barcodeErr = false;
    private boolean barcodeErr;
    //故障-----------------------------------------------------------------------
    private Boolean breakerErr = false; //断路器故障
    // 电路保护器断开
    private boolean errOther1;
    private Boolean infraredErr = false; //光电异常
    // 光电异常
    private boolean errOther2;
    private Boolean outTimeErr = false; //运行超时
    // 运行超时
    private boolean errOther3;
    private Boolean seizeSeatErr = false; //占位超时
    // 占位超时
    private boolean errOther4;
    private Boolean wrkYgoodsN = false;//有任务无货故障
    // 有任务无货故障
    private boolean errOther5;
    private Boolean inverterErr = false; //变频器故障
    // 变频器故障
    private boolean errOther6;
    private Boolean contactErr = false; //电机接触器故障
    // 接触器故障
    private boolean errOther7;
    private Boolean upcontactErr = false; //顶升电机接触器故障
    // 顶升电机接触器故障
    private boolean errOther8;
    // Super有无信息
    private boolean loadingSuper = true;
    private Short agvStartPick; //允许取货
    private Short agvStartPlace; //允许放货
    private Short agvTypeSign; //允许放货
    private Short agvTargetPick; //取货完成
    private Short agvTargetPlace; //放货完成
    private Short agvTypeSignEnd; //放货完成
    private List<Integer> alarm;
    public List<Integer> getAlarm(){
        List<Integer> alarm = new ArrayList<>();
        if (breakerErr){
            alarm.add(1);
        }
        if (infraredErr){
            alarm.add(2);
        }
        if (outTimeErr){
            alarm.add(3);
        }
        if (seizeSeatErr){
            alarm.add(4);
        }
        if (wrkYgoodsN){
            alarm.add(5);
        }
        if (inverterErr){
            alarm.add(6);
        }
        if (contactErr){
            alarm.add(7);
        }
        if (upcontactErr){
            alarm.add(8);
        }
        return alarm;
    }
    //指令ID
    private Integer commandId;
    private Double grossWt = 0D;
    private String errorDev = "-";
    private String barcodeNow = "-";
    public BasDevp toSqlModel(){
        BasDevp basDevp = new BasDevp();
        basDevp.setDevNo(siteId);
        basDevp.setWrkNo(workNo.intValue());
        basDevp.setWrkNo(workNo);
        basDevp.setAutoing(autoing?"Y":"N");
        basDevp.setLoading(loading?"Y":"N");
        if (frontErr){
            basDevp.setStaErr(11);
        }else if (backErr){
            basDevp.setStaErr(12);
        }else if (highErr){
            basDevp.setStaErr(13);
        }else if (leftErr){
            basDevp.setStaErr(14);
        }else if (rightErr){
            basDevp.setStaErr(15);
        }else if (weightErr){
            basDevp.setStaErr(16);
        }else if (barcodeErr){
            basDevp.setStaErr(17);
        }else if (breakerErr){
            basDevp.setStaErr(18);
        }else if (infraredErr){
            basDevp.setStaErr(19);
        }else if (outTimeErr){
            basDevp.setStaErr(110);
        }else if (seizeSeatErr){
            basDevp.setStaErr(111);
        }else if (wrkYgoodsN){
            basDevp.setStaErr(112);
        }else if (inverterErr){
            basDevp.setStaErr(113);
        }else if (contactErr){
            basDevp.setStaErr(114);
        }else if (upcontactErr){
            basDevp.setStaErr(115);
        }else {
            if (!loading){
                basDevp.setStaErr(0);
            }
        }
        basDevp.setInEnable(inEnable?"Y":"N");
        basDevp.setOutEnable(outEnable?"Y":"N");
        basDevp.setLocType1((short) 0);  // 高低类型{0:未知,1:低库位,2:高库位}
@@ -210,4 +144,80 @@
        return null;
    }
    public String getErrorDev$(){
        if (errorDev.equals("-")){
            boolean back = false;
            String errMsg = "-";
            if (this.isErrOther1()) {
                if (!back){
                    errMsg = "电路保护器断开";
                } else {
                    errMsg = errMsg+"---"+"电路保护器断开";
                }
                back = true;
            }
            if (this.isErrOther2()) {
                if (!back){
                    errMsg = "光电异常";
                } else {
                    errMsg = errMsg+"---"+"光电异常";
                }
                back = true;
            }
            if (this.isErrOther3()) {
                if (!back){
                    errMsg = "运行超时";
                } else {
                    errMsg = errMsg+"---"+"运行超时";
                }
                back = true;
            }
            if (this.isErrOther4()) {
                if (!back){
                    errMsg = "占位超时";
                } else {
                    errMsg = errMsg+"---"+"占位超时";
                }
                back = true;
            }
            if (this.isErrOther5()) {
                if (!back){
                    errMsg = "有任务无货故障";
                } else {
                    errMsg = errMsg+"---"+"有任务无货故障";
                }
                back = true;
            }
            if (this.isErrOther6()) {
                if (!back){
                    errMsg = "变频器故障";
                } else {
                    errMsg = errMsg+"---"+"变频器故障";
                }
                back = true;
            }
            if (this.isErrOther7()) {
                if (!back){
                    errMsg = "接触器故障";
                } else {
                    errMsg = errMsg+"---"+"接触器故障";
                }
                back = true;
            }
            if (this.isErrOther8()) {
                if (!back){
                    errMsg = "顶升电机接触器故障";
                } else {
                    errMsg = errMsg+"---"+"顶升电机接触器故障";
                }
                back = true;
            }
            if (back){
                return errMsg;
            }
        }
        return errorDev;
    }
}