123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173 |
- package com.om.service.impl;
- import cn.hutool.core.bean.BeanUtil;
- import cn.hutool.core.collection.CollectionUtil;
- import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
- import com.om.entity.dto.DiaLogQueryPageDTO;
- import com.om.entity.po.*;
- import com.om.entity.vo.DiaLogQueryPageVO;
- import com.om.entity.vo.DiaLogQueryVO;
- import com.om.exception.BadReqException;
- import com.om.mapper.DiagnosticLogMapper;
- import com.om.service.*;
- import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
- import com.om.utils.HuaweiObsUtil;
- import com.om.utils.Result;
- import org.apache.commons.lang3.StringUtils;
- import org.springframework.stereotype.Service;
- import javax.annotation.Resource;
- import java.time.LocalDate;
- import java.time.LocalDateTime;
- import java.util.ArrayList;
- import java.util.List;
- import static com.om.constant.UploadConstant.DIAGNOSTIC_LOG_PREFIX;
- /**
- * <p>
- * 服务实现类
- * </p>
- *
- * @author bmmx
- * @since 2024-02-27
- */
- @Service
- public class DiagnosticLogServiceImpl extends ServiceImpl<DiagnosticLogMapper, DiagnosticLog> implements IDiagnosticLogService {
- @Resource
- private IUserService userService;
- @Resource
- private IBrandService brandService;
- @Resource
- private IClientService clientService;
- @Resource
- private HuaweiObsUtil obsUtil;
- @Resource
- private IVciInfoService vciInfoService;
- @Override
- public Result<DiaLogQueryPageVO> getPageList(DiaLogQueryPageDTO dto) {
- //从dto中获取数据
- Integer pageIndex = dto.getPageIndex();
- Integer pageSize = dto.getPageSize();
- LocalDateTime beginTime = dto.getBeginTime();
- LocalDateTime endTime = dto.getEndTime();
- User one = new User();
- if (StringUtils.isNotBlank(dto.getAccount())) {
- //根据用户名查询用户
- one = userService.lambdaQuery()
- .eq(User::getUsername, dto.getAccount())
- .one();
- if (BeanUtil.isEmpty(one)){
- throw new BadReqException("该查询用户不存在");
- }
- }
- VciInfo vciInfo = new VciInfo();
- if (StringUtils.isNotBlank(dto.getVciSn())) {
- //根据vciSn查询VCI
- vciInfo = vciInfoService.lambdaQuery()
- .eq(VciInfo::getVciNum, dto.getVciSn())
- .one();
- if (BeanUtil.isEmpty(vciInfo)){
- throw new BadReqException("该查询vci不存在");
- }
- }
- Page<DiagnosticLog> page = this.lambdaQuery()
- .like(StringUtils.isNotBlank(dto.getAccount()), DiagnosticLog::getUserId, one.getId())
- .like(StringUtils.isNotBlank(dto.getVciSn()), DiagnosticLog::getVciId, vciInfo.getId())
- .ge(beginTime != null, DiagnosticLog::getCreateTime, beginTime)
- .le(endTime != null, DiagnosticLog::getCreateTime, endTime)
- .orderByDesc(DiagnosticLog::getCreateTime)
- .page(new Page<>(pageIndex, pageSize));
- DiaLogQueryPageVO vo = new DiaLogQueryPageVO();
- vo.setCurrent((int) page.getCurrent());
- vo.setSize((int) page.getSize());
- vo.setPages((int) page.getPages());
- vo.setTotal((int) page.getTotal());
- if (dto.getAccount() != null || dto.getVciSn()!= null || beginTime != null || endTime != null) {
- vo.setSearchCount(true);
- }
- List<DiagnosticLog> records = page.getRecords();
- List<DiaLogQueryVO> diaLogQueryVOS = new ArrayList<>();
- for (DiagnosticLog record : records) {
- DiaLogQueryVO diaLogQueryVO = BeanUtil.copyProperties(record, DiaLogQueryVO.class);
- User user = userService.getById(record.getUserId());
- diaLogQueryVO.setAccount(user.getUsername());
- Brand brand = brandService.getById(record.getBrandId());
- diaLogQueryVO.setBrand(brand.getBrandCn());
- Client client = clientService.getById(record.getClientId());
- diaLogQueryVO.setClientNum(client.getNumber());
- VciInfo vci = vciInfoService.getById(record.getVciId());
- diaLogQueryVO.setVciSn(vci.getVciNum());
- //todo 车型id vehicleId 查询车型
- diaLogQueryVOS.add(diaLogQueryVO);
- }
- vo.setRecords(diaLogQueryVOS);
- return Result.ok(vo);
- }
- @Override
- public Result batchDownload(List<Integer> ids) {
- //根据id集合查询
- List<DiagnosticLog> diagnosticLogs = this.listByIds(ids);
- if (CollectionUtil.isEmpty(diagnosticLogs)){
- throw new BadReqException("本页诊断文件异常");
- }
- LocalDate now = LocalDate.now();
- int year = now.getYear();
- int monthValue = now.getMonthValue();
- int day = now.getDayOfMonth();
- List<String> downloadUrls = new ArrayList<>();
- String prefix = DIAGNOSTIC_LOG_PREFIX;
- for (DiagnosticLog diagnosticLog : diagnosticLogs) {
- String nameLog = diagnosticLog.getNameLog();
- //获取下载链接
- String downloadUrl = obsUtil.getDownloadUrl(nameLog, prefix);
- downloadUrls.add(downloadUrl);
- }
- return Result.ok(downloadUrls);
- }
- @Override
- public Result downloadFile(Integer id) {
- //根据id进行查询
- DiagnosticLog diagnosticLog = this.getById(id);
- if (BeanUtil.isEmpty(diagnosticLog)) {
- throw new BadReqException("该诊断日志不存在");
- }
- //获取文件名称
- String nameLog = diagnosticLog.getNameLog();
- LocalDate now = LocalDate.now();
- int year = now.getYear();
- int monthValue = now.getMonthValue();
- int day = now.getDayOfMonth();
- String prefix = DIAGNOSTIC_LOG_PREFIX;
- //获取下载链接
- String downloadUrl = obsUtil.getDownloadUrl(nameLog, prefix);
- return Result.ok(downloadUrl);
- }
- }
|