沙钢智慧能源系统后端代码
dengzedong
2025-02-13 63b27f68e62bc1fc1366af265ca81e1e62c1f8b6
runLDGTankFactorPredTask
已添加1个文件
已修改2个文件
73 ■■■■■ 文件已修改
shasteel-biz/pom.xml 10 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
shasteel-biz/src/main/java/com/iailab/module/shasteel/framework/rpc/config/RpcConfiguration.java 3 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
shasteel-biz/src/main/java/com/iailab/module/shasteel/job/task/RunLDGTankFactorPredTask.java 60 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
shasteel-biz/pom.xml
@@ -34,6 +34,11 @@
            <artifactId>iailab-module-model-api</artifactId>
            <version>${revision}</version>
        </dependency>
        <dependency>
            <groupId>com.iailab</groupId>
            <artifactId>iailab-module-data-api</artifactId>
            <version>${revision}</version>
        </dependency>
        <!-- 业务组件 -->
        <dependency>
@@ -131,11 +136,6 @@
        <dependency>
            <groupId>com.iailab</groupId>
            <artifactId>iailab-common-mq</artifactId>
        </dependency>
        <dependency>
            <groupId>com.iailab</groupId>
            <artifactId>iailab-module-model-api</artifactId>
        </dependency>
    </dependencies>
shasteel-biz/src/main/java/com/iailab/module/shasteel/framework/rpc/config/RpcConfiguration.java
@@ -1,5 +1,6 @@
package com.iailab.module.shasteel.framework.rpc.config;
import com.iailab.module.data.api.point.DataPointApi;
import com.iailab.module.infra.api.config.ConfigApi;
import com.iailab.module.infra.api.db.DataSourceConfigServiceApi;
import com.iailab.module.infra.api.file.FileApi;
@@ -11,6 +12,6 @@
import org.springframework.context.annotation.Configuration;
@Configuration(proxyBeanMethods = false)
@EnableFeignClients(clients = {FileApi.class, WebSocketSenderApi.class, DataSourceConfigServiceApi.class, ConfigApi.class, TenantApi.class, McsApi.class, MdkApi.class})
@EnableFeignClients(clients = {FileApi.class, WebSocketSenderApi.class, DataSourceConfigServiceApi.class, ConfigApi.class, TenantApi.class, McsApi.class, MdkApi.class, DataPointApi.class})
public class RpcConfiguration {
}
shasteel-biz/src/main/java/com/iailab/module/shasteel/job/task/RunLDGTankFactorPredTask.java
对比新文件
@@ -0,0 +1,60 @@
package com.iailab.module.shasteel.job.task;
import com.iailab.module.data.api.point.DataPointApi;
import com.iailab.module.model.api.mdk.MdkApi;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import org.springframework.amqp.rabbit.core.RabbitTemplate;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Component;
import java.util.*;
/**
 * @description: LDG柜容预测 监听触发
 *  points(当前时刻大于0,上一时刻为0)则触发
 * @author: dzd
 * @date: 2025/2/13 16:22
 **/
@Component("runLDGTankFactorPredTask")
public class RunLDGTankFactorPredTask implements ITask {
    private Logger logger = LoggerFactory.getLogger(getClass());
    @Autowired
    private DataPointApi dataPointApi;
    @Autowired
    private RunPredictModuleTask runPredictModuleTask;
    /**
     * map<NetCode,[pointNos]>
     **/
    private static final HashMap<String, List<String>> checkPoints = new HashMap<String, List<String>>(){{
        put("NET_LDG1", Arrays.asList("M0000100050","M0000100049","M0000100048"));
        put("NET_LDG2", Arrays.asList("M0000100062","M0000100061","M0000100060"));
        put("NET_LDG3", Arrays.asList("M0000100057","M0000100056","M0000100055"));
    }};
    private static HashMap<String,Double> pointsLastValue = new HashMap<>();
    @Override
    public void run(String params) {
        logger.info("runLDGTankFactorPredTask定时任务正在执行,参数为:{}", params);
        try {
            for (Map.Entry<String, List<String>> entry : checkPoints.entrySet()) {
                Map<String, Object> pointsRealValue = dataPointApi.queryPointsRealValue(entry.getValue());
                for (Map.Entry<String, Object> pointRealValue : pointsRealValue.entrySet()) {
                    String pointNo = pointRealValue.getKey();
                    Double value = (Double) pointRealValue.getValue();
                    //如果有旧值,且旧值为0,且新值不为null,且新值>0  触发模型
                    if (pointsLastValue.containsKey(pointNo) && pointsLastValue.get(pointNo).equals(0.0) && null != value && value.compareTo(0.0) > 0){
                        runPredictModuleTask.run(entry.getKey());
                        break;
                    }
                }
            }
        } catch (Exception ex) {
            logger.error("runLDGTankFactorPredTask运行异常",ex);
        }
        logger.info("runLDGTankFactorPredTask运行完成");
    }
}