package com.norteksoft.product.api;
import java.util.List;
import java.util.Set;
import com.norteksoft.product.api.entity.BusinessSystem;
import com.norteksoft.product.api.entity.Role;
import com.norteksoft.product.api.entity.Department;
import com.norteksoft.product.api.entity.User;
import com.norteksoft.acs.entity.organization.UserInfo;
import com.norteksoft.product.api.entity.Workgroup;
public interface AcsService {
@Deprecated
public Long getOnlineUserCount(Long companyId);
/**
* 查询公司在线用户数量
* @return
*/
public Long getOnlineUserCount();
/**
* 查询在线用户人员ID
* @return
*/
public List<Long> getOnlineUserIds();
@Deprecated
public List<Department> getDepartmentList(Long companyId);
/**
* 查询公司所有的部门
* @return List<Department>
*/
public List<Department> getDepartments();
@Deprecated
public List<Workgroup> getWorkGroupList(Long companyId);
/**
* 查询公司所有的工作组
* @return List<WorkGroup>
*/
public List<Workgroup> getWorkgroups();
@Deprecated
public List<com.norteksoft.acs.entity.organization.User> getUserListByDepartmentId(Long departmentId);
/**
* 根据部门ID查询该部门的人员
* @param departmentId 部门Id
* @return List<User>
*/
public List<User> getUsersByDepartmentId(Long departmentId);
/**
* 根据部门名称得到部门下用户的登录名
* @param loginName
* @return
*/
public List<String> getUserLoginNamesByDepartmentName(String departmentName);
/**
* 根据工作组ID查询工作组的人员
* @param workgroupId 工作组Id
* @return List<User>
*/
public List<User> getUsersByWorkgroupId(Long workgroupId);
/**
* 根据父部门id查询该父部门下所有子部门
* @param paternDepartmentId 父部门Id
* @return List<Department>
*/
public List<Department> getSubDepartmentList(Long paternDepartmentId);
/**
* 根据用户Id得到用户实体
* @return User
*/
public User getUserById(Long id);
/**
* 查询用户委托的角色。
* @param trusteeId 受托人ID
* @param trustorId 委托人ID
* @return
*/
public Set<Role> getTrustedRolesByUserId(Long trusteeId, Long trustorId);
/**
* 根据用户获取用户的角色字符串形式(不含委托)
*/
@Deprecated
public String getRoleCodesFromUser(com.norteksoft.acs.entity.organization.User user);
/**
* 根据用户查询用户的角色(不含委托)
* @param userId
* @return Set<Role>
*/
public String getRolesExcludeTrustedRole(User user);
@Deprecated
public String getRolesExcludeTrustedRole(com.norteksoft.acs.entity.organization.User user);
/**
* 查询用户所有的角色
* @param userId
* @return
*/
public Set<Role> getRolesByUser(Long userId);
/**
* 查询用户所有的角色
* @param userId
* @return
*/
public Set<Role> getRolesByUser(User user);
@Deprecated
public Set<Role> getRolesByUser(com.norteksoft.acs.entity.organization.User user);
@Deprecated
public List<User> getUsersNotInDepartment(Long companyId);
/**
* 获取不属于任何部门的用户
* @return List<User>
*/
public List<User> getUsersWithoutDepartment();
@Deprecated
public void assignRolesToSomeone(Long someoneId,String[] roleIds,Long companyId,Long sourceUserId);
/**
* 将角色授权给别人,自己还保留该角色
* @param someoneId 受权人
* @param roleIds 角色id数组
* @param companyId
* @param sourceUserId //授权人
*/
public void assignTrustedRole(Long trustorId, String[]roleIds, Long trusteeId);
@Deprecated
public void deleteRoleUsers(Long userId,String[] rIds,Long companyId,Long sourceId) ;
/**
* 删除委托人委托出去的角色
* @param userId 受委托人的id
* @param rIds 角色id数组
* @param companyId 公司id
* @param sourceId 委托人id
*/
public void deleteTrustedRole(Long trustorId, String[]roleIds,Long trusteeId);
/**
* 根据roleId得到role
* @param sourceId
* @param userId
* @param companyId
*/
public Role getRoleById(Long roleId);
@Deprecated
public void deleteAssignedAuthority(Long sourceId,Long userId,Long companyId);
/**
* 删除由别人分配的权限
* @param sourceId
* @param userId
* @param companyId
*/
public void deleteAllTrustedRole(Long trustorId, Long trusteeId);
/**
* 通过工作组ID获取工作组
* @param workgroupId
* @return Workgroup
*/
public Workgroup getWorkgroupById(Long workgroupId);
@Deprecated
public Workgroup getWorkGroupByName(String name, Long companyId);
/**
* 通过工作组名称获取工作组
* @param workgroupName
* @return Workgroup
*/
public Workgroup getWorkgroupByName(String name);
/**
* 通过工作组编号获取工作组
* @param workgroupCode
* @return Workgroup
*/
public Workgroup getWorkgroupByCode(String code);
/**
* 通过部门ID获取部门实体
* @param departmentId
* @return Department
*/
public Department getDepartmentById(Long departmentId);
@Deprecated
public Department getDepartmentByName(String name, Long companyId);
/**
* 通过部门名称获取部门实体
* @param name
* @return Department
*/
public Department getDepartmentByName(String name);
/**
* 通过部门编号获取部门实体
* @param code
* @return Department
*/
public Department getDepartmentByCode(String code);
/**
* 查询所有人员(不包含无部门人员)
* @param companyId
* @return
*/
public List<User> getUsersByCompany(Long companyId);
/**
* 查询所有人员(包含无部门人员)
* @param companyId
* @return
*/
public List<User> getAllUsersByCompany(Long companyId);
@Deprecated
public Set<User> getUsersByRoleName(Long systemId, Long companyId, String roleName);
/**
* 通过角色名称查询拥有该角色的用户
* @param systemId
* @param roleName
* @return
*/
public Set<User> getUsersByRoleName(Long systemId, String roleName);
@Deprecated
public Set<User> getUsersExceptRoleName(Long systemId, Long companyId, String roleName);
public Set<User> getUsersWithoutRoleName(Long systemId, String roleName);
public Set<User> getUsersWithoutRoleCode(Long systemId, String roleCode);
@Deprecated
public Set<User> getUsersByRole(Long systemId, Long companyId, String roleCode);
/**
* 通过角色编号查询所有的用户(不含委托)
* @param systemId
* @param roleCode
* @return
*/
public Set<User> getUsersByRoleCodeExceptTrustedRole(Long systemId, String roleCode);
@Deprecated
public String getRtxUrl(Long companyId);
public String getRtxUrl();
@Deprecated
public Boolean isRtxInvocation(Long companyId);
/**
* 是否启用了rtx集成
* */
public Boolean isRtxEnable();
@Deprecated
public List<Department> getDepartmentsByUser(Long companyId,Long userId);
/**
* 根据用户ID查询用户所在的部门
* @param userId
* @return
*/
public List<Department> getDepartmentsByUserId(Long userId);
@Deprecated
public User getUser(Long companyId, String loginName);
/**
* 根据登录名查询用户信息
* @param loginName
* @return
*/
public User getUserByLoginName(String loginName);
@Deprecated
public User getUser(String email);
/**
* 根据邮件地址查询用户信息
* @param email
* @return
*/
public User getUserByEmail(String email);
/**
* 根据用户姓名查询用户
* @param userName
* @return
*/
public List<User> getUsersByName(String userName);
@Deprecated
public Set<String> getUserExceptLoginName(Long companyId, String loginName);
/**
* 查询出该登录名外的其他用户的登录名
* @param loginName
* @return
*/
public Set<String> getLoginNamesExclude(String loginName);
/**
* 根据用户登录名查询用户所在的部门
* @param companyId
* @param loginName
* @return
*/
@Deprecated
public List<Department> getDepartmentsByUser(Long companyId, String loginName);
public List<Department> getDepartments(String loginName);
@Deprecated
public Set<Role> getRolesByUser(Long companyId, String loginName);
/**
* 根据公司ID和用户的登录名查询该用户所具有的角色的字符串表示
* @param companyId
* @param loginName
* @return
*/
public Set<Role> getRolesByUser(String loginName);
@Deprecated
public List<Workgroup> getWorkGroupsByUser(Long companyId, String loginName);
/**
* 根据用户登录名查询该用户所在的工作组
* @param loginName
* @return
*/
public List<Workgroup> getWorkgroupsByUser(String loginName);
/**
* 根据公司ID和用户登录名查询该用户所在的工作组
* @param companyId
* @param loginName
* @return
*/
@Deprecated
public List<Workgroup> getWorkGroupsByUserLike(Long companyId, String name);
/**
* 根据登录名获得用户列表
* 如:flex中查询流转历史需要使用
*/
public List<User> getUsersByLoginNames(Long companyId, List<String> loginNames);
public List<User> getTacheUsersByLoginNames(Long companyId, List<String> loginNames);
public List<User> getUsersByLoginNames(List<String> loginNames);
@Deprecated
public List<Role> getRolesListByUserExceptDelegateMain(Long userId);
@Deprecated
public List<Role> getRolesListByUserExceptDelegateMain(com.norteksoft.acs.entity.organization.User user);
public List<Role> getRolesListByUserExceptDelegateMain(User user);
@Deprecated
public List<Role> getRolesListByUser(com.norteksoft.acs.entity.organization.User user);
public List<Role> getRolesListByUser(User user);
/**
* 根据用户查询角色(不含委托)
* @param user
* @return
*/
public List<Role> getRolesExcludeTrustedRole(Long userId);
@Deprecated
public List<Department> getSuperiorDepartmentsByUser(Long companyId, String loginName);
/**
* 根据用户登录名查询用户所在的部门的上级部门
* @param loginName
* @return
*/
public List<Department> getParentDepartmentsByUser(String loginName);
@Deprecated
public List<Department> getUpstageDepartmentsByUser(Long companyId, String loginName);
/**
* 获得用户的顶级部门
* @param companyId
* @param loginName
* @return
*/
public List<Department> getTopDepartmentsByUser(String loginName);
/**
* 获得用户的顶级部门
* @param companyId
* @param loginName
* @return
*/
@Deprecated
public List<Department> getUpstageDepartmentsByUserLike(Long companyId, String loginName);
@Deprecated
public Department getFirstDegreeDepartment(Department department);
/**
* 返回该部门的一级部门
* @param department
* @return
*/
public Department getTopDepartment(Department department);
/**
* 根据系统编码获得系统
* @param code
* @return
*/
public BusinessSystem getSystemByCode(String code);
/**
* 根据系统id获得系统
* @param code
* @return
*/
public BusinessSystem getSystemById(Long id);
/**
* 保存用户
* @param user
*/
@Deprecated
public void saveUser(com.norteksoft.acs.entity.organization.User user,UserInfo userInfo);
/**
* 保存用户
* @param user
*/
public void saveUser(User user);
/**
* 删除用户
* @param userId
*/
public void deleteUser(Long userId);
/**
* 保存部门
* @param department
*/
public void saveDepartment(Department department,Long companyId);
@Deprecated
public void saveDepartment(com.norteksoft.acs.entity.organization.Department department,Long companyId);
/**
* 保存部门
* @param department
*/
public void saveDepartment(Department department);
@Deprecated
public void saveDepartment(com.norteksoft.acs.entity.organization.Department department);
/**
* 删除部门
* @param departmentId
*/
public void deleteDepartment(Long departmentId);
/**
* 保存用户部门关系
* @param userIds 用户User的id的集合
* @param department 部门
*/
public void saveDepartmentUser(List<Long> userIds,Department department);
@Deprecated
public void saveDepartmentUser(List<Long> userIds,com.norteksoft.acs.entity.organization.Department department);
/**
* 查询当前用户的角色(不含委托)
* @return
*/
public String getCurrentUserRolesExcludeTrustedRole();
/**
* 查询指定用户的角色(不含委托)
* @return
*/
public String getUserRolesExcludeTrustedRole(Long userId);
/**
* 获得该公司的系统管理员(默认的系统管理员systemAdmin)
* @param companyId
* @return
*/
public String getSystemAdminLoginName();
/**
* 查询公司中所有人员登录名(不包含无部门人员)
* @param companyId
* @return
*/
public List<String> getLoginNamesByCompany(Long companyId);
/**
* 查询工作组所有人员
* @param companyId
* @return
*/
public List<String> getLoginNamesByWorkgroup(Long companyId);
/**
* 获得父部门
* @param departmentId
* @return
*/
public Department getParentDepartment(Long departmentId);
}