package com.gunshi.project.hsz.service; import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; import com.gunshi.project.hsz.entity.vo.ProfilePressTreeVo; import com.gunshi.project.hsz.mapper.AttDamProfileMapper; import com.gunshi.project.hsz.model.AttDamProfile; import com.gunshi.project.hsz.model.OsmoticPressDevice; import com.gunshi.project.hsz.model.OsmoticPressDeviceAutoDao; import com.gunshi.project.hsz.util.MyBeanUtil; import jakarta.annotation.Resource; import lombok.extern.slf4j.Slf4j; import org.springframework.stereotype.Service; import org.springframework.transaction.annotation.Transactional; import java.util.List; import java.util.stream.Collectors; /** * 描述: 监测断面信息表 * author: xusan * date: 2024-07-08 17:30:37 */ @Service @Slf4j @Transactional(rollbackFor = Exception.class) public class AttDamProfileService extends ServiceImpl { @Resource private OsmoticPressDeviceAutoDao pressDeviceAutoDao; public List tree() { LambdaQueryWrapper queryWrapper = new LambdaQueryWrapper<>(); queryWrapper.orderByAsc(AttDamProfile::getProfileCode); List list = this.list(queryWrapper); List res = MyBeanUtil.collectionCopy(list,ProfilePressTreeVo.class); for(ProfilePressTreeVo vo : res){ List pressList = pressDeviceAutoDao.list(new LambdaQueryWrapper() .eq(OsmoticPressDevice::getProfileCode, vo.getProfileCode()).orderByAsc(OsmoticPressDevice::getStationCode)); vo.setChildren(pressList.stream().map(OsmoticPressDevice::getStationCode).sorted().collect(Collectors.toList())); } return res; } }