Jay
2024-09-24 68413a1b74697d73d3b2147d8ece68915c900382
指标定义后端
已修改14个文件
已删除1个文件
已添加7个文件
563 ■■■■ 文件已修改
iailab-module-data/iailab-module-data-biz/src/main/java/com/iailab/module/data/common/enums/ItemTypeEnum.java 22 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
iailab-module-data/iailab-module-data-biz/src/main/java/com/iailab/module/data/ind/item/controller/IndItemController.java 76 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
iailab-module-data/iailab-module-data-biz/src/main/java/com/iailab/module/data/ind/item/controller/admin/IndItemController.java 114 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
iailab-module-data/iailab-module-data-biz/src/main/java/com/iailab/module/data/ind/item/controller/package-info.java 1 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
iailab-module-data/iailab-module-data-biz/src/main/java/com/iailab/module/data/ind/item/dao/IndItemDao.java 7 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
iailab-module-data/iailab-module-data-biz/src/main/java/com/iailab/module/data/ind/item/entity/IndItemDerEntity.java 5 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
iailab-module-data/iailab-module-data-biz/src/main/java/com/iailab/module/data/ind/item/entity/IndItemEntity.java 5 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
iailab-module-data/iailab-module-data-biz/src/main/java/com/iailab/module/data/ind/item/service/IndItemAtomService.java 7 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
iailab-module-data/iailab-module-data-biz/src/main/java/com/iailab/module/data/ind/item/service/IndItemCalService.java 5 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
iailab-module-data/iailab-module-data-biz/src/main/java/com/iailab/module/data/ind/item/service/IndItemDerService.java 5 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
iailab-module-data/iailab-module-data-biz/src/main/java/com/iailab/module/data/ind/item/service/IndItemService.java 5 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
iailab-module-data/iailab-module-data-biz/src/main/java/com/iailab/module/data/ind/item/service/impl/IndItemAtomServiceImpl.java 17 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
iailab-module-data/iailab-module-data-biz/src/main/java/com/iailab/module/data/ind/item/service/impl/IndItemCalServiceImpl.java 14 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
iailab-module-data/iailab-module-data-biz/src/main/java/com/iailab/module/data/ind/item/service/impl/IndItemDerServiceImpl.java 12 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
iailab-module-data/iailab-module-data-biz/src/main/java/com/iailab/module/data/ind/item/service/impl/IndItemServiceImpl.java 60 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
iailab-module-data/iailab-module-data-biz/src/main/java/com/iailab/module/data/ind/item/vo/IndItemAtomVo.java 46 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
iailab-module-data/iailab-module-data-biz/src/main/java/com/iailab/module/data/ind/item/vo/IndItemCalVo.java 32 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
iailab-module-data/iailab-module-data-biz/src/main/java/com/iailab/module/data/ind/item/vo/IndItemDerVo.java 56 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
iailab-module-data/iailab-module-data-biz/src/main/java/com/iailab/module/data/ind/item/vo/IndItemRespVO.java 13 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
iailab-module-data/iailab-module-data-biz/src/main/java/com/iailab/module/data/ind/item/vo/IndItemSaveReqVO.java 31 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
iailab-module-data/iailab-module-data-biz/src/main/java/com/iailab/module/data/point/common/IncreaseCodeEnum.java 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
iailab-module-data/iailab-module-data-biz/src/main/resources/mapper/ind/IndItemDao.xml 28 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
iailab-module-data/iailab-module-data-biz/src/main/java/com/iailab/module/data/common/enums/ItemTypeEnum.java
对比新文件
@@ -0,0 +1,22 @@
package com.iailab.module.data.common.enums;
import lombok.AllArgsConstructor;
import lombok.Getter;
/**
 * @author PanZhibao
 * @Description
 * @createTime 2023年05月03日 19:10:00
 */
