package com.zy.acs.manager.manager.controller.result; import com.zy.acs.framework.common.Cools; import com.zy.acs.manager.manager.entity.Agv; import com.zy.acs.manager.manager.entity.AgvDetail; import com.zy.acs.manager.manager.entity.Task; import com.zy.acs.manager.manager.enums.TaskStsType; import com.zy.acs.manager.manager.service.AgvService; import com.zy.acs.manager.manager.service.CodeService; import com.zy.acs.manager.manager.service.TaskService; import lombok.Data; import lombok.EqualsAndHashCode; import java.util.ArrayList; import java.util.List; import java.util.stream.Collectors; /** * Created by vincent on 9/20/2024 */ @Data @EqualsAndHashCode(callSuper = true) public class AgvResult extends Agv { private String agvStatus = "-"; private String vol = "-"; private String soc = "-"; private String pos = "-"; private String code = "-"; private Boolean online = Boolean.FALSE; private List taskIds = new ArrayList<>(); public void sync(Object obj, CodeService codeService, TaskService taskService, AgvService agvService) { if (null == obj) return; if (obj instanceof AgvDetail) { AgvDetail agvDetail = (AgvDetail) obj; this.setOnline(agvService.judgeOnline(agvDetail.getAgvId())); this.setAgvStatus(agvDetail.getStatusDesc()); if (null != agvDetail.getPos()) { this.setPos(String.valueOf(agvDetail.getPos())); } if (null != agvDetail.getVol()) { this.setVol(String.valueOf(agvDetail.getVol())); } if (null != agvDetail.getSoc()) { this.setSoc(String.valueOf(agvDetail.getSoc())); } if (null != agvDetail.getRecentCode()) { this.setCode(codeService.getById(agvDetail.getRecentCode()).getData()); } List tasks = taskService.selectInSts(agvDetail.getAgvId(), TaskStsType.WAITING, TaskStsType.ASSIGN, TaskStsType.PROGRESS); if (!Cools.isEmpty(tasks)) { this.setTaskIds(tasks.stream().map(Task::getId).collect(Collectors.toList())); } } } }