| package com.doumee.service.business.impl; | 
|   | 
| import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; | 
| import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; | 
| import com.baomidou.mybatisplus.core.conditions.update.UpdateWrapper; | 
| import com.baomidou.mybatisplus.core.metadata.IPage; | 
| import com.baomidou.mybatisplus.extension.plugins.pagination.Page; | 
| import com.doumee.core.constants.ResponseStatus; | 
| import com.doumee.core.exception.BusinessException; | 
| import com.doumee.core.model.LoginUserInfo; | 
| import com.doumee.core.model.PageData; | 
| import com.doumee.core.model.PageWrap; | 
| import com.doumee.core.utils.Constants; | 
| import com.doumee.core.utils.Utils; | 
| import com.doumee.dao.business.*; | 
| import com.doumee.dao.business.join.MemberRoleJoinMapper; | 
| import com.doumee.dao.business.model.DeviceRole; | 
| import com.doumee.dao.business.model.Empower; | 
| import com.doumee.dao.business.model.Member; | 
| import com.doumee.dao.business.model.MemberRole; | 
| import com.doumee.dao.web.response.DeviceRoleVO; | 
| import com.doumee.service.business.DeviceRoleService; | 
| import com.doumee.service.business.impl.hksync.ferp.HkSyncOrgUserToHKServiceImpl; | 
| import com.github.yulichang.wrapper.MPJLambdaWrapper; | 
| import lombok.extern.slf4j.Slf4j; | 
| import org.apache.commons.collections.CollectionUtils; | 
| import org.apache.commons.lang3.StringUtils; | 
| import org.apache.shiro.SecurityUtils; | 
| import org.springframework.beans.BeanUtils; | 
| import org.springframework.beans.factory.annotation.Autowired; | 
| import org.springframework.stereotype.Service; | 
|   | 
| import java.util.ArrayList; | 
| import java.util.Date; | 
| import java.util.List; | 
| import java.util.Objects; | 
|   | 
| /** | 
|  * 门禁角色信息表Service实现 | 
|  * @author 江蹄蹄 | 
|  * @date 2023/11/30 15:33 | 
|  */ | 
| @Service | 
| @Slf4j | 
| public class DeviceRoleServiceImpl implements DeviceRoleService { | 
|   | 
|     @Autowired | 
|     private DeviceRoleMapper deviceRoleMapper; | 
|     @Autowired | 
|     private MemberCardMapper memberCardMapper; | 
|     @Autowired | 
|     private EmpowerMapper empowerMapper; | 
|     @Autowired | 
|     private DeviceMapper deviceMapper; | 
|     @Autowired | 
|     private MemberRoleJoinMapper memberRoleMapper; | 
|     @Autowired | 
|     private MemberMapper memberMapper; | 
|   | 
|   | 
|     @Override | 
|     public Integer create(DeviceRole deviceRole) { | 
|         if(Objects.isNull(deviceRole) | 
|             || StringUtils.isBlank(deviceRole.getName()) | 
|             || Objects.isNull(deviceRole.getType()) | 
|             || Objects.isNull(deviceRole.getIsDefault()) | 
|         ){ | 
|             throw new BusinessException(ResponseStatus.BAD_REQUEST); | 
|         } | 
|         // 获取之前是否存在默认门禁组 | 
|         DeviceRole newDeviceRole = null; | 
|         if(null != deviceRole.getType()) { | 
|             newDeviceRole = getDeviceRole(deviceRole.getType()); | 
|         } | 
|         LoginUserInfo loginUserInfo = (LoginUserInfo)SecurityUtils.getSubject().getPrincipal(); | 
|         if(loginUserInfo ==null){ | 
|             loginUserInfo = deviceRole.getLoginUserInfo(); | 
|         } | 
|         if(null != newDeviceRole && deviceRole.getIsDefault().equals(Constants.ZERO)) { | 
|             DeviceRole updateDeviceRole = new DeviceRole(); | 
|             // 若现在新增数据设置默认门禁组;那么先把之前的默认门禁组状态改为不是默认的 | 
|             updateDeviceRole.setId(newDeviceRole.getId()); | 
|             updateDeviceRole.setEdirot(loginUserInfo.getId().toString()); | 
|             updateDeviceRole.setEditDate(new Date()); | 
|             updateDeviceRole.setIsDefault(Constants.ONE); | 
|             deviceRoleMapper.updateById(updateDeviceRole); | 
|         } | 
|         DeviceRole insert = new DeviceRole(); | 
|         insert.setCreator(loginUserInfo.getId().toString()); | 
|         insert.setCreateDate(new Date()); | 
|         insert.setEdirot(loginUserInfo.getId().toString()); | 
|         insert.setEditDate(new Date()); | 
|         insert.setIsdeleted(Constants.ZERO); | 
|         insert.setRemark(deviceRole.getRemark()); | 
|         insert.setName(deviceRole.getName()); | 
|         insert.setIsDefault(deviceRole.getIsDefault()); | 
|         insert.setType(deviceRole.getType()); | 
|         insert.setDoorIds(deviceRole.getDoorIds()); | 
|         insert.setDoorNames(deviceRole.getDoorNames()); | 
|         insert.setParkIds(deviceRole.getParkIds()); | 
|         insert.setParkNames(deviceRole.getParkNames()); | 
|         insert.setStatus(deviceRole.getStatus()); | 
|         insert.setHkId(deviceRole.getHkId()); | 
|         insert.setHkStatus(deviceRole.getHkStatus()); | 
|         insert.setHkDate(deviceRole.getHkDate()); | 
|   | 
|         deviceRoleMapper.insert(insert); | 
|         return insert.getId(); | 
|     } | 
|   | 
|     @Override | 
|     public void deleteById(Integer id) { | 
|         deviceRoleMapper.deleteById(id); | 
|     } | 
|   | 
|     @Override | 
|     public void delete(DeviceRole deviceRole) { | 
|         UpdateWrapper<DeviceRole> deleteWrapper = new UpdateWrapper<>(deviceRole); | 
|         deviceRoleMapper.delete(deleteWrapper); | 
|     } | 
|   | 
|     @Override | 
|     public void deleteByIdInBatch(List<Integer> ids) { | 
|         if (CollectionUtils.isEmpty(ids)) { | 
|             return; | 
|         } | 
|         deviceRoleMapper.deleteBatchIds(ids); | 
|     } | 
|   | 
|     @Override | 
|     public void updateById(DeviceRole deviceRole) { | 
|         DeviceRole model = deviceRoleMapper.selectById(deviceRole.getId()); | 
|         if(model == null){ | 
|             throw new BusinessException(ResponseStatus.DATA_EMPTY); | 
|         } | 
|         DeviceRole newDeviceRole = null; | 
|         if(null != deviceRole.getType()) { | 
|             newDeviceRole = getDeviceRole(deviceRole.getType()); | 
|         } | 
|         LoginUserInfo loginUserInfo = (LoginUserInfo)SecurityUtils.getSubject().getPrincipal(); | 
|         if(loginUserInfo ==null){ | 
|             loginUserInfo = deviceRole.getLoginUserInfo(); | 
|         } | 
|         if(null != newDeviceRole  && deviceRole.getIsDefault().equals(Constants.ZERO)) { | 
|             DeviceRole update = new DeviceRole(); | 
|             update.setEdirot(loginUserInfo.getId().toString()); | 
|             update.setEditDate(new Date()); | 
|             update.setId(newDeviceRole.getId()); | 
|             update.setIsDefault(Constants.ONE); | 
|             deviceRoleMapper.updateById(update); | 
|         } | 
|        int t = deviceRoleMapper.updateById(deviceRole); | 
|        if(t>0){ | 
|             Thread tt = new Thread(new Runnable() { | 
|                 @Override | 
|                 public void run() { | 
|                     try { | 
|                         startUpdateMemberEmpower(model,deviceRole); | 
|                     }catch (Exception e){ | 
|                         log.error("======门禁分组修改,更新人员权限失败==="+e.getMessage()); | 
|                     } | 
|                 } | 
|             }); | 
|             tt.start(); | 
|        } | 
|     } | 
|     @Override | 
|     public  void updateMemberRole(DeviceRole deviceRole) { | 
|         deviceRole.setType("2"); | 
|         deviceRole.setIsdeleted(Constants.ZERO); | 
|         List<DeviceRole> list =findList(deviceRole); | 
|         if(list == null || list.size()==0){ | 
|             throw new BusinessException(ResponseStatus.DATA_EMPTY); | 
|         } | 
|         for(DeviceRole model :list){ | 
|             updateMemberRoleDO(model); | 
|         } | 
|     } | 
|     public  void updateMemberRoleDO(DeviceRole model) { | 
|         if(model.getDoorIds()  == null){ | 
|             throw new BusinessException(ResponseStatus.DATA_EMPTY); | 
|         } | 
|         String[] newIds =StringUtils.defaultString(model.getDoorIds()).split(","); | 
|         List<Integer>  allids = getChangeIdsByArray(new String[]{},newIds);//最新设备 | 
|         List<MemberRole> memberRoleList = memberRoleMapper.selectList(new QueryWrapper<MemberRole>().lambda() | 
|                 .eq(MemberRole::getRoleId,model.getId()) | 
|                 .eq(MemberRole::getIsdeleted,Constants.ZERO) | 
|         ); | 
|         if(memberRoleList!=null && memberRoleList.size()>0) { | 
|             int num =1; | 
|             for (MemberRole memberRole : memberRoleList) { | 
|                 Member member = memberMapper.selectById(memberRole.getMemberId()); | 
|                 if(member==null || member.getIsdeleted().equals(Constants.ONE)){ | 
|                     continue; | 
|                 } | 
|                 List<Integer>  addIds = new ArrayList<>(); | 
|                 for(Integer did : allids){ | 
|                     Empower empower = empowerMapper.selectOne(new QueryWrapper<Empower>().lambda() | 
|                             .eq(Empower::getMemberId,member.getId()) | 
|                             .eq(Empower::getDeviceId,did ) | 
|                             .orderByDesc(Empower::getId) | 
|                             .last("limit 1")); | 
|                     if(empower ==null || Constants.equalsInteger(empower.getIsdeleted(),Constants.ONE)){ | 
|                         addIds.add(did); | 
|                     } | 
|                 } | 
|                 try { | 
|                     HkSyncOrgUserToHKServiceImpl.dealChangeDeviceRoleEmpower(member,addIds,null,deviceRoleMapper,empowerMapper,deviceMapper); | 
|                 }catch (Exception e){ | 
|                     e.printStackTrace(); | 
|                 } | 
|                 System.out.println("正在处理【"+model.getName()+"】======门禁数据【"+addIds.size()+"】====进度:【"+num+"|"+memberRoleList.size()+"】"); | 
|                 num ++; | 
|             } | 
|         } | 
|     } | 
|   | 
|     /** | 
|      * 更新该权限下相关的人员最新全新下发 | 
|      * @param model | 
|      * @param deviceRole | 
|      */ | 
|     private void startUpdateMemberEmpower(DeviceRole model, DeviceRole deviceRole) { | 
|         String[] ids = StringUtils.defaultString(model.getDoorIds()).split(","); | 
|         String[] newIds =StringUtils.defaultString(deviceRole.getDoorIds()).split(","); | 
|         List<Integer>  delIds = getChangeIdsByArray(newIds,ids);//删除的设备 | 
|         List<Integer>  addIds = getChangeIdsByArray(ids,newIds);//最新设备 | 
|         if((addIds==null ||addIds.size()==0)&&( delIds ==null || delIds.size() == 0 )){ | 
|             //如果没有变化,不做处理 | 
|             return; | 
|         } | 
|         List<Integer>  allids = getChangeIdsByArray(new String[]{},newIds);//最新设备 | 
|         List<MemberRole> memberRoleList = memberRoleMapper.selectList(new QueryWrapper<MemberRole>().lambda() | 
|                 .eq(MemberRole::getRoleId,model.getId()) | 
|                 .eq(MemberRole::getIsdeleted,Constants.ZERO) | 
|         ); | 
|         if(memberRoleList!=null && memberRoleList.size()>0){ | 
|             for(MemberRole memberRole : memberRoleList){ | 
|                 //如果有人员授权了该权限 | 
|                 Member member = memberMapper.selectById(memberRole.getMemberId()); | 
|                 if(member==null || member.getIsdeleted().equals(Constants.ONE)){ | 
|                     continue; | 
|                 } | 
|                 MPJLambdaWrapper<MemberRole> queryWrapper = new MPJLambdaWrapper<>(); | 
|                 queryWrapper.leftJoin(DeviceRole.class,DeviceRole::getId,MemberRole::getRoleId ); | 
|                 queryWrapper.selectAll(MemberRole.class) | 
|                         .selectAs(DeviceRole::getDoorIds, MemberRole::getDoorIds) | 
|                         .eq(MemberRole::getMemberId,memberRole.getMemberId()) | 
|                         .eq(MemberRole::getIsdeleted,Constants.ZERO) | 
|                         .ne(MemberRole::getRoleId,deviceRole.getId()); | 
|                 List<MemberRole> tLis = memberRoleMapper.selectJoinList(MemberRole.class,queryWrapper); | 
|                 List<Integer>  actDelIds = getActChangeDoorIds(tLis,delIds); | 
|                 List<Integer>  actAddIds = getActChangeDoorIds(tLis,allids); | 
|                 HkSyncOrgUserToHKServiceImpl.dealChangeDeviceRoleEmpower(member,actAddIds,actDelIds,deviceRoleMapper,empowerMapper,deviceMapper); | 
|             } | 
|         } | 
|     } | 
|   | 
|     /** | 
|      * 根据用户当前最新的门禁角色,查询实际应该删除或者增加的门禁点权限 | 
|      * @param tLis | 
|      * @param changeIds | 
|      * @return | 
|      */ | 
|     private List<Integer> getActChangeDoorIds(List<MemberRole> tLis, List<Integer> changeIds) { | 
|         List<Integer> list = new ArrayList<>(); | 
|         for(MemberRole memberRole : tLis){ | 
|             String[] ids = StringUtils.defaultString(memberRole.getDoorIds()).split(","); | 
|             if(ids!=null && ids.length>0){ | 
|                 for (String s:ids){ | 
|                     list.add(Integer.parseInt(s)); | 
|                 } | 
|             } | 
|         } | 
|         List<Integer> actList = new ArrayList<>(); | 
|         if(list.size()>0){ | 
|             Flag: | 
|             for (Integer t : changeIds){ | 
|                 for (Integer tt : list){ | 
|                     if(Constants.equalsInteger(t,tt)){ | 
|                         continue Flag; | 
|                     } | 
|                 } | 
|                 actList.add(t); | 
|             } | 
|         } | 
|         return  actList; | 
|     } | 
|   | 
|     private List<Integer> getChangeIdsByArray(String[] ids, String[] newIds) { | 
|         List<Integer> list = new ArrayList<>(); | 
|         if(newIds!=null){ | 
|             FLAG : | 
|             for(String s :newIds){ | 
|                 for(String s1 :ids){ | 
|                     if(StringUtils.equals(s,s1)){ | 
|                         continue FLAG; | 
|                     } | 
|                 } | 
|                 try { | 
|                     list.add(Integer.parseInt(s)); | 
|                 }catch (Exception e){ | 
|                         e.printStackTrace(); | 
|                 } | 
|             } | 
|         } | 
|         return list; | 
|     } | 
|     @Override | 
|     public void updateStatusById(DeviceRole deviceRole) { | 
|         // 获取之前是否存在默认门禁组 | 
|         DeviceRole newDeviceRole = null; | 
|         if(null != deviceRole.getType()) { | 
|             newDeviceRole = getDeviceRole(deviceRole.getType()); | 
|         } | 
|         LoginUserInfo loginUserInfo = (LoginUserInfo)SecurityUtils.getSubject().getPrincipal(); | 
|         if(loginUserInfo ==null){ | 
|             loginUserInfo = deviceRole.getLoginUserInfo(); | 
|         } | 
|         List<DeviceRole> deviceRoleList = new ArrayList<>(); | 
|         if(null != newDeviceRole) { | 
|             DeviceRole update = new DeviceRole(); | 
|             update.setEdirot(loginUserInfo.getId().toString()); | 
|             update.setEditDate(new Date()); | 
|             update.setId(newDeviceRole.getId()); | 
|             update.setStatus(newDeviceRole.getStatus()); | 
|             update.setIsDefault(Constants.ONE); | 
|             deviceRoleList.add(update); | 
|         } | 
|         DeviceRole updateTwo = new DeviceRole(); | 
|         updateTwo.setEdirot(loginUserInfo.getId().toString()); | 
|         updateTwo.setEditDate(new Date()); | 
|         updateTwo.setId(deviceRole.getId()); | 
|         updateTwo.setStatus(deviceRole.getStatus()); | 
|         updateTwo.setIsDefault(deviceRole.getIsDefault()); | 
|         deviceRoleList.add(updateTwo); | 
|         // 最多2条,所有就没有写批量修改了 | 
|         for (DeviceRole data:deviceRoleList) { | 
|             deviceRoleMapper.updateById(data); | 
|         } | 
|     } | 
|   | 
|     private DeviceRole getDeviceRole(String type) { | 
|         LambdaQueryWrapper<DeviceRole> query = new LambdaQueryWrapper<>(); | 
|         query.eq(DeviceRole::getIsdeleted,Constants.ZERO) | 
|                 .eq(DeviceRole::getIsDefault,Constants.ZERO) | 
|                 .eq(DeviceRole::getType,type) | 
|                 .last(" limit 1"); | 
|         // 查询是否有默认门禁组,只能有一组默认门禁组 | 
|         DeviceRole getDeviceRole = deviceRoleMapper.selectOne(query); | 
|         return getDeviceRole; | 
|     } | 
|   | 
|     @Override | 
|     public void updateByIdInBatch(List<DeviceRole> deviceRoles) { | 
|         if (CollectionUtils.isEmpty(deviceRoles)) { | 
|             return; | 
|         } | 
|         for (DeviceRole deviceRole: deviceRoles) { | 
|             this.updateById(deviceRole); | 
|         } | 
|     } | 
|   | 
|     @Override | 
|     public DeviceRole findById(Integer id) { | 
|         return deviceRoleMapper.selectById(id); | 
|     } | 
|   | 
|     @Override | 
|     public DeviceRole findOne(DeviceRole deviceRole) { | 
|         QueryWrapper<DeviceRole> wrapper = new QueryWrapper<>(deviceRole); | 
|         return deviceRoleMapper.selectOne(wrapper); | 
|     } | 
|   | 
|     @Override | 
|     public List<DeviceRole> findList(DeviceRole deviceRole) { | 
|         deviceRole.setIsdeleted(Constants.ZERO); | 
|         QueryWrapper<DeviceRole> wrapper = new QueryWrapper<>(deviceRole); | 
|         return deviceRoleMapper.selectList(wrapper); | 
|     } | 
|   | 
|     @Override | 
|     public PageData<DeviceRole> findPage(PageWrap<DeviceRole> pageWrap) { | 
|         IPage<DeviceRole> page = new Page<>(pageWrap.getPage(), pageWrap.getCapacity()); | 
|         QueryWrapper<DeviceRole> queryWrapper = new QueryWrapper<>(); | 
|         Utils.MP.blankToNull(pageWrap.getModel()); | 
|         pageWrap.getModel().setIsdeleted(Constants.ZERO); | 
|         queryWrapper.select("*,(select count(1) from member_role b where b.isdeleted=0 and b.role_id=device_role.id ) as memberNum"); | 
|         if (pageWrap.getModel().getId() != null) { | 
|             queryWrapper.lambda().eq(DeviceRole::getId, pageWrap.getModel().getId()); | 
|         } | 
|         if (pageWrap.getModel().getCreator() != null) { | 
|             queryWrapper.lambda().eq(DeviceRole::getCreator, pageWrap.getModel().getCreator()); | 
|         } | 
|         if (pageWrap.getModel().getCreateDate() != null) { | 
|             queryWrapper.lambda().ge(DeviceRole::getCreateDate, Utils.Date.getStart(pageWrap.getModel().getCreateDate())); | 
|             queryWrapper.lambda().le(DeviceRole::getCreateDate, Utils.Date.getEnd(pageWrap.getModel().getCreateDate())); | 
|         } | 
|         if (pageWrap.getModel().getEdirot() != null) { | 
|             queryWrapper.lambda().eq(DeviceRole::getEdirot, pageWrap.getModel().getEdirot()); | 
|         } | 
|         if (pageWrap.getModel().getEditDate() != null) { | 
|             queryWrapper.lambda().ge(DeviceRole::getEditDate, Utils.Date.getStart(pageWrap.getModel().getEditDate())); | 
|             queryWrapper.lambda().le(DeviceRole::getEditDate, Utils.Date.getEnd(pageWrap.getModel().getEditDate())); | 
|         } | 
|         if (pageWrap.getModel().getIsdeleted() != null) { | 
|             queryWrapper.lambda().eq(DeviceRole::getIsdeleted, pageWrap.getModel().getIsdeleted()); | 
|         } | 
|         if (pageWrap.getModel().getRemark() != null) { | 
|             queryWrapper.lambda().eq(DeviceRole::getRemark, pageWrap.getModel().getRemark()); | 
|         } | 
|         if (pageWrap.getModel().getName() != null) { | 
|             queryWrapper.lambda().like(DeviceRole::getName, pageWrap.getModel().getName()); | 
|         } | 
|         if (pageWrap.getModel().getIsDefault() != null) { | 
|             queryWrapper.lambda().eq(DeviceRole::getIsDefault, pageWrap.getModel().getIsDefault()); | 
|         } | 
|         if (StringUtils.isNotBlank(pageWrap.getModel().getType())) { | 
|             if(pageWrap.getModel().getType().length() > 1) { | 
|                 String[] types = pageWrap.getModel().getType().split(","); | 
|                 queryWrapper.lambda().and(p-> p.eq(DeviceRole::getType, types[0]) | 
|                         .or() | 
|                         .eq(DeviceRole::getType, types[1])); | 
|             }else { | 
|                 queryWrapper.lambda().eq(DeviceRole::getType, pageWrap.getModel().getType()); | 
|             } | 
|         } | 
|         if (pageWrap.getModel().getDoorIds() != null) { | 
|             queryWrapper.lambda().eq(DeviceRole::getDoorIds, pageWrap.getModel().getDoorIds()); | 
|         } | 
|         if (pageWrap.getModel().getDoorNames() != null) { | 
|             queryWrapper.lambda().eq(DeviceRole::getDoorNames, pageWrap.getModel().getDoorNames()); | 
|         } | 
|         if (pageWrap.getModel().getParkIds() != null) { | 
|             queryWrapper.lambda().eq(DeviceRole::getParkIds, pageWrap.getModel().getParkIds()); | 
|         } | 
|         if (pageWrap.getModel().getParkNames() != null) { | 
|             queryWrapper.lambda().eq(DeviceRole::getParkNames, pageWrap.getModel().getParkNames()); | 
|         } | 
|         if (pageWrap.getModel().getStatus() != null) { | 
|             queryWrapper.lambda().eq(DeviceRole::getStatus, pageWrap.getModel().getStatus()); | 
|         } | 
|         for(PageWrap.SortData sortData: pageWrap.getSorts()) { | 
|             if (sortData.getDirection().equalsIgnoreCase(PageWrap.DESC)) { | 
|                 queryWrapper.orderByDesc(sortData.getProperty()); | 
|             } else { | 
|                 queryWrapper.orderByAsc(sortData.getProperty()); | 
|             } | 
|         } | 
|         queryWrapper.lambda().orderByAsc( DeviceRole::getName); | 
|         IPage<DeviceRole> newPage = deviceRoleMapper.selectPage(page, queryWrapper); | 
|         if(null != newPage && newPage.getRecords().size() > 0) { | 
|           List<DeviceRole> deviceRoleList = newPage.getRecords(); | 
|           /*    for (DeviceRole dto:deviceRoleList) { | 
|                 Member member = new Member(); | 
|                 member.setIsdeleted(Constants.ZERO); | 
|                 member.setRoleIdParam("["+dto.getId()+"]"); | 
|                 dto.setMemberNum( memberMapper.selectCount(new QueryWrapper<>(member))); | 
|             }*/ | 
|             newPage.setRecords(deviceRoleList); | 
|         } | 
|         return PageData.from(newPage); | 
|     } | 
|   | 
|     @Override | 
|     public long count(DeviceRole deviceRole) { | 
|         QueryWrapper<DeviceRole> wrapper = new QueryWrapper<>(deviceRole); | 
|         return deviceRoleMapper.selectCount(wrapper); | 
|     } | 
|   | 
|     @Override | 
|     public List<DeviceRoleVO> findListByType(Integer type) { | 
|         List<DeviceRole> deviceRoleList = deviceRoleMapper.selectList(new QueryWrapper<DeviceRole>().lambda() | 
|                 .eq(DeviceRole::getType,type) | 
|                 .eq(DeviceRole::getIsdeleted, Constants.ZERO) | 
|                 .eq(DeviceRole::getStatus, Constants.ONE) | 
|         ); | 
|         List<DeviceRoleVO> deviceRoleVOList = new ArrayList<>(); | 
|         for (DeviceRole deviceRole:deviceRoleList) { | 
|             DeviceRoleVO deviceRoleVO = new DeviceRoleVO(); | 
|             BeanUtils.copyProperties(deviceRole,deviceRoleVO); | 
|             deviceRoleVOList.add(deviceRoleVO); | 
|         } | 
|         return deviceRoleVOList; | 
|     } | 
|   | 
|   | 
|   | 
|   | 
|   | 
|   | 
|   | 
| } |