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 implements IStatisticConfigService { /** * 统计分析保存 * @param statisticConfigs 数据传输对象 * @return 数据返回 */ @Override public R saveStatisticConfig(List statisticConfigs) { QueryWrapper wrapper = new QueryWrapper<>(); wrapper.eq("user_id", AuthUtil.getUser().getUserId()); wrapper.in("btmname", statisticConfigs.stream().map(StatisticConfig::getBtmname).collect(Collectors.toList())); List 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 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 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 wrapper = new QueryWrapper<>(); wrapper.eq("user_id", AuthUtil.getUser().getUserId()); wrapper.isNotNull("chart_ids"); List list = this.list(wrapper); Map collect = list.stream().collect(Collectors.toMap(StatisticConfig::getBtmname, StatisticConfig::getChartIds)); return R.data(collect); } }