package cn.lihu.jh.module.ecg.service.jobrecord; import cn.lihu.jh.module.ecg.controller.admin.appointment.vo.AppointmentRespVO; import cn.lihu.jh.module.ecg.dal.dataobject.jobrecord.JobRecordStatisticDO; import cn.lihu.jh.module.ecg.dal.mysql.devrent.DevRentMapper; 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.jobrecord.vo.*; import cn.lihu.jh.module.ecg.dal.dataobject.jobrecord.JobRecordDO; 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.jobrecord.JobRecordMapper; import javax.annotation.Resource; import static cn.lihu.jh.framework.common.exception.util.ServiceExceptionUtil.exception; import static cn.lihu.jh.framework.common.pojo.CommonResult.success; import static cn.lihu.jh.module.ecg.enums.ErrorCodeConstants.*; /** * 工作记录 Service 实现类 * * @author 芋道源码 */ @Service @Validated public class JobRecordServiceImpl implements JobRecordService { @Resource private JobRecordMapper jobRecordMapper; @Resource private DevRentMapper devRentMapper; @Override public Long createJobRecord(JobRecordSaveReqVO createReqVO) { // 插入 JobRecordDO jobRecord = BeanUtils.toBean(createReqVO, JobRecordDO.class); jobRecordMapper.insert(jobRecord); // 返回 return jobRecord.getId(); } @Override public void updateJobRecord(JobRecordSaveReqVO updateReqVO) { // 校验存在 validateJobRecordExists(updateReqVO.getId()); // 更新 JobRecordDO updateObj = BeanUtils.toBean(updateReqVO, JobRecordDO.class); jobRecordMapper.updateById(updateObj); } @Override public void deleteJobRecord(Long id) { // 校验存在 validateJobRecordExists(id); // 删除 jobRecordMapper.deleteById(id); } private void validateJobRecordExists(Long id) { if (jobRecordMapper.selectById(id) == null) { throw exception(JOB_RECORD_NOT_EXISTS); } } @Override public JobRecordDO getJobRecord(Long id) { return jobRecordMapper.selectById(id); } @Override public PageResult getJobRecordPage(JobRecordPageReqVO pageReqVO) { PageResult pageResult = jobRecordMapper.selectPage(pageReqVO); List jobRecordDOList = pageResult.getList(); if ( !jobRecordDOList.isEmpty() ) { List rentIdList = jobRecordDOList.stream().map(item -> item.getRentId()).toList(); List paidInfoList = devRentMapper.getPaidInfo(rentIdList); for (int i = 0; i < jobRecordDOList.size(); i++) { jobRecordDOList.get(i).setPaid(paidInfoList.get(i)); } } return pageResult; } @Override public List getJobStatistic(LocalDateTime jobTimeFrom, LocalDateTime jobTimeTo) { return jobRecordMapper.getJobStatistic(jobTimeFrom, jobTimeTo); } }