identityService.setAuthenticatedUserId(sysUser.getUserId().toString()); variables.put(ProcessConstants.PROCESS_INITIATOR, sysUser.getUserId()); variables.put("duration",dayStr); String procinstId = runtimeService.startProcessInstanceById(procDefId, variables).getId();
时间: 2024-04-22 12:28:44 浏览: 82
这段代码是在启动流程实例之前,设置了当前用户的身份信息,并且传入了一些启动流程时需要的变量。其中,sysUser是一个系统用户对象,用于获取用户ID,ProcessConstants.PROCESS_INITIATOR是一个自定义的变量,用于标识流程的发起人,"duration"是一个自定义的变量,用于标识流程需要的持续时间。在启动流程实例时,会将这些变量传入,以便流程中的节点可以使用这些变量。最后,该代码会返回流程实例的ID。
相关问题
把LambdaQueryWrapper<SysUser> lqw = Wrappers.lambdaQuery(SysUser.class).select(SysUser::getUserId).in(SysUser::getDeptId, groups); userIds = SimpleQuery.list(lqw, SysUser::getUserId);改成mybatis plus3.3.0写法
在 Mybatis Plus 3.3.0 中,可以使用 LambdaQueryWrapper 和 QueryWrapper 来构造查询条件。对于这个问题,可以按照以下方式重写:
```java
LambdaQueryWrapper<SysUser> wrapper = Wrappers.lambdaQuery(SysUser.class)
.select(SysUser::getUserId)
.in(SysUser::getDeptId, groups);
List<Object> userIds = sysUserMapper.selectObjs(wrapper);
```
这里使用了 LambdaQueryWrapper 的 lambda 表达式方法来构造查询条件,其中 `SysUser::getUserId` 表示指定查询结果为 `userId` 字段,`sysUserMapper` 是 `SysUser` 对应的 Mybatis Mapper。最后使用 `selectObjs` 方法来查询指定字段的结果列表。
把 LambdaQueryWrapper<SysUser> lqw = Wrappers.lambdaQuery(SysUser.class).select(SysUser::getUserId).in(SysUser::getDeptId, groups); List<Long> userIds = SimpleQuery.list(lqw, SysUser::getUserId);改成mybatis plus3.3.0写法
在 MyBatis Plus 3.3.0 中,可以这样写:
```
List<Long> userIds = new LambdaQueryChainWrapper<>(sysUserMapper)
.select(SysUser::getUserId)
.in(SysUser::getDeptId, groups)
.list()
.stream()
.map(SysUser::getUserId)
.collect(Collectors.toList());
```
其中,`sysUserMapper` 是 SysUserMapper 接口的实例,`LambdaQueryChainWrapper` 是 MyBatis Plus 新增的 LambdaQuery 链式查询的实现类。这里使用了 `map` 函数将 `List<SysUser>` 转换为 `List<Long>`。
阅读全文