lyh
2025-07-04 42d170e952da0a012c1e82508a2516fcd6e56c6d
lxzn-module-system/lxzn-system-biz/src/main/java/org/jeecg/modules/system/service/impl/SysUserServiceImpl.java
@@ -25,6 +25,7 @@
import org.jeecg.modules.system.model.SysUserSysDepartModel;
import org.jeecg.modules.system.service.ISysDictService;
import org.jeecg.modules.system.service.ISysUserService;
import org.jeecg.modules.system.vo.EamUserRepDepVo;
import org.jeecg.modules.system.vo.MdcUserProVo;
import org.jeecg.modules.system.vo.SysUserDepVo;
import org.jeecg.modules.system.vo.UserSelector;
@@ -79,6 +80,8 @@
   SysRoleIndexMapper sysRoleIndexMapper;
   @Resource
   MdcUserProductionMapper mdcUserProductionMapper;
   @Resource
   EamBaseRepairDepartUserMapper eamBaseRepairDepartUserMapper;
   @Resource
   private ISysDictService sysDictService;
@@ -570,7 +573,7 @@
   @Override
   @Transactional(rollbackFor = Exception.class)
   public void saveUser(SysUser user, String selectedRoles, String selectedDeparts, String selectedProductions) {
   public void saveUser(SysUser user, String selectedRoles, String selectedDeparts, String selectedProductions, String selectedRepairDeparts) {
      //step.1 保存用户
      this.save(user);
      //step.2 保存角色
@@ -597,12 +600,20 @@
            mdcUserProductionMapper.insert(mdcUserProduction);
         }
      }
      //step.5 保存所属维修部门
      if (oConvertUtils.isNotEmpty(selectedRepairDeparts)) {
         String[] arr = selectedRepairDeparts.split(",");
         for (String repairDepartId : arr) {
            EamBaseRepairDepartUser eamBaseRepairDepartUser = new EamBaseRepairDepartUser(user.getId(), repairDepartId);
            eamBaseRepairDepartUserMapper.insert(eamBaseRepairDepartUser);
         }
      }
   }
   @Override
   @Transactional(rollbackFor = Exception.class)
   @CacheEvict(value={CacheConstant.SYS_USERS_CACHE}, allEntries=true)
   public void editUser(SysUser user, String roles, String departs, String productions) {
   public void editUser(SysUser user, String roles, String departs, String productions, String repairDeparts) {
      //step.1 修改用户基础信息
      this.updateById(user);
      //step.2 修改角色
@@ -658,6 +669,19 @@
            mdcUserProductionMapper.insert(mdcUserProduction);
         }
      }
      //step.5 修改维修部门
      String[] arrayRepDep = {};
      if(oConvertUtils.isNotEmpty(repairDeparts)){
         arrayRepDep = repairDeparts.split(",");
      }
      //先删后加
      eamBaseRepairDepartUserMapper.delete(new QueryWrapper<EamBaseRepairDepartUser>().lambda().eq(EamBaseRepairDepartUser::getUserId, user.getId()));
      if (oConvertUtils.isNotEmpty(repairDeparts)) {
         for (String repairDepartId : arrayRepDep) {
            EamBaseRepairDepartUser eamBaseRepairDepartUser = new EamBaseRepairDepartUser(user.getId(), repairDepartId);
            eamBaseRepairDepartUserMapper.insert(eamBaseRepairDepartUser);
         }
      }
      //step.5 修改手机号和邮箱
      // 更新手机号、邮箱空字符串为 null
      userMapper.updateNullByEmptyString("email");
@@ -704,6 +728,21 @@
      return res;
   }
   @Override
   public Map<String, String> getRepDepNamesByUserIds(List<String> userIds) {
      List<EamUserRepDepVo> list = this.baseMapper.getRepDepNamesByUserIds(userIds);
      Map<String, String> res = new HashMap<>(5);
      list.forEach(item -> {
         if (res.get(item.getUserId()) == null) {
            res.put(item.getUserId(), item.getRepairDepartName());
         } else {
            res.put(item.getUserId(), res.get(item.getUserId()) + "," + item.getRepairDepartName());
         }
      });
      return res;
   }
   // 根据角色Id查询该角色下的所有用户信息
   @Override
   public List<SysUser> getAllUsersByRoleId(String roleId) {
@@ -752,6 +791,31 @@
      return collect;
   }
   /**
    * 选择用户
    * @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;
   }
   @Override
   public List<UserSelector> selectOperatorList(String positionCode) {
      LambdaQueryWrapper<SysUser> queryWrapper = new LambdaQueryWrapper<>();