实验室下拉接口-树形结构

master
litao 1 year ago
parent 54a64f1c08
commit a49d259a40
  1. 216
      src/main/java/org/springblade/modules/system/controller/DeptController.java
  2. 1
      src/main/java/org/springblade/modules/system/mapper/DeptMapper.java
  3. 8
      src/main/java/org/springblade/modules/system/mapper/DeptMapper.xml
  4. 2
      src/main/java/org/springblade/modules/system/pojo/entity/Dept.java
  5. 1
      src/main/java/org/springblade/modules/system/service/IDeptService.java
  6. 5
      src/main/java/org/springblade/modules/system/service/impl/DeptServiceImpl.java

@ -75,118 +75,126 @@ import static org.springblade.core.cache.constant.CacheConstant.SYS_CACHE;
@Tag(name = "部门", description = "部门")
public class DeptController extends BladeController {
private final IDeptService deptService;
private final IDeptService deptService;
/**
* 详情
*/
@GetMapping("/detail")
@ApiOperationSupport(order = 1)
@Operation(summary = "详情", description = "传入dept")
public R<DeptVO> detail(Dept dept) {
Dept detail = deptService.getOne(Condition.getQueryWrapper(dept));
return R.data(DeptWrapper.build().entityVO(detail));
}
/**
* 详情
*/
@GetMapping("/detail")
@ApiOperationSupport(order = 1)
@Operation(summary = "详情", description = "传入dept")
public R<DeptVO> detail(Dept dept) {
Dept detail = deptService.getOne(Condition.getQueryWrapper(dept));
return R.data(DeptWrapper.build().entityVO(detail));
}
/**
* 列表
*/
@GetMapping("/list")
@Parameters({
@Parameter(name = "deptName", description = "部门名称", in = ParameterIn.QUERY, schema = @Schema(type = "string")),
@Parameter(name = "fullName", description = "部门全称", in = ParameterIn.QUERY, schema = @Schema(type = "string"))
})
@ApiOperationSupport(order = 2)
@Operation(summary = "列表", description = "传入dept")
public R<List<DeptVO>> list(@Parameter(hidden = true) @RequestParam Map<String, Object> dept, BladeUser bladeUser) {
QueryWrapper<Dept> queryWrapper = Condition.getQueryWrapper(dept, Dept.class);
List<Dept> list = deptService.list((!bladeUser.getTenantId().equals(BladeConstant.ADMIN_TENANT_ID)) ? queryWrapper.lambda().eq(Dept::getTenantId, bladeUser.getTenantId()) : queryWrapper);
return R.data(DeptWrapper.build().listNodeVO(list));
}
/**
* 列表
*/
@GetMapping("/list")
@Parameters({
@Parameter(name = "deptName", description = "部门名称", in = ParameterIn.QUERY, schema = @Schema(type = "string")),
@Parameter(name = "fullName", description = "部门全称", in = ParameterIn.QUERY, schema = @Schema(type = "string"))
})
@ApiOperationSupport(order = 2)
@Operation(summary = "列表", description = "传入dept")
public R<List<DeptVO>> list(@Parameter(hidden = true) @RequestParam Map<String, Object> dept, BladeUser bladeUser) {
QueryWrapper<Dept> queryWrapper = Condition.getQueryWrapper(dept, Dept.class);
List<Dept> list = deptService.list((!bladeUser.getTenantId().equals(BladeConstant.ADMIN_TENANT_ID)) ? queryWrapper.lambda().eq(Dept::getTenantId, bladeUser.getTenantId()) : queryWrapper);
return R.data(DeptWrapper.build().listNodeVO(list));
}
/**
* 懒加载列表
*/
@GetMapping("/lazy-list")
@Parameters({
@Parameter(name = "deptName", description = "部门名称", in = ParameterIn.QUERY, schema = @Schema(type = "string")),
@Parameter(name = "fullName", description = "部门全称", in = ParameterIn.QUERY, schema = @Schema(type = "string"))
})
@ApiOperationSupport(order = 3)
@Operation(summary = "懒加载列表", description = "传入dept")
public R<List<DeptVO>> lazyList(@Parameter(hidden = true) @RequestParam Map<String, Object> dept, Long parentId, BladeUser bladeUser) {
List<DeptVO> list = deptService.lazyList(bladeUser.getTenantId(), parentId, dept);
return R.data(DeptWrapper.build().listNodeLazyVO(list));
}
/**
* 懒加载列表
*/
@GetMapping("/lazy-list")
@Parameters({
@Parameter(name = "deptName", description = "部门名称", in = ParameterIn.QUERY, schema = @Schema(type = "string")),
@Parameter(name = "fullName", description = "部门全称", in = ParameterIn.QUERY, schema = @Schema(type = "string"))
})
@ApiOperationSupport(order = 3)
@Operation(summary = "懒加载列表", description = "传入dept")
public R<List<DeptVO>> lazyList(@Parameter(hidden = true) @RequestParam Map<String, Object> dept, Long parentId, BladeUser bladeUser) {
List<DeptVO> list = deptService.lazyList(bladeUser.getTenantId(), parentId, dept);
return R.data(DeptWrapper.build().listNodeLazyVO(list));
}
/**
* 获取部门树形结构
*/
@GetMapping("/tree")
@ApiOperationSupport(order = 4)
@Operation(summary = "树形结构", description = "树形结构")
public R<List<DeptVO>> tree(String tenantId, BladeUser bladeUser) {
List<DeptVO> tree = deptService.tree(Func.toStrWithEmpty(tenantId, bladeUser.getTenantId()));
return R.data(tree);
}
/**
* 获取部门树形结构
*/
@GetMapping("/tree")
@ApiOperationSupport(order = 4)
@Operation(summary = "树形结构", description = "树形结构")
public R<List<DeptVO>> tree(String tenantId, BladeUser bladeUser) {
List<DeptVO> tree = deptService.tree(Func.toStrWithEmpty(tenantId, bladeUser.getTenantId()));
return R.data(tree);
}
/**
* 懒加载获取部门树形结构
*/
@GetMapping("/lazy-tree")
@ApiOperationSupport(order = 5)
@Operation(summary = "懒加载树形结构", description = "树形结构")
public R<List<DeptVO>> lazyTree(String tenantId, Long parentId, BladeUser bladeUser) {
List<DeptVO> tree = deptService.lazyTree(Func.toStrWithEmpty(tenantId, bladeUser.getTenantId()), parentId);
return R.data(tree);
}
/**
* 懒加载获取部门树形结构
*/
@GetMapping("/lazy-tree")
@ApiOperationSupport(order = 5)
@Operation(summary = "懒加载树形结构", description = "树形结构")
public R<List<DeptVO>> lazyTree(String tenantId, Long parentId, BladeUser bladeUser) {
List<DeptVO> tree = deptService.lazyTree(Func.toStrWithEmpty(tenantId, bladeUser.getTenantId()), parentId);
return R.data(tree);
}
/**
* 新增或修改
*/
@PreAuth(RoleConstant.HAS_ROLE_ADMIN)
@PostMapping("/submit")
@ApiOperationSupport(order = 6)
@Operation(summary = "新增或修改", description = "传入dept")
public R submit(@Valid @RequestBody Dept dept) {
if (deptService.submit(dept)) {
CacheUtil.clear(SYS_CACHE);
CacheUtil.clear(SYS_CACHE, Boolean.FALSE);
// 返回懒加载树更新节点所需字段
Kv kv = Kv.create().set("id", String.valueOf(dept.getId())).set("tenantId", dept.getTenantId())
.set("deptCategoryName", DictCache.getValue(DictEnum.ORG_CATEGORY, dept.getDeptCategory()));
return R.data(kv);
}
return R.fail("操作失败");
}
/**
* 新增或修改
*/
@PreAuth(RoleConstant.HAS_ROLE_ADMIN)
@PostMapping("/submit")
@ApiOperationSupport(order = 6)
@Operation(summary = "新增或修改", description = "传入dept")
public R submit(@Valid @RequestBody Dept dept) {
if (deptService.submit(dept)) {
CacheUtil.clear(SYS_CACHE);
CacheUtil.clear(SYS_CACHE, Boolean.FALSE);
// 返回懒加载树更新节点所需字段
Kv kv = Kv.create().set("id", String.valueOf(dept.getId())).set("tenantId", dept.getTenantId())
.set("deptCategoryName", DictCache.getValue(DictEnum.ORG_CATEGORY, dept.getDeptCategory()));
return R.data(kv);
}
return R.fail("操作失败");
}
/**
* 删除
*/
@PreAuth(RoleConstant.HAS_ROLE_ADMIN)
@PostMapping("/remove")
@ApiOperationSupport(order = 7)
@Operation(summary = "删除", description = "传入ids")
public R remove(@Parameter(description = "主键集合", required = true) @RequestParam String ids) {
CacheUtil.clear(SYS_CACHE);
CacheUtil.clear(SYS_CACHE, Boolean.FALSE);
return R.status(deptService.removeDept(ids));
}
/**
* 删除
*/
@PreAuth(RoleConstant.HAS_ROLE_ADMIN)
@PostMapping("/remove")
@ApiOperationSupport(order = 7)
@Operation(summary = "删除", description = "传入ids")
public R remove(@Parameter(description = "主键集合", required = true) @RequestParam String ids) {
CacheUtil.clear(SYS_CACHE);
CacheUtil.clear(SYS_CACHE, Boolean.FALSE);
return R.status(deptService.removeDept(ids));
}
/**
* 下拉数据源
*/
@GetMapping("/select")
@ApiOperationSupport(order = 8)
@Operation(summary = "下拉数据源", description = "传入id集合")
public R<List<Dept>> select(Long userId, String deptId) {
if (Func.isNotEmpty(userId)) {
User user = UserCache.getUser(userId);
deptId = user.getDeptId();
}
List<Dept> list = deptService.list(Wrappers.<Dept>lambdaQuery().in(Dept::getId, Func.toLongList(deptId)));
return R.data(list);
}
/**
* 下拉数据源
*/
@GetMapping("/select")
@ApiOperationSupport(order = 8)
@Operation(summary = "下拉数据源", description = "传入id集合")
public R<List<Dept>> select(Long userId, String deptId) {
if (Func.isNotEmpty(userId)) {
User user = UserCache.getUser(userId);
deptId = user.getDeptId();
}
List<Dept> list = deptService.list(Wrappers.<Dept>lambdaQuery().in(Dept::getId, Func.toLongList(deptId)));
return R.data(list);
}
/**
* 实验室下拉
*/
@GetMapping("/limsTree")
public R<List<DeptVO>> limsTree(String tenantId) {
List<DeptVO> tree = deptService.limsTree(Func.toStrWithEmpty(tenantId, "000000"));
return R.data(tree);
}
}

