zhangherong
2025-04-07 d465f6537bda4c5b3844a15b73badf704f44c9a1
lxzn-module-system/lxzn-system-biz/src/main/java/org/jeecg/modules/system/service/impl/SysUserServiceImpl.java
@@ -6,6 +6,7 @@
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
import lombok.extern.slf4j.Slf4j;
import org.apache.commons.lang3.StringUtils;
import org.jeecg.common.api.vo.Result;
import org.jeecg.common.constant.CacheConstant;
import org.jeecg.common.constant.CommonConstant;
@@ -26,6 +27,7 @@
import org.jeecg.modules.system.service.ISysUserService;
import org.jeecg.modules.system.vo.MdcUserProVo;
import org.jeecg.modules.system.vo.SysUserDepVo;
import org.jeecg.modules.system.vo.UserSelector;
import org.springframework.beans.BeanUtils;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.cache.annotation.CacheEvict;
@@ -48,7 +50,7 @@
@Service
@Slf4j
public class SysUserServiceImpl extends ServiceImpl<SysUserMapper, SysUser> implements ISysUserService {
   @Autowired
   private SysUserMapper userMapper;
   @Autowired
@@ -79,6 +81,10 @@
   MdcUserProductionMapper mdcUserProductionMapper;
   @Resource
   private ISysDictService sysDictService;
   @Resource
   private MdcProductionEquipmentMapper mdcProductionEquipmentMapper;
   @Resource
   private DncDevicePermissionMapper dncDevicePermissionMapper;
    @Override
    @CacheEvict(value = {CacheConstant.SYS_USERS_CACHE}, allEntries = true)
@@ -141,8 +147,8 @@
   public SysUser getUserByName(String username) {
      return userMapper.getUserByName(username);
   }
   @Override
   @Transactional(rollbackFor = Exception.class)
   public void addUserWithRole(SysUser user, String roles) {
@@ -203,7 +209,7 @@
            roleIndex = list.get(0);
         }
      }
      //如果componentUrl为空,则返回空
      if(oConvertUtils.isEmpty(roleIndex.getComponent())){
         return null;
@@ -269,7 +275,7 @@
         info.setSysUserName(sysUser.getRealname());
         info.setSysOrgCode(sysUser.getOrgCode());
      }
      //多部门支持in查询
      List<SysDepart> list = sysDepartMapper.queryUserDeparts(sysUser.getId());
      List<String> sysMultiOrgCode = new ArrayList<String>();
@@ -285,7 +291,7 @@
         }
      }
      info.setSysMultiOrgCode(sysMultiOrgCode);
      return info;
   }
@@ -577,12 +583,24 @@
            sysUserDepartMapper.insert(userDeaprt);
         }
      }
      String[] arr = {};
      //step.4 保存所属产线
      if (oConvertUtils.isNotEmpty(selectedProductions)) {
         String[] arr = selectedProductions.split(",");
         arr = selectedProductions.split(",");
         for (String productionId : arr) {
            MdcUserProduction mdcUserProduction = new MdcUserProduction(user.getId(), productionId);
            mdcUserProductionMapper.insert(mdcUserProduction);
         }
      }
      //step.5 保存设备权限
      List<String> EquipmentIds= mdcProductionEquipmentMapper.selectList(new QueryWrapper<MdcProductionEquipment>().in("production_id",arr))
            .stream().map(MdcProductionEquipment::getEquipmentId).collect(Collectors.toList());
      if (oConvertUtils.isNotEmpty(EquipmentIds)) {
         for (String equipmentId : EquipmentIds) {
            DncDevicePermission dncDevicePermission=new DncDevicePermission();
            dncDevicePermission.setDeviceId(equipmentId);
            dncDevicePermission.setUserId(user.getId());
            dncDevicePermissionMapper.insert(dncDevicePermission);
         }
      }
   }
@@ -646,7 +664,20 @@
            mdcUserProductionMapper.insert(mdcUserProduction);
         }
      }
      //step.5 修改手机号和邮箱
      //step.5 修改设备权限
      //先删后加
      dncDevicePermissionMapper.delete(new QueryWrapper<DncDevicePermission>().lambda().eq(DncDevicePermission::getUserId, user.getId()));
      List<String> EquipmentIds= mdcProductionEquipmentMapper.selectList(new QueryWrapper<MdcProductionEquipment>().in("production_id",array))
            .stream().map(MdcProductionEquipment::getEquipmentId).collect(Collectors.toList());
      if (oConvertUtils.isNotEmpty(EquipmentIds)) {
         for (String equipmentId : EquipmentIds) {
            DncDevicePermission dncDevicePermission=new DncDevicePermission();
            dncDevicePermission.setDeviceId(equipmentId);
            dncDevicePermission.setUserId(user.getId());
            dncDevicePermissionMapper.insert(dncDevicePermission);
         }
      }
      //step.6 修改手机号和邮箱
      // 更新手机号、邮箱空字符串为 null
      userMapper.updateNullByEmptyString("email");
      userMapper.updateNullByEmptyString("phone");
@@ -713,4 +744,24 @@
   public List<SysUser> getEquipmentAdmin(String roleCode, String equipmentId) {
      return this.baseMapper.getEquipmentAdmin(roleCode, equipmentId);
   }
   @Override
   public List<UserSelector> selectOperatorList(String equipmentId, String productionId, String positionCode) {
      LambdaQueryWrapper<SysUser> queryWrapper = new LambdaQueryWrapper<>();
      queryWrapper.eq(SysUser::getPost, positionCode);
      if(StringUtils.isNotBlank(equipmentId)) {
         queryWrapper.isNull(SysUser::getEquipmentIds);
         queryWrapper.or().eq(SysUser::getEquipmentIds, "");
         queryWrapper.or().like(SysUser::getEquipmentIds, equipmentId);
      }
      if(StringUtils.isNotBlank(productionId)) {
         queryWrapper.exists("select 1 from mdc_user_production t where t.user_id=id and t.pro_id={0}", productionId);
      }
      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;
   }
}