zhangherong
2025-07-11 0c929802702bca00b24b8c74f52723b21ba5b4c2
lxzn-module-system/lxzn-system-biz/src/main/java/org/jeecg/modules/system/service/impl/SysUserServiceImpl.java
@@ -1,5 +1,6 @@
package org.jeecg.modules.system.service.impl;
import cn.hutool.core.collection.CollectionUtil;
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
import com.baomidou.mybatisplus.core.metadata.IPage;
@@ -23,6 +24,7 @@
import org.jeecg.modules.system.entity.*;
import org.jeecg.modules.system.mapper.*;
import org.jeecg.modules.system.model.SysUserSysDepartModel;
import org.jeecg.modules.system.service.IBaseFactoryService;
import org.jeecg.modules.system.service.ISysDictService;
import org.jeecg.modules.system.service.ISysUserService;
import org.jeecg.modules.system.vo.EamUserRepDepVo;
@@ -52,31 +54,31 @@
@Slf4j
public class SysUserServiceImpl extends ServiceImpl<SysUserMapper, SysUser> implements ISysUserService {
   @Autowired
    @Resource
   private SysUserMapper userMapper;
   @Autowired
    @Resource
   private SysPermissionMapper sysPermissionMapper;
   @Autowired
    @Resource
   private SysUserRoleMapper sysUserRoleMapper;
   @Autowired
    @Resource
   private SysUserDepartMapper sysUserDepartMapper;
   @Autowired
    @Resource
   private SysDepartMapper sysDepartMapper;
   @Autowired
    @Resource
   private SysRoleMapper sysRoleMapper;
   @Autowired
    @Resource
   private SysDepartRoleUserMapper departRoleUserMapper;
   @Autowired
    @Resource
   private SysDepartRoleMapper sysDepartRoleMapper;
   @Resource
   private BaseCommonService baseCommonService;
   @Autowired
    @Resource
   private SysThirdAccountMapper sysThirdAccountMapper;
   @Autowired
   ThirdAppWechatEnterpriseServiceImpl wechatEnterpriseService;
   @Autowired
   ThirdAppDingtalkServiceImpl dingtalkService;
   @Autowired
    @Resource
   SysRoleIndexMapper sysRoleIndexMapper;
   @Resource
   MdcUserProductionMapper mdcUserProductionMapper;
@@ -84,6 +86,8 @@
   EamBaseRepairDepartUserMapper eamBaseRepairDepartUserMapper;
   @Resource
   private ISysDictService sysDictService;
    @Autowired
    private IBaseFactoryService factoryService;
    @Override
    @CacheEvict(value = {CacheConstant.SYS_USERS_CACHE}, allEntries = true)
@@ -185,6 +189,7 @@
   /**
    * 获取动态首页路由配置
     *
    * @param username
    * @param version
    * @return
@@ -218,6 +223,7 @@
   /**
    * 通过用户名获取用户角色集合
     *
    * @param username 用户名
     * @return 角色集合
    */
@@ -254,10 +260,11 @@
   /**
    * 升级SpringBoot2.6.6,不允许循环依赖
    * @author:qinfeng
    * @update: 2022-04-07
     *
    * @param username
    * @return
     * @author:qinfeng
     * @update: 2022-04-07
    */
   @Override
   public SysUserCacheInfo getCacheUser(String username) {
@@ -296,6 +303,7 @@
    /**
     * 根据部门Id查询
     *
     * @param page
     * @param departId 部门id
     * @param username 用户账户名称
@@ -352,6 +360,7 @@
    /**
     * 根据角色Id查询
     *
     * @param page
     * @param roleId 角色id
     * @param username 用户账户名称
@@ -364,6 +373,7 @@
   /**
    * 根据设备车间管理Id查询
     *
    * @param page
    * @param baseFactoryId 设备车间管理Id
    * @return
@@ -444,6 +454,7 @@
   /**
      * 校验用户是否有效
     *
    * @param sysUser
    * @return
    */
@@ -774,46 +785,30 @@
   }
   @Override
   public List<UserSelector> selectOperatorList(String equipmentCode, String productionId, String positionCode) {
    public List<UserSelector> selectOperatorList(String equipmentCode, String factoryOrgCode, String positionCode) {
      LambdaQueryWrapper<SysUser> queryWrapper = new LambdaQueryWrapper<>();
      queryWrapper.eq(SysUser::getPost, positionCode);
      if(StringUtils.isNotBlank(equipmentCode)) {
         queryWrapper.and(q -> q.isNull(SysUser::getEquipmentIds).or().eq(SysUser::getEquipmentIds, "").or().like(SysUser::getEquipmentIds, equipmentCode));
            queryWrapper.and(q -> q.isNull(SysUser::getEamEquipmentIds).or().eq(SysUser::getEquipmentIds, "").or().like(SysUser::getEamEquipmentIds, equipmentCode));
      }
      if(StringUtils.isNotBlank(productionId)) {
         queryWrapper.exists("select 1 from mdc_user_production t where t.user_id=sys_user.id and t.pro_id={0}", productionId);
        if (StringUtils.isNotBlank(factoryOrgCode)) {
            List<String> factoryIds = factoryService.queryFactoryIdsByOrgCode(factoryOrgCode);
            if (CollectionUtil.isNotEmpty(factoryIds)) {
                String factory = String.join(",", factoryIds);
                String inClause = "(" + factory + ")";
                queryWrapper.exists("select 1 from eam_base_factory_user t where t.user_id=sys_user.id and t.factory_id in {0}", inClause);
            } else {
                return Collections.emptyList();
            }
      }
      queryWrapper.eq(SysUser::getDelFlag, CommonConstant.DEL_FLAG_0);
      queryWrapper.eq(SysUser::getStatus, CommonConstant.DEL_FLAG_1);
      queryWrapper.orderByDesc(SysUser::getId);
      List<SysUser> sysUsers = userMapper.selectList(queryWrapper);
      List<UserSelector> collect = sysUsers.stream().map(user -> new UserSelector(user.getId(), user.getUsername(), user.getRealname())).collect(Collectors.toList());
      return collect;
        if (CollectionUtil.isEmpty(sysUsers)) {
            return Collections.emptyList();
   }
   /**
    * 选择用户
    * @param equipmentCode 选择的设备ID
    * @param factoryId 选择的工厂ID
    * @param positionCode 岗位编号
    * @return
    */
   @Override
   public List<UserSelector> selectOperatorFactoryList(String equipmentCode, String factoryId, String positionCode){
      LambdaQueryWrapper<SysUser> queryWrapper = new LambdaQueryWrapper<>();
      queryWrapper.eq(SysUser::getPost, positionCode);
//      if(StringUtils.isNotBlank(equipmentCode)) {
//         queryWrapper.and(q -> q.isNull(SysUser::getEquipmentIds).or().eq(SysUser::getEquipmentIds, "").or().like(SysUser::getEquipmentIds, equipmentCode));
//      }
//      if(StringUtils.isNotBlank(factoryId)) {
//         queryWrapper.exists("select 1 from eam_base_factory_user t where t.user_id=sys_user.id and t.factory_id={0}", factoryId);
//      }
      queryWrapper.eq(SysUser::getDelFlag, CommonConstant.DEL_FLAG_0);
      queryWrapper.eq(SysUser::getStatus, CommonConstant.DEL_FLAG_1);
      queryWrapper.orderByDesc(SysUser::getId);
      List<SysUser> sysUsers = userMapper.selectList(queryWrapper);
      List<UserSelector> collect = sysUsers.stream().map(user -> new UserSelector(user.getId(), user.getUsername(), user.getRealname())).collect(Collectors.toList());
      return collect;
        return sysUsers.stream().map(user -> new UserSelector(user.getId(), user.getUsername(), user.getRealname())).collect(Collectors.toList());
   }
   @Override