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.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(); 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); 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 getDevRentPage(DevRentPageReqVO pageReqVO) { return devRentMapper.selectPage(pageReqVO); } @Override public DevRentDO getLatestRent(String devId) { return devRentMapper.getLatestRent(devId); } }