ソースを参照

设备定义树——删掉之前的

LLL 1 年間 前
コミット
c7a5c91cd8

+ 0 - 297
jeecg_module_ems/src/main/java/org/jeecg/modules/deviceType/controller/DeviceTypeController.java

@@ -1,297 +0,0 @@
-package org.jeecg.modules.deviceType.controller;
-
-import java.util.Arrays;
-import java.util.List;
-import java.util.Map;
-import java.util.stream.Collectors;
-import java.io.IOException;
-import java.io.UnsupportedEncodingException;
-import java.net.URLDecoder;
-import javax.servlet.http.HttpServletRequest;
-import javax.servlet.http.HttpServletResponse;
-import org.jeecg.common.api.vo.Result;
-import org.jeecg.common.system.query.QueryGenerator;
-import org.jeecg.common.util.oConvertUtils;
-import org.jeecg.common.system.vo.SelectTreeModel;
-import org.jeecg.modules.deviceType.entity.DeviceType;
-import org.jeecg.modules.deviceType.service.IDeviceTypeService;
-
-import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
-import com.baomidou.mybatisplus.core.metadata.IPage;
-import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
-import lombok.extern.slf4j.Slf4j;
-
-import org.jeecgframework.poi.excel.ExcelImportUtil;
-import org.jeecgframework.poi.excel.def.NormalExcelConstants;
-import org.jeecgframework.poi.excel.entity.ExportParams;
-import org.jeecgframework.poi.excel.entity.ImportParams;
-import org.jeecgframework.poi.excel.view.JeecgEntityExcelView;
-import org.jeecg.common.system.base.controller.JeecgController;
-import org.springframework.beans.factory.annotation.Autowired;
-import org.springframework.web.bind.annotation.*;
-import org.springframework.web.multipart.MultipartFile;
-import org.springframework.web.multipart.MultipartHttpServletRequest;
-import org.springframework.web.servlet.ModelAndView;
-import com.alibaba.fastjson.JSON;
-import io.swagger.annotations.Api;
-import io.swagger.annotations.ApiOperation;
-import org.jeecg.common.aspect.annotation.AutoLog;
-
- /**
- * @Description: 设备分类
- * @Author: jeecg-boot
- * @Date:   2024-01-09
- * @Version: V1.0
- */
-@Api(tags="设备分类")
-@RestController
-@RequestMapping("/deviceType/deviceType")
-@Slf4j
-public class DeviceTypeController extends JeecgController<DeviceType, IDeviceTypeService>{
-	@Autowired
-	private IDeviceTypeService deviceTypeService;
-
-	/**
-	 * 分页列表查询
-	 *
-	 * @param deviceType
-	 * @param pageNo
-	 * @param pageSize
-	 * @param req
-	 * @return
-	 */
-	//@AutoLog(value = "设备分类-分页列表查询")
-	@ApiOperation(value="设备分类-分页列表查询", notes="设备分类-分页列表查询")
-	@GetMapping(value = "/rootList")
-	public Result<IPage<DeviceType>> queryPageList(DeviceType deviceType,
-								   @RequestParam(name="pageNo", defaultValue="1") Integer pageNo,
-								   @RequestParam(name="pageSize", defaultValue="10") Integer pageSize,
-								   HttpServletRequest req) {
-		String hasQuery = req.getParameter("hasQuery");
-        if(hasQuery != null && "true".equals(hasQuery)){
-            QueryWrapper<DeviceType> queryWrapper =  QueryGenerator.initQueryWrapper(deviceType, req.getParameterMap());
-            List<DeviceType> list = deviceTypeService.queryTreeListNoPage(queryWrapper);
-            IPage<DeviceType> pageList = new Page<>(1, 10, list.size());
-            pageList.setRecords(list);
-            return Result.OK(pageList);
-        }else{
-            String parentId = deviceType.getParentId();
-            if (oConvertUtils.isEmpty(parentId)) {
-                parentId = "0";
-            }
-            deviceType.setParentId(null);
-            QueryWrapper<DeviceType> queryWrapper = QueryGenerator.initQueryWrapper(deviceType, req.getParameterMap());
-            // 使用 eq 防止模糊查询
-            queryWrapper.eq("parent_id", parentId);
-            Page<DeviceType> page = new Page<DeviceType>(pageNo, pageSize);
-            IPage<DeviceType> pageList = deviceTypeService.page(page, queryWrapper);
-            return Result.OK(pageList);
-        }
-	}
-
-	 /**
-	  * 【vue3专用】加载节点的子数据
-	  *
-	  * @param pid
-	  * @return
-	  */
-	 @RequestMapping(value = "/loadTreeChildren", method = RequestMethod.GET)
-	 public Result<List<SelectTreeModel>> loadTreeChildren(@RequestParam(name = "pid") String pid) {
-		 Result<List<SelectTreeModel>> result = new Result<>();
-		 try {
-			 List<SelectTreeModel> ls = deviceTypeService.queryListByPid(pid);
-			 result.setResult(ls);
-			 result.setSuccess(true);
-		 } catch (Exception e) {
-			 e.printStackTrace();
-			 result.setMessage(e.getMessage());
-			 result.setSuccess(false);
-		 }
-		 return result;
-	 }
-
-	 /**
-	  * 【vue3专用】加载一级节点/如果是同步 则所有数据
-	  *
-	  * @param async
-	  * @param pcode
-	  * @return
-	  */
-	 @RequestMapping(value = "/loadTreeRoot", method = RequestMethod.GET)
-	 public Result<List<SelectTreeModel>> loadTreeRoot(@RequestParam(name = "async") Boolean async, @RequestParam(name = "pcode") String pcode) {
-		 Result<List<SelectTreeModel>> result = new Result<>();
-		 try {
-			 List<SelectTreeModel> ls = deviceTypeService.queryListByCode(pcode);
-			 if (!async) {
-				 loadAllChildren(ls);
-			 }
-			 result.setResult(ls);
-			 result.setSuccess(true);
-		 } catch (Exception e) {
-			 e.printStackTrace();
-			 result.setMessage(e.getMessage());
-			 result.setSuccess(false);
-		 }
-		 return result;
-	 }
-
-	 /**
-	  * 【vue3专用】递归求子节点 同步加载用到
-	  *
-	  * @param ls
-	  */
-	 private void loadAllChildren(List<SelectTreeModel> ls) {
-		 for (SelectTreeModel tsm : ls) {
-			 List<SelectTreeModel> temp = deviceTypeService.queryListByPid(tsm.getKey());
-			 if (temp != null && temp.size() > 0) {
-				 tsm.setChildren(temp);
-				 loadAllChildren(temp);
-			 }
-		 }
-	 }
-
-	 /**
-      * 获取子数据
-      * @param deviceType
-      * @param req
-      * @return
-      */
-	//@AutoLog(value = "设备分类-获取子数据")
-	@ApiOperation(value="设备分类-获取子数据", notes="设备分类-获取子数据")
-	@GetMapping(value = "/childList")
-	public Result<IPage<DeviceType>> queryPageList(DeviceType deviceType,HttpServletRequest req) {
-		QueryWrapper<DeviceType> queryWrapper = QueryGenerator.initQueryWrapper(deviceType, req.getParameterMap());
-		List<DeviceType> list = deviceTypeService.list(queryWrapper);
-		IPage<DeviceType> pageList = new Page<>(1, 10, list.size());
-        pageList.setRecords(list);
-		return Result.OK(pageList);
-	}
-
-    /**
-      * 批量查询子节点
-      * @param parentIds 父ID(多个采用半角逗号分割)
-      * @return 返回 IPage
-      * @param parentIds
-      * @return
-      */
-	//@AutoLog(value = "设备分类-批量获取子数据")
-    @ApiOperation(value="设备分类-批量获取子数据", notes="设备分类-批量获取子数据")
-    @GetMapping("/getChildListBatch")
-    public Result getChildListBatch(@RequestParam("parentIds") String parentIds) {
-        try {
-            QueryWrapper<DeviceType> queryWrapper = new QueryWrapper<>();
-            List<String> parentIdList = Arrays.asList(parentIds.split(","));
-            queryWrapper.in("parent_id", parentIdList);
-            List<DeviceType> list = deviceTypeService.list(queryWrapper);
-            IPage<DeviceType> pageList = new Page<>(1, 10, list.size());
-            pageList.setRecords(list);
-            return Result.OK(pageList);
-        } catch (Exception e) {
-            log.error(e.getMessage(), e);
-            return Result.error("批量查询子节点失败:" + e.getMessage());
-        }
-    }
-	
-	/**
-	 *   添加
-	 *
-	 * @param deviceType
-	 * @return
-	 */
-	@AutoLog(value = "设备分类-添加")
-	@ApiOperation(value="设备分类-添加", notes="设备分类-添加")
-    //@RequiresPermissions("org.jeecg.modules:ems_device_type:add")
-	@PostMapping(value = "/add")
-	public Result<String> add(@RequestBody DeviceType deviceType) {
-		deviceTypeService.addDeviceType(deviceType);
-		return Result.OK("添加成功!");
-	}
-	
-	/**
-	 *  编辑
-	 *
-	 * @param deviceType
-	 * @return
-	 */
-	@AutoLog(value = "设备分类-编辑")
-	@ApiOperation(value="设备分类-编辑", notes="设备分类-编辑")
-    //@RequiresPermissions("org.jeecg.modules:ems_device_type:edit")
-	@RequestMapping(value = "/edit", method = {RequestMethod.PUT,RequestMethod.POST})
-	public Result<String> edit(@RequestBody DeviceType deviceType) {
-		deviceTypeService.updateDeviceType(deviceType);
-		return Result.OK("编辑成功!");
-	}
-	
-	/**
-	 *   通过id删除
-	 *
-	 * @param id
-	 * @return
-	 */
-	@AutoLog(value = "设备分类-通过id删除")
-	@ApiOperation(value="设备分类-通过id删除", notes="设备分类-通过id删除")
-    //@RequiresPermissions("org.jeecg.modules:ems_device_type:delete")
-	@DeleteMapping(value = "/delete")
-	public Result<String> delete(@RequestParam(name="id",required=true) String id) {
-		deviceTypeService.deleteDeviceType(id);
-		return Result.OK("删除成功!");
-	}
-	
-	/**
-	 *  批量删除
-	 *
-	 * @param ids
-	 * @return
-	 */
-	@AutoLog(value = "设备分类-批量删除")
-	@ApiOperation(value="设备分类-批量删除", notes="设备分类-批量删除")
-    //@RequiresPermissions("org.jeecg.modules:ems_device_type:deleteBatch")
-	@DeleteMapping(value = "/deleteBatch")
-	public Result<String> deleteBatch(@RequestParam(name="ids",required=true) String ids) {
-		this.deviceTypeService.removeByIds(Arrays.asList(ids.split(",")));
-		return Result.OK("批量删除成功!");
-	}
-	
-	/**
-	 * 通过id查询
-	 *
-	 * @param id
-	 * @return
-	 */
-	//@AutoLog(value = "设备分类-通过id查询")
-	@ApiOperation(value="设备分类-通过id查询", notes="设备分类-通过id查询")
-	@GetMapping(value = "/queryById")
-	public Result<DeviceType> queryById(@RequestParam(name="id",required=true) String id) {
-		DeviceType deviceType = deviceTypeService.getById(id);
-		if(deviceType==null) {
-			return Result.error("未找到对应数据");
-		}
-		return Result.OK(deviceType);
-	}
-
-    /**
-    * 导出excel
-    *
-    * @param request
-    * @param deviceType
-    */
-    //@RequiresPermissions("org.jeecg.modules:ems_device_type:exportXls")
-    @RequestMapping(value = "/exportXls")
-    public ModelAndView exportXls(HttpServletRequest request, DeviceType deviceType) {
-		return super.exportXls(request, deviceType, DeviceType.class, "设备分类");
-    }
-
-    /**
-      * 通过excel导入数据
-    *
-    * @param request
-    * @param response
-    * @return
-    */
-    //@RequiresPermissions("org.jeecg.modules:ems_device_type:importExcel")
-    @RequestMapping(value = "/importExcel", method = RequestMethod.POST)
-    public Result<?> importExcel(HttpServletRequest request, HttpServletResponse response) {
-		return super.importExcel(request, response, DeviceType.class);
-    }
-
-}

