Ver Fonte

连油视频设备添加数据权限

Zimo há 14 horas atrás
pai
commit
3ee7badb35

+ 3 - 3
yudao-module-pms/yudao-module-pms-biz/src/main/java/cn/iocoder/yudao/module/pms/controller/admin/yanfan/device/vo/YfIotDeviceSaveReqVO.java

@@ -1,13 +1,12 @@
 package cn.iocoder.yudao.module.pms.controller.admin.yanfan.device.vo;
 
 import io.swagger.v3.oas.annotations.media.Schema;
-import lombok.*;
-import java.util.*;
-import org.springframework.format.annotation.DateTimeFormat;
+import lombok.Data;
 
 import javax.validation.constraints.NotEmpty;
 import javax.validation.constraints.NotNull;
 import java.time.LocalDateTime;
+import java.util.Set;
 
 @Schema(description = "管理后台 - 设备新增/修改 Request VO")
 @Data
@@ -112,4 +111,5 @@ public class YfIotDeviceSaveReqVO {
     private Integer mqttstats;
 
     private Long pmsDevice;
+    private Set<Long> deptIds;
 }

+ 23 - 14
yudao-module-pms/yudao-module-pms-biz/src/main/java/cn/iocoder/yudao/module/pms/service/yanfan/device/YfIotDeviceServiceImpl.java

@@ -3,25 +3,30 @@ package cn.iocoder.yudao.module.pms.service.yanfan.device;
 import cn.hutool.core.collection.CollUtil;
 import cn.iocoder.yudao.framework.common.exception.ErrorCode;
 import cn.iocoder.yudao.framework.common.exception.ServiceException;
+import cn.iocoder.yudao.framework.common.pojo.PageResult;
+import cn.iocoder.yudao.framework.common.util.object.BeanUtils;
 import cn.iocoder.yudao.framework.security.core.LoginUser;
 import cn.iocoder.yudao.framework.security.core.util.SecurityFrameworkUtils;
 import cn.iocoder.yudao.framework.tenant.core.aop.TenantIgnore;
 import cn.iocoder.yudao.module.pms.controller.admin.yanfan.cache.ITSLValueCache;
 import cn.iocoder.yudao.module.pms.controller.admin.yanfan.constant.Constants;
-import cn.iocoder.yudao.module.pms.controller.admin.yanfan.device.vo.*;
+import cn.iocoder.yudao.module.pms.controller.admin.yanfan.device.vo.DeviceShortOutput;
+import cn.iocoder.yudao.module.pms.controller.admin.yanfan.device.vo.YfIotDevicePageReqVO;
+import cn.iocoder.yudao.module.pms.controller.admin.yanfan.device.vo.YfIotDeviceRespVO;
+import cn.iocoder.yudao.module.pms.controller.admin.yanfan.device.vo.YfIotDeviceSaveReqVO;
 import cn.iocoder.yudao.module.pms.controller.admin.yanfan.product.vo.IotYfProductRespVO;
 import cn.iocoder.yudao.module.pms.controller.admin.yanfan.redis.RedisCache;
 import cn.iocoder.yudao.module.pms.controller.admin.yanfan.redis.RedisKeyBuilder;
 import cn.iocoder.yudao.module.pms.controller.admin.yanfan.sip.relation.vo.IotYfSipRelationPageReqVO;
 import cn.iocoder.yudao.module.pms.controller.admin.yanfan.thingsmodel.vo.ValueItem;
+import cn.iocoder.yudao.module.pms.controller.admin.yanfan.utils.HttpUtils;
+import cn.iocoder.yudao.module.pms.controller.admin.yanfan.utils.IpUtils;
 import cn.iocoder.yudao.module.pms.dal.dataobject.yanfan.device.YfIotDeviceDO;
 import cn.iocoder.yudao.module.pms.dal.dataobject.yanfan.devicetemplate.IotYfDeviceTemplateDO;
 import cn.iocoder.yudao.module.pms.dal.dataobject.yanfan.product.IotYfProductDO;
 import cn.iocoder.yudao.module.pms.dal.dataobject.yanfan.sip.relation.IotYfSipRelationDO;
 import cn.iocoder.yudao.module.pms.dal.dataobject.yanfan.var.slave.IotYfVarTempSalveDO;
 import cn.iocoder.yudao.module.pms.dal.mysql.yanfan.device.YfIotDeviceMapper;
