eight
2024-09-23 f14d9737da8bbe94e82427f2d0e727fd15c88f2e
jh-module-ecg/jh-module-ecg-biz/src/main/java/cn/lihu/jh/module/ecg/service/devrent/DevRentServiceImpl.java
@@ -3,18 +3,19 @@
import cn.lihu.jh.framework.common.pojo.CommonResult;
import cn.lihu.jh.framework.security.core.util.SecurityFrameworkUtils;
import cn.lihu.jh.module.ecg.controller.admin.jobrecord.vo.JobRecordSaveReqVO;
import cn.lihu.jh.module.ecg.dal.dataobject.devmanage.DeviceDO;
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 org.springframework.stereotype.Service;
import org.springframework.validation.annotation.Validated;
import org.springframework.transaction.annotation.Transactional;
import java.time.LocalDateTime;
import java.util.*;
import cn.lihu.jh.module.ecg.controller.admin.devrent.vo.*;
import cn.lihu.jh.module.ecg.dal.dataobject.devrent.DevRentDO;
import cn.lihu.jh.framework.common.pojo.PageResult;
import cn.lihu.jh.framework.common.pojo.PageParam;
import cn.lihu.jh.framework.common.util.object.BeanUtils;
import cn.lihu.jh.module.ecg.dal.mysql.devrent.DevRentMapper;
@@ -39,11 +40,20 @@
    @Resource
    private JobRecordMapper jobRecordMapper;
    @Resource
    DeviceMapper deviceMapper;
    @Override
    @Transactional
    public CommonResult<Long> installOperation(DevRentSaveReqVO createReqVO) {
        Long userId = SecurityFrameworkUtils.getLoginUserId();
        String userNickname = SecurityFrameworkUtils.getLoginUserNickname();
        // 检查设备编号
        DeviceDO deviceDO = deviceMapper.getDeviceByDevId( createReqVO.getDevId() );
        if (null == deviceDO ) {
            return CommonResult.error(DEVICE_NOT_EXISTS);
        }
        Long rent_id = createReqVO.getId();
        if (null == rent_id) {
@@ -93,6 +103,9 @@
    @Override
    @Transactional
    public Long dismantleOperation(DevRentSaveReqVO updateReqVO) {
        // 取消遗失标记
        updateReqVO.setLost(0);
        updateDevRent( updateReqVO );
        Long userId = SecurityFrameworkUtils.getLoginUserId();
@@ -114,6 +127,12 @@
            JobRecordDO jobRecord = BeanUtils.toBean(jobRecordSaveReqVO, JobRecordDO.class);
            jobRecordMapper.insert(jobRecord);
        } else {
            // 设备遗失时, 需恢复到正常
            resumeDevLost( updateReqVO );
            // 取消遗失标记
            jobRecordDO.setLost(0);
            jobRecordDO.setJobTime( updateReqVO.getReturnTime() );
            jobRecordDO.setRemark( updateReqVO.getRemark() );
            jobRecordDO.setSummary( updateReqVO.getInterference() + " " + updateReqVO.getBaseline() + " " + updateReqVO.getDetachment() );
@@ -121,10 +140,11 @@
            jobRecordDO.setUpdateTime( LocalDateTime.now() );
            jobRecordMapper.updateById(jobRecordDO);
        }
        return 0L;
        return updateReqVO.getId();
    }
    @Override
    @Transactional
    public CommonResult<Long> cancelOperation(DevCancelReqVO cancelReqVO) {
        DevRentSaveReqVO createReqVO = BeanUtils.toBean(cancelReqVO, DevRentSaveReqVO.class);
        Long userId = SecurityFrameworkUtils.getLoginUserId();
@@ -176,6 +196,47 @@
    }
    @Override
    @Transactional
    public CommonResult<Long> loseOperation(DevRentSaveReqVO updateReqVO) {
        updateReqVO.setLost(1);
        updateDevRent( updateReqVO );
        Long userId = SecurityFrameworkUtils.getLoginUserId();
        String userNickname = SecurityFrameworkUtils.getLoginUserNickname();
        JobRecordDO jobRecordDO = jobRecordMapper.selectByRentIdJobTypeDocId(updateReqVO.getId(), 1, userId);
        if (jobRecordDO == null) {
            JobRecordSaveReqVO jobRecordSaveReqVO = new JobRecordSaveReqVO();
            jobRecordSaveReqVO.setRentId( updateReqVO.getId() );
            jobRecordSaveReqVO.setDevId( updateReqVO.getDevId() );
            jobRecordSaveReqVO.setDocId( userId );
            jobRecordSaveReqVO.setDocName( userNickname );
            jobRecordSaveReqVO.setPatId( updateReqVO.getPatId() );
            jobRecordSaveReqVO.setPatName( updateReqVO.getPatName() );
            jobRecordSaveReqVO.setJobTime( updateReqVO.getReturnTime() );
            jobRecordSaveReqVO.setJobType( 1 );
            jobRecordSaveReqVO.setLost( updateReqVO.getLost() );
            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.setJobTime( updateReqVO.getReturnTime() );
            jobRecordDO.setRemark( updateReqVO.getRemark() );
            jobRecordDO.setSummary( updateReqVO.getInterference() + " " + updateReqVO.getBaseline() + " " + updateReqVO.getDetachment() );
            jobRecordDO.setUpdater( String.valueOf(userId) );
            jobRecordDO.setUpdateTime( LocalDateTime.now() );
            jobRecordMapper.updateById(jobRecordDO);
        }
        // 设备遗失时, 标注遗失
        markDevLost( updateReqVO );
        return CommonResult.success(updateReqVO.getId());
    }
    @Override
    public Long createDevRent(DevRentSaveReqVO createReqVO) {
        //
@@ -205,7 +266,7 @@
    private void validateDevRentExists(Long id) {
        if (devRentMapper.selectById(id) == null) {
            throw exception(DEV_RENT_NOT_EXISTS);
            throw exception(DEV_INSTALL_NOT_EXISTS);
        }
    }
@@ -220,8 +281,28 @@
    }
    @Override
    public DevRentDO getLatestRent(String devId) {
        return devRentMapper.getLatestRent(devId);
    public DevRentDO getLatestRent(DevRentSearchReqVO searchReqVO) {
        return devRentMapper.getLatestRent(searchReqVO);
    }
}
    private void markDevLost(DevRentSaveReqVO createReqVO) {
        // 设备标注遗失
        DeviceDO deviveDO = deviceMapper.getDeviceByDevId(createReqVO.getDevId());
        if (null != deviveDO) {
            deviveDO.setLost(1);
            deviveDO.setLoseDate( createReqVO.getReturnTime().toLocalDate() );
            deviceMapper.updateById(deviveDO);
        }
    }
    private void resumeDevLost(DevRentSaveReqVO createReqVO) {
        // 设备标注遗失 恢复为正常
        DeviceDO deviveDO = deviceMapper.getDeviceByDevId(createReqVO.getDevId());
        if (null != deviveDO) {
            deviveDO.setLost(0);
            deviveDO.setLoseDate( null );
            deviceMapper.updateById(deviveDO);
        }
    }
}