@Getter
@AllArgsConstructor
public enum ItemTypeEnum {
    ATOM("ATOM"),
    DER("DER"),
    CAL("CAL");
    private String code;
}
iailab-module-data/iailab-module-data-biz/src/main/java/com/iailab/module/data/ind/item/controller/IndItemController.java
文件已删除
iailab-module-data/iailab-module-data-biz/src/main/java/com/iailab/module/data/ind/item/controller/admin/IndItemController.java
对比新文件
@@ -0,0 +1,114 @@
package com.iailab.module.data.ind.item.controller.admin;
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.common.enums.ItemTypeEnum;
import com.iailab.module.data.ind.category.service.IndItemCategoryService;
import com.iailab.module.data.ind.item.entity.IndItemEntity;
import com.iailab.module.data.ind.item.service.IndItemAtomService;
import com.iailab.module.data.ind.item.service.IndItemCalService;
import com.iailab.module.data.ind.item.service.IndItemDerService;
import com.iailab.module.data.ind.item.service.IndItemService;
import com.iailab.module.data.ind.item.vo.*;
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.List;
import static com.iailab.framework.common.pojo.CommonResult.success;
/**
 * @author PanZhibao
 * @Description
 * @createTime 2024年09月11日
 */
@Tag(name = "数据平台 - 指标项")
@RestController
@RequestMapping("/data/ind-item")
@Validated
public class IndItemController {
    @Autowired
    private IndItemService indItemService;
    @Autowired
    private IndItemAtomService indItemAtomService;
    @Autowired
    private IndItemDerService indItemDerService;
    @Autowired
    private IndItemCalService indItemCalService;
    @Autowired
    private IndItemCategoryService indItemCategoryService;
    @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);
        PageResult<IndItemRespVO> result = BeanUtils.toBean(page, IndItemRespVO.class);
        for (IndItemRespVO item : result.getList()){
            item.setItemCategoryName(indItemCategoryService.get(item.getItemCategory()) == null ? "" : indItemCategoryService.get(item.getItemCategory()).getLabel());
        }
        return success(result);
    }
    @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('data:ind-item:query')")
    public CommonResult<IndItemRespVO> get(@RequestParam("id") String id) {
        IndItemEntity entity = indItemService.get(id);
        IndItemRespVO respVO = BeanUtils.toBean(entity, IndItemRespVO.class);
        if (ItemTypeEnum.ATOM.getCode().equals(entity.getItemType())){
            respVO.setAtomItem(indItemAtomService.getByItemId(entity.getId()));
        }else if (ItemTypeEnum.DER.getCode().equals(entity.getItemType())){
            IndItemDerVo derItem = indItemDerService.getByItemId(entity.getId());
            respVO.setDerItem(derItem);
            respVO.setAtomItem(indItemAtomService.get(derItem.getAtomItemId()));
        }else if (ItemTypeEnum.CAL.getCode().equals(entity.getItemType())){
            respVO.setCalItem(indItemCalService.getByItemId(entity.getId()) == null ? new IndItemCalVo() : indItemCalService.getByItemId(entity.getId()));
        }
        return success(respVO);
    }
    @GetMapping("/getList")
    @Operation(summary = "获取指标项列表", description = "用于【指标项】界面")
    @PreAuthorize("@ss.hasPermission('data:ind-item:query')")
    public CommonResult<List<IndItemRespVO>> getList(IndItemPageReqVO reqVO) {
        List<IndItemRespVO> list = indItemService.getList(reqVO);
        return success(list);
    }
}
iailab-module-data/iailab-module-data-biz/src/main/java/com/iailab/module/data/ind/item/controller/package-info.java
对比新文件
@@ -0,0 +1 @@
package com.iailab.module.data.ind.item.controller;
iailab-module-data/iailab-module-data-biz/src/main/java/com/iailab/module/data/ind/item/dao/IndItemDao.java
@@ -6,7 +6,11 @@
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 com.iailab.module.data.ind.item.vo.IndItemRespVO;
import org.apache.ibatis.annotations.Mapper;
import org.apache.ibatis.annotations.Param;
import java.util.List;
/**
 * @author PanZhibao
@@ -16,6 +20,7 @@
@TenantDS
@Mapper
public interface IndItemDao extends BaseMapperX<IndItemEntity> {
    List<IndItemRespVO> getItemList(@Param("params")IndItemPageReqVO reqVO);
    default PageResult<IndItemEntity> selectPage(IndItemPageReqVO reqVO) {
        return selectPage(reqVO, new LambdaQueryWrapperX<IndItemEntity>()
@@ -25,4 +30,6 @@
                .eqIfPresent(IndItemEntity::getItemCategory, reqVO.getItemCategory())
                .orderByDesc(IndItemEntity::getCreateTime));
    }
}
iailab-module-data/iailab-module-data-biz/src/main/java/com/iailab/module/data/ind/item/entity/IndItemDerEntity.java
@@ -6,6 +6,7 @@
import lombok.Data;
import java.io.Serializable;
import java.sql.Date;
/**
 * 派生指标
@@ -46,12 +47,12 @@
    /**
     * 开始时间
     */
    private String timeStart;
    private Date timeStart;
    /**
     * 结束时间
     */
    private String timeEnd;
    private Date timeEnd;
    /**
     * 分析维度
iailab-module-data/iailab-module-data-biz/src/main/java/com/iailab/module/data/ind/item/entity/IndItemEntity.java
@@ -1,9 +1,9 @@
package com.iailab.module.data.ind.item.entity;
import com.baomidou.mybatisplus.annotation.IdType;
import com.baomidou.mybatisplus.annotation.TableField;
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;
@@ -50,11 +50,12 @@
    /**
     * 转换系数
     */
    private Boolean coefficient;
    private String coefficient;
    /**
     * 指标精度
     */
    @TableField("`precision`")
    private Integer precision;
    /**
iailab-module-data/iailab-module-data-biz/src/main/java/com/iailab/module/data/ind/item/service/IndItemAtomService.java
@@ -2,6 +2,7 @@
import com.iailab.framework.common.service.BaseService;
import com.iailab.module.data.ind.item.entity.IndItemAtomEntity;
import com.iailab.module.data.ind.item.vo.IndItemAtomVo;
/**
 * @author PanZhibao
@@ -9,4 +10,10 @@
 * @createTime 2024年09月11日
 */
