干燥机配套车间生产管理系统/云平台服务端
jeecg-module-dry/jeecg-module-dry-biz/src/main/java/org/jeecg/modules/dry/runner/OpcCustomRunner.java
@@ -1,58 +1,60 @@
//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<String> ids = new ArrayList<>();
//        List<DryOpcDevice> 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));
//        } );
//    }
//}
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.boot.autoconfigure.condition.ConditionalOnProperty;
import org.springframework.stereotype.Component;
import java.util.ArrayList;
import java.util.List;
@Component
@Slf4j
@ConditionalOnProperty(name = "kangaroohy.milo.enabled", havingValue = "true")
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<String> ids = new ArrayList<>();
        List<DryOpcDevice> 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));
        } );
    }
}