From 2027d9e8f84ee1e2bbaa8462be6275d7d95748b8 Mon Sep 17 00:00:00 2001 From: zhangherong <571457620@qq.com> Date: 星期一, 07 四月 2025 16:31:36 +0800 Subject: [PATCH] art: 设备管理-用户选择-根据岗位选择用户 问题修改 --- lxzn-module-system/lxzn-system-biz/src/main/java/org/jeecg/modules/system/service/impl/SysUserServiceImpl.java | 67 +++++++++++++++++++++++++++++---- 1 files changed, 59 insertions(+), 8 deletions(-) diff --git a/lxzn-module-system/lxzn-system-biz/src/main/java/org/jeecg/modules/system/service/impl/SysUserServiceImpl.java b/lxzn-module-system/lxzn-system-biz/src/main/java/org/jeecg/modules/system/service/impl/SysUserServiceImpl.java index 106de85..41a8703 100644 --- a/lxzn-module-system/lxzn-system-biz/src/main/java/org/jeecg/modules/system/service/impl/SysUserServiceImpl.java +++ b/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()); } - + //澶氶儴闂ㄦ敮鎸乮n鏌ヨ 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 equipmentCode, String productionId, String positionCode) { + LambdaQueryWrapper<SysUser> queryWrapper = new LambdaQueryWrapper<>(); + queryWrapper.eq(SysUser::getPost, positionCode); + if(StringUtils.isNotBlank(equipmentCode)) { + queryWrapper.isNull(SysUser::getEquipmentIds); + queryWrapper.or().eq(SysUser::getEquipmentIds, ""); + queryWrapper.or().like(SysUser::getEquipmentIds, equipmentCode); + } + 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; + } } -- Gitblit v1.9.3