package com.ld.igds.protocol.fzzy.analysis; import com.alibaba.fastjson.JSONObject; import com.ld.igds.common.CoreDeviceService; import com.ld.igds.io.notify.NotifyWebInvoker; import com.ld.igds.io.constant.OrderRespEnum; import com.ld.igds.models.DeviceSer; import com.ld.igds.protocol.fzzy.ServerUtils; import com.ld.igds.protocol.fzzy.command.BaseRemoteImpl; import com.ld.igds.protocol.fzzy.dto.ReMessage; import com.ld.igds.protocol.fzzy.resp.Response3102; import lombok.extern.slf4j.Slf4j; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Component; import java.util.List; /** * 设备操作类 */ @Slf4j @Component(AnalysisDevice.BEAN_ID) public class AnalysisDevice extends BaseRemoteImpl { public static final String BEAN_ID = "fzzy.analysisDevice"; @Autowired private CoreDeviceService deviceService; @Autowired private NotifyWebInvoker notifyInvoker; public void analysis3101(ReMessage reMessage, DeviceSer ser) { log.debug("-DO NOTHING-"); //DO NOTHING } /** * 设备状态 * * @param reMessage * @param ser */ public void analysis3102(ReMessage reMessage, DeviceSer ser) { List responseList = JSONObject.parseArray(reMessage.getContent(), Response3102.class); if(null == responseList || responseList.isEmpty()){ log.error("控制柜----->>>>平台:解析返回出现问题,没有返回设备列表"); return; } String status; for (Response3102 resp : responseList) { status = ServerUtils.analysisDeviceStatus(resp.getDeviceId(), resp.getStatus()); log.info("解析控制柜返回设备状态-解析后---{}--{}---{}--{}", ser.getCompanyId(), ser.getId(), resp.getDeviceId(), status); ServerUtils.add2StatusMap(ser.getCompanyId(), ser.getId(), resp.getDeviceId(), status); } deviceService.updateStatus(ser.getCompanyId(), ser.getId(), ServerUtils.getStatusMap()); notifyInvoker.notifyAnalysisStatusSuccess(ser.getCompanyId(), ser.getId(), OrderRespEnum.MSG_SUCCESS, "设备状态查询成功并完成解析!"); } public void analysis3103(ReMessage message, DeviceSer ser) { //DO NOTHING } public void analysis3201(ReMessage message, DeviceSer ser) { //DO NOTHING } }