eight
2024-09-24 91c60b946e0d2e8abc2c350598aa6d47ed28e83c
装机&放弃 逻辑新增state
已修改18个文件
210 ■■■■ 文件已修改
jh-module-ecg/jh-module-ecg-biz/src/main/java/cn/lihu/jh/module/ecg/controller/admin/appointment/AppointmentController.java 5 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
jh-module-ecg/jh-module-ecg-biz/src/main/java/cn/lihu/jh/module/ecg/controller/admin/devrent/DevRentController.java 6 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
jh-module-ecg/jh-module-ecg-biz/src/main/java/cn/lihu/jh/module/ecg/controller/admin/devrent/vo/DevCancelReqVO.java 4 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
jh-module-ecg/jh-module-ecg-biz/src/main/java/cn/lihu/jh/module/ecg/controller/admin/devrent/vo/DevRentPageReqVO.java 7 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
jh-module-ecg/jh-module-ecg-biz/src/main/java/cn/lihu/jh/module/ecg/controller/admin/devrent/vo/DevRentRespVO.java 10 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
jh-module-ecg/jh-module-ecg-biz/src/main/java/cn/lihu/jh/module/ecg/controller/admin/devrent/vo/DevRentSaveReqVO.java 9 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
jh-module-ecg/jh-module-ecg-biz/src/main/java/cn/lihu/jh/module/ecg/controller/admin/devrent/vo/DevRentSearchReqVO.java 7 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
jh-module-ecg/jh-module-ecg-biz/src/main/java/cn/lihu/jh/module/ecg/controller/admin/jobrecord/vo/JobRecordPageReqVO.java 5 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
jh-module-ecg/jh-module-ecg-biz/src/main/java/cn/lihu/jh/module/ecg/controller/admin/jobrecord/vo/JobRecordRespVO.java 8 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
jh-module-ecg/jh-module-ecg-biz/src/main/java/cn/lihu/jh/module/ecg/controller/admin/jobrecord/vo/JobRecordSaveReqVO.java 5 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
jh-module-ecg/jh-module-ecg-biz/src/main/java/cn/lihu/jh/module/ecg/dal/dataobject/devrent/DevRentDO.java 13 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
jh-module-ecg/jh-module-ecg-biz/src/main/java/cn/lihu/jh/module/ecg/dal/dataobject/jobrecord/JobRecordDO.java 11 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
jh-module-ecg/jh-module-ecg-biz/src/main/java/cn/lihu/jh/module/ecg/dal/mysql/devrent/DevRentMapper.java 5 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
jh-module-ecg/jh-module-ecg-biz/src/main/java/cn/lihu/jh/module/ecg/dal/mysql/jobrecord/JobRecordMapper.java 8 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
jh-module-ecg/jh-module-ecg-biz/src/main/java/cn/lihu/jh/module/ecg/service/devrent/DevRentService.java 10 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
jh-module-ecg/jh-module-ecg-biz/src/main/java/cn/lihu/jh/module/ecg/service/devrent/DevRentServiceImpl.java 78 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
jh-module-ecg/jh-module-ecg-biz/src/main/java/cn/lihu/jh/module/ecg/service/queue/QueueServiceImpl.java 12 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
jh-module-ecg/jh-module-ecg-biz/src/main/resources/mapper/devrent/DevRentMapper.xml 7 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
jh-module-ecg/jh-module-ecg-biz/src/main/java/cn/lihu/jh/module/ecg/controller/admin/appointment/AppointmentController.java
@@ -3,11 +3,13 @@
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.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;
@@ -69,6 +71,9 @@
    private RemoteDataService remoteDataService;
    @Resource
    private DevRentService devRentService;
    @Resource
    private DeptApi deptApi;
    @PostMapping("/create")
