package com.ydtech.modules.fnc.service.impl;
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
import com.ydtech.core.page.HttpResult;
import com.ydtech.modules.fnc.dao.InsuranceHandlingSettlementMonthMapper;
import com.ydtech.modules.fnc.dto.InsuranceHandlingSettlementMonthDto;
import com.ydtech.modules.fnc.entity.InsuranceHandlingSettlementMonthEntity;
import com.ydtech.modules.fnc.service.InsuranceHandlingSettlementMonthService;
import com.ydtech.modules.fnc.vo.InsuranceHandlingSettlementMonthVo;
import lombok.extern.slf4j.Slf4j;
import org.springframework.beans.BeanUtils;
import org.springframework.stereotype.Service;
import java.util.Comparator;
import java.util.List;
import java.util.Map;
import java.util.stream.Collectors;
/**
*
* 保险手续费结算关联表
*
*
* @author whp
* @since 2024-08-16
*/
@Slf4j
@Service
public class InsuranceHandlingSettlementMonthServiceImpl extends ServiceImpl implements InsuranceHandlingSettlementMonthService {
@Override
public List queryList(InsuranceHandlingSettlementMonthVo insuranceHandlingSettlementMonthVo) {
List resultList = baseMapper.queryList(insuranceHandlingSettlementMonthVo);
List latestRecords = resultList.stream()
// 根据taskId分组,并收集每个taskId对应的所有记录
.collect(Collectors.groupingBy(
InsuranceHandlingSettlementMonthDto::getTaskId,
Collectors.toList()
))
// 遍历每个分组,找出每组中createTime最新的记录
.entrySet().stream()
.map(entry -> entry.getValue().stream()
.max(Comparator.comparing(InsuranceHandlingSettlementMonthDto::getCreateTime))
.orElse(null) // 如果没有记录,则返回null(这里根据需求决定是否处理null)
)
// 收集结果到新的List中
.collect(Collectors.toList());
return resultList;
}
/**
* 结算新增
*
* @param insuranceHandlingSettlementMonthVo
* @return
*/
@Override
public HttpResult insertByEntity(InsuranceHandlingSettlementMonthVo insuranceHandlingSettlementMonthVo) {
InsuranceHandlingSettlementMonthEntity insuranceHandlingSettlementMonthEntity = new InsuranceHandlingSettlementMonthEntity();
BeanUtils.copyProperties(insuranceHandlingSettlementMonthVo, insuranceHandlingSettlementMonthEntity);
baseMapper.insert(insuranceHandlingSettlementMonthEntity);
return HttpResult.ok("结算成功");
}
}