| | |
| | | import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; |
| | | import com.xiaopeng.api.dto.map.RouteAndFareDto; |
| | | import com.xiaopeng.api.dto.operation.LonLatDto; |
| | | import com.xiaopeng.api.feignClient.operation.XpElectronicFenceClient; |
| | | import com.xiaopeng.api.feignClient.operation.XpSystemSettingClient; |
| | | import com.xiaopeng.api.model.map.XpGeoFencingPolygon; |
| | | import com.xiaopeng.api.model.operation.XpElectronicFence; |
| | |
| | | |
| | | |
| | | @Resource |
| | | private XpElectronicFenceMapper xpElectronicFenceMapper; |
| | | |
| | | private XpElectronicFenceClient xpElectronicFenceClient; |
| | | |
| | | @Resource |
| | | private XpSystemSettingClient xpSystemSettingClient; |
| | |
| | | if(fenceIds.isEmpty()){ |
| | | return new ArrayList<>(); |
| | | } |
| | | List<XpElectronicFence> xpElectronicFences = xpElectronicFenceMapper.selectBatchIds(fenceIds); |
| | | R<List<XpElectronicFence>> xpElectronicFences = xpElectronicFenceClient.selectBatchIds(fenceIds); |
| | | if(xpElectronicFences==null){ |
| | | return new ArrayList<>(); |
| | | } |
| | | for (XpGeoFencingPolygon polygon : xpGeoFencingPolygons) { |
| | | XpElectronicFence xpElectronicFence = xpElectronicFences.stream().filter(e -> e.getId().toString().equals(polygon.getFenceId())).findFirst().orElse(null); |
| | | XpElectronicFence xpElectronicFence = xpElectronicFences.getData().stream().filter(e -> e.getId().toString().equals(polygon.getFenceId())).findFirst().orElse(null); |
| | | if(xpElectronicFence==null){ |
| | | continue; |
| | | } |
| | |
| | | String collect = coordinates.stream().collect(Collectors.joining(";")); |
| | | if (ElectricFenceUtil.areaMonitoring(collect, dto.getLongitude()+","+dto.getLatitude())) { |
| | | String fenceId = polygon.getFenceId(); |
| | | XpElectronicFence xpElectronicFence = xpElectronicFenceMapper.selectById(fenceId); |
| | | R<XpElectronicFence> xpElectronicFence = xpElectronicFenceClient.selectById(fenceId); |
| | | if(xpElectronicFence!=null){ |
| | | String operationStrategy = xpElectronicFence.getOperationStrategy(); |
| | | String operationStrategy = xpElectronicFence.getData().getOperationStrategy(); |
| | | Boolean inOperationTime = isInOperationTime(operationStrategy); |
| | | if(inOperationTime){ |
| | | vo.setStatus("inside"); |