预约管理

This commit is contained in:
2025-12-11 16:23:59 +08:00
parent 8c8ef13021
commit a58e02f2cb
8 changed files with 492 additions and 0 deletions

View File

@@ -0,0 +1,45 @@
package com.openhis.web.appointmentmanage.appservice;
import com.core.common.core.domain.R;
import com.openhis.appointmentmanage.domain.ClinicRoom;
public interface IClinicRoomAppService {
/**
* 分页查询诊室列表
* @param pageNum 页码
* @param pageSize 每页条数
* @param orgName 卫生机构名称
* @param roomName 诊室名称
* @return 分页查询结果
*/
R<?> selectClinicRoomPage(Integer pageNum, Integer pageSize, String orgName, String roomName);
/**
* 查询诊室详情
* @param id 诊室ID
* @return 诊室详情
*/
R<?> selectClinicRoomById(Long id);
/**
* 新增诊室
* @param clinicRoom 诊室信息
* @return 新增结果
*/
R<?> insertClinicRoom(ClinicRoom clinicRoom);
/**
* 更新诊室
* @param clinicRoom 诊室信息
* @return 更新结果
*/
R<?> updateClinicRoom(ClinicRoom clinicRoom);
/**
* 删除诊室
* @param id 诊室ID
* @return 删除结果
*/
R<?> deleteClinicRoomById(Long id);
}

View File

@@ -0,0 +1,121 @@
package com.openhis.web.appointmentmanage.appservice.impl;
import cn.hutool.core.util.ObjectUtil;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.core.common.core.domain.R;
import com.openhis.appointmentmanage.domain.ClinicRoom;
import com.openhis.appointmentmanage.service.IClinicRoomService;
import com.openhis.web.appointmentmanage.appservice.IClinicRoomAppService;
import org.springframework.stereotype.Service;
import javax.annotation.Resource;
@Service
public class ClinicRoomAppServiceImpl implements IClinicRoomAppService {
@Resource
private IClinicRoomService clinicRoomService;
@Override
public R<?> selectClinicRoomPage(Integer pageNum, Integer pageSize, String orgName, String roomName) {
// 构建查询条件
ClinicRoom clinicRoom = new ClinicRoom();
if (orgName != null && ObjectUtil.isNotEmpty(orgName)) {
clinicRoom.setOrgName(orgName);
}
if (roomName != null && ObjectUtil.isNotEmpty(roomName)) {
clinicRoom.setRoomName(roomName);
}
// 分页查询
Page<ClinicRoom> page = new Page<>(pageNum, pageSize);
Page<ClinicRoom> result = clinicRoomService.selectClinicRoomPage(page, clinicRoom);
return R.ok(result);
}
@Override
public R<?> selectClinicRoomById(Long id) {
ClinicRoom clinicRoom = clinicRoomService.selectClinicRoomById(id);
if (clinicRoom == null) {
return R.fail(404, "诊室不存在");
}
return R.ok(clinicRoom);
}
@Override
public R<?> insertClinicRoom(ClinicRoom clinicRoom) {
// 数据校验
if (ObjectUtil.isEmpty(clinicRoom.getRoomName())) {
return R.fail(400, "诊室名称不能为空");
}
if (ObjectUtil.isEmpty(clinicRoom.getDepartment())) {
return R.fail(400, "科室名称不能为空");
}
if (clinicRoom.getRoomName().length() > 50) {
return R.fail(400, "诊室名称长度不能超过50个字符");
}
if (clinicRoom.getRemarks() != null && clinicRoom.getRemarks().length() > 500) {
return R.fail(400, "备注长度不能超过500个字符");
}
// 新增诊室
int result = clinicRoomService.insertClinicRoom(clinicRoom);
if (result > 0) {
return R.ok(null, "新增成功");
} else {
return R.fail("新增失败");
}
}
@Override
public R<?> updateClinicRoom(ClinicRoom clinicRoom) {
// 数据校验
if (ObjectUtil.isEmpty(clinicRoom.getId())) {
return R.fail(400, "诊室ID不能为空");
}
if (ObjectUtil.isEmpty(clinicRoom.getRoomName())) {
return R.fail(400, "诊室名称不能为空");
}
if (ObjectUtil.isEmpty(clinicRoom.getDepartment())) {
return R.fail(400, "科室名称不能为空");
}
if (clinicRoom.getRoomName().length() > 50) {
return R.fail(400, "诊室名称长度不能超过50个字符");
}
if (clinicRoom.getRemarks() != null && clinicRoom.getRemarks().length() > 500) {
return R.fail(400, "备注长度不能超过500个字符");
}
// 检查诊室是否存在
ClinicRoom existingClinicRoom = clinicRoomService.selectClinicRoomById(clinicRoom.getId());
if (existingClinicRoom == null) {
return R.fail(404, "诊室不存在");
}
// 更新诊室
int result = clinicRoomService.updateClinicRoom(clinicRoom);
if (result > 0) {
return R.ok(null, "修改成功");
} else {
return R.fail("修改失败");
}
}
@Override
public R<?> deleteClinicRoomById(Long id) {
// 检查诊室是否存在
ClinicRoom existingClinicRoom = clinicRoomService.selectClinicRoomById(id);
if (existingClinicRoom == null) {
return R.fail(404, "诊室不存在");
}
// 删除诊室
int result = clinicRoomService.deleteClinicRoomById(id);
if (result > 0) {
return R.ok(null, "删除成功");
} else {
return R.fail("删除失败");
}
}
}

