田源
2023-12-14 5613052418903a5780a8cb77c29eab4ef8066bee
Source/UBCS/ubcs-service/ubcs-system/src/main/java/com/vci/ubcs/system/service/impl/StatisticConfigServiceImpl.java
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,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);
   }
}