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.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()));
|
}
|
}
|
}
|
|
}
|