From 2a6f0817a8596d895431743dfc3a3502284d99e4 Mon Sep 17 00:00:00 2001
From: 潘志宝 <979469083@qq.com>
Date: 星期三, 11 九月 2024 14:29:22 +0800
Subject: [PATCH] 指标值

---
 iailab-module-data/iailab-module-data-biz/src/main/java/com/iailab/module/data/ind/item/service/impl/IndItemServiceImpl.java       |    2 
 iailab-module-data/iailab-module-data-biz/src/main/java/com/iailab/module/data/ind/item/dao/IndItemDao.java                        |    4 
 iailab-module-data/iailab-module-data-biz/src/main/java/com/iailab/module/data/ind/value/package-info.java                         |    1 
 iailab-module-data/iailab-module-data-biz/src/main/java/com/iailab/module/data/ind/value/vo/IndItemValuePageReqVO.java             |   28 ++++
 iailab-module-data/iailab-module-data-biz/src/main/java/com/iailab/module/data/ind/value/entity/IndItemValueEntity.java            |   41 +++++
 iailab-module-data/iailab-module-data-biz/src/main/java/com/iailab/module/data/ind/value/vo/IndItemValueRespVO.java                |   32 ++++
 iailab-module-data/iailab-module-data-biz/src/main/java/com/iailab/module/data/ind/value/service/impl/IndItemValueServiceImpl.java |   50 +++++++
 iailab-module-data/iailab-module-data-biz/src/main/java/com/iailab/module/data/ind/item/controller/IndItemController.java          |   64 ++++++++
 iailab-module-data/iailab-module-data-biz/src/main/java/com/iailab/module/data/ind/value/dao/IndItemValueDao.java                  |   27 +++
 iailab-module-data/iailab-module-data-biz/src/main/java/com/iailab/module/data/ind/value/vo/IndItemValueSaveReqVO.java             |   34 ++++
 iailab-module-data/iailab-module-data-biz/src/main/java/com/iailab/module/data/ind/value/controller/IndItemValueController.java    |   77 +++++++++++
 iailab-module-data/iailab-module-data-biz/src/main/java/com/iailab/module/data/ind/value/service/IndItemValueService.java          |   25 +++
 12 files changed, 378 insertions(+), 7 deletions(-)

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
index 8a38f21..dbe122c 100644
--- 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
@@ -1,18 +1,76 @@
 package com.iailab.module.data.ind.item.controller;
 
+import com.iailab.framework.common.pojo.CommonResult;
+import com.iailab.framework.common.pojo.PageResult;
+import com.iailab.framework.common.util.object.BeanUtils;
+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.IndItemRespVO;
+import com.iailab.module.data.ind.item.vo.IndItemSaveReqVO;
+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.RequestMapping;
-import org.springframework.web.bind.annotation.RestController;
+import org.springframework.web.bind.annotation.*;
+
+import javax.validation.Valid;
+
+import static com.iailab.framework.common.pojo.CommonResult.success;
 
 /**
  * @author PanZhibao
  * @Description
  * @createTime 2024年09月11日
  */
