| | |
| | | import java.util.List; |
| | | import java.util.stream.Collectors; |
| | | |
| | | import com.ruoyi.common.utils.PlateNumberExtractor; |
| | | import com.ruoyi.system.domain.*; |
| | | import org.slf4j.Logger; |
| | | import org.slf4j.LoggerFactory; |
| | |
| | | private IVehicleGpsService vehicleGpsService; |
| | | |
| | | public void syncVehicleInfo() { |
| | | log.info("开始同步CMS车辆信息"); |
| | | // log.info("开始同步CMS车辆信息"); |
| | | try { |
| | | // 获取CMS所有车辆信息 |
| | | CmsVehicleDeviceListResponse response = cmsGpsCollectService.getDeviceByVehicle(null); |
| | |
| | | vehicleInfo.setStatus("0"); |
| | | vehicleInfoService.insertVehicleInfo(vehicleInfo); |
| | | syncCarCount++; |
| | | log.info("新增CMS车辆: {}", plateNo); |
| | | // log.info("新增CMS车辆: {}", plateNo); |
| | | } else { |
| | | // 更新车辆 - 仅更新必要字段,避免触发关联表操作 |
| | | vehicleInfo.setDeviceId(vehicle.getDid()); |
| | |
| | | vehicleInfo.setDeptIds(null); // 不更新部门关联,避免死锁 |
| | | vehicleInfoService.updateVehicleInfo(vehicleInfo); |
| | | syncCarCount++; |
| | | log.debug("更新CMS车辆: {}", plateNo); |
| | | // log.debug("更新CMS车辆: {}", plateNo); |
| | | } |
| | | success = true; |
| | | } catch (org.springframework.dao.DeadlockLoserDataAccessException e) { |
| | |
| | | |
| | | |
| | | |
| | | log.info("成功同步{}个CMS车辆信息", syncCarCount); |
| | | log.info("CMS车辆信息同步完成"); |
| | | // log.info("成功同步{}个CMS车辆信息", syncCarCount); |
| | | // log.info("CMS车辆信息同步完成"); |
| | | } catch (Exception e) { |
| | | log.error("同步CMS车辆信息异常", e); |
| | | } |
| | |
| | | |
| | | //对车牌处理的通用方法 |
| | | private String getPlateNo(String plateNo){ |
| | | |
| | | if (StringUtils.isNotEmpty(plateNo)) { |
| | | // 从车辆名称中提取车牌号(假设格式为"★车牌号(地区)") |
| | | if(plateNo.contains("(")) { |
| | |
| | | plateNo = plateNo.replace("★", "").replace("☆", "").split("(")[0]; |
| | | } |
| | | } |
| | | return plateNo; |
| | | //xxx粤VSX120 |
| | | plateNo = plateNo.replaceAll("[^a-zA-Z0-9]", ""); |
| | | return PlateNumberExtractor.extractPlateNumber(plateNo); |
| | | } |
| | | |
| | | /** |
| | | * 同步CMS车辆位置信息 |
| | | */ |
| | | public void syncVehicleLocation() { |
| | | log.info("开始同步CMS车辆位置信息"); |
| | | // log.info("开始同步CMS车辆位置信息"); |
| | | try { |
| | | //先获得本地CMS上的所有CMS车辆 |
| | | VehicleInfo query = new VehicleInfo(); |