Java开发笔记8(区域树列表查询)

根据车站id和pid两个参数查询

 

1.controller:

//二级区域列表展示(展示新的区域表b_stationregiontree表中的数据)
@PostMapping("/list-by-parentId")
public Result listByParentId(@RequestBody Map<String,String> map) {
String pid = map.get("pid");
//获取用户有权限查看的车站ID集合
Set<String> stationIds = this.getStationIds();
List<String> ids = new ArrayList<>(stationIds);
return Result.ok(stationRegionTreeService.listByParent(pid, ids));
}

2.service:

List<StationRegionTree> listByParent(String pid, List<String> ids);

3.Impl:

/**
* 设备区域列表展示
*/
@Override
public List<StationRegionTree> listByParent(String pid, List<String> stationIds) {
List<StationRegionTree> result;
//根节点
String key = "-1";
if (key.equals(pid) || org.apache.commons.lang3.StringUtils.isEmpty(pid)) {
result = stationRegionTreeDao.findStationByIds(stationIds);
} else {
result = stationRegionTreeDao.findByPid(pid);
}
return result;
}

4.dao:


/**
* 根据车站id查询区域(带分页)
* @param stationIds
* @return
*/
@Query(value = "select * from b_stationregiontree s where (select distinct b.s_id from b_stationregiontree a left join b_station_dict b on a.station_code = b.s_station_telecode) in ( :stationIds ) and s.parent_id = '1'",nativeQuery = true)
List<StationRegionTree> findStationByIds(@Param("stationIds") List<String> stationIds);

/**
* 根据parentId分页查询区域数据
* @param pid
* @return
*/
@Query("select s from StationRegionTree s where s.parent = :pid")
List<StationRegionTree> findByPid(@Param("pid")String pid);

5、entity:
package com.cars.ict.rbpsems.entity.controlpisled;

import com.fasterxml.jackson.annotation.JsonIgnoreProperties;
import lombok.Data;
import javax.persistence.*;
import java.util.Set;

/**
* Created by guosen on 2022/3/4.
*/
@Entity
@Data
@Table(name = "b_stationregiontree")
@JsonIgnoreProperties(value = {"hibernateLazyInitializer", "handler", "fieldHandler"})
public class StationRegionTree {

@Id
@SequenceGenerator(name="seq",sequenceName="oracle_seq")
@GeneratedValue(strategy=GenerationType.SEQUENCE, generator="seq")
private long id;

@Column(length = 20, name = "rela_tree_id")
private String relaTreeId;

/**
* 上級
*/
// @JsonIgnore
// @ManyToOne(fetch = FetchType.LAZY)
@Column(name = "parent_id")
private String parent;


@OneToMany(fetch = FetchType.EAGER, mappedBy = "parent")
//@OrderBy(value = "code asc")
private Set<StationRegionTree> children;

/**
* 车站基础信息值
*/
@Column(length = 20, name = "inf_value")
private String infValue;
/**
* 车站基础信息编码
*/
@Column(length = 500, name = "inf_code")
private String infCode;
/**
* 车站基础信息类型
*/
@Column(length = 2, name = "inf_type")
private String infType;
/**
* 车站基础信息名称
*/
@Column(length = 20, name = "inf_name")
private String infName;
/**
* 车站名称
*/
@Column(length = 20, name = "station_name")
private String stationName;
/**
* 车站基础信息标示
*/
@Column(length = 100, name = "inf_mark")
private String infMark;
/**
* 信息状态 
*/
@Column(length = 1, name = "rela_tree_state")
private String relaTreeState;

/**
* 车站编码 
*/
@Column(length = 20, name = "station_code")
private String stationCode;

}













posted @   sensen~||^_^|||&  阅读(216)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· 分享4款.NET开源、免费、实用的商城系统
· 全程不用写代码,我用AI程序员写了一个飞机大战
· MongoDB 8.0这个新功能碉堡了,比商业数据库还牛
· 白话解读 Dapr 1.15:你的「微服务管家」又秀新绝活了
· 记一次.NET内存居高不下排查解决与启示
点击右上角即可分享
微信分享提示