+ 0 - 67
jeecg_module_ems/src/main/java/org/jeecg/modules/deviceType/entity/DeviceType.java

@@ -1,67 +0,0 @@
-package org.jeecg.modules.deviceType.entity;
-
-import java.io.Serializable;
-import java.util.Date;
-import java.math.BigDecimal;
-import com.baomidou.mybatisplus.annotation.IdType;
-import com.baomidou.mybatisplus.annotation.TableId;
-import com.baomidou.mybatisplus.annotation.TableName;
-import com.baomidou.mybatisplus.annotation.TableLogic;
-import lombok.Data;
-import com.fasterxml.jackson.annotation.JsonFormat;
-import org.springframework.format.annotation.DateTimeFormat;
-import org.jeecgframework.poi.excel.annotation.Excel;
-import org.jeecg.common.aspect.annotation.Dict;
-import io.swagger.annotations.ApiModel;
-import io.swagger.annotations.ApiModelProperty;
-import java.io.UnsupportedEncodingException;
-
-/**
- * @Description: 设备分类
- * @Author: jeecg-boot
- * @Date:   2024-01-09
- * @Version: V1.0
- */
-@Data
-@TableName("ems_device_type")
-@ApiModel(value="ems_device_type对象", description="设备分类")
-public class DeviceType implements Serializable {
-    private static final long serialVersionUID = 1L;
-
-	/**主键*/
-	@TableId(type = IdType.ASSIGN_ID)
-    @ApiModelProperty(value = "主键")
-    private java.lang.String id;
-	/**上级id*/
-	@Excel(name = "上级id", width = 15)
-    @ApiModelProperty(value = "上级id")
-    private java.lang.String parentId;
-	/**分类名称*/
-	@Excel(name = "分类名称", width = 15)
-    @ApiModelProperty(value = "分类名称")
-    private java.lang.String typeName;
-	/**创建人*/
-    @ApiModelProperty(value = "创建人")
-    private java.lang.String createBy;
-	/**创建日期*/
-	@JsonFormat(timezone = "GMT+8",pattern = "yyyy-MM-dd HH:mm:ss")
-    @DateTimeFormat(pattern="yyyy-MM-dd HH:mm:ss")
-    @ApiModelProperty(value = "创建日期")
-    private java.util.Date createTime;
-	/**更新人*/
-    @ApiModelProperty(value = "更新人")
-    private java.lang.String updateBy;
-	/**更新日期*/
-	@JsonFormat(timezone = "GMT+8",pattern = "yyyy-MM-dd HH:mm:ss")
-    @DateTimeFormat(pattern="yyyy-MM-dd HH:mm:ss")
-    @ApiModelProperty(value = "更新日期")
-    private java.util.Date updateTime;
-	/**所属部门*/
-    @ApiModelProperty(value = "所属部门")
-    private java.lang.String sysOrgCode;
-	/**是否有子节点*/
-	@Excel(name = "是否有子节点", width = 15, dicCode = "yn")
-	@Dict(dicCode = "yn")
-    @ApiModelProperty(value = "是否有子节点")
-    private java.lang.String hasChild;
-}

