private void printReportInfo(String consumerId,
            Map<String, Map<String, Partition>> curPartSubMa,
            Map<String, Map<String, Partition>> newPartSubMap,
            StringBuilder sBuffer) {
        boolean printHeader = true;
        if (curPartSubMa == null || curPartSubMa.isEmpty()) {
            if (newPartSubMap != null && !newPartSubMap.isEmpty()) {
                for (Map<String, Partition> newPartMap : newPartSubMap.values()) {
                    if (newPartMap == null || newPartMap.isEmpty()) {
                        continue;
                    }
                    for (Partition info : newPartMap.values()) {
                        printHeader = printReportItemInfo(consumerId,
                                info, true, printHeader, sBuffer);
                    }
                }
            }
        } else {
            if (newPartSubMap == null || newPartSubMap.isEmpty()) {
                for (Map<String, Partition> curPartMap : curPartSubMa.values()) {
                    if (curPartMap == null || curPartMap.isEmpty()) {
                        continue;
                    }
                    for (Partition info : curPartMap.values()) {
                        printHeader = printReportItemInfo(consumerId,
                                info, false, printHeader, sBuffer);
                    }
                }
            } else {
                for (Map.Entry<String, Map<String, Partition>> curEntry : curPartSubMa.entrySet()) {
                    if (curEntry == null || curEntry.getKey() == null) {
                        continue;
                    }
                    Map<String, Partition> newPartMap =
                            newPartSubMap.get(curEntry.getKey());
                    if (newPartMap == null || newPartMap.isEmpty()) {
                        Map<String, Partition> curPartMap = curEntry.getValue();
                        if (curPartMap == null || curPartMap.isEmpty()) {
                            continue;
                        }
                        for (Partition info : curPartMap.values()) {
                            printHeader = printReportItemInfo(consumerId,
                                    info, false, printHeader, sBuffer);
                        }
                    } else {
                        Map<String, Partition> curPartMap = curEntry.getValue();
                        if (curPartMap == null || curPartMap.isEmpty()) {
                            for (Partition info : newPartMap.values()) {
                                printHeader = printReportItemInfo(consumerId,
                                        info, true, printHeader, sBuffer);
                            }
                        } else {
                            for (Map.Entry<String, Partition> curPartEntry : curPartMap.entrySet()) {
                                if (curPartEntry == null
                                        || curPartEntry.getKey() == null
                                        || curPartEntry.getValue() == null) {
                                    continue;
                                }
                                if (newPartMap.get(curPartEntry.getKey()) == null) {
                                    printHeader = printReportItemInfo(consumerId,
                                            curPartEntry.getValue(), false, printHeader, sBuffer);
                                }
                            }
                            for (Map.Entry<String, Partition> newPartEntry : newPartMap.entrySet()) {
                                if (newPartEntry == null
                                        || newPartEntry.getKey() == null
                                        || newPartEntry.getValue() == null) {
                                    continue;
                                }
                                if (curPartMap.get(newPartEntry.getKey()) == null) {
                                    printHeader = printReportItemInfo(consumerId,
                                            newPartEntry.getValue(), true, printHeader, sBuffer);
                                }
                            }
                        }
                    }
                }
                for (Map.Entry<String, Map<String, Partition>> newEntry : newPartSubMap.entrySet()) {
                    if (newEntry == null || newEntry.getKey() == null) {
                        continue;
                    }
                    if (curPartSubMa.get(newEntry.getKey()) != null) {
                        continue;
                    }
                    Map<String, Partition> newPartMap = newEntry.getValue();
                    if (newPartMap == null || newPartMap.isEmpty()) {
                        continue;
                    }
                    for (Partition info : newPartMap.values()) {
                        printHeader = printReportItemInfo(consumerId,
                                info, true, printHeader, sBuffer);
                    }
                }
            }
        }
        if (sBuffer.length() > 0) {
            logger.info(sBuffer.append("]").toString());
        }
        sBuffer.delete(0, sBuffer.length());

    }
build approved client configure

@param inClientConfig client reported Configure info
@param prodConfigTuple     published max topic size tuple
@return ApprovedClientConfig
inlong-tubemq/tubemq-server/src/main/java/org/apache/inlong/tubemq/server/master/TMaster.java