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);
|
}
|
|
}
|