package com.finance.system.service.impl; import com.baomidou.mybatisplus.extension.plugins.pagination.Page; import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; import com.finance.common.basic.PageDTO; import com.finance.common.core.domain.entity.SysUser; import com.finance.common.exception.ServiceException; import com.finance.common.utils.BeanUtils; import com.finance.common.utils.CollUtils; import com.finance.system.domain.TbBasicDataConfig; import com.finance.system.domain.TbScore; import com.finance.system.mapper.TbScoreMapper; import com.finance.system.query.CalculateDetailQuery; import com.finance.system.query.DeptCalculateDetailQuery; import com.finance.system.query.HistoryScoreQuery; import com.finance.system.query.ScoreCalculateDetailQuery; import com.finance.system.query.ScoreQuery; import com.finance.system.service.TbBasicDataConfigService; import com.finance.system.service.TbScoreService; import com.finance.system.vo.DeptCalculateDetailVO; import com.finance.system.vo.ScoreCalculateDetailVO; import com.finance.system.vo.ScoreDetailVO; import com.finance.system.vo.ScoreRankVO; import com.finance.system.vo.ScoreVO; import java.util.List; import java.util.Objects; import java.util.stream.Collectors; import lombok.RequiredArgsConstructor; import lombok.extern.slf4j.Slf4j; import org.springframework.stereotype.Service; /** *

* 得分表 服务实现类 *

* * @author mitao * @since 2024-03-13 */ @Slf4j @Service @RequiredArgsConstructor public class TbScoreServiceImpl extends ServiceImpl implements TbScoreService { private final TbBasicDataConfigService basicDataConfigService; @Override public Page pageScore(ScoreQuery query, Page page) { return baseMapper.pageScore(query, page); } @Override public PageDTO getHistoryScore(HistoryScoreQuery query) { ScoreQuery scoreQuery = BeanUtils.copyBean(query, ScoreQuery.class); Page scoreVOPage = baseMapper.pageScore(scoreQuery, new Page<>(query.getPageNum(), query.getPageSize())); return PageDTO.of(scoreVOPage); } @Override public ScoreCalculateDetailVO scoreCalculateDetail(ScoreCalculateDetailQuery query) { //查询计算类型 TbBasicDataConfig config = basicDataConfigService.getById(query.getId()); if (Objects.isNull(config)) { throw new ServiceException("非法参数"); } ScoreCalculateDetailVO vo = new ScoreCalculateDetailVO(); vo.setTypeName(config.getTypeName()); vo.setCalculateType(config.getCalculateType()); Page page = new Page<>(query.getPageNum(), query.getPageSize()); Page pageVO = baseMapper.scoreCalculateDetail(query, page); vo.setTotal(pageVO.getTotal()); vo.setPages(pageVO.getPages()); vo.setList(pageVO.getRecords()); return vo; } @Override public List queryTotalScoreList() { return baseMapper.queryTotalScoreList(); } @Override public ScoreRankVO queryRankAndScoreByAreaCode(String areaCode) { return baseMapper.queryRankAndScoreByAreaCode(areaCode); } @Override public List deptCalculateDetail(DeptCalculateDetailQuery query, String nowQuarter) { return baseMapper.deptCalculateDetail(query, nowQuarter); } @Override public ScoreCalculateDetailVO fieldsDetail(CalculateDetailQuery query, List countyList) { //查询计算类型 TbBasicDataConfig config = basicDataConfigService.getById(query.getId()); if (Objects.isNull(config)) { throw new ServiceException("非法参数"); } if (CollUtils.isEmpty(countyList)) { return new ScoreCalculateDetailVO(); } List areaCodeList = countyList.stream().map(SysUser::getAreaCode).distinct() .collect(Collectors.toList()); ScoreCalculateDetailVO vo = new ScoreCalculateDetailVO(); vo.setTypeName(config.getTypeName()); vo.setCalculateType(config.getCalculateType()); Page page = new Page<>(query.getPageNum(), query.getPageSize()); Page pageVO = baseMapper.fieldsDetail(query, page, areaCodeList); vo.setTotal(pageVO.getTotal()); vo.setPages(pageVO.getPages()); vo.setList(pageVO.getRecords()); return vo; } }