修改了institutionAndUser(String userName)接口,当userName有值事搜索出此用户以及它所在的机构,userName为null时搜索全部

添加getNext(String institutionId)接口,通过机构id返回此部门下的第一级部门和人员
添加getFirstInstitution()接口,返回机构第一级目录
This commit is contained in:
zhaokaiyao@91isoft.com
2021-07-21 10:03:49 +08:00
parent 63181803aa
commit 4cee0f6bf5
5 changed files with 108 additions and 10 deletions
@@ -50,10 +50,10 @@ public class TsInstitutionController extends BaseController<TsInstitution> {
* 查询所有机构和人员
* @return ResponseMessage<List<TsInstitution>>
*/
@ApiOperation("查询所有机构和人员")
@ApiOperation("查询所有机构和人员或根据名称查询")
@GetMapping("/institutionAndUser")
public ResponseMessage<List<TsInstitution>> getInstitutionAndUser(){
List<TsInstitution> institutions=tsInstitutionService.getInstitutionAndUser();
public ResponseMessage<List<TsInstitution>> getInstitutionAndUser(String userName){
List<TsInstitution> institutions=tsInstitutionService.getInstitutionAndUser(userName);
return Result.success(institutions);
}
@@ -76,6 +76,19 @@ public class TsInstitutionController extends BaseController<TsInstitution> {
return Result.success();
}
@ApiOperation("获得下一级的部门和人员")
@GetMapping("/getNext")
public List<TsInstitution> getNext(String institutionId){
return tsInstitutionService.getNext(institutionId);
}
@ApiOperation("获得第一级部门目录")
@GetMapping("/getFirstInstitution")
public List<TsInstitution> getFirstInstitution(){
return tsInstitutionService.getFirst();
}
public static void main(String[] args) {
// System.out.println(json);
}
@@ -16,12 +16,26 @@ import java.util.List;
* @since 2021-06-22
*/
public interface TsInstitutionDao extends BaseMapper<TsInstitution> {
/**
* 根据部门id查询此部门的子一级部门
* @return
*/
List<TsInstitution> selectNextInstitution(String institutionId);
/**
* 根据部门id查询此部门的子一级人员
* @return
*/
List<TsInstitution> selectNextUser(String institutionId);
/**
* 查询最高级机构及其人员
* @return List<TsInstitution>
*/
List<TsInstitution> selectRootAndUser();
List<TsInstitution> selectRootAndUser(String userName);
/**
* 根据父节点查询机构及其人员
@@ -15,7 +15,7 @@ import java.util.List;
/**
* <p>
*
*
* </p>
*
* @author zyl
@@ -59,6 +59,11 @@ public class TsInstitution extends BaseEntity {
@ApiModelProperty("是否有子节点(1有,0没有)")
private String hasChild;
@ApiModelProperty("用户")
private TsUserVO tsUserVO;
public TsInstitution() {
}
@@ -46,6 +46,9 @@ public class TsInstitutionServiceImpl extends ServiceImpl<TsInstitutionDao, TsIn
return institutionRoot;
}
/**
* 递归获取子机构
* @param tsInstitution:父机构
@@ -100,15 +103,19 @@ public class TsInstitutionServiceImpl extends ServiceImpl<TsInstitutionDao, TsIn
}*/
/**
* 查询所有机构
* 查询时带有userName时以userName为条件查询
* 没有时查询所有结果
* 根据查询下一级
*/
@Override
public List<TsInstitution> getInstitutionAndUser() {
public List<TsInstitution> getInstitutionAndUser(String userName) {
//查询第一层机构
List<TsInstitution> institutionRoot=tsInstitutionDao.selectRootAndUser();
List<TsInstitution> institutionRoot=tsInstitutionDao.selectRootAndUser(userName);
//把查到的数据结构修改,把用户放
for(TsInstitution tsInstitution:institutionRoot){
tsInstitution.setDisabled(true);
tsInstitution.setChildren(recursionGetInstitutionAndUser(tsInstitution));
tsInstitution.setChildren( recursionGetInstitutionAndUser(tsInstitution) );
for(TsUserVO user:tsInstitution.getUsers()){
if(tsInstitution.getChildren()==null){
tsInstitution.setChildren(new ArrayList<>());
@@ -145,6 +152,7 @@ public class TsInstitutionServiceImpl extends ServiceImpl<TsInstitutionDao, TsIn
System.out.println(2);
System.out.println(tsInstitution);
List<Object> institutionObject=new ArrayList<>();
//通过以此部门id作为父id查询它的子部门
List<TsInstitution> tsInstitutions=tsInstitutionDao.selectAndUserByParent(tsInstitution.getId());
for(TsInstitution tsInstitutionNode:tsInstitutions){
@@ -179,5 +187,30 @@ public class TsInstitutionServiceImpl extends ServiceImpl<TsInstitutionDao, TsIn
batchInsert(tsInstitutions);
}
/**
* 通过部门id获得这个部门下的下一级部门
* @return
*/
public List<TsInstitution> getNext(String institutionId){
List<TsInstitution> tsInstitutions = tsInstitutionDao.selectNextInstitution(institutionId);
List<TsInstitution> tsUsers=tsInstitutionDao.selectNextUser(institutionId);
for(TsInstitution tsInstitution:tsInstitutions){
tsInstitution.setDisabled(true);
}
tsInstitutions.addAll(tsUsers);
return tsInstitutions;
}
public List<TsInstitution> getFirst(){
//查询第一层机构
List<TsInstitution> tsInstitutions = tsInstitutionDao.selectRootAndUser(null);
for(TsInstitution tsInstitution:tsInstitutions){
tsInstitution.setDisabled(true);
}
return tsInstitutions;
}
}
@@ -14,11 +14,44 @@
<result column="institution_id" property="institutionId"/>
</collection>
</resultMap>
<resultMap id="TsInstitution" type="com.adc.da.slrs.sarInstitution.entity.TsInstitution">
<result column="parent_id" property="parentId"/>
<result column="level" property="level"/>
<result column="name" property="name"/>
<result column="has_child" property="hasChild"/>
</resultMap>
<resultMap id="TsUser" type="com.adc.da.slrs.sarInstitution.entity.TsUserVO">
<result column="usid" property="id"/>
<result column="account" property="account"/>
<result column="uname" property="name"/>
<result column="institution_id" property="institutionId"/>
</resultMap>
<!-- 只查询这个部门下的子一级部门-->
<select id="selectNextInstitution" resultMap="TsInstitution">
select * from ts_institution
WHERE parent_id=#{institutionId}
</select>
<!-- 只查询这个部门下的子一级人员-->
<select id="selectNextUser" resultMap="TsUser">
select * from ts_user
WHERE institution_id=#{institutionId}
</select>
<select id="selectRootAndUser" resultMap="InstitutionAndUser">
select i.*,u.usid,u.account,u.uname,u.institution_id from ts_institution i
left join ts_user u
on i.id=u.institution_id
where i.parent_id not in (select id from ts_institution)
<if test="userName == null">
where i.parent_id not in (select id from ts_institution)
</if>
<if test="userName != null">
where u.uname like concat('%','${userName}','%')
</if>
</select>
<select id="selectAndUserByParent" resultMap="InstitutionAndUser">