diff --git a/src/main/java/com/ykMap/entity/response/CarGPSResponse.java b/src/main/java/com/ykMap/entity/response/CarGPSResponse.java index 3f682cf..6eff0bc 100644 --- a/src/main/java/com/ykMap/entity/response/CarGPSResponse.java +++ b/src/main/java/com/ykMap/entity/response/CarGPSResponse.java @@ -38,4 +38,9 @@ public class CarGPSResponse implements Serializable { * 车辆在线状态 */ public String stateCn; + + /** + * 定位时间 + */ + public String time; } diff --git a/src/main/java/com/ykMap/entity/response/CarPageResponse.java b/src/main/java/com/ykMap/entity/response/CarPageResponse.java index 89d45b0..1ef0724 100644 --- a/src/main/java/com/ykMap/entity/response/CarPageResponse.java +++ b/src/main/java/com/ykMap/entity/response/CarPageResponse.java @@ -39,4 +39,11 @@ public class CarPageResponse implements Serializable { */ @ApiModelProperty(value = "车辆在线状态") public String stateCn; + + /** + * 定位时间 + */ + @ApiModelProperty(value = "定位时间") + public String time; + } diff --git a/src/main/java/com/ykMap/mapper/TaskMissionMapper.java b/src/main/java/com/ykMap/mapper/TaskMissionMapper.java index 52bf802..812df78 100644 --- a/src/main/java/com/ykMap/mapper/TaskMissionMapper.java +++ b/src/main/java/com/ykMap/mapper/TaskMissionMapper.java @@ -40,5 +40,13 @@ public interface TaskMissionMapper extends BaseMapper { * @return 响应类 */ Page pageByPlateNums(Page page, @Param("list") List list); + + /** + * 根据外出条件查询车牌号 + * + * @param lendState 在库/外出 + * @return 响应类 + */ + List findPlateNum(@Param("lendState") String lendState); } diff --git a/src/main/java/com/ykMap/service/TaskMissionService.java b/src/main/java/com/ykMap/service/TaskMissionService.java index 42984ea..651f052 100644 --- a/src/main/java/com/ykMap/service/TaskMissionService.java +++ b/src/main/java/com/ykMap/service/TaskMissionService.java @@ -40,5 +40,14 @@ public interface TaskMissionService extends IService { * @return 响应类 */ Page pageByPlateNums(Page page, List plateNums); + + /** + * 根据外出条件查询车牌号 + * + * @param lendState 在库/外出 + * @return 响应类 + */ + List findPlateNum(String lendState); + } diff --git a/src/main/java/com/ykMap/service/impl/CarServiceImpl.java b/src/main/java/com/ykMap/service/impl/CarServiceImpl.java index 5682626..443f435 100644 --- a/src/main/java/com/ykMap/service/impl/CarServiceImpl.java +++ b/src/main/java/com/ykMap/service/impl/CarServiceImpl.java @@ -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; /** * 车辆实时定位实现层 @@ -53,7 +54,7 @@ public class CarServiceImpl implements CarService { String sessionId = findSessionId(); // 获取车辆实时定位 List carGPSList = findCarGPS(sessionId); - GlobalCoordinates companyLocation = new GlobalCoordinates(31.226963,120.634355); + GlobalCoordinates companyLocation = new GlobalCoordinates(31.226963, 120.634355); // 过滤后的车辆 List list = new ArrayList<>(); if (CollectionUtil.isEmpty(carGPSList)) { @@ -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 plateNums = list.stream().map(CarGPSResponse::getCarPlate).collect(Collectors.toList()); + // 定义查询条件 + String lendState; + List mergedList; + if (req.getType() == 1) { + lendState = "在库"; + List plateNumList = taskMissionService.findPlateNum(lendState); + mergedList = plateNums.stream() + .filter(item -> !plateNumList.contains(item)) + .collect(Collectors.toList()); + } else { + lendState = "借出"; + List plateNumList = taskMissionService.findPlateNum(lendState); + mergedList = Stream.concat(plateNumList.stream(), plateNums.stream()) + .distinct() + .collect(Collectors.toList()); + } Page page = new Page<>(); page.setCurrent(req.getPageNo()); page.setSize(req.getPageSize()); - Page carPageResponsePage = taskMissionService.pageByPlateNums(page, plateNums); + Page 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 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()); @@ -156,7 +179,7 @@ public class CarServiceImpl implements CarService { log.info("================获取车辆实时定位数据================="); log.info(body); try { - json = JSONObject.parse(body); + json = JSONObject.parse(body); } catch (Exception e) { log.error(e.getMessage()); throw new ServiceException("获取车辆实时定位失败"); diff --git a/src/main/java/com/ykMap/service/impl/TaskMissionServiceImpl.java b/src/main/java/com/ykMap/service/impl/TaskMissionServiceImpl.java index 825de1a..04d268c 100644 --- a/src/main/java/com/ykMap/service/impl/TaskMissionServiceImpl.java +++ b/src/main/java/com/ykMap/service/impl/TaskMissionServiceImpl.java @@ -58,5 +58,16 @@ public class TaskMissionServiceImpl extends ServiceImpl pageByPlateNums(Page page, List plateNums) { return baseMapper.pageByPlateNums(page,plateNums); } + + /** + * 根据外出条件查询车牌号 + * + * @param lendState 在库/外出 + * @return 响应类 + */ + @Override + public List findPlateNum(String lendState) { + return baseMapper.findPlateNum(lendState); + } } diff --git a/src/main/resources/com/ykMap/mapper/TaskMissionMapper.xml b/src/main/resources/com/ykMap/mapper/TaskMissionMapper.xml index 9a3f9e5..1f64a11 100644 --- a/src/main/resources/com/ykMap/mapper/TaskMissionMapper.xml +++ b/src/main/resources/com/ykMap/mapper/TaskMissionMapper.xml @@ -53,5 +53,14 @@ AND latest_tasks.latest_departure_time = tm.departure_time + +