-@Tag(name = "数据平台 - 指标定义")
+@Tag(name = "数据平台 - 指标项")
 @RestController
 @RequestMapping("/data/ind-item")
 @Validated
 public class IndItemController {
+    @Autowired
+    private IndItemService indItemService;
+
+    @GetMapping("/page")
+    @Operation(summary = "获取指标项列表", description = "用于【指标项】界面")
+    @PreAuthorize("@ss.hasPermission('data:ind-item:query')")
+    public CommonResult<PageResult<IndItemRespVO>> page(IndItemPageReqVO reqVO) {
+        PageResult<IndItemEntity> page = indItemService.page(reqVO);
+        return success(BeanUtils.toBean(page, IndItemRespVO.class));
+    }
+
+    @PostMapping("/create")
+    @Operation(summary = "创建指标项")
+    @PreAuthorize("@ss.hasPermission('data:ind-item:create')")
+    public CommonResult<Boolean> create(@Valid @RequestBody IndItemSaveReqVO createReqVO) {
+        indItemService.create(createReqVO);
+        return success(true);
+    }
+
+    @PutMapping("/update")
+    @Operation(summary = "修改指标项")
+    @PreAuthorize("@ss.hasPermission('data:ind-item:update')")
+    public CommonResult<Boolean> update(@Valid @RequestBody IndItemSaveReqVO updateReqVO) {
+        indItemService.update(updateReqVO);
+        return success(true);
+    }
+
+    @DeleteMapping("/delete")
+    @Operation(summary = "删除指标项")
+    @Parameter(name = "id", description = "指标项编号", required= true, example = "1024")
+    @PreAuthorize("@ss.hasPermission('data:ind-item:delete')")
+    public CommonResult<Boolean> delete(@RequestParam("id") String id) {
+        indItemService.delete(id);
+        return success(true);
+    }
+
+    @GetMapping("/get")
+    @Operation(summary = "获取指标项信息")
+    @PreAuthorize("@ss.hasPermission('system:ind-item:query')")
+    public CommonResult<IndItemRespVO> get(String id) {
+        IndItemEntity entity = indItemService.get(id);
+        return success(BeanUtils.toBean(entity, IndItemRespVO.class));
+    }
 }
\ 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
index 3cb5a78..7500386 100644
--- 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
@@ -21,8 +21,8 @@
         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())
