| | |
| | | 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; |
| | | |
| | |
| | | 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); |
| | | } |
| | | |
| | |
| | | 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(); |
| | |
| | | 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() ); |
| | |
| | | @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() ); |
| | | |
| | |
| | | @Override |
| | | @Transactional |
| | | public CommonResult<Long> loseOperation(DevRentSaveReqVO updateReqVO) { |
| | | // 设备遗失时, 标注遗失 |
| | | markDevLost( updateReqVO.getDevId(), updateReqVO.getReturnTime().toLocalDate() ); |
| | | |
| | | updateReqVO.setState( DevRentStateEnum.LOST.getState() ); |
| | | updateDevRent( updateReqVO ); |
| | | |
| | |
| | | jobRecordDO.setUpdateTime( LocalDateTime.now() ); |
| | | jobRecordMapper.updateById(jobRecordDO); |
| | | } |
| | | |
| | | // 设备遗失时, 标注遗失 |
| | | markDevLost( updateReqVO ); |
| | | |
| | | return CommonResult.success(updateReqVO.getId()); |
| | | } |
| | |
| | | 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; |
| | | } |
| | | |
| | | } |
| | | |