S
当灵魂选择性别:一场关于“男生困在女生身体里”的深刻探讨
首页
速度
优化工具
☰
首页
速度
收录
工具
首页
/
速度优化
/
51黑料吃瓜:娱乐八卦的深度解析与圈内秘闻
网站优化
QQC:连接你我的数字心跳,点亮生活无限可能
纯粹之境:白,唤醒感知,定义无限
2026-06-08 20:12:44
阅读时长:1分钟
562次阅读
核心内容摘要
小学生“撸管”成风?这几大危害家长千万别不当回事,越早引导越好
查询方法Override public DishAppStallPersonnelPageBaseVo pageList(PageDishAppStallPersonnelPageVo page, DishAppStallPersonnelPageDto pageDto) { // 获取已绑定的收银门店集合 MapString, MutablePairString, StoreInfoListVO storeMap getStoreIds(); ListBaseAttributesJsonVo stallList this.infoService.getAttributesList(List.of(), DishInfoTypeEnum.DISH_INFO_STALL.getCode()); // 校验是否有新增门店 this.checkStallPersonnelStore(stallList, storeMap); // 获取门店id集合 ListString storeIds StrUtil.isNotBlank(pageDto.getKeyword()) ? storeMap.entrySet().stream().filter(entry - entry.getKey().contains(pageDto.getKeyword())).map(entry - entry.getValue().getLeft()).collect(Collectors.toList()) : new ArrayList(storeMap.values().stream().map(MutablePair::getLeft).collect(Collectors.toList())); PageDishAppStallPersonnelPageVo pageList baseMapper.getPageList(page, storeIds); if (CollUtil.isEmpty(pageList.getRecords())) { return DishAppStallPersonnelPageBaseVo.builder() .isStall(CollUtil.isEmpty(stallList) ? 0 :
.pageList(CultivatePage.coverPageList(page)) .build(); } // 设置档口人员列表 pageList.getRecords().forEach(pageListVo - { pageListVo.setStallPersonnelList(JSON.parseArray(pageListVo.getStallPersonnelJson(), BaseAttributesJsonVo.class)); }); //处理每条数据的长度不一样要处理成一样的并且保证顺序一致 processStallPointData(stallList, pageList.getRecords(), storeMap); return DishAppStallPersonnelPageBaseVo.builder() .isStall(CollUtil.isEmpty(stallList) ? 0 :
.pageList(CultivatePage.coverPageList(pageList)) .build(); } public void export(HttpServletResponse response, DishAppStallPersonnelPageDto pageDto) { // 获取已绑定的收银门店集合 MapString, MutablePairString, StoreInfoListVO storeMap getStoreIds(); // 获取获取系统最新档口数据集合(动态渲染列) ListBaseAttributesJsonVo stallList this.infoService.getAttributesList(List.of(), DishInfoTypeEnum.DISH_INFO_STALL.getCode()); // 校验是否有新增门店 this.checkStallPersonnelStore(stallList, storeMap); // 获取门店id集合 ListString storeIds StrUtil.isNotBlank(pageDto.getKeyword()) ? storeMap.entrySet().stream().filter(entry - entry.getKey().contains(pageDto.getKeyword())).map(entry - entry.getValue().getLeft()).collect(Collectors.toList()) : new ArrayList(storeMap.values().stream().map(MutablePair::getLeft).collect(Collectors.toList())); ListDishAppStallPersonnelPageVo summaryVoList this.baseMapper.getDataList(storeIds); if (CollUtil.isNotEmpty(summaryVoList)) { // 设置档口人员列表 summaryVoList.forEach(pageListVo - { pageListVo.setStallPersonnelList(JSON.parseArray(pageListVo.getStallPersonnelJson(), BaseAttributesJsonVo.class)); }); } //处理每条数据的长度不一样要处理成一样的并且保证顺序一致 processStallPointData(stallList, summaryVoList, storeMap); //获取动态表头 ListListString list new ArrayList(); list.add(Collections.singletonList(门店名称)); ListListString headers EasyExcelUtil.getHeaders(stallList, list); //获取动态数据 ListListObject dataList EasyExcelUtil.getDataList(summaryVoList); EasyExcelUtil.rankingExportData(dataList, headers, 档口人员数据, 档口人员数据表, response); }
处理动态列数据/** * 处理每条数据的长度不一样要处理成一样的并且保证顺序一致 * * param attributesJsonVos 档口集合 * param pageListVoList 待处理数据 * param storeMap 门店集合 */ private void processStallPointData(ListBaseAttributesJsonVo attributesJsonVos, ListDishAppStallPersonnelPageVo pageListVoList, MapString, MutablePairString, StoreInfoListVO storeMap) { //获取所有技能点,并且按照sort字段排序 ListBaseAttributesJsonVo sortedStallList attributesJsonVos.stream().sorted(Comparator.comparing(BaseAttributesJsonVo::getSort)).collect(Collectors.toList()); LinkedHashMapString, BaseAttributesJsonVo skillCountVoMap sortedStallList.stream().collect(Collectors.toMap(BaseAttributesJsonVo::getName, baseAttributesJsonVo - baseAttributesJsonVo, (k1, k
- k1, LinkedHashMap::new)); MapString, BaseAttributesJsonVo skillCountMap; MapString, StoreInfoListVO storeInfoMap storeMap.values().stream().collect(Collectors.toMap(MutablePair::getLeft, MutablePair::getRight)); for (DishAppStallPersonnelPageVo pageListVo : pageListVoList) { skillCountMap pageListVo.getStallPersonnelList().stream().collect(Collectors.toMap(BaseAttributesJsonVo::getName, attributesJsonVo - attributesJsonVo, (k1, k
- k
); MapString, BaseAttributesJsonVo baseAttributesJsonVoMap skillCountMap; ListBaseAttributesJsonVo attributesJsonVoList new LinkedList(); skillCountVoMap.forEach((name, skillCountVo) - { if (baseAttributesJsonVoMap.containsKey(name)) { attributesJsonVoList.add(baseAttributesJsonVoMap.get(name)); } else { attributesJsonVoList.add(BaseAttributesJsonVo.builder() .id(skillCountVo.getId()) .sort(skillCountVo.getSort()) .name(skillCountVo.getName()) .value(null).build()); } }); pageListVo.setStallPersonnelList(attributesJsonVoList); pageListVo.setStoreName(storeInfoMap.get(pageListVo.getStoreId()).getName()); } }
导出工具类package com.fantaibao.util; import cn.hutool.core.collection.CollUtil; import cn.hutool.http.Header; import cn.idev.excel.EasyExcel; import cn.idev.excel.util.ListUtils; import com.fantaibao.handler.CustomCellStyleHandler; import com.fantaibao.handler.CustomCellWriteHandler; import com.fantaibao.handler.CustomRowHeightHandler; import com.fantaibao.module.vo.appDish.BaseAttributesJsonVo; import com.fantaibao.module.vo.appDish.DishAppStallPersonnelPageVo; import org.apache.poi.ss.usermodel.*; import javax.servlet.ServletOutputStream; import javax.servlet.http.HttpServletResponse; import java.io.InputStream; import java.net.URLEncoder; import java.nio.charset.StandardCharsets; import java.util.*; /** * easyExcel导入导出工具类 * author yier */ public class EasyExcelUtil { /** * 获取动态表头 * param stallList 数据集合 * param list 已存在的动态表头 * return 返回动态表头 */ public static ListListString getHeaders(ListBaseAttributesJsonVo stallList, ListListString list) { if (CollUtil.isNotEmpty(stallList) CollUtil.isNotEmpty(stallList)) { for (BaseAttributesJsonVo baseAttributesJsonVo : stallList) { ListString head new ArrayList(); head.add(baseAttributesJsonVo.getName()); list.add(head); } } return list; } /** * 获取表内容数据 * param dataList 数据集合 * return 表内容数据 */ public static ListListObject getDataList(ListDishAppStallPersonnelPageVo dataList) { ListListObject list ListUtils.newArrayList(); if (CollUtil.isNotEmpty(dataList)) { for (DishAppStallPersonnelPageVo rankingDTO : dataList) { ListObject data ListUtils.newArrayList(); data.add(rankingDTO.getStoreName()); if (CollUtil.isNotEmpty(rankingDTO.getStallPersonnelList())) { for (BaseAttributesJsonVo skillCountVo : rankingDTO.getStallPersonnelList()) { data.add(Objects.nonNull(skillCountVo.getValue()) ? skillCountVo.getValue() : ); } } list.add(data); } } return list; } /** * 导出排行榜数据 * * param list 导出数据 * param headers 表头 * param fileName 导出文件名称 * param sheetName sheet名称 * param response 响应对象 * throws Exception 抛出异常 */ public static void rankingExportData(ListListObject list, ListListString headers, String fileName, String sheetName, HttpServletResponse response) throws Exception { EasyExcelUtil.export(response, fileName .xlsx, sheetName, list, headers); } /** * Excel导出功能(根据自定义表头) * * param response 响应数据 * param fileName 文件名 * param sheetName sheet名 * param list 数据列表 * param headers 表头集合 */ public static void export(HttpServletResponse response, String fileName, String sheetName, ListListObject list, ListListString headers) throws Exception { ServletOutputStream outputStream response.getOutputStream(); response.setCharacterEncoding(utf-
; response.setHeader(Header.CONTENT_DISPOSITION.toString(), attachment; filename.concat(URLEncoder.encode(fileName, StandardCharsets.UTF_
)); response.setContentType(application/octet-stream); EasyExcel.write(outputStream) .head(headers) .sheet(sheetName) .registerWriteHandler(new CustomRowHeightHandler()) .registerWriteHandler(new CustomCellStyleHandler()) .registerWriteHandler(new CustomCellWriteHandler()) .doWrite(list); } /** * 导入Excel返回列表形式的数据 * * param inputStream Excel文件流 * return ListList String 二维列表第一行是表头后续行是数据 */ public static ListListString importExcel(InputStream inputStream) { ListListString data new ArrayList(); try { Workbook workbook WorkbookFactory.create(inputStream); Sheet sheet workbook.getSheetAt(
; IteratorRow rowIterator sheet.iterator(); while (rowIterator.hasNext()) { Row row rowIterator.next(); ListString rowData new ArrayList(); IteratorCell cellIterator row.cellIterator(); while (cellIterator.hasNext()) { Cell cell cellIterator.next(); rowData.add(getCellStringValue(cell)); } data.add(rowData); } workbook.close(); } catch (Exception e) { throw new RuntimeException(导入Excel失败: e.getMessage(), e); } return data; } /** * 获取单元格的字符串值 */ private static String getCellStringValue(Cell cell) { if (cell null) { return ; } switch (cell.getCellType()) { case STRING: return cell.getStringCellValue().trim(); case NUMERIC: double value cell.getNumericCellValue(); if (value (long) value) { return String.valueOf((long) value); } else { return String.valueOf(value); } case BOOLEAN: return String.valueOf(cell.getBooleanCellValue()); case FORMULA: try { return cell.getStringCellValue(); } catch (Exception e) { return String.valueOf(cell.getNumericCellValue()); } default: return ; } } /** * 将Excel数据转换为Map列表格式 */ public static ListMapString, String convertToMapList(ListListString excelData) { if (excelData null || excelData.isEmpty()) { return new ArrayList(); } ListMapString, String result new ArrayList(); // 第一行是表头 ListString headers excelData.get(
; for (int i 1; i excelData.size(); i) { ListString rowData excelData.get(i); MapString, String rowMap new HashMap(); for (int j 0; j headers.size(); j) { String header headers.get(j); String value j rowData.size() ? rowData.get(j) : ; rowMap.put(header, value); } result.add(rowMap); } return result; } }
大雷擦狙击免费观看高清版安卓苹果-大雷擦狙击免费观看高清版安卓苹果应用
相关标签
Qwen2-VL-2B-Instruct保姆级教程:侧边栏临时文件清理功能开发与调用
AI代码生成工具是否真能重塑开发效率?基于GPT-Engineer的深度剖析
PCAN驱动开发核心要点:初始化流程深度剖析
Qwen3-ASR-0.6B快速体验:52种语言语音识别演示
新手也能上手!专科生专属降AIGC软件 —— 千笔
FPGA实战:HDB3编解码的Verilog实现与信号完整性验证
突破硬件壁垒:3大核心技术让老旧设备轻松升级Windows 11
ESP32-C3-RUST-2传感器融合开发全指南
Minecraft 1.21汉化工具:告别模组英文界面烦恼
JS Confetti核心API解析:掌握addConfetti与位置控制
计算机毕业设计之nodejs药品零售企业进销存管理系统
STEP3-VL-10B多模态模型应用:从识别商品到分析图表,5个场景实测
手把手教你用STEP3-VL-10B:从环境检查到高级OCR应用,一篇搞定
Pi0 Web Demo部署教程:Nginx反向代理+HTTPS安全访问配置
🔍
📑
文章目录
二、2026国自然申报倒计时:如何利用AI辅助工具高效完成申请书撰写
三、杰理之添加PSRAM驱动【篇】
四、4大优势打造本地化语音处理:Vosk离线识别全解析
五、基于深度学习YOLOv11的生菜生长周期检测系统(YOLOv11+YOLO数据集+UI界面+登录注册界面+Python项目源码+模型)
🔥
热门优化文章
EMNLP 2025 顶会解读:Agent 记忆机制大升级!从“存历史”到“建认知”的进阶指南
2026-05-16 23:19:13
IgE Surpass ELISA试剂盒如何解析免疫球蛋白E在过敏与疾病中的核心作用?
2026-05-16 23:19:13
🛠️
实用工具推荐
StructBERT中文情感分类模型参数调优指南
Dense U-Net调参指南:如何避免过拟合并提升医学图像分割准确率
相关优化文章 推荐
Qwen3-TTS-VoiceDesign部署案例:GPU一键启动7860端口Web界面,免配置开箱即用
2026-06-08 20:12:44 3分钟阅读
离线可用的语音识别系统,Fun-ASR隐私安全更放心
2026-06-08 20:12:44 2分钟阅读
SiameseUIE中文信息抽取5分钟上手:零代码实现实体识别与情感分析
2026-06-08 20:12:44 4分钟阅读
↑
百度百家号客服电话人工服务
1
2
3
1
2
3
1
2
3
1
2
3
1
2
3
1
2
3
1
2
3
1
2
3
1
2
3
1
2
3
1
2
3
1
2
3
1
2
3
1
2
3
1
2
3
1
2
3
1
2
3
1
2
3
1
2
3
1
2
3
1
2
3
1
2
3
1
2
3
1
2
3
1
2
3
1
2
3
1
2
3
1
2
3
1
2
3
1
2
3
1
2
3
1
2
3
1
2
3
1
2
3
1
2
3
1
2
3
1
2
3
1
2
3
1
2
3
1
2
3
1
2
3