public interface IndItemAtomService extends BaseService<IndItemAtomEntity> {
    IndItemAtomVo getByItemId(String itemId);
    IndItemAtomVo get(String id);
    void deleteByItemId(String itemId);
}
iailab-module-data/iailab-module-data-biz/src/main/java/com/iailab/module/data/ind/item/service/IndItemCalService.java
@@ -2,6 +2,7 @@
import com.iailab.framework.common.service.BaseService;
import com.iailab.module.data.ind.item.entity.IndItemCalEntity;
import com.iailab.module.data.ind.item.vo.IndItemCalVo;
/**
 * @author PanZhibao
@@ -9,4 +10,8 @@
 * @createTime 2024年09月11日
 */
public interface IndItemCalService extends BaseService<IndItemCalEntity> {
    IndItemCalVo getByItemId(String itemId);
    void deleteByItemId(String itemId);
}
iailab-module-data/iailab-module-data-biz/src/main/java/com/iailab/module/data/ind/item/service/IndItemDerService.java
@@ -2,6 +2,7 @@
import com.iailab.framework.common.service.BaseService;
import com.iailab.module.data.ind.item.entity.IndItemDerEntity;
import com.iailab.module.data.ind.item.vo.IndItemDerVo;
/**
 * @author PanZhibao
@@ -9,4 +10,8 @@
 * @createTime 2024年09月11日
 */
