| | |
| | | package com.sandu.ximon.admin.service; |
| | | |
| | | import com.github.pagehelper.PageHelper; |
| | | import com.sandu.common.domain.CommonPage; |
| | | import com.sandu.common.object.BaseConditionVO; |
| | | import com.sandu.common.service.impl.BaseServiceImpl; |
| | | import com.sandu.ximon.admin.manager.iot.frame.A5Frame; |
| | | import com.sandu.ximon.admin.manager.iot.frame.inner.report.A5LightErrorCodeReportInnerFrame; |
| | | import com.sandu.ximon.admin.manager.iot.frame.inner.report.A5LightOperationReportInnerFrame; |
| | | import com.sandu.ximon.admin.manager.iot.frame.inner.request.A5LightCleanErrorCodeInnerFrame; |
| | | import com.sandu.ximon.admin.manager.iot.rrpc.dto.CommonFrame; |
| | | import com.sandu.ximon.admin.manager.iot.rrpc.enums.A5OrderEnum; |
| | | import com.sandu.ximon.admin.manager.iot.rrpc.enums.LightErrorEnum; |
| | | import com.sandu.ximon.admin.manager.iot.rrpc.mainboard.MainBoardInvokeSyncService; |
| | | import com.sandu.ximon.admin.security.SecurityUtils; |
| | | import com.sandu.ximon.admin.utils.ListPagingUtils; |
| | | import com.sandu.ximon.admin.utils.StoreOperationRecordsUtils; |
| | | import com.sandu.ximon.dao.bo.LightReportErrorBo; |
| | | import com.sandu.ximon.dao.domain.LightReportError; |
| | | import com.sandu.ximon.dao.mapper.LightReportErrorMapper; |
| | | import lombok.extern.slf4j.Slf4j; |
| | | import org.springframework.stereotype.Service; |
| | | |
| | | import java.util.List; |
| | | import java.util.stream.Collectors; |
| | | |
| | | /** |
| | | * @author chenjiantian |
| | | * @date 2021/12/17 17:47 |
| | | */ |
| | | @Slf4j |
| | | @Service |
| | | public class LightReportErrorService extends BaseServiceImpl<LightReportErrorMapper, LightReportError> { |
| | | |
| | |
| | | LightReportError lightReportError = new LightReportError(); |
| | | lightReportError.setDeviceCode(deviceName); |
| | | lightReportError.setErrorCode(codeRespInnerFrame.getErrorCode()); |
| | | lightReportError.setLightAddress(codeRespInnerFrame.getDestinationAddress()); |
| | | save(lightReportError); |
| | | } |
| | | |
| | |
| | | LightErrorEnum[] values = LightErrorEnum.values(); |
| | | for (LightErrorEnum value : values) { |
| | | if ((value.getCode() & errorCode) > 0) { |
| | | sb.append(value.getMessage()); |
| | | sb.append(value.getMessage() + ";"); |
| | | } |
| | | } |
| | | lightReportErrorBo.setErrorMsg(sb.toString()); |
| | | } |
| | | return lightReportErrorBos; |
| | | } |
| | | |
| | | /** |
| | | * 查询故常数据 |
| | | * |
| | | * @return |
| | | */ |
| | | public CommonPage queryErrorCode(BaseConditionVO baseConditionVO) { |
| | | List<LightReportErrorBo> lightReportErrorBos = baseMapper.listError(SecurityUtils.getClientId()); |
| | | lightReportErrorBos = lightReportErrorBos.stream().filter(bean -> bean.getErrorCode() != 0).collect(Collectors.toList()); |
| | | CommonPage commonPage = ListPagingUtils.pages(lightReportErrorBos, baseConditionVO.getPageNo(), baseConditionVO.getPageSize()); |
| | | |
| | | for (LightReportErrorBo lightReportErrorBo : (List<LightReportErrorBo>) commonPage.getList()) { |
| | | Integer errorCode = lightReportErrorBo.getErrorCode(); |
| | | StringBuilder sb = new StringBuilder(); |
| | | LightErrorEnum[] values = LightErrorEnum.values(); |
| | | for (LightErrorEnum value : values) { |
| | | if ((value.getCode() & errorCode) > 0) { |
| | | sb.append(value.getMessage()); |
| | | } |
| | | } |
| | | lightReportErrorBo.setErrorMsg(sb.toString()); |
| | | } |
| | | return commonPage; |
| | | } |
| | | |
| | | /** |
| | | * 清除故障码 |
| | | * |
| | | * @param deviceName |
| | | * @param address |
| | | */ |
| | | public void cleanErrorCode(String deviceName, String address) { |
| | | A5LightCleanErrorCodeInnerFrame a5LightCleanErrorCodeInnerFram = new A5LightCleanErrorCodeInnerFrame(address); |
| | | |
| | | A5Frame a5Frame = new A5Frame(A5OrderEnum.REQUEST_LIGHT_DATA.getCode(), a5LightCleanErrorCodeInnerFram); |
| | | System.out.println(a5Frame + " -----a5Frame"); |
| | | |
| | | CommonFrame commonFrame = MainBoardInvokeSyncService.getInstance().sendRRPC(deviceName, a5Frame); |
| | | StoreOperationRecordsUtils.storeInnerFrameData(deviceName, "单灯帧-单灯故障清除", a5Frame, commonFrame); |
| | | |
| | | System.out.println(commonFrame + " -----commonFrame"); |
| | | A5LightOperationReportInnerFrame operationReportInnerFrame = new A5LightOperationReportInnerFrame().transformFrame(commonFrame.getPayload()); |
| | | if (operationReportInnerFrame.isValidate()) { |
| | | log.error("清除故障码成功,code:" + deviceName + ",灯头地址:" + address); |
| | | } |
| | | } |
| | | } |
| | | |