drone-service/drone-fw/src/main/java/org/sxkj/fw/device/mapper/FwDeviceMapper.xml
@@ -751,11 +751,14 @@ CASE WHEN ps.id IS NOT NULL THEN TRUE ELSE FALSE END AS isShared END AS isShared FROM ja_fw_device d LEFT JOIN ja_fw_device_per_share ps ON ps.device_id::VARCHAR = d.id::VARCHAR AND ps.loan_to_dept_id = #{currentDeptId} /* 修改点1:建议使用 ::text,且如果 id 本身是数字类型,能不转就不转以优化索引, 这里保留转换逻辑但改为更通用的 text */ LEFT JOIN ja_fw_device_per_share ps ON ps.device_id::text = d.id::text /* 修改点2:核心修复!显式转换参数为 bigint,匹配数据库字段类型 */ AND ps.loan_to_dept_id = #{currentDeptId}::bigint AND ps.is_deleted = 0 WHERE d.is_deleted = 0 drone-service/drone-system/src/main/java/org/sxkj/system/service/impl/UserServiceImpl.java
@@ -112,8 +112,7 @@ public boolean updateUser(User user) { Long deptId = Long.valueOf(user.getDeptId()); // 推荐写法:类型安全,自动处理参数绑定 Dept dept = deptMapper.selectOne(new LambdaQueryWrapper<Dept>() .eq(Dept::getId, deptId)); Dept dept = deptMapper.selectById(deptId); user.setAreaCode(null == dept ? null : dept.getAreaCode()); String tenantId = user.getTenantId(); Long userCount = baseMapper.selectCount(