| 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 pos = "-"; | 
|   | 
|     private String code = "-"; | 
|   | 
|     private Boolean online = Boolean.FALSE; | 
|   | 
|     private List<Long> 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.getRecentCode()) { | 
|                 this.setCode(codeService.getById(agvDetail.getRecentCode()).getData()); | 
|             } | 
|             List<Task> 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())); | 
|             } | 
|         } | 
|     } | 
|   | 
| } |