zhoushihao
2024-06-20 a745fd53a1c8840a886c826c6a6bf0b8b226cd25
hangzhoumesParent/common/servicebase/src/main/java/com/mes/glassinfo/service/impl/GlassInfoServiceImpl.java
@@ -17,8 +17,10 @@
import org.springframework.stereotype.Service;
import java.util.ArrayList;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
import java.util.stream.Collectors;
/**
 * <p>
@@ -100,14 +102,34 @@
    @Override
    public List<Map<String, Object>> getFlowCardId() {
        return baseMapper.selectJoinMaps(JoinWrappers.lambda(GlassInfo.class)
                .select(GlassInfo::getFlowCardId)
                .leftJoin(UpPattenUsage.class, on -> on
                        .eq(OptimizeProject::getProjectNo, GlassInfo::getEngineerId)
                        .ne(OptimizeProject::getState, 300)
                )
                .groupBy(GlassInfo::getFlowCardId)
        // 第二个查询:查询 OptimizeProject 表,根据 GlassInfo 的 engineerId 和 state 进行筛选
        List<OptimizeProject> optimizeProjects = optimizeProjectMapper.selectList(
                new QueryWrapper<OptimizeProject>()
                        .ne("state", 300)
        );
        // 提取 engineerId 列表
        List<String> engineerIds = optimizeProjects.stream()
                .map(OptimizeProject::getProjectNo)
                .collect(Collectors.toList());
        // 第一个查询:查询 GlassInfo 表并按 flow_card_id 分组,同时筛选出在 engineerIds 列表中的记录
        List<GlassInfo> glassInfos = baseMapper.selectList(
                new QueryWrapper<GlassInfo>()
                        .in("engineer_id", engineerIds)
                        .groupBy("flow_card_id")
        );
        // 转换为 List<Map<String, Object>>
        List<Map<String, Object>> result = glassInfos.stream()
                .map(glassInfo -> {
                    Map<String, Object> map = new HashMap<>();
                    map.put("flow_card_id", glassInfo.getFlowCardId());
                    // 如果还有其他字段需要添加到 map 中,在这里继续添加
                    return map;
                })
                .collect(Collectors.toList());
log.info("result: {}", result);
        return result;
    }