Browse Source

机构管理,查询医院具体信息

test
lucky 4 years ago
parent
commit
edd2d78663
  1. 17
      src/main/java/com/ccsens/carbasics/bean/vo/ManagementVo.java
  2. 7
      src/main/java/com/ccsens/carbasics/persist/dao/OrganizationDao.java
  3. 20
      src/main/java/com/ccsens/carbasics/persist/dao/OrganizationDepartmentParentDao.java
  4. 28
      src/main/java/com/ccsens/carbasics/service/ManagementService.java
  5. 4
      src/main/resources/application.yml
  6. 102
      src/main/resources/mapper_dao/OrganizationDao.xml
  7. 14
      src/main/resources/mapper_dao/OrganizationDepartmentParentDao.xml

17
src/main/java/com/ccsens/carbasics/bean/vo/ManagementVo.java

@ -30,8 +30,19 @@ public class ManagementVo {
private String name;
}
@Data
@ApiModel("医院具体信息-返参")
public static class Hospital {
@ApiModelProperty("医院id")
private Long id;
@ApiModelProperty("医院名称")
private String hName;
@ApiModelProperty("部门列表")
List<HospitalData> hospitalDataList;
}
@Data
@ApiModel("部门信息")
public static class HospitalData {
@ApiModelProperty("部门id")
private Long did;
@ -48,7 +59,7 @@ public class ManagementVo {
@ApiModelProperty("职位Id")
private Long pid;
@ApiModelProperty("职位名称")
private String name;
private String pName;
@ApiModelProperty("职位关联的角色")
List<RoleInfo> roleList;
@ApiModelProperty("职位下的角色列表")
@ -60,7 +71,7 @@ public class ManagementVo {
@ApiModelProperty("成员id")
private Long mid;
@ApiModelProperty("成员名称")
private String name;
private String mName;
@ApiModelProperty("手机号")
private String phone;
}
@ -70,7 +81,7 @@ public class ManagementVo {
@ApiModelProperty("角色id")
private Long rid;
@ApiModelProperty("角色名称")
private String name;
private String rName;
}
}

7
src/main/java/com/ccsens/carbasics/persist/dao/OrganizationDao.java

@ -151,4 +151,11 @@ public interface OrganizationDao extends OrganizationMapper {
* @return 医院的部门信息
*/
List<ManagementVo.HospitalData> queryDepartmentData(@Param("param") ManagementDto.QueryHospitalInfo param);
/**
* 递归查询查询下级部门
* @param did 部门id
* @return 下级部门具体信息
*/
ManagementVo.HospitalData querySonDepartmentData(@Param("did") Long did);
}

20
src/main/java/com/ccsens/carbasics/persist/dao/OrganizationDepartmentParentDao.java

@ -0,0 +1,20 @@
package com.ccsens.carbasics.persist.dao;
import com.ccsens.carbasics.persist.mapper.OrganizationDepartmentParentMapper;
import org.apache.ibatis.annotations.Param;
import org.springframework.stereotype.Repository;
import java.util.List;
/**
* @author AUSU
*/
@Repository
public interface OrganizationDepartmentParentDao extends OrganizationDepartmentParentMapper {
/**
* 查询部门的下级部门id
* @param departmentId 部门id
* @return 部门的下级部门id
*/
List<Long> querySonDepartmentId(@Param("did") Long departmentId);
}

28
src/main/java/com/ccsens/carbasics/service/ManagementService.java

@ -1,12 +1,15 @@
package com.ccsens.carbasics.service;
import cn.hutool.core.collection.CollectionUtil;
import com.ccsens.carbasics.bean.dto.ManagementDto;
import com.ccsens.carbasics.bean.po.OrganizationDepartment;
import com.ccsens.carbasics.bean.po.OrganizationDepartmentParent;
import com.ccsens.carbasics.bean.po.OrganizationLevel;
import com.ccsens.carbasics.bean.po.OrganizationLevelExample;
import com.ccsens.carbasics.bean.vo.ManagementVo;
import com.ccsens.carbasics.persist.dao.OrganizationDao;
import com.ccsens.carbasics.persist.dao.OrganizationDepartmentDao;
import com.ccsens.carbasics.persist.dao.OrganizationDepartmentParentDao;
import com.ccsens.carbasics.persist.dao.OrganizationLevelDao;
import com.ccsens.carbasics.persist.mapper.OrganizationLevelMapper;
import lombok.extern.slf4j.Slf4j;
@ -16,6 +19,7 @@ import org.springframework.transaction.annotation.Propagation;
import org.springframework.transaction.annotation.Transactional;
import javax.annotation.Resource;
import java.util.ArrayList;
import java.util.List;
@ -28,6 +32,8 @@ public class ManagementService implements IManagementService {
private OrganizationLevelDao organizationLevelDao;
@Resource
private OrganizationDao organizationDao;
@Resource
private OrganizationDepartmentParentDao departmentParentDao;
@Override
public List<ManagementVo.LevelInfo> queryLevel(Long userId) {
@ -42,7 +48,27 @@ public class ManagementService implements IManagementService {
@Override
public List<ManagementVo.HospitalData> queryHospitalInfo(ManagementDto.QueryHospitalInfo param, Long userId) {
List<ManagementVo.HospitalData> hospitalData = organizationDao.queryDepartmentData(param);
return null;
if (CollectionUtil.isNotEmpty(hospitalData)) {
for (ManagementVo.HospitalData hospitalDatum : hospitalData) {
querySonDepartment(hospitalDatum);
}
}
return hospitalData;
}
public void querySonDepartment(ManagementVo.HospitalData hospitalDatum) {
List<Long> sonIdList = departmentParentDao.querySonDepartmentId(hospitalDatum.getDid());
log.info("部门{}的下级部门{}:",hospitalDatum.getDid(),sonIdList);
if (CollectionUtil.isNotEmpty(sonIdList)) {
ArrayList<ManagementVo.HospitalData> sonList = new ArrayList<>();
for (Long did : sonIdList) {
ManagementVo.HospitalData sonDepartmentData = organizationDao.querySonDepartmentData(did);
sonList.add(sonDepartmentData);
querySonDepartment(sonDepartmentData);
}
hospitalDatum.setSonDepartment(sonList);
}
}
}

4
src/main/resources/application.yml

@ -1,4 +1,4 @@
spring:
profiles:
active: pre
include: common, util-pre
active: test
include: common, util-test

102
src/main/resources/mapper_dao/OrganizationDao.xml

@ -894,14 +894,106 @@
</select>
<resultMap id="departmentData" type="com.ccsens.carbasics.bean.vo.OrganizationVo$Basic">
<id property="organizationId" column="organizationId"/>
<collection property="roles" ofType="String" javaType="List">
<result column="role"/>
<resultMap id="departmentData" type="com.ccsens.carbasics.bean.vo.ManagementVo$Hospital">
<id property="id" column="id"/>
<result property="hName" column="hName"/>
<collection property="hospitalDataList" javaType="List" ofType="com.ccsens.carbasics.bean.vo.ManagementVo$HospitalData">
<id property="did" column="did"/>
<result property="departmentName" column="departmentName"/>
<collection property="positionInfoList" javaType="List" ofType="com.ccsens.carbasics.bean.vo.ManagementVo$PositionInfo">
<id property="pid" column="pid"/>
<result property="pName" column="pName"/>
<collection property="roleList" javaType="List" ofType="com.ccsens.carbasics.bean.vo.ManagementVo$RoleInfo">
<id property="rid" column="rid"/>
<result property="rName" column="rName"/>
</collection>
<collection property="memberInfoList" javaType="List" ofType="com.ccsens.carbasics.bean.vo.ManagementVo$MemberInfo">
<id property="mid" column="mid"/>
<result property="mName" column="mName"/>
<result property="phone" column="phone"/>
</collection>
</collection>
</collection>
</resultMap>
<select id="queryDepartmentData" resultMap="departmentData">
<resultMap id="departmentData1" type="com.ccsens.carbasics.bean.vo.ManagementVo$HospitalData">
<id property="did" column="did"/>
<result property="departmentName" column="departmentName"/>
<collection property="positionInfoList" javaType="List" ofType="com.ccsens.carbasics.bean.vo.ManagementVo$PositionInfo">
<id property="pid" column="pid"/>
<result property="pName" column="pName"/>
<collection property="roleList" javaType="List" ofType="com.ccsens.carbasics.bean.vo.ManagementVo$RoleInfo">
<id property="rid" column="rid"/>
<result property="rName" column="rName"/>
</collection>
<collection property="memberInfoList" javaType="List" ofType="com.ccsens.carbasics.bean.vo.ManagementVo$MemberInfo">
<id property="mid" column="mid"/>
<result property="mName" column="mName"/>
<result property="phone" column="phone"/>
</collection>
</collection>
</resultMap>
<select id="queryDepartmentData" resultMap="departmentData1">
SELECT
o.id,
o.`name` AS hName,
od.id AS did,
od.`name` AS departmentName,
op.id AS pid,
op.role_name AS pName,
pt.id AS rid,
pt.`name` AS rName,
m.id AS mid,
m.`name` AS mName,
m.contact AS phone
FROM
t_organization AS o
LEFT JOIN t_organization_department AS od ON o.id = od.organization_id
LEFT JOIN t_organization_position AS op ON od.id = op.department_id
LEFT JOIN t_organization_position_type_relation AS ptr ON ptr.position_id = op.id
AND ptr.rec_status = 0
LEFT JOIN t_organization_position_type AS pt ON ptr.position_type_id = pt.id
AND pt.rec_status = 0
LEFT JOIN t_organization_member_position AS mp ON mp.position_id = op.id
AND mp.rec_status = 0
LEFT JOIN t_organization_member AS m ON mp.member_id = m.id
AND m.rec_status = 0
WHERE
o.rec_status = 0
AND o.id = #{param.id}
AND od.rec_status = 0
AND op.rec_status = 0
</select>
<select id="querySonDepartmentData" resultMap="departmentData1">
SELECT
od.id AS did,
od.`name` AS departmentName,
op.id AS pid,
op.role_name AS pName,
pt.id AS rid,
pt.`name` AS rName,
m.id AS mid,
m.`name` AS mName,
m.contact AS phone
FROM
t_organization_department AS od
LEFT JOIN t_organization_position AS op ON od.id = op.department_id
LEFT JOIN t_organization_position_type_relation AS ptr ON ptr.position_id = op.id
AND ptr.rec_status = 0
LEFT JOIN t_organization_position_type AS pt ON ptr.position_type_id = pt.id
AND pt.rec_status = 0
LEFT JOIN t_organization_member_position AS mp ON mp.position_id = op.id
AND mp.rec_status = 0
LEFT JOIN t_organization_member AS m ON mp.member_id = m.id
AND m.rec_status = 0
WHERE
od.id = #{did}
AND od.rec_status = 0
AND op.rec_status = 0
</select>
</mapper>

14
src/main/resources/mapper_dao/OrganizationDepartmentParentDao.xml

@ -0,0 +1,14 @@
<?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.ccsens.carbasics.persist.dao.OrganizationDepartmentParentDao">
<select id="querySonDepartmentId" resultType="java.lang.Long">
SELECT
department_id
FROM
t_organization_department_parent
WHERE
rec_status = 0
AND parent_id = #{did}
</select>
</mapper>
Loading…
Cancel
Save