xiaoyi
3 天以前 abf1c0a35d85d38239ff5d2ed746a4e4b797c9d1
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
package cn.iocoder.yudao.module.bi.service.decision;
 
import cn.iocoder.yudao.framework.common.pojo.PageResult;
import cn.iocoder.yudao.framework.mybatis.core.query.LambdaQueryWrapperX;
import cn.iocoder.yudao.module.bi.controller.admin.decision.vo.DecisionKpiDefinitionPageReqVO;
import cn.iocoder.yudao.module.bi.dal.dataobject.decision.BiKpiDefinitionDO;
import cn.iocoder.yudao.module.bi.dal.mysql.decision.BiKpiDefinitionMapper;
import cn.iocoder.yudao.module.bi.enums.ErrorCodeConstants;
import jakarta.annotation.Resource;
import org.springframework.stereotype.Service;
import org.springframework.transaction.annotation.Transactional;
 
import static cn.iocoder.yudao.framework.common.exception.util.ServiceExceptionUtil.exception;
 
/**
 * KPI指标定义 Service 实现
 *
 * @author 超级管理员
 */
@Service
public class BiKpiDefinitionServiceImpl implements BiKpiDefinitionService {
 
    @Resource
    private BiKpiDefinitionMapper kpiMapper;
 
    @Override
    @Transactional(rollbackFor = Exception.class)
    public Long createKpi(BiKpiDefinitionDO kpi) {
        // 校验编码唯一
        if (kpiMapper.selectOne(BiKpiDefinitionDO::getCode, kpi.getCode()) != null) {
            throw exception(ErrorCodeConstants.KPI_CODE_DUPLICATE);
        }
        kpiMapper.insert(kpi);
        return kpi.getId();
    }
 
    @Override
    @Transactional(rollbackFor = Exception.class)
    public void updateKpi(BiKpiDefinitionDO kpi) {
        // 校验存在
        BiKpiDefinitionDO exist = kpiMapper.selectById(kpi.getId());
        if (exist == null) {
            throw exception(ErrorCodeConstants.KPI_NOT_EXISTS);
        }
        // 校验编码唯一(排除自身)
        BiKpiDefinitionDO byCode = kpiMapper.selectOne(BiKpiDefinitionDO::getCode, kpi.getCode());
        if (byCode != null && !byCode.getId().equals(kpi.getId())) {
            throw exception(ErrorCodeConstants.KPI_CODE_DUPLICATE);
        }
        kpiMapper.updateById(kpi);
    }
 
    @Override
    @Transactional(rollbackFor = Exception.class)
    public void deleteKpi(Long id) {
        if (kpiMapper.selectById(id) == null) {
            throw exception(ErrorCodeConstants.KPI_NOT_EXISTS);
        }
        kpiMapper.deleteById(id);
    }
 
    @Override
    public BiKpiDefinitionDO getKpi(Long id) {
        return kpiMapper.selectById(id);
    }
 
    @Override
    public BiKpiDefinitionDO getKpiByCode(String code) {
        return kpiMapper.selectOne(BiKpiDefinitionDO::getCode, code);
    }
 
    @Override
    public PageResult<BiKpiDefinitionDO> getKpiPage(DecisionKpiDefinitionPageReqVO pageReq) {
        return kpiMapper.selectPage(pageReq, new LambdaQueryWrapperX<BiKpiDefinitionDO>()
                .likeIfPresent(BiKpiDefinitionDO::getName, pageReq.getName())
                .eqIfPresent(BiKpiDefinitionDO::getCategory, pageReq.getCategory())
                .eqIfPresent(BiKpiDefinitionDO::getStatus, pageReq.getStatus())
                .orderByAsc(BiKpiDefinitionDO::getSort));
    }
 
}