@ -56,6 +56,7 @@ public interface DeptMapper extends BaseMapper<Dept> {
* @return
*/
List<DeptVO> tree(String tenantId);
List<DeptVO> limsTree(String tenantId);
/**
* 懒加载获取树形节点

@ -74,6 +74,14 @@
ORDER BY sort
</select>
<select id="limsTree" resultMap="treeNodeResultMap">
select id, parent_id, dept_name as title, id as "value", id as "key" from blade_dept where is_deleted = 0 and dept_category in (5,6)
<if test="_parameter!=null and _parameter!=''">
and tenant_id = #{_parameter}
</if>
ORDER BY sort
</select>
<select id="lazyTree" resultMap="treeNodeResultMap" >
SELECT
dept.id,

@ -124,7 +124,7 @@ public class Dept implements Serializable {
* 部门种类
* 实验室房间
*/
private Integer deptCat;
// private Integer deptCat;
}

@ -133,4 +133,5 @@ public interface IDeptService extends IService<Dept> {
*/
List<DeptVO> search(String deptName, Long parentId);
List<DeptVO> limsTree(String tenantId);
}

@ -183,4 +183,9 @@ public class DeptServiceImpl extends ServiceImpl<DeptMapper, Dept> implements ID
return DeptWrapper.build().listNodeVO(deptList);
}
@Override
public List<DeptVO> limsTree(String tenantId) {
return ForestNodeMerger.merge(baseMapper.limsTree(tenantId));
}
}

Loading…
Cancel
Save