package com.xiaopeng.vehicleConvoy.service.impl;
|
|
import com.alibaba.fastjson.JSONArray;
|
import com.alibaba.fastjson2.JSONObject;
|
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
|
import com.xiaopeng.api.model.order.XpOrder;
|
import com.xiaopeng.api.model.vehicleConvoy.XpVehicleAnnualRecord;
|
import com.xiaopeng.common.core.web.page.PageInfo;
|
import com.xiaopeng.evi.oss.service.AliOssService;
|
import com.xiaopeng.vehicleConvoy.mapper.XpVehicleAnnualRecordMapper;
|
import com.xiaopeng.vehicleConvoy.model.query.XpVehicleAnnualRecordPageQuery;
|
import com.xiaopeng.vehicleConvoy.service.IXpVehicleAnnualRecordService;
|
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
|
import io.swagger.annotations.ApiModelProperty;
|
import org.apache.commons.lang3.StringUtils;
|
import org.bouncycastle.jcajce.provider.symmetric.AES;
|
import org.springframework.stereotype.Service;
|
|
import javax.annotation.Resource;
|
import java.io.UnsupportedEncodingException;
|
import java.time.LocalDateTime;
|
import java.time.LocalTime;
|
import java.util.ArrayList;
|
import java.util.List;
|
import java.util.Objects;
|
|
/**
|
* <p>
|
* 车辆年检信息修改记录 服务实现类
|
* </p>
|
*
|
* @author mitao
|
* @since 2026-02-11
|
*/
|
@Service
|
public class XpVehicleAnnualRecordServiceImpl extends ServiceImpl<XpVehicleAnnualRecordMapper, XpVehicleAnnualRecord> implements IXpVehicleAnnualRecordService {
|
|
@Resource
|
private AliOssService aliOssService;
|
|
@Override
|
public PageInfo<XpVehicleAnnualRecord> queryTaskRoutineByVehicleId(XpVehicleAnnualRecordPageQuery query) throws UnsupportedEncodingException {
|
// 构建分页参数
|
PageInfo<XpVehicleAnnualRecord> page = new PageInfo<>();
|
LambdaQueryWrapper<XpVehicleAnnualRecord> wrapper = new LambdaQueryWrapper<>();
|
if (Objects.nonNull(query.getStartTime())) {
|
wrapper.ge(XpVehicleAnnualRecord::getCreateTime, LocalDateTime.of(query.getStartTime(), LocalTime.MIN));
|
}
|
if (Objects.nonNull(query.getEndTime())) {
|
wrapper.le(XpVehicleAnnualRecord::getCreateTime, LocalDateTime.of(query.getEndTime(), LocalTime.MAX));
|
}
|
wrapper.like(StringUtils.isNotBlank(query.getOperationsUserName()), XpVehicleAnnualRecord::getCreateBy, query.getOperationsUserName());
|
wrapper.eq(XpVehicleAnnualRecord::getVehicleId, query.getVehicleId());
|
wrapper.orderByDesc(XpVehicleAnnualRecord::getCreateTime);
|
|
PageInfo<XpVehicleAnnualRecord> pageInfo = this.page(page, wrapper);
|
List<XpVehicleAnnualRecord> records = pageInfo.getRecords();
|
for (XpVehicleAnnualRecord record : records) {
|
|
String inspectionAttachments = record.getInspectionAttachments();
|
if (StringUtils.isNotBlank(inspectionAttachments)) {
|
JSONArray jsonArray = JSONArray.parseArray(inspectionAttachments);
|
ArrayList<String> list = new ArrayList<>(jsonArray.size());
|
for (Object o : jsonArray) {
|
JSONObject jsonObject = JSONObject.parseObject(o.toString());
|
String downloadUrl = aliOssService.getDownloadUrl(jsonObject.getString("id"), jsonObject.getString("name"), true);
|
list.add(downloadUrl);
|
}
|
record.setInspectionAttachments(String.join(",", list));
|
}
|
|
|
|
|
|
String operationQualification = record.getOperationQualification();
|
if (StringUtils.isNotBlank(operationQualification)) {
|
JSONArray jsonArray = JSONArray.parseArray(operationQualification);
|
ArrayList<String> list = new ArrayList<>(jsonArray.size());
|
for (Object o : jsonArray) {
|
JSONObject jsonObject = JSONObject.parseObject(o.toString());
|
String downloadUrl = aliOssService.getDownloadUrl(jsonObject.getString("id"), jsonObject.getString("name"), true);
|
list.add(downloadUrl);
|
}
|
record.setOperationQualification(String.join(",", list));
|
}
|
|
|
String policyInformation = record.getPolicyInformation();
|
if (StringUtils.isNotBlank(policyInformation)) {
|
JSONArray jsonArray = JSONArray.parseArray(policyInformation);
|
ArrayList<String> list = new ArrayList<>(jsonArray.size());
|
for (Object o : jsonArray) {
|
JSONObject jsonObject = JSONObject.parseObject(o.toString());
|
String downloadUrl = aliOssService.getDownloadUrl(jsonObject.getString("id"), jsonObject.getString("name"), true);
|
list.add(downloadUrl);
|
}
|
record.setPolicyInformation(String.join(",", list));
|
}
|
|
|
}
|
pageInfo.setRecords( records);
|
return pageInfo;
|
}
|
}
|