查询机构人员

This commit is contained in:
root
2021-07-01 18:17:04 +08:00
parent 462062e6b5
commit 086c387165
10 changed files with 245 additions and 9 deletions
@@ -3,7 +3,7 @@
# 数据库配置
#=============================================
spring.datasource.driverClassName = com.mysql.cj.jdbc.Driver
spring.datasource.url = jdbc:mysql://39.100.23.127:3306/foton_slrs_test?useUnicode=true&characterEncoding=utf8&serverTimezone=UTC&useSSL=false
spring.datasource.url = jdbc:mysql://192.168.10.47:3306/foton_slrs_test?useUnicode=true&characterEncoding=utf8&serverTimezone=UTC&useSSL=false
spring.datasource.username = root
spring.datasource.password = root
@@ -47,6 +47,18 @@ public class TsInstitutionController extends BaseController<TsInstitution> {
return Result.success(institutions);
}
/**
* 查询所有机构和人员
* @return ResponseMessage<List<TsInstitution>>
*/
@ApiOperation("查询所有机构和人员")
@GetMapping("/institutionAndUser")
public ResponseMessage<List<TsInstitution>> getInstitutionAndUser(){
List<TsInstitution> institutions=tsInstitutionService.getInstitutionAndUser();
return Result.success(institutions);
}
/**
* 查询机构人员
* @param institutionId:机构ID
@@ -1,8 +1,11 @@
package com.adc.da.slrs.sarInstitution.dao;
import com.adc.da.slrs.sarInstitution.entity.InstitutionAndUser;
import com.adc.da.slrs.sarInstitution.entity.TsInstitution;
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import java.util.List;
/**
* <p>
* Mapper 接口
@@ -13,4 +16,16 @@ import com.baomidou.mybatisplus.core.mapper.BaseMapper;
*/
public interface TsInstitutionDao extends BaseMapper<TsInstitution> {
/**
* 查询最高级机构及其人员
* @return List<TsInstitution>
*/
List<TsInstitution> selectRootAndUser();
/**
* 根据父节点查询机构及其人员
* @param parentId:父节点Id
* @return List<TsInstitution>
*/
List<TsInstitution> selectAndUserByParent(String parentId);
}
@@ -0,0 +1,13 @@
package com.adc.da.slrs.sarInstitution.entity;
import com.adc.da.slrs.sarUser.entity.TsUser;
import lombok.Data;
import java.util.List;
@Data
public class InstitutionAndUser {
private TsInstitution institution;
private List<TsUser> users;
private List<InstitutionAndUser> children;
}
@@ -1,8 +1,10 @@
package com.adc.da.slrs.sarInstitution.entity;
import com.adc.da.base.entity.BaseEntity;
import com.adc.da.slrs.sarUser.entity.TsUser;
import com.baomidou.mybatisplus.annotation.TableField;
import com.baomidou.mybatisplus.annotation.TableId;
import com.fasterxml.jackson.annotation.JsonIgnore;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
@@ -42,5 +44,14 @@ public class TsInstitution extends BaseEntity {
@TableField(exist = false)
@ApiModelProperty(value = "子机构")
private List<TsInstitution> children;
private List<Object> children;
@JsonIgnore
@TableField(exist = false)
@ApiModelProperty(value = "人员")
private List<TsUserVO> users;
@TableField(exist = false)
@ApiModelProperty("是否是机构")
private Boolean disabled;
}
@@ -0,0 +1,121 @@
package com.adc.da.slrs.sarInstitution.entity;
import com.adc.da.slrs.sarPosition.entity.TsPosition;
import com.baomidou.mybatisplus.annotation.TableField;
import com.baomidou.mybatisplus.annotation.TableId;
import com.fasterxml.jackson.annotation.JsonFormat;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import org.springframework.format.annotation.DateTimeFormat;
import javax.validation.constraints.NotNull;
import java.sql.Timestamp;
import java.util.List;
@Data
public class TsUserVO {
public interface disable{
}
@ApiModelProperty(value = "主键Id")
@NotNull(message = "userId不能为空",groups = {disable.class})
@TableId(value = "USID")
private String id;
@ApiModelProperty(value = "帐户")
@TableField("ACCOUNT")
private String account;
@ApiModelProperty(value = "密码")
@TableField("PASSWORD")
private String password;
@ApiModelProperty(value = "用户姓名")
@TableField("UNAME")
private String name;
@ApiModelProperty(value = "用户性别(1为男,2为女)")
@TableField("SEX")
private String sex;
@ApiModelProperty(value = "用户来源")
@TableField("USER_SOURCE")
private String userSource;
@ApiModelProperty(value = "用户手机号")
@TableField("PHONE")
private String phone;
@ApiModelProperty(value = "用户状态")
@TableField("STATE")
private String state;
@ApiModelProperty(value = "用户邮箱")
@TableField("EMAIL")
private String email;
@ApiModelProperty(value = "所属部门名称")
@TableField("INSTITUTION_NAME")
private String institutionName;
@ApiModelProperty(value = "所属部门ID")
@TableField("INSTITUTION_ID")
private String institutionId;
@ApiModelProperty(value = "岗位名")
@TableField("POSITION_NAME")
private String positionName;
@ApiModelProperty(value = "岗位ID")
@TableField("POSITION_ID")
private String positionId;
@ApiModelProperty(value = "工号")
@TableField("WORK_NUM")
private String workNum;
@ApiModelProperty(value = "备注")
@TableField("EXT_INFO")
private String extInfo;
@TableField("OPER_USER")
private String operUser;
@ApiModelProperty(value = "创建时间")
@TableField("CREATION_TIME")
@JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
@DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss")
private Timestamp creationTime;
@ApiModelProperty(value = "修改时间")
@TableField("MODIFY_TIME")
@JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
@DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss")
private Timestamp modifyTime;
@ApiModelProperty(value = "是否有效")
@TableField("VALID_FLAG")
private String validFlag;
@ApiModelProperty(value = "是否禁用(0为未禁用,1为已禁用)")
@NotNull(message = "disableFlag不能为空",groups = {disable.class})
@TableField("DISABLE_FLAG")
private String disableFlag;
@ApiModelProperty(value = "是否锁定")
@TableField("UNLOCK_FLAG")
private String unlockFlag;
@ApiModelProperty(value = "用户类型")
@TableField("USER_TYPE")
private String userType;
@ApiModelProperty(value = "对接单点登录用户ID")
@TableField("SSO_ID")
private String ssoId;
@ApiModelProperty(value = "岗位")
@TableField(exist = false)
private List<TsPosition> positions;
}
@@ -21,4 +21,5 @@ public interface ITsInstitutionService extends IService<TsInstitution> {
*/
List<TsInstitution> getInstitution();
List<TsInstitution> getInstitutionAndUser();
}
@@ -2,7 +2,9 @@ package com.adc.da.slrs.sarInstitution.service.impl;
import com.adc.da.slrs.sarInstitution.dao.TsInstitutionDao;
import com.adc.da.slrs.sarInstitution.entity.InstitutionAndUser;
import com.adc.da.slrs.sarInstitution.entity.TsInstitution;
import com.adc.da.slrs.sarInstitution.entity.TsUserVO;
import com.adc.da.slrs.sarInstitution.service.ITsInstitutionService;
import com.adc.da.slrs.sarUser.entity.TsUser;
import com.adc.da.slrs.sarUser.service.ITsUserService;
@@ -11,6 +13,7 @@ import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import java.util.ArrayList;
import java.util.List;
/**
@@ -40,6 +43,40 @@ public class TsInstitutionServiceImpl extends ServiceImpl<TsInstitutionDao, TsIn
}
return institutionRoot;
}
/**
* 递归获取子机构
* @param tsInstitution:父机构
* @return List<TsInstitution>
*/
private List<Object> recursionGetInstitution(TsInstitution tsInstitution){
List<Object> institutionObject=new ArrayList<>();
QueryWrapper<TsInstitution> institutionQueryWrapper=new QueryWrapper<>();
institutionQueryWrapper.eq("parent_id",tsInstitution.getId());
institutionQueryWrapper.eq("level",tsInstitution.getLevel()+1);
List<TsInstitution> tsInstitutions=tsInstitutionDao.selectList(institutionQueryWrapper);
for(TsInstitution tsInstitutionNode:tsInstitutions){
tsInstitutionNode.setChildren(recursionGetInstitution(tsInstitutionNode));
institutionObject.add(tsInstitutionNode);
}
return institutionObject;
}
/**
* 查询所有机构
*/
@Override
public List<TsInstitution> getInstitutionAndUser() {
//查询第一层机构
List<TsInstitution> institutionRoot=tsInstitutionDao.selectRootAndUser();
for(TsInstitution tsInstitution:institutionRoot){
tsInstitution.setDisabled(true);
tsInstitution.setChildren(recursionGetInstitutionAndUser(tsInstitution));
for(TsUserVO user:tsInstitution.getUsers()){
tsInstitution.getChildren().add(user);
}
}
return institutionRoot;
}
@@ -48,14 +85,17 @@ public class TsInstitutionServiceImpl extends ServiceImpl<TsInstitutionDao, TsIn
* @param tsInstitution:父机构
* @return List<TsInstitution>
*/
private List<TsInstitution> recursionGetInstitution(TsInstitution tsInstitution){
QueryWrapper<TsInstitution> institutionQueryWrapper=new QueryWrapper<>();
institutionQueryWrapper.eq("parent_id",tsInstitution.getId());
institutionQueryWrapper.eq("level",tsInstitution.getLevel()+1);
List<TsInstitution> tsInstitutions=tsInstitutionDao.selectList(institutionQueryWrapper);
private List<Object> recursionGetInstitutionAndUser(TsInstitution tsInstitution){
List<Object> institutionObject=new ArrayList<>();
List<TsInstitution> tsInstitutions=tsInstitutionDao.selectAndUserByParent(tsInstitution.getId());
for(TsInstitution tsInstitutionNode:tsInstitutions){
tsInstitutionNode.setDisabled(true);
tsInstitutionNode.setChildren(recursionGetInstitution(tsInstitutionNode));
institutionObject.add(tsInstitutionNode);
for(TsUserVO user:tsInstitutionNode.getUsers()){
tsInstitutionNode.getChildren().add(user);
}
}
return tsInstitutions;
return institutionObject;
}
}
@@ -1,5 +1,29 @@
<?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="com.adc.da.slrs.sarInstitution.dao.TsInstitutionDao">
<resultMap id="InstitutionAndUser" type="com.adc.da.slrs.sarInstitution.entity.TsInstitution">
<id column="id" property="id"/>
<result column="parent_id" property="parentId"/>
<result column="level" property="level"/>
<result column="name" property="name"/>
<collection property="users" ofType="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"/>
</collection>
</resultMap>
<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 is null or i.parent_id=''
</select>
<select id="selectAndUserByParent" 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 = #{parentId}
</select>
</mapper>
@@ -24,7 +24,6 @@
from ts_dictionary as t_d left join ts_dictype as t_d_t on t_d.ID=t_d_t.DIC_ID
where
t_d.ENABLE=0 and
t_d.DICTION_TYPE='SEL_OPTION' and
t_d_t.DIC_ID is not null and
t_d_t.DIC_TYPE_NAME is not null and
t_d.DICTIONARY_NAME is not null