View File

@@ -0,0 +1,73 @@
package com.openhis.web.appointmentmanage.controller;
import com.core.common.core.domain.R;
import com.openhis.appointmentmanage.domain.ClinicRoom;
import com.openhis.web.appointmentmanage.appservice.IClinicRoomAppService;
import org.springframework.web.bind.annotation.*;
import javax.annotation.Resource;
@RestController
@RequestMapping("/appoinment/clinic-room")
public class ClinicRoomController {
@Resource
private IClinicRoomAppService clinicRoomAppService;
/**
* 分页查询诊室列表
* @param pageNum 页码
* @param pageSize 每页条数
* @param orgName 卫生机构名称
* @param roomName 诊室名称
* @return 分页查询结果
*/
@GetMapping("/page")
public R<?> selectClinicRoomPage(
@RequestParam(required = true) Integer pageNum,
@RequestParam(required = true) Integer pageSize,
@RequestParam(required = false) String orgName,
@RequestParam(required = false) String roomName) {
return clinicRoomAppService.selectClinicRoomPage(pageNum, pageSize, orgName, roomName);
}
/**
* 查询诊室详情
* @param id 诊室ID
* @return 诊室详情
*/
@GetMapping("/{id}")
public R<?> selectClinicRoomById(@PathVariable Long id) {
return clinicRoomAppService.selectClinicRoomById(id);
}
/**
* 新增诊室
* @param clinicRoom 诊室信息
* @return 新增结果
*/
@PostMapping
public R<?> insertClinicRoom(@RequestBody ClinicRoom clinicRoom) {
return clinicRoomAppService.insertClinicRoom(clinicRoom);
}
/**
* 更新诊室
* @param clinicRoom 诊室信息
* @return 更新结果
*/
@PutMapping
public R<?> updateClinicRoom(@RequestBody ClinicRoom clinicRoom) {
return clinicRoomAppService.updateClinicRoom(clinicRoom);
}
/**
* 删除诊室
* @param id 诊室ID
* @return 删除结果
*/
@DeleteMapping("/{id}")
public R<?> deleteClinicRoomById(@PathVariable Long id) {
return clinicRoomAppService.deleteClinicRoomById(id);
}
}

View File

