package com.zy.acs.manager.manager.service.impl; import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; 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; @Service("agvDetailService") public class AgvDetailServiceImpl extends ServiceImpl implements AgvDetailService { @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) { return this.getOne(new LambdaQueryWrapper().eq(AgvDetail::getAgvId, agvId)); } @Override public AgvDetail selectByAgvNo(String agvNo) { return this.selectByAgvId(agvService.getAgvId(agvNo)); } @Override public Boolean updatePosCode(Long id, Long codeId) { return this.baseMapper.updatePosCode(id, codeId) > 0; } @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().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()); } } }