public interface IndItemDerService extends BaseService<IndItemDerEntity> {
    IndItemDerVo getByItemId(String itemId);
    void deleteByItemId(String itemId);
}
iailab-module-data/iailab-module-data-biz/src/main/java/com/iailab/module/data/ind/item/service/IndItemService.java
@@ -4,7 +4,10 @@
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.IndItemRespVO;
import com.iailab.module.data.ind.item.vo.IndItemSaveReqVO;
import java.util.List;
/**
 * @author PanZhibao
@@ -22,4 +25,6 @@
    IndItemEntity get(String id);
    void delete(String id);
    List<IndItemRespVO> getList(IndItemPageReqVO reqVO);
}
iailab-module-data/iailab-module-data-biz/src/main/java/com/iailab/module/data/ind/item/service/impl/IndItemAtomServiceImpl.java
@@ -1,9 +1,12 @@
package com.iailab.module.data.ind.item.service.impl;
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
import com.iailab.framework.common.service.impl.BaseServiceImpl;
import com.iailab.framework.common.util.object.BeanUtils;
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 com.iailab.module.data.ind.item.vo.IndItemAtomVo;
import org.springframework.stereotype.Service;
/**
@@ -13,4 +16,18 @@
 */
@Service
public class IndItemAtomServiceImpl extends BaseServiceImpl<IndItemAtomDao, IndItemAtomEntity> implements IndItemAtomService {
    @Override
    public IndItemAtomVo getByItemId(String itemId) {
        return BeanUtils.toBean(baseDao.selectOne(new QueryWrapper<IndItemAtomEntity>().eq("item_id", itemId)), IndItemAtomVo.class);
    }
    @Override
    public IndItemAtomVo get(String id) {
        return BeanUtils.toBean(baseDao.selectById(id), IndItemAtomVo.class);
    }
    @Override
    public void deleteByItemId(String itemId) {
        baseDao.delete(new QueryWrapper<IndItemAtomEntity>().eq("item_id", itemId));
    }
}
iailab-module-data/iailab-module-data-biz/src/main/java/com/iailab/module/data/ind/item/service/impl/IndItemCalServiceImpl.java
@@ -1,14 +1,28 @@
package com.iailab.module.data.ind.item.service.impl;
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
import com.iailab.framework.common.service.impl.BaseServiceImpl;
import com.iailab.framework.common.util.object.BeanUtils;
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;
import com.iailab.module.data.ind.item.vo.IndItemCalVo;
import org.springframework.stereotype.Service;
/**
 * @author PanZhibao
 * @Description
 * @createTime 2024年09月11日
 */
@Service
public class IndItemCalServiceImpl extends BaseServiceImpl<IndItemCalDao, IndItemCalEntity> implements IndItemCalService {
    @Override
    public IndItemCalVo getByItemId(String itemId) {
        return BeanUtils.toBean(baseDao.selectOne(new QueryWrapper<IndItemCalEntity>().eq("item_id", itemId)), IndItemCalVo.class);
    }
    @Override
    public void deleteByItemId(String itemId) {
        baseDao.delete(new QueryWrapper<IndItemCalEntity>().eq("item_id", itemId));
    }
}
iailab-module-data/iailab-module-data-biz/src/main/java/com/iailab/module/data/ind/item/service/impl/IndItemDerServiceImpl.java
@@ -1,9 +1,12 @@
package com.iailab.module.data.ind.item.service.impl;
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
import com.iailab.framework.common.service.impl.BaseServiceImpl;
import com.iailab.framework.common.util.object.BeanUtils;
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 com.iailab.module.data.ind.item.vo.IndItemDerVo;
import org.springframework.stereotype.Service;
/**
@@ -13,4 +16,13 @@
 */
