Browse Source

[feat]提交:对接图层管理功能并且优化

pull/7/head
杨威 2 weeks ago
parent
commit
39946531af
  1. 22
      dk-modules/business/src/main/java/org/dromara/business/controller/BusinessLayerController.java
  2. 43
      dk-modules/business/src/main/java/org/dromara/business/domain/BusinessLayer.java
  3. 2
      dk-modules/business/src/main/java/org/dromara/business/domain/bo/BusinessLayerBo.java
  4. 22
      dk-modules/business/src/main/java/org/dromara/business/domain/vo/BusinessLayerVo.java
  5. 4
      dk-modules/business/src/main/java/org/dromara/business/mapper/BusinessLayerMapper.java
  6. 5
      dk-modules/business/src/main/java/org/dromara/business/service/IBusinessLayerService.java
  7. 54
      dk-modules/business/src/main/java/org/dromara/business/service/impl/BusinessLayerServiceImpl.java
  8. 21
      dk-modules/business/src/main/resources/mapper/business/BusinessLayerMapper.xml

22
dk-modules/business/src/main/java/org/dromara/business/controller/BusinessLayerController.java

@ -2,6 +2,7 @@ package org.dromara.business.controller;
import cn.dev33.satoken.annotation.SaCheckPermission; import cn.dev33.satoken.annotation.SaCheckPermission;
import io.swagger.v3.oas.annotations.Operation;
import io.swagger.v3.oas.annotations.tags.Tag; import io.swagger.v3.oas.annotations.tags.Tag;
import jakarta.validation.constraints.NotEmpty; import jakarta.validation.constraints.NotEmpty;
import lombok.RequiredArgsConstructor; import lombok.RequiredArgsConstructor;
@ -22,6 +23,8 @@ import org.dromara.common.web.core.BaseController;
import org.springframework.validation.annotation.Validated; import org.springframework.validation.annotation.Validated;
import org.springframework.web.bind.annotation.*; import org.springframework.web.bind.annotation.*;
import java.util.List;
@Slf4j @Slf4j
@Validated @Validated
@RequiredArgsConstructor @RequiredArgsConstructor
@ -34,15 +37,23 @@ public class BusinessLayerController extends BaseController {
/** /**
* 图层模块列表 * 图层模块列表
*/ */
@Operation(summary ="图层模块列表",description = "图层模块列表")
@SaCheckPermission("business:layer:list") @SaCheckPermission("business:layer:list")
@GetMapping("/list") @GetMapping("/list")
public TableDataInfo<BusinessLayerVo> list(BusinessLayerBo bo, PageQuery pageQuery) { public R<TableDataInfo<BusinessLayerVo>> list(BusinessLayerBo bo, PageQuery pageQuery) {
return businessLayerService.queryPageList(bo, pageQuery); return R.ok(businessLayerService.queryPageList(bo, pageQuery));
}
@Operation(summary ="图层下拉列表",description = "图层下拉列表")
@GetMapping("/optionSelect")
public R<List<BusinessLayerVo>> optionSelect() {
return R.ok(businessLayerService.optionSelect());
} }
/** /**
* 图层新增 * 图层新增
*/ */
@Operation(summary ="图层新增",description = "图层新增")
@SaCheckPermission("business:layer:add") @SaCheckPermission("business:layer:add")
@Log(title = "图层新增", businessType = BusinessType.INSERT) @Log(title = "图层新增", businessType = BusinessType.INSERT)
@RepeatSubmit() @RepeatSubmit()
@ -55,6 +66,7 @@ public class BusinessLayerController extends BaseController {
* 图层修改 * 图层修改
*/ */
@SaCheckPermission("business:layer:edit") @SaCheckPermission("business:layer:edit")
@Operation(summary ="图层修改",description = "图层修改")
@Log(title = "图层修改", businessType = BusinessType.UPDATE) @Log(title = "图层修改", businessType = BusinessType.UPDATE)
@RepeatSubmit() @RepeatSubmit()
@PutMapping() @PutMapping()
@ -68,10 +80,10 @@ public class BusinessLayerController extends BaseController {
* @param id 主键 * @param id 主键
*/ */
@SaCheckPermission("business:task:remove") @SaCheckPermission("business:task:remove")
@Operation(summary ="图层删除",description = "图层删除")
@Log(title = "图层删除", businessType = BusinessType.DELETE) @Log(title = "图层删除", businessType = BusinessType.DELETE)
@DeleteMapping("/{id}") @GetMapping("/delete")
public R<Void> remove(@NotEmpty(message = "主键不能为空") public R<Void> remove(@RequestParam("id") Long id) {
@PathVariable Long id) {
return toAjax(businessLayerService.delete(id)); return toAjax(businessLayerService.delete(id));
} }
} }

43
dk-modules/business/src/main/java/org/dromara/business/domain/BusinessLayer.java

@ -4,6 +4,7 @@ package org.dromara.business.domain;
import com.baomidou.mybatisplus.annotation.*; import com.baomidou.mybatisplus.annotation.*;
import lombok.Data; import lombok.Data;
import lombok.EqualsAndHashCode; import lombok.EqualsAndHashCode;
import org.dromara.common.mybatis.core.domain.BaseEntity;
import org.dromara.common.translation.annotation.Translation; import org.dromara.common.translation.annotation.Translation;
import org.dromara.common.translation.constant.TransConstant; import org.dromara.common.translation.constant.TransConstant;
@ -11,11 +12,8 @@ import java.io.Serial;
import java.util.Date; import java.util.Date;
@Data @Data
@EqualsAndHashCode @TableName(value = "business_layer", autoResultMap = true)
@TableName("business_layer") public class BusinessLayer extends BaseEntity {
public class BusinessLayer {
@Serial
private static final long serialVersionUID = 1L;
/** /**
* id * id
@ -24,7 +22,6 @@ public class BusinessLayer {
private Long id; private Long id;
private String layerName; private String layerName;
@ -32,11 +29,8 @@ public class BusinessLayer {
private Boolean enable; private Boolean enable;
/** /**
* 时间 * 0菜单 1三维 2矢量 3影像
* */ */
private Date createTime;
private Integer layerType; private Integer layerType;
@Translation(type = TransConstant.DICT_TYPE_TO_LABEL, mapper = "layerType", other = "layer_type") @Translation(type = TransConstant.DICT_TYPE_TO_LABEL, mapper = "layerType", other = "layer_type")
@ -47,18 +41,29 @@ public class BusinessLayer {
*/ */
private String layerUrl; private String layerUrl;
//租户id /**
private String tenantId; * 部门id
//部门id */
private Long deptId; private Long deptId;
//部门名称
/**
* 部门名称
*/
private String deptName; private String deptName;
//备注 /**
* 备注
*/
private String remark; private String remark;
//排序
/**
* 排序
*/
private Integer sort; private Integer sort;
//父部门id
private Integer parentId; /**
* 父类id
*/
private Long parentId;
} }

2
dk-modules/business/src/main/java/org/dromara/business/domain/bo/BusinessLayerBo.java

@ -60,7 +60,7 @@ public class BusinessLayerBo {
//排序 //排序
private Integer sort; private Integer sort;
//父部门id //父部门id
private Integer parentId; private Long parentId;
private String startTime; private String startTime;
private String endTime; private String endTime;

22
dk-modules/business/src/main/java/org/dromara/business/domain/vo/BusinessLayerVo.java

@ -17,6 +17,7 @@ import org.dromara.common.translation.constant.TransConstant;
import java.io.Serial; import java.io.Serial;
import java.util.Date; import java.util.Date;
import java.util.List;
@Data @Data
@ExcelIgnoreUnannotated @ExcelIgnoreUnannotated
@ -30,20 +31,26 @@ public class BusinessLayerVo {
*/ */
private Long id; private Long id;
/**
* 用于前端渲染
*/
private Long key;
private String layerName; private String layerName;
/*0:禁用 1:启用*/ /*0:禁用 1:启用*/
private Boolean enable; private Boolean enable;
/** /**
* 时间 * 0菜单 1三维 2矢量 3影像
* */ */
private Date createTime;
private Integer layerType; private Integer layerType;
@Translation(type = TransConstant.DICT_TYPE_TO_LABEL, mapper = "layerType", other = "layer_type") @Translation(type = TransConstant.DICT_TYPE_TO_LABEL, mapper = "layerType", other = "layer_type")
private String layerTypeName; private String layerTypeName;
private String tenantId; private String tenantId;
private Long deptId; private Long deptId;
/** /**
@ -57,7 +64,10 @@ public class BusinessLayerVo {
//排序 //排序
private Integer sort; private Integer sort;
//父部门id
private Integer parentId; //父id
private Long parentId;
private List<BusinessLayerVo> children;
} }

4
dk-modules/business/src/main/java/org/dromara/business/mapper/BusinessLayerMapper.java

@ -9,8 +9,12 @@ import org.dromara.business.domain.bo.BusinessLayerBo;
import org.dromara.business.domain.bo.BusinessTaskBo; import org.dromara.business.domain.bo.BusinessTaskBo;
import org.dromara.business.domain.vo.BusinessLayerVo; import org.dromara.business.domain.vo.BusinessLayerVo;
import org.dromara.common.mybatis.core.mapper.BaseMapperPlus; import org.dromara.common.mybatis.core.mapper.BaseMapperPlus;
import java.util.List;
public interface BusinessLayerMapper extends BaseMapperPlus<BusinessLayer, BusinessLayerVo> { public interface BusinessLayerMapper extends BaseMapperPlus<BusinessLayer, BusinessLayerVo> {
Page<BusinessLayerVo> queryPageList(@Param("page") Page<?> page, @Param("bo") BusinessLayerBo bo); Page<BusinessLayerVo> queryPageList(@Param("page") Page<?> page, @Param("bo") BusinessLayerBo bo);
List<BusinessLayerVo> selectInfoByParent(@Param("parentId") Long parentId);
} }

5
dk-modules/business/src/main/java/org/dromara/business/service/IBusinessLayerService.java

@ -5,6 +5,8 @@ import org.dromara.business.domain.vo.BusinessLayerVo;
import org.dromara.common.mybatis.core.page.PageQuery; import org.dromara.common.mybatis.core.page.PageQuery;
import org.dromara.common.mybatis.core.page.TableDataInfo; import org.dromara.common.mybatis.core.page.TableDataInfo;
import java.util.List;
public interface IBusinessLayerService { public interface IBusinessLayerService {
/** /**
@ -19,4 +21,7 @@ public interface IBusinessLayerService {
Boolean insert(BusinessLayerBo bo); Boolean insert(BusinessLayerBo bo);
Boolean update(BusinessLayerBo bo); Boolean update(BusinessLayerBo bo);
Boolean delete(Long id); Boolean delete(Long id);
List<BusinessLayerVo> optionSelect();
} }

54
dk-modules/business/src/main/java/org/dromara/business/service/impl/BusinessLayerServiceImpl.java

@ -14,20 +14,34 @@ import org.dromara.common.mybatis.core.page.PageQuery;
import org.dromara.common.mybatis.core.page.TableDataInfo; import org.dromara.common.mybatis.core.page.TableDataInfo;
import org.springframework.stereotype.Service; import org.springframework.stereotype.Service;
import java.util.ArrayList;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
@Slf4j @Slf4j
@RequiredArgsConstructor @RequiredArgsConstructor
@Service @Service
public class BusinessLayerServiceImpl implements IBusinessLayerService { public class BusinessLayerServiceImpl implements IBusinessLayerService {
private final BusinessLayerMapper baseMapper; private final BusinessLayerMapper baseMapper;
@Override @Override
public TableDataInfo<BusinessLayerVo> queryPageList(BusinessLayerBo bo, PageQuery pageQuery) { public TableDataInfo<BusinessLayerVo> queryPageList(BusinessLayerBo bo, PageQuery pageQuery) {
Page<BusinessLayerVo> result = baseMapper.queryPageList(pageQuery.build(), bo); Page<BusinessLayerVo> result = baseMapper.queryPageList(pageQuery.build(), bo);
result.getRecords().forEach(businessLayerVo -> {
List<BusinessLayerVo> layerVoList = baseMapper.selectInfoByParent(businessLayerVo.getId());
businessLayerVo.setChildren(buildTree(layerVoList,businessLayerVo.getId()));
});
return TableDataInfo.build(result); return TableDataInfo.build(result);
} }
@Override @Override
public Boolean insert(BusinessLayerBo bo) { public Boolean insert(BusinessLayerBo bo) {
BusinessLayer layerVo = Convert.convert( BusinessLayer.class,bo); BusinessLayer layerVo = Convert.convert( BusinessLayer.class,bo);
@ -44,4 +58,44 @@ public class BusinessLayerServiceImpl implements IBusinessLayerService {
public Boolean delete(Long id) { public Boolean delete(Long id) {
return baseMapper.deleteById(id)>0; return baseMapper.deleteById(id)>0;
} }
@Override
public List<BusinessLayerVo> optionSelect() {
return baseMapper.selectInfoByParent(0L);
}
/**
* 构建树
* @param allNodes
* @return
*/
public static List<BusinessLayerVo> buildTree(List<BusinessLayerVo> allNodes, Long parentId) {
// 创建一个Map来存储所有节点,键为ID,值为节点
Map<Long, BusinessLayerVo> nodeMap = new HashMap<>();
for (BusinessLayerVo node : allNodes) {
nodeMap.put(node.getId(), node);
}
// 用来存储根节点(即 parentId 为传入值的节点)
List<BusinessLayerVo> rootNodes = new ArrayList<>();
// 遍历所有节点,将子节点添加到父节点的 children 列表中
for (BusinessLayerVo node : allNodes) {
if (node.getParentId().equals(parentId)) {
rootNodes.add(node); // 当前节点的 parentId 与传入的 parentId 匹配,作为根节点
} else {
BusinessLayerVo parentNode = nodeMap.get(node.getParentId());
if (parentNode != null) {
// 确保父节点的 children 列表已初始化
if (parentNode.getChildren() == null) {
parentNode.setChildren(new ArrayList<>());
}
parentNode.getChildren().add(node); // 将当前节点添加到父节点的 children 列表中
}
}
}
return rootNodes;
}
} }

21
dk-modules/business/src/main/resources/mapper/business/BusinessLayerMapper.xml

@ -8,6 +8,7 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
<select id="queryPageList" resultType="org.dromara.business.domain.vo.BusinessLayerVo"> <select id="queryPageList" resultType="org.dromara.business.domain.vo.BusinessLayerVo">
SELECT SELECT
t.id, t.id,
t.id as 'key',
t.layer_name as layerName, t.layer_name as layerName,
t.enable, t.enable,
t.remark, t.remark,
@ -22,6 +23,7 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
FROM FROM
business_layer t business_layer t
<where> <where>
t.parent_id = 0
<if test="bo.parentId != null and bo.parentId != ''"> <if test="bo.parentId != null and bo.parentId != ''">
and t.parent_id = #{bo.parentId} and t.parent_id = #{bo.parentId}
</if> </if>
@ -52,6 +54,23 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
</when> </when>
</choose> </choose>
</where> </where>
order by t.parentId , t.sort order by t.parent_id , t.sort
</select>
<select id="selectInfoByParent" resultType="org.dromara.business.domain.vo.BusinessLayerVo">
WITH RECURSIVE business_hierarchy AS (
SELECT bl.*,bl.id as 'key'
FROM business_layer bl
WHERE parent_id = #{parentId}
UNION ALL
-- 递归查询,选择当前节点的子项
SELECT bla.*,bla.id as 'key'
FROM business_layer bla
JOIN business_hierarchy bh ON bla.parent_id = bh.id
)
-- 最终查询
SELECT * FROM business_hierarchy;
</select> </select>
</mapper> </mapper>

Loading…
Cancel
Save