Просмотр исходного кода

报警设置查询机构权限

yuejiaying 4 лет назад
Родитель
Сommit
46c0cb1d2c

+ 7 - 0
sms_water/src/main/java/com/huaxu/controller/AlarmSettingController.java

@@ -116,6 +116,13 @@ public class AlarmSettingController {
         alarmSettingDto.setAttributeName(attributeName);
         alarmSettingDto.setSceneId(sceneId);
         alarmSettingDto.setSceneIds(sceneService.findByParentIdsLike(sceneId));
+        LoginUser loginUser = UserUtil.getCurrentUser();
+        alarmSettingDto.setTenantId(loginUser.getTenantId());
+        alarmSettingDto.setProgramItems(loginUser.getProgramItemList());
+        alarmSettingDto.setUserType(loginUser.getType());
+        //1是公司,2是公司及以下,3部门,4部门及以下,5自定义
+        alarmSettingDto.setPermissonType(loginUser.getPermissonType());
+
         IPage<AlarmSettingDto> iPage = new Page<>(pageNum, pageSize);
         iPage = alarmSettingService.selectPage(iPage, alarmSettingDto);
         Pagination<AlarmSettingDto> pages = new Pagination<>(iPage);

+ 20 - 0
sms_water/src/main/java/com/huaxu/dto/AlarmSettingDto.java

@@ -1,6 +1,8 @@
 package com.huaxu.dto;
 
+import com.fasterxml.jackson.annotation.JsonIgnore;
 import com.huaxu.entity.AlarmSetting;
+import com.huaxu.model.ProgramItem;
 import io.swagger.annotations.ApiModel;
 import io.swagger.annotations.ApiModelProperty;
 import lombok.Data;
@@ -60,5 +62,23 @@ public class AlarmSettingDto extends AlarmSetting {
      */
     @ApiModelProperty(value = "属性名称")
     private String attributeName;
+    /**
+     * 属性名称
+     */
+    @ApiModelProperty(value ="权限",hidden = true)
+    @JsonIgnore
+    private List<ProgramItem> programItems;
+    /**
+     * 属性名称
+     */
+    @ApiModelProperty(value="用户权限类型",hidden = true)
+    @JsonIgnore
+    private Integer permissonType;
+    /**
+     * 用户类型
+     */
+    @ApiModelProperty(value = "用户类型(-9999 超管 -999普通用户 2普通用户)",hidden = true)
+    @JsonIgnore
+    private String userType;
 
 }

+ 27 - 0
sms_water/src/main/resources/mapper/AlarmSettingMapper.xml

@@ -59,6 +59,33 @@
                     #{item}
                 </foreach>
             </if>
+            <if test="alarm.userType!=null and alarm.userType!=-999 and alarm.userType!=-9999 and  alarm.programItems != null and alarm.programItems.size() > 0">
+                <if test="alarm.permissonType == 5 or alarm.permissonType == 2">
+                    and ( t2.DEPT_ORG_ID in
+                    <foreach collection="alarm.programItems" item="item" open="(" close=")" separator=",">
+                        #{item.orgId}
+                    </foreach>
+                    or
+                    t2.COMPANY_ORG_ID in
+                    <foreach collection="alarm.programItems" item="item" open="(" close=")" separator=",">
+                        #{item.orgId}
+                    </foreach>
+                    )
+                </if>
+                <if test="alarm.permissonType == 4 or alarm.permissonType == 3">
+                    and t2.DEPT_ORG_ID in
+                    <foreach collection="alarm.programItems" item="item" open="(" close=")" separator=",">
+                        #{item.orgId}
+                    </foreach>
+                </if>
+                <if test="alarm.permissonType == 1">
+                    and t2.COMPANY_ORG_ID in
+                    <foreach collection="alarm.programItems" item="item" open="(" close=")" separator=",">
+                        #{item.orgId}
+                    </foreach>
+                    and (t2.DEPT_ORG_ID is null or t2.DEPT_ORG_ID =0)
+                </if>
+            </if>
             and t1.status =1
         </where>
         order by t1.device_id,t1.date_create