@Service
public class IndItemDerServiceImpl extends BaseServiceImpl<IndItemDerDao, IndItemDerEntity> implements IndItemDerService {
    @Override
    public IndItemDerVo getByItemId(String itemId) {
        return BeanUtils.toBean(baseDao.selectOne(new QueryWrapper<IndItemDerEntity>().eq("item_id", itemId)), IndItemDerVo.class);
    }
    @Override
    public void deleteByItemId(String itemId) {
        baseDao.delete(new QueryWrapper<IndItemDerEntity>().eq("item_id", itemId));
    }
}
iailab-module-data/iailab-module-data-biz/src/main/java/com/iailab/module/data/ind/item/service/impl/IndItemServiceImpl.java
@@ -1,16 +1,28 @@
package com.iailab.module.data.ind.item.service.impl;
import com.baomidou.dynamic.datasource.annotation.DSTransactional;
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.common.enums.ItemTypeEnum;
import com.iailab.module.data.ind.item.dao.IndItemDao;
import com.iailab.module.data.ind.item.entity.IndItemAtomEntity;
import com.iailab.module.data.ind.item.entity.IndItemCalEntity;
import com.iailab.module.data.ind.item.entity.IndItemDerEntity;
import com.iailab.module.data.ind.item.entity.IndItemEntity;
import com.iailab.module.data.ind.item.service.IndItemAtomService;
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 com.iailab.module.data.point.common.IncreaseCodeEnum;
import com.iailab.module.data.point.service.DaSequenceNumService;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import org.springframework.transaction.annotation.Transactional;
import java.util.Date;
import java.util.List;
import java.util.UUID;
/**
@@ -21,20 +33,54 @@
@Service
public class IndItemServiceImpl extends BaseServiceImpl<IndItemDao, IndItemEntity> implements IndItemService {
    @Autowired
    private IndItemAtomService indItemAtomService;
    @Autowired
    private IndItemDerServiceImpl indItemDerServiceImpl;
    @Autowired
    private IndItemCalServiceImpl indItemCalServiceImpl;
    @Autowired
    private DaSequenceNumService daSequenceNumService;
    @Override
    public PageResult<IndItemEntity> page(IndItemPageReqVO reqVO) {
        return baseDao.selectPage(reqVO);
    }
    @Override
    @Transactional(rollbackFor = Exception.class)
    @DSTransactional(rollbackFor= Exception.class)
    public void create(IndItemSaveReqVO createReqVO) {
        IndItemEntity entity = BeanUtils.toBean(createReqVO, IndItemEntity.class);
        entity.setId(UUID.randomUUID().toString());
        if(ItemTypeEnum.ATOM.getCode().equals(createReqVO.getItemType())){
            IndItemAtomEntity atomEntity = BeanUtils.toBean(createReqVO.getAtomItem(), IndItemAtomEntity.class);
            atomEntity.setId(UUID.randomUUID().toString());
            atomEntity.setItemId(entity.getId());
            indItemAtomService.insert(atomEntity);
            entity.setItemNo(daSequenceNumService.getAndIncreaseByCode(IncreaseCodeEnum.IND_A.name()));
        }else if (ItemTypeEnum.DER.getCode().equals(createReqVO.getItemType())){
            IndItemDerEntity derEntity = BeanUtils.toBean(createReqVO.getDerItem(), IndItemDerEntity.class);
            derEntity.setId(UUID.randomUUID().toString());
            derEntity.setItemId(entity.getId());
            indItemDerServiceImpl.insert(derEntity);
            entity.setItemNo(daSequenceNumService.getAndIncreaseByCode(IncreaseCodeEnum.IND_D.name()));
        }else if (ItemTypeEnum.CAL.getCode().equals(createReqVO.getItemType())){
            IndItemCalEntity calEntity = BeanUtils.toBean(createReqVO.getCalItem(), IndItemCalEntity.class);
            calEntity.setId(UUID.randomUUID().toString());
            calEntity.setItemId(entity.getId());
            indItemCalServiceImpl.insert(calEntity);
            entity.setItemNo(daSequenceNumService.getAndIncreaseByCode(IncreaseCodeEnum.IND_C.name()));
        }
        entity.setCreateTime(new Date());
        baseDao.insert(entity);
    }
    @Override
    @DSTransactional(rollbackFor= Exception.class)
    public void update(IndItemSaveReqVO updateReqVO) {
        IndItemEntity entity = BeanUtils.toBean(updateReqVO, IndItemEntity.class);
        entity.setUpdateTime(new Date());
@@ -47,7 +93,21 @@
    }
    @Override
    @DSTransactional(rollbackFor= Exception.class)
    public void delete(String id) {
        IndItemEntity entity = get(id);
        if(ItemTypeEnum.ATOM.getCode().equals(entity.getItemType())){
            indItemAtomService.deleteByItemId(id);
        }else if (ItemTypeEnum.DER.getCode().equals(entity.getItemType())){
            indItemDerServiceImpl.deleteByItemId(id);
        }else if (ItemTypeEnum.CAL.getCode().equals(entity.getItemType())){
            indItemCalServiceImpl.deleteByItemId(id);
        }
        baseDao.deleteById(id);
    }
    @Override
    public List<IndItemRespVO> getList(IndItemPageReqVO reqVO) {
        return baseDao.getItemList(reqVO);
    }
}
iailab-module-data/iailab-module-data-biz/src/main/java/com/iailab/module/data/ind/item/vo/IndItemAtomVo.java
对比新文件
@@ -0,0 +1,46 @@
package com.iailab.module.data.ind.item.vo;
import lombok.Data;
import java.io.Serializable;
/**
 * 原子指标
 *
 * @author PanZhibao
 * @Description
 * @createTime 2024年09月11日
 */
