package com.gunshi.project.xyt.service; import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; import com.baomidou.mybatisplus.core.toolkit.IdWorker; import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; import com.gunshi.project.xyt.entity.vo.InspectTaskDetailVo; import com.gunshi.project.xyt.mapper.InspectTaskDetailMapper; import com.gunshi.project.xyt.model.InspectTaskDetail; import lombok.extern.slf4j.Slf4j; import org.springframework.stereotype.Service; import org.springframework.transaction.annotation.Transactional; import java.util.ArrayList; import java.util.List; import java.util.Map; import java.util.stream.Collectors; /** * 描述: 巡查信息 * author: xusan * date: 2024-08-29 14:21:45 */ @Service @Slf4j @Transactional(rollbackFor = Exception.class) public class InspectTaskDetailService extends ServiceImpl { public void saveDetail(List items, Long taskId) { items.stream().forEach(o->{ o.setId(IdWorker.getId()); o.setTaskId(taskId); }); this.saveBatch(items); } public void updateDetail(List items, Long taskId) { delDetail(taskId); saveDetail(items,taskId); } public void delDetail(Long taskId) { this.remove(new QueryWrapper().eq("task_id",taskId)); } public List getByTaskId(Long taskId) { return this.list(new QueryWrapper().eq("task_id",taskId)); } public List inspectInfo(Long id) { List res = new ArrayList<>(); List list = this.baseMapper.inspectInfo(id); Map> map = list.stream().collect(Collectors.groupingBy(InspectTaskDetailVo::getPointId)); map.entrySet().forEach(t->{ InspectTaskDetailVo vo = new InspectTaskDetailVo(); Long pointId = t.getKey(); vo.setPointId(pointId); vo.setName(t.getValue().get(0).getName()); vo.setChildren(t.getValue()); res.add(vo); }); return res; } }