@@ -0,0 +1,81 @@
<?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.appointmentmanage.mapper.ClinicRoomMapper">
<!-- 通用查询映射结果 -->
<resultMap id="ClinicRoomResult" type="com.openhis.appointmentmanage.domain.ClinicRoom">
<id property="id" column="id" />
<result property="orgName" column="org_name" />
<result property="roomName" column="room_name" />
<result property="department" column="department" />
<result property="building" column="building" />
<result property="floor" column="floor" />
<result property="roomNo" column="room_no" />
<result property="isDisabled" column="is_disabled" />
<result property="remarks" column="remarks" />
<result property="voided" column="void" />
<result property="createBy" column="create_by" />
<result property="createTime" column="create_time" />
<result property="updateBy" column="update_by" />
<result property="updateTime" column="update_time" />
</resultMap>
<!-- 通用查询结果列 -->
<sql id="Base_Column_List">
id, org_name, room_name, department, building, floor, room_no, is_disabled, remarks, void, create_by, create_time, update_by, update_time
</sql>
<!-- 分页查询 -->
<select id="selectClinicRoomPage" parameterType="com.openhis.appointmentmanage.domain.ClinicRoom" resultMap="ClinicRoomResult">
select
<include refid="Base_Column_List" />
from clinic_room
where 1 = 1
<if test="orgName != null and orgName != ''">
and org_name like concat('%', #{orgName}, '%')
</if>
<if test="roomName != null and roomName != ''">
and room_name like concat('%', #{roomName}, '%')
</if>
order by create_time desc
</select>
<!-- 查询详情 -->
<select id="selectClinicRoomById" parameterType="Long" resultMap="ClinicRoomResult">
select
<include refid="Base_Column_List" />
from clinic_room
where id = #{id}
</select>
<!-- 新增 -->
<insert id="insertClinicRoom" parameterType="com.openhis.appointmentmanage.domain.ClinicRoom" useGeneratedKeys="true" keyProperty="id">
insert into clinic_room
(org_name, room_name, department, building, floor, room_no, is_disabled, remarks, void, create_by, create_time, update_by, update_time)
values
(#{orgName}, #{roomName}, #{department}, #{building}, #{floor}, #{roomNo}, #{isDisabled}, #{remarks}, #{voided}, #{createBy}, #{createTime}, #{updateBy}, #{updateTime})
</insert>
<!-- 更新 -->
<update id="updateClinicRoom" parameterType="com.openhis.appointmentmanage.domain.ClinicRoom">
update clinic_room
set
org_name = #{orgName},
room_name = #{roomName},
department = #{department},
building = #{building},
floor = #{floor},
room_no = #{roomNo},
is_disabled = #{isDisabled},
remarks = #{remarks},
void = #{voided},
update_by = #{updateBy},
update_time = #{updateTime}
where id = #{id}
</update>
<!-- 删除 -->
<delete id="deleteClinicRoomById" parameterType="Long">
delete from clinic_room where id = #{id}
</delete>
</mapper>

View File

@@ -0,0 +1,58 @@
package com.openhis.appointmentmanage.domain;
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 com.fasterxml.jackson.databind.annotation.JsonSerialize;
import com.fasterxml.jackson.databind.ser.std.ToStringSerializer;
import lombok.Data;
import lombok.EqualsAndHashCode;
import lombok.experimental.Accessors;
/**
* 诊室维护Entity实体
*
* @author system
* @date 2025-12-09
*/
@Data
@TableName("clinic_room")
@Accessors(chain = true)
@EqualsAndHashCode(callSuper = false)
public class ClinicRoom extends HisBaseEntity {
/** ID */
@TableId(type = IdType.ASSIGN_ID)
@JsonSerialize(using = ToStringSerializer.class)
private Long id;
/** 卫生机构名称 */
private String orgName;
/** 诊室名称 */
private String roomName;
/** 科室名称 */
private String department;
/** 诊室楼号 */
private String building;
/** 诊室楼层 */
private String floor;
/** 诊室房间号 */
private String roomNo;
/** 停用状态 */
private Boolean isDisabled;
/** 备注 */
private String remarks;
/** 作废标志 */
private Boolean voided;
}

View File

@@ -0,0 +1,13 @@
package com.openhis.appointmentmanage.mapper;
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import com.openhis.appointmentmanage.domain.ClinicRoom;
/**
* 诊室维护Mapper接口
*
* @author system
* @date 2025-12-09
*/
public interface ClinicRoomMapper extends BaseMapper<ClinicRoom> {
}

View File

@@ -0,0 +1,54 @@
package com.openhis.appointmentmanage.service;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.baomidou.mybatisplus.extension.service.IService;
import com.openhis.appointmentmanage.domain.ClinicRoom;
/**
* 诊室维护Service接口
*
* @author system
* @date 2025-12-09
*/
public interface IClinicRoomService extends IService<ClinicRoom> {
/**
* 分页查询诊室列表
*
* @param page 分页参数
* @param clinicRoom 查询条件
* @return 分页结果
*/
Page<ClinicRoom> selectClinicRoomPage(Page<ClinicRoom> page, ClinicRoom clinicRoom);
/**
* 查询诊室详情
*
* @param id 诊室ID
* @return 诊室信息
*/
ClinicRoom selectClinicRoomById(Long id);
/**
* 新增诊室
*
* @param clinicRoom 诊室信息
* @return 结果
*/
int insertClinicRoom(ClinicRoom clinicRoom);
/**
* 更新诊室
*
* @param clinicRoom 诊室信息
* @return 结果
*/
int updateClinicRoom(ClinicRoom clinicRoom);
/**
* 删除诊室
*
* @param id 诊室ID
* @return 结果
*/
int deleteClinicRoomById(Long id);
}

View File

@@ -0,0 +1,47 @@
package com.openhis.appointmentmanage.service.impl;
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
import com.openhis.appointmentmanage.domain.ClinicRoom;
import com.openhis.appointmentmanage.mapper.ClinicRoomMapper;
import com.openhis.appointmentmanage.service.IClinicRoomService;
import org.springframework.stereotype.Service;
/**
* 诊室维护Service实现类
*
* @author system
* @date 2025-12-09
*/
@Service
public class ClinicRoomServiceImpl extends ServiceImpl<ClinicRoomMapper, ClinicRoom> implements IClinicRoomService {
@Override
public Page<ClinicRoom> selectClinicRoomPage(Page<ClinicRoom> page, ClinicRoom clinicRoom) {
return baseMapper.selectPage(page, new LambdaQueryWrapper<ClinicRoom>()
.like(clinicRoom.getOrgName() != null, ClinicRoom::getOrgName, clinicRoom.getOrgName())
.like(clinicRoom.getRoomName() != null, ClinicRoom::getRoomName, clinicRoom.getRoomName())
.orderByDesc(ClinicRoom::getCreateTime));
}
@Override
public ClinicRoom selectClinicRoomById(Long id) {
return baseMapper.selectById(id);
}
@Override
public int insertClinicRoom(ClinicRoom clinicRoom) {
return baseMapper.insert(clinicRoom);
}
@Override
public int updateClinicRoom(ClinicRoom clinicRoom) {
return baseMapper.updateById(clinicRoom);
}
@Override
public int deleteClinicRoomById(Long id) {
return baseMapper.deleteById(id);
}
}