#
vincentlu
2025-01-13 89c7f6e5bcc21b0e8f83a2bc6d680e2ffe431e6f
zy-acs-manager/src/main/java/com/zy/acs/manager/manager/service/impl/AgvDetailServiceImpl.java
@@ -4,8 +4,10 @@
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
import com.zy.acs.manager.manager.entity.Agv;
import com.zy.acs.manager.manager.entity.AgvDetail;
import com.zy.acs.manager.manager.entity.AgvModel;
import com.zy.acs.manager.manager.mapper.AgvDetailMapper;
import com.zy.acs.manager.manager.service.AgvDetailService;
import com.zy.acs.manager.manager.service.AgvModelService;
import com.zy.acs.manager.manager.service.AgvService;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
@@ -15,6 +17,13 @@
    @Autowired
    private AgvService agvService;
    @Autowired
    private AgvModelService agvModelService;
    @Override
    public AgvDetail selectMajorByAgvId(Long agvId) {
        return this.baseMapper.selectMajorByAgvId(agvId);
    }
    @Override
    public AgvDetail selectByAgvId(Long agvId) {
@@ -23,8 +32,7 @@
    @Override
    public AgvDetail selectByAgvNo(String agvNo) {
        Agv agv = agvService.selectByUuid(agvNo);
        return this.selectByAgvId(agv.getId());
        return this.selectByAgvId(agvService.getAgvId(agvNo));
    }
    @Override
@@ -33,13 +41,38 @@
    }
    @Override
    public Boolean updatePosCodeByAgvId(Long agvId, Long codeId) {
        return this.baseMapper.updatePosCodeByAgvId(agvId, codeId) > 0;
    }
    @Override
    public Boolean updateUnPosCode(Long id, Long codeId) {
        return this.baseMapper.updateUnPosCode(id, codeId) > 0;
    }
    @Override
    public Boolean updateAngleByAgvId(Long agvId, Double angle) {
        return this.baseMapper.updateAngleByAgvId(agvId, angle);
    }
    @Override
    public Boolean removeByAgvId(Long agvId) {
        return baseMapper.delete(new LambdaQueryWrapper<AgvDetail>().eq(AgvDetail::getAgvId, agvId)) > 0;
    }
    @Override
    public Boolean isPowerLoss(Agv agv, AgvDetail agvDetail, AgvModel agvModel) {
        if (null == agvDetail) {
            agvDetail = this.selectByAgvId(agv.getId());
        }
        if (null == agvModel) {
            agvModel = agvModelService.getByAgvId(agv.getId());
        }
        if (null == agv.getChargeLine()) {
            return agvDetail.getVol() < agvModel.getLowBattery();
        } else {
            return agvDetail.getVol() < Math.max(agv.getChargeLine(), agvModel.getLowBattery());
        }
    }
}