jh-module-ecg/jh-module-ecg-api/src/main/java/cn/lihu/jh/module/ecg/enums/DevRentStateEnum.java
@@ -8,7 +8,7 @@ import java.util.Arrays; /** * 通用状态枚举 * 检查状态枚举 * * @author 芋道源码 */ @@ -23,6 +23,7 @@ READY_CANCELLED(30, "领用放弃"), INSTALL_CANCELLED(35, "安装放弃"), LOST(40, "已遗失"), DAMAGED(42, "已损毁"), ROUTINE_CANCELLED(50, "常规检查放弃"), ROUTINE_FINISH( 60, "常规检查完成"); jh-module-ecg/jh-module-ecg-biz/src/main/java/cn/lihu/jh/module/ecg/controller/admin/appointment/AppointmentController.java
@@ -1,20 +1,9 @@ package cn.lihu.jh.module.ecg.controller.admin.appointment; import cn.hutool.core.bean.BeanUtil; import cn.lihu.jh.framework.common.exception.ErrorCode; import cn.lihu.jh.framework.common.util.date.DateUtils; import cn.lihu.jh.module.ecg.controller.admin.devrent.vo.DevRentSaveReqVO; import cn.lihu.jh.module.ecg.controller.admin.queue.vo.QueueSaveReqVO; import cn.lihu.jh.module.ecg.enums.QueueStatusEnum; import cn.lihu.jh.module.ecg.feign.RemoteDataService; import cn.lihu.jh.module.ecg.feign.RestApiReqBodyVo; import cn.lihu.jh.module.ecg.feign.RestApiResult; import cn.lihu.jh.module.ecg.feign.dto.AppointmentExternal; import cn.lihu.jh.module.ecg.service.devrent.DevRentService; import cn.lihu.jh.module.ecg.service.queue.QueueService; import cn.lihu.jh.module.ecg.service.room.RoomService; import cn.lihu.jh.module.system.api.dept.DeptApi; import org.springframework.dao.DuplicateKeyException; import org.springframework.web.bind.annotation.*; import org.springframework.validation.annotation.Validated; import org.springframework.security.access.prepost.PreAuthorize; @@ -22,12 +11,8 @@ import io.swagger.v3.oas.annotations.Parameter; import io.swagger.v3.oas.annotations.Operation; import java.time.LocalDateTime; import java.time.format.DateTimeFormatter; import java.time.format.DateTimeFormatterBuilder; import java.util.*; import java.io.IOException; import java.util.stream.Collectors; import cn.lihu.jh.framework.common.pojo.PageParam; import cn.lihu.jh.framework.common.pojo.PageResult; @@ -42,8 +27,6 @@ import cn.lihu.jh.framework.apilog.core.annotation.ApiAccessLog; import static cn.lihu.jh.framework.apilog.core.enums.OperateTypeEnum.*; import static cn.lihu.jh.module.ecg.enums.ErrorCodeConstants.*; import static java.time.format.DateTimeFormatter.ISO_LOCAL_DATE; import static java.time.format.DateTimeFormatter.ISO_LOCAL_TIME; import cn.lihu.jh.module.ecg.controller.admin.appointment.vo.*; import cn.lihu.jh.module.ecg.dal.dataobject.appointment.AppointmentDO; @@ -107,12 +90,21 @@ return success(BeanUtils.toBean(appointment, AppointmentRespVO.class)); } @GetMapping("/get-by-patient") @Operation(summary = "根据患者编号.获得预约") @GetMapping("/get-current-by-patient") @Operation(summary = "根据患者编号.查询当天预约") @Parameter(name = "id", description = "编号", required = true, example = "1024") @PreAuthorize("@ss.hasPermission('ecg:appointment:query')") public CommonResult<AppointmentRespVO> getAppointmentByPatient(@RequestParam("patId") String patId) { AppointmentDO appointment = appointmentService.getAppointmentByPatId( patId ); public CommonResult<AppointmentRespVO> getCurAppointmentByPatId(@RequestParam("patId") String patId) { AppointmentDO appointment = appointmentService.getCurAppointmentByPatId( patId ); return success(BeanUtils.toBean(appointment, AppointmentRespVO.class)); } @GetMapping("/query-and-create-by-patient") @Operation(summary = "根据患者编号.获得预约.并内部创建预约") @Parameter(name = "id", description = "编号", required = true, example = "1024") @PreAuthorize("@ss.hasPermission('ecg:appointment:query')") public CommonResult<AppointmentRespVO> queryAndCreateAppointmentByPatId(@RequestParam("patId") String patId) { AppointmentDO appointment = appointmentService.queryAndCreateAppointmentByPatId( patId ); return success(BeanUtils.toBean(appointment, AppointmentRespVO.class)); } jh-module-ecg/jh-module-ecg-biz/src/main/java/cn/lihu/jh/module/ecg/dal/mysql/devrent/DevRentMapper.java
@@ -36,6 +36,25 @@ .orderByDesc(DevRentDO::getId)); } @Select("<script> " + "SELECT * FROM lihu.dev_rent " + "<where> " + " <if test='stateList != null'> " + " and state in ( " + " <foreach collection='stateList' separator=',' item='state'> " + " #{state} " + " </foreach> ) " + " </if> " + " <if test=\"devId != null and devId != ''\"> " + " and dev_id = #{devId} " + " </if> " + " <if test=\"patId != null and patId != ''\"> " + " and pat_id = #{patId} " + " </if> " + "</where> " + "order by create_time desc " + "limit 1 " + "</script>") DevRentDO getRentByState(DevRentSearchReqVO reqVO ); @Select("select * from lihu.dev_rent where state=#{state} and pat_id=#{patId} and to_days(create_time)=to_days(now())") jh-module-ecg/jh-module-ecg-biz/src/main/java/cn/lihu/jh/module/ecg/service/appointment/AppointmentService.java
@@ -3,8 +3,6 @@ import cn.lihu.jh.module.ecg.controller.admin.appointment.vo.*; import cn.lihu.jh.module.ecg.dal.dataobject.appointment.AppointmentDO; import cn.lihu.jh.framework.common.pojo.PageResult; import cn.lihu.jh.framework.common.pojo.PageParam; import cn.lihu.jh.module.ecg.feign.dto.AppointmentExternal; import javax.validation.Valid; @@ -46,12 +44,20 @@ AppointmentDO getAppointment(Long id); /** * 获得预约 * 获得当天的预约 根据PatID * * @param id 编号 * @param patId 编号 * @return 预约 */ AppointmentDO getAppointmentByPatId(String patId); AppointmentDO getCurAppointmentByPatId(String patId); /** * 获得预约 * * @param patId 编号 * @return 预约 */ AppointmentDO queryAndCreateAppointmentByPatId(String patId); /** * 获得预约分页 jh-module-ecg/jh-module-ecg-biz/src/main/java/cn/lihu/jh/module/ecg/service/appointment/AppointmentServiceImpl.java
@@ -95,7 +95,13 @@ } @Override public AppointmentDO getAppointmentByPatId(String patId) { public AppointmentDO getCurAppointmentByPatId(String patId) { AppointmentDO appointmentDO = appointmentMapper.getCurrentPatId( patId ); return appointmentDO; } @Override public AppointmentDO queryAndCreateAppointmentByPatId(String patId) { // 先从医院平台查询 AppointmentDO appointmentExtermal = getAppointmentExtermal( patId ); if (null != appointmentExtermal && null != appointmentExtermal.getBookDate() && appointmentExtermal.getBookDate().isEqual(LocalDate.now()) ) { jh-module-ecg/jh-module-ecg-biz/src/main/java/cn/lihu/jh/module/ecg/service/devrent/DevRentServiceImpl.java
@@ -521,23 +521,29 @@ @Transactional(rollbackFor = Exception.class) public CommonResult<Long> dismantleExceptionOperation(DevRentSaveReqVO updateReqVO) { DevStateEnum devStateEnum = null; if (updateReqVO.getState() == DevStateEnum.DAMAGED.getState()) DevRentStateEnum devRentStateEnum = null; if (updateReqVO.getState() == DevStateEnum.DAMAGED.getState()) { devStateEnum = DevStateEnum.DAMAGED; else if (updateReqVO.getState() == DevStateEnum.LOST.getState()) devRentStateEnum = DevRentStateEnum.DAMAGED; } else if (updateReqVO.getState() == DevStateEnum.LOST.getState()) { devStateEnum = DevStateEnum.LOST; devRentStateEnum = DevRentStateEnum.LOST; } else throw exception(DEV_DISMANTLE_EXCEPTION); // 设备遗失时, 标注遗失 markDevDismantleException( updateReqVO.getDevId(), updateReqVO.getId(), updateReqVO.getReturnTime().toLocalDate(), devStateEnum ); updateReqVO.setState( DevRentStateEnum.LOST.getState() ); updateReqVO.setState( devRentStateEnum.getState() ); updateDevRent( updateReqVO ); Long userId = SecurityFrameworkUtils.getLoginUserId(); String userNickname = SecurityFrameworkUtils.getLoginUserNickname(); List<Integer> jobTypeList = new ArrayList<Integer>(); jobTypeList.add( DevRentStateEnum.DAMAGED.getState()); jobTypeList.add( DevRentStateEnum.LOST.getState()); JobRecordDO jobRecordDO = jobRecordMapper.selectByRentIdDocId(updateReqVO.getId(), userId, jobTypeList); if (null == jobRecordDO) { @@ -549,13 +555,13 @@ jobRecordSaveReqVO.setPatId( updateReqVO.getPatId() ); jobRecordSaveReqVO.setPatName( updateReqVO.getPatName() ); jobRecordSaveReqVO.setJobTime( updateReqVO.getReturnTime() ); jobRecordSaveReqVO.setJobType( DevRentStateEnum.LOST.getState() ); jobRecordSaveReqVO.setJobType( devRentStateEnum.getState() ); jobRecordSaveReqVO.setRemark( updateReqVO.getRemark() ); jobRecordSaveReqVO.setSummary( updateReqVO.getInterference() + " " + updateReqVO.getBaseline() + " " + updateReqVO.getDetachment() ); JobRecordDO jobRecord = BeanUtils.toBean(jobRecordSaveReqVO, JobRecordDO.class); jobRecordMapper.insert(jobRecord); } else { jobRecordDO.setJobType( DevRentStateEnum.LOST.getState() ); jobRecordDO.setJobType( devRentStateEnum.getState() ); jobRecordDO.setJobTime( updateReqVO.getReturnTime() ); jobRecordDO.setRemark( updateReqVO.getRemark() ); jobRecordDO.setSummary( updateReqVO.getInterference() + " " + updateReqVO.getBaseline() + " " + updateReqVO.getDetachment() ); jh-module-ecg/jh-module-ecg-biz/src/main/resources/mapper/devrent/DevRentMapper.xml
@@ -9,24 +9,4 @@ 文档可见:https://www.iocoder.cn/MyBatis/x-plugins/ --> <select id="getRentByState" resultType="cn.lihu.jh.module.ecg.dal.dataobject.devrent.DevRentDO"> select * from lihu.dev_rent <where> <if test="stateList != null"> and state in ( <foreach collection='stateList' separator=',' item='state'> #{state} </foreach> ) </if> <if test="devId != null and devId != ''"> and dev_id = #{devId} </if> <if test="patId != null and patId != ''"> and pat_id = #{patId} </if> and TO_DAYS(create_time) = TO_DAYS(NOW()) </where> limit 1 </select> </mapper>