package org.jeecg.modules.dry.runner; import com.alibaba.fastjson.JSON; import com.kangaroohy.milo.service.MiloService; import lombok.extern.slf4j.Slf4j; import org.jeecg.modules.dry.entity.DryOpcDevice; import org.jeecg.modules.dry.service.IDryOpcDeviceService; import org.jeecg.modules.dry.vo.DryOpcMsgVo; import org.jeecg.modules.dry.websocket.DrySocket; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.boot.ApplicationArguments; import org.springframework.boot.ApplicationRunner; import org.springframework.stereotype.Component; import java.util.ArrayList; import java.util.List; @Component @Slf4j public class OpcCustomRunner implements ApplicationRunner { @Autowired private MiloService miloService; @Autowired private IDryOpcDeviceService dryOpcDeviceService; @Autowired private DrySocket drySocket; @Override public void run(ApplicationArguments args) throws Exception { subscript(); } private void subscript() throws Exception { List ids = new ArrayList<>(); List list = dryOpcDeviceService.list(); list.forEach(item -> { ids.add(item.getIdentifier()); }); // ids.add("通道 1.设备 1.标记 1"); // ids.add("通道 1.设备 1.标记 2"); // ids.add("channel1.device1.tag1"); // ids.add("channel1.device1.tag2"); // ids.add("channel1.device1.tag3"); // ids.add("channel1.device1.tag4"); // ids.add("channel1.device1.tag5"); // ids.add("channel1.device1.tag6"); miloService.subscriptionFromOpcUa(ids, (id,value)->{ log.info("subscription 点位:{} 订阅到消息:{}", id, value); DryOpcMsgVo dryOpcMsgVo = new DryOpcMsgVo(id, (Boolean) value); drySocket.pushMessage("1003", JSON.toJSONString(dryOpcMsgVo)); } ); } }