| | |
| | | |
| | | // 遍历原始数据,按多维度分组进行聚合 |
| | | for (Map<String, Object> data : rawData) { |
| | | // 过滤工序名称为空的数据 |
| | | String processName = getStringValue(data, "processName"); |
| | | if (processName == null || processName.trim().isEmpty()) { |
| | | log.warn("跳过处理:工序名称为空"); |
| | | continue; |
| | | } |
| | | |
| | | // 过滤车间为空的数据 |
| | | String workshop = getStringValue(data, "workshop"); |
| | | if (workshop == null || workshop.trim().isEmpty()) { |
| | | log.warn("跳过处理:车间为空,工序名称={}", processName); |
| | | continue; |
| | | } |
| | | |
| | | // 获取行分组字段值 |
| | | String rowGroupValue = getStringValue(data, rowGroupBy); |
| | | if (rowGroupValue == null) { |
| | | log.warn("跳过处理:{} 字段值为null", rowGroupBy); |
| | | if (rowGroupValue == null || rowGroupValue.trim().isEmpty()) { |
| | | log.warn("跳过处理:{} 字段值为空", rowGroupBy); |
| | | continue; |
| | | } |
| | | |
| | | // 获取工序名称(用于日志和后续处理) |
| | | String processName = getStringValue(data, "processName"); |
| | | |
| | | // 处理开工日期 |
| | | Date processPlanStartDay = (Date) data.get("processPlanStartDay"); |
| | |
| | | // 构建分组键 - 基于row分组字段和可选的其他维度 |
| | | String plant = getStringValue(data, "plant"); |
| | | String major = getStringValue(data, "major"); |
| | | String workshop = getStringValue(data, "workshop"); |
| | | |
| | | StringBuilder groupKeyBuilder = new StringBuilder(rowGroupValue); |
| | | |