diff --git a/src/main/java/com/ccsens/carbasics/api/ManagementController.java b/src/main/java/com/ccsens/carbasics/api/ManagementController.java index fdaed48..0518aa5 100644 --- a/src/main/java/com/ccsens/carbasics/api/ManagementController.java +++ b/src/main/java/com/ccsens/carbasics/api/ManagementController.java @@ -143,5 +143,53 @@ public class ManagementController { return JsonResponse.newInstance().ok(); } + @MustLogin + @ApiOperation(value = "医院信息回显", notes = "") + @RequestMapping(value = "/queryHospitalById", method = RequestMethod.POST, produces = {"application/json;charset=UTF-8"}) + public JsonResponse queryHospitalById(@ApiParam @Validated @RequestBody QueryDto params) throws Exception{ + log.info("医院信息回显开始{}",params); + ManagementVo.HospitalInfoById hospitalInfoById = managementService.queryHospitalById(params.getParam(),params.getUserId()); + log.info("医院信息回显结束{}",hospitalInfoById); + return JsonResponse.newInstance().ok(hospitalInfoById); + } + + @MustLogin + @ApiOperation(value = "部门信息回显", notes = "") + @RequestMapping(value = "/queryDepartmentById", method = RequestMethod.POST, produces = {"application/json;charset=UTF-8"}) + public JsonResponse queryDepartmentById(@ApiParam @Validated @RequestBody QueryDto params) throws Exception{ + log.info("部门信息回显开始{}",params); + ManagementVo.DepartmentById departmentById = managementService.queryDepartmentById(params.getParam(),params.getUserId()); + log.info("部门信息回显结束{}",departmentById); + return JsonResponse.newInstance().ok(departmentById); + } + + @MustLogin + @ApiOperation(value = "职位信息回显", notes = "") + @RequestMapping(value = "/queryPositionById", method = RequestMethod.POST, produces = {"application/json;charset=UTF-8"}) + public JsonResponse queryPositionById(@ApiParam @Validated @RequestBody QueryDto params) throws Exception{ + log.info("职位信息回显开始{}",params); + ManagementVo.PositionById positionById = managementService.queryPositionById(params.getParam(),params.getUserId()); + log.info("职位信息回显结束{}",positionById); + return JsonResponse.newInstance().ok(positionById); + } + + @MustLogin + @ApiOperation(value = "查询可绑定角色列表", notes = "") + @RequestMapping(value = "/queryPositionType", method = RequestMethod.POST, produces = {"application/json;charset=UTF-8"}) + public JsonResponse> queryPositionType(@ApiParam @Validated @RequestBody QueryDto params) throws Exception{ + log.info("查询可绑定角色列表开始{}",params); + List positionTypeList = managementService.queryPositionType(params.getUserId()); + log.info("查询可绑定角色列表结束{}",positionTypeList); + return JsonResponse.newInstance().ok(positionTypeList); + } + @MustLogin + @ApiOperation(value = "绑定职位类型", notes = "") + @RequestMapping(value = "/bindPositionType", method = RequestMethod.POST, produces = {"application/json;charset=UTF-8"}) + public JsonResponse bindPositionType(@ApiParam @Validated @RequestBody QueryDto params) throws Exception{ + log.info("绑定职位类型开始{}",params); + managementService.bindPositionType(params.getParam(),params.getUserId()); + log.info("绑定职位类型结束"); + return JsonResponse.newInstance().ok(); + } } diff --git a/src/main/java/com/ccsens/carbasics/bean/dto/ManagementDto.java b/src/main/java/com/ccsens/carbasics/bean/dto/ManagementDto.java index cb90caa..29b968f 100644 --- a/src/main/java/com/ccsens/carbasics/bean/dto/ManagementDto.java +++ b/src/main/java/com/ccsens/carbasics/bean/dto/ManagementDto.java @@ -6,6 +6,7 @@ import lombok.Data; import javax.validation.constraints.NotBlank; import javax.validation.constraints.NotNull; +import java.util.List; /** * @author AUSU @@ -137,4 +138,19 @@ public class ManagementDto { private String positionName; } + @Data + @ApiModel("根据id回显-入参") + public static class QueryById { + @ApiModelProperty("主键id") + private Long id; + } + + @Data + @ApiModel("根据id回显-入参") + public static class BindType { + @ApiModelProperty("职位id") + private Long positionId; + @ApiModelProperty("职位类型id") + private List positionTypeIdList; + } } diff --git a/src/main/java/com/ccsens/carbasics/bean/vo/ManagementVo.java b/src/main/java/com/ccsens/carbasics/bean/vo/ManagementVo.java index 186940c..145083d 100644 --- a/src/main/java/com/ccsens/carbasics/bean/vo/ManagementVo.java +++ b/src/main/java/com/ccsens/carbasics/bean/vo/ManagementVo.java @@ -4,6 +4,7 @@ import io.swagger.annotations.ApiModel; import io.swagger.annotations.ApiModelProperty; import lombok.Data; +import javax.validation.constraints.NotNull; import java.util.List; /** @@ -84,4 +85,51 @@ public class ManagementVo { private String rName; } + @Data + @ApiModel("医院信息回显-返参") + public static class HospitalInfoById { + @ApiModelProperty("医院id") + private Long id; + @ApiModelProperty("等级id") + private Long levelId; + @ApiModelProperty("医院名称") + private String name; + @ApiModelProperty("省id") + private Long provinceId; + @ApiModelProperty("市id") + private Long cityId; + @ApiModelProperty("县id") + private Long countyId; + } + + @Data + @ApiModel("部门信息回显-返参") + public static class DepartmentById { + @ApiModelProperty("部门id") + private Long id; + @ApiModelProperty("部门名称") + private String name; + } + + @Data + @ApiModel("职位信息回显-返参") + public static class PositionById { + @ApiModelProperty("职位id") + private Long id; + @ApiModelProperty("名称") + private String name; + @ApiModelProperty("显示名称") + private String roleName; + } + + @Data + @ApiModel("职位类型-返参") + public static class PositionType { + @ApiModelProperty("职位id") + private Long typeId; + @ApiModelProperty("职位类型code") + private String code; + @ApiModelProperty("职位类型名称") + private String name; + } } diff --git a/src/main/java/com/ccsens/carbasics/persist/dao/OrganizationPositionTypeDao.java b/src/main/java/com/ccsens/carbasics/persist/dao/OrganizationPositionTypeDao.java index 391cc2b..79cd466 100644 --- a/src/main/java/com/ccsens/carbasics/persist/dao/OrganizationPositionTypeDao.java +++ b/src/main/java/com/ccsens/carbasics/persist/dao/OrganizationPositionTypeDao.java @@ -1,10 +1,13 @@ package com.ccsens.carbasics.persist.dao; import com.ccsens.carbasics.bean.po.OrganizationPositionType; +import com.ccsens.carbasics.bean.vo.ManagementVo; import com.ccsens.carbasics.persist.mapper.OrganizationPositionTypeMapper; import org.apache.ibatis.annotations.Param; import org.springframework.stereotype.Repository; +import java.util.List; + @Repository public interface OrganizationPositionTypeDao extends OrganizationPositionTypeMapper { /** @@ -13,4 +16,10 @@ public interface OrganizationPositionTypeDao extends OrganizationPositionTypeMap * @return 职位类型 */ OrganizationPositionType queryByCode(@Param("positionCode") String positionCode); + + /** + * 查询所有的职位类型 + * @return 职位类型列表 + */ + List selectAll(); } diff --git a/src/main/java/com/ccsens/carbasics/persist/dao/OrganizationPositionTypeRelationDao.java b/src/main/java/com/ccsens/carbasics/persist/dao/OrganizationPositionTypeRelationDao.java new file mode 100644 index 0000000..62df331 --- /dev/null +++ b/src/main/java/com/ccsens/carbasics/persist/dao/OrganizationPositionTypeRelationDao.java @@ -0,0 +1,27 @@ +package com.ccsens.carbasics.persist.dao; + +import com.ccsens.carbasics.bean.po.OrganizationPositionTypeRelation; +import com.ccsens.carbasics.persist.mapper.OrganizationPositionTypeRelationMapper; +import org.apache.ibatis.annotations.Param; +import org.springframework.stereotype.Repository; + +import java.util.List; + +/** + * @author AUSU + */ +@Repository +public interface OrganizationPositionTypeRelationDao extends OrganizationPositionTypeRelationMapper { + + /** + * 解除职位与角色的关系 + * @param positionId 职位id + */ + void unbindRole(@Param("positionId") Long positionId); + + /** + * 绑定职位与角色的关系 + * @param positionTypeRelationList 职位角色关联列表 + */ + void bindRole(@Param("positionTypeRelationList") List positionTypeRelationList); +} diff --git a/src/main/java/com/ccsens/carbasics/service/IManagementService.java b/src/main/java/com/ccsens/carbasics/service/IManagementService.java index af6ca0e..d538098 100644 --- a/src/main/java/com/ccsens/carbasics/service/IManagementService.java +++ b/src/main/java/com/ccsens/carbasics/service/IManagementService.java @@ -84,4 +84,40 @@ public interface IManagementService { * @param userId 用户id */ void updatePosition(ManagementDto.UpdatePosition param, Long userId); + + /** + * 医院信息回显 + * @param param 医院id + * @param userId 用户id + * @return 医院信息 + */ + ManagementVo.HospitalInfoById queryHospitalById(ManagementDto.QueryById param, Long userId); + /** + * 部门信息回显 + * @param param 部门id回显 + * @param userId 用户id + * @return 医院信息 + */ + ManagementVo.DepartmentById queryDepartmentById(ManagementDto.QueryById param, Long userId); + /** + * 职位信息回显 + * @param param 部门id回显 + * @param userId 用户id + * @return 医院信息 + */ + ManagementVo.PositionById queryPositionById(ManagementDto.QueryById param, Long userId); + + /** + * 查询职位类型列表 + * @param userId 用户id + * @return 类型列表 + */ + List queryPositionType(Long userId); + + /** + * 职位绑定职位类型 + * @param userId 用户id + * @param param 职位id与职位类型id + */ + void bindPositionType(ManagementDto.BindType param,Long userId); } diff --git a/src/main/java/com/ccsens/carbasics/service/ManagementService.java b/src/main/java/com/ccsens/carbasics/service/ManagementService.java index 054e10e..6a1bbfc 100644 --- a/src/main/java/com/ccsens/carbasics/service/ManagementService.java +++ b/src/main/java/com/ccsens/carbasics/service/ManagementService.java @@ -50,7 +50,7 @@ public class ManagementService implements IManagementService { @Resource private OrganizationDepartmentDao departmentDao; @Resource - private OrganizationPositionTypeRelationMapper positionTypeRelationMapper; + private OrganizationPositionTypeRelationDao positionTypeRelationDao; @Resource private Snowflake snowflake; @@ -144,7 +144,7 @@ public class ManagementService implements IManagementService { positionTypeRelation.setId(snowflake.nextId()); positionTypeRelation.setPositionId(newPosition.getId()); positionTypeRelation.setPositionTypeId(positionType.getId()); - positionTypeRelationMapper.insertSelective(positionTypeRelation); + positionTypeRelationDao.insertSelective(positionTypeRelation); } } } @@ -233,4 +233,50 @@ public class ManagementService implements IManagementService { position.setName(param.getPositionName()); } + @Override + public ManagementVo.HospitalInfoById queryHospitalById(ManagementDto.QueryById param, Long userId) { + Organization organization = organizationDao.selectByPrimaryKey(param.getId()); + ManagementVo.HospitalInfoById hospitalInfoById = new ManagementVo.HospitalInfoById(); + BeanUtil.copyProperties(organization,hospitalInfoById); + return hospitalInfoById; + } + + @Override + public ManagementVo.DepartmentById queryDepartmentById(ManagementDto.QueryById param, Long userId) { + OrganizationDepartment department = departmentDao.selectByPrimaryKey(param.getId()); + ManagementVo.DepartmentById departmentById = new ManagementVo.DepartmentById(); + BeanUtil.copyProperties(department,departmentById); + return departmentById; + } + + @Override + public ManagementVo.PositionById queryPositionById(ManagementDto.QueryById param, Long userId) { + OrganizationPosition position = positionDao.selectByPrimaryKey(param.getId()); + ManagementVo.PositionById positionById = new ManagementVo.PositionById(); + BeanUtil.copyProperties(position,positionById); + return positionById; + } + + + @Override + public List queryPositionType(Long userId) { + return positionTypeDao.selectAll(); + } + + @Override + public void bindPositionType(ManagementDto.BindType param ,Long userId) { + List positionTypeRelationList = new ArrayList<>(); + if (CollectionUtil.isNotEmpty(param.getPositionTypeIdList())) { + positionTypeRelationDao.unbindRole(param.getPositionId()); + for (Long typeId : param.getPositionTypeIdList()) { + OrganizationPositionTypeRelation positionTypeRelation = new OrganizationPositionTypeRelation(); + positionTypeRelation.setId(snowflake.nextId()); + positionTypeRelation.setPositionId(param.getPositionId()); + positionTypeRelation.setPositionTypeId(typeId); + positionTypeRelationList.add(positionTypeRelation); + } + positionTypeRelationDao.bindRole(positionTypeRelationList); + } + } + } diff --git a/src/main/resources/mapper_dao/OrganizationPositionTypeDao.xml b/src/main/resources/mapper_dao/OrganizationPositionTypeDao.xml index 0522b6a..3f548c6 100644 --- a/src/main/resources/mapper_dao/OrganizationPositionTypeDao.xml +++ b/src/main/resources/mapper_dao/OrganizationPositionTypeDao.xml @@ -16,4 +16,16 @@ AND `code` = #{positionCode} + + \ No newline at end of file diff --git a/src/main/resources/mapper_dao/OrganizationPositionTypeRelationDao.xml b/src/main/resources/mapper_dao/OrganizationPositionTypeRelationDao.xml new file mode 100644 index 0000000..10144d3 --- /dev/null +++ b/src/main/resources/mapper_dao/OrganizationPositionTypeRelationDao.xml @@ -0,0 +1,26 @@ + + + + + + + INSERT INTO t_organization_position_type_relation ( + id, + position_id, + position_type_id + ) + VALUES + + (#{item.id},#{item.position_id},#{item.position_type_id}) + + + + + + UPDATE t_organization_position_type_relation + SET rec_status = 2 + WHERE position_id = #{positionId} + AND rec_status = 0 + + + \ No newline at end of file