jh-module-ecg/jh-module-ecg-biz/src/main/java/cn/lihu/jh/module/ecg/controller/admin/devrent/DevRentController.java
@@ -2,6 +2,7 @@
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.*;
@@ -153,12 +154,13 @@
                        BeanUtils.toBean(list, DevRentRespVO.class));
    }
    @GetMapping("/get-latest-rent")
    @GetMapping("/get-dismantle-rent")
    @Operation(summary = "获取患者设备的最近租赁情况")
    @PreAuthorize("@ss.hasPermission('ecg:doctor:task')")
    public CommonResult<DevRentRespVO> getLatestRent( @Valid DevRentSearchReqVO searchReqVO )
    {
        DevRentDO devRent = devRentService.getLatestRent( searchReqVO );
        searchReqVO.setState( DevRentStateEnum.INSTALLED.getState() );
        DevRentDO devRent = devRentService.getDismantleRent( 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/DevCancelReqVO.java
@@ -41,8 +41,4 @@
    @Schema(description = "备注", example = "你猜")
    private String remark;
    @Schema(description = "取消安装")
    private Integer cancelled;
}
jh-module-ecg/jh-module-ecg-biz/src/main/java/cn/lihu/jh/module/ecg/controller/admin/devrent/vo/DevRentPageReqVO.java
@@ -45,11 +45,8 @@
    @Schema(description = "备注", example = "你猜")
    private String remark;
    @Schema(description = "取消安装")
    private Integer cancelled;
    @Schema(description = "遗失")
    private Integer lost;
    @Schema(description = "状态")
    private Integer state;
    @Schema(description = "创建时间")
    @DateTimeFormat(pattern = FORMAT_YEAR_MONTH_DAY_HOUR_MINUTE_SECOND)
jh-module-ecg/jh-module-ecg-biz/src/main/java/cn/lihu/jh/module/ecg/controller/admin/devrent/vo/DevRentRespVO.java
@@ -52,13 +52,9 @@
    @ExcelProperty("备注")
    private String remark;
    @Schema(description = "取消安装")
    @ExcelProperty("取消安装")
    private Integer cancelled;
    @Schema(description = "遗失")
    @ExcelProperty("是否遗失")
    private Integer lost;
    @Schema(description = "状态")
    @ExcelProperty("状态")
    private Integer state;
    @Schema(description = "创建时间", requiredMode = Schema.RequiredMode.REQUIRED)
    @ExcelProperty("创建时间")
jh-module-ecg/jh-module-ecg-biz/src/main/java/cn/lihu/jh/module/ecg/controller/admin/devrent/vo/DevRentSaveReqVO.java
@@ -44,9 +44,6 @@
    @Schema(description = "备注", example = "你猜")
    private String remark;
    @Schema(description = "取消安装")
    private Integer cancelled;
    @Schema(description = "遗失")
    private Integer lost;
}
    @Schema(description = "状态")
    private Integer state;
}
jh-module-ecg/jh-module-ecg-biz/src/main/java/cn/lihu/jh/module/ecg/controller/admin/devrent/vo/DevRentSearchReqVO.java
@@ -27,9 +27,6 @@
    @Schema(description = "患者名称", example = "芋艿")
    private String patName;
    @Schema(description = "取消安装")
    private Integer cancelled;
    @Schema(description = "遗失")
    private Integer lost;
    @Schema(description = "状态")
    private Integer state;
}
jh-module-ecg/jh-module-ecg-biz/src/main/java/cn/lihu/jh/module/ecg/controller/admin/jobrecord/vo/JobRecordPageReqVO.java
@@ -17,7 +17,7 @@
public class JobRecordPageReqVO extends PageParam {
    @Schema(description = "作业类型", example = "1")
    private Integer jobType;
    private Integer[] jobType;
    @Schema(description = "医生编号", example = "24197")
    private Long docId;
@@ -43,9 +43,6 @@
    @Schema(description = "备注", example = "你猜")
    private String remark;
    @Schema(description = "取消安装")
    private Integer cancelled;
    @Schema(description = "创建时间")
    @DateTimeFormat(pattern = FORMAT_YEAR_MONTH_DAY_HOUR_MINUTE_SECOND)
jh-module-ecg/jh-module-ecg-biz/src/main/java/cn/lihu/jh/module/ecg/controller/admin/jobrecord/vo/JobRecordRespVO.java
@@ -52,14 +52,6 @@
    @ExcelProperty("备注")
    private String remark;
    @Schema(description = "取消安装")
    @ExcelProperty("取消安装")
    private Integer cancelled;
    @Schema(description = "遗失")
    @ExcelProperty("是否遗失")
    private Integer lost;
    @Schema(description = "创建时间", requiredMode = Schema.RequiredMode.REQUIRED)
    @ExcelProperty("创建时间")
    private LocalDateTime createTime;
jh-module-ecg/jh-module-ecg-biz/src/main/java/cn/lihu/jh/module/ecg/controller/admin/jobrecord/vo/JobRecordSaveReqVO.java
@@ -46,9 +46,4 @@
    @NotNull(message = "对应租赁编号不能为空")
    private Long rentId;
    @Schema(description = "取消安装")
    private Integer cancelled;
    @Schema(description = "遗失")
    private Integer lost;
}
jh-module-ecg/jh-module-ecg-biz/src/main/java/cn/lihu/jh/module/ecg/dal/dataobject/devrent/DevRentDO.java
@@ -1,5 +1,6 @@
package cn.lihu.jh.module.ecg.dal.dataobject.devrent;
import cn.lihu.jh.module.ecg.enums.DevRentStateEnum;
import lombok.*;
import java.util.*;
import java.time.LocalDateTime;
@@ -32,6 +33,7 @@
    /**
     * 设备编号
     */
    @TableField(updateStrategy = FieldStrategy.IGNORED)
    private String devId;
    /**
     * 患者编号
@@ -67,12 +69,7 @@
    private String remark;
    /**
     * 放弃安装
     * @see DevRentStateEnum
     */
    private Integer cancelled;
    /**
     * 遗失
     */
    private Integer lost;
}
    private Integer state;
}
jh-module-ecg/jh-module-ecg-biz/src/main/java/cn/lihu/jh/module/ecg/dal/dataobject/jobrecord/JobRecordDO.java
@@ -43,6 +43,7 @@
    /**
     * 设备编号
     */
    @TableField(updateStrategy = FieldStrategy.IGNORED)
    private String devId;
    /**
     * 患者编号
@@ -64,16 +65,6 @@
     * 备注
     */
    private String remark;
    /**
     * 放弃安装
     */
    private Integer cancelled;
    /**
     * 遗失
     */
    private Integer lost;
    /**
     * 对应租赁编号
jh-module-ecg/jh-module-ecg-biz/src/main/java/cn/lihu/jh/module/ecg/dal/mysql/devrent/DevRentMapper.java
@@ -10,6 +10,7 @@
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
@@ -34,6 +35,8 @@
                .orderByDesc(DevRentDO::getId));
    }
    DevRentDO getLatestRent(DevRentSearchReqVO reqVO );
    DevRentDO getDismantleRentByState(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/dal/mysql/jobrecord/JobRecordMapper.java
@@ -12,7 +12,6 @@
import cn.lihu.jh.module.ecg.controller.admin.jobrecord.vo.*;
import org.apache.ibatis.annotations.Param;
import org.apache.ibatis.annotations.Select;
import org.apache.ibatis.annotations.Update;
/**
 * 工作记录 Mapper
@@ -24,7 +23,8 @@
    default PageResult<JobRecordDO> selectPage(JobRecordPageReqVO reqVO) {
        return selectPage(reqVO, new LambdaQueryWrapperX<JobRecordDO>()
                .eqIfPresent(JobRecordDO::getJobType, reqVO.getJobType())
                //.eqIfPresent(JobRecordDO::getJobType, reqVO.getJobType())
                .inIfPresent(JobRecordDO::getJobType, reqVO.getJobType())
                .eqIfPresent(JobRecordDO::getDocId, reqVO.getDocId())
                .likeIfPresent(JobRecordDO::getDocName, reqVO.getDocName())
                .eqIfPresent(JobRecordDO::getDevId, reqVO.getDevId())
@@ -38,8 +38,8 @@
                .orderByDesc(JobRecordDO::getId));
    }
    @Select("SELECT * FROM lihu.job_record where rent_id=#{rentId} and job_type=#{jobType} and doc_id=#{docId} limit 1")
    JobRecordDO selectByRentIdJobTypeDocId(@Param("rentId") Long rentId, @Param("jobType") Integer jobType, @Param("docId") Long docId );
    @Select("SELECT * FROM lihu.job_record where rent_id=#{rentId} and doc_id=#{docId} limit 1")
    JobRecordDO selectByRentIdDocId(@Param("rentId") Long rentId, @Param("docId") Long docId );
    @Select("SELECT count(1) FROM lihu.job_record where pat_id=#{patId} and TO_DAYS(job_time)=TO_DAYS(#{jobTime}) and job_type=#{jobType} ")
    Integer getPatientJobNum(@Param("patId") String patId, @Param("jobTime") LocalDateTime jobTime, @Param("jobType") Integer jobType );
jh-module-ecg/jh-module-ecg-biz/src/main/java/cn/lihu/jh/module/ecg/service/devrent/DevRentService.java
@@ -15,6 +15,14 @@
public interface DevRentService {
    /**
     * 装机登记
     *
     * @param createReqVO 创建信息
     * @return 编号
     */
    CommonResult<Long> registerOperation(@Valid DevRentSaveReqVO createReqVO);
    /**
     * 装机
     *
     * @param createReqVO 创建信息
@@ -84,5 +92,5 @@
     */
    PageResult<DevRentDO> getDevRentPage(DevRentPageReqVO pageReqVO);
    DevRentDO getLatestRent(DevRentSearchReqVO searchReqVO);
    DevRentDO getDismantleRent(DevRentSearchReqVO searchReqVO);
}
jh-module-ecg/jh-module-ecg-biz/src/main/java/cn/lihu/jh/module/ecg/service/devrent/DevRentServiceImpl.java
@@ -7,11 +7,13 @@
import cn.lihu.jh.module.ecg.dal.dataobject.jobrecord.JobRecordDO;
import cn.lihu.jh.module.ecg.dal.mysql.devmanage.DeviceMapper;
import cn.lihu.jh.module.ecg.dal.mysql.jobrecord.JobRecordMapper;
import cn.lihu.jh.module.ecg.enums.DevRentStateEnum;
import org.springframework.stereotype.Service;
import org.springframework.validation.annotation.Validated;
import org.springframework.transaction.annotation.Transactional;
import java.time.LocalDateTime;
import java.util.List;
import cn.lihu.jh.module.ecg.controller.admin.devrent.vo.*;
import cn.lihu.jh.module.ecg.dal.dataobject.devrent.DevRentDO;
@@ -44,6 +46,12 @@
    DeviceMapper deviceMapper;
    @Override
    public CommonResult<Long> registerOperation(DevRentSaveReqVO createReqVO) {
        Long rent_id = createDevRent(createReqVO);
        return CommonResult.success(rent_id);
    }
    @Override
    @Transactional
    public CommonResult<Long> installOperation(DevRentSaveReqVO createReqVO) {
        Long userId = SecurityFrameworkUtils.getLoginUserId();
@@ -57,14 +65,14 @@
        Long rent_id = createReqVO.getId();
        if (null == rent_id) {
            // 判断是否已经有装机记录
            Integer recordNum = jobRecordMapper.getPatientJobNum(createReqVO.getPatId(), createReqVO.getRentTime(), 0);
            if (null != recordNum && recordNum > 0) {
            List<DevRentDO>  devRentDOList = devRentMapper.selectByPatIdAndState(createReqVO.getPatId(), DevRentStateEnum.FREE.getState());
            if (devRentDOList.size() != 1)
                return CommonResult.error(DEV_INSTALL_EXIST);
            }
            rent_id = createDevRent(createReqVO);
            rent_id = devRentDOList.getFirst().getId();
            createReqVO.setId( rent_id );
            createReqVO.setState( DevRentStateEnum.INSTALLED.getState() );
            updateDevRent( createReqVO );
            JobRecordSaveReqVO jobRecordSaveReqVO = new JobRecordSaveReqVO();
            jobRecordSaveReqVO.setRentId(rent_id);
@@ -74,7 +82,7 @@
            jobRecordSaveReqVO.setPatId(createReqVO.getPatId());
            jobRecordSaveReqVO.setPatName(createReqVO.getPatName());
            jobRecordSaveReqVO.setJobTime(createReqVO.getRentTime());
            jobRecordSaveReqVO.setJobType(0);
            jobRecordSaveReqVO.setJobType( DevRentStateEnum.INSTALLED.getState() );
            jobRecordSaveReqVO.setRemark(createReqVO.getRemark());
            jobRecordSaveReqVO.setSummary("");
@@ -82,14 +90,14 @@
            jobRecordMapper.insert(jobRecord);
        } else {
            // 撤销 放弃操作
            createReqVO.setCancelled(0);
            createReqVO.setState( DevRentStateEnum.INSTALLED.getState() );
            updateDevRent( createReqVO );
            JobRecordDO jobRecordDO = jobRecordMapper.selectByRentIdJobTypeDocId(rent_id, 0, userId);
            JobRecordDO jobRecordDO = jobRecordMapper.selectByRentIdDocId(rent_id, userId);
            if (null != jobRecordDO) {
                jobRecordDO.setCancelled( createReqVO.getCancelled() );
                jobRecordDO.setDevId(createReqVO.getDevId());
                jobRecordDO.setJobType( DevRentStateEnum.INSTALLED.getState() );
                jobRecordDO.setJobTime(createReqVO.getRentTime());
                jobRecordDO.setRemark(createReqVO.getRemark());
                jobRecordDO.setUpdater(String.valueOf(userId));
@@ -103,15 +111,13 @@
    @Override
    @Transactional
    public Long dismantleOperation(DevRentSaveReqVO updateReqVO) {
        // 取消遗失标记
        updateReqVO.setLost(0);
        updateReqVO.setState( DevRentStateEnum.DISMANTLED.getState() );
        updateDevRent( updateReqVO );
        Long userId = SecurityFrameworkUtils.getLoginUserId();
        String userNickname = SecurityFrameworkUtils.getLoginUserNickname();
        JobRecordDO jobRecordDO = jobRecordMapper.selectByRentIdJobTypeDocId(updateReqVO.getId(), 1, userId);
        JobRecordDO jobRecordDO = jobRecordMapper.selectByRentIdDocId(updateReqVO.getId(), userId);
        if (jobRecordDO == null) {
            JobRecordSaveReqVO jobRecordSaveReqVO = new JobRecordSaveReqVO();
            jobRecordSaveReqVO.setRentId( updateReqVO.getId() );
@@ -121,7 +127,7 @@
            jobRecordSaveReqVO.setPatId( updateReqVO.getPatId() );
            jobRecordSaveReqVO.setPatName( updateReqVO.getPatName() );
            jobRecordSaveReqVO.setJobTime( updateReqVO.getReturnTime() );
            jobRecordSaveReqVO.setJobType( 1 );
            jobRecordSaveReqVO.setJobType( DevRentStateEnum.DISMANTLED.getState() );
            jobRecordSaveReqVO.setRemark( updateReqVO.getRemark() );
            jobRecordSaveReqVO.setSummary( updateReqVO.getInterference() + " " + updateReqVO.getBaseline() + " " + updateReqVO.getDetachment() );
            JobRecordDO jobRecord = BeanUtils.toBean(jobRecordSaveReqVO, JobRecordDO.class);
@@ -130,9 +136,7 @@
            // 设备遗失时, 需恢复到正常
            resumeDevLost( updateReqVO );
            // 取消遗失标记
            jobRecordDO.setLost(0);
            jobRecordDO.setJobType( DevRentStateEnum.DISMANTLED.getState() );
            jobRecordDO.setJobTime( updateReqVO.getReturnTime() );
            jobRecordDO.setRemark( updateReqVO.getRemark() );
            jobRecordDO.setSummary( updateReqVO.getInterference() + " " + updateReqVO.getBaseline() + " " + updateReqVO.getDetachment() );
@@ -150,29 +154,30 @@
        Long userId = SecurityFrameworkUtils.getLoginUserId();
        String userNickname = SecurityFrameworkUtils.getLoginUserNickname();
        createReqVO.setCancelled(1);
        createReqVO.setDevId(null);
        createReqVO.setState( DevRentStateEnum.CANCELLED.getState() );
        Long rent_id = createReqVO.getId();
        if (null == rent_id) {
            // 判断是否已经有拆机记录
            Integer recordNum = jobRecordMapper.getPatientJobNum(createReqVO.getPatId(), createReqVO.getRentTime(), 0);
            if (null != recordNum && recordNum > 0) {
            List<DevRentDO>  devRentDOList = devRentMapper.selectByPatIdAndState(createReqVO.getPatId(), DevRentStateEnum.FREE.getState());
            if (devRentDOList.size() != 1)
                return CommonResult.error(DEV_INSTALL_EXIST);
            }
            rent_id = createDevRent(createReqVO);
            rent_id = devRentDOList.getFirst().getId();
            createReqVO.setId( rent_id );
            createReqVO.setState( DevRentStateEnum.CANCELLED.getState() );
            updateDevRent( createReqVO );
            JobRecordSaveReqVO jobRecordSaveReqVO = new JobRecordSaveReqVO();
            jobRecordSaveReqVO.setRentId(rent_id);
            //jobRecordSaveReqVO.setDevId(createReqVO.getDevId());
            jobRecordSaveReqVO.setDevId(null);
            jobRecordSaveReqVO.setDocId(userId);
            jobRecordSaveReqVO.setDocName(userNickname);
            jobRecordSaveReqVO.setPatId(createReqVO.getPatId());
            jobRecordSaveReqVO.setPatName(createReqVO.getPatName());
            jobRecordSaveReqVO.setJobType( DevRentStateEnum.CANCELLED.getState() );
            jobRecordSaveReqVO.setJobTime(createReqVO.getRentTime());
            jobRecordSaveReqVO.setJobType(0);
            jobRecordSaveReqVO.setCancelled(1);
            jobRecordSaveReqVO.setRemark(createReqVO.getRemark());
            jobRecordSaveReqVO.setSummary("");
@@ -181,11 +186,11 @@
        } else {
            updateDevRent( createReqVO );
            JobRecordDO jobRecordDO = jobRecordMapper.selectByRentIdJobTypeDocId(rent_id, 0, userId);
            JobRecordDO jobRecordDO = jobRecordMapper.selectByRentIdDocId(rent_id, userId);
            if (null != jobRecordDO) {
                //jobRecordDO.setDevId(createReqVO.getDevId());
                jobRecordDO.setDevId(null);
                jobRecordDO.setJobType( DevRentStateEnum.CANCELLED.getState() );
                jobRecordDO.setJobTime(createReqVO.getRentTime());
                jobRecordDO.setCancelled(1);
                jobRecordDO.setRemark(createReqVO.getRemark());
                jobRecordDO.setUpdater(String.valueOf(userId));
                jobRecordDO.setUpdateTime(LocalDateTime.now());
@@ -198,13 +203,13 @@
    @Override
    @Transactional
    public CommonResult<Long> loseOperation(DevRentSaveReqVO updateReqVO) {
        updateReqVO.setLost(1);
        updateReqVO.setState( DevRentStateEnum.LOST.getState() );
        updateDevRent( updateReqVO );
        Long userId = SecurityFrameworkUtils.getLoginUserId();
        String userNickname = SecurityFrameworkUtils.getLoginUserNickname();
        JobRecordDO jobRecordDO = jobRecordMapper.selectByRentIdJobTypeDocId(updateReqVO.getId(), 1, userId);
        JobRecordDO jobRecordDO = jobRecordMapper.selectByRentIdDocId(updateReqVO.getId(), userId);
        if (jobRecordDO == null) {
            JobRecordSaveReqVO jobRecordSaveReqVO = new JobRecordSaveReqVO();
            jobRecordSaveReqVO.setRentId( updateReqVO.getId() );
@@ -214,14 +219,13 @@
            jobRecordSaveReqVO.setPatId( updateReqVO.getPatId() );
            jobRecordSaveReqVO.setPatName( updateReqVO.getPatName() );
            jobRecordSaveReqVO.setJobTime( updateReqVO.getReturnTime() );
            jobRecordSaveReqVO.setJobType( 1 );
            jobRecordSaveReqVO.setLost( updateReqVO.getLost() );
            jobRecordSaveReqVO.setJobType( DevRentStateEnum.LOST.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.setLost( updateReqVO.getLost() );
            jobRecordDO.setJobType( DevRentStateEnum.LOST.getState() );
            jobRecordDO.setJobTime( updateReqVO.getReturnTime() );
            jobRecordDO.setRemark( updateReqVO.getRemark() );
            jobRecordDO.setSummary( updateReqVO.getInterference() + " " + updateReqVO.getBaseline() + " " + updateReqVO.getDetachment() );
@@ -281,8 +285,8 @@
    }
    @Override
    public DevRentDO getLatestRent(DevRentSearchReqVO searchReqVO) {
        return devRentMapper.getLatestRent(searchReqVO);
    public DevRentDO getDismantleRent(DevRentSearchReqVO searchReqVO) {
        return devRentMapper.getDismantleRentByState(searchReqVO);
    }
    private void markDevLost(DevRentSaveReqVO createReqVO) {
jh-module-ecg/jh-module-ecg-biz/src/main/java/cn/lihu/jh/module/ecg/service/queue/QueueServiceImpl.java
@@ -6,9 +6,13 @@
import javax.annotation.Resource;
import cn.lihu.jh.module.ecg.controller.admin.room.vo.MonitorInfoVO;
import cn.lihu.jh.module.ecg.dal.dataobject.devrent.DevRentDO;
import cn.lihu.jh.module.ecg.dal.mysql.call.CallMapper;
import cn.lihu.jh.module.ecg.dal.mysql.devrent.DevRentMapper;
import cn.lihu.jh.module.ecg.enums.DevRentStateEnum;
import lombok.extern.slf4j.Slf4j;
import org.springframework.stereotype.Service;
import org.springframework.transaction.annotation.Transactional;
import org.springframework.util.StringUtils;
import org.springframework.validation.annotation.Validated;
@@ -50,6 +54,9 @@
    @Resource
    private CallMapper callMapper;
    @Resource
    private DevRentMapper devRentMapper;
    AtomicInteger openingFlag = new AtomicInteger(0);
    AtomicInteger curSeqNum = new AtomicInteger(0);
@@ -583,11 +590,16 @@
     * @param queueSaveReqVO
     */
    @Override
    @Transactional
    public void queue(QueueSaveReqVO queueSaveReqVO) {
        queueSaveReqVO.setStatus(QueueStatusEnum.WAITING.getStatus()); //排队中
        QueueDO queue = BeanUtils.toBean(queueSaveReqVO, QueueDO.class);
        queueMapper.insert(queue);
        DevRentDO devRent = BeanUtils.toBean(queueSaveReqVO, DevRentDO.class);
        devRent.setState( DevRentStateEnum.FREE.getState() );
        devRentMapper.insert(devRent);
        startHurryUp();
    }
jh-module-ecg/jh-module-ecg-biz/src/main/resources/mapper/devrent/DevRentMapper.xml
@@ -9,9 +9,12 @@
        文档可见:https://www.iocoder.cn/MyBatis/x-plugins/
     -->
    <select id="getLatestRent" resultType="cn.lihu.jh.module.ecg.dal.dataobject.devrent.DevRentDO">
    <select id="getDismantleRentByState" resultType="cn.lihu.jh.module.ecg.dal.dataobject.devrent.DevRentDO">
        select * from lihu.dev_rent
        <where>
            <if test="state != null">
                and state = #{state}
            </if>
            <if test="devId != null and devId != ''">
             and dev_id = #{devId}
            </if>
@@ -19,7 +22,7 @@
             and pat_id = #{patId}
            </if>
        </where>
        order by rent_time desc limit 1
        limit 1
    </select>
</mapper>