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

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

@ -74,6 +74,14 @@
ORDER BY sort ORDER BY sort
</select> </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 id="lazyTree" resultMap="treeNodeResultMap" >
SELECT SELECT
dept.id, 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> 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); return DeptWrapper.build().listNodeVO(deptList);
} }
@Override
public List<DeptVO> limsTree(String tenantId) {
return ForestNodeMerger.merge(baseMapper.limsTree(tenantId));
}
} }

Loading…
Cancel
Save