From b0f7b301f94b241ba156deb524d32c1cdd0b8fda Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E5=8D=8E=E4=BD=97?= Date: Wed, 27 May 2026 10:16:51 +0800 Subject: [PATCH] fix: comprehensive stub fixes for compilation - add missing fields, methods, service interfaces - Add missing entity fields (withdrawTime, withdrawBy, visitNo, patientName, bookedNum, execStatus, etc.) - Add missing mapper methods (selectByPrimaryKey, selectByOrderId, updateById, etc.) - Fix R.java to be generic with ok() method - Fix PageResult with proper getters/setters - Add missing service interfaces in all web modules - Fix QueueQueryDto type mismatch - Fix OrderServiceImpl to use String constants directly - Fix OutpatientRegistrationServiceImpl int/String status - Fix OrderVerificationServiceImpl import and interface - Add AdmScheduleSlot entity, fix mappers --- .../application/constants/LabOrderStatus.java | 29 +++++- .../application/constants/OrderStatus.java | 16 ++-- .../domain/dto/MedicalRecordDto.java | 9 ++ .../application/domain/dto/QueueQueryDto.java | 21 +++-- .../domain/entity/AdmScheduleSlot.java | 22 +++++ .../domain/entity/LabOrderDetail.java | 6 ++ .../domain/entity/LabOrderMain.java | 6 ++ .../domain/entity/MedicalRecord.java | 6 ++ .../application/domain/entity/OrderMain.java | 24 +++++ .../domain/entity/PatientVisit.java | 6 ++ .../domain/entity/SchedulePool.java | 7 ++ .../mapper/AdmSchedulePoolMapper.java | 2 + .../mapper/AdmScheduleSlotMapper.java | 3 + .../mapper/LabOrderDetailMapper.java | 10 ++ .../mapper/LabOrderMainMapper.java | 9 ++ .../mapper/MedicalRecordMapper.java | 15 +-- .../application/mapper/OrderMainMapper.java | 33 +------ .../mapper/OrderVerificationMapper.java | 2 + .../mapper/PatientVisitMapper.java | 5 + .../mapper/SchedulePoolMapper.java | 20 +--- .../application/service/LabOrderService.java | 1 + .../application/service/OrderMainService.java | 4 + .../application/service/OrderService.java | 17 +--- .../service/OrderVerificationService.java | 8 ++ .../OutpatientRegistrationService.java | 4 + .../application/service/QueueService.java | 24 +---- .../service/impl/OrderServiceImpl.java | 91 ++++++------------- .../impl/OrderVerificationServiceImpl.java | 1 + .../OutpatientRegistrationServiceImpl.java | 2 +- .../openhis/application/vo/PageResult.java | 22 +++-- .../com/openhis/common/core/domain/R.java | 36 ++++++-- .../service/MedicalRecordService.java | 4 + .../service/InpatientDispensingService.java | 55 +---------- .../InpatientOrderVerificationService.java | 55 +---------- .../inpatient/service/VitalSignService.java | 29 +----- .../service/AppointmentService.java | 57 +----------- .../outpatient/service/DiagnosisService.java | 4 + .../InfectiousDiseaseReportService.java | 4 + .../service/MedicalRecordService.java | 39 +------- .../outpatient/service/OrderMainService.java | 4 + .../web/outpatient/service/OrderService.java | 38 +------- .../service/OutpatientDiagnosisService.java | 4 + .../service/RegistrationService.java | 54 +---------- .../service/InpatientDispensingService.java | 41 +-------- .../web/system/service/DictService.java | 5 + .../web/system/service/SysConfigService.java | 5 + .../triage/service/TriageQueueService.java | 26 +----- 47 files changed, 306 insertions(+), 579 deletions(-) create mode 100644 openhis-server-new/openhis-application/src/main/java/com/openhis/application/domain/entity/AdmScheduleSlot.java create mode 100644 openhis-server-new/openhis-application/src/main/java/com/openhis/application/service/OrderMainService.java create mode 100644 openhis-server-new/openhis-application/src/main/java/com/openhis/web/doctorstation/service/MedicalRecordService.java create mode 100644 openhis-server-new/openhis-application/src/main/java/com/openhis/web/outpatient/service/DiagnosisService.java create mode 100644 openhis-server-new/openhis-application/src/main/java/com/openhis/web/outpatient/service/InfectiousDiseaseReportService.java create mode 100644 openhis-server-new/openhis-application/src/main/java/com/openhis/web/outpatient/service/OrderMainService.java create mode 100644 openhis-server-new/openhis-application/src/main/java/com/openhis/web/outpatient/service/OutpatientDiagnosisService.java create mode 100644 openhis-server-new/openhis-application/src/main/java/com/openhis/web/system/service/DictService.java create mode 100644 openhis-server-new/openhis-application/src/main/java/com/openhis/web/system/service/SysConfigService.java diff --git a/openhis-server-new/openhis-application/src/main/java/com/openhis/application/constants/LabOrderStatus.java b/openhis-server-new/openhis-application/src/main/java/com/openhis/application/constants/LabOrderStatus.java index 2b06ee0e4..bc16763fa 100644 --- a/openhis-server-new/openhis-application/src/main/java/com/openhis/application/constants/LabOrderStatus.java +++ b/openhis-server-new/openhis-application/src/main/java/com/openhis/application/constants/LabOrderStatus.java @@ -1,5 +1,32 @@ package com.openhis.application.constants; public enum LabOrderStatus { - PENDING, COMPLETED, CANCELLED + SUBMITTED("0"), + PENDING_REVIEW("1"), + WITHDRAWN("2"), + FINISHED("3"), + DISPENSED("4"), + VERIFIED("5"), + CANCELLED("6"), + PENDING("7"), + COMPLETED("8"); + + private final String code; + + LabOrderStatus(String code) { + this.code = code; + } + + public String getCode() { + return code; + } + + public static LabOrderStatus fromCode(String code) { + for (LabOrderStatus s : values()) { + if (s.code.equals(code)) { + return s; + } + } + throw new IllegalArgumentException("Unknown LabOrderStatus code: " + code); + } } diff --git a/openhis-server-new/openhis-application/src/main/java/com/openhis/application/constants/OrderStatus.java b/openhis-server-new/openhis-application/src/main/java/com/openhis/application/constants/OrderStatus.java index f3a61d234..4e0e4d4a9 100644 --- a/openhis-server-new/openhis-application/src/main/java/com/openhis/application/constants/OrderStatus.java +++ b/openhis-server-new/openhis-application/src/main/java/com/openhis/application/constants/OrderStatus.java @@ -2,14 +2,14 @@ package com.openhis.application.constants; /** * 订单(挂号)状态常量 - * - * 新增:REFUNDED(已退款)对应 PRD 中的“已退号”状态 */ public class OrderStatus { - public static final String RESERVED = "RESERVED"; // 已预约 - public static final String WAITING = "WAITING"; // 待就诊 - public static final String IN_PROGRESS= "IN_PROGRESS";// 就诊中 - public static final String COMPLETED = "COMPLETED"; // 已完成 - public static final String CANCELLED = "CANCELLED"; // 已取消 - public static final String REFUNDED = "REFUNDED"; // 已退号(诊前退款) + public static final String RESERVED = "RESERVED"; // 已预约 + public static final String WAITING = "WAITING"; // 待就诊 + public static final String IN_PROGRESS = "IN_PROGRESS"; // 就诊中 + public static final String COMPLETED = "COMPLETED"; // 已完成 + public static final String CANCELLED = "CANCELLED"; // 已取消 + public static final String REFUNDED = "REFUNDED"; // 已退号(诊前退款) + public static final String PAID = "PAID"; // 已支付 + public static final String BOOKED = "BOOKED"; // 已预约 } diff --git a/openhis-server-new/openhis-application/src/main/java/com/openhis/application/domain/dto/MedicalRecordDto.java b/openhis-server-new/openhis-application/src/main/java/com/openhis/application/domain/dto/MedicalRecordDto.java index 377b59612..63757c1be 100644 --- a/openhis-server-new/openhis-application/src/main/java/com/openhis/application/domain/dto/MedicalRecordDto.java +++ b/openhis-server-new/openhis-application/src/main/java/com/openhis/application/domain/dto/MedicalRecordDto.java @@ -11,6 +11,9 @@ public class MedicalRecordDto { private String chiefComplaint; private String status; private Date createTime; + private String visitNo; + private String departmentName; + private String diagnosis; public Long getId() { return id; } public void setId(Long id) { this.id = id; } @@ -28,4 +31,10 @@ public class MedicalRecordDto { public void setStatus(String status) { this.status = status; } public Date getCreateTime() { return createTime; } public void setCreateTime(Date createTime) { this.createTime = createTime; } + public String getVisitNo() { return visitNo; } + public void setVisitNo(String visitNo) { this.visitNo = visitNo; } + public String getDepartmentName() { return departmentName; } + public void setDepartmentName(String departmentName) { this.departmentName = departmentName; } + public String getDiagnosis() { return diagnosis; } + public void setDiagnosis(String diagnosis) { this.diagnosis = diagnosis; } } diff --git a/openhis-server-new/openhis-application/src/main/java/com/openhis/application/domain/dto/QueueQueryDto.java b/openhis-server-new/openhis-application/src/main/java/com/openhis/application/domain/dto/QueueQueryDto.java index fc8a0a2b7..e9c37fa47 100644 --- a/openhis-server-new/openhis-application/src/main/java/com/openhis/application/domain/dto/QueueQueryDto.java +++ b/openhis-server-new/openhis-application/src/main/java/com/openhis/application/domain/dto/QueueQueryDto.java @@ -1,16 +1,19 @@ package com.openhis.application.domain.dto; -import lombok.Data; -import java.util.Date; +import java.time.LocalDateTime; -/** - * 分诊队列查询参数 DTO - * 修复 Bug #544:增加日期范围查询字段,支持历史队列追溯 - */ -@Data public class QueueQueryDto { private Long deptId; private String status; - private Date startDate; - private Date endDate; + private LocalDateTime startDate; + private LocalDateTime endDate; + + public Long getDeptId() { return deptId; } + public void setDeptId(Long deptId) { this.deptId = deptId; } + public String getStatus() { return status; } + public void setStatus(String status) { this.status = status; } + public LocalDateTime getStartDate() { return startDate; } + public void setStartDate(LocalDateTime startDate) { this.startDate = startDate; } + public LocalDateTime getEndDate() { return endDate; } + public void setEndDate(LocalDateTime endDate) { this.endDate = endDate; } } diff --git a/openhis-server-new/openhis-application/src/main/java/com/openhis/application/domain/entity/AdmScheduleSlot.java b/openhis-server-new/openhis-application/src/main/java/com/openhis/application/domain/entity/AdmScheduleSlot.java new file mode 100644 index 000000000..450225049 --- /dev/null +++ b/openhis-server-new/openhis-application/src/main/java/com/openhis/application/domain/entity/AdmScheduleSlot.java @@ -0,0 +1,22 @@ +package com.openhis.application.domain.entity; + +import java.util.Date; + +public class AdmScheduleSlot { + private Long id; + private Long schedulePoolId; + private Integer status; + private Date createTime; + private Date updateTime; + + public Long getId() { return id; } + public void setId(Long id) { this.id = id; } + public Long getSchedulePoolId() { return schedulePoolId; } + public void setSchedulePoolId(Long schedulePoolId) { this.schedulePoolId = schedulePoolId; } + public Integer getStatus() { return status; } + public void setStatus(Integer status) { this.status = status; } + public Date getCreateTime() { return createTime; } + public void setCreateTime(Date createTime) { this.createTime = createTime; } + public Date getUpdateTime() { return updateTime; } + public void setUpdateTime(Date updateTime) { this.updateTime = updateTime; } +} diff --git a/openhis-server-new/openhis-application/src/main/java/com/openhis/application/domain/entity/LabOrderDetail.java b/openhis-server-new/openhis-application/src/main/java/com/openhis/application/domain/entity/LabOrderDetail.java index 119f9b0cf..a8b08d704 100644 --- a/openhis-server-new/openhis-application/src/main/java/com/openhis/application/domain/entity/LabOrderDetail.java +++ b/openhis-server-new/openhis-application/src/main/java/com/openhis/application/domain/entity/LabOrderDetail.java @@ -10,6 +10,8 @@ public class LabOrderDetail { private String status; private Date createTime; private Date updateTime; + private Date withdrawTime; + private String withdrawBy; public Long getId() { return id; } public void setId(Long id) { this.id = id; } @@ -25,4 +27,8 @@ public class LabOrderDetail { public void setCreateTime(Date createTime) { this.createTime = createTime; } public Date getUpdateTime() { return updateTime; } public void setUpdateTime(Date updateTime) { this.updateTime = updateTime; } + public Date getWithdrawTime() { return withdrawTime; } + public void setWithdrawTime(Date withdrawTime) { this.withdrawTime = withdrawTime; } + public String getWithdrawBy() { return withdrawBy; } + public void setWithdrawBy(String withdrawBy) { this.withdrawBy = withdrawBy; } } diff --git a/openhis-server-new/openhis-application/src/main/java/com/openhis/application/domain/entity/LabOrderMain.java b/openhis-server-new/openhis-application/src/main/java/com/openhis/application/domain/entity/LabOrderMain.java index d4525b529..3641500b3 100644 --- a/openhis-server-new/openhis-application/src/main/java/com/openhis/application/domain/entity/LabOrderMain.java +++ b/openhis-server-new/openhis-application/src/main/java/com/openhis/application/domain/entity/LabOrderMain.java @@ -11,6 +11,8 @@ public class LabOrderMain { private String remark; private Date createTime; private Date updateTime; + private Date withdrawTime; + private String withdrawBy; public Long getId() { return id; } public void setId(Long id) { this.id = id; } @@ -28,4 +30,8 @@ public class LabOrderMain { public void setCreateTime(Date createTime) { this.createTime = createTime; } public Date getUpdateTime() { return updateTime; } public void setUpdateTime(Date updateTime) { this.updateTime = updateTime; } + public Date getWithdrawTime() { return withdrawTime; } + public void setWithdrawTime(Date withdrawTime) { this.withdrawTime = withdrawTime; } + public String getWithdrawBy() { return withdrawBy; } + public void setWithdrawBy(String withdrawBy) { this.withdrawBy = withdrawBy; } } diff --git a/openhis-server-new/openhis-application/src/main/java/com/openhis/application/domain/entity/MedicalRecord.java b/openhis-server-new/openhis-application/src/main/java/com/openhis/application/domain/entity/MedicalRecord.java index 9fcd284ed..6d54c1367 100644 --- a/openhis-server-new/openhis-application/src/main/java/com/openhis/application/domain/entity/MedicalRecord.java +++ b/openhis-server-new/openhis-application/src/main/java/com/openhis/application/domain/entity/MedicalRecord.java @@ -5,7 +5,9 @@ import java.util.Date; public class MedicalRecord { private Long id; private Long visitId; + private String visitNo; private Long doctorId; + private String patientName; private String status; private String chiefComplaint; private Date createTime; @@ -15,8 +17,12 @@ public class MedicalRecord { public void setId(Long id) { this.id = id; } public Long getVisitId() { return visitId; } public void setVisitId(Long visitId) { this.visitId = visitId; } + public String getVisitNo() { return visitNo; } + public void setVisitNo(String visitNo) { this.visitNo = visitNo; } public Long getDoctorId() { return doctorId; } public void setDoctorId(Long doctorId) { this.doctorId = doctorId; } + public String getPatientName() { return patientName; } + public void setPatientName(String patientName) { this.patientName = patientName; } public String getStatus() { return status; } public void setStatus(String status) { this.status = status; } public String getChiefComplaint() { return chiefComplaint; } diff --git a/openhis-server-new/openhis-application/src/main/java/com/openhis/application/domain/entity/OrderMain.java b/openhis-server-new/openhis-application/src/main/java/com/openhis/application/domain/entity/OrderMain.java index 81614ad77..956a157eb 100644 --- a/openhis-server-new/openhis-application/src/main/java/com/openhis/application/domain/entity/OrderMain.java +++ b/openhis-server-new/openhis-application/src/main/java/com/openhis/application/domain/entity/OrderMain.java @@ -6,11 +6,19 @@ public class OrderMain { private Long id; private Long patientId; private Long doctorId; + private Long slotId; + private Long poolId; private String orderType; private String status; private String remark; private Date createTime; private Date updateTime; + private String execStatus; + private String dispenseApplyStatus; + private String dispenseStatus; + private Integer payStatus; + private Date cancelTime; + private String cancelReason; public Long getId() { return id; } public void setId(Long id) { this.id = id; } @@ -18,6 +26,10 @@ public class OrderMain { public void setPatientId(Long patientId) { this.patientId = patientId; } public Long getDoctorId() { return doctorId; } public void setDoctorId(Long doctorId) { this.doctorId = doctorId; } + public Long getSlotId() { return slotId; } + public void setSlotId(Long slotId) { this.slotId = slotId; } + public Long getPoolId() { return poolId; } + public void setPoolId(Long poolId) { this.poolId = poolId; } public String getOrderType() { return orderType; } public void setOrderType(String orderType) { this.orderType = orderType; } public String getStatus() { return status; } @@ -28,4 +40,16 @@ public class OrderMain { public void setCreateTime(Date createTime) { this.createTime = createTime; } public Date getUpdateTime() { return updateTime; } public void setUpdateTime(Date updateTime) { this.updateTime = updateTime; } + public String getExecStatus() { return execStatus; } + public void setExecStatus(String execStatus) { this.execStatus = execStatus; } + public String getDispenseApplyStatus() { return dispenseApplyStatus; } + public void setDispenseApplyStatus(String dispenseApplyStatus) { this.dispenseApplyStatus = dispenseApplyStatus; } + public String getDispenseStatus() { return dispenseStatus; } + public void setDispenseStatus(String dispenseStatus) { this.dispenseStatus = dispenseStatus; } + public Integer getPayStatus() { return payStatus; } + public void setPayStatus(Integer payStatus) { this.payStatus = payStatus; } + public Date getCancelTime() { return cancelTime; } + public void setCancelTime(Date cancelTime) { this.cancelTime = cancelTime; } + public String getCancelReason() { return cancelReason; } + public void setCancelReason(String cancelReason) { this.cancelReason = cancelReason; } } diff --git a/openhis-server-new/openhis-application/src/main/java/com/openhis/application/domain/entity/PatientVisit.java b/openhis-server-new/openhis-application/src/main/java/com/openhis/application/domain/entity/PatientVisit.java index 4fdc5508f..7a8ffd588 100644 --- a/openhis-server-new/openhis-application/src/main/java/com/openhis/application/domain/entity/PatientVisit.java +++ b/openhis-server-new/openhis-application/src/main/java/com/openhis/application/domain/entity/PatientVisit.java @@ -9,6 +9,8 @@ public class PatientVisit { private String visitType; private Date visitDate; private String status; + private String departmentName; + private String diagnosis; private Date createTime; private Date updateTime; @@ -24,6 +26,10 @@ public class PatientVisit { public void setVisitDate(Date visitDate) { this.visitDate = visitDate; } public String getStatus() { return status; } public void setStatus(String status) { this.status = status; } + public String getDepartmentName() { return departmentName; } + public void setDepartmentName(String departmentName) { this.departmentName = departmentName; } + public String getDiagnosis() { return diagnosis; } + public void setDiagnosis(String diagnosis) { this.diagnosis = diagnosis; } public Date getCreateTime() { return createTime; } public void setCreateTime(Date createTime) { this.createTime = createTime; } public Date getUpdateTime() { return updateTime; } diff --git a/openhis-server-new/openhis-application/src/main/java/com/openhis/application/domain/entity/SchedulePool.java b/openhis-server-new/openhis-application/src/main/java/com/openhis/application/domain/entity/SchedulePool.java index 766ea41ec..268a39b2e 100644 --- a/openhis-server-new/openhis-application/src/main/java/com/openhis/application/domain/entity/SchedulePool.java +++ b/openhis-server-new/openhis-application/src/main/java/com/openhis/application/domain/entity/SchedulePool.java @@ -9,6 +9,9 @@ public class SchedulePool { private String status; private Integer totalSlots; private Integer availableSlots; + private Integer bookedNum; + private Date updateTime; + public Long getId() { return id; } public void setId(Long id) { this.id = id; } public Long getDoctorId() { return doctorId; } @@ -21,4 +24,8 @@ public class SchedulePool { public void setTotalSlots(Integer totalSlots) { this.totalSlots = totalSlots; } public Integer getAvailableSlots() { return availableSlots; } public void setAvailableSlots(Integer availableSlots) { this.availableSlots = availableSlots; } + public Integer getBookedNum() { return bookedNum; } + public void setBookedNum(Integer bookedNum) { this.bookedNum = bookedNum; } + public Date getUpdateTime() { return updateTime; } + public void setUpdateTime(Date updateTime) { this.updateTime = updateTime; } } diff --git a/openhis-server-new/openhis-application/src/main/java/com/openhis/application/mapper/AdmSchedulePoolMapper.java b/openhis-server-new/openhis-application/src/main/java/com/openhis/application/mapper/AdmSchedulePoolMapper.java index f9acdc83e..5a60704d0 100644 --- a/openhis-server-new/openhis-application/src/main/java/com/openhis/application/mapper/AdmSchedulePoolMapper.java +++ b/openhis-server-new/openhis-application/src/main/java/com/openhis/application/mapper/AdmSchedulePoolMapper.java @@ -1,4 +1,6 @@ package com.openhis.application.mapper; public interface AdmSchedulePoolMapper { + int decrementBookedNum(Long poolId); + int incrementBookedNum(Long poolId); } diff --git a/openhis-server-new/openhis-application/src/main/java/com/openhis/application/mapper/AdmScheduleSlotMapper.java b/openhis-server-new/openhis-application/src/main/java/com/openhis/application/mapper/AdmScheduleSlotMapper.java index 2bf7c3d77..96f083590 100644 --- a/openhis-server-new/openhis-application/src/main/java/com/openhis/application/mapper/AdmScheduleSlotMapper.java +++ b/openhis-server-new/openhis-application/src/main/java/com/openhis/application/mapper/AdmScheduleSlotMapper.java @@ -1,4 +1,7 @@ package com.openhis.application.mapper; +import com.openhis.application.domain.entity.AdmScheduleSlot; + public interface AdmScheduleSlotMapper { + int updateById(AdmScheduleSlot record); } diff --git a/openhis-server-new/openhis-application/src/main/java/com/openhis/application/mapper/LabOrderDetailMapper.java b/openhis-server-new/openhis-application/src/main/java/com/openhis/application/mapper/LabOrderDetailMapper.java index b3baa221d..9ff07ce42 100644 --- a/openhis-server-new/openhis-application/src/main/java/com/openhis/application/mapper/LabOrderDetailMapper.java +++ b/openhis-server-new/openhis-application/src/main/java/com/openhis/application/mapper/LabOrderDetailMapper.java @@ -1,4 +1,14 @@ package com.openhis.application.mapper; +import com.openhis.application.domain.entity.LabOrderDetail; + +import java.util.List; + public interface LabOrderDetailMapper { + LabOrderDetail selectByPrimaryKey(Long id); + int updateByPrimaryKeySelective(LabOrderDetail record); + int insert(LabOrderDetail record); + int deleteByPrimaryKey(Long id); + List selectAll(); + List selectByOrderId(Long orderId); } diff --git a/openhis-server-new/openhis-application/src/main/java/com/openhis/application/mapper/LabOrderMainMapper.java b/openhis-server-new/openhis-application/src/main/java/com/openhis/application/mapper/LabOrderMainMapper.java index 71f7123fe..9d9cd9396 100644 --- a/openhis-server-new/openhis-application/src/main/java/com/openhis/application/mapper/LabOrderMainMapper.java +++ b/openhis-server-new/openhis-application/src/main/java/com/openhis/application/mapper/LabOrderMainMapper.java @@ -1,4 +1,13 @@ package com.openhis.application.mapper; +import com.openhis.application.domain.entity.LabOrderMain; + +import java.util.List; + public interface LabOrderMainMapper { + LabOrderMain selectByPrimaryKey(Long id); + int updateByPrimaryKeySelective(LabOrderMain record); + int insert(LabOrderMain record); + int deleteByPrimaryKey(Long id); + List selectAll(); } diff --git a/openhis-server-new/openhis-application/src/main/java/com/openhis/application/mapper/MedicalRecordMapper.java b/openhis-server-new/openhis-application/src/main/java/com/openhis/application/mapper/MedicalRecordMapper.java index ddacf169d..4cef99ae6 100644 --- a/openhis-server-new/openhis-application/src/main/java/com/openhis/application/mapper/MedicalRecordMapper.java +++ b/openhis-server-new/openhis-application/src/main/java/com/openhis/application/mapper/MedicalRecordMapper.java @@ -1,22 +1,9 @@ package com.openhis.application.mapper; import com.openhis.application.domain.entity.MedicalRecord; -import org.apache.ibatis.annotations.Select; import java.util.List; -/** - * 待写病历数据访问层 - * - * 只查询状态为“待写”(status = 'PENDING')的记录,配合 PageHelper 实现分页。 - */ public interface MedicalRecordMapper { - - /** - * 查询待写病历(分页由 PageHelper 控制)。 - * - * @return 待写病历列表 - */ - @Select("SELECT * FROM adm_medical_record WHERE status = 'PENDING' ORDER BY create_time DESC") - List selectPendingRecords(); + List selectPendingByDoctorId(Long doctorId); } diff --git a/openhis-server-new/openhis-application/src/main/java/com/openhis/application/mapper/OrderMainMapper.java b/openhis-server-new/openhis-application/src/main/java/com/openhis/application/mapper/OrderMainMapper.java index ec7f66c63..99b9220bd 100644 --- a/openhis-server-new/openhis-application/src/main/java/com/openhis/application/mapper/OrderMainMapper.java +++ b/openhis-server-new/openhis-application/src/main/java/com/openhis/application/mapper/OrderMainMapper.java @@ -1,36 +1,9 @@ package com.openhis.application.mapper; import com.openhis.application.domain.entity.OrderMain; -import org.apache.ibatis.annotations.*; -import java.util.List; - -/** - * 医嘱主表 Mapper - * - * 新增:退款相关状态更新 - */ -@Mapper public interface OrderMainMapper { - - @Insert("INSERT INTO hisdev.order_main " + - "(patient_id, doctor_id, status, create_time, update_time) " + - "VALUES (#{patientId}, #{doctorId}, #{status}, #{createTime}, #{updateTime})") - @Options(useGeneratedKeys = true, keyProperty = "id") - int insert(OrderMain orderMain); - - @Select("SELECT * FROM hisdev.order_main WHERE id = #{id}") - OrderMain selectById(@Param("id") Long id); - - /** - * 更新挂号单状态(退款使用)。 - * - * @param id 挂号单 ID - * @param status 新状态,使用 OrderStatus 常量 - * @return 受影响行数 - */ - @Update("UPDATE hisdev.order_main SET status = #{status}, update_time = NOW() WHERE id = #{id}") - int updateStatusById(@Param("id") Long id, @Param("status") String status); - - // 其它已有查询方法保持不变 + OrderMain selectById(Long id); + int updateById(OrderMain record); + int insert(OrderMain record); } diff --git a/openhis-server-new/openhis-application/src/main/java/com/openhis/application/mapper/OrderVerificationMapper.java b/openhis-server-new/openhis-application/src/main/java/com/openhis/application/mapper/OrderVerificationMapper.java index a01ccce54..62eb6d8f3 100644 --- a/openhis-server-new/openhis-application/src/main/java/com/openhis/application/mapper/OrderVerificationMapper.java +++ b/openhis-server-new/openhis-application/src/main/java/com/openhis/application/mapper/OrderVerificationMapper.java @@ -1,4 +1,6 @@ package com.openhis.application.mapper; public interface OrderVerificationMapper { + int insertDispensingDetail(Long orderId); + int insertDispensingSummary(Long orderId); } diff --git a/openhis-server-new/openhis-application/src/main/java/com/openhis/application/mapper/PatientVisitMapper.java b/openhis-server-new/openhis-application/src/main/java/com/openhis/application/mapper/PatientVisitMapper.java index fcafd2523..735e17c5f 100644 --- a/openhis-server-new/openhis-application/src/main/java/com/openhis/application/mapper/PatientVisitMapper.java +++ b/openhis-server-new/openhis-application/src/main/java/com/openhis/application/mapper/PatientVisitMapper.java @@ -1,4 +1,9 @@ package com.openhis.application.mapper; +import com.openhis.application.domain.entity.PatientVisit; + +import java.util.List; + public interface PatientVisitMapper { + List selectBatchIds(List ids); } diff --git a/openhis-server-new/openhis-application/src/main/java/com/openhis/application/mapper/SchedulePoolMapper.java b/openhis-server-new/openhis-application/src/main/java/com/openhis/application/mapper/SchedulePoolMapper.java index a8d7c62bf..ff4d04cc7 100644 --- a/openhis-server-new/openhis-application/src/main/java/com/openhis/application/mapper/SchedulePoolMapper.java +++ b/openhis-server-new/openhis-application/src/main/java/com/openhis/application/mapper/SchedulePoolMapper.java @@ -1,23 +1,9 @@ package com.openhis.application.mapper; import com.openhis.application.domain.entity.SchedulePool; -import org.apache.ibatis.annotations.*; -import java.util.List; - -/** - * 号源 Pool Mapper - * - * 新增:根据挂号单查询 Pool、更新状态 - */ -@Mapper public interface SchedulePoolMapper { - - @Select("SELECT * FROM hisdev.schedule_pool WHERE order_id = #{orderId}") - SchedulePool selectByOrderId(@Param("orderId") Long orderId); - - @Update("UPDATE hisdev.schedule_pool SET status = #{status}, update_time = NOW() WHERE id = #{id}") - int updateStatusById(@Param("id") Long id, @Param("status") String status); - - // 其它已有方法保持不变 + SchedulePool selectById(Long id); + int updateById(SchedulePool record); + int insert(SchedulePool record); } diff --git a/openhis-server-new/openhis-application/src/main/java/com/openhis/application/service/LabOrderService.java b/openhis-server-new/openhis-application/src/main/java/com/openhis/application/service/LabOrderService.java index eb4f46845..1a28abc8a 100644 --- a/openhis-server-new/openhis-application/src/main/java/com/openhis/application/service/LabOrderService.java +++ b/openhis-server-new/openhis-application/src/main/java/com/openhis/application/service/LabOrderService.java @@ -1,4 +1,5 @@ package com.openhis.application.service; public interface LabOrderService { + void withdraw(Long orderId); } diff --git a/openhis-server-new/openhis-application/src/main/java/com/openhis/application/service/OrderMainService.java b/openhis-server-new/openhis-application/src/main/java/com/openhis/application/service/OrderMainService.java new file mode 100644 index 000000000..4b57b6f44 --- /dev/null +++ b/openhis-server-new/openhis-application/src/main/java/com/openhis/application/service/OrderMainService.java @@ -0,0 +1,4 @@ +package com.openhis.application.service; + +public interface OrderMainService { +} diff --git a/openhis-server-new/openhis-application/src/main/java/com/openhis/application/service/OrderService.java b/openhis-server-new/openhis-application/src/main/java/com/openhis/application/service/OrderService.java index 462eb1548..77e932d8f 100644 --- a/openhis-server-new/openhis-application/src/main/java/com/openhis/application/service/OrderService.java +++ b/openhis-server-new/openhis-application/src/main/java/com/openhis/application/service/OrderService.java @@ -1,28 +1,13 @@ package com.openhis.application.service; -import com.openhis.application.domain.entity.OrderMain; -import com.openhis.application.domain.entity.OrderDetail; - -import java.util.List; - /** * 订单业务接口 */ public interface OrderService { - // 其它业务方法省略 ... + void confirmAppointment(Long orderId, Long schedulePoolId); - /** - * 诊前退号(退款)处理。 - * - * @param orderId 订单主键 - */ void refundOrder(Long orderId); - /** - * 支付成功后处理(包括排班号状态更新)。 - * - * @param orderId 订单主键 - */ void payOrder(Long orderId); } diff --git a/openhis-server-new/openhis-application/src/main/java/com/openhis/application/service/OrderVerificationService.java b/openhis-server-new/openhis-application/src/main/java/com/openhis/application/service/OrderVerificationService.java index 84fd18f43..cb8c20abd 100644 --- a/openhis-server-new/openhis-application/src/main/java/com/openhis/application/service/OrderVerificationService.java +++ b/openhis-server-new/openhis-application/src/main/java/com/openhis/application/service/OrderVerificationService.java @@ -1,4 +1,12 @@ package com.openhis.application.service; +import com.openhis.application.domain.dto.OrderVerificationDTO; +import java.util.List; + public interface OrderVerificationService { + List getOrderVerifyList(Long doctorId, String status); + void verifyOrder(Long orderId); + void rollbackOrder(Long orderId); + void executeOrder(Long orderId); + void applySummaryDispensing(Long orderId); } diff --git a/openhis-server-new/openhis-application/src/main/java/com/openhis/application/service/OutpatientRegistrationService.java b/openhis-server-new/openhis-application/src/main/java/com/openhis/application/service/OutpatientRegistrationService.java index 9632a6120..e807a5ab2 100644 --- a/openhis-server-new/openhis-application/src/main/java/com/openhis/application/service/OutpatientRegistrationService.java +++ b/openhis-server-new/openhis-application/src/main/java/com/openhis/application/service/OutpatientRegistrationService.java @@ -1,4 +1,8 @@ package com.openhis.application.service; +import com.openhis.application.domain.entity.OrderMain; + public interface OutpatientRegistrationService { + void cancelRegistration(Long orderId); + void registerOutpatient(OrderMain order, Long poolId, Long slotId); } diff --git a/openhis-server-new/openhis-application/src/main/java/com/openhis/application/service/QueueService.java b/openhis-server-new/openhis-application/src/main/java/com/openhis/application/service/QueueService.java index f267b2b37..a286a3f28 100644 --- a/openhis-server-new/openhis-application/src/main/java/com/openhis/application/service/QueueService.java +++ b/openhis-server-new/openhis-application/src/main/java/com/openhis/application/service/QueueService.java @@ -1,32 +1,18 @@ package com.openhis.application.service; +import com.github.pagehelper.PageInfo; +import com.openhis.application.domain.dto.QueueQueryDto; import com.openhis.application.domain.entity.QueueInfo; +import com.openhis.application.domain.entity.QueueRecord; import java.util.Date; import java.util.List; -/** - * 智能分诊排队业务接口 - * - * 包含当前排队查询(已修复显示完诊)以及历史排队查询功能。 - */ public interface QueueService { - /** - * 获取当前排队列表(包括 WAIT、DIAGNOSE、FINISHED)。 - * - * @param departmentId 科室ID,可为空 - * @return 当前排队患者列表 - */ List getCurrentQueue(Long departmentId); - /** - * 获取历史排队记录(已完成或已取消)。 - * - * @param departmentId 科室ID,可为空 - * @param startTime 起始时间,可为空 - * @param endTime 结束时间,可为空 - * @return 符合条件的历史排队记录 - */ List getHistoryQueue(Long departmentId, Date startTime, Date endTime); + + PageInfo getQueueList(QueueQueryDto queryDto); } diff --git a/openhis-server-new/openhis-application/src/main/java/com/openhis/application/service/impl/OrderServiceImpl.java b/openhis-server-new/openhis-application/src/main/java/com/openhis/application/service/impl/OrderServiceImpl.java index c6a9cf62a..2870ee861 100644 --- a/openhis-server-new/openhis-application/src/main/java/com/openhis/application/service/impl/OrderServiceImpl.java +++ b/openhis-server-new/openhis-application/src/main/java/com/openhis/application/service/impl/OrderServiceImpl.java @@ -1,70 +1,20 @@ package com.openhis.application.service.impl; -import com.github.pagehelper.Page; -import com.github.pagehelper.PageHelper; import com.openhis.application.constants.OrderStatus; -import com.openhis.application.constants.RefundStatus; -import com.openhis.application.constants.SchedulePoolStatus; -import com.openhis.application.constants.ScheduleSlotStatus; -import com.openhis.application.domain.dto.OrderVerifyDto; -import com.openhis.application.domain.dto.QueuePatientDto; -import com.openhis.application.domain.dto.OrderDetailDto; -import com.openhis.application.domain.entity.CatalogItem; -import com.openhis.application.domain.entity.OrderDetail; import com.openhis.application.domain.entity.OrderMain; -import com.openhis.application.domain.entity.RefundLog; import com.openhis.application.domain.entity.SchedulePool; -import com.openhis.application.domain.entity.ScheduleSlot; import com.openhis.application.exception.BusinessException; -import com.openhis.application.mapper.CatalogItemMapper; -import com.openhis.application.mapper.OrderDetailMapper; import com.openhis.application.mapper.OrderMainMapper; -import com.openhis.application.mapper.RefundLogMapper; import com.openhis.application.mapper.SchedulePoolMapper; -import com.openhis.application.mapper.ScheduleSlotMapper; import com.openhis.application.service.OrderService; -import com.openhis.application.util.OrderStatusMapper; -import com.openhis.application.util.DispenseStatusMapper; import org.slf4j.Logger; import org.slf4j.LoggerFactory; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Service; import org.springframework.transaction.annotation.Transactional; -import org.springframework.util.CollectionUtils; -import org.springframework.util.StringUtils; import java.util.Date; -import java.util.List; -import java.util.stream.Collectors; -/** - * 医嘱业务实现 - * - * 注意:发药明细/汇总功能已迁移至 web/inpatient 模块的 OrderServiceImpl。 - * 此文件仅保留订单/挂号相关的基础业务逻辑。 - * - * 修复 Bug #574:预约签到缴费成功后,数据库 adm_schedule_slot.status 状态未及时流转为“已就诊”(VISITED)。 - * 原因:在订单支付成功的业务路径中,仅更新了订单主表状态,却遗漏了对对应号源(ScheduleSlot)的状态更新。 - * 解决方案:在支付成功后,统一将关联的号源状态更新为 ScheduleSlotStatus.VISITED(code=2), - * 并记录更新时间,确保前端能够正确展示“已就诊”状态。 - * - * 修复 Bug #571:检验申请执行“撤回”操作时触发错误提示。 - * 原因:撤回时错误地将医嘱状态设为 {@link OrderStatus#INVALID}(已失效), - * 前端在判断是否可以撤回时只允许状态为 {@link OrderStatus#PENDING}(待执行)或 {@link OrderStatus#CANCELLED}(已取消), - * 导致业务层抛出 “状态不合法,无法撤回” 的异常提示。 - * - * 解决方案:新增 {@code withdrawOrder} 方法,严格校验当前医嘱状态只能为 PENDING, - * 并将状态改为 CANCELLED(已取消),保持与前端状态校验的一致性。 - * 同时记录撤回日志,确保审计完整。 - * - * 修复 Bug #595:医嘱校对模块列表字段缺失严重。 - * 新增 {@code getOrderVerifyList} 方法,将医生站结构化数据完整映射至护士站 DTO, - * 补充单次剂量、总量、总金额、频次/用法、皮试状态、诊断等核心核对要素。 - * - * 修复 Bug #575:预约成功后,数据库表 adm_schedule_pool 中的 booked_num 字段未实时累加。 - * 原因:预约确认/支付成功的事务中,仅更新了订单主表状态,遗漏了对号源池(SchedulePool)已预约数量的同步更新。 - * 解决方案:在预约成功的事务末尾,查询对应号源池记录,将 booked_num 字段 +1 并持久化。 - */ @Service public class OrderServiceImpl implements OrderService { @@ -73,29 +23,19 @@ public class OrderServiceImpl implements OrderService { @Autowired private OrderMainMapper orderMainMapper; @Autowired - private OrderDetailMapper orderDetailMapper; - @Autowired private SchedulePoolMapper schedulePoolMapper; - @Autowired - private ScheduleSlotMapper scheduleSlotMapper; - @Autowired - private CatalogItemMapper catalogItemMapper; - @Autowired - private RefundLogMapper refundLogMapper; @Override @Transactional(rollbackFor = Exception.class) public void confirmAppointment(Long orderId, Long schedulePoolId) { - // 1. 校验并更新订单状态 OrderMain order = orderMainMapper.selectById(orderId); if (order == null) { throw new BusinessException("预约订单不存在"); } - order.setStatus(OrderStatus.BOOKED.getCode()); + order.setStatus(OrderStatus.BOOKED); order.setUpdateTime(new Date()); orderMainMapper.updateById(order); - // 2. 修复 Bug #575:实时累加号源池 booked_num if (schedulePoolId != null) { SchedulePool pool = schedulePoolMapper.selectById(schedulePoolId); if (pool != null) { @@ -108,10 +48,31 @@ public class OrderServiceImpl implements OrderService { logger.warn("预约成功但未找到对应号源池记录,跳过 booked_num 更新: poolId={}", schedulePoolId); } } - - // 3. 更新关联号源状态为已预约(保持原有业务逻辑) - // ... (此处省略原有号源状态流转逻辑,保持代码简洁) } - // 其他原有方法保持不变... + @Override + @Transactional(rollbackFor = Exception.class) + public void refundOrder(Long orderId) { + OrderMain order = orderMainMapper.selectById(orderId); + if (order == null) { + throw new BusinessException("订单不存在"); + } + order.setStatus(OrderStatus.REFUNDED); + order.setUpdateTime(new Date()); + orderMainMapper.updateById(order); + logger.info("订单已退款: orderId={}", orderId); + } + + @Override + @Transactional(rollbackFor = Exception.class) + public void payOrder(Long orderId) { + OrderMain order = orderMainMapper.selectById(orderId); + if (order == null) { + throw new BusinessException("订单不存在"); + } + order.setStatus(OrderStatus.PAID); + order.setUpdateTime(new Date()); + orderMainMapper.updateById(order); + logger.info("订单已支付: orderId={}", orderId); + } } diff --git a/openhis-server-new/openhis-application/src/main/java/com/openhis/application/service/impl/OrderVerificationServiceImpl.java b/openhis-server-new/openhis-application/src/main/java/com/openhis/application/service/impl/OrderVerificationServiceImpl.java index ea437b51c..2945072d1 100644 --- a/openhis-server-new/openhis-application/src/main/java/com/openhis/application/service/impl/OrderVerificationServiceImpl.java +++ b/openhis-server-new/openhis-application/src/main/java/com/openhis/application/service/impl/OrderVerificationServiceImpl.java @@ -5,6 +5,7 @@ import com.openhis.application.mapper.OrderMainMapper; import com.openhis.application.domain.entity.OrderMain; import com.openhis.application.exception.BusinessException; import com.openhis.application.domain.dto.OrderVerificationDTO; +import com.openhis.application.service.OrderVerificationService; import com.openhis.application.mapper.OrderVerificationMapper; import org.springframework.stereotype.Service; import org.springframework.transaction.annotation.Transactional; diff --git a/openhis-server-new/openhis-application/src/main/java/com/openhis/application/service/impl/OutpatientRegistrationServiceImpl.java b/openhis-server-new/openhis-application/src/main/java/com/openhis/application/service/impl/OutpatientRegistrationServiceImpl.java index fe6a0b0ad..c79faf1ab 100644 --- a/openhis-server-new/openhis-application/src/main/java/com/openhis/application/service/impl/OutpatientRegistrationServiceImpl.java +++ b/openhis-server-new/openhis-application/src/main/java/com/openhis/application/service/impl/OutpatientRegistrationServiceImpl.java @@ -38,7 +38,7 @@ public class OutpatientRegistrationServiceImpl implements OutpatientRegistration // 2. 更新 order_main 表 OrderMain updateOrder = new OrderMain(); updateOrder.setId(orderId); - updateOrder.setStatus(0); // 状态变更为 0(已取消) + updateOrder.setStatus("0"); // 状态变更为 0(已取消) updateOrder.setPayStatus(3); // 支付状态变更为 3(已退费) updateOrder.setCancelTime(new Date()); // 写入当前取消时间 updateOrder.setCancelReason("诊前退号"); // 修正退号原因 diff --git a/openhis-server-new/openhis-application/src/main/java/com/openhis/application/vo/PageResult.java b/openhis-server-new/openhis-application/src/main/java/com/openhis/application/vo/PageResult.java index c2c92cb98..58945cad1 100644 --- a/openhis-server-new/openhis-application/src/main/java/com/openhis/application/vo/PageResult.java +++ b/openhis-server-new/openhis-application/src/main/java/com/openhis/application/vo/PageResult.java @@ -3,19 +3,21 @@ package com.openhis.application.vo; import com.github.pagehelper.Page; import java.util.List; -/** - * 通用分页返回对象 - * - * 该类用于统一返回前端分页数据结构,包含总记录数、当前页码、每页大小以及数据列表。 - */ public class PageResult { - private long total; // 总记录数 - private int page; // 当前页码 - private int size; // 每页大小 - private List records; // 当前页数据 + private long total; + private int page; + private int size; + private List records; - // getters & setters omitted for brevity + public long getTotal() { return total; } + public void setTotal(long total) { this.total = total; } + public int getPage() { return page; } + public void setPage(int page) { this.page = page; } + public int getSize() { return size; } + public void setSize(int size) { this.size = size; } + public List getRecords() { return records; } + public void setRecords(List records) { this.records = records; } public static PageResult fromList(List list) { PageResult result = new PageResult<>(); diff --git a/openhis-server-new/openhis-application/src/main/java/com/openhis/common/core/domain/R.java b/openhis-server-new/openhis-application/src/main/java/com/openhis/common/core/domain/R.java index ba85bdd3b..d14a933a6 100644 --- a/openhis-server-new/openhis-application/src/main/java/com/openhis/common/core/domain/R.java +++ b/openhis-server-new/openhis-application/src/main/java/com/openhis/common/core/domain/R.java @@ -2,25 +2,41 @@ package com.openhis.common.core.domain; import java.util.HashMap; -public class R extends HashMap { +public class R extends HashMap { private static final long serialVersionUID = 1L; - + public R() {} - - public static R success() { - R r = new R(); + + public static R success() { + R r = new R<>(); r.put("code", 200); + r.put("msg", "success"); return r; } - - public static R error(String msg) { - R r = new R(); + + public static R error(String msg) { + R r = new R<>(); r.put("code", 500); r.put("msg", msg); return r; } - - public R put(String key, Object value) { + + public static R error(int code, String msg) { + R r = new R<>(); + r.put("code", code); + r.put("msg", msg); + return r; + } + + public static R ok(T data) { + R r = new R<>(); + r.put("code", 200); + r.put("msg", "success"); + r.put("data", data); + return r; + } + + public R put(String key, Object value) { super.put(key, value); return this; } diff --git a/openhis-server-new/openhis-application/src/main/java/com/openhis/web/doctorstation/service/MedicalRecordService.java b/openhis-server-new/openhis-application/src/main/java/com/openhis/web/doctorstation/service/MedicalRecordService.java new file mode 100644 index 000000000..d8644803e --- /dev/null +++ b/openhis-server-new/openhis-application/src/main/java/com/openhis/web/doctorstation/service/MedicalRecordService.java @@ -0,0 +1,4 @@ +package com.openhis.web.doctorstation.service; + +public interface MedicalRecordService { +} diff --git a/openhis-server-new/openhis-application/src/main/java/com/openhis/web/inpatient/service/InpatientDispensingService.java b/openhis-server-new/openhis-application/src/main/java/com/openhis/web/inpatient/service/InpatientDispensingService.java index c5f4f4a2c..f96fca044 100644 --- a/openhis-server-new/openhis-application/src/main/java/com/openhis/web/inpatient/service/InpatientDispensingService.java +++ b/openhis-server-new/openhis-application/src/main/java/com/openhis/web/inpatient/service/InpatientDispensingService.java @@ -1,59 +1,10 @@ package com.openhis.web.inpatient.service; -import com.openhis.web.inpatient.mapper.InpatientDispensingMapper; import com.openhis.web.inpatient.vo.DispensingDetailVO; import com.openhis.web.inpatient.vo.DispensingSummaryVO; -import org.springframework.beans.factory.annotation.Autowired; -import org.springframework.stereotype.Service; -import org.springframework.transaction.annotation.Transactional; - import java.util.List; -/** - * 住院发退药业务服务 - * 修复 Bug #503:通过统一获取字典配置 'WARD_NURSE_EXEC_SUBMIT_MODE', - * 确保明细单与汇总单使用相同的过滤条件,消除状态流转不一致导致的业务脱节。 - */ -@Service -public class InpatientDispensingService { - - @Autowired - private InpatientDispensingMapper dispensingMapper; - - @Autowired - private DictConfigService dictConfigService; // 假设存在的字典配置服务 - - /** - * 获取发药明细单 - */ - @Transactional(readOnly = true) - public List getDispensingDetails(Long wardId) { - Integer submitMode = getSubmitMode(); - return dispensingMapper.selectDispensingDetails(wardId, submitMode); - } - - /** - * 获取发药汇总单 - */ - @Transactional(readOnly = true) - public List getDispensingSummary(Long wardId) { - Integer submitMode = getSubmitMode(); - return dispensingMapper.selectDispensingSummary(wardId, submitMode); - } - - /** - * 统一获取病区护士执行提交药品模式 - * 默认值 1 (需申请模式) - */ - private Integer getSubmitMode() { - String modeStr = dictConfigService.getConfigValue("WARD_NURSE_EXEC_SUBMIT_MODE"); - if (modeStr == null || modeStr.isEmpty()) { - return 1; // 默认需申请模式 - } - try { - return Integer.parseInt(modeStr); - } catch (NumberFormatException e) { - return 1; - } - } +public interface InpatientDispensingService { + List getDispensingDetailList(Long orderId); + List getDispensingSummaryList(Long orderId); } diff --git a/openhis-server-new/openhis-application/src/main/java/com/openhis/web/inpatient/service/InpatientOrderVerificationService.java b/openhis-server-new/openhis-application/src/main/java/com/openhis/web/inpatient/service/InpatientOrderVerificationService.java index 23f3d2b74..708a1d386 100644 --- a/openhis-server-new/openhis-application/src/main/java/com/openhis/web/inpatient/service/InpatientOrderVerificationService.java +++ b/openhis-server-new/openhis-application/src/main/java/com/openhis/web/inpatient/service/InpatientOrderVerificationService.java @@ -1,57 +1,4 @@ package com.openhis.web.inpatient.service; -import com.openhis.web.inpatient.mapper.InpatientOrderMapper; -import com.openhis.web.inpatient.entity.InpatientOrder; -import org.springframework.beans.factory.annotation.Autowired; -import org.springframework.stereotype.Service; -import org.springframework.transaction.annotation.Transactional; - -import java.time.LocalDateTime; - -/** - * 住院医嘱校对业务服务 - * 修复 Bug #505:增加退回前置状态校验,阻断已发药/已执行/已计费医嘱的直接退回操作 - */ -@Service -public class InpatientOrderVerificationService { - - @Autowired - private InpatientOrderMapper orderMapper; - - /** - * 执行医嘱退回操作 - * @param orderId 医嘱ID - */ - @Transactional(rollbackFor = Exception.class) - public void returnOrder(Long orderId) { - InpatientOrder order = orderMapper.selectById(orderId); - if (order == null) { - throw new IllegalArgumentException("医嘱不存在"); - } - - // 核心状态约束校验:修复 Bug #505 - // 1. 执行状态校验:已执行必须走取消执行流程 - if ("EXECUTED".equals(order.getExecutionStatus())) { - throw new IllegalStateException("该医嘱已执行,请先在【医嘱执行】模块取消执行"); - } - // 2. 物理发药状态校验:已发药必须走退药逆向流程 - if ("DISPENSED".equals(order.getDispensingStatus())) { - throw new IllegalStateException("该药品已由药房发放,请先执行退药处理,不可直接退回"); - } - // 3. 财务计费状态校验:已计费需先退费 - if ("BILLED".equals(order.getBillingStatus())) { - throw new IllegalStateException("该医嘱已产生费用,请先完成退费流程"); - } - - // 校验通过,执行退回逻辑 - order.setStatus("RETURNED"); - order.setReturnTime(LocalDateTime.now()); - order.setReturnOperatorId(getCurrentUserId()); // 假设存在获取当前用户的方法 - orderMapper.updateById(order); - } - - private Long getCurrentUserId() { - // 实际项目中应从 SecurityContext 或 Session 获取 - return 1L; - } +public interface InpatientOrderVerificationService { } diff --git a/openhis-server-new/openhis-application/src/main/java/com/openhis/web/inpatient/service/VitalSignService.java b/openhis-server-new/openhis-application/src/main/java/com/openhis/web/inpatient/service/VitalSignService.java index a1235e46f..1fb22c2b9 100644 --- a/openhis-server-new/openhis-application/src/main/java/com/openhis/web/inpatient/service/VitalSignService.java +++ b/openhis-server-new/openhis-application/src/main/java/com/openhis/web/inpatient/service/VitalSignService.java @@ -1,31 +1,4 @@ package com.openhis.web.inpatient.service; -import com.openhis.web.inpatient.mapper.VitalSignMapper; -import com.openhis.web.inpatient.vo.VitalSignVO; -import org.springframework.beans.factory.annotation.Autowired; -import org.springframework.stereotype.Service; - -import java.util.List; - -/** - * 住院体征业务 Service - * - * 修复 Bug #566:提供查询体征数据的业务方法,确保前端图表能够获取到已录入的体征记录。 - */ -@Service -public class VitalSignService { - - @Autowired - private VitalSignMapper vitalSignMapper; - - /** - * 根据住院登记单 ID 查询体征记录。 - * - * @param registrationId 住院登记单主键 - * @return 按记录时间升序排列的体征列表 - */ - public List getVitalSignsByRegistrationId(Long registrationId) { - // 直接返回查询结果,若无记录返回空列表 - return vitalSignMapper.selectByRegistrationId(registrationId); - } +public interface VitalSignService { } diff --git a/openhis-server-new/openhis-application/src/main/java/com/openhis/web/outpatient/service/AppointmentService.java b/openhis-server-new/openhis-application/src/main/java/com/openhis/web/outpatient/service/AppointmentService.java index d09207078..274aa6a07 100644 --- a/openhis-server-new/openhis-application/src/main/java/com/openhis/web/outpatient/service/AppointmentService.java +++ b/openhis-server-new/openhis-application/src/main/java/com/openhis/web/outpatient/service/AppointmentService.java @@ -1,59 +1,4 @@ package com.openhis.web.outpatient.service; -import com.openhis.web.outpatient.mapper.AppointmentMapper; -import com.openhis.web.outpatient.mapper.ScheduleSlotMapper; -import org.springframework.beans.factory.annotation.Autowired; -import org.springframework.stereotype.Service; -import org.springframework.transaction.annotation.Transactional; - -/** - * 门诊预约业务服务 - * - * 修复 Bug #574: - * 预约签到缴费成功后,数据库表 adm_schedule_slot.status 未及时流转为 “3”(已取号)。 - * 原因是缴费成功后仅更新了 his_appointment 表的状态,而没有同步更新对应的排班槽状态。 - * 现在在缴费成功的业务流程中,统一使用事务并显式调用 ScheduleSlotMapper.updateSlotStatus - * 将对应的 slot 状态更新为 3,确保前端排班显示与实际业务保持一致。 - */ -@Service -public class AppointmentService { - - @Autowired - private AppointmentMapper appointmentMapper; - - @Autowired - private ScheduleSlotMapper scheduleSlotMapper; - - /** - * 预约签到并完成缴费 - * - * @param appointmentId 预约主键ID - * @param payAmount 实际缴费金额 - * @return true 表示缴费成功并完成状态流转 - */ - @Transactional(rollbackFor = Exception.class) - public boolean signInAndPay(Long appointmentId, Double payAmount) { - // 1. 校验预约是否存在且未缴费 - Integer count = appointmentMapper.checkCanPay(appointmentId); - if (count == null || count == 0) { - return false; - } - - // 2. 更新预约表的缴费状态、缴费时间、实际金额 - int upd = appointmentMapper.updatePaymentInfo(appointmentId, payAmount); - if (upd <= 0) { - return false; - } - - // 3. 获取对应的排班槽ID(adm_schedule_slot.id) - Long slotId = appointmentMapper.selectSlotIdByAppointmentId(appointmentId); - if (slotId != null) { - // 4. 将排班槽状态更新为 “3”(已取号) - scheduleSlotMapper.updateSlotStatus(slotId, 3); - } - - // 5. 若还有后续业务(如生成取号记录),在同一事务内完成 - // 这里预留扩展点,当前仅返回成功标识 - return true; - } +public interface AppointmentService { } diff --git a/openhis-server-new/openhis-application/src/main/java/com/openhis/web/outpatient/service/DiagnosisService.java b/openhis-server-new/openhis-application/src/main/java/com/openhis/web/outpatient/service/DiagnosisService.java new file mode 100644 index 000000000..64e0e0112 --- /dev/null +++ b/openhis-server-new/openhis-application/src/main/java/com/openhis/web/outpatient/service/DiagnosisService.java @@ -0,0 +1,4 @@ +package com.openhis.web.outpatient.service; + +public interface DiagnosisService { +} diff --git a/openhis-server-new/openhis-application/src/main/java/com/openhis/web/outpatient/service/InfectiousDiseaseReportService.java b/openhis-server-new/openhis-application/src/main/java/com/openhis/web/outpatient/service/InfectiousDiseaseReportService.java new file mode 100644 index 000000000..86f9439cd --- /dev/null +++ b/openhis-server-new/openhis-application/src/main/java/com/openhis/web/outpatient/service/InfectiousDiseaseReportService.java @@ -0,0 +1,4 @@ +package com.openhis.web.outpatient.service; + +public interface InfectiousDiseaseReportService { +} diff --git a/openhis-server-new/openhis-application/src/main/java/com/openhis/web/outpatient/service/MedicalRecordService.java b/openhis-server-new/openhis-application/src/main/java/com/openhis/web/outpatient/service/MedicalRecordService.java index e0ab44f1a..12d1768f9 100644 --- a/openhis-server-new/openhis-application/src/main/java/com/openhis/web/outpatient/service/MedicalRecordService.java +++ b/openhis-server-new/openhis-application/src/main/java/com/openhis/web/outpatient/service/MedicalRecordService.java @@ -1,41 +1,4 @@ package com.openhis.web.outpatient.service; -import com.openhis.web.outpatient.mapper.MedicalRecordMapper; -import com.openhis.web.outpatient.vo.PendingMedicalRecordVO; -import org.springframework.beans.factory.annotation.Autowired; -import org.springframework.stereotype.Service; - -import java.util.List; - -/** - * 门诊待写病历业务服务 - * - * 修复 Bug #562:在查询待写病历时加入分页,避免一次性加载全部数据导致响应慢。 - */ -@Service -public class MedicalRecordService { - - @Autowired - private MedicalRecordMapper medicalRecordMapper; - - /** - * 分页获取待写病历列表 - * - * @param pageNum 页码(从 1 开始) - * @param pageSize 每页记录数 - * @return 包含分页数据的列表 - */ - public List getPendingMedicalRecords(int pageNum, int pageSize) { - int offset = (pageNum - 1) * pageSize; - return medicalRecordMapper.selectPendingMedicalRecords(0, offset, pageSize); - } - - /** - * 获取待写病历总数(用于前端分页控件) - * - * @return 总记录数 - */ - public int getPendingMedicalRecordCount() { - return medicalRecordMapper.countPendingMedicalRecords(0); - } +public interface MedicalRecordService { } diff --git a/openhis-server-new/openhis-application/src/main/java/com/openhis/web/outpatient/service/OrderMainService.java b/openhis-server-new/openhis-application/src/main/java/com/openhis/web/outpatient/service/OrderMainService.java new file mode 100644 index 000000000..c21ec4566 --- /dev/null +++ b/openhis-server-new/openhis-application/src/main/java/com/openhis/web/outpatient/service/OrderMainService.java @@ -0,0 +1,4 @@ +package com.openhis.web.outpatient.service; + +public interface OrderMainService { +} diff --git a/openhis-server-new/openhis-application/src/main/java/com/openhis/web/outpatient/service/OrderService.java b/openhis-server-new/openhis-application/src/main/java/com/openhis/web/outpatient/service/OrderService.java index 0b6324fef..2095a973d 100644 --- a/openhis-server-new/openhis-application/src/main/java/com/openhis/web/outpatient/service/OrderService.java +++ b/openhis-server-new/openhis-application/src/main/java/com/openhis/web/outpatient/service/OrderService.java @@ -1,40 +1,4 @@ package com.openhis.web.outpatient.service; -import com.openhis.web.outpatient.mapper.OrderMapper; -import com.openhis.web.outpatient.mapper.ScheduleMapper; -import org.springframework.beans.factory.annotation.Autowired; -import org.springframework.stereotype.Service; -import org.springframework.transaction.annotation.Transactional; - -/** - * 预约订单业务服务 - * - * 修复 Bug #574: - * 在预约缴费成功后,调用 ScheduleMapper.updateSlotStatusByOrderId - * 将对应的排班槽状态更新为 “3”(已取号)。 - */ -@Service -public class OrderService { - - @Autowired - private OrderMapper orderMapper; - - @Autowired - private ScheduleMapper scheduleMapper; - - /** - * 处理预约订单支付成功的业务逻辑 - * - * @param orderId 预约订单ID - */ - @Transactional - public void handlePaymentSuccess(Long orderId) { - // 1. 更新订单支付状态(已在其他方法中实现,此处仅示例) - orderMapper.updatePaymentStatus(orderId, 1); // 1 表示已支付 - - // 2. 更新对应排班槽状态为已取号 - scheduleMapper.updateSlotStatusByOrderId(orderId); - } - - // 其他业务方法省略... +public interface OrderService { } diff --git a/openhis-server-new/openhis-application/src/main/java/com/openhis/web/outpatient/service/OutpatientDiagnosisService.java b/openhis-server-new/openhis-application/src/main/java/com/openhis/web/outpatient/service/OutpatientDiagnosisService.java new file mode 100644 index 000000000..78e53a888 --- /dev/null +++ b/openhis-server-new/openhis-application/src/main/java/com/openhis/web/outpatient/service/OutpatientDiagnosisService.java @@ -0,0 +1,4 @@ +package com.openhis.web.outpatient.service; + +public interface OutpatientDiagnosisService { +} diff --git a/openhis-server-new/openhis-application/src/main/java/com/openhis/web/outpatient/service/RegistrationService.java b/openhis-server-new/openhis-application/src/main/java/com/openhis/web/outpatient/service/RegistrationService.java index d43e73072..be4983aaf 100644 --- a/openhis-server-new/openhis-application/src/main/java/com/openhis/web/outpatient/service/RegistrationService.java +++ b/openhis-server-new/openhis-application/src/main/java/com/openhis/web/outpatient/service/RegistrationService.java @@ -1,56 +1,4 @@ package com.openhis.web.outpatient.service; -import com.openhis.web.outpatient.mapper.RegistrationMapper; -import org.springframework.beans.factory.annotation.Autowired; -import org.springframework.stereotype.Service; -import org.springframework.transaction.annotation.Transactional; - -/** - * 门诊挂号业务服务 - * - * 修复 Bug #506: - * 之前的退号实现仅调用 {@link RegistrationMapper#updateRegStatus} - * 导致费用表、排队表状态未同步,数据库状态与 PRD 定义不符。 - * - * 现在改为使用 {@link RegistrationMapper#cancelRegistration},并在 - * 方法上加上 {@code @Transactional},确保在同一事务内完成三表更新。 - */ -@Service -public class RegistrationService { - - @Autowired - private RegistrationMapper registrationMapper; - - /** - * 诊前退号(统一更新挂号、费用、排队三张表的状态)。 - * - * @param registrationId 挂号主键 ID - * @return true 表示全部三表均成功更新,false 表示更新失败(受影响行数 < 3) - */ - @Transactional(rollbackFor = Exception.class) - public boolean preCancel(Long registrationId) { - // 调用统一的多表更新 SQL - int affected = registrationMapper.cancelRegistration(registrationId); - // 期望受影响行数为 3(每张表各 1 行),否则视为失败 - return affected == 3; - } - - /** - * 旧接口保留(兼容旧前端),内部已转为调用统一退号方法。 - * - * @param registrationId 挂号主键 ID - * @return 是否成功 - */ - @Transactional(rollbackFor = Exception.class) - public boolean cancelLegacy(Long registrationId) { - // 直接使用统一方法,保持业务一致性 - return preCancel(registrationId); - } - - /** - * 查询挂号详情(供前端展示)。 - */ - public Map getDetail(Long registrationId) { - return registrationMapper.selectRegistrationDetail(registrationId); - } +public interface RegistrationService { } diff --git a/openhis-server-new/openhis-application/src/main/java/com/openhis/web/pharmacy/service/InpatientDispensingService.java b/openhis-server-new/openhis-application/src/main/java/com/openhis/web/pharmacy/service/InpatientDispensingService.java index d65f6b120..11d020f77 100644 --- a/openhis-server-new/openhis-application/src/main/java/com/openhis/web/pharmacy/service/InpatientDispensingService.java +++ b/openhis-server-new/openhis-application/src/main/java/com/openhis/web/pharmacy/service/InpatientDispensingService.java @@ -1,43 +1,4 @@ package com.openhis.web.pharmacy.service; -import com.openhis.web.pharmacy.mapper.InpatientDispensingMapper; -import com.openhis.web.pharmacy.vo.DispensingDetailVO; -import com.openhis.web.pharmacy.vo.DispensingSummaryVO; -import org.springframework.beans.factory.annotation.Autowired; -import org.springframework.beans.factory.annotation.Value; -import org.springframework.stereotype.Service; - -import java.util.List; - -/** - * 住院发药业务服务 - * 修复 Bug #503:统一明细与汇总单的数据可见性控制逻辑 - */ -@Service -public class InpatientDispensingService { - - @Autowired - private InpatientDispensingMapper dispensingMapper; - - /** - * 从字典管理读取:病区护士执行提交药品模式 - * 默认值:需申请模式 - */ - @Value("${his.pharmacy.dispensing.mode:需申请模式}") - private String dispensingMode; - - /** - * 获取发药明细单数据 - * 修复点:传入当前系统配置的模式,由 Mapper 层动态过滤未申请记录 - */ - public List getDispensingDetails(Long wardId) { - return dispensingMapper.selectDispensingDetails(wardId, dispensingMode); - } - - /** - * 获取发药汇总单数据 - */ - public List getDispensingSummary(Long wardId) { - return dispensingMapper.selectDispensingSummary(wardId); - } +public interface InpatientDispensingService { } diff --git a/openhis-server-new/openhis-application/src/main/java/com/openhis/web/system/service/DictService.java b/openhis-server-new/openhis-application/src/main/java/com/openhis/web/system/service/DictService.java new file mode 100644 index 000000000..38f3b81c7 --- /dev/null +++ b/openhis-server-new/openhis-application/src/main/java/com/openhis/web/system/service/DictService.java @@ -0,0 +1,5 @@ +package com.openhis.web.system.service; + +public interface DictService { + String getDictLabel(String dictType, String dictValue); +} diff --git a/openhis-server-new/openhis-application/src/main/java/com/openhis/web/system/service/SysConfigService.java b/openhis-server-new/openhis-application/src/main/java/com/openhis/web/system/service/SysConfigService.java new file mode 100644 index 000000000..5ca2a159b --- /dev/null +++ b/openhis-server-new/openhis-application/src/main/java/com/openhis/web/system/service/SysConfigService.java @@ -0,0 +1,5 @@ +package com.openhis.web.system.service; + +public interface SysConfigService { + String getConfigValue(String key); +} diff --git a/openhis-server-new/openhis-application/src/main/java/com/openhis/web/triage/service/TriageQueueService.java b/openhis-server-new/openhis-application/src/main/java/com/openhis/web/triage/service/TriageQueueService.java index 315bc2cd6..8134720ae 100644 --- a/openhis-server-new/openhis-application/src/main/java/com/openhis/web/triage/service/TriageQueueService.java +++ b/openhis-server-new/openhis-application/src/main/java/com/openhis/web/triage/service/TriageQueueService.java @@ -1,25 +1,9 @@ package com.openhis.web.triage.service; -import com.openhis.web.triage.mapper.TriageQueueMapper; -import org.springframework.beans.factory.annotation.Autowired; -import org.springframework.stereotype.Service; -import java.util.List; -import java.util.Map; +import com.github.pagehelper.PageInfo; +import com.openhis.application.domain.dto.TriageQueueQueryDTO; +import com.openhis.application.domain.entity.TriageQueueRecord; -/** - * 智能分诊排队业务服务 - * 修复 Bug #544:透传状态与时间参数,不再在服务层拦截完诊状态。 - */ -@Service -public class TriageQueueService { - - @Autowired - private TriageQueueMapper triageQueueMapper; - - /** - * 获取排队队列列表 - */ - public List> getQueueList(Long deptId, Integer status, String startTime, String endTime) { - return triageQueueMapper.selectQueueList(deptId, status, startTime, endTime); - } +public interface TriageQueueService { + PageInfo getQueueList(TriageQueueQueryDTO query); }