|
@@ -1,5 +1,6 @@
|
|
|
package com.sckw.fleet.service;
|
|
package com.sckw.fleet.service;
|
|
|
|
|
|
|
|
|
|
+import cn.hutool.core.collection.CollUtil;
|
|
|
import com.alibaba.excel.EasyExcel;
|
|
import com.alibaba.excel.EasyExcel;
|
|
|
import com.alibaba.excel.ExcelReader;
|
|
import com.alibaba.excel.ExcelReader;
|
|
|
import com.alibaba.excel.read.metadata.ReadSheet;
|
|
import com.alibaba.excel.read.metadata.ReadSheet;
|
|
@@ -1752,16 +1753,16 @@ public class KwfTruckService {
|
|
|
private VehicleReturnData getVehicleReturnDataByOrderNo(String odrderNo) {
|
|
private VehicleReturnData getVehicleReturnDataByOrderNo(String odrderNo) {
|
|
|
VehicleDataDTO vehicleDataDTO = new VehicleDataDTO();
|
|
VehicleDataDTO vehicleDataDTO = new VehicleDataDTO();
|
|
|
vehicleDataDTO.setWOrderNo(odrderNo);
|
|
vehicleDataDTO.setWOrderNo(odrderNo);
|
|
|
-
|
|
|
|
|
|
|
+
|
|
|
try {
|
|
try {
|
|
|
// 使用 Feign 调用查询实时位置
|
|
// 使用 Feign 调用查询实时位置
|
|
|
BaseIotResult<VehicleReturnData> result = vehicleTraceClient.queryRealTimeLocation(vehicleDataDTO);
|
|
BaseIotResult<VehicleReturnData> result = vehicleTraceClient.queryRealTimeLocation(vehicleDataDTO);
|
|
|
-
|
|
|
|
|
|
|
+
|
|
|
if (result == null || result.getCode() != "0" || result.getData() == null) {
|
|
if (result == null || result.getCode() != "0" || result.getData() == null) {
|
|
|
log.warn("查询实时轨迹返回空数据, 运单号: {}", odrderNo);
|
|
log.warn("查询实时轨迹返回空数据, 运单号: {}", odrderNo);
|
|
|
return null;
|
|
return null;
|
|
|
}
|
|
}
|
|
|
-
|
|
|
|
|
|
|
+
|
|
|
return result.getData();
|
|
return result.getData();
|
|
|
} catch (Exception e) {
|
|
} catch (Exception e) {
|
|
|
log.error("查询任务轨迹异常, 运单号: {}", odrderNo, e);
|
|
log.error("查询任务轨迹异常, 运单号: {}", odrderNo, e);
|
|
@@ -1772,16 +1773,16 @@ public class KwfTruckService {
|
|
|
public VehicleReturnData getVehicleReturnData(String truckId) {
|
|
public VehicleReturnData getVehicleReturnData(String truckId) {
|
|
|
VehicleDataDTO vehicleDataDTO = new VehicleDataDTO();
|
|
VehicleDataDTO vehicleDataDTO = new VehicleDataDTO();
|
|
|
vehicleDataDTO.setCarNo(truckId);
|
|
vehicleDataDTO.setCarNo(truckId);
|
|
|
-
|
|
|
|
|
|
|
+
|
|
|
try {
|
|
try {
|
|
|
// 使用 Feign 调用查询实时位置
|
|
// 使用 Feign 调用查询实时位置
|
|
|
BaseIotResult<VehicleReturnData> result = vehicleTraceClient.queryRealTimeLocation(vehicleDataDTO);
|
|
BaseIotResult<VehicleReturnData> result = vehicleTraceClient.queryRealTimeLocation(vehicleDataDTO);
|
|
|
-
|
|
|
|
|
|
|
+
|
|
|
if (result == null || result.getCode() != "0" || result.getData() == null) {
|
|
if (result == null || result.getCode() != "0" || result.getData() == null) {
|
|
|
log.warn("查询实时轨迹返回空数据, 车牌号: {}", truckId);
|
|
log.warn("查询实时轨迹返回空数据, 车牌号: {}", truckId);
|
|
|
return null;
|
|
return null;
|
|
|
}
|
|
}
|
|
|
-
|
|
|
|
|
|
|
+
|
|
|
return result.getData();
|
|
return result.getData();
|
|
|
} catch (Exception e) {
|
|
} catch (Exception e) {
|
|
|
log.error("查询任务轨迹异常, 车牌号: {}", truckId, e);
|
|
log.error("查询任务轨迹异常, 车牌号: {}", truckId, e);
|
|
@@ -1955,6 +1956,9 @@ public class KwfTruckService {
|
|
|
Integer.parseInt(req.getBusinessStatus());
|
|
Integer.parseInt(req.getBusinessStatus());
|
|
|
|
|
|
|
|
List<Long> truckIds = findTruckIdListByEntIds(req.getEntId());
|
|
List<Long> truckIds = findTruckIdListByEntIds(req.getEntId());
|
|
|
|
|
+ if(CollUtil.isEmpty(truckIds)){
|
|
|
|
|
+ return PageDataResult.empty(req.getPageNum(),req.getPageSize());
|
|
|
|
|
+ }
|
|
|
IPage<KwfTruck> kwfTruckIPage = kwfTruckRepository.queryByPage(req.getPageNum(), req.getPageSize(), truckIds, businessStatus,
|
|
IPage<KwfTruck> kwfTruckIPage = kwfTruckRepository.queryByPage(req.getPageNum(), req.getPageSize(), truckIds, businessStatus,
|
|
|
req.getTruckNo());
|
|
req.getTruckNo());
|
|
|
List<KwfTruck> records = kwfTruckIPage.getRecords();
|
|
List<KwfTruck> records = kwfTruckIPage.getRecords();
|
|
@@ -2000,14 +2004,14 @@ public class KwfTruckService {
|
|
|
log.info("批量校验车牌号,请求参数:{}", JSON.toJSONString(req));
|
|
log.info("批量校验车牌号,请求参数:{}", JSON.toJSONString(req));
|
|
|
Long entId = Objects.nonNull(req.getEntId()) ? req.getEntId() : LoginUserHolder.getEntId();
|
|
Long entId = Objects.nonNull(req.getEntId()) ? req.getEntId() : LoginUserHolder.getEntId();
|
|
|
List<TruckValidateVo> result = new ArrayList<>();
|
|
List<TruckValidateVo> result = new ArrayList<>();
|
|
|
-
|
|
|
|
|
|
|
+
|
|
|
if (StringUtils.isBlank(req.getTruckNos())) {
|
|
if (StringUtils.isBlank(req.getTruckNos())) {
|
|
|
return result;
|
|
return result;
|
|
|
}
|
|
}
|
|
|
|
|
|
|
|
// 使用TruckNoUtils拆分车牌号字符串(支持中文逗号、英文逗号、空格、换行符等)
|
|
// 使用TruckNoUtils拆分车牌号字符串(支持中文逗号、英文逗号、空格、换行符等)
|
|
|
List<String> truckNoList = TruckNoUtils.splitTruckNos(req.getTruckNos());
|
|
List<String> truckNoList = TruckNoUtils.splitTruckNos(req.getTruckNos());
|
|
|
-
|
|
|
|
|
|
|
+
|
|
|
if (CollectionUtils.isEmpty(truckNoList)) {
|
|
if (CollectionUtils.isEmpty(truckNoList)) {
|
|
|
return result;
|
|
return result;
|
|
|
}
|
|
}
|
|
@@ -2051,7 +2055,7 @@ public class KwfTruckService {
|
|
|
* @param entMap 企业信息Map
|
|
* @param entMap 企业信息Map
|
|
|
* @return 校验结果
|
|
* @return 校验结果
|
|
|
*/
|
|
*/
|
|
|
- private TruckValidateVo validateSingleTruckNo(String originalTruckNo,
|
|
|
|
|
|
|
+ private TruckValidateVo validateSingleTruckNo(String originalTruckNo,
|
|
|
Map<String, KwfTruck> truckMap,
|
|
Map<String, KwfTruck> truckMap,
|
|
|
EntCacheResDto ent) {
|
|
EntCacheResDto ent) {
|
|
|
TruckValidateVo.TruckValidateVoBuilder builder = TruckValidateVo.builder()
|
|
TruckValidateVo.TruckValidateVoBuilder builder = TruckValidateVo.builder()
|
|
@@ -2198,7 +2202,7 @@ public class KwfTruckService {
|
|
|
|
|
|
|
|
// 1. 获取当前用户的数据权限配置
|
|
// 1. 获取当前用户的数据权限配置
|
|
|
DataPermissionDTO perm = fetchDataPermissionForCurrentUser();
|
|
DataPermissionDTO perm = fetchDataPermissionForCurrentUser();
|
|
|
-
|
|
|
|
|
|
|
+
|
|
|
// 初始化结果集合,默认包含传入的基础企业ID
|
|
// 初始化结果集合,默认包含传入的基础企业ID
|
|
|
Set<Long> entIds = Sets.newHashSet(entId);
|
|
Set<Long> entIds = Sets.newHashSet(entId);
|
|
|
|
|
|
|
@@ -2218,7 +2222,7 @@ public class KwfTruckService {
|
|
|
|
|
|
|
|
// 获取用户可见的企业ID列表
|
|
// 获取用户可见的企业ID列表
|
|
|
Set<Long> visibleEntIds = perm.getVisibleEntIds();
|
|
Set<Long> visibleEntIds = perm.getVisibleEntIds();
|
|
|
-
|
|
|
|
|
|
|
+
|
|
|
// 如果可见企业ID列表为空,说明该用户无权查看任何企业数据,返回空集合
|
|
// 如果可见企业ID列表为空,说明该用户无权查看任何企业数据,返回空集合
|
|
|
if (CollectionUtils.isEmpty(visibleEntIds)) {
|
|
if (CollectionUtils.isEmpty(visibleEntIds)) {
|
|
|
log.warn("数据权限过滤:用户无可见企业权限,返回空集合。用户ID: {}", LoginUserHolder.getUserId());
|
|
log.warn("数据权限过滤:用户无可见企业权限,返回空集合。用户ID: {}", LoginUserHolder.getUserId());
|
|
@@ -2230,8 +2234,8 @@ public class KwfTruckService {
|
|
|
// 如果业务意图是“仅保留基础entId且在可见范围内的”,则应使用 retainAll 或 intersection。
|
|
// 如果业务意图是“仅保留基础entId且在可见范围内的”,则应使用 retainAll 或 intersection。
|
|
|
// 此处保持原有代码逻辑不变,仅添加日志。
|
|
// 此处保持原有代码逻辑不变,仅添加日志。
|
|
|
result.addAll(visibleEntIds);
|
|
result.addAll(visibleEntIds);
|
|
|
-
|
|
|
|
|
- log.debug("数据权限过滤完成。基础ID: {}, 可见ID数量: {}, 过滤后结果集大小: {}, 结果集内容: {}",
|
|
|
|
|
|
|
+
|
|
|
|
|
+ log.debug("数据权限过滤完成。基础ID: {}, 可见ID数量: {}, 过滤后结果集大小: {}, 结果集内容: {}",
|
|
|
entId, visibleEntIds.size(), result.size(), result);
|
|
entId, visibleEntIds.size(), result.size(), result);
|
|
|
}
|
|
}
|
|
|
|
|
|
|
@@ -2296,7 +2300,7 @@ public class KwfTruckService {
|
|
|
if (param.getId() == null && (param.getTruckNo() == null || param.getTruckNo().trim().isEmpty())) {
|
|
if (param.getId() == null && (param.getTruckNo() == null || param.getTruckNo().trim().isEmpty())) {
|
|
|
return new TruckDetailResp();
|
|
return new TruckDetailResp();
|
|
|
}
|
|
}
|
|
|
-
|
|
|
|
|
|
|
+
|
|
|
KwfTruck truck = kwfTruckRepository.getOne(Wrappers.<KwfTruck>lambdaQuery()
|
|
KwfTruck truck = kwfTruckRepository.getOne(Wrappers.<KwfTruck>lambdaQuery()
|
|
|
.eq(param.getId() != null, KwfTruck::getId, param.getId())
|
|
.eq(param.getId() != null, KwfTruck::getId, param.getId())
|
|
|
.eq(param.getTruckNo() != null && !param.getTruckNo().trim().isEmpty(), KwfTruck::getTruckNo, param.getTruckNo())
|
|
.eq(param.getTruckNo() != null && !param.getTruckNo().trim().isEmpty(), KwfTruck::getTruckNo, param.getTruckNo())
|