| | |
| | | * @param vehicleInfo 车辆信息 |
| | | * @return 结果 |
| | | */ |
| | | /** |
| | | * 修改车辆信息 |
| | | * 注意: |
| | | * - 如果需要更新部门关联,请设置 vehicleInfo.deptIds |
| | | * - 如果不需要更新部门关联(仅更新车辆基本信息),请保持 vehicleInfo.deptIds = null |
| | | * - 这样可以避免并发同步时的死锁问题 |
| | | * |
| | | * @param vehicleInfo 车辆信息 |
| | | * @return 结果 |
| | | */ |
| | | @Override |
| | | @Transactional |
| | | public int updateVehicleInfo(VehicleInfo vehicleInfo) { |
| | | // 先删除旧的关联关系 |
| | | vehicleInfoMapper.deleteVehicleDeptByVehicleId(vehicleInfo.getVehicleId()); |
| | | |
| | | // 如果选择了多个分公司,保存到关联表 |
| | | if (vehicleInfo.getDeptIds() != null && !vehicleInfo.getDeptIds().isEmpty()) { |
| | | insertVehicleDept(vehicleInfo); |
| | | // 只有当 deptIds 不为 null 时才更新部门关联(避免不必要的锁竞争) |
| | | if (vehicleInfo.getDeptIds() != null) { |
| | | // 先删除旧的关联关系 |
| | | vehicleInfoMapper.deleteVehicleDeptByVehicleId(vehicleInfo.getVehicleId()); |
| | | |
| | | // 如果选择了多个分公司,保存到关联表 |
| | | if (!vehicleInfo.getDeptIds().isEmpty()) { |
| | | insertVehicleDept(vehicleInfo); |
| | | } |
| | | } |
| | | |
| | | return vehicleInfoMapper.updateVehicleInfo(vehicleInfo); |