ludc
2023-12-14 6af81ea2461ff8fe48320f4d33fe7b22c605254d
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
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
package com.vci.ubcs.system.service.impl;
 
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
import com.baomidou.mybatisplus.core.toolkit.Wrappers;
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
import com.vci.ubcs.system.entity.MdmCountConfig;
import com.vci.ubcs.system.entity.StatisticConfig;
import com.vci.ubcs.system.mapper.MdmCountConfigMapper;
import com.vci.ubcs.system.mapper.StatisticConfigMapper;
import com.vci.ubcs.system.service.IMdmCountConfigService;
import com.vci.ubcs.system.service.IStatisticConfigService;
import com.vci.ubcs.system.vo.MdmCountConfigVO;
import org.springblade.core.log.exception.ServiceException;
import org.springblade.core.secure.utils.AuthUtil;
import org.springblade.core.tool.api.R;
import org.springblade.core.tool.utils.Func;
import org.springblade.core.tool.utils.StringUtil;
import org.springframework.stereotype.Service;
 
import java.util.*;
import java.util.stream.Collectors;
 
/**
 * 主数据统计首页配置服务
 * @author ludc
 * @date 2023/10/17 14:45
 */
@Service
public class StatisticConfigServiceImpl extends ServiceImpl<StatisticConfigMapper, StatisticConfig> implements IStatisticConfigService {
    /**
     * 统计分析保存
     * @param statisticConfigs 数据传输对象
     * @return 数据返回
     */
    @Override
    public R saveStatisticConfig(List<StatisticConfig> statisticConfigs) {
 
        QueryWrapper<StatisticConfig> wrapper = new QueryWrapper<>();
        wrapper.eq("user_id", AuthUtil.getUser().getUserId());
        wrapper.in("btmname", statisticConfigs.stream().map(StatisticConfig::getBtmname).collect(Collectors.toList()));
        List<StatisticConfig> list = this.list(wrapper);
        statisticConfigs.stream().map(e ->{
            list.stream().filter(lis -> e.getBtmname().equals(lis.getBtmname())).forEach(lis->{
                    e.setId(lis.getId());
                    e.setTs(new Date());
                    e.setCreator(lis.getCreator());
                    e.setCreatetime(lis.getCreatetime());
                    e.setLastmodifier(String.valueOf(AuthUtil.getUser().getUserId()));
                    e.setLastmodifytime(new Date());
            });
            if(e.getId() == null){
                e.setUserId(AuthUtil.getUser().getUserId());
                e.setTs(new Date());
                e.setCreator(String.valueOf(AuthUtil.getUser().getUserId()));
                e.setCreatetime(new Date());
                e.setLastmodifier(String.valueOf(AuthUtil.getUser().getUserId()));
                e.setLastmodifytime(new Date());
            }
            return e;
        }).collect(Collectors.toList());
 
        this.saveOrUpdateBatch(statisticConfigs);
 
        return R.success("操作成功!");
    }
 
    /**
     * 统计分析删除图形
     * @param btmname 业务类型
     * @param chartId 图形ID
     * @return 成功与否
     */
    @Override
    public R deleteChartId(String btmname, String chartId) {
 
        QueryWrapper<StatisticConfig> wrapper = new QueryWrapper<>();
        wrapper.eq("user_id", AuthUtil.getUser().getUserId());
        wrapper.in("btmname",btmname);
        StatisticConfig statisticConfig = this.getOne(wrapper);
        if(StringUtil.isBlank(statisticConfig.getChartIds())){
            throw new ServiceException("未查到历史相关图形数据,请先保存!!");
        }
        List<String> chartIds = new ArrayList(Arrays.asList(statisticConfig.getChartIds().split(",")));
        chartIds.remove(chartId);
        statisticConfig.setChartIds(chartIds.stream().collect(Collectors.joining(",")));
        this.updateById(statisticConfig);
        return R.success("操作成功!!");
    }
 
    /**
     * 获取用户配置的业务类型与相关的图形
     * @return 图形数据与业务类型ID
     */
    @Override
    public R getBtmAndChartIds() {
        QueryWrapper<StatisticConfig> wrapper = new QueryWrapper<>();
        wrapper.eq("user_id", AuthUtil.getUser().getUserId());
        wrapper.isNotNull("chart_ids");
        List<StatisticConfig> list = this.list(wrapper);
        Map<String, String> collect = list.stream().collect(Collectors.toMap(StatisticConfig::getBtmname, StatisticConfig::getChartIds));
        return R.data(collect);
    }
 
}