459242451@qq.com 2 жил өмнө
parent
commit
7ab19fb349

+ 18 - 1
ruoyi-admin/src/main/java/com/ruoyi/web/controller/qdtl/TlElectricDeviceController.java

@@ -5,13 +5,16 @@ import com.ruoyi.common.core.domain.AjaxResult;
 import com.ruoyi.common.core.page.TableDataInfo;
 import com.ruoyi.qdtl.domain.TlElectricDevice;
 import com.ruoyi.qdtl.service.ITlElectricDeviceService;
+import com.ruoyi.system.service.ISysRoleService;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.web.bind.annotation.GetMapping;
 import org.springframework.web.bind.annotation.PostMapping;
 import org.springframework.web.bind.annotation.RequestMapping;
 import org.springframework.web.bind.annotation.RestController;
 
+import java.util.ArrayList;
 import java.util.List;
+import java.util.Set;
 
 /**
  * 电动车定位设备Controller
@@ -24,6 +27,8 @@ import java.util.List;
 public class TlElectricDeviceController extends BaseController {
     @Autowired
     private ITlElectricDeviceService tlElectricDeviceService;
+    @Autowired
+    private ISysRoleService sysRoleService;
 
     /**
      * 查询电动车定位设备列表
@@ -47,7 +52,19 @@ public class TlElectricDeviceController extends BaseController {
 
     @GetMapping("/queryAllList")
     public AjaxResult queryAllList() {
-        return AjaxResult.success(tlElectricDeviceService.queryAllEnableList());
+        Set<String> roleSet = sysRoleService.selectRolePermissionByUserId(getUserId());
+        List<TlElectricDevice> list = tlElectricDeviceService.queryAllEnableList();
+        if (!roleSet.contains("admin")) {
+            List<TlElectricDevice> newList = new ArrayList<>();
+            // 筛选
+            for (TlElectricDevice tlElectricDevice : list) {
+                if (roleSet.contains(tlElectricDevice.getAreaId())) {
+                    newList.add(tlElectricDevice);
+                }
+            }
+            return AjaxResult.success(newList);
+        }
+        return AjaxResult.success(list);
     }
 
     /**

+ 28 - 1
ruoyi-admin/src/main/java/com/ruoyi/web/controller/qdtl/TlElectricDeviceLocationController.java

@@ -9,6 +9,8 @@ import com.ruoyi.common.utils.poi.ExcelUtil;
 import com.ruoyi.qdtl.domain.ElectricDeviceLocationRecord;
 import com.ruoyi.qdtl.domain.TlElectricDeviceLocation;
 import com.ruoyi.qdtl.service.ITlElectricDeviceLocationService;
+import com.ruoyi.system.service.ISysDictDataService;
+import com.ruoyi.system.service.ISysRoleService;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.web.bind.annotation.GetMapping;
 import org.springframework.web.bind.annotation.PostMapping;
@@ -17,7 +19,10 @@ import org.springframework.web.bind.annotation.RequestParam;
 import org.springframework.web.bind.annotation.RestController;
 
 import javax.servlet.http.HttpServletResponse;
+import java.util.ArrayList;
+import java.util.HashSet;
 import java.util.List;
+import java.util.Set;
 
 /**
  * 电动车定位设备轨迹Controller
@@ -30,6 +35,10 @@ import java.util.List;
 public class TlElectricDeviceLocationController extends BaseController {
     @Autowired
     private ITlElectricDeviceLocationService tlElectricDeviceLocationService;
+    @Autowired
+    private ISysRoleService sysRoleService;
+    @Autowired
+    private ISysDictDataService dictDataService;
 
     /**
      * 查询电动车定位设备轨迹列表
@@ -48,7 +57,25 @@ public class TlElectricDeviceLocationController extends BaseController {
                                           @RequestParam(required = false) String imei) {
         startDate = startDate + " 00:00:00";
         endDate = endDate + " 23:59:59";
-        return AjaxResult.success(tlElectricDeviceLocationService.queryLocationRecord(startDate, endDate, areaName, imei));
+        List<ElectricDeviceLocationRecord> list = tlElectricDeviceLocationService.queryLocationRecord(startDate, endDate, areaName, imei);
+        Set<String> roleSet = sysRoleService.selectRolePermissionByUserId(getUserId());
+        if (!roleSet.contains("admin")) {
+            Set<String> areaSet = new HashSet<>();
+            for (String s : roleSet) {
+                String tl_xun_area = dictDataService.selectDictLabel("tl_xun_area", s);
+                areaSet.add(tl_xun_area);
+            }
+            if (areaSet.size() > 0) {
+                List<ElectricDeviceLocationRecord> newList = new ArrayList<>();
+                for (ElectricDeviceLocationRecord electricDeviceLocationRecord : list) {
+                    if (areaSet.contains(electricDeviceLocationRecord.getDeviceName().substring(0, 3))) {
+                        newList.add(electricDeviceLocationRecord);
+                    }
+                }
+                return AjaxResult.success(newList);
+            }
+        }
+        return AjaxResult.success(list);
     }
 
     @PostMapping("/syncDeviceLocation")

+ 27 - 3
ruoyi-admin/src/main/java/com/ruoyi/web/controller/qdtl/TlInspectionLocationLogController.java

@@ -1,5 +1,6 @@
 package com.ruoyi.web.controller.qdtl;
 
+import cn.hutool.core.collection.CollUtil;
 import cn.hutool.core.util.StrUtil;
 import com.ruoyi.common.annotation.Log;
 import com.ruoyi.common.core.controller.BaseController;
@@ -9,6 +10,7 @@ import com.ruoyi.common.enums.BusinessType;
 import com.ruoyi.common.utils.poi.ExcelUtil;
 import com.ruoyi.qdtl.domain.TlInspectionLocationLog;
 import com.ruoyi.qdtl.service.ITlInspectionLocationLogService;
+import com.ruoyi.system.service.ISysRoleService;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.web.bind.annotation.DeleteMapping;
 import org.springframework.web.bind.annotation.GetMapping;
@@ -20,7 +22,9 @@ import org.springframework.web.bind.annotation.RequestMapping;
 import org.springframework.web.bind.annotation.RestController;
 
 import javax.servlet.http.HttpServletResponse;
+import java.util.HashSet;
 import java.util.List;
+import java.util.Set;
 
 /**
  * 巡检记录管理Controller
@@ -33,16 +37,27 @@ import java.util.List;
 public class TlInspectionLocationLogController extends BaseController {
     @Autowired
     private ITlInspectionLocationLogService tlInspectionLocationLogService;
+    @Autowired
+    private ISysRoleService sysRoleService;
 
     /**
      * 查询巡检记录管理列表
      */
     @GetMapping("/list")
     public TableDataInfo list(TlInspectionLocationLog tlInspectionLocationLog) {
+        Set<String> roleSet = sysRoleService.selectRolePermissionByUserId(getUserId());
         startPage();
         if (StrUtil.isNotBlank(tlInspectionLocationLog.getAreaId())) {
-            tlInspectionLocationLog.setAreaIds(StrUtil.split(tlInspectionLocationLog.getAreaId(), ','));
+            Set<String> split = new HashSet<>(StrUtil.split(tlInspectionLocationLog.getAreaId(), ','));
+            if (!roleSet.contains("admin")) {
+                split = CollUtil.intersectionDistinct(roleSet, split);
+            }
+            tlInspectionLocationLog.setAreaIds(split);
             tlInspectionLocationLog.setAreaId("");
+        } else {
+            if (!roleSet.contains("admin")) {
+                tlInspectionLocationLog.setAreaIds(roleSet);
+            }
         }
         List<TlInspectionLocationLog> list = tlInspectionLocationLogService.selectTlInspectionLocationLogList(tlInspectionLocationLog);
         return getDataTable(list);
@@ -57,7 +72,7 @@ public class TlInspectionLocationLogController extends BaseController {
     @GetMapping("/trail/list")
     public AjaxResult trailList(TlInspectionLocationLog tlInspectionLocationLog) {
         if (StrUtil.isNotBlank(tlInspectionLocationLog.getAreaId())) {
-            tlInspectionLocationLog.setAreaIds(StrUtil.split(tlInspectionLocationLog.getAreaId(), ','));
+            tlInspectionLocationLog.setAreaIds(new HashSet<>(StrUtil.split(tlInspectionLocationLog.getAreaId(), ',')));
             tlInspectionLocationLog.setAreaId("");
         }
         List<TlInspectionLocationLog> list = tlInspectionLocationLogService.selectTlInspectionLocationLogTrailList(tlInspectionLocationLog);
@@ -70,9 +85,18 @@ public class TlInspectionLocationLogController extends BaseController {
     @Log(title = "巡检记录管理", businessType = BusinessType.EXPORT)
     @PostMapping("/export")
     public void export(HttpServletResponse response, TlInspectionLocationLog tlInspectionLocationLog) {
+        Set<String> roleSet = sysRoleService.selectRolePermissionByUserId(getUserId());
         if (StrUtil.isNotBlank(tlInspectionLocationLog.getAreaId())) {
-            tlInspectionLocationLog.setAreaIds(StrUtil.split(tlInspectionLocationLog.getAreaId(), ','));
+            Set<String> split = new HashSet<>(StrUtil.split(tlInspectionLocationLog.getAreaId(), ','));
+            if (!roleSet.contains("admin")) {
+                split = CollUtil.intersectionDistinct(roleSet, split);
+            }
+            tlInspectionLocationLog.setAreaIds(split);
             tlInspectionLocationLog.setAreaId("");
+        } else {
+            if (!roleSet.contains("admin")) {
+                tlInspectionLocationLog.setAreaIds(roleSet);
+            }
         }
         List<TlInspectionLocationLog> list = tlInspectionLocationLogService.selectTlInspectionLocationLogList(tlInspectionLocationLog);
         ExcelUtil<TlInspectionLocationLog> util = new ExcelUtil<TlInspectionLocationLog>(TlInspectionLocationLog.class);

+ 17 - 0
ruoyi-admin/src/main/java/com/ruoyi/web/controller/system/SysDictDataController.java

@@ -10,6 +10,7 @@ import com.ruoyi.common.utils.StringUtils;
 import com.ruoyi.common.utils.poi.ExcelUtil;
 import com.ruoyi.system.service.ISysDictDataService;
 import com.ruoyi.system.service.ISysDictTypeService;
+import com.ruoyi.system.service.ISysRoleService;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.validation.annotation.Validated;
 import org.springframework.web.bind.annotation.DeleteMapping;
@@ -24,6 +25,7 @@ import org.springframework.web.bind.annotation.RestController;
 import javax.servlet.http.HttpServletResponse;
 import java.util.ArrayList;
 import java.util.List;
+import java.util.Set;
 
 /**
  * 数据字典信息
@@ -39,6 +41,9 @@ public class SysDictDataController extends BaseController {
     @Autowired
     private ISysDictTypeService dictTypeService;
 
+    @Autowired
+    private ISysRoleService sysRoleService;
+
     @GetMapping("/list")
     public TableDataInfo list(SysDictData dictData) {
         startPage();
@@ -71,6 +76,18 @@ public class SysDictDataController extends BaseController {
         if (StringUtils.isNull(data)) {
             data = new ArrayList<SysDictData>();
         }
+        // 特殊处理一下,怎么简单实现怎么来
+        Set<String> roleSet = sysRoleService.selectRolePermissionByUserId(getUserId());
+        if (!roleSet.contains("admin")) {
+            List<SysDictData> newData = new ArrayList<>();
+            // 筛选出相应的区域
+            for (SysDictData datum : data) {
+                if (roleSet.contains(datum.getDictValue())) {
+                    newData.add(datum);
+                }
+            }
+            return AjaxResult.success(newData);
+        }
         return AjaxResult.success(data);
     }
 

+ 2 - 0
ruoyi-system/src/main/java/com/ruoyi/qdtl/domain/TlElectricDevice.java

@@ -117,4 +117,6 @@ public class TlElectricDevice extends BaseEntity {
     @Excel(name = "电机发动机号")
     private String engineNumber;
 
+    private String areaId;
+
 }

+ 4 - 4
ruoyi-system/src/main/java/com/ruoyi/qdtl/domain/TlInspectionLocationLog.java

@@ -7,7 +7,7 @@ import org.apache.commons.lang3.builder.ToStringBuilder;
 import org.apache.commons.lang3.builder.ToStringStyle;
 
 import java.util.Date;
-import java.util.List;
+import java.util.Set;
 
 /**
  * 巡检记录管理对象 tl_inspection_location_log
@@ -82,7 +82,7 @@ public class TlInspectionLocationLog extends BaseEntity {
      */
     private String areaId;
 
-    private List<String> areaIds;
+    private Set<String> areaIds;
 
     /**
      * 经纬度
@@ -237,11 +237,11 @@ public class TlInspectionLocationLog extends BaseEntity {
         this.endTime = endTime;
     }
 
-    public List<String> getAreaIds() {
+    public Set<String> getAreaIds() {
         return areaIds;
     }
 
-    public void setAreaIds(List<String> areaIds) {
+    public void setAreaIds(Set<String> areaIds) {
         this.areaIds = areaIds;
     }
 

+ 3 - 1
ruoyi-system/src/main/resources/mapper/qdtl/TlElectricDeviceMapper.xml

@@ -23,6 +23,7 @@
         <result property="driverPhone" column="driver_phone"/>
         <result property="enabledFlag" column="enabled_flag"/>
         <result property="engineNumber" column="engine_number"/>
+        <result property="areaId" column="area_id"/>
     </resultMap>
 
     <sql id="selectTlElectricDeviceVo">
@@ -43,7 +44,8 @@
                driver_name,
                driver_phone,
                enabled_flag,
-               engine_number
+               engine_number,
+               area_id
         from tl_electric_device
     </sql>