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 io.swagger.v3.oas.annotations.Operation;
import io.swagger.v3.oas.annotations.tags.Tag;
import jakarta.validation.constraints.NotEmpty;
import lombok.RequiredArgsConstructor;
@ -22,6 +23,8 @@ import org.dromara.common.web.core.BaseController;
import org.springframework.validation.annotation.Validated;
import org.springframework.web.bind.annotation.*;
import java.util.List;
@Slf4j
@Validated
@RequiredArgsConstructor
@ -34,15 +37,23 @@ public class BusinessLayerController extends BaseController {
/**
* 图层模块列表
*/
@Operation(summary ="图层模块列表",description = "图层模块列表")
@SaCheckPermission("business:layer:list")
@GetMapping("/list")
public TableDataInfo<BusinessLayerVo> list(BusinessLayerBo bo, PageQuery pageQuery) {
return businessLayerService.queryPageList(bo, pageQuery);
public R<TableDataInfo<BusinessLayerVo>> list(BusinessLayerBo bo, PageQuery 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")
@Log(title = "图层新增", businessType = BusinessType.INSERT)
@RepeatSubmit()
@ -55,6 +66,7 @@ public class BusinessLayerController extends BaseController {
* 图层修改
*/
@SaCheckPermission("business:layer:edit")
@Operation(summary ="图层修改",description = "图层修改")
@Log(title = "图层修改", businessType = BusinessType.UPDATE)
@RepeatSubmit()
@PutMapping()
@ -68,10 +80,10 @@ public class BusinessLayerController extends BaseController {
* @param id 主键
*/
@SaCheckPermission("business:task:remove")
@Operation(summary ="图层删除",description = "图层删除")
@Log(title = "图层删除", businessType = BusinessType.DELETE)
@DeleteMapping("/{id}")
public R<Void> remove(@NotEmpty(message = "主键不能为空")
@PathVariable Long id) {
@GetMapping("/delete")
public R<Void> remove(@RequestParam("id") Long 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 lombok.Data;
import lombok.EqualsAndHashCode;
import org.dromara.common.mybatis.core.domain.BaseEntity;
import org.dromara.common.translation.annotation.Translation;
import org.dromara.common.translation.constant.TransConstant;
@ -11,11 +12,8 @@ import java.io.Serial;
import java.util.Date;
@Data
@EqualsAndHashCode
@TableName("business_layer")
public class BusinessLayer {
@Serial
private static final long serialVersionUID = 1L;
@TableName(value = "business_layer", autoResultMap = true)
public class BusinessLayer extends BaseEntity {
/**
* id
@ -24,7 +22,6 @@ public class BusinessLayer {
private Long id;
private String layerName;
@ -32,11 +29,8 @@ public class BusinessLayer {
private Boolean enable;
/**
* 时间
* */
private Date createTime;
* 0菜单 1三维 2矢量 3影像
*/
private Integer layerType;
@Translation(type = TransConstant.DICT_TYPE_TO_LABEL, mapper = "layerType", other = "layer_type")
@ -47,18 +41,29 @@ public class BusinessLayer {
*/
private String layerUrl;
//租户id
private String tenantId;
//部门id
/**
* 部门id
*/
private Long deptId;
//部门名称
/**
* 部门名称
*/
private String deptName;
//备注
/**
* 备注
*/
private String remark;
//排序
/**
* 排序
*/
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;
//父部门id
private Integer parentId;
private Long parentId;
private String startTime;
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.util.Date;
import java.util.List;
@Data
@ExcelIgnoreUnannotated
@ -30,20 +31,26 @@ public class BusinessLayerVo {
*/
private Long id;
/**
* 用于前端渲染
*/
private Long key;
private String layerName;
/*0:禁用 1:启用*/
private Boolean enable;
/**
* 时间
* */
private Date createTime;
* 0菜单 1三维 2矢量 3影像
*/
private Integer layerType;
@Translation(type = TransConstant.DICT_TYPE_TO_LABEL, mapper = "layerType", other = "layer_type")
private String layerTypeName;
private String tenantId;
private Long deptId;
/**
@ -57,7 +64,10 @@ public class BusinessLayerVo {
//排序
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.vo.BusinessLayerVo;
import org.dromara.common.mybatis.core.mapper.BaseMapperPlus;
import java.util.List;
public interface BusinessLayerMapper extends BaseMapperPlus<BusinessLayer, BusinessLayerVo> {
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.TableDataInfo;
import java.util.List;
public interface IBusinessLayerService {
/**
@ -19,4 +21,7 @@ public interface IBusinessLayerService {
Boolean insert(BusinessLayerBo bo);
Boolean update(BusinessLayerBo bo);
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.springframework.stereotype.Service;
import java.util.ArrayList;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
@Slf4j
@RequiredArgsConstructor
@Service
public class BusinessLayerServiceImpl implements IBusinessLayerService {
private final BusinessLayerMapper baseMapper;
@Override
public TableDataInfo<BusinessLayerVo> queryPageList(BusinessLayerBo bo, PageQuery pageQuery) {
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);
}
@Override
public Boolean insert(BusinessLayerBo bo) {
BusinessLayer layerVo = Convert.convert( BusinessLayer.class,bo);
@ -44,4 +58,44 @@ public class BusinessLayerServiceImpl implements IBusinessLayerService {
public Boolean delete(Long id) {
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
t.id,
t.id as 'key',
t.layer_name as layerName,
t.enable,
t.remark,
@ -22,6 +23,7 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
FROM
business_layer t
<where>
t.parent_id = 0
<if test="bo.parentId != null and bo.parentId != ''">
and t.parent_id = #{bo.parentId}
</if>
@ -52,6 +54,23 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
</when>
</choose>
</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>
</mapper>

Loading…
Cancel
Save