+ 0 - 35
jeecg_module_ems/src/main/java/org/jeecg/modules/deviceType/mapper/DeviceTypeMapper.java

@@ -1,35 +0,0 @@
-package org.jeecg.modules.deviceType.mapper;
-
-import com.baomidou.mybatisplus.core.mapper.BaseMapper;
-import org.apache.ibatis.annotations.Param;
-import org.jeecg.common.system.vo.SelectTreeModel;
-import org.jeecg.modules.deviceType.entity.DeviceType;
-
-import java.util.List;
-import java.util.Map;
-
-/**
- * @Description: 设备分类
- * @Author: jeecg-boot
- * @Date:   2024-01-09
- * @Version: V1.0
- */
-public interface DeviceTypeMapper extends BaseMapper<DeviceType> {
-
-	/**
-	 * 编辑节点状态
-	 * @param id
-	 * @param status
-	 */
-	void updateTreeNodeStatus(@Param("id") String id,@Param("status") String status);
-
-	/**
-	 * 【vue3专用】根据父级ID查询树节点数据
-	 *
-	 * @param pid
-	 * @param query
-	 * @return
-	 */
-	List<SelectTreeModel> queryListByPid(@Param("pid") String pid, @Param("query") Map<String, String> query);
-
-}

+ 0 - 25
jeecg_module_ems/src/main/java/org/jeecg/modules/deviceType/mapper/xml/DeviceTypeMapper.xml

