From e4106250e13ec34fd15719394049d18de07e5c3b Mon Sep 17 00:00:00 2001 From: 潘志宝 <979469083@qq.com> Date: 星期三, 11 九月 2024 13:38:28 +0800 Subject: [PATCH] 指标定义 --- iailab-module-data/iailab-module-data-biz/src/main/java/com/iailab/module/data/ind/data/vo/IndDataSetFieldSaveReqVO.java | 31 ++ iailab-module-data/iailab-module-data-biz/src/main/java/com/iailab/module/data/ind/item/service/IndItemDerService.java | 12 iailab-module-data/iailab-module-data-biz/src/main/java/com/iailab/module/data/ind/item/service/impl/IndItemServiceImpl.java | 55 +++ iailab-module-data/iailab-module-data-biz/src/main/java/com/iailab/module/data/ind/item/dao/IndItemDao.java | 28 + iailab-module-data/iailab-module-data-biz/src/main/java/com/iailab/module/data/ind/item/service/IndItemService.java | 25 + iailab-module-data/iailab-module-data-biz/db/mysql/tenant.sql | 8 iailab-module-data/iailab-module-data-biz/src/main/java/com/iailab/module/data/ind/data/entity/IndDataSetFieldEntity.java | 2 iailab-module-data/iailab-module-data-biz/src/main/java/com/iailab/module/data/ind/item/entity/IndItemAtomEntity.java | 51 +++ iailab-module-data/iailab-module-data-biz/src/main/java/com/iailab/module/data/ind/item/dao/IndItemCalDao.java | 16 + iailab-module-data/iailab-module-data-biz/src/main/java/com/iailab/module/data/ind/item/vo/IndItemPageReqVO.java | 31 ++ iailab-module-data/iailab-module-data-biz/src/main/java/com/iailab/module/data/ind/item/entity/IndItemDerEntity.java | 60 ++++ iailab-module-data/iailab-module-data-biz/src/main/java/com/iailab/module/data/ind/data/controller/admin/IndDataSetFieldController.java | 12 iailab-module-data/iailab-module-data-biz/src/main/java/com/iailab/module/data/ind/item/controller/IndItemController.java | 18 + iailab-module-data/iailab-module-data-biz/src/main/java/com/iailab/module/data/ind/item/service/impl/IndItemAtomServiceImpl.java | 16 + iailab-module-data/iailab-module-data-biz/src/main/java/com/iailab/module/data/ind/data/vo/IndDataSetRespVO.java | 41 ++ iailab-module-data/iailab-module-data-biz/src/main/java/com/iailab/module/data/ind/item/vo/IndItemSaveReqVO.java | 82 +++++ iailab-module-data/iailab-module-data-biz/src/main/java/com/iailab/module/data/ind/item/service/IndItemCalService.java | 12 iailab-module-data/iailab-module-data-biz/src/main/java/com/iailab/module/data/ind/item/service/IndItemAtomService.java | 12 iailab-module-data/iailab-module-data-biz/src/main/java/com/iailab/module/data/ind/item/vo/IndItemRespVO.java | 65 ++++ iailab-module-data/iailab-module-data-biz/src/main/java/com/iailab/module/data/ind/item/entity/IndItemCalEntity.java | 36 ++ iailab-module-data/iailab-module-data-biz/src/main/java/com/iailab/module/data/ind/data/controller/admin/IndDataSetController.java | 12 iailab-module-data/iailab-module-data-biz/src/main/java/com/iailab/module/data/ind/category/vo/IndItemCategoryRespVO.java | 35 ++ iailab-module-data/iailab-module-data-biz/src/main/java/com/iailab/module/data/ind/item/dao/IndItemAtomDao.java | 16 + iailab-module-data/iailab-module-data-biz/src/main/java/com/iailab/module/data/ind/item/service/impl/IndItemDerServiceImpl.java | 16 + iailab-module-data/iailab-module-data-biz/src/main/java/com/iailab/module/data/ind/data/service/impl/IndDataSetFieldServiceImpl.java | 4 iailab-module-data/iailab-module-data-biz/src/main/java/com/iailab/module/data/ind/data/vo/IndDataSetFieldRespVO.java | 27 + iailab-module-data/iailab-module-data-biz/src/main/java/com/iailab/module/data/ind/item/entity/IndItemEntity.java | 99 ++++++ iailab-module-data/iailab-module-data-biz/src/main/java/com/iailab/module/data/ind/item/dao/IndItemDerDao.java | 16 + iailab-module-data/iailab-module-data-biz/src/main/java/com/iailab/module/data/ind/data/entity/IndDataSetEntity.java | 2 iailab-module-data/iailab-module-data-biz/src/main/java/com/iailab/module/data/ind/item/service/impl/IndItemCalServiceImpl.java | 14 30 files changed, 831 insertions(+), 23 deletions(-) diff --git a/iailab-module-data/iailab-module-data-biz/db/mysql/tenant.sql b/iailab-module-data/iailab-module-data-biz/db/mysql/tenant.sql index dfc4e83..1df8e81 100644 --- a/iailab-module-data/iailab-module-data-biz/db/mysql/tenant.sql +++ b/iailab-module-data/iailab-module-data-biz/db/mysql/tenant.sql @@ -282,9 +282,10 @@ `item_name` VARCHAR(36) COMMENT '指标名称' , `item_type` VARCHAR(20) COMMENT '指标类型' , `item_category` VARCHAR(20) COMMENT '指标分类' , - `coefficient` decimal(10, 4) COMMENT '系数', + `coefficient` decimal(10, 4) COMMENT '转换系数', `precision` int COMMENT '指标精度', `time_granularity` VARCHAR(10) COMMENT '时间粒度' , + `unit` 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 '创建者', @@ -325,12 +326,13 @@ `expression` 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 = '计算指标'; +) 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', `item_no` varchar(36) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci DEFAULT NULL COMMENT '指标编码', - `data_time` varchar(36) DEFAULT NULL COMMENT '数据时间', + `data_time` varchar(20) DEFAULT NULL COMMENT '数据时间', `data_value` decimal(24,6) DEFAULT NULL COMMENT '数据值', PRIMARY KEY (`id`) USING BTREE, KEY `idx_item_no` (`item_no`) USING BTREE, diff --git a/iailab-module-data/iailab-module-data-biz/src/main/java/com/iailab/module/data/ind/category/vo/IndItemCategoryRespVO.java b/iailab-module-data/iailab-module-data-biz/src/main/java/com/iailab/module/data/ind/category/vo/IndItemCategoryRespVO.java index efc8bb9..3b43df1 100644 --- a/iailab-module-data/iailab-module-data-biz/src/main/java/com/iailab/module/data/ind/category/vo/IndItemCategoryRespVO.java +++ b/iailab-module-data/iailab-module-data-biz/src/main/java/com/iailab/module/data/ind/category/vo/IndItemCategoryRespVO.java @@ -1,9 +1,44 @@ package com.iailab.module.data.ind.category.vo; +import com.alibaba.excel.annotation.ExcelIgnoreUnannotated; +import com.alibaba.excel.annotation.ExcelProperty; +import io.swagger.v3.oas.annotations.media.Schema; +import lombok.Data; + +import java.util.Date; + /** * @author PanZhibao * @Description * @createTime 2024年09月10日 */ +@Schema(description = "数据平台 - 指标分类 Response VO") +@Data +@ExcelIgnoreUnannotated public class IndItemCategoryRespVO { + + @Schema(description = "指标分类ID", requiredMode = Schema.RequiredMode.REQUIRED, example = "1024") + @ExcelProperty("指标分类ID") + private String id; + + @Schema(description = "标签", example = "") + private String label; + + @Schema(description = "父ID", example = "") + private String pid; + + @Schema(description = "排序", example = "") + private Integer sort; + + @Schema(description = "创建者", example = "") + private String creator; + + @Schema(description = "创建时间", example = "") + private Date createTime; + + @Schema(description = "更新者", example = "") + private String updater; + + @Schema(description = "更新时间", example = "") + private Date updateTime; } \ No newline at end of file diff --git a/iailab-module-data/iailab-module-data-biz/src/main/java/com/iailab/module/data/ind/data/controller/admin/IndDataSetController.java b/iailab-module-data/iailab-module-data-biz/src/main/java/com/iailab/module/data/ind/data/controller/admin/IndDataSetController.java index aa769eb..9034a5e 100644 --- a/iailab-module-data/iailab-module-data-biz/src/main/java/com/iailab/module/data/ind/data/controller/admin/IndDataSetController.java +++ b/iailab-module-data/iailab-module-data-biz/src/main/java/com/iailab/module/data/ind/data/controller/admin/IndDataSetController.java @@ -34,7 +34,7 @@ private IndDataSetService indDataSetService; @GetMapping("/page") - @Operation(summary = "获取指标分类列表", description = "用于【指标分类】界面") + @Operation(summary = "获取指标数据集列表", description = "用于【指标数据集】界面") @PreAuthorize("@ss.hasPermission('data:ind-data-set:query')") public CommonResult<PageResult<IndDataSetRespVO>> page(IndDataSetPageReqVO reqVO) { PageResult<IndDataSetEntity> page = indDataSetService.page(reqVO); @@ -42,7 +42,7 @@ } @PostMapping("/create") - @Operation(summary = "创建指标分类") + @Operation(summary = "创建指标数据集") @PreAuthorize("@ss.hasPermission('data:ind-data-set:create')") public CommonResult<Boolean> create(@Valid @RequestBody IndDataSetSaveReqVO createReqVO) { indDataSetService.create(createReqVO); @@ -50,7 +50,7 @@ } @PutMapping("/update") - @Operation(summary = "修改指标分类") + @Operation(summary = "修改指标数据集") @PreAuthorize("@ss.hasPermission('data:ind-data-set:update')") public CommonResult<Boolean> update(@Valid @RequestBody IndDataSetSaveReqVO updateReqVO) { indDataSetService.update(updateReqVO); @@ -58,8 +58,8 @@ } @DeleteMapping("/delete") - @Operation(summary = "删除指标分类") - @Parameter(name = "id", description = "指标分类编号", required= true, example = "1024") + @Operation(summary = "删除指标数据集") + @Parameter(name = "id", description = "指标数据集编号", required= true, example = "1024") @PreAuthorize("@ss.hasPermission('data:ind-data-set:delete')") public CommonResult<Boolean> delete(@RequestParam("id") String id) { indDataSetService.delete(id); @@ -67,7 +67,7 @@ } @GetMapping("/get") - @Operation(summary = "获取指标分类信息") + @Operation(summary = "获取指标数据集信息") @PreAuthorize("@ss.hasPermission('system:ind-data-set:query')") public CommonResult<IndDataSetRespVO> get(String id) { IndDataSetEntity entity = indDataSetService.get(id); diff --git a/iailab-module-data/iailab-module-data-biz/src/main/java/com/iailab/module/data/ind/data/controller/admin/IndDataSetFieldController.java b/iailab-module-data/iailab-module-data-biz/src/main/java/com/iailab/module/data/ind/data/controller/admin/IndDataSetFieldController.java index a4cd4ab..2794647 100644 --- a/iailab-module-data/iailab-module-data-biz/src/main/java/com/iailab/module/data/ind/data/controller/admin/IndDataSetFieldController.java +++ b/iailab-module-data/iailab-module-data-biz/src/main/java/com/iailab/module/data/ind/data/controller/admin/IndDataSetFieldController.java @@ -33,7 +33,7 @@ private IndDataSetFieldService indDataSetFieldService; @GetMapping("/page") - @Operation(summary = "获取指标分类列表", description = "用于【指标分类】界面") + @Operation(summary = "获取指标数据集字段列表", description = "用于【指标数据集字段】界面") @PreAuthorize("@ss.hasPermission('data:ind-data-set:query')") public CommonResult<PageResult<IndDataSetRespVO>> page(IndDataSetFieldPageReqVO reqVO) { PageResult<IndDataSetFieldEntity> page = indDataSetFieldService.page(reqVO); @@ -41,7 +41,7 @@ } @PostMapping("/create") - @Operation(summary = "创建指标分类") + @Operation(summary = "创建指标数据集字段") @PreAuthorize("@ss.hasPermission('data:ind-data-set:create')") public CommonResult<Boolean> create(@Valid @RequestBody IndDataSetFieldSaveReqVO createReqVO) { indDataSetFieldService.create(createReqVO); @@ -49,7 +49,7 @@ } @PutMapping("/update") - @Operation(summary = "修改指标分类") + @Operation(summary = "修改指标数据集字段") @PreAuthorize("@ss.hasPermission('data:ind-data-set:update')") public CommonResult<Boolean> update(@Valid @RequestBody IndDataSetFieldSaveReqVO updateReqVO) { indDataSetFieldService.update(updateReqVO); @@ -57,8 +57,8 @@ } @DeleteMapping("/delete") - @Operation(summary = "删除指标分类") - @Parameter(name = "id", description = "指标分类编号", required= true, example = "1024") + @Operation(summary = "删除指标数据集字段") + @Parameter(name = "id", description = "指标数据集字段编号", required= true, example = "1024") @PreAuthorize("@ss.hasPermission('data:ind-data-set:delete')") public CommonResult<Boolean> delete(@RequestParam("id") String id) { indDataSetFieldService.delete(id); @@ -66,7 +66,7 @@ } @GetMapping("/get") - @Operation(summary = "获取指标分类信息") + @Operation(summary = "获取指标数据集字段信息") @PreAuthorize("@ss.hasPermission('system:ind-data-set:query')") public CommonResult<IndDataSetRespVO> get(String id) { IndDataSetFieldEntity entity = indDataSetFieldService.get(id); diff --git a/iailab-module-data/iailab-module-data-biz/src/main/java/com/iailab/module/data/ind/data/entity/IndDataSetEntity.java b/iailab-module-data/iailab-module-data-biz/src/main/java/com/iailab/module/data/ind/data/entity/IndDataSetEntity.java index 8d4c669..22b26f4 100644 --- a/iailab-module-data/iailab-module-data-biz/src/main/java/com/iailab/module/data/ind/data/entity/IndDataSetEntity.java +++ b/iailab-module-data/iailab-module-data-biz/src/main/java/com/iailab/module/data/ind/data/entity/IndDataSetEntity.java @@ -3,7 +3,6 @@ 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; @@ -24,7 +23,6 @@ /** * 主键 */ - @Schema(description = "主键") @TableId(value = "id",type = IdType.INPUT) private String id; diff --git a/iailab-module-data/iailab-module-data-biz/src/main/java/com/iailab/module/data/ind/data/entity/IndDataSetFieldEntity.java b/iailab-module-data/iailab-module-data-biz/src/main/java/com/iailab/module/data/ind/data/entity/IndDataSetFieldEntity.java index 7d87b91..b6feae7 100644 --- a/iailab-module-data/iailab-module-data-biz/src/main/java/com/iailab/module/data/ind/data/entity/IndDataSetFieldEntity.java +++ b/iailab-module-data/iailab-module-data-biz/src/main/java/com/iailab/module/data/ind/data/entity/IndDataSetFieldEntity.java @@ -3,7 +3,6 @@ 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; @@ -23,7 +22,6 @@ /** * 主键 */ - @Schema(description = "主键") @TableId(value = "id",type = IdType.INPUT) private String id; diff --git a/iailab-module-data/iailab-module-data-biz/src/main/java/com/iailab/module/data/ind/data/service/impl/IndDataSetFieldServiceImpl.java b/iailab-module-data/iailab-module-data-biz/src/main/java/com/iailab/module/data/ind/data/service/impl/IndDataSetFieldServiceImpl.java index 457327b..3d41248 100644 --- a/iailab-module-data/iailab-module-data-biz/src/main/java/com/iailab/module/data/ind/data/service/impl/IndDataSetFieldServiceImpl.java +++ b/iailab-module-data/iailab-module-data-biz/src/main/java/com/iailab/module/data/ind/data/service/impl/IndDataSetFieldServiceImpl.java @@ -5,15 +5,11 @@ import com.iailab.framework.common.util.object.BeanUtils; import com.iailab.module.data.ind.data.dao.IndDataSetFieldDao; import com.iailab.module.data.ind.data.entity.IndDataSetFieldEntity; -import com.iailab.module.data.ind.data.entity.IndDataSetFieldEntity; import com.iailab.module.data.ind.data.service.IndDataSetFieldService; import com.iailab.module.data.ind.data.vo.IndDataSetFieldPageReqVO; import com.iailab.module.data.ind.data.vo.IndDataSetFieldSaveReqVO; -import com.iailab.module.data.ind.data.vo.IndDataSetPageReqVO; -import com.iailab.module.data.ind.data.vo.IndDataSetSaveReqVO; import org.springframework.stereotype.Service; -import java.util.Date; import java.util.UUID; /** diff --git a/iailab-module-data/iailab-module-data-biz/src/main/java/com/iailab/module/data/ind/data/vo/IndDataSetFieldRespVO.java b/iailab-module-data/iailab-module-data-biz/src/main/java/com/iailab/module/data/ind/data/vo/IndDataSetFieldRespVO.java index de6ff32..3eb554f 100644 --- a/iailab-module-data/iailab-module-data-biz/src/main/java/com/iailab/module/data/ind/data/vo/IndDataSetFieldRespVO.java +++ b/iailab-module-data/iailab-module-data-biz/src/main/java/com/iailab/module/data/ind/data/vo/IndDataSetFieldRespVO.java @@ -1,9 +1,36 @@ package com.iailab.module.data.ind.data.vo; +import com.alibaba.excel.annotation.ExcelIgnoreUnannotated; +import com.alibaba.excel.annotation.ExcelProperty; +import io.swagger.v3.oas.annotations.media.Schema; +import lombok.Data; + /** * @author PanZhibao * @Description * @createTime 2024年09月10日 */ +@Schema(description = "数据平台 - 指标数据集字段 Response VO") +@Data +@ExcelIgnoreUnannotated public class IndDataSetFieldRespVO { + + @Schema(description = "ID", requiredMode = Schema.RequiredMode.REQUIRED, example = "1024") + @ExcelProperty("ID") + private String id; + + @Schema(description = "数据集ID", example = "") + private String dataSetId; + + @Schema(description = "英文名", example = "") + private String fieldCode; + + @Schema(description = "中文名", example = "") + private String fieldName; + + @Schema(description = "数据类型", example = "") + private String fieldType; + + @Schema(description = "排序", example = "") + private Integer sort; } \ No newline at end of file diff --git a/iailab-module-data/iailab-module-data-biz/src/main/java/com/iailab/module/data/ind/data/vo/IndDataSetFieldSaveReqVO.java b/iailab-module-data/iailab-module-data-biz/src/main/java/com/iailab/module/data/ind/data/vo/IndDataSetFieldSaveReqVO.java index 5e40317..9ca9c04 100644 --- a/iailab-module-data/iailab-module-data-biz/src/main/java/com/iailab/module/data/ind/data/vo/IndDataSetFieldSaveReqVO.java +++ b/iailab-module-data/iailab-module-data-biz/src/main/java/com/iailab/module/data/ind/data/vo/IndDataSetFieldSaveReqVO.java @@ -1,9 +1,40 @@ package com.iailab.module.data.ind.data.vo; +import io.swagger.v3.oas.annotations.media.Schema; +import lombok.Data; + +import javax.validation.constraints.NotNull; + /** * @author PanZhibao * @Description * @createTime 2024年09月10日 */ +@Schema(description = "数据平台 - 数据集字段创建/修改 Request VO") +@Data public class IndDataSetFieldSaveReqVO { + + @Schema(description = "ID") + private String id; + + @Schema(description = "数据集ID", requiredMode = Schema.RequiredMode.REQUIRED) + @NotNull(message = "数据集ID不能为空") + private String dataSetId; + + @Schema(description = "英文名ID", requiredMode = Schema.RequiredMode.REQUIRED) + @NotNull(message = "英文名不能为空") + private String fieldCode; + + @Schema(description = "中文名", requiredMode = Schema.RequiredMode.REQUIRED) + @NotNull(message = "中文名不能为空") + private String fieldName; + + @Schema(description = "数据类型", requiredMode = Schema.RequiredMode.REQUIRED) + @NotNull(message = "数据类型不能为空") + private String fieldType; + + @Schema(description = "排序", requiredMode = Schema.RequiredMode.REQUIRED) + @NotNull(message = "排序不能为空") + private Integer sort; + } \ No newline at end of file diff --git a/iailab-module-data/iailab-module-data-biz/src/main/java/com/iailab/module/data/ind/data/vo/IndDataSetRespVO.java b/iailab-module-data/iailab-module-data-biz/src/main/java/com/iailab/module/data/ind/data/vo/IndDataSetRespVO.java index 4704dc7..71f13f0 100644 --- a/iailab-module-data/iailab-module-data-biz/src/main/java/com/iailab/module/data/ind/data/vo/IndDataSetRespVO.java +++ b/iailab-module-data/iailab-module-data-biz/src/main/java/com/iailab/module/data/ind/data/vo/IndDataSetRespVO.java @@ -1,9 +1,50 @@ package com.iailab.module.data.ind.data.vo; +import com.alibaba.excel.annotation.ExcelIgnoreUnannotated; +import com.alibaba.excel.annotation.ExcelProperty; +import io.swagger.v3.oas.annotations.media.Schema; +import lombok.Data; + +import java.util.Date; + /** * @author PanZhibao * @Description * @createTime 2024年09月10日 */ +@Schema(description = "数据平台 - 指标数据集 Response VO") +@Data +@ExcelIgnoreUnannotated public class IndDataSetRespVO { + + @Schema(description = "ID", requiredMode = Schema.RequiredMode.REQUIRED, example = "1024") + @ExcelProperty("ID") + private String id; + + @Schema(description = "名称", example = "") + private String name; + + @Schema(description = "数据源", example = "") + private String dataSource; + + @Schema(description = "查询语句", example = "") + private String querySql; + + @Schema(description = "备注", example = "") + private String remark; + + @Schema(description = "排序", example = "") + private Integer sort; + + @Schema(description = "创建者", example = "") + private String creator; + + @Schema(description = "创建时间", example = "") + private Date createTime; + + @Schema(description = "更新者", example = "") + private String updater; + + @Schema(description = "更新时间", example = "") + private Date updateTime; } \ No newline at end of file diff --git a/iailab-module-data/iailab-module-data-biz/src/main/java/com/iailab/module/data/ind/item/controller/IndItemController.java b/iailab-module-data/iailab-module-data-biz/src/main/java/com/iailab/module/data/ind/item/controller/IndItemController.java new file mode 100644 index 0000000..8a38f21 --- /dev/null +++ b/iailab-module-data/iailab-module-data-biz/src/main/java/com/iailab/module/data/ind/item/controller/IndItemController.java @@ -0,0 +1,18 @@ +package com.iailab.module.data.ind.item.controller; + +import io.swagger.v3.oas.annotations.tags.Tag; +import org.springframework.validation.annotation.Validated; +import org.springframework.web.bind.annotation.RequestMapping; +import org.springframework.web.bind.annotation.RestController; + +/** + * @author PanZhibao + * @Description + * @createTime 2024年09月11日 + */ +@Tag(name = "数据平台 - 指标定义") +@RestController +@RequestMapping("/data/ind-item") +@Validated +public class IndItemController { +} \ No newline at end of file diff --git a/iailab-module-data/iailab-module-data-biz/src/main/java/com/iailab/module/data/ind/item/dao/IndItemAtomDao.java b/iailab-module-data/iailab-module-data-biz/src/main/java/com/iailab/module/data/ind/item/dao/IndItemAtomDao.java new file mode 100644 index 0000000..97b21c4 --- /dev/null +++ b/iailab-module-data/iailab-module-data-biz/src/main/java/com/iailab/module/data/ind/item/dao/IndItemAtomDao.java @@ -0,0 +1,16 @@ +package com.iailab.module.data.ind.item.dao; + +import com.iailab.framework.mybatis.core.mapper.BaseMapperX; +import com.iailab.framework.tenant.core.db.dynamic.TenantDS; +import com.iailab.module.data.ind.item.entity.IndItemAtomEntity; +import org.apache.ibatis.annotations.Mapper; + +/** + * @author PanZhibao + * @Description + * @createTime 2024年09月11日 + */ +@TenantDS +@Mapper +public interface IndItemAtomDao extends BaseMapperX<IndItemAtomEntity> { +} \ No newline at end of file diff --git a/iailab-module-data/iailab-module-data-biz/src/main/java/com/iailab/module/data/ind/item/dao/IndItemCalDao.java b/iailab-module-data/iailab-module-data-biz/src/main/java/com/iailab/module/data/ind/item/dao/IndItemCalDao.java new file mode 100644 index 0000000..42b2f34 --- /dev/null +++ b/iailab-module-data/iailab-module-data-biz/src/main/java/com/iailab/module/data/ind/item/dao/IndItemCalDao.java @@ -0,0 +1,16 @@ +package com.iailab.module.data.ind.item.dao; + +import com.iailab.framework.mybatis.core.mapper.BaseMapperX; +import com.iailab.framework.tenant.core.db.dynamic.TenantDS; +import com.iailab.module.data.ind.item.entity.IndItemCalEntity; +import org.apache.ibatis.annotations.Mapper; + +/** + * @author PanZhibao + * @Description + * @createTime 2024年09月11日 + */ +@TenantDS +@Mapper +public interface IndItemCalDao extends BaseMapperX<IndItemCalEntity> { +} \ No newline at end of file diff --git a/iailab-module-data/iailab-module-data-biz/src/main/java/com/iailab/module/data/ind/item/dao/IndItemDao.java b/iailab-module-data/iailab-module-data-biz/src/main/java/com/iailab/module/data/ind/item/dao/IndItemDao.java new file mode 100644 index 0000000..3cb5a78 --- /dev/null +++ b/iailab-module-data/iailab-module-data-biz/src/main/java/com/iailab/module/data/ind/item/dao/IndItemDao.java @@ -0,0 +1,28 @@ +package com.iailab.module.data.ind.item.dao; + +import com.iailab.framework.common.pojo.PageResult; +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.item.entity.IndItemEntity; +import com.iailab.module.data.ind.item.vo.IndItemPageReqVO; +import org.apache.ibatis.annotations.Mapper; + +/** + * @author PanZhibao + * @Description + * @createTime 2024年09月11日 + */ +@TenantDS +@Mapper +public interface IndItemDao extends BaseMapperX<IndItemEntity> { + + default PageResult<IndItemEntity> selectPage(IndItemPageReqVO reqVO) { + return selectPage(reqVO, new LambdaQueryWrapperX<IndItemEntity>() + .likeIfPresent(IndItemEntity::getItemNo, reqVO.getItemNo()) + .likeIfPresent(IndItemEntity::getItemName, reqVO.getItemName()) + .eq(IndItemEntity::getItemType, reqVO.getItemType()) + .eq(IndItemEntity::getItemCategory, reqVO.getItemCategory()) + .orderByDesc(IndItemEntity::getCreateTime)); + } +} \ No newline at end of file diff --git a/iailab-module-data/iailab-module-data-biz/src/main/java/com/iailab/module/data/ind/item/dao/IndItemDerDao.java b/iailab-module-data/iailab-module-data-biz/src/main/java/com/iailab/module/data/ind/item/dao/IndItemDerDao.java new file mode 100644 index 0000000..8e53f1f --- /dev/null +++ b/iailab-module-data/iailab-module-data-biz/src/main/java/com/iailab/module/data/ind/item/dao/IndItemDerDao.java @@ -0,0 +1,16 @@ +package com.iailab.module.data.ind.item.dao; + +import com.iailab.framework.mybatis.core.mapper.BaseMapperX; +import com.iailab.framework.tenant.core.db.dynamic.TenantDS; +import com.iailab.module.data.ind.item.entity.IndItemDerEntity; +import org.apache.ibatis.annotations.Mapper; + +/** + * @author PanZhibao + * @Description + * @createTime 2024年09月11日 + */ +@TenantDS +@Mapper +public interface IndItemDerDao extends BaseMapperX<IndItemDerEntity> { +} \ No newline at end of file diff --git a/iailab-module-data/iailab-module-data-biz/src/main/java/com/iailab/module/data/ind/item/entity/IndItemAtomEntity.java b/iailab-module-data/iailab-module-data-biz/src/main/java/com/iailab/module/data/ind/item/entity/IndItemAtomEntity.java new file mode 100644 index 0000000..7fdec90 --- /dev/null +++ b/iailab-module-data/iailab-module-data-biz/src/main/java/com/iailab/module/data/ind/item/entity/IndItemAtomEntity.java @@ -0,0 +1,51 @@ +package com.iailab.module.data.ind.item.entity; + +import com.baomidou.mybatisplus.annotation.IdType; +import com.baomidou.mybatisplus.annotation.TableId; +import com.baomidou.mybatisplus.annotation.TableName; +import lombok.Data; + +import java.io.Serializable; + +/** + * 原子指标 + * + * @author PanZhibao + * @Description + * @createTime 2024年09月11日 + */ +@Data +@TableName("t_ind_item_atom") +public class IndItemAtomEntity implements Serializable { + + /** + * 主键 + */ + @TableId(value = "id",type = IdType.INPUT) + private String id; + + /** + * 指标ID + */ + private String itemId; + + /** + * 数据源 + */ + private String dataSource; + + /** + * 数据集 + */ + private String dataSet; + + /** + * 使用字段 + */ + private String usingField; + + /** + * 统计方式 + */ + private String statFunc; +} \ No newline at end of file diff --git a/iailab-module-data/iailab-module-data-biz/src/main/java/com/iailab/module/data/ind/item/entity/IndItemCalEntity.java b/iailab-module-data/iailab-module-data-biz/src/main/java/com/iailab/module/data/ind/item/entity/IndItemCalEntity.java new file mode 100644 index 0000000..a4b4ee3 --- /dev/null +++ b/iailab-module-data/iailab-module-data-biz/src/main/java/com/iailab/module/data/ind/item/entity/IndItemCalEntity.java @@ -0,0 +1,36 @@ +package com.iailab.module.data.ind.item.entity; + +import com.baomidou.mybatisplus.annotation.IdType; +import com.baomidou.mybatisplus.annotation.TableId; +import com.baomidou.mybatisplus.annotation.TableName; +import lombok.Data; + +import java.io.Serializable; + +/** + * 复合指标 + * + * @author PanZhibao + * @Description + * @createTime 2024年09月11日 + */ +@Data +@TableName("t_ind_item_cal") +public class IndItemCalEntity implements Serializable { + + /** + * 主键 + */ + @TableId(value = "id",type = IdType.INPUT) + private String id; + + /** + * 指标ID + */ + private String itemId; + + /** + * 计算表达式 + */ + private String expression; +} \ No newline at end of file diff --git a/iailab-module-data/iailab-module-data-biz/src/main/java/com/iailab/module/data/ind/item/entity/IndItemDerEntity.java b/iailab-module-data/iailab-module-data-biz/src/main/java/com/iailab/module/data/ind/item/entity/IndItemDerEntity.java new file mode 100644 index 0000000..6c04a37 --- /dev/null +++ b/iailab-module-data/iailab-module-data-biz/src/main/java/com/iailab/module/data/ind/item/entity/IndItemDerEntity.java @@ -0,0 +1,60 @@ +package com.iailab.module.data.ind.item.entity; + +import com.baomidou.mybatisplus.annotation.IdType; +import com.baomidou.mybatisplus.annotation.TableId; +import com.baomidou.mybatisplus.annotation.TableName; +import lombok.Data; + +import java.io.Serializable; + +/** + * 派生指标 + * + * @author PanZhibao + * @Description + * @createTime 2024年09月11日 + */ +@Data +@TableName("t_ind_item_der") +public class IndItemDerEntity implements Serializable { + /** + * 主键 + */ + @TableId(value = "id",type = IdType.INPUT) + private String id; + + /** + * 指标ID + */ + private String itemId; + + /** + * 原子指标ID + */ + private String atomItemId; + + /** + * 时间标识 + */ + private String timeLabel; + + /** + * 时间限定 + */ + private String timeLimit; + + /** + * 开始时间 + */ + private String timeStart; + + /** + * 结束时间 + */ + private String timeEnd; + + /** + * 分析维度 + */ + private String dimension; +} \ No newline at end of file diff --git a/iailab-module-data/iailab-module-data-biz/src/main/java/com/iailab/module/data/ind/item/entity/IndItemEntity.java b/iailab-module-data/iailab-module-data-biz/src/main/java/com/iailab/module/data/ind/item/entity/IndItemEntity.java new file mode 100644 index 0000000..37a506e --- /dev/null +++ b/iailab-module-data/iailab-module-data-biz/src/main/java/com/iailab/module/data/ind/item/entity/IndItemEntity.java @@ -0,0 +1,99 @@ +package com.iailab.module.data.ind.item.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月11日 + */ +@Data +@TableName("t_ind_item") +public class IndItemEntity implements Serializable { + private static final long serialVersionUID = 1L; + + /** + * 主键 + */ + @TableId(value = "id",type = IdType.INPUT) + private String id; + + /** + * 指标编码 + */ + private String itemNo; + + /** + * 指标名称 + */ + private String itemName; + + /** + * 指标类型 + */ + private String itemType; + + /** + * 指标分类 + */ + private String itemCategory; + + /** + * 转换系数 + */ + private Boolean coefficient; + + /** + * 指标精度 + */ + private Integer precision; + + /** + * 时间粒度 + */ + private String timeGranularity; + + /** + * 数量单位 + */ + private String unit; + + /** + * 备注 + */ + private String remark; + + /** + * 状态 + */ + private Integer status; + + /** + * 创建者 + */ + private String creator; + + /** + * 创建时间 + */ + private Date createTime; + + /** + * 更新者 + */ + private String updater; + + /** + * 更新时间 + */ + private Date updateTime; +} \ No newline at end of file diff --git a/iailab-module-data/iailab-module-data-biz/src/main/java/com/iailab/module/data/ind/item/service/IndItemAtomService.java b/iailab-module-data/iailab-module-data-biz/src/main/java/com/iailab/module/data/ind/item/service/IndItemAtomService.java new file mode 100644 index 0000000..a9517fd --- /dev/null +++ b/iailab-module-data/iailab-module-data-biz/src/main/java/com/iailab/module/data/ind/item/service/IndItemAtomService.java @@ -0,0 +1,12 @@ +package com.iailab.module.data.ind.item.service; + +import com.iailab.framework.common.service.BaseService; +import com.iailab.module.data.ind.item.entity.IndItemAtomEntity; + +/** + * @author PanZhibao + * @Description + * @createTime 2024年09月11日 + */ +public interface IndItemAtomService extends BaseService<IndItemAtomEntity> { +} diff --git a/iailab-module-data/iailab-module-data-biz/src/main/java/com/iailab/module/data/ind/item/service/IndItemCalService.java b/iailab-module-data/iailab-module-data-biz/src/main/java/com/iailab/module/data/ind/item/service/IndItemCalService.java new file mode 100644 index 0000000..f709f61 --- /dev/null +++ b/iailab-module-data/iailab-module-data-biz/src/main/java/com/iailab/module/data/ind/item/service/IndItemCalService.java @@ -0,0 +1,12 @@ +package com.iailab.module.data.ind.item.service; + +import com.iailab.framework.common.service.BaseService; +import com.iailab.module.data.ind.item.entity.IndItemCalEntity; + +/** + * @author PanZhibao + * @Description + * @createTime 2024年09月11日 + */ +public interface IndItemCalService extends BaseService<IndItemCalEntity> { +} diff --git a/iailab-module-data/iailab-module-data-biz/src/main/java/com/iailab/module/data/ind/item/service/IndItemDerService.java b/iailab-module-data/iailab-module-data-biz/src/main/java/com/iailab/module/data/ind/item/service/IndItemDerService.java new file mode 100644 index 0000000..e078fe9 --- /dev/null +++ b/iailab-module-data/iailab-module-data-biz/src/main/java/com/iailab/module/data/ind/item/service/IndItemDerService.java @@ -0,0 +1,12 @@ +package com.iailab.module.data.ind.item.service; + +import com.iailab.framework.common.service.BaseService; +import com.iailab.module.data.ind.item.entity.IndItemDerEntity; + +/** + * @author PanZhibao + * @Description + * @createTime 2024年09月11日 + */ +public interface IndItemDerService extends BaseService<IndItemDerEntity> { +} \ No newline at end of file diff --git a/iailab-module-data/iailab-module-data-biz/src/main/java/com/iailab/module/data/ind/item/service/IndItemService.java b/iailab-module-data/iailab-module-data-biz/src/main/java/com/iailab/module/data/ind/item/service/IndItemService.java new file mode 100644 index 0000000..b092e3c --- /dev/null +++ b/iailab-module-data/iailab-module-data-biz/src/main/java/com/iailab/module/data/ind/item/service/IndItemService.java @@ -0,0 +1,25 @@ +package com.iailab.module.data.ind.item.service; + +import com.iailab.framework.common.pojo.PageResult; +import com.iailab.framework.common.service.BaseService; +import com.iailab.module.data.ind.item.entity.IndItemEntity; +import com.iailab.module.data.ind.item.vo.IndItemPageReqVO; +import com.iailab.module.data.ind.item.vo.IndItemSaveReqVO; + +/** + * @author PanZhibao + * @Description + * @createTime 2024年09月11日 + */ +public interface IndItemService extends BaseService<IndItemEntity> { + + PageResult<IndItemEntity> page(IndItemPageReqVO reqVO); + + void create(IndItemSaveReqVO reqVO); + + void update(IndItemSaveReqVO reqVO); + + IndItemEntity get(String id); + + void delete(String id); +} \ No newline at end of file diff --git a/iailab-module-data/iailab-module-data-biz/src/main/java/com/iailab/module/data/ind/item/service/impl/IndItemAtomServiceImpl.java b/iailab-module-data/iailab-module-data-biz/src/main/java/com/iailab/module/data/ind/item/service/impl/IndItemAtomServiceImpl.java new file mode 100644 index 0000000..34f2dd1 --- /dev/null +++ b/iailab-module-data/iailab-module-data-biz/src/main/java/com/iailab/module/data/ind/item/service/impl/IndItemAtomServiceImpl.java @@ -0,0 +1,16 @@ +package com.iailab.module.data.ind.item.service.impl; + +import com.iailab.framework.common.service.impl.BaseServiceImpl; +import com.iailab.module.data.ind.item.dao.IndItemAtomDao; +import com.iailab.module.data.ind.item.entity.IndItemAtomEntity; +import com.iailab.module.data.ind.item.service.IndItemAtomService; +import org.springframework.stereotype.Service; + +/** + * @author PanZhibao + * @Description + * @createTime 2024年09月11日 + */ +@Service +public class IndItemAtomServiceImpl extends BaseServiceImpl<IndItemAtomDao, IndItemAtomEntity> implements IndItemAtomService { +} \ No newline at end of file diff --git a/iailab-module-data/iailab-module-data-biz/src/main/java/com/iailab/module/data/ind/item/service/impl/IndItemCalServiceImpl.java b/iailab-module-data/iailab-module-data-biz/src/main/java/com/iailab/module/data/ind/item/service/impl/IndItemCalServiceImpl.java new file mode 100644 index 0000000..19447b5 --- /dev/null +++ b/iailab-module-data/iailab-module-data-biz/src/main/java/com/iailab/module/data/ind/item/service/impl/IndItemCalServiceImpl.java @@ -0,0 +1,14 @@ +package com.iailab.module.data.ind.item.service.impl; + +import com.iailab.framework.common.service.impl.BaseServiceImpl; +import com.iailab.module.data.ind.item.dao.IndItemCalDao; +import com.iailab.module.data.ind.item.entity.IndItemCalEntity; +import com.iailab.module.data.ind.item.service.IndItemCalService; + +/** + * @author PanZhibao + * @Description + * @createTime 2024年09月11日 + */ +public class IndItemCalServiceImpl extends BaseServiceImpl<IndItemCalDao, IndItemCalEntity> implements IndItemCalService { +} \ No newline at end of file diff --git a/iailab-module-data/iailab-module-data-biz/src/main/java/com/iailab/module/data/ind/item/service/impl/IndItemDerServiceImpl.java b/iailab-module-data/iailab-module-data-biz/src/main/java/com/iailab/module/data/ind/item/service/impl/IndItemDerServiceImpl.java new file mode 100644 index 0000000..11131bd --- /dev/null +++ b/iailab-module-data/iailab-module-data-biz/src/main/java/com/iailab/module/data/ind/item/service/impl/IndItemDerServiceImpl.java @@ -0,0 +1,16 @@ +package com.iailab.module.data.ind.item.service.impl; + +import com.iailab.framework.common.service.impl.BaseServiceImpl; +import com.iailab.module.data.ind.item.dao.IndItemDerDao; +import com.iailab.module.data.ind.item.entity.IndItemDerEntity; +import com.iailab.module.data.ind.item.service.IndItemDerService; +import org.springframework.stereotype.Service; + +/** + * @author PanZhibao + * @Description + * @createTime 2024年09月11日 + */ +@Service +public class IndItemDerServiceImpl extends BaseServiceImpl<IndItemDerDao, IndItemDerEntity> implements IndItemDerService { +} \ No newline at end of file diff --git a/iailab-module-data/iailab-module-data-biz/src/main/java/com/iailab/module/data/ind/item/service/impl/IndItemServiceImpl.java b/iailab-module-data/iailab-module-data-biz/src/main/java/com/iailab/module/data/ind/item/service/impl/IndItemServiceImpl.java new file mode 100644 index 0000000..7b98092 --- /dev/null +++ b/iailab-module-data/iailab-module-data-biz/src/main/java/com/iailab/module/data/ind/item/service/impl/IndItemServiceImpl.java @@ -0,0 +1,55 @@ +package com.iailab.module.data.ind.item.service.impl; + +import com.iailab.framework.common.pojo.PageResult; +import com.iailab.framework.common.service.impl.BaseServiceImpl; +import com.iailab.framework.common.util.object.BeanUtils; +import com.iailab.module.data.ind.item.dao.IndItemDao; +import com.iailab.module.data.ind.item.entity.IndItemEntity; +import com.iailab.module.data.ind.item.service.IndItemService; +import com.iailab.module.data.ind.item.vo.IndItemPageReqVO; +import com.iailab.module.data.ind.item.vo.IndItemSaveReqVO; +import org.springframework.stereotype.Service; + +import java.util.Date; +import java.util.UUID; + +/** + * @author PanZhibao + * @Description + * @createTime 2024年09月11日 + */ +@Service +public class IndItemServiceImpl extends BaseServiceImpl<IndItemDao, IndItemEntity> implements IndItemService { + + @Override + public PageResult<IndItemEntity> page(IndItemPageReqVO reqVO) { + return baseDao.selectPage(reqVO); + } + + @Override + public void create(IndItemSaveReqVO createReqVO) { + IndItemEntity entity = BeanUtils.toBean(createReqVO, IndItemEntity.class); + entity.setId(UUID.randomUUID().toString()); + entity.setCreateTime(new Date()); + baseDao.insert(entity); + } + + @Override + public void update(IndItemSaveReqVO updateReqVO) { + IndItemEntity entity = BeanUtils.toBean(updateReqVO, IndItemEntity.class); + entity.setUpdateTime(new Date()); + baseDao.updateById(entity); + } + + @Override + public IndItemEntity get(String id) { + return baseDao.selectById(id); + } + + @Override + public void delete(String id) { + baseDao.deleteById(id); + } + + +} \ No newline at end of file diff --git a/iailab-module-data/iailab-module-data-biz/src/main/java/com/iailab/module/data/ind/item/vo/IndItemPageReqVO.java b/iailab-module-data/iailab-module-data-biz/src/main/java/com/iailab/module/data/ind/item/vo/IndItemPageReqVO.java new file mode 100644 index 0000000..4d6a865 --- /dev/null +++ b/iailab-module-data/iailab-module-data-biz/src/main/java/com/iailab/module/data/ind/item/vo/IndItemPageReqVO.java @@ -0,0 +1,31 @@ +package com.iailab.module.data.ind.item.vo; + +import com.iailab.framework.common.pojo.PageParam; +import io.swagger.v3.oas.annotations.media.Schema; +import lombok.Data; +import lombok.EqualsAndHashCode; +import lombok.ToString; + +/** + * @author PanZhibao + * @Description + * @createTime 2024年09月11日 + */ +@Schema(description = "数据平台 - 指标项分页 Request VO") +@Data +@EqualsAndHashCode(callSuper = true) +@ToString(callSuper = true) +public class IndItemPageReqVO extends PageParam { + + @Schema(description = "指标编码", example = "") + private String itemNo; + + @Schema(description = "指标名称", example = "") + private String itemName; + + @Schema(description = "指标类型", example = "") + private String itemType; + + @Schema(description = "指标分类", example = "") + private String itemCategory; +} \ No newline at end of file diff --git a/iailab-module-data/iailab-module-data-biz/src/main/java/com/iailab/module/data/ind/item/vo/IndItemRespVO.java b/iailab-module-data/iailab-module-data-biz/src/main/java/com/iailab/module/data/ind/item/vo/IndItemRespVO.java new file mode 100644 index 0000000..960d300 --- /dev/null +++ b/iailab-module-data/iailab-module-data-biz/src/main/java/com/iailab/module/data/ind/item/vo/IndItemRespVO.java @@ -0,0 +1,65 @@ +package com.iailab.module.data.ind.item.vo; + +import com.alibaba.excel.annotation.ExcelIgnoreUnannotated; +import com.alibaba.excel.annotation.ExcelProperty; +import io.swagger.v3.oas.annotations.media.Schema; +import lombok.Data; + +import java.util.Date; + +/** + * @author PanZhibao + * @Description + * @createTime 2024年09月11日 + */ +@Schema(description = "数据平台 - 指标项 Response VO") +@Data +@ExcelIgnoreUnannotated +public class IndItemRespVO { + + @Schema(description = "ID", requiredMode = Schema.RequiredMode.REQUIRED, example = "1024") + @ExcelProperty("ID") + private String id; + + @Schema(description = "指标编码", example = "") + private String itemNo; + + @Schema(description = "指标名称", example = "") + private String itemName; + + @Schema(description = "指标类型", example = "") + private String itemType; + + @Schema(description = "指标分类", example = "") + private String itemCategory; + + @Schema(description = "转换系数", example = "") + private Boolean coefficient; + + @Schema(description = "指标精度", example = "") + private Integer precision; + + @Schema(description = "时间粒度", example = "") + private String timeGranularity; + + @Schema(description = "数量单位", example = "") + private String unit; + + @Schema(description = "备注", example = "") + private String remark; + + @Schema(description = "状态", example = "") + private Integer status; + + @Schema(description = "创建者", example = "") + private String creator; + + @Schema(description = "创建时间", example = "") + private Date createTime; + + @Schema(description = "更新者", example = "") + private String updater; + + @Schema(description = "更新时间", example = "") + private Date updateTime; +} \ No newline at end of file diff --git a/iailab-module-data/iailab-module-data-biz/src/main/java/com/iailab/module/data/ind/item/vo/IndItemSaveReqVO.java b/iailab-module-data/iailab-module-data-biz/src/main/java/com/iailab/module/data/ind/item/vo/IndItemSaveReqVO.java new file mode 100644 index 0000000..7b345a5 --- /dev/null +++ b/iailab-module-data/iailab-module-data-biz/src/main/java/com/iailab/module/data/ind/item/vo/IndItemSaveReqVO.java @@ -0,0 +1,82 @@ +package com.iailab.module.data.ind.item.vo; + +import io.swagger.v3.oas.annotations.media.Schema; +import lombok.Data; + +import javax.validation.constraints.NotNull; + +/** + * @author PanZhibao + * @Description + * @createTime 2024年09月11日 + */ +@Schema(description = "数据平台 - 指标项创建/修改 Request VO") +@Data +public class IndItemSaveReqVO { + + @Schema(description = "ID") + private String id; + + /** + * 指标编码 + */ + @Schema(description = "名称") + private String itemNo; + + /** + * 指标名称 + */ + @Schema(description = "名称", requiredMode = Schema.RequiredMode.REQUIRED) + @NotNull(message = "名称不能为空") + private String itemName; + + /** + * 指标类型 + */ + @Schema(description = "名称", requiredMode = Schema.RequiredMode.REQUIRED) + @NotNull(message = "名称不能为空") + private String itemType; + + /** + * 指标分类 + */ + @Schema(description = "名称", requiredMode = Schema.RequiredMode.REQUIRED) + @NotNull(message = "名称不能为空") + private String itemCategory; + + /** + * 转换系数 + */ + @Schema(description = "名称") + private Boolean coefficient; + + /** + * 指标精度 + */ + @Schema(description = "名称") + private Integer precision; + + /** + * 时间粒度 + */ + @Schema(description = "名称") + private String timeGranularity; + + /** + * 数量单位 + */ + @Schema(description = "名称") + private String unit; + + /** + * 备注 + */ + @Schema(description = "名称") + private String remark; + + /** + * 状态 + */ + @Schema(description = "名称") + private Integer status; +} \ No newline at end of file -- Gitblit v1.9.3