From a3bb1815c3eb6b0f0cfe9d9d2ba5ee48279e26ed Mon Sep 17 00:00:00 2001 From: dongyukun <1208714201@qq.com> Date: 星期五, 28 三月 2025 11:30:49 +0800 Subject: [PATCH] Merge remote-tracking branch 'origin/master' --- shasteel-biz/src/main/java/com/iailab/module/shasteel/job/task/SaveIndDataToPointDataTask.java | 87 +++++++++++++++++++++++++++++++++++++++++++ 1 files changed, 87 insertions(+), 0 deletions(-) diff --git a/shasteel-biz/src/main/java/com/iailab/module/shasteel/job/task/SaveIndDataToPointDataTask.java b/shasteel-biz/src/main/java/com/iailab/module/shasteel/job/task/SaveIndDataToPointDataTask.java new file mode 100644 index 0000000..ff6db1b --- /dev/null +++ b/shasteel-biz/src/main/java/com/iailab/module/shasteel/job/task/SaveIndDataToPointDataTask.java @@ -0,0 +1,87 @@ +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); + logger.info("当前月天数:" + lengthOfMonth); + chartParamList.forEach(chartParam -> { + logger.info("指标编码:" + chartParam.getParamCode()); + List<ApiIndItemValueDTO> indItemlist = indItemApi.queryIndItemDefaultValue(chartParam.getParamCode()); + logger.info("查询到的指标值:" + indItemlist); + if (indItemlist != null && indItemlist.size() > 0) { + try { + ApiPointValueWriteDTO apiPointValueWriteDTO = new ApiPointValueWriteDTO(); + apiPointValueWriteDTO.setPointNo(chartParam.getParamValue()); + BigDecimal indValue = BigDecimal.valueOf((Double) indItemlist.get(0).getDataValue()); + logger.info("指标值:" + indValue); + BigDecimal pointValue = indValue.divide(new BigDecimal(lengthOfMonth), 3, RoundingMode.HALF_UP); + logger.info("测点值:" + pointValue); + apiPointValueWriteDTO.setValue(pointValue); + logger.info("写入测点值:" + apiPointValueWriteDTO); + dataPointApi.writePointRealValue(apiPointValueWriteDTO); + }catch (Exception ex){ + logger.error("SaveIndDataToPointDataTask运行异常" + ex); + ex.printStackTrace(); + } + } + }); + + logger.info(params + "调度方案执行完成"); + } catch (Exception ex) { + logger.error("SaveIndDataToPointDataTask运行异常"); + ex.printStackTrace(); + } + logger.info("SaveIndDataToPointDataTask运行完成"); + } +} -- Gitblit v1.9.3