#
Junjie
2024-10-17 d835d1b51f832889929cdf69010034a30ef44d02
zy-asrs-wcs/src/main/java/com/zy/asrs/wcs/rcs/model/protocol/ShuttleProtocol.java
@@ -3,14 +3,22 @@
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.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;
@@ -218,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) {
@@ -240,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) {
@@ -253,9 +276,17 @@
                .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();
    }