From aab3c2ab903c939298294b27ade5281f4787e194 Mon Sep 17 00:00:00 2001 From: Jay <csj123456> Date: 星期二, 15 四月 2025 19:05:59 +0800 Subject: [PATCH] Merge remote-tracking branch 'origin/master' --- shasteel-biz/src/main/java/com/iailab/module/shasteel/job/task/RunMachineStateTask.java | 134 ++++++++++++++++++++++++++++++++++++++++++++ 1 files changed, 134 insertions(+), 0 deletions(-) diff --git a/shasteel-biz/src/main/java/com/iailab/module/shasteel/job/task/RunMachineStateTask.java b/shasteel-biz/src/main/java/com/iailab/module/shasteel/job/task/RunMachineStateTask.java new file mode 100644 index 0000000..2306258 --- /dev/null +++ b/shasteel-biz/src/main/java/com/iailab/module/shasteel/job/task/RunMachineStateTask.java @@ -0,0 +1,134 @@ +package com.iailab.module.shasteel.job.task; + +import com.iailab.module.data.api.point.DataPointApi; +import com.iailab.module.data.api.point.dto.ApiPointValueWriteDTO; +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.util.Arrays; +import java.util.HashMap; +import java.util.List; +import java.util.Map; +import java.util.stream.Collectors; + +/** + * @description: 发电厂机组运行情况 + * @author: lirm + * @date: 2025/4/14 + **/ +@Component("runMachineStateTask") +public class RunMachineStateTask implements ITask { + private Logger logger = LoggerFactory.getLogger(getClass()); + @Autowired + private DataPointApi dataPointApi; + + private static final HashMap<String, List<String>> partPoints = new HashMap<String, List<String>>() {{ + put("F0000101185", Arrays.asList("F0000100098", "F0000100099", "F0000100100", "F0000100101")); + put("F0000101186", Arrays.asList("F0000100109", "F0000100110", "F0000100111", "F0000100112")); + put("F0000101187", Arrays.asList("M0000100009", "M0000100023", "M0000100026", "M0000100029")); + put("F0000101189", Arrays.asList("M0000100010", "M0000100024", "M0000100027", "M0000100030")); + put("F0000101190", Arrays.asList("C0000101199", "C0000101200", "C0000101201", "C0000101202")); + put("F0000101191", Arrays.asList("M0000100854", "M0000100855", "M0000100856", "M0000100857")); + put("F0000101192", Arrays.asList("C0000101242", "C0000101243", "C0000101244", "C0000101245")); + put("F0000101193", Arrays.asList("C0000101223", "C0000101224", "C0000101225", "C0000101226")); + put("F0000101194", Arrays.asList("C0000101210", "C0000101211", "C0000101212", "C0000101213")); + put("F0000101195", Arrays.asList("C0000101214", "C0000101215", "C0000101216", "C0000101217")); + + put("F0000101196", Arrays.asList("F0000100105", "F0000100106", "F0000100107", "F0000100108")); + put("F0000101197", Arrays.asList("F0000100116", "F0000100117", "F0000100118", "F0000100119")); + put("F0000101198", Arrays.asList("M0000100032", "M0000100035", "M0000100038", "M0000100041")); + put("F0000101201", Arrays.asList("C0000101203", "C0000101204", "C0000101205", "C0000101206")); + put("F0000101204", Arrays.asList("C0000101227", "C0000101228", "C0000101229", "C0000101230")); + + put("F0000101207", Arrays.asList("F0000100102", "F0000100103")); + put("F0000101208", Arrays.asList("F0000100113", "F0000100114")); + put("F0000101209", Arrays.asList("C0000101114", "C0000101115")); + put("F0000101210", Arrays.asList("C0000101116", "C0000101117")); + put("F0000101211", Arrays.asList("M0000101043", "M0000101039")); + put("F0000101212", Arrays.asList("C0000101207", "C0000101208")); + put("F0000101213", Arrays.asList("C0000101116", "C0000101117")); + put("F0000101214", Arrays.asList("C0000101240", "C0000101241")); + put("F0000101215", Arrays.asList("C0000101231", "C0000101232")); + put("F0000101216", Arrays.asList("C0000101221", "C0000101222")); + put("F0000101217", Arrays.asList("C0000101218", "C0000101219")); + }}; + + private static final HashMap<String, List<String>> sumPoints = new HashMap<String, List<String>>() {{ + put("F0000101218", Arrays.asList("F0000101185", "F0000101196", "F0000101207", "F0000100104")); + put("F0000101219", Arrays.asList("F0000101186", "F0000101197", "F0000101208", "F0000100115")); + put("F0000101220", Arrays.asList("F0000101187", "F0000101198", "F0000101209", "M0000100013")); + put("F0000101221", Arrays.asList("F0000101188", "F0000101199", "F0000101210")); + put("F0000101222", Arrays.asList("F0000101189", "F0000101200", "F0000101211", "M0000100014")); + put("F0000101223", Arrays.asList("F0000101190", "F0000101201", "F0000101212", "C0000101209")); + put("F0000101224", Arrays.asList("F0000101191", "F0000101202", "F0000101213", "M0000101003")); + put("F0000101225", Arrays.asList("F0000101192", "F0000101203", "F0000101214", "C0000101239")); + put("F0000101226", Arrays.asList("F0000101193", "F0000101204", "F0000101215", "C0000101233")); + put("F0000101227", Arrays.asList("F0000101194", "F0000101205", "F0000101216")); + put("F0000101228", Arrays.asList("F0000101195", "F0000101206", "F0000101217", "C0000101220")); + }}; + + @Override + public void run(String params) { + logger.info("RunMachineStateTask定时任务正在执行,参数为:{}", params); + try { + List<String> partPointNos = partPoints.values().stream().flatMap(List::stream).collect(Collectors.toList()); + Map<String, Object> partPointsRealValue = dataPointApi.queryPointsRealValue(partPointNos); + for (Map.Entry<String, List<String>> entry : partPoints.entrySet()) { + ApiPointValueWriteDTO writeDTO = new ApiPointValueWriteDTO(); + double dataValue = 0d; + int count = 0; + for (String pointNo : entry.getValue()) { + Double value = Double.valueOf(String.format("%.2f", Double.valueOf(partPointsRealValue.get(pointNo).toString()))); + if (value > 0) { + dataValue += value; + count++; + } + } + if ("F0000101185".equals(entry.getKey()) || "F0000101186".equals(entry.getKey()) + || "F0000101196".equals(entry.getKey()) || "F0000101197".equals(entry.getKey()) + || "F0000101207".equals(entry.getKey()) || "F0000101208".equals(entry.getKey())) { + writeDTO.setPointNo(entry.getKey()); + BigDecimal value = count == 0 ? BigDecimal.ZERO : new BigDecimal(dataValue).divide(new BigDecimal(count), 2, BigDecimal.ROUND_HALF_UP); + writeDTO.setValue(value); + }else { + writeDTO.setPointNo(entry.getKey()); + writeDTO.setValue(dataValue); + } + logger.info("写入常量点="+writeDTO.getPointNo()+",值="+writeDTO.getValue()); + dataPointApi.writePointRealValue(writeDTO); + } + Thread.sleep(5000); + List<String> sumPointNos = sumPoints.values().stream().flatMap(List::stream).collect(Collectors.toList());//合计 + Map<String, Object> totalPointsRealValue = dataPointApi.queryPointsRealValue(sumPointNos); + for (Map.Entry<String, List<String>> entry : sumPoints.entrySet()) { + ApiPointValueWriteDTO writeDTO = new ApiPointValueWriteDTO(); + double dataValue = 0d; + int count = 0; + for (String pointNo : entry.getValue()) { + Double value = Double.valueOf(String.format("%.2f", Double.valueOf(totalPointsRealValue.get(pointNo).toString()))); + if (value > 0) { + dataValue += value; + count++; + } + } + if ("F0000101218".equals(entry.getKey()) || "F0000101219".equals(entry.getKey())) { + writeDTO.setPointNo(entry.getKey()); + BigDecimal value = count == 0 ? BigDecimal.ZERO : new BigDecimal(dataValue).divide(new BigDecimal(count), 2, BigDecimal.ROUND_HALF_UP); + writeDTO.setValue(value); + }else { + writeDTO.setPointNo(entry.getKey()); + writeDTO.setValue(dataValue); + } + logger.info("写入常量点="+writeDTO.getPointNo()+",值="+writeDTO.getValue()); + dataPointApi.writePointRealValue(writeDTO); + } + + } catch (Exception ex) { + logger.error("RunMachineStateTask运行异常", ex); + } + logger.info("RunMachineStateTask运行完成"); + } +} -- Gitblit v1.9.3