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 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 map = fetchChildDepartments(sysDept); return map; } /** * 只获取三维实景 * * @return 结果 */ @Override public Map getChildTiles3d() { Long deptId = SecurityUtils.getDeptId(); SysDept sysDept = sysDeptMapper.selectDeptById(deptId); Map map = fetchChildtiles3d(sysDept); return map; } /** * @描述 递归查询-获取部门和三维实景 * @参数 [sysDept] * @返回值 java.util.Map * @创建人 刘苏义 * @创建时间 2023/6/2 14:38 * @修改人和其它信息 */ public Map fetchChildDepartments(SysDept sysDept) { Map map = new HashMap<>(); map.put("name", sysDept.getDeptName()); map.put("deptId", sysDept.getDeptId()); map.put("disabled", true); List sysDepts = sysDeptMapper.selectNextChildrenDeptById(sysDept.getDeptId()); List ardTiles3ds = ardTiles3dMapper.selectArdTiles3dByDeptId(sysDept.getDeptId()); List childList = new ArrayList<>(); for (SysDept childDept : sysDepts) { Map childMap = new HashMap<>(); childMap.put("name", childDept.getDeptName()); childMap.put("deptId", childDept.getDeptId()); childMap.put("disabled", true); Map map1 = fetchChildDepartments(childDept); childMap.putAll(map1); childList.add(childMap); } if (ardTiles3ds.size() > 0) { for (ArdTiles3d tiles3d : ardTiles3ds) { Map 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 * @创建人 刘苏义 * @创建时间 2023/6/2 14:38 * @修改人和其它信息 */ public Map fetchChildtiles3d(SysDept sysDept) { Map 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 ardTiles3ds = ardTiles3dMapper.selectArdTiles3dList(ardTiles3d); List childList = new ArrayList<>(); if (ardTiles3ds.size() > 0) { for (ArdTiles3d tiles3d : ardTiles3ds) { Map 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; } }