package com.zy.acs.manager.manager.controller.result;
|
|
import com.alibaba.fastjson.JSON;
|
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
|
import com.zy.acs.framework.common.SpringUtils;
|
import com.zy.acs.manager.common.domain.AreaShapeDto;
|
import com.zy.acs.manager.common.domain.MapPointDto;
|
import com.zy.acs.manager.core.service.AreaGovernService;
|
import com.zy.acs.manager.manager.entity.Area;
|
import com.zy.acs.manager.manager.entity.AreaAgv;
|
import com.zy.acs.manager.manager.service.AreaAgvService;
|
import lombok.Data;
|
|
import java.util.ArrayList;
|
import java.util.List;
|
import java.util.stream.Collectors;
|
|
@Data
|
public class MapAreaResult {
|
|
private Long id;
|
|
private String name;
|
|
private MapPointDto start;
|
|
private MapPointDto end;
|
|
private String color;
|
|
private String code;
|
|
private String type;
|
|
private Integer maxCount;
|
|
private String speedLimit;
|
|
private Integer priority;
|
|
private String memo;
|
|
private List<String> codeList = new ArrayList<>();
|
|
private List<Long> agvList = new ArrayList<>();
|
|
public MapAreaResult sync(Area area) {
|
this.setId(area.getId());
|
this.setName(area.getName());
|
|
AreaShapeDto shapeDto = JSON.parseObject(area.getShapeData(), AreaShapeDto.class);
|
this.setStart(shapeDto.getStart());
|
this.setEnd(shapeDto.getEnd());
|
|
this.setColor(color);
|
this.setCode(area.getCode());
|
this.setType(area.getType());
|
this.setMaxCount(area.getMaxCount());
|
this.setSpeedLimit(area.getSpeedLimit());
|
this.setPriority(area.getPriority());
|
this.setMemo(area.getMemo());
|
|
this.setCodeList(AreaGovernService.AREA_CODE.get(area.getId()));
|
|
AreaAgvService areaAgvService = SpringUtils.getBean(AreaAgvService.class);
|
List<AreaAgv> areaAgvList = areaAgvService.list(new LambdaQueryWrapper<AreaAgv>().eq(AreaAgv::getAreaId, area.getId()));
|
this.setAgvList(areaAgvList.stream().map(AreaAgv::getAgvId).distinct().collect(Collectors.toList()));
|
|
return this;
|
}
|
|
}
|