package cn.lihu.jh.module.ecg.service.devrent;
|
|
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.jobrecord.JobRecordDO;
|
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;
|
|
import javax.annotation.Resource;
|
|
import static cn.lihu.jh.framework.common.exception.util.ServiceExceptionUtil.exception;
|
import static cn.lihu.jh.module.ecg.enums.ErrorCodeConstants.*;
|
|
/**
|
* 装机拆机 Service 实现类
|
*
|
* @author 芋道源码
|
*/
|
@Service
|
@Validated
|
public class DevRentServiceImpl implements DevRentService {
|
|
@Resource
|
private DevRentMapper devRentMapper;
|
|
@Resource
|
private JobRecordMapper jobRecordMapper;
|
|
@Override
|
@Transactional
|
public Long installOperation(DevRentSaveReqVO createReqVO) {
|
Long rent_id = createDevRent( createReqVO );
|
|
Long userId = SecurityFrameworkUtils.getLoginUserId();
|
String userNickname = SecurityFrameworkUtils.getLoginUserNickname();
|
|
JobRecordSaveReqVO jobRecordSaveReqVO = new JobRecordSaveReqVO();
|
jobRecordSaveReqVO.setRentId(rent_id);
|
jobRecordSaveReqVO.setDevId( createReqVO.getDevId() );
|
jobRecordSaveReqVO.setDocId( userId );
|
jobRecordSaveReqVO.setDocName( userNickname );
|
jobRecordSaveReqVO.setPatId( createReqVO.getPatId() );
|
jobRecordSaveReqVO.setPatName( createReqVO.getPatName() );
|
jobRecordSaveReqVO.setJobTime( createReqVO.getRentTime() );
|
jobRecordSaveReqVO.setJobType( 0 );
|
jobRecordSaveReqVO.setRemark( createReqVO.getRemark() );
|
jobRecordSaveReqVO.setSummary( "" );
|
|
JobRecordDO jobRecord = BeanUtils.toBean(jobRecordSaveReqVO, JobRecordDO.class);
|
jobRecordMapper.insert(jobRecord);
|
return rent_id;
|
}
|
|
@Override
|
@Transactional
|
public Long dismantleOperation(DevRentSaveReqVO updateReqVO) {
|
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.setRemark( updateReqVO.getRemark() );
|
jobRecordSaveReqVO.setSummary( updateReqVO.getInterference() + " " + updateReqVO.getBaseline() + " " + updateReqVO.getDetachment() );
|
JobRecordDO jobRecord = BeanUtils.toBean(jobRecordSaveReqVO, JobRecordDO.class);
|
jobRecordMapper.insert(jobRecord);
|
} else {
|
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);
|
}
|
return 0L;
|
}
|
|
@Override
|
public Long createDevRent(DevRentSaveReqVO createReqVO) {
|
//
|
|
// 插入
|
DevRentDO devRent = BeanUtils.toBean(createReqVO, DevRentDO.class);
|
devRentMapper.insert(devRent);
|
// 返回
|
return devRent.getId();
|
}
|
|
@Override
|
public void updateDevRent(DevRentSaveReqVO updateReqVO) {
|
// 校验存在
|
validateDevRentExists(updateReqVO.getId());
|
// 更新
|
DevRentDO updateObj = BeanUtils.toBean(updateReqVO, DevRentDO.class);
|
devRentMapper.updateById(updateObj);
|
}
|
|
@Override
|
public void deleteDevRent(Long id) {
|
// 校验存在
|
validateDevRentExists(id);
|
// 删除
|
devRentMapper.deleteById(id);
|
}
|
|
private void validateDevRentExists(Long id) {
|
if (devRentMapper.selectById(id) == null) {
|
throw exception(DEV_RENT_NOT_EXISTS);
|
}
|
}
|
|
@Override
|
public DevRentDO getDevRent(Long id) {
|
return devRentMapper.selectById(id);
|
}
|
|
@Override
|
public PageResult<DevRentDO> getDevRentPage(DevRentPageReqVO pageReqVO) {
|
return devRentMapper.selectPage(pageReqVO);
|
}
|
|
@Override
|
public DevRentDO getLatestRent(String devId) {
|
return devRentMapper.getLatestRent(devId);
|
}
|
|
}
|