机构位置关系,岗位

This commit is contained in:
anxin
2025-02-26 19:07:18 +08:00
parent 0285cdb629
commit def047e59b
15 changed files with 636 additions and 20 deletions

View File

@@ -69,6 +69,7 @@ public class CabinetLocationController {
// 设置排序 // 设置排序
queryWrapper.orderByDesc("create_time"); queryWrapper.orderByDesc("create_time");
// 执行分页查询并转换为 locationQueryDtoPage // 执行分页查询并转换为 locationQueryDtoPage
Page<LocationQueryDto> locationQueryDtoPage = Page<LocationQueryDto> locationQueryDtoPage =
HisPageUtils.selectPage(locationMapper, queryWrapper, pageNo, pageSize, LocationQueryDto.class); HisPageUtils.selectPage(locationMapper, queryWrapper, pageNo, pageSize, LocationQueryDto.class);
@@ -80,14 +81,16 @@ public class CabinetLocationController {
/** /**
* 添加库房位置信息 * 添加库房位置信息
* *
* @param locationQueryDto 位置信息 * @param locationQueryDto 库房位置信息
*/ */
@PostMapping("/cabinet-location") @PostMapping("/cabinet-location")
public R<?> addLocation(@Validated @RequestBody LocationQueryDto locationQueryDto) { public R<?> addLocation(@Validated @RequestBody LocationQueryDto locationQueryDto) {
LocationQueryDto locationQuery = new LocationQueryDto(LocationForm.CABINET); // 设置为库房
// LocationQueryDto locationQuery = new LocationQueryDto(LocationForm.CABINET);
Location location = new Location(); Location location = new Location();
BeanUtils.copyProperties(locationQuery, location); locationQueryDto.setFormEnum(LocationForm.CABINET);
BeanUtils.copyProperties(locationQueryDto, location);
boolean saveLocationSuccess = locationService.save(location); boolean saveLocationSuccess = locationService.save(location);
@@ -97,21 +100,21 @@ public class CabinetLocationController {
} }
/** /**
* 获取位置需要编辑的信息 * 获取库房位置需要编辑的信息
* *
* @param locationId 位置信息 * @param locationId 库房位置信息Id
*/ */
@GetMapping("/cabinet-location-editById") @GetMapping("/cabinet-location-getById")
public R<?> getLocationById(@Validated @RequestParam Long locationId) { public R<?> getLocationById(@Validated @RequestParam Long locationId) {
Location location = locationService.getById(locationId); Location location = locationService.getById(locationId);
return R.ok(location, MessageUtils.createMessage(PromptMsgConstant.Common.M00002, new Object[] {"位置信息"})); return R.ok(location, MessageUtils.createMessage(PromptMsgConstant.Common.M00009, new Object[] {"位置信息"}));
} }
/** /**
* 编辑位置信息 * 编辑库房位置信息
* *
* @param location 位置信息 * @param location 库房位置信息
*/ */
@PutMapping("/cabinet-location") @PutMapping("/cabinet-location")
public R<?> editLocation(@Validated @RequestBody Location location) { public R<?> editLocation(@Validated @RequestBody Location location) {
@@ -124,9 +127,9 @@ public class CabinetLocationController {
} }
/** /**
* 删除位置信息 * 删除库房位置信息
* *
* @param locationId 主表id * @param locationId 库房位置信息Id
*/ */
@DeleteMapping("/cabinet-location") @DeleteMapping("/cabinet-location")
public R<?> deleteLocation(@RequestParam Long locationId) { public R<?> deleteLocation(@RequestParam Long locationId) {

View File

@@ -125,11 +125,11 @@ public class OrganizationController {
* *
* @param orgId 机构信息 * @param orgId 机构信息
*/ */
@GetMapping("/organization-editById") @GetMapping("/organization-getById")
public R<?> getOrganizationById(@Validated @RequestParam Long orgId) { public R<?> getOrganizationById(@Validated @RequestParam Long orgId) {
Organization organization = organizationService.getById(orgId); Organization organization = organizationService.getById(orgId);
return R.ok(organization, MessageUtils.createMessage(PromptMsgConstant.Common.M00002, new Object[] {"机构信息"})); return R.ok(organization, MessageUtils.createMessage(PromptMsgConstant.Common.M00009, new Object[] {"机构信息"}));
} }
/** /**

View File

@@ -0,0 +1,172 @@
/*
* Copyright ©2023 CJB-CNIT Team. All rights reserved
*/
package com.openhis.web.basedatamanage.controller;
import java.util.Arrays;
import java.util.HashSet;
import javax.servlet.http.HttpServletRequest;
import org.springframework.beans.BeanUtils;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.validation.annotation.Validated;
import org.springframework.web.bind.annotation.*;
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.core.common.core.domain.R;
import com.core.common.utils.MessageUtils;
import com.openhis.administration.domain.Location;
import com.openhis.administration.domain.OrganizationLocation;
import com.openhis.administration.mapper.OrganizationLocationMapper;
import com.openhis.administration.service.ILocationService;
import com.openhis.administration.service.IOrganizationLocationService;
import com.openhis.administration.service.IOrganizationService;
import com.openhis.common.constant.PromptMsgConstant;
import com.openhis.common.utils.HisPageUtils;
import com.openhis.common.utils.HisQueryUtils;
import com.openhis.web.basedatamanage.dto.OrgLocInitDto;
import com.openhis.web.basedatamanage.dto.OrgLocQueryDto;
import com.openhis.web.basedatamanage.dto.OrgLocQueryParam;
import lombok.AllArgsConstructor;
import lombok.extern.slf4j.Slf4j;
/**
* 机构位置关系controller
*
* @author
* @date 2025-02-25
*/
@RestController
@RequestMapping("/basedatamanage/org-loc")
@Slf4j
@AllArgsConstructor
public class OrganizationLocationController {
@Autowired
private final IOrganizationLocationService organizationLocationService;
@Autowired
private IOrganizationService organizationService;
@Autowired
private ILocationService locationService;
@Autowired
private OrganizationLocationMapper organizationLocationMapper;
/**
* 机构位置关系初始化
*
*/
@GetMapping(value = "/init")
public R<?> init() {
OrgLocInitDto initDto = new OrgLocInitDto();
// 设置科室列表
initDto.setOrganization(organizationService.list())
// 设置药库列表
.setLocation(locationService.list(new LambdaQueryWrapper<Location>().in(Location::getFormEnum, 11)));
return R.ok(initDto);
}
/**
* 机构位置关系分页列表
*
* @param orgLocQueryParam 查询字段
* @param searchKey 模糊查询关键字
* @param pageNo 当前页码
* @param pageSize 查询条数
* @param request 请求数据
* @return 机构位置关系分页列表
*/
@GetMapping(value = "/org-loc")
public R<?> getOrgLocPage(OrgLocQueryParam orgLocQueryParam,
@RequestParam(value = "searchKey", defaultValue = "") String searchKey,
@RequestParam(value = "pageNo", defaultValue = "1") Integer pageNo,
@RequestParam(value = "pageSize", defaultValue = "10") Integer pageSize, HttpServletRequest request) {
// 构建查询条件
QueryWrapper<OrganizationLocation> queryWrapper = HisQueryUtils.buildQueryWrapper(orgLocQueryParam, searchKey,
new HashSet<>(Arrays.asList("name", "py_str", "wb_str")), request);
// 设置排序
queryWrapper.orderByDesc("create_time");
// 执行分页查询并转换为 orgLocQueryDtoPage
Page<OrgLocQueryDto> orgLocQueryDtoPage =
HisPageUtils.selectPage(organizationLocationMapper, queryWrapper, pageNo, pageSize, OrgLocQueryDto.class);
return R.ok(orgLocQueryDtoPage,
MessageUtils.createMessage(PromptMsgConstant.Common.M00009, new Object[] {"机构信息"}));
}
/**
* 添加机构位置关系信息
*
* @param orgLocQueryDto 机构位置关系信息
*/
@PostMapping("/org-loc")
public R<?> addOrgLoc(@Validated @RequestBody OrgLocQueryDto orgLocQueryDto) {
// 新增organizationLocation信息
OrganizationLocation orgLoc = new OrganizationLocation();
BeanUtils.copyProperties(orgLocQueryDto, orgLoc);
boolean saveOrgLocSuccess = organizationLocationService.save(orgLoc);
return saveOrgLocSuccess
? R.ok(null, MessageUtils.createMessage(PromptMsgConstant.Common.M00001, new Object[] {"机构位置关系信息"}))
: R.fail(PromptMsgConstant.Common.M00007, null);
}
/**
* 获取机构位置关系需要编辑的信息
*
* @param orgLocId 机构位置关系信息
*/
@GetMapping("/org-loc-getById")
public R<?> getOrgLocById(@Validated @RequestParam Long orgLocId) {
OrganizationLocation orgLoc = organizationLocationService.getById(orgLocId);
return R.ok(orgLoc, MessageUtils.createMessage(PromptMsgConstant.Common.M00009, new Object[] {"机构位置关系信息"}));
}
/**
* 编辑机构位置关系信息
*
* @param orgLocQueryDto 机构位置关系信息
*/
@PutMapping("/org-loc")
public R<?> editOrgLoc(@Validated @RequestBody OrgLocQueryDto orgLocQueryDto) {
// 编辑organizationLocation信息
OrganizationLocation orgLoc = new OrganizationLocation();
BeanUtils.copyProperties(orgLocQueryDto, orgLoc);
boolean editOrgLocSuccess = organizationLocationService.updateById(orgLoc);
return editOrgLocSuccess
? R.ok(null, MessageUtils.createMessage(PromptMsgConstant.Common.M00002, new Object[] {"机构位置关系信息"}))
: R.fail(PromptMsgConstant.Common.M00007, null);
}
/**
* 删除机构位置关系信息
*
* @param orgLocId 主表id
*/
@DeleteMapping("/org-loc")
public R<?> delOrgLoc(@RequestParam Long orgLocId) {
boolean delOrgLocSuccess = organizationLocationService.removeById(orgLocId);
return delOrgLocSuccess
? R.ok(null, MessageUtils.createMessage(PromptMsgConstant.Common.M00005, new Object[] {"机构位置关系信息"}))
: R.fail(null, MessageUtils.createMessage(PromptMsgConstant.Common.M00006, new Object[] {"机构位置关系信息"}));
}
}

View File

@@ -0,0 +1,146 @@
/*
* Copyright ©2023 CJB-CNIT Team. All rights reserved
*/
package com.openhis.web.basedatamanage.controller;
import java.util.Arrays;
import java.util.HashSet;
import javax.servlet.http.HttpServletRequest;
import com.openhis.administration.domain.Organization;
import org.springframework.beans.BeanUtils;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.validation.annotation.Validated;
import org.springframework.web.bind.annotation.*;
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.core.common.core.domain.R;
import com.core.common.utils.MessageUtils;
import com.openhis.administration.domain.PractitionerRole;
import com.openhis.administration.mapper.PractitionerRoleMapper;
import com.openhis.administration.service.IPractitionerRoleService;
import com.openhis.common.constant.PromptMsgConstant;
import com.openhis.common.utils.HisPageUtils;
import com.openhis.common.utils.HisQueryUtils;
import com.openhis.web.basedatamanage.dto.PractRoleSearchParam;
import com.openhis.web.basedatamanage.dto.PractitionerRoleDto;
import lombok.AllArgsConstructor;
import lombok.extern.slf4j.Slf4j;
/**
* 岗位管理Controller业务层处理
*
* @author
* @date 2025-02-21
*/
@RestController
@RequestMapping("/basedatamanage/practitioner-role")
@Slf4j
@AllArgsConstructor
public class PractitionerRoleController {
private final IPractitionerRoleService practitionerRoleService;
@Autowired
private PractitionerRoleMapper practitionerRoleMapper;
/**
* 岗位分页列表
*
* @param practRoleSearchParam 查询条件
* @param pageNo 当前页码
* @param pageSize 查询条数
* @param request 请求数据
* @return 岗位分页列表
*/
@GetMapping(value = "/practitioner-role")
public R<?> getPractitionerRolePage(PractRoleSearchParam practRoleSearchParam,
@RequestParam(value = "searchKey", defaultValue = "") String searchKey,
@RequestParam(value = "pageNo", defaultValue = "1") Integer pageNo,
@RequestParam(value = "pageSize", defaultValue = "10") Integer pageSize, HttpServletRequest request) {
// 构建查询条件
QueryWrapper<PractitionerRole> queryWrapper = HisQueryUtils.buildQueryWrapper(practRoleSearchParam, searchKey,
new HashSet<>(Arrays.asList("name")), request);
// 设置排序
queryWrapper.orderByDesc("create_time");
// 执行分页查询并转换为 practitionerRoleDtoPage
Page<PractitionerRoleDto> practitionerRoleDtoPage =
HisPageUtils.selectPage(practitionerRoleMapper, queryWrapper, pageNo, pageSize, PractitionerRoleDto.class);
return R.ok(practitionerRoleDtoPage,
MessageUtils.createMessage(PromptMsgConstant.Common.M00009, new Object[] {"机构信息"}));
}
/**
* 添加岗位信息
*
* @param practitionerRoleDto 岗位信息
*/
@PostMapping("/practitioner-role")
public R<?> addPractitionerRole(@Validated @RequestBody PractitionerRoleDto practitionerRoleDto) {
// 新增practitionerRole信息
PractitionerRole practitionerRole = new PractitionerRole();
BeanUtils.copyProperties(practitionerRoleDto, practitionerRole);
boolean savePractitionerRoleSuccess = practitionerRoleService.save(practitionerRole);
return savePractitionerRoleSuccess
? R.ok(null, MessageUtils.createMessage(PromptMsgConstant.Common.M00001, new Object[] {"岗位信息"}))
: R.fail(PromptMsgConstant.Common.M00007, null);
}
/**
* 获取岗位需要编辑的信息
*
* @param proleId 岗位信息
*/
@GetMapping("/practitioner-role-getById")
public R<?> getPractitionerRoleById(@Validated @RequestParam Long proleId) {
PractitionerRole practitionerRole = practitionerRoleService.getById(proleId);
return R.ok(practitionerRole, MessageUtils.createMessage(PromptMsgConstant.Common.M00009, new Object[] {"岗位信息"}));
}
/**
* 编辑岗位信息
*
* @param practitionerRoleDto 岗位信息
*/
@PutMapping("/practitioner-role")
public R<?> editPractitionerRole(@Validated @RequestBody PractitionerRoleDto practitionerRoleDto) {
// 编辑practitionerRole信息
PractitionerRole practitionerRole = new PractitionerRole();
BeanUtils.copyProperties(practitionerRoleDto, practitionerRole);
boolean editPractitionerRoleSuccess = practitionerRoleService.updateById(practitionerRole);
return editPractitionerRoleSuccess
? R.ok(null, MessageUtils.createMessage(PromptMsgConstant.Common.M00002, new Object[] {"岗位信息"}))
: R.fail(PromptMsgConstant.Common.M00007, null);
}
/**
* 删除岗位信息
*
* @param prId 主表id
*/
@DeleteMapping("/practitioner-role")
public R<?> deletePractitionerRole(@RequestParam Long prId) {
boolean deletePractitionerRoleSuccess = practitionerRoleService.removeById(prId);
return deletePractitionerRoleSuccess
? R.ok(null, MessageUtils.createMessage(PromptMsgConstant.Common.M00005, new Object[] {"岗位信息"}))
: R.fail(PromptMsgConstant.Common.M00006, null);
}
}

View File

@@ -5,7 +5,10 @@ package com.openhis.web.basedatamanage.dto;
import com.baomidou.mybatisplus.annotation.IdType; import com.baomidou.mybatisplus.annotation.IdType;
import com.baomidou.mybatisplus.annotation.TableId; import com.baomidou.mybatisplus.annotation.TableId;
import com.openhis.common.enums.*; import com.openhis.common.enums.LocationBedStatus;
import com.openhis.common.enums.LocationForm;
import com.openhis.common.enums.LocationMode;
import com.openhis.common.enums.LocationStatus;
import lombok.Data; import lombok.Data;
import lombok.experimental.Accessors; import lombok.experimental.Accessors;
@@ -58,10 +61,10 @@ public class LocationQueryDto {
/** 显示顺序 */ /** 显示顺序 */
private Integer displayOrder; private Integer displayOrder;
// public LocationQueryDto(LocationForm form, String busNo, LocationMode mode) { // public LocationQueryDto(LocationForm form, String busNo, LocationMode mode) {
public LocationQueryDto(LocationForm form) { // public LocationQueryDto(LocationForm form) {
this.statusEnum = LocationStatus.ACTIVE; // this.statusEnum = LocationStatus.ACTIVE;
this.formEnum = form; // this.formEnum = form;
// this.modeEnum = mode; // this.modeEnum = mode;
} // }
} }

View File

@@ -0,0 +1,30 @@
/*
* Copyright ©2023 CJB-CNIT Team. All rights reserved
*/
package com.openhis.web.basedatamanage.dto;
import java.io.Serializable;
import java.util.List;
import com.openhis.administration.domain.Location;
import com.openhis.administration.domain.Organization;
import lombok.Data;
import lombok.experimental.Accessors;
/**
* 科室位置关系初始化 dto
*
* @author
* @date 2025-02-25
*/
@Data
@Accessors(chain = true)
public class OrgLocInitDto implements Serializable {
/** 机构科室信息 */
private List<Organization> organization;
/** 位置药房信息 */
private List<Location> location;
}

View File

@@ -0,0 +1,47 @@
/*
* Copyright ©2023 CJB-CNIT Team. All rights reserved
*/
package com.openhis.web.basedatamanage.dto;
import java.util.Date;
import com.baomidou.mybatisplus.annotation.IdType;
import com.baomidou.mybatisplus.annotation.TableId;
import lombok.Data;
import lombok.experimental.Accessors;
/**
* @author
* @date 2025-02-21
*/
@Data
@Accessors(chain = true)
public class OrgLocQueryDto {
/** ID */
@TableId(type = IdType.ASSIGN_ID)
private Long id;
/** 机构编码 */
private Long organizationId;
/** 位置编码 */
private Long locationId;
/** 默认药房 */
private Long defLocationId;
/** 药品类别 */
private String medCategoryCode;
/** 开始时间 */
private Date startTime;
/** 结束时间 */
private Date endTime;
/** 显示顺序 */
private Integer displayOrder;
}

View File

@@ -0,0 +1,24 @@
/*
* Copyright ©2023 CJB-CNIT Team. All rights reserved
*/
package com.openhis.web.basedatamanage.dto;
import java.io.Serializable;
import lombok.Data;
import lombok.experimental.Accessors;
/**
* 科室分页查询条件
*
* @author
* @date 2025-02-21
*/
@Data
@Accessors(chain = true)
public class OrgLocQueryParam implements Serializable {
/** 活动标识 */
private Integer activeFlag;
}

View File

@@ -0,0 +1,30 @@
/*
* Copyright ©2023 CJB-CNIT Team. All rights reserved
*/
package com.openhis.web.basedatamanage.dto;
import java.io.Serializable;
import lombok.Data;
import lombok.experimental.Accessors;
/**
* 岗位分页查询条件
*
* @author
* @date 2025-02-21
*/
@Data
@Accessors(chain = true)
public class PractRoleSearchParam implements Serializable {
/** 名称 */
private String name;
/** 专业编码枚举 */
private Integer specialtyEnum;
/** 机构 */
private Long orgId;
}

View File

@@ -0,0 +1,53 @@
/*
* Copyright ©2023 CJB-CNIT Team. All rights reserved
*/
package com.openhis.web.basedatamanage.dto;
import com.baomidou.mybatisplus.annotation.IdType;
import com.baomidou.mybatisplus.annotation.TableId;
import lombok.Data;
import lombok.experimental.Accessors;
/**
* @author
* @date 2025-02-21
*/
@Data
@Accessors(chain = true)
public class PractitionerRoleDto {
/** ID */
@TableId(type = IdType.ASSIGN_ID)
private Long id;
/** 名称 */
private String name;
/** 角色编码 */
private String role_code;
/** 活动标识 */
private Integer activeFlag;
/** 参与者Id */
private Long practitionerId;
/** 机构 */
private Long orgId;
/** 位置ID */
private Long locationId;
/** 服务id */
private Long healthcareServiceId;
/** 专业编码枚举 */
private Integer specialtyEnum;
/** 岗位类型 */
private String typeCode;
/** 有效时间 */
private String availabilityJson;
}

View File

@@ -0,0 +1,52 @@
package com.openhis.administration.domain;
import java.math.BigDecimal;
import java.util.Date;
import com.baomidou.mybatisplus.annotation.IdType;
import com.baomidou.mybatisplus.annotation.TableId;
import com.baomidou.mybatisplus.annotation.TableName;
import com.core.common.core.domain.HisBaseEntity;
import lombok.Data;
import lombok.EqualsAndHashCode;
import lombok.experimental.Accessors;
/**
* 机构位置关系管理Entity实体
*
* @author system
* @date 2025-02-22
*/
@Data
@TableName("adm_organization_location")
@Accessors(chain = true)
@EqualsAndHashCode(callSuper = false)
public class OrganizationLocation extends HisBaseEntity {
/** ID */
@TableId(type = IdType.ASSIGN_ID)
private Long id;
/** 机构编码 */
private Long organizationId;
/** 位置编码 */
private Long locationId;
/** 默认药房 */
private Long defLocationId;
/** 药品类别 */
private String medCategoryCode;
/** 开始时间 */
private Date startTime;
/** 结束时间 */
private Date endTime;
/** 显示顺序 */
private Integer displayOrder;
}

View File

@@ -0,0 +1,17 @@
package com.openhis.administration.mapper;
import org.springframework.stereotype.Repository;
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import com.openhis.administration.domain.OrganizationLocation;
/**
* 机构位置关系管理Mapper接口
*
* @author system
* @date 2025-02-22
*/
@Repository
public interface OrganizationLocationMapper extends BaseMapper<OrganizationLocation> {
}

View File

@@ -0,0 +1,12 @@
package com.openhis.administration.service;
import com.baomidou.mybatisplus.extension.service.IService;
import com.openhis.administration.domain.OrganizationLocation;
/**
* 机构位置关系管理Service接口
*
* @author system
* @date 2025-02-25
*/
public interface IOrganizationLocationService extends IService<OrganizationLocation> {}

View File

@@ -0,0 +1,20 @@
package com.openhis.administration.service.impl;
import org.springframework.stereotype.Service;
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
import com.openhis.administration.domain.OrganizationLocation;
import com.openhis.administration.mapper.OrganizationLocationMapper;
import com.openhis.administration.service.IOrganizationLocationService;
/**
* 机构位置关系管理Service业务层处理
*
* @author system
* @date 2025-02-25
*/
@Service
public class OrganizationLocationServiceImpl extends ServiceImpl<OrganizationLocationMapper, OrganizationLocation>
implements IOrganizationLocationService {
}

View File

@@ -0,0 +1,7 @@
<?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.openhis.administration.mapper.OrganizationLocationMapper">
</mapper>