@Data
public class IndItemAtomVo implements Serializable {
    /**
     * 主键
     */
    private String id;
    /**
     * 指标ID
     */
    private String itemId;
    /**
     * 数据源
     */
    private String dataSource;
    /**
     * 数据集
     */
    private String dataSet;
    /**
     * 使用字段
     */
    private String usingField;
    /**
     * 统计方式
     */
    private String statFunc;
}
iailab-module-data/iailab-module-data-biz/src/main/java/com/iailab/module/data/ind/item/vo/IndItemCalVo.java
对比新文件
@@ -0,0 +1,32 @@
package com.iailab.module.data.ind.item.vo;
import lombok.Data;
import java.io.Serializable;
/**
 * 复合指标
 *
 * @author PanZhibao
 * @Description
 * @createTime 2024年09月11日
 */
@Data
public class IndItemCalVo implements Serializable {
    /**
     * 主键
     */
    private String id;
    /**
     * 指标ID
     */
    private String itemId;
    /**
     * 计算表达式
     */
    private String expression;
}
iailab-module-data/iailab-module-data-biz/src/main/java/com/iailab/module/data/ind/item/vo/IndItemDerVo.java
对比新文件
@@ -0,0 +1,56 @@
package com.iailab.module.data.ind.item.vo;
import lombok.Data;
import java.io.Serializable;
import java.sql.Date;
/**
 * 派生指标
 *
 * @author PanZhibao
 * @Description
 * @createTime 2024年09月11日
 */
@Data
public class IndItemDerVo implements Serializable {
    /**
     * 主键
     */
    private String id;
    /**
     * 指标ID
     */
    private String itemId;
    /**
     * 原子指标ID
     */
    private String atomItemId;
    /**
     * 时间标识
     */
    private String timeLabel;
    /**
     * 时间限定
     */
    private String timeLimit;
    /**
     * 开始时间
     */
    private Date timeStart;
    /**
     * 结束时间
     */
    private Date timeEnd;
    /**
     * 分析维度
     */
    private String dimension;
}
iailab-module-data/iailab-module-data-biz/src/main/java/com/iailab/module/data/ind/item/vo/IndItemRespVO.java
@@ -33,8 +33,11 @@
    @Schema(description = "指标分类", example = "")
    private String itemCategory;
    @Schema(description = "指标分类", example = "")
    private String itemCategoryName;
    @Schema(description = "转换系数", example = "")
    private Boolean coefficient;
    private String coefficient;
    @Schema(description = "指标精度", example = "")
    private Integer precision;
