package com.ld.igds.protocol.modbus.command; import com.ld.igds.common.CoreDeviceService; import com.ld.igds.io.constant.OrderRespEnum; import com.ld.igds.io.notify.NotifyWebInvoker; import com.ld.igds.io.request.DeviceControlRequest; import com.ld.igds.protocol.modbus.ServerUtil; import lombok.extern.slf4j.Slf4j; import org.springframework.scheduling.annotation.Async; import org.springframework.stereotype.Component; import javax.annotation.Resource; /** * 解析 */ @Slf4j @Component public class AnalysisService { @Resource private CoreDeviceService coreDeviceService; @Resource private NotifyWebInvoker notifyInvoker; /** * 异步更新设备状态, * * @param request * @param sleepTime 延迟执行时间=毫秒值,如果==0 ,表示不延迟 */ @Async public void analysisDevice(DeviceControlRequest request, long sleepTime) { try { if (sleepTime > 0) { Thread.sleep(sleepTime); } coreDeviceService.updateStatus(request.getCompanyId(), request.getSerId(), ServerUtil.getStatusMap()); notifyInvoker.notifyAnalysisStatusSuccess(request.getCompanyId(), request.getSerId(), OrderRespEnum.MSG_SUCCESS, "设备状态查询成功并完成解析!"); } catch (Exception e) { log.error("---MODBUS-TCP-状态解析异常{}", e); } } }