Browse Source

一级场景查询

yuejiaying 4 years ago
parent
commit
1cf0028e55

+ 12 - 0
sms_water/src/main/java/com/huaxu/controller/SceneController.java

@@ -159,4 +159,16 @@ public class SceneController {
         int result = sceneService.delSceneByIds(ids) ? 1 : 0;
         return new AjaxMessage<>(ResultStatus.OK, result);
     }
+    /**
+     * 一级场景查询
+     */
+    @ApiOperation(value = "一级场景查询",notes = "sceneTypeName 为水源、水厂、泵站")
+    @RequestMapping(value = "/selectByTypeName", method = RequestMethod.GET)
+    @ResponseBody
+    public AjaxMessage< List<SceneEntity>> selectByTypeName(@ApiParam(value = "一级场景类型名称", required = true) @RequestParam String sceneTypeName) {
+        SceneEntity sceneEntity = new SceneEntity();
+        sceneEntity.setSceneTypeName(sceneTypeName);
+        List<SceneEntity> sceneEntities = sceneService.selectByTypeName(sceneEntity);
+        return new AjaxMessage<>(ResultStatus.OK, sceneEntities);
+    }
 }

+ 2 - 0
sms_water/src/main/java/com/huaxu/dao/SceneMapper.java

@@ -35,5 +35,7 @@ public interface SceneMapper extends BaseMapper<SceneEntity> {
 
     List<SceneEntity> findByParentIdsLike(@Param(value = "scene") SceneEntity sceneEntity);
 
+    List<SceneEntity> selectByTypeName(@Param(value = "scene")SceneEntity sceneEntity);
+
     /**删除相关方法  使用mybatis-plus集成的 **/
 }

+ 10 - 0
sms_water/src/main/java/com/huaxu/service/SceneService.java

@@ -323,4 +323,14 @@ public class SceneService extends ServiceImpl<SceneMapper, SceneEntity> {
     public List<SceneEntity>  findByParentSceneIds(Long[] Ids) {
         return sceneMapper.findByParentSceneIds(Ids);
     }
+
+    public List<SceneEntity>  selectByTypeName(SceneEntity sceneEntity) {
+        LoginUser currentUser = UserUtil.getCurrentUser();
+        sceneEntity.setTenantId(currentUser.getTenantId());
+        sceneEntity.setProgramItems(currentUser.getProgramItemList());
+        sceneEntity.setUserType(currentUser.getType());
+        //1是公司,2是公司及以下,3部门,4部门及以下,5自定义
+        sceneEntity.setPermissonType(currentUser.getPermissonType());
+        return sceneMapper.selectByTypeName(sceneEntity);
+    }
 }

+ 40 - 1
sms_water/src/main/resources/mapper/SceneMapper.xml

@@ -49,7 +49,7 @@
          s.scene_type_name as "sceneTypeName"
      </sql>
     <sql id="deviceJoins">
-        left join sms_scene_type s on s.id =a.scene_type_id
+        left join sms_scene_type s on s.id =a.scene_type_id and s.status=1
     </sql>
     <!--  根据主键获取实体   -->
     <select id="findSceneById" resultType="com.huaxu.entity.SceneEntity">
@@ -221,4 +221,43 @@
         </where>
         order by  a.date_create  desc
     </select>
+    <!--一级场景查询-->
+    <select id="selectByTypeName" resultType="com.huaxu.entity.SceneEntity">
+        SELECT
+        <include refid="sceneColumns"/>
+        FROM sms_scene a
+        <include refid="deviceJoins"/>
+        <where>
+            a.parent_scene_id=0 and a.status=1 and s.scene_type_name=#{scene.sceneTypeName}
+            <if test="scene.tenantId != null  and scene.tenantId != ''">and a.tenant_id = #{scene.tenantId}</if>
+            <if test="scene.userType!=null and scene.userType!=-999 and scene.userType!=-9999 and  scene.programItems != null and scene.programItems.size() > 0">
+                <if test="scene.permissonType == 5 or scene.permissonType == 2">
+                    and ( a.DEPT_ORG_ID in
+                    <foreach collection="scene.programItems" item="item" open="(" close=")" separator=",">
+                        #{item.orgId}
+                    </foreach>
+                    or
+                    a.COMPANY_ORG_ID in
+                    <foreach collection="scene.programItems" item="item" open="(" close=")" separator=",">
+                        #{item.orgId}
+                    </foreach>
+                    )
+                </if>
+                <if test="scene.permissonType == 4 or scene.permissonType == 3">
+                    and a.DEPT_ORG_ID in
+                    <foreach collection="scene.programItems" item="item" open="(" close=")" separator=",">
+                        #{item.orgId}
+                    </foreach>
+                </if>
+                <if test="scene.permissonType == 1">
+                    and a.COMPANY_ORG_ID in
+                    <foreach collection="scene.programItems" item="item" open="(" close=")" separator=",">
+                        #{item.orgId}
+                    </foreach>
+                    and (a.DEPT_ORG_ID is null or a.DEPT_ORG_ID =0)
+                </if>
+            </if>
+        </where>
+        order by  a.date_create
+    </select>
 </mapper>