@@ -62,4 +65,12 @@
    @Schema(description = "更新时间", example = "")
    private Date updateTime;
    private String atomItemId;
    private IndItemAtomVo atomItem;
    private IndItemDerVo derItem;
    private IndItemCalVo calItem;
}
iailab-module-data/iailab-module-data-biz/src/main/java/com/iailab/module/data/ind/item/vo/IndItemSaveReqVO.java
@@ -4,6 +4,7 @@
import lombok.Data;
import javax.validation.constraints.NotNull;
import java.math.BigDecimal;
/**
 * @author PanZhibao
@@ -20,7 +21,7 @@
    /**
     * 指标编码
     */
    @Schema(description = "名称")
    @Schema(description = "编码")
    private String itemNo;
    /**
@@ -33,50 +34,56 @@
    /**
     * 指标类型
     */
    @Schema(description = "名称", requiredMode = Schema.RequiredMode.REQUIRED)
    @NotNull(message = "名称不能为空")
    @Schema(description = "指标类型", requiredMode = Schema.RequiredMode.REQUIRED)
    @NotNull(message = "指标类型不能为空")
    private String itemType;
    /**
     * 指标分类
     */
    @Schema(description = "名称", requiredMode = Schema.RequiredMode.REQUIRED)
    @NotNull(message = "名称不能为空")
    @Schema(description = "指标分类", requiredMode = Schema.RequiredMode.REQUIRED)
    @NotNull(message = "指标分类不能为空")
    private String itemCategory;
    /**
     * 转换系数
     */
    @Schema(description = "名称")
    private Boolean coefficient;
    @Schema(description = "系数")
    private BigDecimal coefficient;
    /**
     * 指标精度
     */
    @Schema(description = "名称")
    @Schema(description = "指标精度")
    private Integer precision;
    /**
     * 时间粒度
     */
    @Schema(description = "名称")
    @Schema(description = "时间粒度")
    private String timeGranularity;
    /**
     * 数量单位
     */
    @Schema(description = "名称")
    @Schema(description = "数量单位")
    private String unit;
    /**
     * 备注
     */
    @Schema(description = "名称")
    @Schema(description = "备注")
    private String remark;
    /**
     * 状态
     */
    @Schema(description = "名称")
    @Schema(description = "状态(0正常 1停用)")
    private Integer status;
    private IndItemAtomVo atomItem;
    private IndItemDerVo derItem;
    private IndItemCalVo calItem;
}
iailab-module-data/iailab-module-data-biz/src/main/java/com/iailab/module/data/point/common/IncreaseCodeEnum.java
@@ -7,5 +7,5 @@
 * @date 2021年05月24日 9:41
 */
public enum IncreaseCodeEnum {
    POINT_M, POINT_C, POINT_F
    POINT_M, POINT_C, POINT_F, IND_A, IND_D, IND_C;
}
iailab-module-data/iailab-module-data-biz/src/main/resources/mapper/ind/IndItemDao.xml
对比新文件
@@ -0,0 +1,28 @@
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
<mapper namespace="com.iailab.module.data.ind.item.dao.IndItemDao">
    <select id="getItemList" resultType="com.iailab.module.data.ind.item.vo.IndItemRespVO">
        select
        t1.*,
        t2.id as atomItemId
        from t_ind_item t1
        left join t_ind_item_atom t2 on t2.item_id = t1.id
        <where>
            <if test="params.itemNo != null and params.itemNo != ''">
                and t1.item_no like concat('%', #{params.itemNo}, '%')
            </if>
            <if test="params.itemName != null and params.itemName != ''">
                and t1.item_name like concat('%', #{params.itemName}, '%')
            </if>
            <if test="params.itemType != null and params.itemType != ''">
                and t1.item_type = #{params.itemType}
            </if>
            <if test="params.itemCategory != null and params.itemCategory != ''">
                and t1.item_category = #{params.itemCategory}
            </if>
        </where>
    </select>
</mapper>