package com.sandu.ximon.admin.service;
|
|
import com.alibaba.fastjson.JSON;
|
import com.baomidou.mybatisplus.core.toolkit.Wrappers;
|
import com.sandu.common.object.BaseConditionVO;
|
import com.sandu.ximon.admin.dto.ErrorMsgDto;
|
import com.sandu.ximon.dao.bo.C3ReportErrorBo;
|
import com.sandu.ximon.dao.bo.LightReportErrorBo;
|
import com.sandu.ximon.dao.domain.C3mCharging;
|
import com.sandu.ximon.dao.domain.Light;
|
import lombok.AllArgsConstructor;
|
import org.springframework.stereotype.Service;
|
|
import java.util.ArrayList;
|
import java.util.List;
|
|
/**
|
* @author LiuHaoNan
|
* @date 2022/7/25
|
* 设备错误信息
|
*/
|
@Service
|
@AllArgsConstructor
|
public class ErrorMsgService {
|
|
|
private final LightReportErrorService lightReportErrorService;
|
private final LightService lightService;
|
private final C3mReportErrorService c3mReportErrorService;
|
private final C3ChargingService c3ChargingService;
|
|
|
public List<ErrorMsgDto> listMsg(BaseConditionVO baseConditionVO) {
|
List<ErrorMsgDto> errorMsgDtos = new ArrayList<>();
|
//单灯故障数据
|
List<LightReportErrorBo> lightReportErrors = lightReportErrorService.queryErrorCode(baseConditionVO);
|
if (!lightReportErrors.isEmpty()) {
|
for (LightReportErrorBo lightReportError : lightReportErrors) {
|
ErrorMsgDto errorMsgDto = new ErrorMsgDto();
|
errorMsgDto.setMac(lightReportError.getDeviceCode());
|
errorMsgDto.setErrorCode(lightReportError.getErrorCode());
|
errorMsgDto.setErrorDesc(lightReportError.getErrorMsg());
|
errorMsgDto.setErrorTime(lightReportError.getCreateTime());
|
errorMsgDto.setDeviceType(1);
|
Light one = lightService.getOne(Wrappers.lambdaQuery(Light.class).eq(Light::getDeviceCode, lightReportError.getDeviceCode()));
|
if (one != null) {
|
errorMsgDto.setDeviceJson(JSON.toJSONString(one));
|
}
|
errorMsgDtos.add(errorMsgDto);
|
}
|
}
|
|
//充电桩故障数据
|
List<C3ReportErrorBo> c3ReportErrorBos = c3mReportErrorService.listReportError(baseConditionVO);
|
if (!c3ReportErrorBos.isEmpty()) {
|
c3ReportErrorBos.forEach(c3ReportError -> {
|
ErrorMsgDto errorMsgDto = new ErrorMsgDto();
|
errorMsgDto.setMac(c3ReportError.getC3Mac());
|
errorMsgDto.setErrorDesc(c3ReportError.getErrorMsg());
|
errorMsgDto.setErrorTime(c3ReportError.getCreateTime());
|
errorMsgDto.setDeviceType(3);
|
C3mCharging one = c3ChargingService.getOne(Wrappers.lambdaQuery(C3mCharging.class).eq(C3mCharging::getC3Mac, c3ReportError.getC3Mac()));
|
if (one != null) {
|
errorMsgDto.setDeviceJson(JSON.toJSONString(one));
|
}
|
errorMsgDtos.add(errorMsgDto);
|
});
|
}
|
|
//大气故障数据 todo 暂无
|
|
//对errorMsgDtos按创建时间倒叙
|
errorMsgDtos.sort((a, b) -> b.getErrorTime().compareTo(a.getErrorTime()));
|
//手动分页 baseConditionVO.getPageNo() 当前页 baseConditionVO.getPageSize() 每页条数
|
return errorMsgDtos.subList((baseConditionVO.getPageNo() - 1) * baseConditionVO.getPageSize(), baseConditionVO.getPageNo() * baseConditionVO.getPageSize());
|
}
|
|
|
}
|