skjcmanager/skjcmanager-service/skjcmanager-sm/src/main/java/cn/gistack/sm/sjztmd/controller/AttBasBaseController.java
New file @@ -0,0 +1,48 @@ package cn.gistack.sm.sjztmd.controller; import cn.gistack.sm.sjztmd.service.IAttAdBaseService; import cn.gistack.sm.sjztmd.service.IAttBasBaseService; import cn.gistack.sm.sjztmd.vo.AttAdBaseVO; import cn.gistack.sm.sjztmd.vo.AttBasBaseVO; import io.swagger.annotations.Api; import io.swagger.annotations.ApiImplicitParam; import io.swagger.annotations.ApiImplicitParams; import io.swagger.annotations.ApiOperation; import lombok.AllArgsConstructor; import lombok.extern.slf4j.Slf4j; import org.springblade.core.boot.ctrl.BladeController; import org.springblade.core.tool.api.R; import org.springblade.core.tool.node.ForestNodeMerger; import org.springframework.web.bind.annotation.GetMapping; import org.springframework.web.bind.annotation.RequestMapping; import org.springframework.web.bind.annotation.RestController; import java.util.List; /** * @PROJECT_NAME: skjcmanager * @DESCRIPTION: * @USER: aix * @DATE: 2023/9/1 15:36 */ @Slf4j @Api(tags = "中台水库") @RestController @RequestMapping("/sjztmd/attBas") @AllArgsConstructor public class AttBasBaseController extends BladeController { private final IAttBasBaseService attBasBaseService; @GetMapping("/selectAll") @ApiImplicitParams({ @ApiImplicitParam(name = "code", value = "区划编号", paramType = "query", dataType = "string"), }) @ApiOperation(value = "加载树列表", notes = "传入code") public R<List<AttBasBaseVO>> selectAll(String code) { List<AttBasBaseVO> list = attBasBaseService.lazyTree(code); return R.data(list); } } skjcmanager/skjcmanager-service/skjcmanager-sm/src/main/java/cn/gistack/sm/sjztmd/entity/AttBasBase.java
New file @@ -0,0 +1,52 @@ package cn.gistack.sm.sjztmd.entity; import com.baomidou.mybatisplus.annotation.TableField; import com.baomidou.mybatisplus.annotation.TableId; import com.baomidou.mybatisplus.annotation.TableName; import com.fasterxml.jackson.databind.annotation.JsonSerialize; import com.fasterxml.jackson.databind.ser.std.ToStringSerializer; import io.swagger.annotations.ApiModel; import io.swagger.annotations.ApiModelProperty; import lombok.Data; import java.io.Serializable; /** * @PROJECT_NAME: skjcmanager * @DESCRIPTION: * @USER: aix * @DATE: 2023/9/1 14:45 */ @Data @TableName("\"att_bas_base\"") @ApiModel(value = "流域对象", description = "流域对象") public class AttBasBase implements Serializable { private static final long serialVersionUID = 1L; /** * 主键 */ @JsonSerialize(using = ToStringSerializer.class) @ApiModelProperty(value = "主键") @TableField("\"code\"") @TableId("\"code\"") private String code; @TableField("\"name\"") private String name; @TableField("\"grad\"") private String grad; @TableField("\"longitude\"") private String longitude; @TableField("\"latitude\"") private String latitude; @TableField("\"ad_code\"") private String adCode; @TableField("\"area\"") private String area; @TableField("\"p_code\"") private String pCode; @TableField("\"p_name\"") private String pName; } skjcmanager/skjcmanager-service/skjcmanager-sm/src/main/java/cn/gistack/sm/sjztmd/mapper/AttBasBaseMapper.java
New file @@ -0,0 +1,21 @@ package cn.gistack.sm.sjztmd.mapper; import cn.gistack.sm.sjztmd.entity.AttBasBase; import cn.gistack.sm.sjztmd.vo.AttBasBaseVO; import com.baomidou.mybatisplus.core.mapper.BaseMapper; import java.util.List; import java.util.Map; /** * @PROJECT_NAME: skjcmanager * @DESCRIPTION: * @USER: aix * @DATE: 2023/9/1 14:51 */ public interface AttBasBaseMapper extends BaseMapper<AttBasBase> { List<AttBasBaseVO> lazyTree(String code); List<AttBasBaseVO> selectListByCode(String code); } skjcmanager/skjcmanager-service/skjcmanager-sm/src/main/java/cn/gistack/sm/sjztmd/mapper/AttBasBaseMapper.xml
New file @@ -0,0 +1,44 @@ <?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="cn.gistack.sm.sjztmd.mapper.AttBasBaseMapper"> <resultMap id="treeNodeResultMap" type="org.springblade.core.tool.node.TreeNode"> <id column="id" property="id"/> <result column="parent_id" property="parentId"/> <result column="title" property="title"/> <result column="value" property="value"/> <result column="key" property="key"/> <result column="has_children" property="hasChildren"/> </resultMap> <!--namespace根据自己需要创建的的mapper的路径和名称填写--> <select id="lazyTree" resultType="cn.gistack.sm.sjztmd.vo.AttBasBaseVO"> select distinct a."code" AS "code", a."name" AS "name", a."grad" AS "grad", a."p_code" AS "pCode", ( SELECT CASE WHEN count( 1 ) > 0 THEN 1 ELSE 0 END FROM "SJZT_MD"."att_bas_base" WHERE "p_code" = a."code" ) AS "hasChildren" from "SJZT_MD"."att_bas_base" a left join "SJZT_MD"."rel_ad_bas_loc" b on (a."code" = b."bas_code" ) left join "SJZT_MD"."att_ad_base" b2 on (b."ad_code" = b2."p_ad_code" ) left join "SJZT_MD"."att_ad_base" b3 on (b2."guid" = b3."p_ad_code" ) left join "SJZT_MD"."att_ad_base" b4 on (b2."guid" = b4."p_ad_code" ) <where> <if test="param1!=null"> and (b."ad_code" = #{param1} or b2."ad_code" = #{param1} or b3."ad_code" = #{param1}) </if> and a."grad" = 1 </where> ORDER BY a."grad" </select> <select id="selectListByCode" resultType="cn.gistack.sm.sjztmd.vo.AttBasBaseVO"> select * from "SJZT_MD"."att_bas_base" <where> <if test="param1!=null"> and "p_code" = #{param1} </if> </where> </select> </mapper> skjcmanager/skjcmanager-service/skjcmanager-sm/src/main/java/cn/gistack/sm/sjztmd/service/IAttBasBaseService.java
New file @@ -0,0 +1,19 @@ package cn.gistack.sm.sjztmd.service; import cn.gistack.sm.sjztmd.entity.AttBasBase; import cn.gistack.sm.sjztmd.vo.AttBasBaseVO; import com.baomidou.mybatisplus.extension.service.IService; import java.util.List; /** * @PROJECT_NAME: skjcmanager * @DESCRIPTION: * @USER: aix * @DATE: 2023/9/1 15:19 */ public interface IAttBasBaseService extends IService<AttBasBase> { List<AttBasBaseVO> lazyTree(String code); } skjcmanager/skjcmanager-service/skjcmanager-sm/src/main/java/cn/gistack/sm/sjztmd/service/impl/AttBasBaseServiceImpl.java
New file @@ -0,0 +1,35 @@ package cn.gistack.sm.sjztmd.service.impl; import cn.gistack.sm.sjztmd.entity.AttBasBase; import cn.gistack.sm.sjztmd.mapper.AttBasBaseMapper; import cn.gistack.sm.sjztmd.service.IAttBasBaseService; import cn.gistack.sm.sjztmd.vo.AttBasBaseVO; import com.baomidou.dynamic.datasource.annotation.DS; import com.baomidou.mybatisplus.core.toolkit.Wrappers; import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; import org.springframework.stereotype.Service; import java.util.List; /** * @PROJECT_NAME: skjcmanager * @DESCRIPTION: * @USER: aix * @DATE: 2023/9/1 15:20 */ @Service @DS("zt") public class AttBasBaseServiceImpl extends ServiceImpl<AttBasBaseMapper, AttBasBase> implements IAttBasBaseService { @Override public List<AttBasBaseVO> lazyTree(String code) { List<AttBasBaseVO> list = baseMapper.lazyTree(code); for (AttBasBaseVO vo:list) { if (vo.getHasChildren()) { vo.setChildren(baseMapper.selectListByCode(vo.getCode())); } } return list; } } skjcmanager/skjcmanager-service/skjcmanager-sm/src/main/java/cn/gistack/sm/sjztmd/vo/AttBasBaseVO.java
New file @@ -0,0 +1,54 @@ /* * Copyright (c) 2018-2028, Chill Zhuang All rights reserved. * * Redistribution and use in source and binary forms, with or without * modification, are permitted provided that the following conditions are met: * * Redistributions of source code must retain the above copyright notice, * this list of conditions and the following disclaimer. * Redistributions in binary form must reproduce the above copyright * notice, this list of conditions and the following disclaimer in the * documentation and/or other materials provided with the distribution. * Neither the name of the dreamlu.net developer nor the names of its * contributors may be used to endorse or promote products derived from * this software without specific prior written permission. * Author: Chill 庄骞 (smallchill@163.com) */ package cn.gistack.sm.sjztmd.vo; import cn.gistack.sm.sjztmd.entity.AttAdBase; import cn.gistack.sm.sjztmd.entity.AttBasBase; import com.fasterxml.jackson.annotation.JsonInclude; import com.fasterxml.jackson.databind.annotation.JsonSerialize; import com.fasterxml.jackson.databind.ser.std.ToStringSerializer; import io.swagger.annotations.ApiModel; import lombok.Data; import lombok.EqualsAndHashCode; import org.springblade.core.tool.node.INode; import java.util.ArrayList; import java.util.List; /** * 实体类 * * @author Chill */ @Data @EqualsAndHashCode(callSuper = true) @ApiModel(value = "att_bas_base对象", description = "att_bas_base对象") public class AttBasBaseVO extends AttBasBase { /** * 子孙节点 */ @JsonInclude(JsonInclude.Include.NON_EMPTY) private List<AttBasBaseVO> children; /** * 是否有子孙节点 */ @JsonInclude(JsonInclude.Include.NON_EMPTY) private Boolean hasChildren; }