沙钢智慧能源系统后端代码
liriming
2025-04-29 4c2934bfa4825dbdd2c976669d64ae5c59d46056
shasteel-biz/src/main/java/com/iailab/module/shasteel/job/task/RunMachineStateTask.java
@@ -33,15 +33,15 @@
        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("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("F0000101204", Arrays.asList("C0000101227", "C0000101228", "C0000101229", "C0000101230"));//
        put("F0000101207", Arrays.asList("F0000100102", "F0000100103"));
        put("F0000101208", Arrays.asList("F0000100113", "F0000100114"));
@@ -51,9 +51,13 @@
        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"));
        put("F0000101215", Arrays.asList("C0000101231", "C0000101232"));//
        put("F0000101216", Arrays.asList("C0000101221", "C0000101222"));//
        put("F0000101217", Arrays.asList("C0000101218", "C0000101219"));//
        put("F0000100104", Arrays.asList("F0000100104"));//
        put("C0000101233", Arrays.asList("C0000101233"));//
        put("C0000101220", Arrays.asList("C0000101220"));//
    }};
    private static final HashMap<String, List<String>> sumPoints = new HashMap<String, List<String>>() {{
@@ -70,10 +74,94 @@
        put("F0000101228", Arrays.asList("F0000101195", "F0000101206", "F0000101217", "C0000101220"));
    }};
    private static final HashMap<String, List<String>> qhPoints = new HashMap<String, List<String>>() {{
        put("1", Arrays.asList("F0000100098", "F0000100099", "F0000100100", "F0000100101","F0000100105", "F0000100106", "F0000100107", "F0000100108","F0000100102", "F0000100103"));
    }};
    private boolean qhFlag1 = false;
    private boolean qhFlag2 = false;
    private boolean qhFlag135 = false;
    private boolean qhFlag180 = false;
    private boolean qhFlagTotal = false;
    @Override
    public void run(String params) {
        logger.info("RunMachineStateTask定时任务正在执行,参数为:{}", params);
        try {
            List<String> qhPointNos = qhPoints.values().stream().flatMap(List::stream).collect(Collectors.toList());
            Map<String, Object> qhPointsRealValue = dataPointApi.queryPointsRealValue(qhPointNos);
            for (Map.Entry<String, List<String>> entry : qhPoints.entrySet()) {
                ApiPointValueWriteDTO apiPointValueWriteDTO = new ApiPointValueWriteDTO();
                for (String pointNo : entry.getValue()) {
                    Double value = Double.valueOf(String.format("%.2f", Double.valueOf(qhPointsRealValue.get(pointNo).toString())));
                    if ("F0000100098".equals(pointNo) && value == 0.00) {
                        apiPointValueWriteDTO.setValue(0);
                        apiPointValueWriteDTO.setPointNo("C0000101223");
                        dataPointApi.writePointRealValue(apiPointValueWriteDTO);
                        apiPointValueWriteDTO.setPointNo("C0000101210");
                        dataPointApi.writePointRealValue(apiPointValueWriteDTO);
                        apiPointValueWriteDTO.setPointNo("C0000101214");
                        dataPointApi.writePointRealValue(apiPointValueWriteDTO);
                    }else if ("F0000100099".equals(pointNo) && value == 0.00) {
                        apiPointValueWriteDTO.setValue(0);
                        apiPointValueWriteDTO.setPointNo("C0000101224");
                        dataPointApi.writePointRealValue(apiPointValueWriteDTO);
                        apiPointValueWriteDTO.setPointNo("C0000101211");
                        dataPointApi.writePointRealValue(apiPointValueWriteDTO);
                        apiPointValueWriteDTO.setPointNo("C0000101215");
                        dataPointApi.writePointRealValue(apiPointValueWriteDTO);
                    }else if ("F0000100100".equals(pointNo) && value == 0.00) {
                        apiPointValueWriteDTO.setValue(0);
                        apiPointValueWriteDTO.setPointNo("C0000101225");
                        dataPointApi.writePointRealValue(apiPointValueWriteDTO);
                        apiPointValueWriteDTO.setPointNo("C0000101212");
                        dataPointApi.writePointRealValue(apiPointValueWriteDTO);
                        apiPointValueWriteDTO.setPointNo("C0000101216");
                        dataPointApi.writePointRealValue(apiPointValueWriteDTO);
                    }else if ("F0000100101".equals(pointNo) && value == 0.00) {
                        apiPointValueWriteDTO.setValue(0);
                        apiPointValueWriteDTO.setPointNo("C0000101226");
                        dataPointApi.writePointRealValue(apiPointValueWriteDTO);
                        apiPointValueWriteDTO.setPointNo("C0000101213");
                        dataPointApi.writePointRealValue(apiPointValueWriteDTO);
                        apiPointValueWriteDTO.setPointNo("C0000101217");
                        dataPointApi.writePointRealValue(apiPointValueWriteDTO);
                    }else if ("F0000100105".equals(pointNo) && value == 0.00) {
                        apiPointValueWriteDTO.setValue(0);
                        apiPointValueWriteDTO.setPointNo("C0000101227");
                        dataPointApi.writePointRealValue(apiPointValueWriteDTO);
                    }else if ("F0000100106".equals(pointNo) && value == 0.00) {
                        apiPointValueWriteDTO.setValue(0);
                        apiPointValueWriteDTO.setPointNo("C0000101228");
                        dataPointApi.writePointRealValue(apiPointValueWriteDTO);
                    }else if ("F0000100107".equals(pointNo) && value == 0.00) {
                        apiPointValueWriteDTO.setValue(0);
                        apiPointValueWriteDTO.setPointNo("C0000101229");
                        dataPointApi.writePointRealValue(apiPointValueWriteDTO);
                    }else if ("F0000100108".equals(pointNo) && value == 0.00) {
                        apiPointValueWriteDTO.setValue(0);
                        apiPointValueWriteDTO.setPointNo("C0000101230");
                        dataPointApi.writePointRealValue(apiPointValueWriteDTO);
                    }else if ("F0000100102".equals(pointNo) && value == 0.00) {
                        apiPointValueWriteDTO.setValue(0);
                        apiPointValueWriteDTO.setPointNo("C0000101231");
                        dataPointApi.writePointRealValue(apiPointValueWriteDTO);
                        apiPointValueWriteDTO.setPointNo("C0000101221");
                        dataPointApi.writePointRealValue(apiPointValueWriteDTO);
                        apiPointValueWriteDTO.setPointNo("C0000101218");
                        dataPointApi.writePointRealValue(apiPointValueWriteDTO);
                    }else if ("F0000100103".equals(pointNo) && value == 0.00) {
                        apiPointValueWriteDTO.setValue(0);
                        apiPointValueWriteDTO.setPointNo("C0000101232");
                        dataPointApi.writePointRealValue(apiPointValueWriteDTO);
                        apiPointValueWriteDTO.setPointNo("C0000101222");
                        dataPointApi.writePointRealValue(apiPointValueWriteDTO);
                        apiPointValueWriteDTO.setPointNo("C0000101219");
                        dataPointApi.writePointRealValue(apiPointValueWriteDTO);
                    }
                }
            }
            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()) {
@@ -93,12 +181,64 @@
                    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);
                    if ("F0000101185".equals(entry.getKey()) && value.compareTo(BigDecimal.ZERO) == 0) {
                        qhFlag1 = true;
                    }
                    if ("F0000101196".equals(entry.getKey()) && value.compareTo(BigDecimal.ZERO) == 0) {
                        qhFlag2 = true;
                    }
                    if ("F0000101207".equals(entry.getKey()) && value.compareTo(BigDecimal.ZERO) == 0) {
                        qhFlag135 = true;
                    }
                    if ("F0000100104".equals(entry.getKey()) && value.compareTo(BigDecimal.ZERO) == 0) {
                        qhFlag180 = true;
                    }
                }else {
                    writeDTO.setPointNo(entry.getKey());
                    writeDTO.setValue(dataValue);
                }
                logger.info("写入常量点="+writeDTO.getPointNo()+",值="+writeDTO.getValue());
                dataPointApi.writePointRealValue(writeDTO);
            }
            ApiPointValueWriteDTO apiPointValueWriteDTO = new ApiPointValueWriteDTO();
            if(qhFlag1){
                logger.info("一期机组气耗率为0");
                apiPointValueWriteDTO.setValue(0);
                apiPointValueWriteDTO.setPointNo("F0000101193");
                dataPointApi.writePointRealValue(apiPointValueWriteDTO);
                apiPointValueWriteDTO.setPointNo("F0000101194");
                dataPointApi.writePointRealValue(apiPointValueWriteDTO);
                apiPointValueWriteDTO.setPointNo("F0000101195");
                dataPointApi.writePointRealValue(apiPointValueWriteDTO);
            }
            if(qhFlag2){
                logger.info("二期机组气耗率为0");
                apiPointValueWriteDTO.setValue(0);
                apiPointValueWriteDTO.setPointNo("F0000101204");
                dataPointApi.writePointRealValue(apiPointValueWriteDTO);
                apiPointValueWriteDTO.setPointNo("F0000101205");
                dataPointApi.writePointRealValue(apiPointValueWriteDTO);
                apiPointValueWriteDTO.setPointNo("F0000101206");
                dataPointApi.writePointRealValue(apiPointValueWriteDTO);
            }
            if(qhFlag135){
                logger.info("135机组气耗率为0");
                apiPointValueWriteDTO.setValue(0);
                apiPointValueWriteDTO.setPointNo("F0000101215");
                dataPointApi.writePointRealValue(apiPointValueWriteDTO);
                apiPointValueWriteDTO.setPointNo("F0000101216");
                dataPointApi.writePointRealValue(apiPointValueWriteDTO);
                apiPointValueWriteDTO.setPointNo("F0000101217");
                dataPointApi.writePointRealValue(apiPointValueWriteDTO);
            }
            if(qhFlag180){
                logger.info("180机组气耗率为0");
                apiPointValueWriteDTO.setValue(0);
                apiPointValueWriteDTO.setPointNo("C0000101233");
                dataPointApi.writePointRealValue(apiPointValueWriteDTO);
                apiPointValueWriteDTO.setPointNo("C0000101220");
                dataPointApi.writePointRealValue(apiPointValueWriteDTO);
            }
            Thread.sleep(5000);
            List<String> sumPointNos = sumPoints.values().stream().flatMap(List::stream).collect(Collectors.toList());//合计
