|
|
|
@ -26,6 +26,7 @@ import java.util.Collections;
|
|
|
|
|
import java.util.List;
|
|
|
|
|
import java.util.Map;
|
|
|
|
|
import java.util.stream.Collectors;
|
|
|
|
|
import java.util.stream.Stream;
|
|
|
|
|
|
|
|
|
|
/**
|
|
|
|
|
* 车辆实时定位实现层
|
|
|
|
@ -63,12 +64,12 @@ public class CarServiceImpl implements CarService {
|
|
|
|
|
GlobalCoordinates carLocation = new GlobalCoordinates(Double.parseDouble(res.getLat()), Double.parseDouble(res.getLng()));
|
|
|
|
|
double distanceMeter = SpaceUtils.getDistanceMeter(companyLocation, carLocation);
|
|
|
|
|
if (req.getType() == 1) {
|
|
|
|
|
if (NumberUtil.compare(req.getDistance(), distanceMeter) != 1) {
|
|
|
|
|
if (NumberUtil.compare(req.getDistance(), distanceMeter) < 0) {
|
|
|
|
|
// 单位外
|
|
|
|
|
list.add(res);
|
|
|
|
|
}
|
|
|
|
|
} else {
|
|
|
|
|
if (NumberUtil.compare(req.getDistance(), distanceMeter) == 1) {
|
|
|
|
|
if (NumberUtil.compare(req.getDistance(), distanceMeter) >= 0) {
|
|
|
|
|
// 单位内
|
|
|
|
|
list.add(res);
|
|
|
|
|
}
|
|
|
|
@ -77,11 +78,28 @@ public class CarServiceImpl implements CarService {
|
|
|
|
|
if (CollectionUtil.isEmpty(list)) {
|
|
|
|
|
return null;
|
|
|
|
|
}
|
|
|
|
|
// 根据距离过滤出的内外车牌号
|
|
|
|
|
List<String> plateNums = list.stream().map(CarGPSResponse::getCarPlate).collect(Collectors.toList());
|
|
|
|
|
// 定义查询条件
|
|
|
|
|
String lendState;
|
|
|
|
|
List<String> mergedList;
|
|
|
|
|
if (req.getType() == 1) {
|
|
|
|
|
lendState = "在库";
|
|
|
|
|
List<String> plateNumList = taskMissionService.findPlateNum(lendState);
|
|
|
|
|
mergedList = plateNums.stream()
|
|
|
|
|
.filter(item -> !plateNumList.contains(item))
|
|
|
|
|
.collect(Collectors.toList());
|
|
|
|
|
} else {
|
|
|
|
|
lendState = "借出";
|
|
|
|
|
List<String> plateNumList = taskMissionService.findPlateNum(lendState);
|
|
|
|
|
mergedList = Stream.concat(plateNumList.stream(), plateNums.stream())
|
|
|
|
|
.distinct()
|
|
|
|
|
.collect(Collectors.toList());
|
|
|
|
|
}
|
|
|
|
|
Page<CarPageResponse> page = new Page<>();
|
|
|
|
|
page.setCurrent(req.getPageNo());
|
|
|
|
|
page.setSize(req.getPageSize());
|
|
|
|
|
Page<CarPageResponse> carPageResponsePage = taskMissionService.pageByPlateNums(page, plateNums);
|
|
|
|
|
Page<CarPageResponse> carPageResponsePage = taskMissionService.pageByPlateNums(page, mergedList);
|
|
|
|
|
ContentResponse contentResponse = new ContentResponse();
|
|
|
|
|
contentResponse.setTotalCount(carPageResponsePage.getTotal());
|
|
|
|
|
contentResponse.setPageNum(carPageResponsePage.getCurrent());
|
|
|
|
@ -99,10 +117,14 @@ public class CarServiceImpl implements CarService {
|
|
|
|
|
ColDTO colDTO4 = new ColDTO();
|
|
|
|
|
colDTO4.setValue("stateCn");
|
|
|
|
|
colDTO4.setLabel("车辆状态");
|
|
|
|
|
ColDTO colDTO5 = new ColDTO();
|
|
|
|
|
colDTO5.setValue("time");
|
|
|
|
|
colDTO5.setLabel("定位时间");
|
|
|
|
|
colDTOS.add(colDTO);
|
|
|
|
|
colDTOS.add(colDTO2);
|
|
|
|
|
colDTOS.add(colDTO3);
|
|
|
|
|
colDTOS.add(colDTO4);
|
|
|
|
|
colDTOS.add(colDTO5);
|
|
|
|
|
contentResponse.setCol(colDTOS);
|
|
|
|
|
// 将第一个列表转换为Map,以getCarPlate为键
|
|
|
|
|
Map<String, CarGPSResponse> map1 = list.stream()
|
|
|
|
@ -113,6 +135,7 @@ public class CarServiceImpl implements CarService {
|
|
|
|
|
if (car1 != null) {
|
|
|
|
|
car2.setAddr(car1.getAddr());
|
|
|
|
|
car2.setStateCn(car1.getStateCn());
|
|
|
|
|
car2.setTime(car1.getTime());
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
contentResponse.setData(carPageResponsePage.getRecords());
|
|
|
|
|