jh-module-ecg/jh-module-ecg-biz/src/main/java/cn/lihu/jh/module/ecg/controller/admin/freemark/TemplateCreateController.java
@@ -151,7 +151,18 @@ dataMap.put("age", appointment.getPatBirthday() == null ? "" : calculateAge(appointment.getPatBirthday())); dataMap.put("inhospno", StringUtils.isEmpty(appointment.getHospitalNo()) ? "" : appointment.getHospitalNo()); dataMap.put("idNo", StringUtils.isEmpty(appointment.getPatId()) ? "" : appointment.getPatId()); dataMap.put("badNo", StringUtils.isEmpty(appointment.getPatBedNo()) ? "" : appointment.getPatBedNo()); String ward = StringUtils.isEmpty(appointment.getPatWardDesc()) ? "" : appointment.getPatWardDesc(); String bed = StringUtils.isEmpty(appointment.getPatBedNo()) ? "" : appointment.getPatBedNo(); // 如果两个都有值,中间加空格;如果只有一个有值,就不加空格 String badNo = ""; if (!ward.isEmpty() && !bed.isEmpty()) { badNo = ward + " " + bed; } else { badNo = ward + bed; } dataMap.put("badNo", badNo); dataMap.put("birthday", appointment.getPatBirthday() == null ? "" : appointment.getPatBirthday()); dataMap.put("doctor", StringUtils.isEmpty(appointment.getDoctor()) ? "" : appointment.getDoctor()); dataMap.put("deptName", StringUtils.isEmpty(appointment.getPatDeptDesc()) ? "" : appointment.getPatDeptDesc()); jh-module-ecg/jh-module-ecg-biz/src/main/java/cn/lihu/jh/module/ecg/controller/admin/queue/vo/QueueRespVO.java
@@ -7,6 +7,7 @@ import java.time.LocalDate; import java.time.LocalDateTime; import java.util.Date; import java.util.Map; import com.alibaba.excel.annotation.*; @@ -103,4 +104,19 @@ @TableField(exist = false) private String tolerance; /** * 以下字段来自预约单(appointment),由 QueueServiceImpl#fillAppointmentInfo 填充 */ @Schema(description = "患者生日") private LocalDate patBirthday; @Schema(description = "登记时间") private Date registerDate; @Schema(description = "开单医师") private String doctor; @Schema(description = "开单日期(开单时间)") private Date doctorTime; } jh-module-ecg/jh-module-ecg-biz/src/main/java/cn/lihu/jh/module/ecg/dal/dataobject/queue/QueueDO.java
@@ -7,6 +7,7 @@ import cn.lihu.jh.framework.mybatis.core.dataobject.BaseDO; import java.time.LocalDate; import java.util.Date; import java.util.List; import java.util.Map; @@ -118,5 +119,21 @@ @TableField(exist = false) private String tolerance; /** * 以下字段来自预约单(appointment),queue 表中不存在, * 由 QueueServiceImpl#fillAppointmentInfo 在查询后按 applyNo 回查填充。 */ @TableField(exist = false) private LocalDate patBirthday; @TableField(exist = false) private Date registerDate; @TableField(exist = false) private String doctor; @TableField(exist = false) private Date doctorTime; } jh-module-ecg/jh-module-ecg-biz/src/main/java/cn/lihu/jh/module/ecg/dal/mysql/appointment/AppointmentMapper.java
@@ -39,7 +39,7 @@ @Select("select * from lihu.appointment where pat_id = #{patId} and to_days(book_date) = to_days(Now())") List<AppointmentDO> getCurrentPatId(String patId); @Select("select * from lihu.appointment where (apply_no = #{code} or episode_id= #{code} or hospital_no =#{code} or pat_identity_id=#{code}) and book_date >= CURDATE() and book_date <= DATE_ADD(CURDATE(), INTERVAL 3 DAY)") @Select("select * from lihu.appointment where (apply_no = #{code} or episode_id= #{code} or hospital_no =#{code} or pat_identity_id=#{code}) and book_date >= DATE_ADD(CURDATE(), INTERVAL -5 DAY) AND book_date <= DATE_ADD(CURDATE(), INTERVAL 15 DAY)") List<AppointmentDO> getCurrentCode(String code); @Select("select * from lihu.appointment where pat_id = #{patId} and book_check_type = #{checkType} and to_days(book_date) = to_days(Now()) limit 1") jh-module-ecg/jh-module-ecg-biz/src/main/java/cn/lihu/jh/module/ecg/dal/mysql/room/RoomMapper.java
@@ -104,7 +104,7 @@ @Update("<script> " + "update lihu.clinic_room set status=#{newStatus.status}, doc_id=null, doc_name=null " + "where room_id=#{roomId} and bed_no=#{bedNo} and doc_id=#{docId} " + "where room_id=#{roomId} and bed_no=#{bedNo} " + "and status in ( " + " <foreach collection='curStatusList' separator=',' item='curStatus'>" + " #{curStatus.status} " + jh-module-ecg/jh-module-ecg-biz/src/main/java/cn/lihu/jh/module/ecg/service/queue/QueueServiceImpl.java
@@ -6,6 +6,7 @@ import cn.lihu.jh.module.ecg.Utils; import cn.lihu.jh.module.ecg.controller.admin.room.vo.MonitorInfoVO; import cn.lihu.jh.module.ecg.dal.dataobject.appointment.AppointmentDO; import cn.lihu.jh.module.ecg.dal.dataobject.checktype.CheckTypeDO; import cn.lihu.jh.module.ecg.dal.dataobject.devrent.DevRentDO; import cn.lihu.jh.module.ecg.dal.mysql.appointment.AppointmentMapper; @@ -318,9 +319,7 @@ @Override public PageResult<QueueDO> getqueuePage(QueuePageReqVO pageReqVO) { PageResult<QueueDO> queueDOPageResult = queueMapper.selectPage(pageReqVO); queueDOPageResult.getList().forEach(queueDO -> { queueDO.setTolerance(appointmentMapper.getByApplyNo(queueDO.getApplyNo()).getTolerance()); }); fillAppointmentInfo(queueDOPageResult.getList()); return queueDOPageResult; } @@ -424,23 +423,42 @@ public List<QueueDO> getBedQueueByStatus(Long roomId, String bedNo, List<Integer> statusList) { List<QueueDO> queueDOList = queueMapper.getBedQueueByStatus(roomId, bedNo, statusList); if (!CollectionUtils.isEmpty(queueDOList)) { queueDOList.forEach(queueDO -> { queueDO.setTolerance(appointmentMapper.getByApplyNo(queueDO.getApplyNo()).getTolerance()); }); } fillAppointmentInfo(queueDOList); return queueDOList; } /** * 从预约单补齐 queue 表上没有的患者信息。 * * queue 表不存这些字段,但医生端列表接口需要展示,所以查询后按 applyNo 回查预约单填充: * 多耐药、性别、出生日期、登记时间、开单医师、开单日期。 */ private void fillAppointmentInfo(List<QueueDO> queueDOList) { if (CollectionUtils.isEmpty(queueDOList)) { return; } queueDOList.forEach(queueDO -> { if (null == queueDO.getApplyNo() || queueDO.getApplyNo().isEmpty()) { return; } AppointmentDO appointment = appointmentMapper.getByApplyNo(queueDO.getApplyNo()); if (null == appointment) { return; } queueDO.setTolerance(appointment.getTolerance()); queueDO.setPatGender(appointment.getPatGender()); queueDO.setPatBirthday(appointment.getPatBirthday()); queueDO.setRegisterDate(appointment.getRegisterDate()); queueDO.setDoctor(appointment.getDoctor()); queueDO.setDoctorTime(appointment.getDoctorTime()); }); } @Override public List<QueueDO> getRoomQueueByStatus(Long roomId, List<Integer> statusList) { List<QueueDO> queueDOList = queueMapper.getRoomQueueByStatus(roomId, statusList); if (!CollectionUtils.isEmpty(queueDOList)) { queueDOList.forEach(queueDO -> { queueDO.setTolerance(appointmentMapper.getByApplyNo(queueDO.getApplyNo()).getTolerance()); }); } fillAppointmentInfo(queueDOList); return queueDOList; }