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 listMsg(BaseConditionVO baseConditionVO) { List errorMsgDtos = new ArrayList<>(); //单灯故障数据 List 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 c3ReportErrorBos = c3mReportErrorService.listReportError(baseConditionVO); if (!c3ReportErrorBos.isEmpty()) { c3ReportErrorBos.forEach(c3ReportError -> { ErrorMsgDto errorMsgDto = new ErrorMsgDto(); errorMsgDto.setMac(c3ReportError.getC3Mac()); errorMsgDto.setErrorCode(c3ReportError.getErrorCode()); 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()); } }