| New file | 
 |  |  | 
 |  |  | 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; | 
 |  |  |     } | 
 |  |  |  | 
 |  |  | } |