+                .eqIfPresent(IndItemEntity::getItemType, reqVO.getItemType())
+                .eqIfPresent(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/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
index 7b98092..c342eaf 100644
--- 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
@@ -50,6 +50,4 @@
     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/value/controller/IndItemValueController.java b/iailab-module-data/iailab-module-data-biz/src/main/java/com/iailab/module/data/ind/value/controller/IndItemValueController.java
new file mode 100644
index 0000000..beeb841
--- /dev/null
+++ b/iailab-module-data/iailab-module-data-biz/src/main/java/com/iailab/module/data/ind/value/controller/IndItemValueController.java
@@ -0,0 +1,77 @@
+package com.iailab.module.data.ind.value.controller;
+
+import com.iailab.framework.common.pojo.CommonResult;
+import com.iailab.framework.common.pojo.PageResult;
+import com.iailab.framework.common.util.object.BeanUtils;
+import com.iailab.module.data.ind.item.vo.IndItemRespVO;
+import com.iailab.module.data.ind.value.entity.IndItemValueEntity;
+import com.iailab.module.data.ind.value.service.IndItemValueService;
+import com.iailab.module.data.ind.value.vo.IndItemValuePageReqVO;
+import com.iailab.module.data.ind.value.vo.IndItemValueSaveReqVO;
+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 static com.iailab.framework.common.pojo.CommonResult.success;
+
+/**
+ * @author PanZhibao
+ * @Description
+ * @createTime 2024年09月11日
+ */
+@Tag(name = "数据平台 - 指标项")
+@RestController
+@RequestMapping("/data/ind-item-value")
+@Validated
+public class IndItemValueController {
+
+    @Autowired
+    private IndItemValueService indItemValueService;
+
+    @GetMapping("/page")
+    @Operation(summary = "获取指标项列表", description = "用于【指标项】界面")
+    @PreAuthorize("@ss.hasPermission('data:ind-item-value:query')")
+    public CommonResult<PageResult<IndItemRespVO>> page(IndItemValuePageReqVO reqVO) {
+        PageResult<IndItemValueEntity> page = indItemValueService.page(reqVO);
+        return success(BeanUtils.toBean(page, IndItemRespVO.class));
+    }
+
+    @PostMapping("/create")
+    @Operation(summary = "创建指标项")
+    @PreAuthorize("@ss.hasPermission('data:ind-item-value:create')")
+    public CommonResult<Boolean> create(@Valid @RequestBody IndItemValueSaveReqVO createReqVO) {
+        indItemValueService.create(createReqVO);
+        return success(true);
+    }
+
+    @PutMapping("/update")
+    @Operation(summary = "修改指标项")
+    @PreAuthorize("@ss.hasPermission('data:ind-item-value:update')")
+    public CommonResult<Boolean> update(@Valid @RequestBody IndItemValueSaveReqVO updateReqVO) {
+        indItemValueService.update(updateReqVO);
+        return success(true);
+    }
+
+    @DeleteMapping("/delete")
+    @Operation(summary = "删除指标项")
+    @Parameter(name = "id", description = "指标项编号", required= true, example = "1024")
+    @PreAuthorize("@ss.hasPermission('data:ind-item-value:delete')")
+    public CommonResult<Boolean> delete(@RequestParam("id") String id) {
+        indItemValueService.delete(id);
+        return success(true);
+    }
+
+    @GetMapping("/get")
+    @Operation(summary = "获取指标项信息")
+    @PreAuthorize("@ss.hasPermission('system:ind-item:query')")
+    public CommonResult<IndItemRespVO> get(String id) {
+        IndItemValueEntity entity = indItemValueService.get(id);
+        return success(BeanUtils.toBean(entity, IndItemRespVO.class));
+    }
+}
\ No newline at end of file
diff --git a/iailab-module-data/iailab-module-data-biz/src/main/java/com/iailab/module/data/ind/value/dao/IndItemValueDao.java b/iailab-module-data/iailab-module-data-biz/src/main/java/com/iailab/module/data/ind/value/dao/IndItemValueDao.java
new file mode 100644
index 0000000..3718045
--- /dev/null
+++ b/iailab-module-data/iailab-module-data-biz/src/main/java/com/iailab/module/data/ind/value/dao/IndItemValueDao.java
@@ -0,0 +1,27 @@
+package com.iailab.module.data.ind.value.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.value.entity.IndItemValueEntity;
+import com.iailab.module.data.ind.value.vo.IndItemValuePageReqVO;
+import org.apache.ibatis.annotations.Mapper;
+
+/**
+ * @author PanZhibao
+ * @Description
+ * @createTime 2024年09月11日
+ */
+@TenantDS
+@Mapper
+public interface IndItemValueDao extends BaseMapperX<IndItemValueEntity> {
+
+    default PageResult<IndItemValueEntity> selectPage(IndItemValuePageReqVO reqVO) {
+        return selectPage(reqVO, new LambdaQueryWrapperX<IndItemValueEntity>()
+                .eq(IndItemValueEntity::getItemNo, reqVO.getItemNo())
+                .geIfPresent(IndItemValueEntity::getDataTime, reqVO.getStartTime())
+                .leIfPresent(IndItemValueEntity::getDataTime, reqVO.getEndTime())
+                .orderByDesc(IndItemValueEntity::getDataTime));
+    }
+}
\ No newline at end of file
diff --git a/iailab-module-data/iailab-module-data-biz/src/main/java/com/iailab/module/data/ind/value/entity/IndItemValueEntity.java b/iailab-module-data/iailab-module-data-biz/src/main/java/com/iailab/module/data/ind/value/entity/IndItemValueEntity.java
new file mode 100644
index 0000000..c8cb984
--- /dev/null
+++ b/iailab-module-data/iailab-module-data-biz/src/main/java/com/iailab/module/data/ind/value/entity/IndItemValueEntity.java
@@ -0,0 +1,41 @@
+package com.iailab.module.data.ind.value.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;
+import java.math.BigDecimal;
+
+/**
+ * @author PanZhibao
+ * @Description
+ * @createTime 2024年09月11日
+ */
+@Data
+@TableName("t_ind_item_value")
+public class IndItemValueEntity implements Serializable {
+    private static final long serialVersionUID = 1L;
+
+    /**
+     * 主键
+     */
+    @TableId(value = "id",type = IdType.INPUT)
+    private String id;
+
+    /**
+     * 指标编码
+     */
+    private String itemNo;
+
+    /**
+     * 数据时间
+     */
+    private String dataTime;
+
+    /**
+     * 数据值
+     */
+    private BigDecimal dataValue;
+}
\ No newline at end of file
diff --git a/iailab-module-data/iailab-module-data-biz/src/main/java/com/iailab/module/data/ind/value/package-info.java b/iailab-module-data/iailab-module-data-biz/src/main/java/com/iailab/module/data/ind/value/package-info.java
new file mode 100644
index 0000000..0faa84a
--- /dev/null
+++ b/iailab-module-data/iailab-module-data-biz/src/main/java/com/iailab/module/data/ind/value/package-info.java
@@ -0,0 +1 @@
+package com.iailab.module.data.ind.value;
\ No newline at end of file
diff --git a/iailab-module-data/iailab-module-data-biz/src/main/java/com/iailab/module/data/ind/value/service/IndItemValueService.java b/iailab-module-data/iailab-module-data-biz/src/main/java/com/iailab/module/data/ind/value/service/IndItemValueService.java
new file mode 100644
index 0000000..b173334
--- /dev/null
+++ b/iailab-module-data/iailab-module-data-biz/src/main/java/com/iailab/module/data/ind/value/service/IndItemValueService.java
@@ -0,0 +1,25 @@
+package com.iailab.module.data.ind.value.service;
+
+import com.iailab.framework.common.pojo.PageResult;
+import com.iailab.framework.common.service.BaseService;
+import com.iailab.module.data.ind.value.entity.IndItemValueEntity;
+import com.iailab.module.data.ind.value.vo.IndItemValuePageReqVO;
+import com.iailab.module.data.ind.value.vo.IndItemValueSaveReqVO;
+
+/**
+ * @author PanZhibao
+ * @Description
+ * @createTime 2024年09月11日
+ */
+public interface IndItemValueService extends BaseService<IndItemValueEntity> {
+
+    PageResult<IndItemValueEntity> page(IndItemValuePageReqVO reqVO);
+
+    void create(IndItemValueSaveReqVO createReqVO);
+
+    void update(IndItemValueSaveReqVO updateReqVO);
+
+    IndItemValueEntity get(String id);
+
+    void delete(String id);
+}
diff --git a/iailab-module-data/iailab-module-data-biz/src/main/java/com/iailab/module/data/ind/value/service/impl/IndItemValueServiceImpl.java b/iailab-module-data/iailab-module-data-biz/src/main/java/com/iailab/module/data/ind/value/service/impl/IndItemValueServiceImpl.java
new file mode 100644
index 0000000..5efbb4c
--- /dev/null
+++ b/iailab-module-data/iailab-module-data-biz/src/main/java/com/iailab/module/data/ind/value/service/impl/IndItemValueServiceImpl.java
@@ -0,0 +1,50 @@
+package com.iailab.module.data.ind.value.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.value.dao.IndItemValueDao;
+import com.iailab.module.data.ind.value.entity.IndItemValueEntity;
+import com.iailab.module.data.ind.value.service.IndItemValueService;
+import com.iailab.module.data.ind.value.vo.IndItemValuePageReqVO;
+import com.iailab.module.data.ind.value.vo.IndItemValueSaveReqVO;
+import org.springframework.stereotype.Service;
+
+import java.util.UUID;
+
+/**
+ * @author PanZhibao
+ * @Description
+ * @createTime 2024年09月11日
+ */
+@Service
+public class IndItemValueServiceImpl extends BaseServiceImpl<IndItemValueDao, IndItemValueEntity> implements IndItemValueService {
+
+    @Override
+    public PageResult<IndItemValueEntity> page(IndItemValuePageReqVO reqVO) {
+        return baseDao.selectPage(reqVO);
+    }
+
+    @Override
+    public void create(IndItemValueSaveReqVO createReqVO) {
+        IndItemValueEntity entity = BeanUtils.toBean(createReqVO, IndItemValueEntity.class);
+        entity.setId(UUID.randomUUID().toString());
+        baseDao.insert(entity);
+    }
+
+    @Override
+    public void update(IndItemValueSaveReqVO updateReqVO) {
+        IndItemValueEntity entity = BeanUtils.toBean(updateReqVO, IndItemValueEntity.class);
+        baseDao.updateById(entity);
+    }
+
+    @Override
+    public IndItemValueEntity 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/value/vo/IndItemValuePageReqVO.java b/iailab-module-data/iailab-module-data-biz/src/main/java/com/iailab/module/data/ind/value/vo/IndItemValuePageReqVO.java
new file mode 100644
index 0000000..496d167
--- /dev/null
+++ b/iailab-module-data/iailab-module-data-biz/src/main/java/com/iailab/module/data/ind/value/vo/IndItemValuePageReqVO.java
@@ -0,0 +1,28 @@
+package com.iailab.module.data.ind.value.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 IndItemValuePageReqVO extends PageParam {
+
+    @Schema(description = "指标编码", example = "")
+    private String itemNo;
+
+    @Schema(description = "开始时间", example = "")
+    private String startTime;
+
+    @Schema(description = "结束时间", example = "")
+    private String endTime;
+}
\ No newline at end of file
diff --git a/iailab-module-data/iailab-module-data-biz/src/main/java/com/iailab/module/data/ind/value/vo/IndItemValueRespVO.java b/iailab-module-data/iailab-module-data-biz/src/main/java/com/iailab/module/data/ind/value/vo/IndItemValueRespVO.java
new file mode 100644
index 0000000..d03cbf1
--- /dev/null
+++ b/iailab-module-data/iailab-module-data-biz/src/main/java/com/iailab/module/data/ind/value/vo/IndItemValueRespVO.java
@@ -0,0 +1,32 @@
+package com.iailab.module.data.ind.value.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.math.BigDecimal;
+
+/**
+ * @author PanZhibao
+ * @Description
+ * @createTime 2024年09月11日
+ */
+@Schema(description = "数据平台 - 指标值 Response VO")
+@Data
+@ExcelIgnoreUnannotated
+public class IndItemValueRespVO {
+
+    @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 dataTime;
+
+    @Schema(description = "数据值", example = "")
+    private BigDecimal dataValue;
+}
\ No newline at end of file
diff --git a/iailab-module-data/iailab-module-data-biz/src/main/java/com/iailab/module/data/ind/value/vo/IndItemValueSaveReqVO.java b/iailab-module-data/iailab-module-data-biz/src/main/java/com/iailab/module/data/ind/value/vo/IndItemValueSaveReqVO.java
new file mode 100644
index 0000000..8d60720
--- /dev/null
+++ b/iailab-module-data/iailab-module-data-biz/src/main/java/com/iailab/module/data/ind/value/vo/IndItemValueSaveReqVO.java
@@ -0,0 +1,34 @@
+package com.iailab.module.data.ind.value.vo;
+
+import io.swagger.v3.oas.annotations.media.Schema;
+import lombok.Data;
+
+import java.math.BigDecimal;
+
+/**
+ * @author PanZhibao
+ * @Description
+ * @createTime 2024年09月11日
+ */
+@Schema(description = "数据平台 - 指标值创建/修改 Request VO")
+@Data
+public class IndItemValueSaveReqVO {
+
+    @Schema(description = "ID")
+    private String id;
+
+    /**
+     * 指标编码
+     */
+    private String itemNo;
+
+    /**
+     * 数据时间
+     */
+    private String dataTime;
+
+    /**
+     * 数据值
+     */
+    private BigDecimal dataValue;
+}
\ No newline at end of file

--
Gitblit v1.9.3