| | |
| | | import com.zy.acs.manager.manager.entity.AgvDetail; |
| | | import com.zy.acs.manager.manager.entity.Guarantee; |
| | | import com.zy.acs.manager.manager.entity.Task; |
| | | import com.zy.acs.manager.manager.enums.GuaranteeScopeType; |
| | | import com.zy.acs.manager.manager.enums.StatusType; |
| | | import com.zy.acs.manager.manager.enums.TaskStsType; |
| | | import com.zy.acs.manager.manager.enums.TaskTypeType; |
| | |
| | | log.warn("Guarantee[{}] requiredCount is not configured, skip", plan.getName()); |
| | | return; |
| | | } |
| | | int minSoc = plan.getMinSoc() == null ? 50 : plan.getMinSoc(); |
| | | List<Agv> scopedAgvs = findScopedAgvs(plan); |
| | | int minSoc = plan.getMinSoc(); |
| | | List<Agv> scopedAgvList = findScopedAgvList(plan); |
| | | int available = 0; |
| | | List<ChargeCandidate> candidates = new ArrayList<>(); |
| | | for (Agv agv : scopedAgvs) { |
| | | AgvDetail detail = agvDetailService.selectByAgvId(agv.getId()); |
| | | for (Agv agv : scopedAgvList) { |
| | | AgvDetail detail = agvDetailService.selectMajorByAgvId(agv.getId()); |
| | | if (detail == null || detail.getSoc() == null) { |
| | | continue; |
| | | } |
| | |
| | | return busyCount == 0; |
| | | } |
| | | |
| | | private List<Agv> findScopedAgvs(Guarantee plan) { |
| | | private List<Agv> findScopedAgvList(Guarantee plan) { |
| | | LambdaQueryWrapper<Agv> wrapper = new LambdaQueryWrapper<Agv>() |
| | | .eq(Agv::getStatus, StatusType.ENABLE.val); |
| | | if ("MODEL".equalsIgnoreCase(plan.getScopeType()) && plan.getScopeValue() != null) { |
| | | if (GuaranteeScopeType.MODEL.toString().equalsIgnoreCase(plan.getScopeType()) && plan.getScopeValue() != null) { |
| | | try { |
| | | wrapper.eq(Agv::getAgvModel, Long.valueOf(plan.getScopeValue())); |
| | | } catch (NumberFormatException ignore) { |