| package com.ruoyi.management3d.tiles3d.service.impl; | 
|   | 
| import java.util.ArrayList; | 
| import java.util.HashMap; | 
| import java.util.List; | 
| import java.util.Map; | 
|   | 
| import com.ruoyi.common.annotation.DataScope; | 
| import com.ruoyi.common.core.domain.entity.SysDept; | 
| import com.ruoyi.common.utils.DateUtils; | 
| import com.ruoyi.common.utils.SecurityUtils; | 
| import com.ruoyi.common.utils.uuid.IdUtils; | 
| import com.ruoyi.device.camera.domain.ArdCameras; | 
| import com.ruoyi.management3d.tiles3d.domain.ArdTiles3d; | 
| import com.ruoyi.management3d.tiles3d.mapper.ArdTiles3dMapper; | 
| import com.ruoyi.management3d.tiles3d.service.IArdTiles3dService; | 
| import com.ruoyi.system.mapper.SysDeptMapper; | 
| import com.ruoyi.utils.tools.ArdTool; | 
| import org.springframework.beans.factory.annotation.Autowired; | 
| import org.springframework.stereotype.Service; | 
|   | 
| import javax.annotation.Resource; | 
|   | 
|   | 
| /** | 
|  * 三维实景Service业务层处理 | 
|  * | 
|  * @author ard | 
|  * @date 2023-06-16 | 
|  */ | 
| @Service | 
| public class ArdTiles3dServiceImpl implements IArdTiles3dService { | 
|     @Resource | 
|     private ArdTiles3dMapper ardTiles3dMapper; | 
|     @Resource | 
|     private SysDeptMapper sysDeptMapper; | 
|     /** | 
|      * 查询三维实景 | 
|      * | 
|      * @param tilesId 三维实景主键 | 
|      * @return 三维实景 | 
|      */ | 
|     @Override | 
|     public ArdTiles3d selectArdTiles3dByTilesId(String tilesId) { | 
|         return ardTiles3dMapper.selectArdTiles3dByTilesId(tilesId); | 
|     } | 
|   | 
|     /** | 
|      * 查询三维实景列表 | 
|      * | 
|      * @param ardTiles3d 三维实景 | 
|      * @return 三维实景 | 
|      */ | 
|     @Override | 
|     @DataScope(deptAlias = "d", userAlias = "u") | 
|     public List<ArdTiles3d> selectArdTiles3dList(ArdTiles3d ardTiles3d) { | 
|         return ardTiles3dMapper.selectArdTiles3dList(ardTiles3d); | 
|     } | 
|   | 
|     /** | 
|      * 新增三维实景 | 
|      * | 
|      * @param ardTiles3d 三维实景 | 
|      * @return 结果 | 
|      */ | 
|     @Override | 
|     public int insertArdTiles3d(ArdTiles3d ardTiles3d) { | 
|         ardTiles3d.setTilesId(IdUtils.simpleUUID()); | 
|         ardTiles3d.setUserId(SecurityUtils.getUserId()); | 
|         ardTiles3d.setCreateBy(SecurityUtils.getUsername()); | 
|         ardTiles3d.setCreateTime(DateUtils.getNowDate()); | 
|         return ardTiles3dMapper.insertArdTiles3d(ardTiles3d); | 
|     } | 
|   | 
|     /** | 
|      * 修改三维实景 | 
|      * | 
|      * @param ardTiles3d 三维实景 | 
|      * @return 结果 | 
|      */ | 
|     @Override | 
|     public int updateArdTiles3d(ArdTiles3d ardTiles3d) { | 
|         ardTiles3d.setUpdateBy(SecurityUtils.getUsername()); | 
|         ardTiles3d.setUpdateTime(DateUtils.getNowDate()); | 
|         return ardTiles3dMapper.updateArdTiles3d(ardTiles3d); | 
|     } | 
|   | 
|     /** | 
|      * 批量删除三维实景 | 
|      * | 
|      * @param tilesIds 需要删除的三维实景主键 | 
|      * @return 结果 | 
|      */ | 
|     @Override | 
|     public int deleteArdTiles3dByTilesIds(String[] tilesIds) { | 
|         return ardTiles3dMapper.deleteArdTiles3dByTilesIds(tilesIds); | 
|     } | 
|   | 
|     /** | 
|      * 删除三维实景信息 | 
|      * | 
|      * @param tilesId 三维实景主键 | 
|      * @return 结果 | 
|      */ | 
|     @Override | 
|     public int deleteArdTiles3dByTilesId(String tilesId) { | 
|         return ardTiles3dMapper.deleteArdTiles3dByTilesId(tilesId); | 
|     } | 
|     /** | 
|      * 获取部门和三维实景 | 
|      * | 
|      * @return 结果 | 
|      */ | 
|     @Override | 
|     public Map getChildDeptAndTiles3d() { | 
|         Long deptId = SecurityUtils.getDeptId(); | 
|         SysDept sysDept = sysDeptMapper.selectDeptById(deptId); | 
|         Map<String, Object> map = fetchChildDepartments(sysDept); | 
|         return map; | 
|     } | 
|     /** | 
|      * 只获取三维实景 | 
|      * | 
|      * @return 结果 | 
|      */ | 
|     @Override | 
|     public Map getChildTiles3d() { | 
|         Long deptId = SecurityUtils.getDeptId(); | 
|         SysDept sysDept = sysDeptMapper.selectDeptById(deptId); | 
|         Map<String, Object> map = fetchChildtiles3d(sysDept); | 
|         return map; | 
|     } | 
|   | 
|     /** | 
|      * @描述 递归查询-获取部门和三维实景 | 
|      * @参数 [sysDept] | 
|      * @返回值 java.util.Map<java.lang.String, java.lang.Object> | 
|      * @创建人 刘苏义 | 
|      * @创建时间 2023/6/2 14:38 | 
|      * @修改人和其它信息 | 
|      */ | 
|     public Map<String, Object> fetchChildDepartments(SysDept sysDept) { | 
|         Map<String, Object> map = new HashMap<>(); | 
|         map.put("name", sysDept.getDeptName()); | 
|         map.put("deptId", sysDept.getDeptId()); | 
|         map.put("disabled", true); | 
|         List<SysDept> sysDepts = sysDeptMapper.selectNextChildrenDeptById(sysDept.getDeptId()); | 
|         List<ArdTiles3d> ardTiles3ds = ardTiles3dMapper.selectArdTiles3dByDeptId(sysDept.getDeptId()); | 
|         List<Object> childList = new ArrayList<>(); | 
|         for (SysDept childDept : sysDepts) { | 
|             Map<String, Object> childMap = new HashMap<>(); | 
|             childMap.put("name", childDept.getDeptName()); | 
|             childMap.put("deptId", childDept.getDeptId()); | 
|             childMap.put("disabled", true); | 
|             Map<String, Object> map1 = fetchChildDepartments(childDept); | 
|             childMap.putAll(map1); | 
|             childList.add(childMap); | 
|         } | 
|         if (ardTiles3ds.size() > 0) { | 
|             for (ArdTiles3d tiles3d : ardTiles3ds) { | 
|                 Map<String, Object> tiles3dMap = ArdTool.convertEntityToMap(tiles3d); | 
|                 String value =(String) tiles3dMap.get("tilesName"); | 
|                 tiles3dMap.remove("tilesName"); | 
|                 tiles3dMap.put("name",value); | 
|                 childList.add(tiles3dMap); | 
|             } | 
|         } | 
|         map.put("children", childList); | 
|         return map; | 
|   | 
|     } | 
|     /** | 
|      * @描述 递归查询-只获取三维实景 | 
|      * @参数 [sysDept] | 
|      * @返回值 java.util.Map<java.lang.String, java.lang.Object> | 
|      * @创建人 刘苏义 | 
|      * @创建时间 2023/6/2 14:38 | 
|      * @修改人和其它信息 | 
|      */ | 
|   | 
|     public Map<String, Object> fetchChildtiles3d(SysDept sysDept) { | 
|         Map<String, Object> map = new HashMap<>(); | 
|         map.put("name", sysDept.getDeptName()); | 
|         map.put("deptId", sysDept.getDeptId()); | 
|         map.put("disabled", true); | 
|         ArdTiles3d ardTiles3d=new ArdTiles3d(); | 
|         ardTiles3d.setDeptId(sysDept.getDeptId()); | 
|         List<ArdTiles3d> ardTiles3ds = ardTiles3dMapper.selectArdTiles3dList(ardTiles3d); | 
|         List<Object> childList = new ArrayList<>(); | 
|         if (ardTiles3ds.size() > 0) { | 
|             for (ArdTiles3d tiles3d : ardTiles3ds) { | 
|                 Map<String, Object> tiles3dMap = ArdTool.convertEntityToMap(tiles3d); | 
|                 String value =(String) tiles3dMap.get("tilesName"); | 
|                 tiles3dMap.remove("tilesName"); | 
|                 tiles3dMap.put("name",value); | 
|                 childList.add(tiles3dMap); | 
|             } | 
|         } | 
|         map.put("children", childList); | 
|         return map; | 
|     } | 
| } |