鞍钢鲅鱼圈能源管控系统后端代码
潘志宝
2025-06-16 bd2242251b6b4fea854dd16b97d637c4118f1c23
Merge remote-tracking branch 'origin/master'
已删除1个文件
已修改3个文件
已添加7个文件
360 ■■■■ 文件已修改
ansteel-biz/db/mysql.sql 25 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ansteel-biz/src/main/java/com/iailab/module/ansteel/api/controller/admin/PlantConfController.java 37 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ansteel-biz/src/main/java/com/iailab/module/ansteel/api/controller/admin/PlantController.java 51 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ansteel-biz/src/main/java/com/iailab/module/ansteel/plant/dao/PlantIndexConfDao.java 14 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ansteel-biz/src/main/java/com/iailab/module/ansteel/plant/entity/PlantIndexConfEntity.java 48 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ansteel-biz/src/main/java/com/iailab/module/ansteel/plant/service/PlantConfService.java 4 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ansteel-biz/src/main/java/com/iailab/module/ansteel/plant/service/PlantIndexConfService.java 18 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ansteel-biz/src/main/java/com/iailab/module/ansteel/plant/service/impl/PlantConfServiceImpl.java 28 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ansteel-biz/src/main/java/com/iailab/module/ansteel/plant/service/impl/PlantIndexConfServiceImpl.java 69 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ansteel-biz/src/main/java/com/iailab/module/ansteel/plant/vo/PlantDataVO.java 28 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ansteel-biz/src/main/java/com/iailab/module/ansteel/plant/vo/PlantIndexDataVO.java 38 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ansteel-biz/db/mysql.sql
@@ -949,6 +949,7 @@
-- ----------------------------
-- 135机组数据配置表
-- ----------------------------
DROP TABLE IF EXISTS `t_plant_conf`;
CREATE TABLE `t_plant_conf`
(
    `id`            varchar(36) NOT NULL COMMENT 'id',
@@ -969,4 +970,26 @@
    `sort`          int NULL DEFAULT NULL COMMENT '排序',
    PRIMARY KEY (`id`),
    KEY             `idx_business_type` (`business_type`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_0900_ai_ci COMMENT='135机组数据配置表';
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_0900_ai_ci COMMENT='135机组数据配置表';
-- ----------------------------
-- xiz135机组指标数据配置表
-- ----------------------------
DROP TABLE IF EXISTS `t_plant_index_conf`;
CREATE TABLE `t_plant_index_conf` (
                                      `id` varchar(36) NOT NULL COMMENT 'id',
                                      `business_type` varchar(20) DEFAULT NULL COMMENT '业务类别',
                                      `business_desc` varchar(20) DEFAULT NULL COMMENT '业务描述',
                                      `ind_code` varchar(20) DEFAULT NULL COMMENT '指标编码',
                                      `ind_name` varchar(20) DEFAULT NULL COMMENT '指标名称',
                                      `ind_unit` varchar(20) DEFAULT NULL COMMENT '指标单位',
                                      `ind_avg` varchar(20)  DEFAULT NULL COMMENT '历史平均',
                                      `ind_theory` varchar(20) DEFAULT NULL COMMENT '理论值',
                                      `ind_optimal` varchar(20) DEFAULT NULL COMMENT '最优值',
                                      `ind_real` varchar(20) DEFAULT NULL COMMENT '实时值',
                                      `ind_deviation_value` varchar(20) DEFAULT NULL COMMENT '偏差值',
                                      `ind_deviation_rate` varchar(20) DEFAULT NULL COMMENT '偏差率',
                                      `ind_previous` varchar(20) DEFAULT NULL COMMENT '上班数据',
                                      `sort` int DEFAULT NULL COMMENT '排序',
                                      PRIMARY KEY (`id`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_general_ci COMMENT='135机组指标数据配置表';
ansteel-biz/src/main/java/com/iailab/module/ansteel/api/controller/admin/PlantConfController.java
文件已删除
ansteel-biz/src/main/java/com/iailab/module/ansteel/api/controller/admin/PlantController.java
对比新文件
@@ -0,0 +1,51 @@
package com.iailab.module.ansteel.api.controller.admin;
import com.iailab.framework.common.pojo.CommonResult;
import com.iailab.module.ansteel.plant.service.PlantConfService;
import com.iailab.module.ansteel.plant.service.PlantIndexConfService;
import com.iailab.module.ansteel.plant.vo.PlantDataVO;
import com.iailab.module.ansteel.plant.vo.PlantIndexDataVO;
import io.swagger.v3.oas.annotations.Operation;
import lombok.extern.slf4j.Slf4j;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RequestParam;
import org.springframework.web.bind.annotation.RestController;
import java.math.BigDecimal;
import java.util.List;
import java.util.Map;
import static com.iailab.framework.common.pojo.CommonResult.success;
/**
 * @author PanZhibao
 * @Description
 * @createTime 2025年06月16日
 */
@Slf4j
@RestController
@RequestMapping("/ansteel/api/plant")
public class PlantController {
    @Autowired
     private PlantConfService plantConfService;
    @Autowired
     private PlantIndexConfService plantIndexConfService;
    @GetMapping("/data")
    @Operation(summary = "135机组数据")
    public CommonResult<List<PlantDataVO>> getPlantData(@RequestParam("businessType") String businessType) {
        List<PlantDataVO> result = plantConfService.getPlantData(businessType);
        return success(result);
    }
    @GetMapping("/ind-data")
    @Operation(summary = "135机组指标数据")
    public CommonResult<List<PlantIndexDataVO>> getPlantIndexData(@RequestParam("businessType") String businessType) {
        List<PlantIndexDataVO> result = plantIndexConfService.getPlantIndexData(businessType);
        return success(result);
    }
}
ansteel-biz/src/main/java/com/iailab/module/ansteel/plant/dao/PlantIndexConfDao.java
对比新文件
@@ -0,0 +1,14 @@
package com.iailab.module.ansteel.plant.dao;
import com.iailab.framework.common.dao.BaseDao;
import com.iailab.module.ansteel.plant.entity.PlantIndexConfEntity;
import org.apache.ibatis.annotations.Mapper;
/**
 * @description:
 * @author: dzd
 * @date: 2025/6/16 13:59
 **/
@Mapper
public interface PlantIndexConfDao extends BaseDao<PlantIndexConfEntity> {
}
ansteel-biz/src/main/java/com/iailab/module/ansteel/plant/entity/PlantIndexConfEntity.java
对比新文件
@@ -0,0 +1,48 @@
package com.iailab.module.ansteel.plant.entity;
import com.baomidou.mybatisplus.annotation.TableId;
import com.baomidou.mybatisplus.annotation.TableName;
import lombok.Data;
import java.io.Serializable;
/**
 * @description:
 * @author: dzd
 * @date: 2025/6/16 13:59
 **/
@Data
@TableName("t_plant_index_conf")
public class PlantIndexConfEntity implements Serializable {
    private static final long serialVersionUID = 1L;
    /**
     * id
     */
    @TableId
    private String id;
    private String businessType;
    private String indCode;
    private String indName;
    private String indUnit;
    private String indAvg;
    private String indTheory;
    private String indOptimal;
    private String indReal;
    private String indDeviationValue;
    private String indDeviationRate;
    private String indPrevious;
    private Integer sort;
}
ansteel-biz/src/main/java/com/iailab/module/ansteel/plant/service/PlantConfService.java
@@ -1,8 +1,8 @@
package com.iailab.module.ansteel.plant.service;
import com.iailab.module.ansteel.plant.entity.PlantConfEntity;
import com.iailab.module.ansteel.plant.vo.PlantDataVO;
import java.math.BigDecimal;
import java.util.List;
import java.util.Map;
@@ -15,5 +15,5 @@
    List<PlantConfEntity> list(Map<String, Object> params);
    Map<String, BigDecimal> getPlantData(String businessType);
    List<PlantDataVO> getPlantData(String businessType);
}
ansteel-biz/src/main/java/com/iailab/module/ansteel/plant/service/PlantIndexConfService.java
对比新文件
@@ -0,0 +1,18 @@
package com.iailab.module.ansteel.plant.service;
import com.iailab.module.ansteel.plant.entity.PlantConfEntity;
import com.iailab.module.ansteel.plant.vo.PlantIndexDataVO;
import java.math.BigDecimal;
import java.util.List;
import java.util.Map;
/**
 * @description:
 * @author: dzd
 * @date: 2025/6/16 13:56
 **/
public interface PlantIndexConfService {
    List<PlantIndexDataVO> getPlantIndexData(String businessType);
}
ansteel-biz/src/main/java/com/iailab/module/ansteel/plant/service/impl/PlantConfServiceImpl.java
@@ -5,6 +5,7 @@
import com.iailab.module.ansteel.plant.dao.PlantConfDao;
import com.iailab.module.ansteel.plant.entity.PlantConfEntity;
import com.iailab.module.ansteel.plant.service.PlantConfService;
import com.iailab.module.ansteel.plant.vo.PlantDataVO;
import com.iailab.module.data.api.arc.ArcDataApi;
import com.iailab.module.data.api.arc.dto.ApiArcDataDTO;
import com.iailab.module.data.api.ind.IndItemApi;
@@ -17,6 +18,7 @@
import javax.annotation.Resource;
import java.math.BigDecimal;
import java.util.ArrayList;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
@@ -40,7 +42,7 @@
    @Resource
    private ArcDataApi arcDataApi;
    private BigDecimal badValue = new BigDecimal(-2);
    private final BigDecimal badValue = new BigDecimal(-2);
    @Override
    public List<PlantConfEntity> list(Map<String, Object> params) {
@@ -52,7 +54,7 @@
    }
    @Override
    public Map<String, BigDecimal> getPlantData(String businessType) {
    public List<PlantDataVO> getPlantData(String businessType) {
        QueryWrapper<PlantConfEntity> queryWrapper = new QueryWrapper<>();
        queryWrapper.eq("business_type",businessType);
        List<PlantConfEntity> plantConfList = plantConfDao.selectList(queryWrapper);
@@ -62,38 +64,44 @@
        if (!CollectionUtils.isEmpty(pointNos)) {
            pointValues = dataPointApi.queryPointsRealValue(pointNos);
        }
        Map<String, BigDecimal> result = new HashMap<>(plantConfList.size());
        List<PlantDataVO> result = new ArrayList<>(plantConfList.size());
        for (PlantConfEntity plantConf : plantConfList) {
            String dataNo = plantConf.getDataNo();
            String dataType = plantConf.getDataType();
            PlantDataVO plantData = new PlantDataVO();
            plantData.setCode(plantConf.getIndCode());
            plantData.setName(plantConf.getIndName());
            plantData.setUnit(plantConf.getIndUnit());
            plantData.setSort(plantConf.getSort());
            switch (ProcessConfDataTypeEnum.getEumByCode(dataType)) {
                case DATAPOINT:
                    if (pointValues.containsKey(dataNo)) {
                        result.put(dataNo,new BigDecimal(pointValues.get(dataNo).toString()));
                        plantData.setValue(new BigDecimal(pointValues.get(dataNo).toString()));
                    }else {
                        result.put(dataNo,badValue);
                        plantData.setValue(badValue);
                    }
                    break;
                case IND:
                    List<ApiIndItemValueDTO> indValues = indItemApi.queryIndItemDefaultValue(dataNo);
                    if (!CollectionUtils.isEmpty(indValues)) {
                        result.put(dataNo,new BigDecimal(indValues.get(0).getDataValue().toString()));
                        plantData.setValue(new BigDecimal(indValues.get(0).getDataValue().toString()));
                    }else {
                        result.put(dataNo,badValue);
                        plantData.setValue(badValue);
                    }
                    break;
                case ARC:
                    ApiArcDataDTO apiArcDataDTO = arcDataApi.queryArcLastValue(dataNo);
                    if (apiArcDataDTO != null) {
                        result.put(dataNo,apiArcDataDTO.getArcValue());
                        plantData.setValue(apiArcDataDTO.getArcValue());
                    }else {
                        result.put(dataNo,badValue);
                        plantData.setValue(badValue);
                    }
                    break;
                default:
                    result.put(dataNo,badValue);
                    plantData.setValue(badValue);
                    break;
            }
            result.add(plantData);
        }
        return result;
    }
ansteel-biz/src/main/java/com/iailab/module/ansteel/plant/service/impl/PlantIndexConfServiceImpl.java
对比新文件
@@ -0,0 +1,69 @@
package com.iailab.module.ansteel.plant.service.impl;
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
import com.iailab.module.ansteel.plant.dao.PlantIndexConfDao;
import com.iailab.module.ansteel.plant.entity.PlantIndexConfEntity;
import com.iailab.module.ansteel.plant.service.PlantIndexConfService;
import com.iailab.module.ansteel.plant.vo.PlantIndexDataVO;
import com.iailab.module.data.api.point.DataPointApi;
import lombok.extern.slf4j.Slf4j;
import org.springframework.stereotype.Service;
import org.springframework.util.CollectionUtils;
import javax.annotation.Resource;
import java.math.BigDecimal;
import java.util.ArrayList;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
import java.util.stream.Collectors;
import java.util.stream.Stream;
/**
 * @description:
 * @author: dzd
 * @date: 2025/6/16 13:57
 **/
@Slf4j
@Service
public class PlantIndexConfServiceImpl implements PlantIndexConfService {
    @Resource
    private PlantIndexConfDao plantIndexConfDao;
    @Resource
    private DataPointApi dataPointApi;
    private final BigDecimal badValue = new BigDecimal(-2);
    @Override
    public List<PlantIndexDataVO> getPlantIndexData(String businessType) {
        QueryWrapper<PlantIndexConfEntity> queryWrapper = new QueryWrapper<>();
        queryWrapper.eq("business_type",businessType);
        List<PlantIndexConfEntity> PlantIndexConfList = plantIndexConfDao.selectList(queryWrapper);
        // 筛选DATAPOINT一次性查询出全部
        List<String> pointNos = PlantIndexConfList.stream().flatMap(e -> Stream.of(e.getIndAvg(),e.getIndTheory(),e.getIndOptimal(),e.getIndReal(),e.getIndDeviationValue(),e.getIndDeviationRate(),e.getIndPrevious())).collect(Collectors.toList());
        Map<String, Object> pointValues = new HashMap<>();
        if (!CollectionUtils.isEmpty(pointNos)) {
            pointValues = dataPointApi.queryPointsRealValue(pointNos);
        }
        List<PlantIndexDataVO> result = new ArrayList<>(PlantIndexConfList.size());
        for (PlantIndexConfEntity PlantIndexConf : PlantIndexConfList) {
            PlantIndexDataVO plantData = new PlantIndexDataVO();
            plantData.setCode(PlantIndexConf.getIndCode());
            plantData.setName(PlantIndexConf.getIndName());
            plantData.setUnit(PlantIndexConf.getIndUnit());
            plantData.setSort(PlantIndexConf.getSort());
            plantData.setIndAvg(pointValues.containsKey(PlantIndexConf.getIndAvg()) ? new BigDecimal(pointValues.get(PlantIndexConf.getIndAvg()).toString()) : badValue);
            plantData.setIndTheory(pointValues.containsKey(PlantIndexConf.getIndTheory()) ? new BigDecimal(pointValues.get(PlantIndexConf.getIndTheory()).toString()) : badValue);
            plantData.setIndOptimal(pointValues.containsKey(PlantIndexConf.getIndOptimal()) ? new BigDecimal(pointValues.get(PlantIndexConf.getIndOptimal()).toString()) : badValue);
            plantData.setIndReal(pointValues.containsKey(PlantIndexConf.getIndReal()) ? new BigDecimal(pointValues.get(PlantIndexConf.getIndReal()).toString()) : badValue);
            plantData.setIndDeviationValue(pointValues.containsKey(PlantIndexConf.getIndDeviationValue()) ? new BigDecimal(pointValues.get(PlantIndexConf.getIndDeviationValue()).toString()) : badValue);
            plantData.setIndDeviationRate(pointValues.containsKey(PlantIndexConf.getIndDeviationRate()) ? new BigDecimal(pointValues.get(PlantIndexConf.getIndDeviationRate()).toString()) : badValue);
            plantData.setIndPrevious(pointValues.containsKey(PlantIndexConf.getIndPrevious()) ? new BigDecimal(pointValues.get(PlantIndexConf.getIndPrevious()).toString()) : badValue);
            result.add(plantData);
        }
        return result;
    }
}
ansteel-biz/src/main/java/com/iailab/module/ansteel/plant/vo/PlantDataVO.java
对比新文件
@@ -0,0 +1,28 @@
package com.iailab.module.ansteel.plant.vo;
import com.baomidou.mybatisplus.annotation.TableId;
import com.baomidou.mybatisplus.annotation.TableName;
import lombok.Data;
import java.io.Serializable;
import java.math.BigDecimal;
/**
 * @description:
 * @author: dzd
 * @date: 2025/6/16 13:59
 **/
@Data
public class PlantDataVO implements Serializable {
    private static final long serialVersionUID = 1L;
    private String code;
    private String name;
    private String unit;
    private BigDecimal value;
    private Integer sort;
}
ansteel-biz/src/main/java/com/iailab/module/ansteel/plant/vo/PlantIndexDataVO.java
对比新文件
@@ -0,0 +1,38 @@
package com.iailab.module.ansteel.plant.vo;
import lombok.Data;
import java.io.Serializable;
import java.math.BigDecimal;
/**
 * @description:
 * @author: dzd
 * @date: 2025/6/16 13:59
 **/
@Data
public class PlantIndexDataVO implements Serializable {
    private static final long serialVersionUID = 1L;
    private String code;
    private String name;
    private String unit;
    private BigDecimal indAvg;
    private BigDecimal indTheory;
    private BigDecimal indOptimal;
    private BigDecimal indReal;
    private BigDecimal indDeviationValue;
    private BigDecimal indDeviationRate;
    private BigDecimal indPrevious;
    private Integer sort;
}