jh-module-ecg/jh-module-ecg-api/src/main/java/cn/lihu/jh/module/ecg/enums/DevRentStateEnum.java
@@ -16,7 +16,7 @@ @AllArgsConstructor public enum DevRentStateEnum implements IntArrayValuable { FREE(0, "待装机"), RECEIVED(5, "已领取"), READY(5, "已领取"), INSTALLED(10, "已装机"), DISMANTLED(20, "已拆机"), CANCELLED(30, "已放弃"), jh-module-ecg/jh-module-ecg-biz/src/main/java/cn/lihu/jh/module/ecg/controller/admin/devrent/DevRentController.java
@@ -2,7 +2,6 @@ import cn.lihu.jh.framework.common.util.exception.ExceptionUtils; import cn.lihu.jh.module.ecg.dal.dataobject.devmanage.DeviceDO; import cn.lihu.jh.module.ecg.enums.DevRentStateEnum; import cn.lihu.jh.module.ecg.service.devmanage.DeviceService; import lombok.extern.slf4j.Slf4j; import org.springframework.web.bind.annotation.*; @@ -167,13 +166,33 @@ BeanUtils.toBean(list, DevRentRespVO.class)); } @GetMapping("/get-ready-rent") @Operation(summary = "获取患者设备的最近租赁情况") @PreAuthorize("@ss.hasPermission('ecg:doctor:task')") public CommonResult<DevRentRespVO> getReadyRent( @Valid DevRentSearchReqVO searchReqVO ) { DevRentDO devRent = devRentService.getReadyOrCancelledRent( searchReqVO ); if (null == devRent) { return CommonResult.success(null); } DevRentRespVO devRentRespVO = BeanUtils.toBean(devRent, DevRentRespVO.class); DeviceDO deviceDO = deviceService.getDevice( devRent.getDevId() ); if (null != deviceDO) { devRentRespVO.setCategory(deviceDO.getCategory()); devRentRespVO.setBrand(deviceDO.getBrand()); devRentRespVO.setModel(deviceDO.getModel()); } return CommonResult.success(devRentRespVO); } @GetMapping("/get-dismantle-rent") @Operation(summary = "获取患者设备的最近租赁情况") @PreAuthorize("@ss.hasPermission('ecg:doctor:task')") public CommonResult<DevRentRespVO> getLatestRent( @Valid DevRentSearchReqVO searchReqVO ) { searchReqVO.setState( DevRentStateEnum.INSTALLED.getState() ); DevRentDO devRent = devRentService.getDismantleRent( searchReqVO ); DevRentDO devRent = devRentService.getInstalledOrCancelledRent( searchReqVO ); if (null == devRent) { return CommonResult.success(null); } jh-module-ecg/jh-module-ecg-biz/src/main/java/cn/lihu/jh/module/ecg/controller/admin/devrent/vo/DevRentSearchReqVO.java
@@ -9,6 +9,7 @@ import org.springframework.format.annotation.DateTimeFormat; import java.time.LocalDateTime; import java.util.List; import static cn.lihu.jh.framework.common.util.date.DateUtils.FORMAT_YEAR_MONTH_DAY_HOUR_MINUTE_SECOND; @@ -28,5 +29,5 @@ private String patName; @Schema(description = "状态") private Integer state; private List<Integer> stateList; } jh-module-ecg/jh-module-ecg-biz/src/main/java/cn/lihu/jh/module/ecg/dal/mysql/devrent/DevRentMapper.java
@@ -10,7 +10,6 @@ import cn.lihu.jh.module.ecg.controller.admin.devrent.vo.*; import org.apache.ibatis.annotations.Param; import org.apache.ibatis.annotations.Select; import org.apache.ibatis.annotations.Update; /** * 装机拆机 Mapper @@ -35,7 +34,7 @@ .orderByDesc(DevRentDO::getId)); } DevRentDO getDismantleRentByState(DevRentSearchReqVO reqVO ); DevRentDO getRentByState(DevRentSearchReqVO reqVO ); @Select("select * from lihu.dev_rent where state=#{state} and pat_id=#{patId}") List<DevRentDO> selectByPatIdAndState(@Param("patId") String patId, @Param("state") Integer state); jh-module-ecg/jh-module-ecg-biz/src/main/java/cn/lihu/jh/module/ecg/service/devrent/DevRentService.java
@@ -100,5 +100,6 @@ */ PageResult<DevRentDO> getDevRentPage(DevRentPageReqVO pageReqVO); DevRentDO getDismantleRent(DevRentSearchReqVO searchReqVO); DevRentDO getInstalledOrCancelledRent(DevRentSearchReqVO searchReqVO); DevRentDO getReadyOrCancelledRent(DevRentSearchReqVO searchReqVO); } jh-module-ecg/jh-module-ecg-biz/src/main/java/cn/lihu/jh/module/ecg/service/devrent/DevRentServiceImpl.java
@@ -15,6 +15,7 @@ import java.time.LocalDate; import java.time.LocalDateTime; import java.util.ArrayList; import java.util.List; import cn.lihu.jh.module.ecg.controller.admin.devrent.vo.*; @@ -75,7 +76,7 @@ rent_id = devRentDOList.getFirst().getId(); createReqVO.setId( rent_id ); createReqVO.setState( DevRentStateEnum.RECEIVED.getState() ); createReqVO.setState( DevRentStateEnum.READY.getState() ); updateDevRent( createReqVO ); JobRecordSaveReqVO jobRecordSaveReqVO = new JobRecordSaveReqVO(); @@ -86,7 +87,7 @@ jobRecordSaveReqVO.setPatId(createReqVO.getPatId()); jobRecordSaveReqVO.setPatName(createReqVO.getPatName()); jobRecordSaveReqVO.setJobTime(createReqVO.getRentTime()); jobRecordSaveReqVO.setJobType( DevRentStateEnum.RECEIVED.getState() ); jobRecordSaveReqVO.setJobType( DevRentStateEnum.READY.getState() ); jobRecordSaveReqVO.setRemark(createReqVO.getRemark()); jobRecordSaveReqVO.setSummary(""); @@ -94,14 +95,14 @@ jobRecordMapper.insert(jobRecord); } else { // 撤销 放弃操作 createReqVO.setState( DevRentStateEnum.RECEIVED.getState() ); createReqVO.setState( DevRentStateEnum.READY.getState() ); updateDevRent( createReqVO ); JobRecordDO jobRecordDO = jobRecordMapper.selectByRentIdDocId(rent_id, userId); if (null != jobRecordDO) { jobRecordDO.setDevId(createReqVO.getDevId()); jobRecordDO.setJobType( DevRentStateEnum.RECEIVED.getState() ); jobRecordDO.setJobType( DevRentStateEnum.READY.getState() ); jobRecordDO.setJobTime(createReqVO.getRentTime()); jobRecordDO.setRemark(createReqVO.getRemark()); jobRecordDO.setUpdater(String.valueOf(userId)); @@ -126,7 +127,7 @@ Long rent_id = createReqVO.getId(); if (null == rent_id) { List<DevRentDO> devRentDOList = devRentMapper.selectByPatIdAndState(createReqVO.getPatId(), DevRentStateEnum.RECEIVED.getState()); List<DevRentDO> devRentDOList = devRentMapper.selectByPatIdAndState(createReqVO.getPatId(), DevRentStateEnum.READY.getState()); if (devRentDOList.size() == 0) return CommonResult.error(DEV_INSTALL_NOT_RECEIVED); else if (devRentDOList.size() != 1) { @@ -354,8 +355,21 @@ } @Override public DevRentDO getDismantleRent(DevRentSearchReqVO searchReqVO) { return devRentMapper.getDismantleRentByState(searchReqVO); public DevRentDO getInstalledOrCancelledRent(DevRentSearchReqVO searchReqVO) { List<Integer> stateList = new ArrayList<>(); stateList.add( DevRentStateEnum.INSTALLED.getState() ); stateList.add( DevRentStateEnum.CANCELLED.getState() ); searchReqVO.setStateList( stateList ); return devRentMapper.getRentByState(searchReqVO); } @Override public DevRentDO getReadyOrCancelledRent(DevRentSearchReqVO searchReqVO) { List<Integer> stateList = new ArrayList<>(); stateList.add( DevRentStateEnum.READY.getState() ); stateList.add( DevRentStateEnum.CANCELLED.getState() ); searchReqVO.setStateList( stateList ); return devRentMapper.getRentByState(searchReqVO); } private Integer markDevRecieved(String devId) { jh-module-ecg/jh-module-ecg-biz/src/main/resources/mapper/devrent/DevRentMapper.xml
@@ -9,11 +9,14 @@ 文档可见:https://www.iocoder.cn/MyBatis/x-plugins/ --> <select id="getDismantleRentByState" resultType="cn.lihu.jh.module.ecg.dal.dataobject.devrent.DevRentDO"> <select id="getRentByState" resultType="cn.lihu.jh.module.ecg.dal.dataobject.devrent.DevRentDO"> select * from lihu.dev_rent <where> <if test="state != null"> and state = #{state} <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}