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