package com.artfess.uc.manager; import com.artfess.base.manager.BaseManager; import com.artfess.base.model.CommonResult; import com.artfess.base.query.QueryFilter; import com.artfess.uc.model.OrgUser; import com.artfess.uc.params.user.UserPolymerOrgPos; import com.baomidou.mybatisplus.core.metadata.IPage; import java.sql.SQLException; import java.time.LocalDateTime; import java.util.HashMap; import java.util.List; import java.util.Map; /** * *
 * 描述:用户组织关系 处理接口
 * 构建组:x5-bpmx-platform
 * 作者:ray
 * 邮箱:zhangyg@jee-soft.cn
 * 日期:2016-06-30 10:27:31
 * 版权:广州宏天软件有限公司
 * 
*/ public interface OrgUserManager extends BaseManager{ /** * 删除所有已逻辑删除的实体(物理删除) * @param entityId 实体对象ID */ Integer removePhysical(); int updateUserPost(String id, String relId); /** * 根据组织用户和关系id查找关联关系。 * @param orgId * @param userId * @param relId * @return */ OrgUser getOrgUser(String orgId,String userId,String relId); /** * 根据用户和组织ID获取关联关系。 * @param orgId * @param userId * @return */ List getListByOrgIdUserId(String orgId, String userId); /** * 获取指定用户的主岗位/主组织 *

优先获取默认维度的主岗位/主组织,没有时获取其他维度的。

* @param userId * @return */ OrgUser getMainPostOrOrgByUserId(String userId); /** * 获取用户的主岗位组织关系 * @return */ List getOrgUserMaster(String userId,String demId); int removeByOrgIdUserId(String orgId,String userId); /** * 设置主组织关系。 * @param id 主键 * @return * @throws SQLException */ void setMaster(String ... id) throws SQLException; /** * 设置部门负责人,同一个用户只能是某个组织的主负责人或负责人 * 不能既是主负责人又是负责人 * @param userId 用户id * * @param isCharge false为取消操作,true为设置操作 * @param orgId 组织id * @throws SQLException */ void setCharge(String userId,Boolean isCharge, String orgId) throws SQLException; /** * 根据queryfilter查询部门或岗位下的人员。 * @param queryFilter * @return */ @SuppressWarnings("rawtypes") public IPage> getUserByGroup(QueryFilter queryFilter) ; /** * 根据组织ID获取组织的负责人组织关系 * @param orgId 组织ID * @param isMain 是否获取主负责人(只有一个) * @return */ public List getChargesByOrgId(String orgId,Boolean isMain); /** * 检测所有岗位的有效性 */ void syncValidOrgUser(); /** * 根据组织id删除用户组织关系 * @param orgId */ void delByOrgId(String orgId); /** * 获取组织人员关系 * map中可以传orgId,userId,relId(岗位id),isMaster,isCharge * @param map * @return */ List getByParms(Map params); /** * 保存用户所属组织、岗位(排他性保存,除了传入的组织和岗位,其他数据会被删除) * @param account * @param orgPoses * @throws Exception */ void saveOrgUser(String account, List orgsPoses) throws Exception; /** * 检查岗位是否在设置的有效期内 * @param date */ void checkIsInActiveTime(LocalDateTime date); /** * * @param filter * @return */ @SuppressWarnings("rawtypes") IPage getUserOrgPage(QueryFilter filter); /** * 根据组织id和用户id删除组织下的用户,并岗位id为空 */ CommonResult deleteOrgById(String orgId, String userId) throws Exception; /** * 设置主岗位 * @param ids */ void setMasterByIds(String ... ids); /** * 获取用户id岗位总数 * @param queryFilter * @return */ List getUserByGroupList(QueryFilter queryFilter); List> getUserNumByOrgCode(Map map); void updateUserOrgByPostId(String id, String orgId); List getOrgUserData(QueryFilter queryFilter); void removeByUserId(String id, LocalDateTime now); Object getChargesByOrgId(String orgId, int i); List getByOrgCodeAndroleCode(String orgCode, String roleCode); List getByPostCodeAndOrgCode(String orgCode, String postCode); /** * 根据用户id删除用户的组织、岗位关系数据 * @param userId */ void delByUserId(String userId); /** * 批量插入 * @param list * @return */ boolean insertBatch(List list); /** * 删除多余用户和组织的关系数据(导入时导致的) */ void removeMores(); //根据Key获取当前用户的组织岗位信息存入redis String getCacheByKeyOrgPost(String userId); /** * 根据用户Id 查询出用户的职务和岗位数据 * @param userId 用户Id * @return */ List getListPostAndJob(String userId); /** * 删除用户主组织缓存 * @param userId */ void removeUserMainOrgCache(String userId); /** * 删除用户主组织缓存 * @param userId */ void removeUserMainOrgCache(String demId,String userId); }