@@ -1,25 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
-<mapper namespace="org.jeecg.modules.deviceType.mapper.DeviceTypeMapper">
-
-	<update id="updateTreeNodeStatus" parameterType="java.lang.String">
-		update ems_device_type set has_child = #{status} where id = #{id}
-	</update>
-
-  	<!-- 【vue3专用】 -->
-	<select id="queryListByPid" parameterType="java.lang.Object" resultType="org.jeecg.common.system.vo.SelectTreeModel">
-		select
-		  id as "key",
-		  typeName as "title",
-		  (case when has_child = '1' then 0 else 1 end) as isLeaf,
-		  parentId as parentId
-		from ems_device_type
-		where parentId = #{pid}
-		<if test="query != null">
-			<foreach collection="query.entrySet()" item="value" index="key">
-				and ${key} = #{value}
-			</foreach>
-		</if>
-	</select>
-
-</mapper>

+ 0 - 74
jeecg_module_ems/src/main/java/org/jeecg/modules/deviceType/service/IDeviceTypeService.java

@@ -1,74 +0,0 @@
-package org.jeecg.modules.deviceType.service;
-
-import org.jeecg.common.system.vo.SelectTreeModel;
-import org.jeecg.modules.deviceType.entity.DeviceType;
-import com.baomidou.mybatisplus.extension.service.IService;
-import org.jeecg.common.exception.JeecgBootException;
-import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
-import java.util.List;
-
-/**
- * @Description: 设备分类
- * @Author: jeecg-boot
- * @Date:   2024-01-09
- * @Version: V1.0
- */
-public interface IDeviceTypeService extends IService<DeviceType> {
-
-	/**根节点父ID的值*/
-	public static final String ROOT_PID_VALUE = "0";
-	
-	/**树节点有子节点状态值*/
-	public static final String HASCHILD = "1";
-	
-	/**树节点无子节点状态值*/
-	public static final String NOCHILD = "0";
-
-	/**
-	 * 新增节点
-	 *
-	 * @param deviceType
-	 */
-	void addDeviceType(DeviceType deviceType);
-	
-	/**
-   * 修改节点
-   *
-   * @param deviceType
-   * @throws JeecgBootException
-   */
-	void updateDeviceType(DeviceType deviceType) throws JeecgBootException;
-	
-	/**
-	 * 删除节点
-	 *
-	 * @param id
-   * @throws JeecgBootException
-	 */
-	void deleteDeviceType(String id) throws JeecgBootException;
-
-	  /**
-	   * 查询所有数据,无分页
-	   *
-	   * @param queryWrapper
-	   * @return List<DeviceType>
-	   */
-    List<DeviceType> queryTreeListNoPage(QueryWrapper<DeviceType> queryWrapper);
-
-	/**
-	 * 【vue3专用】根据父级编码加载分类字典的数据
-	 *
-	 * @param parentCode
-	 * @return
-	 */
-	List<SelectTreeModel> queryListByCode(String parentCode);
-
-	/**
-	 * 【vue3专用】根据pid查询子节点集合
-	 *
-	 * @param pid
-	 * @return
-	 */
-	List<SelectTreeModel> queryListByPid(String pid);
-
-}

