潘志宝
2024-09-10 f1162ee7b12a1e4fd45301f4d3fecb3bf155d006
指标分类
已修改3个文件
已删除34个文件
已添加13个文件
2307 ■■■■ 文件已修改
iailab-module-data/iailab-module-data-biz/db/mysql/tenant.sql 107 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
iailab-module-data/iailab-module-data-biz/src/main/java/com/iailab/module/data/api/controller/DataController.java 39 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
iailab-module-data/iailab-module-data-biz/src/main/java/com/iailab/module/data/ind/category/controller/admin/IndItemCategoryController.java 79 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
iailab-module-data/iailab-module-data-biz/src/main/java/com/iailab/module/data/ind/category/controller/package-info.java 1 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
iailab-module-data/iailab-module-data-biz/src/main/java/com/iailab/module/data/ind/category/dao/IndItemCategoryDao.java 26 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
iailab-module-data/iailab-module-data-biz/src/main/java/com/iailab/module/data/ind/category/entity/IndItemCategoryEntity.java 67 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
iailab-module-data/iailab-module-data-biz/src/main/java/com/iailab/module/data/ind/category/package-info.java 1 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
iailab-module-data/iailab-module-data-biz/src/main/java/com/iailab/module/data/ind/category/service/IndItemCategoryService.java 26 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
iailab-module-data/iailab-module-data-biz/src/main/java/com/iailab/module/data/ind/category/service/impl/IndItemCategoryServiceImpl.java 84 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
iailab-module-data/iailab-module-data-biz/src/main/java/com/iailab/module/data/ind/category/vo/IndItemCategoryReqVO.java 18 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
iailab-module-data/iailab-module-data-biz/src/main/java/com/iailab/module/data/ind/category/vo/IndItemCategoryRespVO.java 9 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
iailab-module-data/iailab-module-data-biz/src/main/java/com/iailab/module/data/ind/category/vo/IndItemCategorySaveReqVO.java 34 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
iailab-module-data/iailab-module-data-biz/src/main/java/com/iailab/module/data/ind/collection/IndItemCollector.java 85 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
iailab-module-data/iailab-module-data-biz/src/main/java/com/iailab/module/data/ind/collection/handler/AtomItemHandle.java 91 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
iailab-module-data/iailab-module-data-biz/src/main/java/com/iailab/module/data/ind/collection/handler/CalItemHandle.java 156 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
iailab-module-data/iailab-module-data-biz/src/main/java/com/iailab/module/data/ind/collection/utils/IndSqlUtils.java 89 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
iailab-module-data/iailab-module-data-biz/src/main/java/com/iailab/module/data/ind/common/IndItemTypeEnum.java 37 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
iailab-module-data/iailab-module-data-biz/src/main/java/com/iailab/module/data/ind/common/IndTimeRangeConst.java 28 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
iailab-module-data/iailab-module-data-biz/src/main/java/com/iailab/module/data/ind/common/IndTimeRangeEnum.java 42 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
iailab-module-data/iailab-module-data-biz/src/main/java/com/iailab/module/data/ind/common/IndtimeGranularityEnum.java 37 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
iailab-module-data/iailab-module-data-biz/src/main/java/com/iailab/module/data/ind/controller/admin/IndItemAtomController.java 9 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
iailab-module-data/iailab-module-data-biz/src/main/java/com/iailab/module/data/ind/controller/admin/IndItemCalController.java 9 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
iailab-module-data/iailab-module-data-biz/src/main/java/com/iailab/module/data/ind/controller/admin/IndItemController.java 112 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
iailab-module-data/iailab-module-data-biz/src/main/java/com/iailab/module/data/ind/controller/package-info.java 1 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
iailab-module-data/iailab-module-data-biz/src/main/java/com/iailab/module/data/ind/dao/IndItemAtomDao.java 16 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
iailab-module-data/iailab-module-data-biz/src/main/java/com/iailab/module/data/ind/dao/IndItemCalDao.java 16 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
iailab-module-data/iailab-module-data-biz/src/main/java/com/iailab/module/data/ind/dao/IndItemDao.java 27 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
iailab-module-data/iailab-module-data-biz/src/main/java/com/iailab/module/data/ind/dao/IndItemValueDao.java 25 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
iailab-module-data/iailab-module-data-biz/src/main/java/com/iailab/module/data/ind/data/package-info.java 1 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
iailab-module-data/iailab-module-data-biz/src/main/java/com/iailab/module/data/ind/dto/IndItemAtomDTO.java 26 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
iailab-module-data/iailab-module-data-biz/src/main/java/com/iailab/module/data/ind/dto/IndItemCalDTO.java 23 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
iailab-module-data/iailab-module-data-biz/src/main/java/com/iailab/module/data/ind/dto/IndItemDTO.java 63 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
iailab-module-data/iailab-module-data-biz/src/main/java/com/iailab/module/data/ind/dto/IndItemValueDTO.java 29 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
iailab-module-data/iailab-module-data-biz/src/main/java/com/iailab/module/data/ind/entity/IndItemAtomEntity.java 26 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
iailab-module-data/iailab-module-data-biz/src/main/java/com/iailab/module/data/ind/entity/IndItemCalEntity.java 23 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
iailab-module-data/iailab-module-data-biz/src/main/java/com/iailab/module/data/ind/entity/IndItemEntity.java 96 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
iailab-module-data/iailab-module-data-biz/src/main/java/com/iailab/module/data/ind/entity/IndItemValueEntity.java 29 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
iailab-module-data/iailab-module-data-biz/src/main/java/com/iailab/module/data/ind/item/package-info.java 1 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
iailab-module-data/iailab-module-data-biz/src/main/java/com/iailab/module/data/ind/package-info.java 1 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
iailab-module-data/iailab-module-data-biz/src/main/java/com/iailab/module/data/ind/service/IndItemAtomService.java 36 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
iailab-module-data/iailab-module-data-biz/src/main/java/com/iailab/module/data/ind/service/IndItemCalService.java 31 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
iailab-module-data/iailab-module-data-biz/src/main/java/com/iailab/module/data/ind/service/IndItemService.java 43 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
iailab-module-data/iailab-module-data-biz/src/main/java/com/iailab/module/data/ind/service/IndItemValueService.java 26 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
iailab-module-data/iailab-module-data-biz/src/main/java/com/iailab/module/data/ind/service/impl/IndItemAtomServiceImpl.java 96 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
iailab-module-data/iailab-module-data-biz/src/main/java/com/iailab/module/data/ind/service/impl/IndItemCalServiceImpl.java 98 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
iailab-module-data/iailab-module-data-biz/src/main/java/com/iailab/module/data/ind/service/impl/IndItemServiceImpl.java 208 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
iailab-module-data/iailab-module-data-biz/src/main/java/com/iailab/module/data/ind/service/impl/IndItemValueServiceImpl.java 82 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
iailab-module-data/iailab-module-data-biz/src/main/resources/application.yml 3 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
iailab-module-data/iailab-module-data-biz/src/main/resources/mapper/ind/IndItemDao.xml 74 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
iailab-module-data/iailab-module-data-biz/src/main/resources/mapper/ind/IndItemValueDao.xml 21 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
iailab-module-data/iailab-module-data-biz/db/mysql/tenant.sql
@@ -238,43 +238,85 @@
                            PRIMARY KEY (`id`) USING BTREE
) ENGINE=InnoDB DEFAULT CHARSET=utf8 ROW_FORMAT=DYNAMIC COMMENT='接口Tag表';
CREATE TABLE t_ind_item_atom(
                              `id` VARCHAR(36) NOT NULL  COMMENT 'ID' ,
                              `item_id` VARCHAR(36)   COMMENT '指标ID' ,
                              `data_source` VARCHAR(20)   COMMENT '数据源',
                              `query_sql` VARCHAR(500)   COMMENT '查询语句',
                              PRIMARY KEY (id) USING BTREE,
                              UNIQUE KEY `uk_point_id` (`item_id`) USING BTREE
) ENGINE=InnoDB DEFAULT CHARSET=utf8 ROW_FORMAT=DYNAMIC COMMENT = '原子指标';
-- 指标管理------------
CREATE TABLE t_ind_data_set(
                                    `id` VARCHAR(36) NOT NULL  COMMENT 'ID' ,
                                    `name` VARCHAR(30) NOT NULL   COMMENT '名称' ,
                                    `data_source` VARCHAR(64) NOT NULL   COMMENT '数据源ID',
                                    `query_sql` VARCHAR(200) NOT NULL   COMMENT '查询语句',
                                    `remark` VARCHAR(100)   COMMENT '备注',
                                    `sort` int   COMMENT '排序',
                                    `creator` varchar(64) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci NOT NULL DEFAULT '' COMMENT '创建者',
                                    `create_time` datetime NOT NULL DEFAULT CURRENT_TIMESTAMP COMMENT '创建时间',
                                    `updater` varchar(64) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci NULL DEFAULT '' COMMENT '更新者',
                                    `update_time` datetime NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP COMMENT '更新时间',
                                    PRIMARY KEY (id) USING BTREE
) ENGINE=InnoDB DEFAULT CHARSET=utf8 ROW_FORMAT=DYNAMIC COMMENT = '指标数据集';
CREATE TABLE t_ind_data_set_field(
                               `id` VARCHAR(36) NOT NULL  COMMENT 'ID' ,
                               `data_set_id` VARCHAR(36) NOT NULL  COMMENT '数据集ID' ,
                               `field_code` VARCHAR(30)   COMMENT '英文名' ,
                               `field_name` VARCHAR(30)   COMMENT '中文名' ,
                               `field_type` VARCHAR(30)   COMMENT '数据类型' ,
                               `sort` int   COMMENT '排序',
                               PRIMARY KEY (id) USING BTREE
) ENGINE=InnoDB DEFAULT CHARSET=utf8 ROW_FORMAT=DYNAMIC COMMENT = '指标数据集字段';
CREATE TABLE t_ind_item_category(
                                `id` VARCHAR(36) NOT NULL  COMMENT 'ID' ,
                                `label` VARCHAR(20)   COMMENT '标签' ,
                                `pid` VARCHAR(36)   COMMENT '父ID',
                                `sort` int   COMMENT '排序',
                                `creator` varchar(64) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci NOT NULL DEFAULT '' COMMENT '创建者',
                                `create_time` datetime NOT NULL DEFAULT CURRENT_TIMESTAMP COMMENT '创建时间',
                                `updater` varchar(64) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci NULL DEFAULT '' COMMENT '更新者',
                                `update_time` datetime NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP COMMENT '更新时间',
                                PRIMARY KEY (id) USING BTREE
) ENGINE=InnoDB DEFAULT CHARSET=utf8 ROW_FORMAT=DYNAMIC COMMENT = '指标分类';
CREATE TABLE t_ind_item(
                         `id` VARCHAR(36) NOT NULL  COMMENT 'ID' ,
                         `item_no` VARCHAR(36)   COMMENT '指标编码' ,
                         `item_name` VARCHAR(36)   COMMENT '指标名称' ,
                         `item_type` VARCHAR(10)   COMMENT '指标类型' ,
                         `coefficient` decimal(10, 4) COMMENT '系数',
                         `precision` int COMMENT '指标精度',
                         `business_type` VARCHAR(10)   COMMENT '业务类型',
                         `time_range` VARCHAR(20)   COMMENT '时间范围' ,
                         `time_granularity` VARCHAR(10)   COMMENT '时间粒度' ,
                         `remark` VARCHAR(255)   COMMENT '备注' ,
                         `is_enable` tinyint(1)   COMMENT '是否启用' ,
                         `creator` VARCHAR(36)   COMMENT '创建人' ,
                         `create_time` DATETIME   COMMENT '创建时间' ,
                         `updater` VARCHAR(36)   COMMENT '修改人' ,
                         `update_time` DATETIME   COMMENT '修改时间' ,
                         PRIMARY KEY (id) USING BTREE,
                         UNIQUE KEY `uk_item_no` (`item_no`) USING BTREE
                           `id` VARCHAR(36) NOT NULL  COMMENT 'ID' ,
                           `item_no` VARCHAR(36)   COMMENT '指标编码' ,
                           `item_name` VARCHAR(36)   COMMENT '指标名称' ,
                           `item_type` VARCHAR(20)   COMMENT '指标类型' ,
                           `item_category` VARCHAR(20)   COMMENT '指标分类' ,
                           `coefficient` decimal(10, 4) COMMENT '系数',
                           `precision` int COMMENT '指标精度',
                           `time_granularity` VARCHAR(10)   COMMENT '时间粒度' ,
                           `remark` VARCHAR(255)   COMMENT '备注' ,
                           `status` tinyint NOT NULL DEFAULT 0 COMMENT '状态(0正常 1停用)',
                           `creator` varchar(64) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci NOT NULL DEFAULT '' COMMENT '创建者',
                           `create_time` datetime NOT NULL DEFAULT CURRENT_TIMESTAMP COMMENT '创建时间',
                           `updater` varchar(64) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci NULL DEFAULT '' COMMENT '更新者',
                           `update_time` datetime NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP COMMENT '更新时间',
                           PRIMARY KEY (id) USING BTREE,
                           UNIQUE KEY `uk_item_no` (`item_no`) USING BTREE
) ENGINE=InnoDB DEFAULT CHARSET=utf8 ROW_FORMAT=DYNAMIC COMMENT = '指标项表';
CREATE TABLE t_ind_item_atom(
                              `id` VARCHAR(36) NOT NULL  COMMENT 'ID' ,
                              `item_id` VARCHAR(36)   COMMENT '指标ID' ,
                              `data_source` VARCHAR(20)   COMMENT '数据源',
                              `query_sql` VARCHAR(500)   COMMENT '查询语句',
                              `data_source` VARCHAR(64)   COMMENT '数据源',
                              `data_set` VARCHAR(64)   COMMENT '数据集',
                              `using_field` VARCHAR(64)   COMMENT '使用字段',
                              `stat_func` VARCHAR(64)   COMMENT '统计方式',
                              PRIMARY KEY (id) USING BTREE,
                              UNIQUE KEY `uk_point_id` (`item_id`) USING BTREE
                              UNIQUE KEY `uk_item_id` (`item_id`) USING BTREE
) ENGINE=InnoDB DEFAULT CHARSET=utf8 ROW_FORMAT=DYNAMIC COMMENT = '原子指标';
CREATE TABLE t_ind_item_der(
                                `id` VARCHAR(36) NOT NULL  COMMENT 'ID' ,
                                `item_id` VARCHAR(36)   COMMENT '指标ID' ,
                                `atom_item_id` VARCHAR(36)   COMMENT '原子指标ID' ,
                                `time_label` VARCHAR(20)   COMMENT '时间标识',
                                `time_limit` VARCHAR(20)   COMMENT '时间限定',
                                `time_start` DATETIME   COMMENT '开始时间',
                                `time_end` DATETIME   COMMENT '结束时间',
                                `dimension` VARCHAR(200)   COMMENT '分析维度',
                                PRIMARY KEY (id) USING BTREE,
                                UNIQUE KEY `uk_item_id` (`item_id`) USING BTREE
) ENGINE=InnoDB DEFAULT CHARSET=utf8 ROW_FORMAT=DYNAMIC COMMENT = '派生指标';
CREATE TABLE t_ind_item_cal(
                             `id` VARCHAR(36) NOT NULL  COMMENT 'ID' ,
@@ -283,15 +325,6 @@
                             PRIMARY KEY (id) USING BTREE,
                             UNIQUE KEY `uk_item_id` (`item_id`) USING BTREE
) ENGINE=InnoDB DEFAULT CHARSET=utf8 ROW_FORMAT=DYNAMIC COMMENT = '计算指标';
CREATE TABLE t_ind_item_derive(
                                `id` VARCHAR(36) NOT NULL  COMMENT 'ID' ,
                                `item_id` VARCHAR(36)   COMMENT '指标ID' ,
                                `limit_time` varchar(100)  DEFAULT NULL COMMENT '时间限定',
                                `limit_business` varchar(100)  DEFAULT NULL COMMENT '业务限定',
                                PRIMARY KEY (id) USING BTREE,
                                UNIQUE KEY `uk_item_id` (`item_id`) USING BTREE
) ENGINE=InnoDB DEFAULT CHARSET=utf8 ROW_FORMAT=DYNAMIC COMMENT = '派生指标';
CREATE TABLE `t_ind_item_value` (
                                  `id` varchar(36) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci NOT NULL COMMENT 'id',
iailab-module-data/iailab-module-data-biz/src/main/java/com/iailab/module/data/api/controller/DataController.java
@@ -5,21 +5,16 @@
import com.iailab.module.data.api.dto.IndexQueryDTO;
import com.iailab.module.data.api.dto.echarts.BarLineDTO;
import com.iailab.module.data.api.dto.echarts.SeriesItem;
import com.iailab.module.data.channel.kio.entity.ChannelKioDeviceEntity;
import com.iailab.module.data.common.utils.Constant;
import com.iailab.module.data.common.utils.R;
import com.iailab.module.data.api.dto.ApiPointValueQueryDTO;
import com.iailab.module.data.point.collection.PointCollector;
import com.iailab.module.data.point.common.PointDataTypeEnum;
import com.iailab.module.data.point.dto.DaPointDTO;
import com.iailab.module.data.point.service.DaPointService;
import com.iailab.module.data.point.service.DaPointValueService;
import com.iailab.module.data.ind.collection.IndItemCollector;
import com.iailab.module.data.influxdb.pojo.InfluxPointValuePOJO;
import com.iailab.module.data.influxdb.service.InfluxDBService;
import com.iailab.module.data.api.dto.DeviceValueDTO;
import com.iailab.module.data.api.utils.ApiSecurityUtils;
import com.iailab.module.data.ind.dto.IndItemValueDTO;
import io.swagger.v3.oas.annotations.Operation;
import io.swagger.v3.oas.annotations.tags.Tag;
import lombok.extern.slf4j.Slf4j;
@@ -34,7 +29,6 @@
import java.util.stream.Collectors;
import static com.iailab.framework.common.pojo.CommonResult.success;
import static com.iailab.framework.common.pojo.CommonResult.error;
/**
 * @author PanZhibao
@@ -61,9 +55,6 @@
    @Resource
    private PointCollector pointCollector;
    @Resource
    private IndItemCollector indItemCollector;
    @PostMapping("/point/history")
    @Operation(summary = "point历史数据")
@@ -211,35 +202,5 @@
            });
        }
        return CommonResult;
    }
    @PostMapping("/ind-item/values")
    @Operation(summary = "point当前实时数据")
    public CommonResult<Map<String, List<IndItemValueDTO>>> indItemValues(HttpServletResponse response, HttpServletRequest
            request, @RequestBody List<String> itemNos) {
        try {
            // apiSecurityUtils.validate(request);
            Map<String, List<IndItemValueDTO>> data = indItemCollector.getValueList(itemNos);
            return success(data);
        } catch (Exception ex) {
            return new CommonResult<Map<String, List<IndItemValueDTO>>>().setMsg(ex.getMessage());
        }
    }
    @PostMapping("/ind-item/current-value")
    @Operation(summary = "point当前实时数据")
    public CommonResult<Map<String, BigDecimal>> indItemCurrentValue(HttpServletResponse response, HttpServletRequest
            request, @RequestBody List<String> itemNos) {
        try {
            Map<String, BigDecimal> data = new HashMap<>();
            // apiSecurityUtils.validate(request);
            Map<String, List<IndItemValueDTO>> dataList = indItemCollector.getValueList(itemNos);
            dataList.forEach((k, v) -> {
                data.put(k, CollectionUtils.isEmpty(v) ? null : v.get(0).getDataValue());
            });
            return success(data);
        } catch (Exception ex) {
            return new CommonResult<Map<String, BigDecimal>>().setMsg(ex.getMessage());
        }
    }
}
iailab-module-data/iailab-module-data-biz/src/main/java/com/iailab/module/data/ind/category/controller/admin/IndItemCategoryController.java
对比新文件
@@ -0,0 +1,79 @@
package com.iailab.module.data.ind.category.controller.admin;
import com.iailab.framework.common.pojo.CommonResult;
import com.iailab.framework.common.util.object.BeanUtils;
import com.iailab.module.data.ind.category.entity.IndItemCategoryEntity;
import com.iailab.module.data.ind.category.service.IndItemCategoryService;
import com.iailab.module.data.ind.category.vo.IndItemCategoryReqVO;
import com.iailab.module.data.ind.category.vo.IndItemCategoryRespVO;
import com.iailab.module.data.ind.category.vo.IndItemCategorySaveReqVO;
import io.swagger.v3.oas.annotations.Operation;
import io.swagger.v3.oas.annotations.Parameter;
import io.swagger.v3.oas.annotations.tags.Tag;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.security.access.prepost.PreAuthorize;
import org.springframework.validation.annotation.Validated;
import org.springframework.web.bind.annotation.*;
import javax.validation.Valid;
import java.util.Comparator;
import java.util.List;
import static com.iailab.framework.common.pojo.CommonResult.success;
/**
 * @author PanZhibao
 * @Description
 * @createTime 2024年09月10日
 */
@Tag(name = "数据平台 - 指标分类")
@RestController
@RequestMapping("/data/ind-item-category")
@Validated
public class IndItemCategoryController {
    @Autowired
    private IndItemCategoryService indItemCategoryService;
    @GetMapping("/list")
    @Operation(summary = "获取指标分类列表", description = "用于【指标分类】界面")
    @PreAuthorize("@ss.hasPermission('data:ind-item-category:query')")
    public CommonResult<List<IndItemCategoryRespVO>> getList(IndItemCategoryReqVO reqVO) {
        List<IndItemCategoryEntity> list = indItemCategoryService.getList(reqVO);
        list.sort(Comparator.comparing(IndItemCategoryEntity::getSort));
        return success(BeanUtils.toBean(list, IndItemCategoryRespVO.class));
    }
    @PostMapping("/create")
    @Operation(summary = "创建指标分类")
    @PreAuthorize("@ss.hasPermission('data:ind-item-category:create')")
    public CommonResult<Boolean> createMenu(@Valid @RequestBody IndItemCategorySaveReqVO createReqVO) {
        indItemCategoryService.create(createReqVO);
        return success(true);
    }
    @PutMapping("/update")
    @Operation(summary = "修改指标分类")
    @PreAuthorize("@ss.hasPermission('data:ind-item-category:update')")
    public CommonResult<Boolean> updateMenu(@Valid @RequestBody IndItemCategorySaveReqVO updateReqVO) {
        indItemCategoryService.update(updateReqVO);
        return success(true);
    }
    @DeleteMapping("/delete")
    @Operation(summary = "删除指标分类")
    @Parameter(name = "id", description = "指标分类编号", required= true, example = "1024")
    @PreAuthorize("@ss.hasPermission('data:ind-item-category:delete')")
    public CommonResult<Boolean> deleteMenu(@RequestParam("id") String id) {
        indItemCategoryService.delete(id);
        return success(true);
    }
    @GetMapping("/get")
    @Operation(summary = "获取指标分类信息")
    @PreAuthorize("@ss.hasPermission('system:ind-item-category:query')")
    public CommonResult<IndItemCategoryRespVO> getMenu(String id) {
        IndItemCategoryEntity entity = indItemCategoryService.get(id);
        return success(BeanUtils.toBean(entity, IndItemCategoryRespVO.class));
    }
}
iailab-module-data/iailab-module-data-biz/src/main/java/com/iailab/module/data/ind/category/controller/package-info.java
对比新文件
@@ -0,0 +1 @@
package com.iailab.module.data.ind.category.controller;
iailab-module-data/iailab-module-data-biz/src/main/java/com/iailab/module/data/ind/category/dao/IndItemCategoryDao.java
对比新文件
@@ -0,0 +1,26 @@
package com.iailab.module.data.ind.category.dao;
import com.iailab.framework.mybatis.core.mapper.BaseMapperX;
import com.iailab.framework.mybatis.core.query.LambdaQueryWrapperX;
import com.iailab.framework.tenant.core.db.dynamic.TenantDS;
import com.iailab.module.data.ind.category.entity.IndItemCategoryEntity;
import com.iailab.module.data.ind.category.vo.IndItemCategoryReqVO;
import org.apache.ibatis.annotations.Mapper;
import java.util.List;
/**
 * @author PanZhibao
 * @Description
 * @createTime 2024年09月10日
 */
@TenantDS
@Mapper
public interface IndItemCategoryDao extends BaseMapperX<IndItemCategoryEntity> {
    default List<IndItemCategoryEntity> selectList(IndItemCategoryReqVO reqVO) {
        return selectList(new LambdaQueryWrapperX<IndItemCategoryEntity>()
                .likeIfPresent(IndItemCategoryEntity::getLabel, reqVO.getLabel()));
    }
}
iailab-module-data/iailab-module-data-biz/src/main/java/com/iailab/module/data/ind/category/entity/IndItemCategoryEntity.java
对比新文件
@@ -0,0 +1,67 @@
package com.iailab.module.data.ind.category.entity;
import com.baomidou.mybatisplus.annotation.IdType;
import com.baomidou.mybatisplus.annotation.TableId;
import com.baomidou.mybatisplus.annotation.TableName;
import io.swagger.v3.oas.annotations.media.Schema;
import lombok.Data;
import java.io.Serializable;
import java.util.Date;
/**
 * 指标分类
 *
 * @author PanZhibao
 * @Description
 * @createTime 2024年09月10日
 */
@Data
@TableName("t_ind_item_category")
public class IndItemCategoryEntity implements Serializable {
    private static final long serialVersionUID = 1L;
    public static final String ID_ROOT = "0";
    /**
     * 主键
     */
    @Schema(description = "主键")
    @TableId(value = "id",type = IdType.INPUT)
    private String id;
    /**
     * 标签
     */
    private String label;
    /**
     * 父ID
     */
    private String pid;
    /**
     * 排序
     */
    private Integer sort;
    /**
     * 创建者
     */
    private String creator;
    /**
     * 创建时间
     */
    private Date createTime;
    /**
     * 更新者
     */
    private String updater;
    /**
     * 更新时间
     */
    private Date updateTime;
}
iailab-module-data/iailab-module-data-biz/src/main/java/com/iailab/module/data/ind/category/package-info.java
对比新文件
@@ -0,0 +1 @@
package com.iailab.module.data.ind.category;
iailab-module-data/iailab-module-data-biz/src/main/java/com/iailab/module/data/ind/category/service/IndItemCategoryService.java
对比新文件
@@ -0,0 +1,26 @@
package com.iailab.module.data.ind.category.service;
import com.iailab.module.data.ind.category.entity.IndItemCategoryEntity;
import com.iailab.module.data.ind.category.vo.IndItemCategoryReqVO;
import com.iailab.module.data.ind.category.vo.IndItemCategorySaveReqVO;
import java.util.List;
/**
 * @author PanZhibao
 * @Description
 * @createTime 2024年09月10日
 */
public interface IndItemCategoryService {
    List<IndItemCategoryEntity> getList(IndItemCategoryReqVO reqVO);
    void create(IndItemCategorySaveReqVO createReqVO);
    void update(IndItemCategorySaveReqVO updateReqVO);
    IndItemCategoryEntity get(String id);
    void delete(String id);
}
iailab-module-data/iailab-module-data-biz/src/main/java/com/iailab/module/data/ind/category/service/impl/IndItemCategoryServiceImpl.java
对比新文件
@@ -0,0 +1,84 @@
package com.iailab.module.data.ind.category.service.impl;
import com.iailab.framework.common.util.object.BeanUtils;
import com.iailab.module.data.ind.category.entity.IndItemCategoryEntity;
import com.iailab.module.data.ind.category.service.IndItemCategoryService;
import com.iailab.module.data.ind.category.vo.IndItemCategoryReqVO;
import com.iailab.module.data.ind.category.dao.IndItemCategoryDao;
import com.iailab.module.data.ind.category.vo.IndItemCategorySaveReqVO;
import com.iailab.module.system.enums.permission.MenuTypeEnum;
import lombok.extern.slf4j.Slf4j;
import org.springframework.stereotype.Service;
import javax.annotation.Resource;
import java.util.Date;
import java.util.List;
import java.util.UUID;
import static com.iailab.framework.common.exception.util.ServiceExceptionUtil.exception;
import static com.iailab.module.system.enums.ErrorCodeConstants.*;
import static com.iailab.module.data.ind.category.entity.IndItemCategoryEntity.ID_ROOT;
/**
 * @author PanZhibao
 * @Description
 * @createTime 2024年09月10日
 */
@Service
@Slf4j
public class IndItemCategoryServiceImpl implements IndItemCategoryService {
    @Resource
    private IndItemCategoryDao indItemCategoryDao;
    @Override
    public List<IndItemCategoryEntity> getList(IndItemCategoryReqVO reqVO) {
        return indItemCategoryDao.selectList(reqVO);
    }
    @Override
    public void create(IndItemCategorySaveReqVO createReqVO) {
        // 校验父菜单存在
        validateParentMenu(createReqVO.getPid(), null);
        // 插入数据库
        IndItemCategoryEntity entity = BeanUtils.toBean(createReqVO, IndItemCategoryEntity.class);
        entity.setId(UUID.randomUUID().toString());
        entity.setCreateTime(new Date());
        indItemCategoryDao.insert(entity);
    }
    @Override
    public void update(IndItemCategorySaveReqVO updateReqVO) {
        // 校验父菜单存在
        validateParentMenu(updateReqVO.getPid(), null);
        IndItemCategoryEntity entity = BeanUtils.toBean(updateReqVO, IndItemCategoryEntity.class);
        entity.setUpdateTime(new Date());
        indItemCategoryDao.updateById(entity);
    }
    @Override
    public IndItemCategoryEntity get(String id) {
        return indItemCategoryDao.selectById(id);
    }
    @Override
    public void delete(String id) {
        indItemCategoryDao.deleteById(id);
    }
    private void validateParentMenu(String parentId, String childId) {
        if (parentId == null || ID_ROOT.equals(parentId)) {
            return;
        }
        // 不能设置自己为父菜单
        if (parentId.equals(childId)) {
            throw exception(MENU_PARENT_ERROR);
        }
        IndItemCategoryEntity category = indItemCategoryDao.selectById(parentId);
        // 父菜单不存在
        if (category == null) {
            throw exception(MENU_PARENT_NOT_EXISTS);
        }
    }
}
iailab-module-data/iailab-module-data-biz/src/main/java/com/iailab/module/data/ind/category/vo/IndItemCategoryReqVO.java
对比新文件
@@ -0,0 +1,18 @@
package com.iailab.module.data.ind.category.vo;
import io.swagger.v3.oas.annotations.media.Schema;
import lombok.Data;
import lombok.ToString;
/**
 * @author PanZhibao
 * @Description
 * @createTime 2024年09月10日
 */
@Schema(description = "数据服务 - 指标分类分页 Request VO")
@Data
@ToString(callSuper = true)
public class IndItemCategoryReqVO {
    private String label;
}
iailab-module-data/iailab-module-data-biz/src/main/java/com/iailab/module/data/ind/category/vo/IndItemCategoryRespVO.java
对比新文件
@@ -0,0 +1,9 @@
package com.iailab.module.data.ind.category.vo;
/**
 * @author PanZhibao
 * @Description
 * @createTime 2024年09月10日
 */
public class IndItemCategoryRespVO {
}
iailab-module-data/iailab-module-data-biz/src/main/java/com/iailab/module/data/ind/category/vo/IndItemCategorySaveReqVO.java
对比新文件
@@ -0,0 +1,34 @@
package com.iailab.module.data.ind.category.vo;
import io.swagger.v3.oas.annotations.media.Schema;
import lombok.Data;
import javax.validation.constraints.NotBlank;
import javax.validation.constraints.NotNull;
import javax.validation.constraints.Size;
/**
 * @author PanZhibao
 * @Description
 * @createTime 2024年09月10日
 */
@Schema(description = "数据平台 - 指标分类创建/修改 Request VO")
@Data
public class IndItemCategorySaveReqVO {
    @Schema(description = "ID", example = "1024")
    private String id;
    @Schema(description = "标签", requiredMode = Schema.RequiredMode.REQUIRED, example = "平台")
    @NotBlank(message = "标签")
    @Size(max = 50, message = "标签长度不能超过20个字符")
    private String label;
    @Schema(description = "父菜单 ID", requiredMode = Schema.RequiredMode.REQUIRED, example = "1024")
    @NotNull(message = "父菜单 ID 不能为空")
    private String pid;
    @Schema(description = "显示顺序", requiredMode = Schema.RequiredMode.REQUIRED, example = "1024")
    @NotNull(message = "显示顺序不能为空")
    private Integer sort;
}
iailab-module-data/iailab-module-data-biz/src/main/java/com/iailab/module/data/ind/collection/IndItemCollector.java
文件已删除
iailab-module-data/iailab-module-data-biz/src/main/java/com/iailab/module/data/ind/collection/handler/AtomItemHandle.java
文件已删除
iailab-module-data/iailab-module-data-biz/src/main/java/com/iailab/module/data/ind/collection/handler/CalItemHandle.java
文件已删除
iailab-module-data/iailab-module-data-biz/src/main/java/com/iailab/module/data/ind/collection/utils/IndSqlUtils.java
文件已删除
iailab-module-data/iailab-module-data-biz/src/main/java/com/iailab/module/data/ind/common/IndItemTypeEnum.java
文件已删除
iailab-module-data/iailab-module-data-biz/src/main/java/com/iailab/module/data/ind/common/IndTimeRangeConst.java
文件已删除
iailab-module-data/iailab-module-data-biz/src/main/java/com/iailab/module/data/ind/common/IndTimeRangeEnum.java
文件已删除
iailab-module-data/iailab-module-data-biz/src/main/java/com/iailab/module/data/ind/common/IndtimeGranularityEnum.java
文件已删除
iailab-module-data/iailab-module-data-biz/src/main/java/com/iailab/module/data/ind/controller/admin/IndItemAtomController.java
文件已删除
iailab-module-data/iailab-module-data-biz/src/main/java/com/iailab/module/data/ind/controller/admin/IndItemCalController.java
文件已删除
iailab-module-data/iailab-module-data-biz/src/main/java/com/iailab/module/data/ind/controller/admin/IndItemController.java
文件已删除
iailab-module-data/iailab-module-data-biz/src/main/java/com/iailab/module/data/ind/controller/package-info.java
文件已删除
iailab-module-data/iailab-module-data-biz/src/main/java/com/iailab/module/data/ind/dao/IndItemAtomDao.java
文件已删除
iailab-module-data/iailab-module-data-biz/src/main/java/com/iailab/module/data/ind/dao/IndItemCalDao.java
文件已删除
iailab-module-data/iailab-module-data-biz/src/main/java/com/iailab/module/data/ind/dao/IndItemDao.java
文件已删除
iailab-module-data/iailab-module-data-biz/src/main/java/com/iailab/module/data/ind/dao/IndItemValueDao.java
文件已删除
iailab-module-data/iailab-module-data-biz/src/main/java/com/iailab/module/data/ind/data/package-info.java
对比新文件
@@ -0,0 +1 @@
package com.iailab.module.data.ind.data;
iailab-module-data/iailab-module-data-biz/src/main/java/com/iailab/module/data/ind/dto/IndItemAtomDTO.java
文件已删除
iailab-module-data/iailab-module-data-biz/src/main/java/com/iailab/module/data/ind/dto/IndItemCalDTO.java
文件已删除
iailab-module-data/iailab-module-data-biz/src/main/java/com/iailab/module/data/ind/dto/IndItemDTO.java
文件已删除
iailab-module-data/iailab-module-data-biz/src/main/java/com/iailab/module/data/ind/dto/IndItemValueDTO.java
文件已删除
iailab-module-data/iailab-module-data-biz/src/main/java/com/iailab/module/data/ind/entity/IndItemAtomEntity.java
文件已删除
iailab-module-data/iailab-module-data-biz/src/main/java/com/iailab/module/data/ind/entity/IndItemCalEntity.java
文件已删除
iailab-module-data/iailab-module-data-biz/src/main/java/com/iailab/module/data/ind/entity/IndItemEntity.java
文件已删除
iailab-module-data/iailab-module-data-biz/src/main/java/com/iailab/module/data/ind/entity/IndItemValueEntity.java
文件已删除
iailab-module-data/iailab-module-data-biz/src/main/java/com/iailab/module/data/ind/item/package-info.java
对比新文件
@@ -0,0 +1 @@
package com.iailab.module.data.ind.item;
iailab-module-data/iailab-module-data-biz/src/main/java/com/iailab/module/data/ind/package-info.java
对比新文件
@@ -0,0 +1 @@
package com.iailab.module.data.ind;
iailab-module-data/iailab-module-data-biz/src/main/java/com/iailab/module/data/ind/service/IndItemAtomService.java
文件已删除
iailab-module-data/iailab-module-data-biz/src/main/java/com/iailab/module/data/ind/service/IndItemCalService.java
文件已删除
iailab-module-data/iailab-module-data-biz/src/main/java/com/iailab/module/data/ind/service/IndItemService.java
文件已删除
iailab-module-data/iailab-module-data-biz/src/main/java/com/iailab/module/data/ind/service/IndItemValueService.java
文件已删除
iailab-module-data/iailab-module-data-biz/src/main/java/com/iailab/module/data/ind/service/impl/IndItemAtomServiceImpl.java
文件已删除
iailab-module-data/iailab-module-data-biz/src/main/java/com/iailab/module/data/ind/service/impl/IndItemCalServiceImpl.java
文件已删除
iailab-module-data/iailab-module-data-biz/src/main/java/com/iailab/module/data/ind/service/impl/IndItemServiceImpl.java
文件已删除
iailab-module-data/iailab-module-data-biz/src/main/java/com/iailab/module/data/ind/service/impl/IndItemValueServiceImpl.java
文件已删除
iailab-module-data/iailab-module-data-biz/src/main/resources/application.yml
@@ -193,6 +193,9 @@
      - t_http_api
      - t_http_tag
      - t_http_token
      - t_ind_data_set
      - t_ind_data_set_field
      - t_ind_item_category
      - t_ind_item
      - t_ind_item_atom
  app:
iailab-module-data/iailab-module-data-biz/src/main/resources/mapper/ind/IndItemDao.xml
文件已删除
iailab-module-data/iailab-module-data-biz/src/main/resources/mapper/ind/IndItemValueDao.xml
文件已删除