沙钢智慧能源系统后端代码
Jay
2025-03-13 5e1fbbd878af55a76e590510e0b08e9d84e72b4b
新增把指标数据存入测点的定时任务
已添加1个文件
已修改1个文件
79 ■■■■■ 文件已修改
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/SaveIndDataToPointDataTask.java 76 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
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.ind.IndItemApi;
import com.iailab.module.data.api.point.DataPointApi;
import com.iailab.module.infra.api.config.ConfigApi;
import com.iailab.module.infra.api.db.DataSourceConfigServiceApi;
@@ -12,6 +13,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, DataPointApi.class})
@EnableFeignClients(clients = {FileApi.class, WebSocketSenderApi.class, DataSourceConfigServiceApi.class, ConfigApi.class, TenantApi.class, McsApi.class, MdkApi.class, DataPointApi.class, IndItemApi.class})
public class RpcConfiguration {
}
shasteel-biz/src/main/java/com/iailab/module/shasteel/job/task/SaveIndDataToPointDataTask.java
对比新文件
@@ -0,0 +1,76 @@
package com.iailab.module.shasteel.job.task;
import com.iailab.module.data.api.ind.IndItemApi;
import com.iailab.module.data.api.ind.dto.ApiIndItemValueDTO;
import com.iailab.module.data.api.point.DataPointApi;
import com.iailab.module.data.api.point.dto.ApiPointValueWriteDTO;
import com.iailab.module.model.api.mcs.McsApi;
import com.iailab.module.model.api.mcs.dto.ChartParamDTO;
import org.apache.commons.lang3.StringUtils;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Component;
import java.math.BigDecimal;
import java.math.RoundingMode;
import java.time.LocalDate;
import java.time.YearMonth;
import java.util.Calendar;
import java.util.List;
/**
 * 蒸汽评价指标(汽耗率)
 *
 * @author Jay
 */
@Component("saveIndDataToPointDataTask")
public class SaveIndDataToPointDataTask implements ITask {
    private Logger logger = LoggerFactory.getLogger(getClass());
    @Autowired
    private McsApi mcsApi;
    @Autowired
    private DataPointApi dataPointApi;
    @Autowired
    private IndItemApi indItemApi;
    @Override
    public void run(String params) {
        logger.info("SaveIndDataToPointDataTask,参数为:{}", params);
        try {
            Calendar calendar = Calendar.getInstance();
            calendar.set(Calendar.MILLISECOND, 0);
            calendar.set(Calendar.SECOND, 0);
            if (StringUtils.isEmpty(params)) {
                logger.info("参数为空");
                return;
            }
            //获取当前月天数
            LocalDate today = LocalDate.now();
            // 使用YearMonth来获取当前年份和月份的天数
            YearMonth yearMonth = YearMonth.of(today.getYear(), today.getMonthValue());
            int lengthOfMonth = yearMonth.lengthOfMonth();
            List<ChartParamDTO> chartParamList = mcsApi.getChartParamList(params);
            chartParamList.forEach(chartParam -> {
                List<ApiIndItemValueDTO> indItemlist = indItemApi.queryIndItemDefaultValue(chartParam.getParamCode());
                if (indItemlist != null && indItemlist.size() > 0) {
                    ApiPointValueWriteDTO apiPointValueWriteDTO = new ApiPointValueWriteDTO();
                    apiPointValueWriteDTO.setPointNo(chartParam.getParamValue());
                    BigDecimal indValue = (BigDecimal) indItemlist.get(0).getDataValue();
                    BigDecimal pointValue = indValue.divide(new BigDecimal(lengthOfMonth), 3, RoundingMode.HALF_UP);
                    apiPointValueWriteDTO.setValue(pointValue);
                    dataPointApi.writePointRealValue(apiPointValueWriteDTO);
                }
            });
            logger.info(params + "调度方案执行完成");
        } catch (Exception ex) {
            logger.error("SaveIndDataToPointDataTask运行异常");
            ex.printStackTrace();
        }
        logger.info("SaveIndDataToPointDataTask运行完成");
    }
}