背景说明
系统中的弹窗选人窗口,默认是获取的LuBase系统内部(sa_account)的用户信息。但是在私有化部署后,很多时候是需要对接公司内部的所有用户信息进行选择,这个时候可以通过扩展UserSelectForComponentDataService服务来实现此功能。
调整配置通过扩展服务来选择用户
实现扩展服务后,需要在客户的config.js 中可以调整下 配置项userSelect,使之生效。
userSelect: {
outerTag: '0', //选人是否外部数据,0:否 1:是
user2Local: '0' //是否把外部用户数据同步创建到到系统内 0:否 1:是
}
选人服务扩展说明
可以根据用户工号和姓名进行检索返回数据,返回的数据支持设置每页大小和第几页
public interface UserSelectForComponentDataService {
/***
* 用于弹窗选人等服务
* @param userCode 用户登录账号,不为空则根据此属性检索
* @param userName 用户姓名,不为空则根据此属性检索
* @param pageIndex 分页,设置大小
* @param pageSize 页面数量
* @return
*/
UserSelectCollection selectUserList(String userCode, String userName, Integer pageIndex, Integer pageSize);
}
@Data
public class UserSelectCollection {
List<SelectUserModel> data;
private int totalCount;
}
@Data
public class SelectUserModel {
private String id;
private String userCode;
private String userName;
private String deptId;
private String deptName;
}
外部用户创建为系统内部用户
如果config.js 中 userSelect.user2Local 配置为1,则会自动调用接口创建内部用户。
创建逻辑:根据deptId判断是否存在部门,如果不存在则先创建部门;根据userCode判断是否存在用户,如果不存在则创建用户。具体实现在UserInfoService服务,方法createUser(List<SelectUserModel> list);
如果需要扩展创建用户的逻辑,可以实现服务UserCreateExtendService
public interface UserCreateExtendService {
/**
* 创建用户
*
* @param list
* @return
*/
Integer createUser(List<SelectUserModel> list);
}