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<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.getSoc()) { 
 | 
                this.setSoc(String.valueOf(agvDetail.getSoc())); 
 | 
            } 
 | 
            if (null != agvDetail.getRecentCode()) { 
 | 
                this.setCode(codeService.getCacheById(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())); 
 | 
            } 
 | 
        } 
 | 
    } 
 | 
  
 | 
} 
 |