瀏覽代碼

场景二级信息查询

wangyangyang 4 年之前
父節點
當前提交
e1ecf9e68f

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

@@ -171,4 +171,11 @@ public class SceneController {
         List<SceneEntity> sceneEntities = sceneService.selectByTypeName(sceneEntity);
         return new AjaxMessage<>(ResultStatus.OK, sceneEntities);
     }
+    @RequestMapping(value = "/findByParentId", method = RequestMethod.GET)
+    @ResponseBody
+    @ApiOperation(value = "根据父级ID查询所有子节点及本身(全部信息)")
+    public  AjaxMessage<List<SceneEntity>> findByParentId(@ApiParam(value = "父级场景ID", required = false)@RequestParam(required = false) Long id) {
+        List<SceneEntity> sceneEntities = sceneService.findByParentId(id);
+        return new AjaxMessage<>(ResultStatus.OK, sceneEntities);
+    }
 }

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

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

+ 28 - 11
sms_water/src/main/java/com/huaxu/service/SceneService.java

@@ -144,7 +144,6 @@ public class SceneService extends ServiceImpl<SceneMapper, SceneEntity> {
     }
 
 
-
     /**
      * 保存
      */
@@ -152,13 +151,13 @@ public class SceneService extends ServiceImpl<SceneMapper, SceneEntity> {
         LoginUser currentUser = UserUtil.getCurrentUser();
         scene.setTenantId(currentUser.getTenantId());
         scene.setStatus(1);
-        if(currentUser!=null) {
+        if (currentUser != null) {
             scene.setCreateBy(currentUser.getName());
             scene.setUpdateBy(currentUser.getName());
             scene.setDateUpdate(new Date());
             scene.setDateCreate(new Date());
         }
-        if(scene.getDeptOrgId()!=null&&scene.getDeptOrgId()==0)
+        if (scene.getDeptOrgId() != null && scene.getDeptOrgId() == 0)
             scene.setDeptOrgId(null);
 
         // 如果没有设置父节点,则代表为跟节点,有则获取父节点实体
@@ -198,10 +197,11 @@ public class SceneService extends ServiceImpl<SceneMapper, SceneEntity> {
         }
         return false;
     }
+
     /**
      * 根据父级ID查询所有子节点及本身
      */
-    public  List<SceneEntity> findByParentLike(Long id) {
+    public List<SceneEntity> findByParentLike(Long id) {
         LoginUser currentUser = UserUtil.getCurrentUser();
         SceneEntity scene = new SceneEntity();
         if (id != null)
@@ -215,10 +215,11 @@ public class SceneService extends ServiceImpl<SceneMapper, SceneEntity> {
         List<SceneEntity> list = sceneMapper.findByParentIdsLike(scene);
         return list;
     }
+
     /**
      * 根据父级ID查询所有子节点及本身
      */
-    public  List<Long> findByParentIdsLike(Long id) {
+    public List<Long> findByParentIdsLike(Long id) {
         LoginUser currentUser = UserUtil.getCurrentUser();
         SceneEntity scene = new SceneEntity();
         if (id != null)
@@ -236,13 +237,14 @@ public class SceneService extends ServiceImpl<SceneMapper, SceneEntity> {
         }
         return longs;
     }
+
     /**
      * 修改根居ID
      */
     public boolean updateSceneById(SceneEntity scene) {
         LoginUser currentUser = UserUtil.getCurrentUser();
         scene.setUpdateBy(currentUser.getName());
-        if(scene.getDeptOrgId()!=null&&scene.getDeptOrgId()==0)
+        if (scene.getDeptOrgId() != null && scene.getDeptOrgId() == 0)
             scene.setDeptOrgId(null);
         // 获取修改前的parentIds,用于更新子节点的parentIds
         SceneEntity cScene = sceneMapper.findSceneById(scene.getId());
@@ -274,7 +276,7 @@ public class SceneService extends ServiceImpl<SceneMapper, SceneEntity> {
             } catch (Exception e) {
 
             }
-            o.setParentSceneIds("%,"+scene.getId()+",%");
+            o.setParentSceneIds("%," + scene.getId() + ",%");
             List<SceneEntity> list = sceneMapper.findByParentIdsLike(o);
             for (SceneEntity e : list) {
                 if (!e.getId().equals(scene.getId()) && e.getParentSceneId() != null && oldParentIds != null) {
@@ -285,9 +287,9 @@ public class SceneService extends ServiceImpl<SceneMapper, SceneEntity> {
                 }
             }
             //删除之前的图片信息
-             sceneImageService.updateBySceneId(scene.getId());
+            sceneImageService.updateBySceneId(scene.getId());
             //增加场景图片
-            if(scene.getSceneImages()!=null) {
+            if (scene.getSceneImages() != null) {
                 for (SceneImageEntity sceneImage : scene.getSceneImages()) {
                     sceneImage.setCreateBy(currentUser.getName());
                     sceneImage.setDateCreate(new Date());
@@ -320,11 +322,11 @@ public class SceneService extends ServiceImpl<SceneMapper, SceneEntity> {
     }
 
 
-    public List<SceneEntity>  findByParentSceneIds(Long[] Ids) {
+    public List<SceneEntity> findByParentSceneIds(Long[] Ids) {
         return sceneMapper.findByParentSceneIds(Ids);
     }
 
-    public List<SceneEntity>  selectByTypeName(SceneEntity sceneEntity) {
+    public List<SceneEntity> selectByTypeName(SceneEntity sceneEntity) {
         LoginUser currentUser = UserUtil.getCurrentUser();
         sceneEntity.setTenantId(currentUser.getTenantId());
         sceneEntity.setProgramItems(currentUser.getProgramItemList());
@@ -333,4 +335,19 @@ public class SceneService extends ServiceImpl<SceneMapper, SceneEntity> {
         sceneEntity.setPermissonType(currentUser.getPermissonType());
         return sceneMapper.selectByTypeName(sceneEntity);
     }
+
+    public List<SceneEntity> findByParentId(Long id) {
+        SceneEntity sceneEntity = new 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());
+        if (id != null)
+            sceneEntity.setParentSceneIds("%," + id + ",%");
+        List<SceneEntity> sceneEntities = sceneMapper.findByParentId(sceneEntity);
+        List<SceneEntity> sceneTree = getSceneTree(sceneEntities, Long.valueOf(0), 1);
+        return sceneTree;
+    }
 }

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

@@ -260,4 +260,44 @@
         </where>
         order by  a.date_create
     </select>
+    <!--根据一级场景查询所有场景信息-->
+    <select id="findByParentId" resultType="com.huaxu.entity.SceneEntity">
+        SELECT
+        <include refid="sceneColumns"/>
+        FROM sms_scene a
+        <include refid="deviceJoins"/>
+        <where>
+            a.status=1
+            <if test="scene.parentSceneIds != null ">and a.parent_scene_ids LIKE #{scene.parentSceneIds}</if>
+            <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>