package cn.lihu.jh.module.ecg.service.devrent;
|
|
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.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 CommonResult<Long> installOperation(DevRentSaveReqVO createReqVO) {
|
Long userId = SecurityFrameworkUtils.getLoginUserId();
|
String userNickname = SecurityFrameworkUtils.getLoginUserNickname();
|
|
Long rent_id = createReqVO.getId();
|
if (null == rent_id) {
|
|
// 判断是否已经有装机记录
|
Integer recordNum = jobRecordMapper.getPatientJobNum(createReqVO.getPatId(), createReqVO.getRentTime(), 0);
|
if (null != recordNum && recordNum > 0) {
|
return CommonResult.error(DEV_INSTALL_EXIST);
|
}
|
|
rent_id = createDevRent(createReqVO);
|
|
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);
|
} else {
|
// 撤销 放弃操作
|
createReqVO.setCancelled(0);
|
|
updateDevRent( createReqVO );
|
|
JobRecordDO jobRecordDO = jobRecordMapper.selectByRentIdJobTypeDocId(rent_id, 0, userId);
|
if (null != jobRecordDO) {
|
jobRecordDO.setCancelled( createReqVO.getCancelled() );
|
jobRecordDO.setDevId(createReqVO.getDevId());
|
jobRecordDO.setJobTime(createReqVO.getRentTime());
|
jobRecordDO.setRemark(createReqVO.getRemark());
|
jobRecordDO.setUpdater(String.valueOf(userId));
|
jobRecordDO.setUpdateTime(LocalDateTime.now());
|
jobRecordMapper.updateById(jobRecordDO);
|
}
|
}
|
return CommonResult.success(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 CommonResult<Long> cancelOperation(DevCancelReqVO cancelReqVO) {
|
DevRentSaveReqVO createReqVO = BeanUtils.toBean(cancelReqVO, DevRentSaveReqVO.class);
|
Long userId = SecurityFrameworkUtils.getLoginUserId();
|
String userNickname = SecurityFrameworkUtils.getLoginUserNickname();
|
|
createReqVO.setCancelled(1);
|
|
Long rent_id = createReqVO.getId();
|
if (null == rent_id) {
|
|
// 判断是否已经有拆机记录
|
Integer recordNum = jobRecordMapper.getPatientJobNum(createReqVO.getPatId(), createReqVO.getRentTime(), 0);
|
if (null != recordNum && recordNum > 0) {
|
return CommonResult.error(DEV_INSTALL_EXIST);
|
}
|
|
rent_id = createDevRent(createReqVO);
|
|
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.setCancelled(1);
|
jobRecordSaveReqVO.setRemark(createReqVO.getRemark());
|
jobRecordSaveReqVO.setSummary("");
|
|
JobRecordDO jobRecord = BeanUtils.toBean(jobRecordSaveReqVO, JobRecordDO.class);
|
jobRecordMapper.insert(jobRecord);
|
} else {
|
updateDevRent( createReqVO );
|
|
JobRecordDO jobRecordDO = jobRecordMapper.selectByRentIdJobTypeDocId(rent_id, 0, userId);
|
if (null != jobRecordDO) {
|
//jobRecordDO.setDevId(createReqVO.getDevId());
|
jobRecordDO.setJobTime(createReqVO.getRentTime());
|
jobRecordDO.setCancelled(1);
|
jobRecordDO.setRemark(createReqVO.getRemark());
|
jobRecordDO.setUpdater(String.valueOf(userId));
|
jobRecordDO.setUpdateTime(LocalDateTime.now());
|
jobRecordMapper.updateById(jobRecordDO);
|
}
|
}
|
return CommonResult.success(rent_id);
|
}
|
|
@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(DevRentSearchReqVO searchReqVO) {
|
return devRentMapper.getLatestRent(searchReqVO);
|
}
|
|
}
|