From 0f69561e397093b5165c4aac58530721d5c62178 Mon Sep 17 00:00:00 2001 From: zjj <3272660260@qq.com> Date: 星期一, 25 十一月 2024 11:03:16 +0800 Subject: [PATCH] #led --- zy-asrs-wcs/src/main/java/com/zy/asrs/wcs/rcs/model/protocol/ShuttleProtocol.java | 66 +++++++++++++++++++++++++++++--- 1 files changed, 59 insertions(+), 7 deletions(-) diff --git a/zy-asrs-wcs/src/main/java/com/zy/asrs/wcs/rcs/model/protocol/ShuttleProtocol.java b/zy-asrs-wcs/src/main/java/com/zy/asrs/wcs/rcs/model/protocol/ShuttleProtocol.java index c3d506c..2290603 100644 --- a/zy-asrs-wcs/src/main/java/com/zy/asrs/wcs/rcs/model/protocol/ShuttleProtocol.java +++ b/zy-asrs-wcs/src/main/java/com/zy/asrs/wcs/rcs/model/protocol/ShuttleProtocol.java @@ -3,27 +3,31 @@ import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; import com.zy.asrs.framework.common.Cools; import com.zy.asrs.framework.common.SpringUtils; +import com.zy.asrs.wcs.core.entity.BasLift; import com.zy.asrs.wcs.core.entity.Loc; +import com.zy.asrs.wcs.core.service.BasLiftService; import com.zy.asrs.wcs.core.service.LocService; import com.zy.asrs.wcs.core.utils.RedisUtil; +import com.zy.asrs.wcs.core.utils.Utils; +import com.zy.asrs.wcs.rcs.cache.SlaveConnection; import com.zy.asrs.wcs.rcs.constant.DeviceRedisConstant; -import com.zy.asrs.wcs.rcs.model.enums.ShuttleDeviceStatusType; +import com.zy.asrs.wcs.rcs.entity.BasShuttleErr; import com.zy.asrs.wcs.rcs.model.enums.ShuttleProtocolStatusType; import com.zy.asrs.wcs.rcs.entity.Device; import com.zy.asrs.wcs.rcs.entity.ShuttleDeviceStatus; import com.zy.asrs.wcs.rcs.model.enums.SlaveType; +import com.zy.asrs.wcs.rcs.service.BasShuttleErrService; import com.zy.asrs.wcs.rcs.service.ShuttleDeviceStatusService; +import com.zy.asrs.wcs.rcs.thread.LiftThread; import lombok.Data; import lombok.extern.slf4j.Slf4j; - -import java.util.HashMap; /** * 鍥涘悜绌挎杞� */ @Slf4j @Data -public class ShuttleProtocol { +public class ShuttleProtocol implements Cloneable{ //**********************蹇呴』瀛樺湪灞炴��********************** /** @@ -60,6 +64,11 @@ * 灏忚溅璁惧鐘舵�� */ private Integer deviceStatus; + + /** + * 灏忚溅妯″紡锛�0锛氭墜鍔� 1锛氳嚜鍔� + */ + private Integer mode; /** * 褰撳墠浜岀淮鐮� @@ -163,6 +172,16 @@ private Long deviceDataLog = System.currentTimeMillis(); /** + * 鎸囦护涓嬪彂鏃堕棿 + */ + private Long sendTime = 0L; + + /** + * 鏈�杩戜竴娆″湪绾挎椂闂� + */ + private Long lastOnlineTime = System.currentTimeMillis(); + + /** * 璁惧淇℃伅 */ private Device device; @@ -207,6 +226,20 @@ return ""; } + public String getErrorCode$() { + if (this.errorCode == null) { + return ""; + } + BasShuttleErrService basShuttleErrService = SpringUtils.getBean(BasShuttleErrService.class); + BasShuttleErr shuttleErr = basShuttleErrService.getOne(new LambdaQueryWrapper<BasShuttleErr>() + .eq(BasShuttleErr::getErrorCode, this.errorCode) + .eq(BasShuttleErr::getDevicePlc, this.device.getDevicePlc())); + if (shuttleErr != null) { + return this.errorCode + "-" + shuttleErr.getErrName(); + } + return errorCode; + } + public Integer getTaskNo() { RedisUtil redisUtil = SpringUtils.getBean(RedisUtil.class); if (null != redisUtil) { @@ -218,7 +251,7 @@ return this.taskNo == null ? 0 : this.taskNo; } - public void setTaskNo(Integer taskNo) { + public synchronized void setSyncTaskNo(Integer taskNo) { RedisUtil redisUtil = SpringUtils.getBean(RedisUtil.class); if (null != redisUtil) { redisUtil.set(DeviceRedisConstant.SHUTTLE_FLAG + this.shuttleNo, taskNo); @@ -229,7 +262,8 @@ //閫氳繃褰撳墠浜岀淮鐮佽幏鍙栧綋鍓嶅簱浣嶅彿 public String getCurrentLocNo() { LocService locService = SpringUtils.getBean(LocService.class); - if (locService == null) { + BasLiftService basLiftService = SpringUtils.getBean(BasLiftService.class); + if (locService == null || basLiftService == null) { return null; } if (this.currentCode == null) { @@ -242,10 +276,28 @@ .eq(Loc::getHostId, this.device.getHostId()); Loc currentLoc = locService.getOne(wrapper); if (currentLoc == null) { + //鍙兘鏄彁鍗囨満鏉$爜 + BasLift basLift = basLiftService.getOne(new LambdaQueryWrapper<BasLift>().eq(BasLift::getCode, this.currentCode).eq(BasLift::getStatus, 1)); + if(basLift != null) { + LiftThread liftThread = (LiftThread) SlaveConnection.get(SlaveType.Lift, basLift.getDeviceId().intValue()); + if (liftThread != null) { + LiftProtocol liftProtocol = liftThread.getStatus(); + return Utils.getLocNo(basLift.getRow(), basLift.getBay(), liftProtocol.getLev()); + } + } return null; } - return currentLoc.getLocNo(); } + @Override + public ShuttleProtocol clone() { + try { + return (ShuttleProtocol) super.clone(); + } catch (CloneNotSupportedException e) { + e.printStackTrace(); + } + return null; + } + } -- Gitblit v1.9.1