|
@@ -6,6 +6,7 @@ import com.alibaba.excel.read.metadata.ReadSheet;
|
|
|
import com.alibaba.fastjson.JSON;
|
|
import com.alibaba.fastjson.JSON;
|
|
|
import com.alibaba.fastjson.JSONArray;
|
|
import com.alibaba.fastjson.JSONArray;
|
|
|
import com.alibaba.fastjson.JSONObject;
|
|
import com.alibaba.fastjson.JSONObject;
|
|
|
|
|
+import com.baomidou.mybatisplus.core.metadata.IPage;
|
|
|
import com.baomidou.mybatisplus.core.toolkit.Wrappers;
|
|
import com.baomidou.mybatisplus.core.toolkit.Wrappers;
|
|
|
import com.google.common.collect.Lists;
|
|
import com.google.common.collect.Lists;
|
|
|
import com.sckw.core.common.enums.enums.DictTypeEnum;
|
|
import com.sckw.core.common.enums.enums.DictTypeEnum;
|
|
@@ -89,6 +90,7 @@ public class KwfTruckService {
|
|
|
private final KwfTruckRepository kwfTruckRepository;
|
|
private final KwfTruckRepository kwfTruckRepository;
|
|
|
private final KwfFleetRepository kwfFleetRepository;
|
|
private final KwfFleetRepository kwfFleetRepository;
|
|
|
private final UrlConfigProperties urlConfigProperties;
|
|
private final UrlConfigProperties urlConfigProperties;
|
|
|
|
|
+ private final KwfFleetDriverRepository kwfFleetDriverRepository;
|
|
|
|
|
|
|
|
private final KwfFleetTruckRepository kwfFleetTruckRepository;
|
|
private final KwfFleetTruckRepository kwfFleetTruckRepository;
|
|
|
@DubboReference(version = "1.0.0", group = "design", check = false, timeout = 8000)
|
|
@DubboReference(version = "1.0.0", group = "design", check = false, timeout = 8000)
|
|
@@ -1560,4 +1562,118 @@ public class KwfTruckService {
|
|
|
JSONObject jsonObject = JSON.parseObject(res);
|
|
JSONObject jsonObject = JSON.parseObject(res);
|
|
|
return JSON.parseObject(jsonObject.get("data").toString(), VehicleReturnData.class);
|
|
return JSON.parseObject(jsonObject.get("data").toString(), VehicleReturnData.class);
|
|
|
}
|
|
}
|
|
|
|
|
+
|
|
|
|
|
+ public PageDataResult<AppTruckInfoVo> pageAppTruckInfo(TruckInfoReq req) {
|
|
|
|
|
+ log.info("app端分页查询车辆信息,请求参数:{}",JSON.toJSONString(req));
|
|
|
|
|
+ //查询车辆信息
|
|
|
|
|
+ Long entId = req.getEntId();
|
|
|
|
|
+ IPage<KwfTruck> page = kwfTruckRepository.queryByCondition(entId,req.getTruckNo(),req.getTruckMark(),req.getStartTime(),req.getEndTime(),req.getPageNum(),req.getPageSize());
|
|
|
|
|
+ List<KwfTruck> truckList = page.getRecords();
|
|
|
|
|
+ if (CollectionUtils.isEmpty(truckList)){
|
|
|
|
|
+ return PageDataResult.empty(req.getPageNum(), req.getPageSize());
|
|
|
|
|
+ }
|
|
|
|
|
+ List<Long> entIds = truckList.stream()
|
|
|
|
|
+ .map(KwfTruck::getEntId)
|
|
|
|
|
+ .distinct()
|
|
|
|
|
+ .collect(Collectors.toList());
|
|
|
|
|
+ //entId映射企业信息
|
|
|
|
|
+ Map<Long, KwsEnterpriseResDto> entIdKwsEnterpriseResDtoMap = remoteSystemService.queryEnterpriseByEntIds(entIds);
|
|
|
|
|
+ //根据车辆车辆id,查询车队
|
|
|
|
|
+ Set<Long> truckIds = truckList.stream().map(BaseModel::getId).collect(Collectors.toSet());
|
|
|
|
|
+ List<KwfFleetTruck> kwfFleetTrucks = kwfFleetTruckRepository.queryByTruckIds(truckIds);
|
|
|
|
|
+ Map<Long, List<KwfFleetTruck>> truckIdAndFleetTruckMap = new HashMap<>();
|
|
|
|
|
+ Set<Long> feltIds = new HashSet<>();
|
|
|
|
|
+ if (CollectionUtils.isNotEmpty(kwfFleetTrucks)){
|
|
|
|
|
+ truckIdAndFleetTruckMap = kwfFleetTrucks.stream()
|
|
|
|
|
+ .collect(Collectors.groupingBy(KwfFleetTruck::getTruckId));
|
|
|
|
|
+ feltIds = kwfFleetTrucks.stream().map(KwfFleetTruck::getFleetId).collect(Collectors.toSet());
|
|
|
|
|
+ }
|
|
|
|
|
+
|
|
|
|
|
+ List<KwfFleet> fleets = new ArrayList<>();
|
|
|
|
|
+ if (CollectionUtils.isNotEmpty(feltIds)){
|
|
|
|
|
+ fleets = kwfFleetRepository.findByfleetIds(feltIds);
|
|
|
|
|
+ }
|
|
|
|
|
+
|
|
|
|
|
+
|
|
|
|
|
+ Map<Long, KwfFleet> fleetIdAndFleetMap =new HashMap<>();
|
|
|
|
|
+ if (CollectionUtils.isNotEmpty(fleets)){
|
|
|
|
|
+ //车队映射车队信息
|
|
|
|
|
+ fleetIdAndFleetMap = fleets.stream().collect(Collectors.toMap(KwfFleet::getId, Function.identity(), (k1, k2) -> k1));
|
|
|
|
|
+ }
|
|
|
|
|
+
|
|
|
|
|
+ //根据车辆车辆id,司机信息
|
|
|
|
|
+ List<KwfFleetDriver> kwfFleetDrivers =new ArrayList<>();
|
|
|
|
|
+ if (CollectionUtils.isNotEmpty(feltIds)){
|
|
|
|
|
+ kwfFleetDrivers = kwfFleetDriverRepository.findByFleetIds(feltIds);
|
|
|
|
|
+ }
|
|
|
|
|
+
|
|
|
|
|
+ Set<Long> driverIds = new HashSet<>();
|
|
|
|
|
+ Map<Long, List<KwfFleetDriver>> fleetIdAndDriverMap = new HashMap<>();
|
|
|
|
|
+ if (CollectionUtils.isNotEmpty(kwfFleetDrivers)){
|
|
|
|
|
+ driverIds = kwfFleetDrivers.stream().map(KwfFleetDriver::getDriverId).collect(Collectors.toSet());
|
|
|
|
|
+ //车队id映射车队司机信息
|
|
|
|
|
+ fleetIdAndDriverMap = kwfFleetDrivers.stream().collect(Collectors.groupingBy(KwfFleetDriver::getFleetId));
|
|
|
|
|
+ }
|
|
|
|
|
+ List<KwfDriver> drivers = new ArrayList<>();
|
|
|
|
|
+ if (CollectionUtils.isNotEmpty(driverIds)){
|
|
|
|
|
+ drivers = kwfDriverRepository.findByDriverIds(driverIds);
|
|
|
|
|
+ }
|
|
|
|
|
+
|
|
|
|
|
+ Map<Long, KwfDriver> driverIdAndDriverMap = new HashMap<>();
|
|
|
|
|
+ if (CollectionUtils.isNotEmpty(drivers)){
|
|
|
|
|
+ //司机id映射司机信息
|
|
|
|
|
+ driverIdAndDriverMap = drivers.stream().collect(Collectors.toMap(BaseModel::getId, Function.identity(), (k1, k2) -> k1));
|
|
|
|
|
+ }
|
|
|
|
|
+
|
|
|
|
|
+
|
|
|
|
|
+ //遍历所有企业
|
|
|
|
|
+ Map<Long, List<KwfFleetTruck>> finalTruckIdAndFleetTruckMap = truckIdAndFleetTruckMap;
|
|
|
|
|
+ Map<Long, KwfFleet> finalFleetIdAndFleetMap = fleetIdAndFleetMap;
|
|
|
|
|
+ Map<Long, KwfDriver> finalDriverIdAndDriverMap = driverIdAndDriverMap;
|
|
|
|
|
+ Map<Long, List<KwfFleetDriver>> finalFleetIdAndDriverMap = fleetIdAndDriverMap;
|
|
|
|
|
+ List<AppTruckInfoVo> ents = truckList.stream()
|
|
|
|
|
+ .map(t-> getAppTruckInfoVo(t, entIdKwsEnterpriseResDtoMap, finalTruckIdAndFleetTruckMap, finalFleetIdAndFleetMap, finalDriverIdAndDriverMap, finalFleetIdAndDriverMap))
|
|
|
|
|
+ .collect(Collectors.toList());
|
|
|
|
|
+
|
|
|
|
|
+ return PageDataResult.success(Integer.parseInt(String.valueOf(page.getCurrent())),Integer.parseInt(String.valueOf(page.getSize())),page.getTotal(),ents);
|
|
|
|
|
+ }
|
|
|
|
|
+
|
|
|
|
|
+
|
|
|
|
|
+ private AppTruckInfoVo getAppTruckInfoVo(KwfTruck t, Map<Long, KwsEnterpriseResDto> entIdKwsEnterpriseResDtoMap
|
|
|
|
|
+ ,Map<Long, List<KwfFleetTruck>> truckIdAndFleetTruckMap
|
|
|
|
|
+ ,Map<Long, KwfFleet> fleetIdAndFleetMap
|
|
|
|
|
+ , Map<Long, KwfDriver> driverIdAndDriverMap
|
|
|
|
|
+ ,Map<Long, List<KwfFleetDriver>> fleetIdAndDriverMap) {
|
|
|
|
|
+ AppTruckInfoVo truckInfoVo = new AppTruckInfoVo();
|
|
|
|
|
+ truckInfoVo.setEntId(String.valueOf(t.getEntId()));
|
|
|
|
|
+ KwsEnterpriseResDto enterpriseResDto = entIdKwsEnterpriseResDtoMap.getOrDefault(t.getEntId(), new KwsEnterpriseResDto());
|
|
|
|
|
+ truckInfoVo.setEntName(enterpriseResDto.getFirmName());
|
|
|
|
|
+ truckInfoVo.setTruckId(String.valueOf(t.getId()));
|
|
|
|
|
+ truckInfoVo.setTruckNo(t.getTruckNo());
|
|
|
|
|
+ truckInfoVo.setTruckType(String.valueOf(t.getType()));
|
|
|
|
|
+ List<KwfFleetTruck> kwfFleetTrucks = truckIdAndFleetTruckMap.get(t.getId());
|
|
|
|
|
+ if (CollectionUtils.isNotEmpty(kwfFleetTrucks)){
|
|
|
|
|
+ KwfFleetTruck kwfFleetTruck = kwfFleetTrucks.get(0);
|
|
|
|
|
+ KwfFleet fleet = fleetIdAndFleetMap.getOrDefault(kwfFleetTruck.getFleetId(), new KwfFleet());
|
|
|
|
|
+ truckInfoVo.setFleetId(String.valueOf(kwfFleetTruck.getFleetId()));
|
|
|
|
|
+ truckInfoVo.setFleetName(fleet.getName());
|
|
|
|
|
+ List<KwfFleetDriver> kwfFleetDrivers = fleetIdAndDriverMap.get(kwfFleetTruck.getFleetId());
|
|
|
|
|
+ if (CollectionUtils.isNotEmpty(kwfFleetDrivers)){
|
|
|
|
|
+ KwfFleetDriver kwfFleetDriver = kwfFleetDrivers.get(0);
|
|
|
|
|
+ KwfDriver driver = driverIdAndDriverMap.getOrDefault(kwfFleetDriver.getDriverId(), new KwfDriver());
|
|
|
|
|
+ truckInfoVo.setDriverId(String.valueOf(kwfFleetDriver.getDriverId()));
|
|
|
|
|
+ truckInfoVo.setDriverName(driver.getName());
|
|
|
|
|
+ truckInfoVo.setDriverPhone(driver.getPhone());
|
|
|
|
|
+ }
|
|
|
|
|
+ }
|
|
|
|
|
+ //根据车牌id查询
|
|
|
|
|
+ VehicleReturnData vehicleReturnData = getVehicleReturnData(String.valueOf(t.getId()));
|
|
|
|
|
+ if (Objects.nonNull(vehicleReturnData)){
|
|
|
|
|
+ truckInfoVo.setLatitude(vehicleReturnData.getLatitude());
|
|
|
|
|
+ truckInfoVo.setLongitude(vehicleReturnData.getLongitude());
|
|
|
|
|
+ }
|
|
|
|
|
+ truckInfoVo.setTruckMark(String.valueOf(t.getTruckMark()));
|
|
|
|
|
+ truckInfoVo.setBusinessStatus(String.valueOf(t.getBusinessStatus()));
|
|
|
|
|
+ return truckInfoVo;
|
|
|
|
|
+ }
|
|
|
}
|
|
}
|