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 codeList = new ArrayList<>(); private List 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 areaAgvList = areaAgvService.list(new LambdaQueryWrapper().eq(AreaAgv::getAreaId, area.getId())); this.setAgvList(areaAgvList.stream().map(AreaAgv::getAgvId).distinct().collect(Collectors.toList())); return this; } }