InsuranceHandlingSettlementMonthServiceImpl.java 2.8 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566
  1. package com.ydtech.modules.fnc.service.impl;
  2. import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
  3. import com.ydtech.core.page.HttpResult;
  4. import com.ydtech.modules.fnc.dao.InsuranceHandlingSettlementMonthMapper;
  5. import com.ydtech.modules.fnc.dto.InsuranceHandlingSettlementMonthDto;
  6. import com.ydtech.modules.fnc.entity.InsuranceHandlingSettlementMonthEntity;
  7. import com.ydtech.modules.fnc.service.InsuranceHandlingSettlementMonthService;
  8. import com.ydtech.modules.fnc.vo.InsuranceHandlingSettlementMonthVo;
  9. import lombok.extern.slf4j.Slf4j;
  10. import org.springframework.beans.BeanUtils;
  11. import org.springframework.stereotype.Service;
  12. import java.util.Comparator;
  13. import java.util.List;
  14. import java.util.Map;
  15. import java.util.stream.Collectors;
  16. /**
  17. * <p>
  18. * 保险手续费结算关联表
  19. * </p>
  20. *
  21. * @author whp
  22. * @since 2024-08-16
  23. */
  24. @Slf4j
  25. @Service
  26. public class InsuranceHandlingSettlementMonthServiceImpl extends ServiceImpl<InsuranceHandlingSettlementMonthMapper, InsuranceHandlingSettlementMonthEntity> implements InsuranceHandlingSettlementMonthService {
  27. @Override
  28. public List<InsuranceHandlingSettlementMonthDto> queryList(InsuranceHandlingSettlementMonthVo insuranceHandlingSettlementMonthVo) {
  29. List<InsuranceHandlingSettlementMonthDto> resultList = baseMapper.queryList(insuranceHandlingSettlementMonthVo);
  30. List<InsuranceHandlingSettlementMonthDto> latestRecords = resultList.stream()
  31. // 根据taskId分组,并收集每个taskId对应的所有记录
  32. .collect(Collectors.groupingBy(
  33. InsuranceHandlingSettlementMonthDto::getTaskId,
  34. Collectors.toList()
  35. ))
  36. // 遍历每个分组,找出每组中createTime最新的记录
  37. .entrySet().stream()
  38. .map(entry -> entry.getValue().stream()
  39. .max(Comparator.comparing(InsuranceHandlingSettlementMonthDto::getCreateTime))
  40. .orElse(null) // 如果没有记录,则返回null(这里根据需求决定是否处理null)
  41. )
  42. // 收集结果到新的List中
  43. .collect(Collectors.toList());
  44. return resultList;
  45. }
  46. /**
  47. * 结算新增
  48. *
  49. * @param insuranceHandlingSettlementMonthVo
  50. * @return
  51. */
  52. @Override
  53. public HttpResult<InsuranceHandlingSettlementMonthDto> insertByEntity(InsuranceHandlingSettlementMonthVo insuranceHandlingSettlementMonthVo) {
  54. InsuranceHandlingSettlementMonthEntity insuranceHandlingSettlementMonthEntity = new InsuranceHandlingSettlementMonthEntity();
  55. BeanUtils.copyProperties(insuranceHandlingSettlementMonthVo, insuranceHandlingSettlementMonthEntity);
  56. baseMapper.insert(insuranceHandlingSettlementMonthEntity);
  57. return HttpResult.ok("结算成功");
  58. }
  59. }