-import cn.iocoder.yudao.module.pms.controller.admin.yanfan.utils.HttpUtils;
-import cn.iocoder.yudao.module.pms.controller.admin.yanfan.utils.IpUtils;
 import cn.iocoder.yudao.module.pms.dal.mysql.yanfan.devicetemplate.IotYfDeviceTemplateMapper;
 import cn.iocoder.yudao.module.pms.dal.mysql.yanfan.product.IotYfProductMapper;
 import cn.iocoder.yudao.module.pms.service.yanfan.devicetemplate.IotYfDeviceTemplateService;
@@ -30,31 +35,26 @@ import cn.iocoder.yudao.module.pms.service.yanfan.sip.relation.IotYfSipRelationS
 import cn.iocoder.yudao.module.pms.service.yanfan.var.slave.IotVarTempSalveService;
 import cn.iocoder.yudao.module.system.api.user.AdminUserApi;
 import cn.iocoder.yudao.module.system.api.user.dto.AdminUserRespDTO;
+import cn.iocoder.yudao.module.system.service.dept.DeptService;
 import com.alibaba.fastjson.JSONObject;
-import liquibase.pro.packaged.Y;
 import lombok.extern.slf4j.Slf4j;
 import org.apache.commons.lang3.StringUtils;
-import org.quartz.SchedulerException;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.cache.annotation.CacheEvict;
 import org.springframework.cache.annotation.Cacheable;
 import org.springframework.cache.annotation.Caching;
-import org.springframework.context.annotation.Bean;
 import org.springframework.stereotype.Service;
 import org.springframework.transaction.annotation.Transactional;
 import org.springframework.util.CollectionUtils;
 import org.springframework.validation.annotation.Validated;
 
+import javax.annotation.Resource;
 import java.math.BigDecimal;
 import java.time.LocalDateTime;
-import java.util.*;
-import java.util.stream.Collectors;
-
-import cn.iocoder.yudao.framework.common.pojo.PageResult;
-import cn.iocoder.yudao.framework.common.util.object.BeanUtils;
-
-
-import javax.annotation.Resource;
+import java.util.HashSet;
+import java.util.List;
+import java.util.Objects;
+import java.util.Set;
 
 import static cn.iocoder.yudao.framework.common.exception.util.ServiceExceptionUtil.exception;
 
@@ -88,6 +88,8 @@ public class YfIotDeviceServiceImpl implements YfIotDeviceService {
     private IotYfDeviceTemplateMapper iotYfDeviceTemplateMapper;
     @Autowired
     private IotYfProductMapper iotYfProductMapper;
+    @Autowired
+    private DeptService deptService;
 
 
     /**
@@ -182,6 +184,13 @@ public class YfIotDeviceServiceImpl implements YfIotDeviceService {
      */
     @Override
     public List<DeviceShortOutput> selectDeviceShortList(YfIotDeviceSaveReqVO device) {
+        Long deptId = SecurityFrameworkUtils.getLoginUserDeptId();
+        Set<Long> ids = new HashSet<>();
+        if (Objects.nonNull(deptId)) {
+            ids = deptService.getChildDeptIdListFromCache(deptId);
+            ids.add(deptId);
+        }
+        device.setDeptIds(ids);
         List<DeviceShortOutput> list = yfIotDeviceMapper.selectDeviceShortList(device);
 //        List<DeviceAlertCount> alist = alertLogService.selectDeviceAlertCount();
 //        for (DeviceAlertCount item : alist) {

+ 6 - 0
yudao-module-pms/yudao-module-pms-biz/src/main/resources/mapper/static/yanfan/YfIotDeviceMapper.xml

@@ -153,6 +153,12 @@
         left join rq_iot_product p on p.product_id=d.product_id
         <where>
             <if test="productId != null ">and d.product_id = #{productId}</if>
+            <if test="deptIds != null and deptIds.size &gt; 0">
+                AND d.dept_id IN
+                <foreach collection="deptIds" index="index" item="key" open="(" separator="," close=")">
+                    #{key}
+                </foreach>
+            </if>
         </where>
         order by d.create_time desc
     </select>