eight
2024-09-24 1dfb9beb8057d51d528a209fae1a9f9eed5c352f
新增 设备状态
已修改2个文件
71 ■■■■■ 文件已修改
jh-module-ecg/jh-module-ecg-biz/src/main/java/cn/lihu/jh/module/ecg/dal/dataobject/devmanage/DeviceDO.java 4 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
jh-module-ecg/jh-module-ecg-biz/src/main/java/cn/lihu/jh/module/ecg/service/devrent/DevRentServiceImpl.java 67 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
jh-module-ecg/jh-module-ecg-biz/src/main/java/cn/lihu/jh/module/ecg/dal/dataobject/devmanage/DeviceDO.java
@@ -51,10 +51,6 @@
    private LocalDate purchaseDate;
    /**
     * 遗失
     */
    private Integer lost;
    /**
     * 遗失日期
     */
    @TableField(updateStrategy = FieldStrategy.IGNORED)
jh-module-ecg/jh-module-ecg-biz/src/main/java/cn/lihu/jh/module/ecg/service/devrent/DevRentServiceImpl.java
@@ -8,10 +8,12 @@
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 cn.lihu.jh.module.ecg.enums.DevStateEnum;
import org.springframework.stereotype.Service;
import org.springframework.validation.annotation.Validated;
import org.springframework.transaction.annotation.Transactional;
import java.time.LocalDate;
import java.time.LocalDateTime;
import java.util.List;
@@ -57,9 +59,9 @@
        Long userId = SecurityFrameworkUtils.getLoginUserId();
        String userNickname = SecurityFrameworkUtils.getLoginUserNickname();
        // 检查设备编号
        DeviceDO deviceDO = deviceMapper.getDeviceByDevId( createReqVO.getDevId() );
        if (null == deviceDO ) {
        // 设置设备 使用中
        Integer ret = markDevInUse(createReqVO.getDevId());
        if (null == ret || 0 == ret) {
            return CommonResult.error(DEVICE_NOT_EXISTS);
        }
@@ -117,6 +119,9 @@
        Long userId = SecurityFrameworkUtils.getLoginUserId();
        String userNickname = SecurityFrameworkUtils.getLoginUserNickname();
        // 设备恢复到空闲
        resumeDevFree( updateReqVO.getDevId() );
        JobRecordDO jobRecordDO = jobRecordMapper.selectByRentIdDocId(updateReqVO.getId(), userId);
        if (jobRecordDO == null) {
            JobRecordSaveReqVO jobRecordSaveReqVO = new JobRecordSaveReqVO();
@@ -133,9 +138,6 @@
            JobRecordDO jobRecord = BeanUtils.toBean(jobRecordSaveReqVO, JobRecordDO.class);
            jobRecordMapper.insert(jobRecord);
        } else {
            // 设备遗失时, 需恢复到正常
            resumeDevLost( updateReqVO );
            jobRecordDO.setJobType( DevRentStateEnum.DISMANTLED.getState() );
            jobRecordDO.setJobTime( updateReqVO.getReturnTime() );
            jobRecordDO.setRemark( updateReqVO.getRemark() );
@@ -150,10 +152,15 @@
    @Override
    @Transactional
    public CommonResult<Long> cancelOperation(DevCancelReqVO cancelReqVO) {
        DevRentSaveReqVO createReqVO = BeanUtils.toBean(cancelReqVO, DevRentSaveReqVO.class);
        Long userId = SecurityFrameworkUtils.getLoginUserId();
        String userNickname = SecurityFrameworkUtils.getLoginUserNickname();
        // 若从 装机 改为 取消装机,恢复设备状态
        if (null != cancelReqVO.getDevId()) {
            resumeDevFree( cancelReqVO.getDevId() );
        }
        DevRentSaveReqVO createReqVO = BeanUtils.toBean(cancelReqVO, DevRentSaveReqVO.class);
        createReqVO.setDevId(null);
        createReqVO.setState( DevRentStateEnum.CANCELLED.getState() );
@@ -203,6 +210,9 @@
    @Override
    @Transactional
    public CommonResult<Long> loseOperation(DevRentSaveReqVO updateReqVO) {
        // 设备遗失时, 标注遗失
        markDevLost( updateReqVO.getDevId(), updateReqVO.getReturnTime().toLocalDate() );
        updateReqVO.setState( DevRentStateEnum.LOST.getState() );
        updateDevRent( updateReqVO );
@@ -233,9 +243,6 @@
            jobRecordDO.setUpdateTime( LocalDateTime.now() );
            jobRecordMapper.updateById(jobRecordDO);
        }
        // 设备遗失时, 标注遗失
        markDevLost( updateReqVO );
        return CommonResult.success(updateReqVO.getId());
    }
@@ -289,24 +296,40 @@
        return devRentMapper.getDismantleRentByState(searchReqVO);
    }
    private void markDevLost(DevRentSaveReqVO createReqVO) {
        // 设备标注遗失
        DeviceDO deviveDO = deviceMapper.getDeviceByDevId(createReqVO.getDevId());
    private Integer markDevInUse(String devId) {
        // 设备标注 在使用
        DeviceDO deviveDO = deviceMapper.getDeviceByDevId(devId);
        if (null != deviveDO) {
            deviveDO.setLost(1);
            deviveDO.setLoseDate( createReqVO.getReturnTime().toLocalDate() );
            deviceMapper.updateById(deviveDO);
            deviveDO.setState( DevStateEnum.INUSE.getState() );
            return deviceMapper.updateById(deviveDO);
        }
        return 0;
    }
    private void resumeDevLost(DevRentSaveReqVO createReqVO) {
        // 设备标注遗失 恢复为正常
        DeviceDO deviveDO = deviceMapper.getDeviceByDevId(createReqVO.getDevId());
    private Integer markDevLost(String devId, LocalDate localDate) {
        // 设备标注遗失
        DeviceDO deviveDO = deviceMapper.getDeviceByDevId(devId);
        if (null != deviveDO) {
            deviveDO.setLost(0);
            deviveDO.setLoseDate( null );
            deviceMapper.updateById(deviveDO);
            deviveDO.setState( DevStateEnum.LOST.getState() );
            deviveDO.setLoseDate( localDate ); // createReqVO.getReturnTime().toLocalDate()
            return deviceMapper.updateById(deviveDO);
        }
        return 0;
    }
    private Integer resumeDevFree(String devId) {
        // 设备标注遗失 恢复为空闲
        DeviceDO deviveDO = deviceMapper.getDeviceByDevId( devId );
        if (null != deviveDO) {
            deviveDO.setState( DevStateEnum.FREE.getState() );
            deviveDO.setLoseDate( null );
            return deviceMapper.updateById(deviveDO);
        }
        return 0;
    }
}