From a58e02f2cbe896a04491bc885b2af371507c82d1 Mon Sep 17 00:00:00 2001 From: startcode <169514906@qq.com> Date: Thu, 11 Dec 2025 16:23:59 +0800 Subject: [PATCH] =?UTF-8?q?=E9=A2=84=E7=BA=A6=E7=AE=A1=E7=90=86?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../appservice/IClinicRoomAppService.java | 45 +++++++ .../impl/ClinicRoomAppServiceImpl.java | 121 ++++++++++++++++++ .../controller/ClinicRoomController.java | 73 +++++++++++ .../appointmentmanage/ClinicRoomMapper.xml | 81 ++++++++++++ .../appointmentmanage/domain/ClinicRoom.java | 58 +++++++++ .../mapper/ClinicRoomMapper.java | 13 ++ .../service/IClinicRoomService.java | 54 ++++++++ .../service/impl/ClinicRoomServiceImpl.java | 47 +++++++ 8 files changed, 492 insertions(+) create mode 100644 openhis-server-new/openhis-application/src/main/java/com/openhis/web/appointmentmanage/appservice/IClinicRoomAppService.java create mode 100644 openhis-server-new/openhis-application/src/main/java/com/openhis/web/appointmentmanage/appservice/impl/ClinicRoomAppServiceImpl.java create mode 100644 openhis-server-new/openhis-application/src/main/java/com/openhis/web/appointmentmanage/controller/ClinicRoomController.java create mode 100644 openhis-server-new/openhis-application/src/main/resources/mapper/appointmentmanage/ClinicRoomMapper.xml create mode 100644 openhis-server-new/openhis-domain/src/main/java/com/openhis/appointmentmanage/domain/ClinicRoom.java create mode 100644 openhis-server-new/openhis-domain/src/main/java/com/openhis/appointmentmanage/mapper/ClinicRoomMapper.java create mode 100644 openhis-server-new/openhis-domain/src/main/java/com/openhis/appointmentmanage/service/IClinicRoomService.java create mode 100644 openhis-server-new/openhis-domain/src/main/java/com/openhis/appointmentmanage/service/impl/ClinicRoomServiceImpl.java diff --git a/openhis-server-new/openhis-application/src/main/java/com/openhis/web/appointmentmanage/appservice/IClinicRoomAppService.java b/openhis-server-new/openhis-application/src/main/java/com/openhis/web/appointmentmanage/appservice/IClinicRoomAppService.java new file mode 100644 index 00000000..4fdbfc2f --- /dev/null +++ b/openhis-server-new/openhis-application/src/main/java/com/openhis/web/appointmentmanage/appservice/IClinicRoomAppService.java @@ -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); +} diff --git a/openhis-server-new/openhis-application/src/main/java/com/openhis/web/appointmentmanage/appservice/impl/ClinicRoomAppServiceImpl.java b/openhis-server-new/openhis-application/src/main/java/com/openhis/web/appointmentmanage/appservice/impl/ClinicRoomAppServiceImpl.java new file mode 100644 index 00000000..a35199cc --- /dev/null +++ b/openhis-server-new/openhis-application/src/main/java/com/openhis/web/appointmentmanage/appservice/impl/ClinicRoomAppServiceImpl.java @@ -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 page = new Page<>(pageNum, pageSize); + Page 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("删除失败"); + } + } +} diff --git a/openhis-server-new/openhis-application/src/main/java/com/openhis/web/appointmentmanage/controller/ClinicRoomController.java b/openhis-server-new/openhis-application/src/main/java/com/openhis/web/appointmentmanage/controller/ClinicRoomController.java new file mode 100644 index 00000000..2041b963 --- /dev/null +++ b/openhis-server-new/openhis-application/src/main/java/com/openhis/web/appointmentmanage/controller/ClinicRoomController.java @@ -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); + } +} diff --git a/openhis-server-new/openhis-application/src/main/resources/mapper/appointmentmanage/ClinicRoomMapper.xml b/openhis-server-new/openhis-application/src/main/resources/mapper/appointmentmanage/ClinicRoomMapper.xml new file mode 100644 index 00000000..665462e3 --- /dev/null +++ b/openhis-server-new/openhis-application/src/main/resources/mapper/appointmentmanage/ClinicRoomMapper.xml @@ -0,0 +1,81 @@ + + + + + + + + + + + + + + + + + + + + + + + + + id, org_name, room_name, department, building, floor, room_no, is_disabled, remarks, void, create_by, create_time, update_by, update_time + + + + + + + + + + + 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}) + + + + + 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} + + + + + delete from clinic_room where id = #{id} + + diff --git a/openhis-server-new/openhis-domain/src/main/java/com/openhis/appointmentmanage/domain/ClinicRoom.java b/openhis-server-new/openhis-domain/src/main/java/com/openhis/appointmentmanage/domain/ClinicRoom.java new file mode 100644 index 00000000..e664f347 --- /dev/null +++ b/openhis-server-new/openhis-domain/src/main/java/com/openhis/appointmentmanage/domain/ClinicRoom.java @@ -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; + +} \ No newline at end of file diff --git a/openhis-server-new/openhis-domain/src/main/java/com/openhis/appointmentmanage/mapper/ClinicRoomMapper.java b/openhis-server-new/openhis-domain/src/main/java/com/openhis/appointmentmanage/mapper/ClinicRoomMapper.java new file mode 100644 index 00000000..5496d1bd --- /dev/null +++ b/openhis-server-new/openhis-domain/src/main/java/com/openhis/appointmentmanage/mapper/ClinicRoomMapper.java @@ -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 { +} diff --git a/openhis-server-new/openhis-domain/src/main/java/com/openhis/appointmentmanage/service/IClinicRoomService.java b/openhis-server-new/openhis-domain/src/main/java/com/openhis/appointmentmanage/service/IClinicRoomService.java new file mode 100644 index 00000000..58808be9 --- /dev/null +++ b/openhis-server-new/openhis-domain/src/main/java/com/openhis/appointmentmanage/service/IClinicRoomService.java @@ -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 { + /** + * 分页查询诊室列表 + * + * @param page 分页参数 + * @param clinicRoom 查询条件 + * @return 分页结果 + */ + Page selectClinicRoomPage(Page 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); +} diff --git a/openhis-server-new/openhis-domain/src/main/java/com/openhis/appointmentmanage/service/impl/ClinicRoomServiceImpl.java b/openhis-server-new/openhis-domain/src/main/java/com/openhis/appointmentmanage/service/impl/ClinicRoomServiceImpl.java new file mode 100644 index 00000000..cc66e875 --- /dev/null +++ b/openhis-server-new/openhis-domain/src/main/java/com/openhis/appointmentmanage/service/impl/ClinicRoomServiceImpl.java @@ -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 implements IClinicRoomService { + + @Override + public Page selectClinicRoomPage(Page page, ClinicRoom clinicRoom) { + return baseMapper.selectPage(page, new LambdaQueryWrapper() + .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); + } +}