+ 0 - 219
jeecg_module_ems/src/main/java/org/jeecg/modules/deviceType/service/impl/DeviceTypeServiceImpl.java

@@ -1,219 +0,0 @@
-package org.jeecg.modules.deviceType.service.impl;
-
-import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
-import org.jeecg.common.exception.JeecgBootException;
-import org.jeecg.common.util.oConvertUtils;
-import org.jeecg.common.system.vo.SelectTreeModel;
-import org.jeecg.modules.deviceType.entity.DeviceType;
-import org.jeecg.modules.deviceType.mapper.DeviceTypeMapper;
-import org.jeecg.modules.deviceType.service.IDeviceTypeService;
-import org.springframework.stereotype.Service;
-import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
-import org.springframework.transaction.annotation.Transactional;
-import java.util.ArrayList;
-import java.util.Arrays;
-import java.util.List;
-
-import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
-
-/**
- * @Description: 设备分类
- * @Author: jeecg-boot
- * @Date:   2024-01-09
- * @Version: V1.0
- */
-@Service
-public class DeviceTypeServiceImpl extends ServiceImpl<DeviceTypeMapper, DeviceType> implements IDeviceTypeService {
-
-	@Override
-	public void addDeviceType(DeviceType deviceType) {
-	   //新增时设置hasChild为0
-	    deviceType.setHasChild(IDeviceTypeService.NOCHILD);
-		if(oConvertUtils.isEmpty(deviceType.getParentId())){
-			deviceType.setParentId(IDeviceTypeService.ROOT_PID_VALUE);
-		}else{
-			//如果当前节点父ID不为空 则设置父节点的hasChildren 为1
-			DeviceType parent = baseMapper.selectById(deviceType.getParentId());
-			if(parent!=null && !"1".equals(parent.getHasChild())){
-				parent.setHasChild("1");
-				baseMapper.updateById(parent);
-			}
-		}
-		baseMapper.insert(deviceType);
-	}
-	
-	@Override
-	public void updateDeviceType(DeviceType deviceType) {
-		DeviceType entity = this.getById(deviceType.getId());
-		if(entity==null) {
-			throw new JeecgBootException("未找到对应实体");
-		}
-		String old_pid = entity.getParentId();
-		String new_pid = deviceType.getParentId();
-		if(!old_pid.equals(new_pid)) {
-			updateOldParentNode(old_pid);
-			if(oConvertUtils.isEmpty(new_pid)){
-				deviceType.setParentId(IDeviceTypeService.ROOT_PID_VALUE);
-			}
-			if(!IDeviceTypeService.ROOT_PID_VALUE.equals(deviceType.getParentId())) {
-				baseMapper.updateTreeNodeStatus(deviceType.getParentId(), IDeviceTypeService.HASCHILD);
-			}
-		}
-		baseMapper.updateById(deviceType);
-	}
-	
-	@Override
-	@Transactional(rollbackFor = Exception.class)
-	public void deleteDeviceType(String id) throws JeecgBootException {
-		//查询选中节点下所有子节点一并删除
-        id = this.queryTreeChildIds(id);
-        if(id.indexOf(",")>0) {
-            StringBuffer sb = new StringBuffer();
-            String[] idArr = id.split(",");
-            for (String idVal : idArr) {
-                if(idVal != null){
-                    DeviceType deviceType = this.getById(idVal);
-                    String pidVal = deviceType.getParentId();
-                    //查询此节点上一级是否还有其他子节点
-                    List<DeviceType> dataList = baseMapper.selectList(new QueryWrapper<DeviceType>().eq("parent_id", pidVal).notIn("id",Arrays.asList(idArr)));
-                    boolean flag = (dataList == null || dataList.size() == 0) && !Arrays.asList(idArr).contains(pidVal) && !sb.toString().contains(pidVal);
-                    if(flag){
-                        //如果当前节点原本有子节点 现在木有了,更新状态
-                        sb.append(pidVal).append(",");
-                    }
-                }
-            }
-            //批量删除节点
-            baseMapper.deleteBatchIds(Arrays.asList(idArr));
-            //修改已无子节点的标识
-            String[] pidArr = sb.toString().split(",");
-            for(String pid : pidArr){
-                this.updateOldParentNode(pid);
-            }
-        }else{
-            DeviceType deviceType = this.getById(id);
-            if(deviceType==null) {
-                throw new JeecgBootException("未找到对应实体");
-            }
-            updateOldParentNode(deviceType.getParentId());
-            baseMapper.deleteById(id);
-        }
-	}
-	
-	@Override
-    public List<DeviceType> queryTreeListNoPage(QueryWrapper<DeviceType> queryWrapper) {
-        List<DeviceType> dataList = baseMapper.selectList(queryWrapper);
-        List<DeviceType> mapList = new ArrayList<>();
-        for(DeviceType data : dataList){
-            String pidVal = data.getParentId();
-            //递归查询子节点的根节点
-            if(pidVal != null && !IDeviceTypeService.NOCHILD.equals(pidVal)){
-                DeviceType rootVal = this.getTreeRoot(pidVal);
-                if(rootVal != null && !mapList.contains(rootVal)){
-                    mapList.add(rootVal);
-                }
-            }else{
-                if(!mapList.contains(data)){
-                    mapList.add(data);
-                }
-            }
-        }
-        return mapList;
-    }
-
-    @Override
-    public List<SelectTreeModel> queryListByCode(String parentCode) {
-        String pid = ROOT_PID_VALUE;
-        if (oConvertUtils.isNotEmpty(parentCode)) {
-            LambdaQueryWrapper<DeviceType> queryWrapper = new LambdaQueryWrapper<>();
-            queryWrapper.eq(DeviceType::getParentId, parentCode);
-            List<DeviceType> list = baseMapper.selectList(queryWrapper);
-            if (list == null || list.size() == 0) {
-                throw new JeecgBootException("该编码【" + parentCode + "】不存在,请核实!");
-            }
-            if (list.size() > 1) {
-                throw new JeecgBootException("该编码【" + parentCode + "】存在多个,请核实!");
-            }
-            pid = list.get(0).getId();
-        }
-        return baseMapper.queryListByPid(pid, null);
-    }
-
-    @Override
-    public List<SelectTreeModel> queryListByPid(String pid) {
-        if (oConvertUtils.isEmpty(pid)) {
-            pid = ROOT_PID_VALUE;
-        }
-        return baseMapper.queryListByPid(pid, null);
-    }
-
-	/**
-	 * 根据所传pid查询旧的父级节点的子节点并修改相应状态值
-	 * @param pid
-	 */
-	private void updateOldParentNode(String pid) {
-		if(!IDeviceTypeService.ROOT_PID_VALUE.equals(pid)) {
-			Long count = baseMapper.selectCount(new QueryWrapper<DeviceType>().eq("parent_id", pid));
-			if(count==null || count<=1) {
-				baseMapper.updateTreeNodeStatus(pid, IDeviceTypeService.NOCHILD);
-			}
-		}
-	}
-
-	/**
-     * 递归查询节点的根节点
-     * @param pidVal
-     * @return
-     */
-    private DeviceType getTreeRoot(String pidVal){
-        DeviceType data =  baseMapper.selectById(pidVal);
-        if(data != null && !IDeviceTypeService.ROOT_PID_VALUE.equals(data.getParentId())){
-            return this.getTreeRoot(data.getParentId());
-        }else{
-            return data;
-        }
-    }
-
-    /**
-     * 根据id查询所有子节点id
-     * @param ids
-     * @return
-     */
-    private String queryTreeChildIds(String ids) {
-        //获取id数组
-        String[] idArr = ids.split(",");
-        StringBuffer sb = new StringBuffer();
-        for (String pidVal : idArr) {
-            if(pidVal != null){
-                if(!sb.toString().contains(pidVal)){
-                    if(sb.toString().length() > 0){
-                        sb.append(",");
-                    }
-                    sb.append(pidVal);
-                    this.getTreeChildIds(pidVal,sb);
-                }
-            }
-        }
-        return sb.toString();
-    }
-
-    /**
-     * 递归查询所有子节点
-     * @param pidVal
-     * @param sb
-     * @return
-     */
-    private StringBuffer getTreeChildIds(String pidVal,StringBuffer sb){
-        List<DeviceType> dataList = baseMapper.selectList(new QueryWrapper<DeviceType>().eq("parent_id", pidVal));
-        if(dataList != null && dataList.size()>0){
-            for(DeviceType tree : dataList) {
-                if(!sb.toString().contains(tree.getId())){
-                    sb.append(",").append(tree.getId());
-                }
-                this.getTreeChildIds(tree.getId(),sb);
-            }
-        }
-        return sb;
-    }
-
-}