@@ -118,6 +258,9 @@
                    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);
                    if ("F0000101218".equals(entry.getKey()) && value.compareTo(BigDecimal.ZERO) == 0) {
                        qhFlagTotal = true;
                    }
                }else {
                    writeDTO.setPointNo(entry.getKey());
                    writeDTO.setValue(dataValue);
@@ -126,6 +269,24 @@
                dataPointApi.writePointRealValue(writeDTO);
            }
            if(qhFlagTotal){
                logger.info("合计气耗率为0");
                apiPointValueWriteDTO = new ApiPointValueWriteDTO();
                apiPointValueWriteDTO.setValue(0);
                apiPointValueWriteDTO.setPointNo("F0000101226");
                dataPointApi.writePointRealValue(apiPointValueWriteDTO);
                apiPointValueWriteDTO.setPointNo("F0000101227");
                dataPointApi.writePointRealValue(apiPointValueWriteDTO);
                apiPointValueWriteDTO.setPointNo("F0000101228");
                dataPointApi.writePointRealValue(apiPointValueWriteDTO);
            }
            qhFlag1 = false;
            qhFlag2 = false;
            qhFlag135 = false;
            qhFlag180 = false;
            qhFlagTotal = false;
        } catch (Exception ex) {
            logger.error("RunMachineStateTask运行异常", ex);
        }